[ADD] Add more themes!
|
@ -0,0 +1,27 @@
|
||||||
|
Odoo Proprietary License v1.0
|
||||||
|
|
||||||
|
This software and associated files (the "Software") may only be used (executed,
|
||||||
|
modified, executed after modifications) if you have purchased a valid license
|
||||||
|
from the authors, typically via Odoo Apps, or if you have received a written
|
||||||
|
agreement from the authors of the Software (see the COPYRIGHT file).
|
||||||
|
|
||||||
|
You may develop Odoo modules that use the Software as a library (typically
|
||||||
|
by depending on it, importing it and using its resources), but without copying
|
||||||
|
any source code or material from the Software. You may distribute those
|
||||||
|
modules under the license of your choice, provided that this license is
|
||||||
|
compatible with the terms of the Odoo Proprietary License (For example:
|
||||||
|
LGPL, MIT, or proprietary licenses similar to this one).
|
||||||
|
|
||||||
|
It is forbidden to publish, distribute, sublicense, or sell copies of the Software
|
||||||
|
or modified copies of the Software.
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice must be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||||
|
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||||
|
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
|
DEALINGS IN THE SOFTWARE.
|
|
@ -0,0 +1,3 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||||
|
from . import models
|
|
@ -0,0 +1,37 @@
|
||||||
|
{
|
||||||
|
'name': 'Cobalt Theme',
|
||||||
|
'description': 'Clean and sharp design.',
|
||||||
|
'category': 'Theme/Corporate',
|
||||||
|
'summary': 'Development, IT development, Design, Tech, Computers, IT, Blogs',
|
||||||
|
'sequence': 110,
|
||||||
|
'version': '2.0.0',
|
||||||
|
'author': 'Odoo S.A.',
|
||||||
|
'depends': ['website'],
|
||||||
|
'data': [
|
||||||
|
'data/ir_asset.xml',
|
||||||
|
'views/images.xml',
|
||||||
|
'views/customizations.xml',
|
||||||
|
],
|
||||||
|
'images': [
|
||||||
|
'static/description/cobalt_poster.jpg',
|
||||||
|
'static/description/cobalt_screenshot.jpg',
|
||||||
|
],
|
||||||
|
'images_preview_theme': {
|
||||||
|
'website.library_image_03': '/theme_cobalt/static/src/img/pictures/s_image_1.jpg',
|
||||||
|
'website.library_image_14': '/theme_cobalt/static/src/img/pictures/s_image_6.jpg',
|
||||||
|
'website.library_image_10': '/theme_cobalt/static/src/img/pictures/s_image_4.jpg',
|
||||||
|
'website.library_image_13': '/theme_cobalt/static/src/img/pictures/s_image_2.jpg',
|
||||||
|
'website.library_image_16': '/theme_cobalt/static/src/img/pictures/s_image_3.jpg',
|
||||||
|
'website.library_image_05': '/theme_cobalt/static/src/img/pictures/s_image_5.jpg',
|
||||||
|
},
|
||||||
|
'snippet_lists': {
|
||||||
|
'homepage': ['s_banner', 's_references', 's_text_image', 's_color_blocks_2', 's_images_wall'],
|
||||||
|
},
|
||||||
|
'license': 'LGPL-3',
|
||||||
|
'live_test_url': 'https://theme-cobalt.odoo.com',
|
||||||
|
'assets': {
|
||||||
|
'website.assets_editor': [
|
||||||
|
'theme_cobalt/static/src/js/tour.js',
|
||||||
|
],
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<odoo>
|
||||||
|
|
||||||
|
<record id="theme_cobalt.primary_variables_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_cobalt.primary_variables_scss</field>
|
||||||
|
<field name="name">Primary variables SCSS</field>
|
||||||
|
<field name="bundle">web._assets_primary_variables</field>
|
||||||
|
<field name="path">theme_cobalt/static/src/scss/primary_variables.scss</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_cobalt.bootstrap_overridden_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_cobalt.bootstrap_overridden_scss</field>
|
||||||
|
<field name="name">Bootstrap overridden SCSS</field>
|
||||||
|
<field name="bundle">web._assets_frontend_helpers</field>
|
||||||
|
<field name="directive">prepend</field>
|
||||||
|
<field name="path">theme_cobalt/static/src/scss/bootstrap_overridden.scss</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
</odoo>
|
|
@ -0,0 +1,117 @@
|
||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * theme_cobalt
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo Server 15.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2021-12-13 08:00+0000\n"
|
||||||
|
"PO-Revision-Date: 2021-12-13 08:00+0000\n"
|
||||||
|
"Last-Translator: \n"
|
||||||
|
"Language-Team: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Plural-Forms: \n"
|
||||||
|
|
||||||
|
#. module: theme_cobalt
|
||||||
|
#: model_terms:theme.ir.ui.view,arch:theme_cobalt.s_picture
|
||||||
|
msgid "<em>Our office in Dhaka</em>"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: theme_cobalt
|
||||||
|
#: model_terms:theme.ir.ui.view,arch:theme_cobalt.s_color_blocks_2
|
||||||
|
msgid ""
|
||||||
|
"Are you a startup or a seasoned company looking for a new brand identity?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: theme_cobalt
|
||||||
|
#: model_terms:theme.ir.ui.view,arch:theme_cobalt.s_color_blocks_2
|
||||||
|
msgid "Are you an established brand looking for ongoing creative services?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: theme_cobalt
|
||||||
|
#: model_terms:theme.ir.ui.view,arch:theme_cobalt.s_banner
|
||||||
|
msgid ""
|
||||||
|
"Building game-changing digital experiences designed to set your brand apart."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: theme_cobalt
|
||||||
|
#: model_terms:theme.ir.ui.view,arch:theme_cobalt.s_text_image
|
||||||
|
msgid "Digital Transformation"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: theme_cobalt
|
||||||
|
#: model_terms:theme.ir.ui.view,arch:theme_cobalt.s_three_columns
|
||||||
|
msgid "Latest projects"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: theme_cobalt
|
||||||
|
#: model_terms:theme.ir.ui.view,arch:theme_cobalt.s_text_image
|
||||||
|
msgid ""
|
||||||
|
"Leader in digital business, we’re helping companies of all sizes to thrive "
|
||||||
|
"in an ever-changing landscape."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: theme_cobalt
|
||||||
|
#: model_terms:theme.ir.ui.view,arch:theme_cobalt.s_banner
|
||||||
|
#: model_terms:theme.ir.ui.view,arch:theme_cobalt.s_image_text
|
||||||
|
#: model_terms:theme.ir.ui.view,arch:theme_cobalt.s_text_image
|
||||||
|
msgid "Marketing"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: theme_cobalt
|
||||||
|
#: model_terms:theme.ir.ui.view,arch:theme_cobalt.s_title
|
||||||
|
msgid "Projects"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: theme_cobalt
|
||||||
|
#: model_terms:theme.ir.ui.view,arch:theme_cobalt.s_call_to_action
|
||||||
|
msgid "START NOW"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: theme_cobalt
|
||||||
|
#: model_terms:theme.ir.ui.view,arch:theme_cobalt.s_banner
|
||||||
|
msgid "Start now"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: theme_cobalt
|
||||||
|
#: model_terms:theme.ir.ui.view,arch:theme_cobalt.s_image_text
|
||||||
|
msgid "Strategy synchronising multiple channels"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: theme_cobalt
|
||||||
|
#: model_terms:theme.ir.ui.view,arch:theme_cobalt.s_banner
|
||||||
|
msgid "The ultimate marketing platform for brands"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: theme_cobalt
|
||||||
|
#: model:ir.model,name:theme_cobalt.model_theme_utils
|
||||||
|
msgid "Theme Utils"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: theme_cobalt
|
||||||
|
#: model_terms:theme.ir.ui.view,arch:theme_cobalt.s_image_text
|
||||||
|
msgid ""
|
||||||
|
"We create a consistent customer experience through a detailed digital "
|
||||||
|
"strategy built on precise customer research."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: theme_cobalt
|
||||||
|
#: model_terms:theme.ir.ui.view,arch:theme_cobalt.s_text_image
|
||||||
|
msgid ""
|
||||||
|
"We have collected solid experience in building native and cross-platform "
|
||||||
|
"mobile applications and websites. Check our portfolio from clients around "
|
||||||
|
"the world."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: theme_cobalt
|
||||||
|
#: model_terms:theme.ir.ui.view,arch:theme_cobalt.s_text_image
|
||||||
|
msgid "Web & App Development"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: theme_cobalt
|
||||||
|
#: model_terms:theme.ir.ui.view,arch:theme_cobalt.s_text_image
|
||||||
|
msgid "What we can do, <b>for you</b><br/>"
|
||||||
|
msgstr ""
|
|
@ -0,0 +1,3 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||||
|
from . import theme_cobalt
|
|
@ -0,0 +1,10 @@
|
||||||
|
from odoo import models
|
||||||
|
|
||||||
|
|
||||||
|
class ThemeCobalt(models.AbstractModel):
|
||||||
|
_inherit = 'theme.utils'
|
||||||
|
|
||||||
|
def _theme_cobalt_post_copy(self, mod):
|
||||||
|
self.enable_asset("website.ripple_effect_scss")
|
||||||
|
self.enable_asset("website.ripple_effect_js")
|
||||||
|
self.enable_header_off_canvas()
|
After Width: | Height: | Size: 115 KiB |
After Width: | Height: | Size: 70 KiB |
After Width: | Height: | Size: 148 KiB |
After Width: | Height: | Size: 75 KiB |
After Width: | Height: | Size: 65 KiB |
After Width: | Height: | Size: 39 KiB |
After Width: | Height: | Size: 47 KiB |
After Width: | Height: | Size: 212 KiB |
After Width: | Height: | Size: 81 KiB |
After Width: | Height: | Size: 104 KiB |
After Width: | Height: | Size: 115 KiB |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 4.2 KiB |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 4.8 KiB |
After Width: | Height: | Size: 366 KiB |
After Width: | Height: | Size: 516 KiB |
After Width: | Height: | Size: 234 KiB |
After Width: | Height: | Size: 170 KiB |
After Width: | Height: | Size: 125 KiB |
After Width: | Height: | Size: 65 KiB |
After Width: | Height: | Size: 85 KiB |
After Width: | Height: | Size: 87 KiB |
After Width: | Height: | Size: 66 KiB |
After Width: | Height: | Size: 61 KiB |
After Width: | Height: | Size: 168 KiB |
After Width: | Height: | Size: 62 KiB |
After Width: | Height: | Size: 72 KiB |
After Width: | Height: | Size: 151 KiB |
After Width: | Height: | Size: 263 KiB |
After Width: | Height: | Size: 176 KiB |
After Width: | Height: | Size: 48 KiB |
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 7.6 KiB |
After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 9.3 KiB |
After Width: | Height: | Size: 7.4 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 334 KiB |
After Width: | Height: | Size: 354 KiB |
After Width: | Height: | Size: 173 KiB |
After Width: | Height: | Size: 171 KiB |
After Width: | Height: | Size: 186 KiB |
|
@ -0,0 +1,45 @@
|
||||||
|
/** @odoo-module */
|
||||||
|
|
||||||
|
import wTourUtils from 'website.tour_utils';
|
||||||
|
|
||||||
|
const snippets = [
|
||||||
|
{
|
||||||
|
id: 's_banner',
|
||||||
|
name: 'Banner',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 's_references',
|
||||||
|
name: 'References',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 's_text_image',
|
||||||
|
name: 'Text - Image',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 's_color_blocks_2',
|
||||||
|
name: 'Big Boxes',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 's_title',
|
||||||
|
name: 'Title',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 's_image_gallery',
|
||||||
|
name: 'Images Wall',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
wTourUtils.registerThemeHomepageTour("cobalt_tour", [
|
||||||
|
wTourUtils.assertCssVariable('--color-palettes-name', '"cobalt-1"'),
|
||||||
|
wTourUtils.dragNDrop(snippets[0]),
|
||||||
|
wTourUtils.clickOnText(snippets[0], 'h1', 'top'),
|
||||||
|
wTourUtils.goBackToBlocks(),
|
||||||
|
|
||||||
|
wTourUtils.dragNDrop(snippets[1]),
|
||||||
|
wTourUtils.dragNDrop(snippets[2]),
|
||||||
|
wTourUtils.dragNDrop(snippets[3]),
|
||||||
|
|
||||||
|
wTourUtils.dragNDrop(snippets[4]),
|
||||||
|
wTourUtils.dragNDrop(snippets[5]),
|
||||||
|
]);
|
|
@ -0,0 +1,8 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// Bootstrap Overridden
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Headings
|
||||||
|
|
||||||
|
$headings-line-height: 1.1 !default;
|
||||||
|
$headings-font-weight: 600 !default;
|
|
@ -0,0 +1,75 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// Fonts
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
$o-theme-h1-font-size-multiplier: (62 / 16);
|
||||||
|
$o-theme-h2-font-size-multiplier: (48 / 16);
|
||||||
|
$o-theme-h3-font-size-multiplier: (32 / 16);
|
||||||
|
$o-theme-h4-font-size-multiplier: (24 / 16);
|
||||||
|
$o-theme-h5-font-size-multiplier: (20 / 16);
|
||||||
|
$o-theme-h6-font-size-multiplier: 1.1;
|
||||||
|
|
||||||
|
$o-theme-font-configs: (
|
||||||
|
'Inter': (
|
||||||
|
'family': ('Inter', serif),
|
||||||
|
'url': 'Inter:400,400i,600,600i,800,800i',
|
||||||
|
),
|
||||||
|
|
||||||
|
'Abril Fatface': (
|
||||||
|
'family': ('Abril Fatface', serif),
|
||||||
|
'url': 'Abril+Fatface:300,300i,400,400i,700,700i',
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// Website customizations
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
$o-website-values-palettes: (
|
||||||
|
(
|
||||||
|
'color-palettes-name': 'cobalt-1',
|
||||||
|
|
||||||
|
'font': 'Inter',
|
||||||
|
|
||||||
|
'hamburger-type': 'off-canvas',
|
||||||
|
'menu-box-shadow': false,
|
||||||
|
|
||||||
|
'btn-ripple': true,
|
||||||
|
'btn-secondary-outline': true,
|
||||||
|
'btn-border-radius': 2px,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
$o-selected-color-palettes-names: append($o-selected-color-palettes-names, 'cobalt-1');
|
||||||
|
|
||||||
|
$o-color-palettes-compatibility-indexes: (
|
||||||
|
1: 'cobalt-1',
|
||||||
|
2: 'generic-1',
|
||||||
|
3: 'generic-2',
|
||||||
|
4: 'generic-3',
|
||||||
|
5: 'generic-4',
|
||||||
|
6: 'generic-5',
|
||||||
|
7: 'generic-6',
|
||||||
|
8: 'generic-7',
|
||||||
|
9: 'generic-8',
|
||||||
|
10: 'generic-9',
|
||||||
|
11: 'generic-10',
|
||||||
|
12: 'generic-11',
|
||||||
|
13: 'generic-12',
|
||||||
|
14: 'generic-13',
|
||||||
|
15: 'generic-14',
|
||||||
|
16: 'generic-15',
|
||||||
|
17: 'generic-16',
|
||||||
|
18: 'generic-17',
|
||||||
|
);
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// Shapes
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// Keep for compatibility
|
||||||
|
$o-bg-shapes: change-shape-colors-mapping('web_editor', 'Blobs/03', (2: 2));
|
||||||
|
$o-bg-shapes: change-shape-colors-mapping('web_editor', 'Bold/01', (2: 2));
|
||||||
|
$o-bg-shapes: add-footer-shape-colors-mapping('web_editor', 'Bold/01', (2: 'footer'));
|
||||||
|
// New
|
||||||
|
$o-bg-shapes: change-shape-colors-mapping('web_editor', 'Origins/11_001', (3: 1));
|
|
@ -0,0 +1,250 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<odoo>
|
||||||
|
|
||||||
|
<!-- ==== Banner ===== -->
|
||||||
|
<template id="s_banner" inherit_id="website.s_banner" name="Cobalt s_banner">
|
||||||
|
<!-- Content -->
|
||||||
|
<xpath expr="//section" position="attributes">
|
||||||
|
<attribute name="class" add="o_cc o_cc2 pt152 pb128" remove="parallax pt96 pb96" separator=" "/>
|
||||||
|
<attribute name="data-oe-shape-data">{"shape":"web_editor/Origins/11_001","flip":["y"]}</attribute>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="//section/div" position="before">
|
||||||
|
<div class="o_we_shape o_web_editor_Origins_11_001 o_we_flip_y"/>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="//div[hasclass('col-lg-6')]" position="attributes">
|
||||||
|
<attribute name="class" remove="jumbotron rounded pt32 pb32 o_cc o_cc1" separator=" "/>
|
||||||
|
</xpath>
|
||||||
|
<!-- Image -->
|
||||||
|
<xpath expr="//div[hasclass('col-lg-6')]" position="after">
|
||||||
|
<div class="pt16 pb16 o_colored_level col-lg-5 offset-lg-1">
|
||||||
|
<img src="/web_editor/shape/theme_cobalt/s_banner.svg?c1=o-color-1" style="width: 100%;" alt="Marketing"/>
|
||||||
|
</div>
|
||||||
|
</xpath>
|
||||||
|
<!-- Content -->
|
||||||
|
<xpath expr="//h1" position="replace" mode="inner">
|
||||||
|
The ultimate marketing platform for brands
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="//p" position="replace">
|
||||||
|
<p class="lead">Building game-changing digital experiences designed to set your brand apart.</p>
|
||||||
|
<p><br/></p>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="//t[@t-esc='cta_btn_text']" position="replace" mode="inner">
|
||||||
|
Start now
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="//a" position="attributes">
|
||||||
|
<attribute name="class" add="btn-lg flat" separator=" "/>
|
||||||
|
</xpath>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- ==== Image-Text ===== -->
|
||||||
|
<template id="s_image_text" inherit_id="website.s_image_text" name="Cobalt s_image_text">
|
||||||
|
<!-- Section -->
|
||||||
|
<xpath expr="//section" position="attributes">
|
||||||
|
<attribute name="class" add="pt152 pb128" remove="pt32 pb32" separator=" "/>
|
||||||
|
<attribute name="data-oe-shape-data">{"shape":"web_editor/Blobs/03","flip":[]}</attribute>
|
||||||
|
</xpath>
|
||||||
|
|
||||||
|
<xpath expr="//section/div" position="before">
|
||||||
|
<div class="o_we_shape o_web_editor_Blobs_03"/>
|
||||||
|
</xpath>
|
||||||
|
<!-- Layout -->
|
||||||
|
<xpath expr="//div[hasclass('col-lg-6')][2]" position="attributes">
|
||||||
|
<attribute name="class" add="col-lg-5 offset-lg-1" remove="col-lg-6" separator=" "/>
|
||||||
|
</xpath>
|
||||||
|
<!-- Image -->
|
||||||
|
<xpath expr="//img" position="replace">
|
||||||
|
<img src="/web_editor/shape/theme_cobalt/s_image_text.svg?c1=o-color-1" style="width: 100%;" alt="Marketing"/>
|
||||||
|
</xpath>
|
||||||
|
<!-- Content -->
|
||||||
|
<xpath expr="//h2" position="replace" mode="inner">
|
||||||
|
Strategy synchronising multiple channels
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="//p" position="replace" mode="inner">
|
||||||
|
We create a consistent customer experience through a detailed digital strategy built on precise customer research.
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="//p[last()-1]" position="replace"/>
|
||||||
|
<xpath expr="//a[hasclass('btn')]" position="replace"/>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- ==== Text-Image ===== -->
|
||||||
|
<template id="s_text_image" inherit_id="website.s_text_image" name="Cobalt s_text_image">
|
||||||
|
<!-- Section -->
|
||||||
|
<xpath expr="//section" position="attributes">
|
||||||
|
<attribute name="class" add="pt80 pb88" remove="pt32 pb32" separator=" "/>
|
||||||
|
</xpath>
|
||||||
|
<!-- Content -->
|
||||||
|
<xpath expr="//h2" position="replace" mode="inner">
|
||||||
|
What we can do, <b>for you</b><br/>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="//img" position="replace">
|
||||||
|
<img src="/web_editor/shape/theme_cobalt/s_text_image.svg?c1=o-color-1" style="width: 100%;" alt="Marketing"/>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="//p" position="replace"/>
|
||||||
|
<xpath expr="//p" position="replace">
|
||||||
|
<h5>Digital Transformation</h5>
|
||||||
|
<p>Leader in digital business, we’re helping companies of all sizes to thrive in an ever-changing landscape.</p>
|
||||||
|
<br/>
|
||||||
|
<h5>Web & App Development</h5>
|
||||||
|
<p>We have collected solid experience in building native and cross-platform mobile applications and websites. Check our portfolio from clients around the world.</p>
|
||||||
|
<br/>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="//div[hasclass('col-lg-6')]" position="attributes">
|
||||||
|
<attribute name="class" add="col-lg-5" remove="col-lg-6" separator=" "/>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="//div[hasclass('col-lg-6')]" position="attributes">
|
||||||
|
<attribute name="class" add="col-lg-7" remove="col-lg-6" separator=" "/>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="//a[hasclass('btn')]" position="replace"/>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- ======== TITLE ======== -->
|
||||||
|
<template id="s_title" inherit_id="website.s_title" name="Cobalt s_title">
|
||||||
|
<xpath expr="//section" position="attributes">
|
||||||
|
<attribute name="class" add="pt56" remove="pt40" separator=" "/>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="//h1" position="replace" mode="inner">
|
||||||
|
Projects
|
||||||
|
</xpath>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- ======== QUOTES ======== -->
|
||||||
|
<template id="s_quotes_carousel" inherit_id="website.s_quotes_carousel" name="Cobalt s_quotes_carousel">
|
||||||
|
<!-- Assign slide3 as 'active' and move it in first position -->
|
||||||
|
<xpath expr="//div[hasclass('carousel-inner')]/div" position="attributes">
|
||||||
|
<attribute name="class" remove="active" separator=" "/>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="//div[hasclass('carousel-inner')]/div[3]" position="attributes">
|
||||||
|
<attribute name="class" add="active" separator=" "/>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="//div[hasclass('carousel-inner')]/div" position="before">
|
||||||
|
<xpath expr="//div[hasclass('carousel-inner')]/div[3]" position="move"/>
|
||||||
|
</xpath>
|
||||||
|
<!-- Adjust (new-)slide3 bg position -->
|
||||||
|
<xpath expr="//div[hasclass('carousel-inner')]/div[3]" position="attributes">
|
||||||
|
<attribute name="style" remove="background-position: 50% 50%;" add="background-position: 50% 20%;" separator=";"/>
|
||||||
|
</xpath>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- ==== References ===== -->
|
||||||
|
<template id="s_references" inherit_id="website.s_references" name="Cobalt s_references">
|
||||||
|
<xpath expr="//section" position="attributes">
|
||||||
|
<attribute name="class" add="o_cc o_cc1" remove="pt48 pb32" separator=" "/>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="//h2" position="replace"/>
|
||||||
|
<xpath expr="//p" position="replace"/>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- ==== Three Columns ===== -->
|
||||||
|
<template id="s_three_columns" inherit_id="website.s_three_columns" name="Cobalt s_three_columns">
|
||||||
|
<xpath expr="//section" position="attributes">
|
||||||
|
<attribute name="class" remove="o_cc o_cc2 pt32 pb32" add="pt72 pb120" separator=" "/>
|
||||||
|
<attribute name="data-oe-shape-data">{"shape":"web_editor/Bold/01","flip":["x"]}</attribute>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="//section/div" position="before">
|
||||||
|
<div class="o_we_shape o_web_editor_Bold_01 o_we_flip_x"/>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="//div[hasclass('row')]" position="before">
|
||||||
|
<h2 style="text-align: center;">Latest projects</h2>
|
||||||
|
<p/>
|
||||||
|
</xpath>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- ==== Call To Action ===== -->
|
||||||
|
<template id="s_call_to_action" inherit_id="website.s_call_to_action" name="Cobalt s_call_to_action">
|
||||||
|
<xpath expr="//t[@t-esc='cta_btn_text']" position="replace" mode="inner">
|
||||||
|
START NOW
|
||||||
|
</xpath>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- ==== Picture ===== -->
|
||||||
|
<template id="s_picture" inherit_id="website.s_picture" name="Cobalt s_picture">
|
||||||
|
<xpath expr="//section" position="attributes">
|
||||||
|
<attribute name="class" add="pt72 overflow-hidden" remove="o_cc o_cc2 pt48" separator=" "/>
|
||||||
|
<attribute name="data-oe-shape-data">{"shape":"web_editor/Bold/01","flip":["y"]}</attribute>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="//section/div" position="before">
|
||||||
|
<div class="o_we_shape o_web_editor_Bold_01 o_we_flip_y"></div>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="//div[hasclass('container')]" position="attributes">
|
||||||
|
<attribute name="class" add="container-fluid px-5 px-lg-0" remove="container" separator=" "/>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="//img" position="attributes">
|
||||||
|
<attribute name="class" add="img-fluid" remove="img-thumbnail padding-large" separator=" "/>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="//figcaption" position="replace">
|
||||||
|
<figcaption class="text-400"><em>Our office in Dhaka</em></figcaption>
|
||||||
|
</xpath>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- ==== Images Gallery ===== -->
|
||||||
|
<template id="s_image_gallery" inherit_id="website.s_image_gallery">
|
||||||
|
<!-- Section -->
|
||||||
|
<xpath expr="//section" position="attributes">
|
||||||
|
<attribute name="class" add="s_image_gallery_cover" separator=" "/>
|
||||||
|
</xpath>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- ==== Images Wall ===== -->
|
||||||
|
<template id="s_images_wall" inherit_id="website.s_images_wall">
|
||||||
|
<!-- Section -->
|
||||||
|
<xpath expr="//section" position="attributes">
|
||||||
|
<attribute name="class" add="pb64" remove="pb24" separator=" "/>
|
||||||
|
</xpath>
|
||||||
|
<!-- Delete 3rd col -->
|
||||||
|
<xpath expr="(//div[hasclass('col-lg-4')])[last()]" position="replace"/>
|
||||||
|
<!-- Switch to col-4-->
|
||||||
|
<xpath expr="//div[hasclass('col-lg-4')]" position="attributes">
|
||||||
|
<attribute name="class" add="col-lg-6" remove="col-lg-4" separator=" "/>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="//div[hasclass('col-lg-4')][1]" position="attributes">
|
||||||
|
<attribute name="class" add="col-lg-6" remove="col-lg-4" separator=" "/>
|
||||||
|
</xpath>
|
||||||
|
<!-- Add one more row of images -->
|
||||||
|
<xpath expr="//div[hasclass('col-lg-6')]/img" position="after">
|
||||||
|
<img class="img img-fluid d-block" src="/web/image/website.library_image_14" data-index="1" data-name="Image"/>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="//div[hasclass('col-lg-6')][2]/img" position="after">
|
||||||
|
<img class="img img-fluid d-block" src="/web/image/website.library_image_16" data-index="1" data-name="Image"/>
|
||||||
|
</xpath>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- ======== BIG BOXES ======== -->
|
||||||
|
<template id="s_color_blocks_2" inherit_id="website.s_color_blocks_2" name="Cobalt s_color_blocks_2">
|
||||||
|
<!-- Left column -->
|
||||||
|
<xpath expr="//div[hasclass('col-lg-6')]" position="attributes">
|
||||||
|
<attribute name="class" add="o_cc4" remove="o_cc3" separator=" "/>
|
||||||
|
<attribute name="style" add="background-image: linear-gradient(135deg, var(--o-color-2) 0%, var(--o-color-1) 100%);" separator=";"/>
|
||||||
|
</xpath>
|
||||||
|
<!-- Left column - Icon -->
|
||||||
|
<xpath expr="//div[hasclass('col-lg-6')]//i" position="replace"/>
|
||||||
|
<!-- Left column - Text -->
|
||||||
|
<xpath expr="//div[hasclass('col-lg-6')]//p" position="replace"/>
|
||||||
|
<!-- Left column - Title -->
|
||||||
|
<xpath expr="//div[hasclass('col-lg-6')][1]//h2" position="replace" mode="inner">
|
||||||
|
Are you a startup or a seasoned company looking for a new brand identity?
|
||||||
|
</xpath>
|
||||||
|
<!-- Left column - Button -->
|
||||||
|
<xpath expr="//div[hasclass('col-lg-6')]//a[hasclass('btn')]" position="attributes">
|
||||||
|
<attribute name="class" add="btn-lg flat" separator=" "/>
|
||||||
|
</xpath>
|
||||||
|
|
||||||
|
<!-- Right column -->
|
||||||
|
<xpath expr="//div[hasclass('col-lg-6')][2]" position="attributes">
|
||||||
|
<attribute name="class" add="o_cc3" remove="o_cc5" separator=" "/>
|
||||||
|
<attribute name="style" add="background-image: linear-gradient(315deg, var(--o-color-2) 0%, var(--o-color-1) 100%);" separator=";"/>
|
||||||
|
</xpath>
|
||||||
|
<!-- Right column - Filter -->
|
||||||
|
<xpath expr="//div[hasclass('col-lg-6')][2]//i" position="replace"/>
|
||||||
|
<!-- Right column - Title -->
|
||||||
|
<xpath expr="//div[hasclass('col-lg-6')][2]//h2" position="replace" mode="inner">
|
||||||
|
Are you an established brand looking for ongoing creative services?
|
||||||
|
</xpath>
|
||||||
|
<!-- Right column - Text -->
|
||||||
|
<xpath expr="//div[hasclass('col-lg-6')][2]//p" position="replace"/>
|
||||||
|
<!-- Right column - Button -->
|
||||||
|
<xpath expr="//div[hasclass('col-lg-6')][2]//a[hasclass('btn')]" position="attributes">
|
||||||
|
<attribute name="class" add="btn-lg flat" separator=" "/>
|
||||||
|
</xpath>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
</odoo>
|
|
@ -0,0 +1,234 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<odoo>
|
||||||
|
|
||||||
|
<!-- ======== Change default snippets images ======== -->
|
||||||
|
<!-- Cover -->
|
||||||
|
<record id="s_cover_default_image" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.s_cover_default_image</field>
|
||||||
|
<field name="name">website.s_cover_default_image</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_cover.jpg</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Banner -->
|
||||||
|
<record id="s_banner_default_image" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.s_banner_default_image</field>
|
||||||
|
<field name="name">website.s_banner_default_image</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_banner.jpg</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- (Big) Picture -->
|
||||||
|
<record id="s_picture_default_image" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.s_picture_default_image</field>
|
||||||
|
<field name="name">website.s_picture_default_image</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_picture.jpg</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Columns -->
|
||||||
|
<record id="library_image_11" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.library_image_11</field>
|
||||||
|
<field name="name">website.library_image_11</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_three_columns_1.jpg</field>
|
||||||
|
</record>
|
||||||
|
<record id="s_three_columns_default_image_2" model="theme.ir.attachment">
|
||||||
|
<field name="key">s_three_columns_default_image_2</field>
|
||||||
|
<field name="name">s_three_columns_default_image_2</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_three_columns_2.jpg</field>
|
||||||
|
</record>
|
||||||
|
<record id="library_image_07" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.library_image_07</field>
|
||||||
|
<field name="name">website.library_image_07</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_three_columns_3.jpg</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Masonry Blocks -->
|
||||||
|
<record id="s_masonry_block_default_image_1" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.s_masonry_block_default_image_1</field>
|
||||||
|
<field name="name">website.s_masonry_block_default_image_1</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_masonry_block_1.jpg</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Carousel Blocks -->
|
||||||
|
<record id="s_carousel_default_image_1" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.s_carousel_default_image_1</field>
|
||||||
|
<field name="name">website.s_carousel_default_image_1</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_carousel_1.jpg</field>
|
||||||
|
</record>
|
||||||
|
<record id="s_carousel_default_image_2" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.s_carousel_default_image_2</field>
|
||||||
|
<field name="name">website.s_carousel_default_image_2</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_carousel_2.jpg</field>
|
||||||
|
</record>
|
||||||
|
<record id="s_carousel_default_image_3" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.s_carousel_default_image_3</field>
|
||||||
|
<field name="name">website.s_carousel_default_image_3</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_carousel_3.jpg</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Parallax -->
|
||||||
|
<record id="s_parallax_default_image" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.s_parallax_default_image</field>
|
||||||
|
<field name="name">website.s_parallax_default_image</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_parallax.jpg</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Team Snippet -->
|
||||||
|
<record id="s_company_team_image_1" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.s_company_team_image_1</field>
|
||||||
|
<field name="name">website.s_company_team_image_1</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_company_team_image_1.jpg</field>
|
||||||
|
</record>
|
||||||
|
<record id="s_company_team_image_2" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.s_company_team_image_2</field>
|
||||||
|
<field name="name">website.s_company_team_image_2</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_company_team_image_2.jpg</field>
|
||||||
|
</record>
|
||||||
|
<record id="s_company_team_image_3" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.s_company_team_image_3</field>
|
||||||
|
<field name="name">website.s_company_team_image_3</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_company_team_image_3.jpg</field>
|
||||||
|
</record>
|
||||||
|
<record id="s_company_team_image_4" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.s_company_team_image_4</field>
|
||||||
|
<field name="name">website.s_company_team_image_4</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_company_team_image_4.jpg</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Quotes Carousel -->
|
||||||
|
<!-- Avatar 1 -->
|
||||||
|
<record id="s_quotes_carousel_demo_image_3" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.s_quotes_carousel_demo_image_3</field>
|
||||||
|
<field name="name">website.s_quotes_carousel_demo_image_3</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_company_team_image_4.jpg</field>
|
||||||
|
</record>
|
||||||
|
<!-- Avatar 2 -->
|
||||||
|
<record id="s_quotes_carousel_demo_image_4" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.s_quotes_carousel_demo_image_4</field>
|
||||||
|
<field name="name">website.s_quotes_carousel_demo_image_4</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_company_team_image_2.jpg</field>
|
||||||
|
</record>
|
||||||
|
<!-- BG 2 -->
|
||||||
|
<record id="s_quotes_carousel_demo_image_1" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.s_quotes_carousel_demo_image_1</field>
|
||||||
|
<field name="name">website.s_quotes_carousel_demo_image_1</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_quotes_carousel_bg_slide2.jpg</field>
|
||||||
|
</record>
|
||||||
|
<!-- Avatar 3 -->
|
||||||
|
<record id="s_quotes_carousel_demo_image_5" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.s_quotes_carousel_demo_image_5</field>
|
||||||
|
<field name="name">website.s_quotes_carousel_demo_image_5</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_company_team_image_3.jpg</field>
|
||||||
|
</record>
|
||||||
|
<!-- BG 3 -->
|
||||||
|
<record id="s_quotes_carousel_demo_image_2" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.s_quotes_carousel_demo_image_2</field>
|
||||||
|
<field name="name">website.s_quotes_carousel_demo_image_2</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_quotes_carousel_bg_slide3.jpg</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Product Catalog (menu) -->
|
||||||
|
<record id="s_product_catalog_default_image" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.s_product_catalog_default_image</field>
|
||||||
|
<field name="name">website.s_product_catalog_default_image</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_product_catalog.jpg</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Media List -->
|
||||||
|
<record id="s_media_list_default_image_1" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.s_media_list_default_image_1</field>
|
||||||
|
<field name="name">website.s_media_list_default_image_1</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_media_list_1.jpg</field>
|
||||||
|
</record>
|
||||||
|
<record id="s_media_list_default_image_2" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.s_media_list_default_image_2</field>
|
||||||
|
<field name="name">website.s_media_list_default_image_2</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_media_list_2.jpg</field>
|
||||||
|
</record>
|
||||||
|
<record id="s_media_list_default_image_3" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.s_media_list_default_image_3</field>
|
||||||
|
<field name="name">website.s_media_list_default_image_3</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_media_list_3.jpg</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Product List -->
|
||||||
|
<record id="s_product_list_default_image_1" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.s_product_list_default_image_1</field>
|
||||||
|
<field name="name">website.s_product_list_default_image_1</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_product_list_1.jpg</field>
|
||||||
|
</record>
|
||||||
|
<record id="s_product_list_default_image_2" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.s_product_list_default_image_2</field>
|
||||||
|
<field name="name">website.s_product_list_default_image_2</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_product_list_2.jpg</field>
|
||||||
|
</record>
|
||||||
|
<record id="s_product_list_default_image_3" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.s_product_list_default_image_3</field>
|
||||||
|
<field name="name">website.s_product_list_default_image_3</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_product_list_3.jpg</field>
|
||||||
|
</record>
|
||||||
|
<record id="s_product_list_default_image_4" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.s_product_list_default_image_4</field>
|
||||||
|
<field name="name">website.s_product_list_default_image_4</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_product_list_4.jpg</field>
|
||||||
|
</record>
|
||||||
|
<record id="s_product_list_default_image_5" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.s_product_list_default_image_5</field>
|
||||||
|
<field name="name">website.s_product_list_default_image_5</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_product_list_5.jpg</field>
|
||||||
|
</record>
|
||||||
|
<record id="s_product_list_default_image_6" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.s_product_list_default_image_6</field>
|
||||||
|
<field name="name">website.s_product_list_default_image_6</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_product_list_6.jpg</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Popup -->
|
||||||
|
<record id="s_popup_default_image" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.s_popup_default_image</field>
|
||||||
|
<field name="name">website.s_popup_default_image</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_popup.jpeg</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Images Wall -->
|
||||||
|
<record id="library_image_10" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.library_image_10</field>
|
||||||
|
<field name="name">website.library_image_10</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_image_4.jpg</field>
|
||||||
|
</record>
|
||||||
|
<record id="library_image_13" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.library_image_13</field>
|
||||||
|
<field name="name">website.library_image_13</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_image_2.jpg</field>
|
||||||
|
</record>
|
||||||
|
<record id="library_image_05" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.library_image_05</field>
|
||||||
|
<field name="name">website.library_image_05</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_image_5.jpg</field>
|
||||||
|
</record>
|
||||||
|
<record id="library_image_16" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.library_image_16</field>
|
||||||
|
<field name="name">website.library_image_16</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_image_3.jpg</field>
|
||||||
|
</record>
|
||||||
|
<record id="library_image_14" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.library_image_14</field>
|
||||||
|
<field name="name">website.library_image_14</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_image_6.jpg</field>
|
||||||
|
</record>
|
||||||
|
<!-- Images Gallery -->
|
||||||
|
<record id="library_image_08" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.library_image_08</field>
|
||||||
|
<field name="name">website.library_image_08</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_gallery_1.jpg</field>
|
||||||
|
</record>
|
||||||
|
<record id="library_image_03" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.library_image_03</field>
|
||||||
|
<field name="name">website.library_image_03</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_image_1.jpg</field>
|
||||||
|
</record>
|
||||||
|
<record id="library_image_02" model="theme.ir.attachment">
|
||||||
|
<field name="key">website.library_image_02</field>
|
||||||
|
<field name="name">website.library_image_02</field>
|
||||||
|
<field name="url">/theme_cobalt/static/src/img/pictures/s_gallery_3.jpg</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
</odoo>
|
|
@ -0,0 +1,27 @@
|
||||||
|
Odoo Proprietary License v1.0
|
||||||
|
|
||||||
|
This software and associated files (the "Software") may only be used (executed,
|
||||||
|
modified, executed after modifications) if you have purchased a valid license
|
||||||
|
from the authors, typically via Odoo Apps, or if you have received a written
|
||||||
|
agreement from the authors of the Software (see the COPYRIGHT file).
|
||||||
|
|
||||||
|
You may develop Odoo modules that use the Software as a library (typically
|
||||||
|
by depending on it, importing it and using its resources), but without copying
|
||||||
|
any source code or material from the Software. You may distribute those
|
||||||
|
modules under the license of your choice, provided that this license is
|
||||||
|
compatible with the terms of the Odoo Proprietary License (For example:
|
||||||
|
LGPL, MIT, or proprietary licenses similar to this one).
|
||||||
|
|
||||||
|
It is forbidden to publish, distribute, sublicense, or sell copies of the Software
|
||||||
|
or modified copies of the Software.
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice must be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||||
|
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||||
|
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
|
DEALINGS IN THE SOFTWARE.
|
|
@ -0,0 +1,3 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||||
|
from . import models
|
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
'name': 'Theme Common',
|
||||||
|
'summary': 'Snippets Library',
|
||||||
|
'description': 'Snippets library containing snippets to be styled in themes.',
|
||||||
|
'category': 'Hidden',
|
||||||
|
'version': '1.1',
|
||||||
|
'depends': ['website'],
|
||||||
|
'data': [
|
||||||
|
'data/data.xml',
|
||||||
|
'views/old_snippets/s_column.xml',
|
||||||
|
'views/old_snippets/s_page_header.xml',
|
||||||
|
'views/old_snippets/s_three_columns_circle.xml',
|
||||||
|
],
|
||||||
|
'application': False,
|
||||||
|
'license': 'LGPL-3',
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<odoo>
|
||||||
|
</odoo>
|
|
@ -0,0 +1,474 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<odoo>
|
||||||
|
|
||||||
|
<record id="theme_common.s_clonable_boxes_000_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_clonable_boxes_000_scss</field>
|
||||||
|
<field name="name">Clonable boxes 000 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_clonable_boxes/000.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_banner_parallax_000_variables_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_banner_parallax_000_variables_scss</field>
|
||||||
|
<field name="name">Banner parallax 000 variables SCSS</field>
|
||||||
|
<field name="bundle">web._assets_primary_variables</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_banner_parallax/000_variables.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_banner_parallax_000_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_banner_parallax_000_scss</field>
|
||||||
|
<field name="name">Banner parallax 000 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_banner_parallax/000.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_features_carousel_000_variables_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_features_carousel_000_variables_scss</field>
|
||||||
|
<field name="name">Features carousel 000 variables SCSS</field>
|
||||||
|
<field name="bundle">web._assets_primary_variables</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_features_carousel/000_variables.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_features_carousel_000_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_features_carousel_000_scss</field>
|
||||||
|
<field name="name">Features carousel 000 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_features_carousel/000.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_text_picture_text_000_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_text_picture_text_000_scss</field>
|
||||||
|
<field name="name">Text picture text 000 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_text_picture_text/000.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_color_blocks_4_000_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_color_blocks_4_000_scss</field>
|
||||||
|
<field name="name">Color blocks 4 000 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_color_blocks_4/000.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_products_carousel_000_variables_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_products_carousel_000_variables_scss</field>
|
||||||
|
<field name="name">Products carousel 000 variables SCSS</field>
|
||||||
|
<field name="bundle">web._assets_primary_variables</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_products_carousel/000_variables.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_products_carousel_000_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_products_carousel_000_scss</field>
|
||||||
|
<field name="name">Products carousel 000 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_products_carousel/000.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_two_columns_000_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_two_columns_000_scss</field>
|
||||||
|
<field name="name">Two columns 000 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_two_columns/000.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_big_image_parallax_000_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_big_image_parallax_000_scss</field>
|
||||||
|
<field name="name">Big image parallax 000 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_big_image_parallax/000.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_news_carousel_000_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_news_carousel_000_scss</field>
|
||||||
|
<field name="name">News carousel 000 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_news_carousel/000.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_event_list_000_variables_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_event_list_000_variables_scss</field>
|
||||||
|
<field name="name">Event list 000 variables SCSS</field>
|
||||||
|
<field name="bundle">web._assets_primary_variables</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_event_list/000_variables.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_event_list_000_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_event_list_000_scss</field>
|
||||||
|
<field name="name">Event list 000 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_event_list/000.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_images_row_000_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_images_row_000_scss</field>
|
||||||
|
<field name="name">Images row 000 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_images_row/000.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_profile_000_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_profile_000_scss</field>
|
||||||
|
<field name="name">Profile 000 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_profile/000.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_showcase_slider_000_variables_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_showcase_slider_000_variables_scss</field>
|
||||||
|
<field name="name">Showcase slider 000 variables SCSS</field>
|
||||||
|
<field name="bundle">web._assets_primary_variables</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_showcase_slider/000_variables.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_showcase_slider_000_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_showcase_slider_000_scss</field>
|
||||||
|
<field name="name">Showcase slider 000 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_showcase_slider/000.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_showcase_slider_000_js" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_showcase_slider_000_js</field>
|
||||||
|
<field name="name">Showcase slider 000 JS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_showcase_slider/000.js</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_full_menu_000_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_full_menu_000_scss</field>
|
||||||
|
<field name="name">Full menu 000 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_full_menu/000.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_team_profiles_000_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_team_profiles_000_scss</field>
|
||||||
|
<field name="name">Team profiles 000 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_team_profiles/000.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_separator_nav_000_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_separator_nav_000_scss</field>
|
||||||
|
<field name="name">Separator nav 000 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_separator_nav/000.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_compact_menu_000_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_compact_menu_000_scss</field>
|
||||||
|
<field name="name">Compact menu 000 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_compact_menu/000.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_big_image_000_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_big_image_000_scss</field>
|
||||||
|
<field name="name">Big image 000 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_big_image/000.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_menu_three_columns_000_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_menu_three_columns_000_scss</field>
|
||||||
|
<field name="name">Menu three columns 000 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_menu_three_columns/000.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_event_slide_000_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_event_slide_000_scss</field>
|
||||||
|
<field name="name">Event slide 000 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_event_slide/000.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_animated_boxes_000_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_animated_boxes_000_scss</field>
|
||||||
|
<field name="name">Animated boxes 000 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_animated_boxes/000.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_animated_boxes_000_js" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_animated_boxes_000_js</field>
|
||||||
|
<field name="name">Animated boxes 000 JS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_animated_boxes/000.js</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_css_slider_000_variables_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_css_slider_000_variables_scss</field>
|
||||||
|
<field name="name">Css slider 000 variables SCSS</field>
|
||||||
|
<field name="bundle">web._assets_primary_variables</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_css_slider/000_variables.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_css_slider_000_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_css_slider_000_scss</field>
|
||||||
|
<field name="name">Css slider 000 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_css_slider/000.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_css_slider_000_js" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_css_slider_000_js</field>
|
||||||
|
<field name="name">Css slider 000 JS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_css_slider/000.js</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_color_blocks_img_000_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_color_blocks_img_000_scss</field>
|
||||||
|
<field name="name">Color blocks img 000 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_color_blocks_img/000.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_showcase_image_000_variables_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_showcase_image_000_variables_scss</field>
|
||||||
|
<field name="name">Showcase image 000 variables SCSS</field>
|
||||||
|
<field name="bundle">web._assets_primary_variables</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_showcase_image/000_variables.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_showcase_image_000_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_showcase_image_000_scss</field>
|
||||||
|
<field name="name">Showcase image 000 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_showcase_image/000.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_pricing_000_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_pricing_000_scss</field>
|
||||||
|
<field name="name">Pricing 000 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_pricing/000.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_header_text_big_picture_000_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_header_text_big_picture_000_scss</field>
|
||||||
|
<field name="name">Header text big picture 000 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_header_text_big_picture/000.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_progress_000_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_progress_000_scss</field>
|
||||||
|
<field name="name">Progress 000 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_progress/000.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_icon_box_000_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_icon_box_000_scss</field>
|
||||||
|
<field name="name">Icon box 000 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_icon_box/000.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_big_icons_000_variables_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_big_icons_000_variables_scss</field>
|
||||||
|
<field name="name">Big icons 000 variables SCSS</field>
|
||||||
|
<field name="bundle">web._assets_primary_variables</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_big_icons/000_variables.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_big_icons_000_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_big_icons_000_scss</field>
|
||||||
|
<field name="name">Big icons 000 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_big_icons/000.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_mini_nav_bar_000_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_mini_nav_bar_000_scss</field>
|
||||||
|
<field name="name">Mini nav bar 000 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_mini_nav_bar/000.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_mini_nav_bar_000_js" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_mini_nav_bar_000_js</field>
|
||||||
|
<field name="name">Mini nav bar 000 JS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_mini_nav_bar/000.js</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_discount_000_variables_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_discount_000_variables_scss</field>
|
||||||
|
<field name="name">Discount 000 variables SCSS</field>
|
||||||
|
<field name="bundle">web._assets_primary_variables</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_discount/000_variables.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_discount_000_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_discount_000_scss</field>
|
||||||
|
<field name="name">Discount 000 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_discount/000.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.s_images_carousel_000_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.s_images_carousel_000_scss</field>
|
||||||
|
<field name="name">Images carousel 000 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/old_snippets/s_images_carousel/000.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.option_colors_02_variables_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.option_colors_02_variables_scss</field>
|
||||||
|
<field name="name">Option colors 02 variables SCSS</field>
|
||||||
|
<field name="bundle">web._assets_primary_variables</field>
|
||||||
|
<field name="path">theme_common/static/src/scss/options/colors/option_colors_02_variables.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.option_colors_03_variables_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.option_colors_03_variables_scss</field>
|
||||||
|
<field name="name">Option colors 03 variables SCSS</field>
|
||||||
|
<field name="bundle">web._assets_primary_variables</field>
|
||||||
|
<field name="path">theme_common/static/src/scss/options/colors/option_colors_03_variables.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.option_colors_04_variables_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.option_colors_04_variables_scss</field>
|
||||||
|
<field name="name">Option colors 04 variables SCSS</field>
|
||||||
|
<field name="bundle">web._assets_primary_variables</field>
|
||||||
|
<field name="path">theme_common/static/src/scss/options/colors/option_colors_04_variables.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.option_colors_05_variables_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.option_colors_05_variables_scss</field>
|
||||||
|
<field name="name">Option colors 05 variables SCSS</field>
|
||||||
|
<field name="bundle">web._assets_primary_variables</field>
|
||||||
|
<field name="path">theme_common/static/src/scss/options/colors/option_colors_05_variables.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.option_colors_06_variables_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.option_colors_06_variables_scss</field>
|
||||||
|
<field name="name">Option colors 06 variables SCSS</field>
|
||||||
|
<field name="bundle">web._assets_primary_variables</field>
|
||||||
|
<field name="path">theme_common/static/src/scss/options/colors/option_colors_06_variables.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.option_colors_07_variables_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.option_colors_07_variables_scss</field>
|
||||||
|
<field name="name">Option colors 07 variables SCSS</field>
|
||||||
|
<field name="bundle">web._assets_primary_variables</field>
|
||||||
|
<field name="path">theme_common/static/src/scss/options/colors/option_colors_07_variables.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.option_colors_08_variables_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.option_colors_08_variables_scss</field>
|
||||||
|
<field name="name">Option colors 08 variables SCSS</field>
|
||||||
|
<field name="bundle">web._assets_primary_variables</field>
|
||||||
|
<field name="path">theme_common/static/src/scss/options/colors/option_colors_08_variables.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.option_colors_09_variables_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.option_colors_09_variables_scss</field>
|
||||||
|
<field name="name">Option colors 09 variables SCSS</field>
|
||||||
|
<field name="bundle">web._assets_primary_variables</field>
|
||||||
|
<field name="path">theme_common/static/src/scss/options/colors/option_colors_09_variables.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.primary_variables_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.primary_variables_scss</field>
|
||||||
|
<field name="name">Primary variables SCSS</field>
|
||||||
|
<field name="bundle">web._assets_primary_variables</field>
|
||||||
|
<field name="path">theme_common/static/src/scss/primary_variables.scss</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.fonts_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.fonts_scss</field>
|
||||||
|
<field name="name">Fonts SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">theme_common/static/src/scss/fonts.scss</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.compatibility_saas_10_1_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.compatibility_saas_10_1_scss</field>
|
||||||
|
<field name="name">Compatibility saas 10 1 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">/theme_common/static/src/scss/compatibility-saas-10-1.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.compatibility_saas_10_2_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.compatibility_saas_10_2_scss</field>
|
||||||
|
<field name="name">Compatibility saas 10 2 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">/theme_common/static/src/scss/compatibility-saas-10-2.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.compatibility_saas_11_4_variables_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.compatibility_saas_11_4_variables_scss</field>
|
||||||
|
<field name="name">Compatibility saas 11 4 variables SCSS</field>
|
||||||
|
<field name="bundle">web._assets_primary_variables</field>
|
||||||
|
<field name="path">/theme_common/static/src/scss/compatibility-saas-11.4-variables.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="theme_common.compatibility_saas_11_4_scss" model="theme.ir.asset">
|
||||||
|
<field name="key">theme_common.compatibility_saas_11_4_scss</field>
|
||||||
|
<field name="name">Compatibility saas 11 4 SCSS</field>
|
||||||
|
<field name="bundle">web.assets_frontend</field>
|
||||||
|
<field name="path">/theme_common/static/src/scss/compatibility-saas-11.4.scss</field>
|
||||||
|
<field name="active" eval="False"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
</odoo>
|
|
@ -0,0 +1,21 @@
|
||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * theme_common
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo Server 15.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2021-12-13 08:00+0000\n"
|
||||||
|
"PO-Revision-Date: 2021-12-13 08:00+0000\n"
|
||||||
|
"Last-Translator: \n"
|
||||||
|
"Language-Team: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Plural-Forms: \n"
|
||||||
|
|
||||||
|
#. module: theme_common
|
||||||
|
#: model:ir.model,name:theme_common.model_theme_utils
|
||||||
|
msgid "Theme Utils"
|
||||||
|
msgstr ""
|
|
@ -0,0 +1,3 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||||
|
from . import theme_common
|
|
@ -0,0 +1,15 @@
|
||||||
|
from odoo import models
|
||||||
|
|
||||||
|
|
||||||
|
class ThemeCommon(models.AbstractModel):
|
||||||
|
_inherit = 'theme.utils'
|
||||||
|
|
||||||
|
def _theme_common_post_copy(self, mod):
|
||||||
|
# Reset all default color when switching themes
|
||||||
|
self.disable_asset('theme_common.option_colors_02_variables')
|
||||||
|
self.disable_asset('theme_common.option_colors_03_variables')
|
||||||
|
self.disable_asset('theme_common.option_colors_04_variables')
|
||||||
|
self.disable_asset('theme_common.option_colors_05_variables')
|
||||||
|
self.disable_asset('theme_common.option_colors_06_variables')
|
||||||
|
self.disable_asset('theme_common.option_colors_07_variables')
|
||||||
|
self.disable_asset('theme_common.option_colors_08_variables')
|
|
@ -0,0 +1,19 @@
|
||||||
|
odoo.define('theme_common.compatibility_editor', function (require) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
var sOptions = require('web_editor.snippets.options');
|
||||||
|
|
||||||
|
sOptions.registry.BackgroundImage.include({
|
||||||
|
/**
|
||||||
|
* @override
|
||||||
|
*/
|
||||||
|
background: function (previewMode, widgetValue, params) {
|
||||||
|
this._super.apply(this, arguments);
|
||||||
|
|
||||||
|
var customClass = this.$target.attr('class').match(/\b(bg-img-\d+)\b/);
|
||||||
|
if (customClass) {
|
||||||
|
this.$target.removeClass(customClass[1]);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
|
@ -0,0 +1,115 @@
|
||||||
|
odoo.define('theme_common.preheader', function (require) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
var publicWidget = require('web.public.widget');
|
||||||
|
require('website.content.menu');
|
||||||
|
|
||||||
|
publicWidget.registry.StandardAffixedHeader.include({
|
||||||
|
/**
|
||||||
|
* @override
|
||||||
|
*/
|
||||||
|
start: function () {
|
||||||
|
this.$preheader = this.$el.find('#o_theme_preheader');
|
||||||
|
this.preheaderVisible = this.$preheader.css('display') !== 'none';
|
||||||
|
return this._super.apply(this, arguments);
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* @override
|
||||||
|
*/
|
||||||
|
destroy: function () {
|
||||||
|
this.$el.find('#o_theme_preheader').show();
|
||||||
|
return this._super.apply(this, arguments);
|
||||||
|
},
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
// Private
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @override
|
||||||
|
*/
|
||||||
|
_updateHeaderOnScroll: function (scrollTop) {
|
||||||
|
var def = this._super.apply(this, arguments);
|
||||||
|
if (this.preheaderVisible) {
|
||||||
|
if (this.$el.hasClass('o_header_is_scrolled')) {
|
||||||
|
this.$el.find('#o_theme_preheader').hide();
|
||||||
|
} else {
|
||||||
|
this.$el.find('#o_theme_preheader').show(200);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return def;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
publicWidget.registry.FixedHeader.include({
|
||||||
|
/**
|
||||||
|
* @override
|
||||||
|
*/
|
||||||
|
start: function () {
|
||||||
|
this.$preheader = this.$el.find('#o_theme_preheader');
|
||||||
|
this.preheaderVisible = this.$preheader.css('display') !== 'none';
|
||||||
|
return this._super.apply(this, arguments);
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* @override
|
||||||
|
*/
|
||||||
|
destroy: function () {
|
||||||
|
this.$el.css('transform', '');
|
||||||
|
return this._super.apply(this, arguments);
|
||||||
|
},
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
// Private
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @override
|
||||||
|
*/
|
||||||
|
_updateHeaderOnScroll: function (scrollTop) {
|
||||||
|
var def = this._super.apply(this, arguments);
|
||||||
|
if (this.preheaderVisible) {
|
||||||
|
if (this.$el.hasClass('o_header_is_scrolled')) {
|
||||||
|
if (!this.$el.hasClass('o_header_disappears') && !this.$el.hasClass('o_header_fade_out')) {
|
||||||
|
const preheaderHeight = this.$el.find('#o_theme_preheader').outerHeight();
|
||||||
|
this.$el.css('transform', 'translate(0, -' + preheaderHeight + 'px)');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.$el.css('transform', '');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return def;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const BaseDisappearingPreheader = {
|
||||||
|
/**
|
||||||
|
* @override
|
||||||
|
*/
|
||||||
|
start: function () {
|
||||||
|
this.$preheader = this.$el.find('#o_theme_preheader');
|
||||||
|
this.preheaderVisible = this.$preheader.css('display') !== 'none';
|
||||||
|
return this._super.apply(this, arguments);
|
||||||
|
},
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
// Private
|
||||||
|
//--------------------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @override
|
||||||
|
*/
|
||||||
|
_showHeader: function () {
|
||||||
|
var def = this._super.apply(this, arguments);
|
||||||
|
if (this.preheaderVisible) {
|
||||||
|
const preheaderHeight = this.$preheader.outerHeight();
|
||||||
|
if (this.$el.hasClass('o_header_is_scrolled')) {
|
||||||
|
this.$el.css('transform', 'translate(0, -' + preheaderHeight + 'px)');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return def;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
publicWidget.registry.DisappearingHeader.include(BaseDisappearingPreheader);
|
||||||
|
publicWidget.registry.FadeOutHeader.include(BaseDisappearingPreheader);
|
||||||
|
|
||||||
|
});
|
|
@ -0,0 +1,15 @@
|
||||||
|
odoo.define('theme_common.s_animated_boxes_frontend', function (require) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
var publicWidget = require('web.public.widget');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is a fix for some apple devices.
|
||||||
|
* The slide of animated boxes widget is shown on hover or click on mobile
|
||||||
|
* devices, but iOS only activates :hover if the element targeted is
|
||||||
|
* clickable.
|
||||||
|
*/
|
||||||
|
publicWidget.registry._fixAnimatedBoxesAppleClick = publicWidget.registry._fixAppleCollapse.extend({
|
||||||
|
selector: '.s_animated_boxes .item',
|
||||||
|
});
|
||||||
|
});
|
|
@ -0,0 +1,77 @@
|
||||||
|
|
||||||
|
#wrapwrap .s_animated_boxes{
|
||||||
|
margin: 0;
|
||||||
|
width: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
.item {
|
||||||
|
height: 200px;
|
||||||
|
background-size: cover;
|
||||||
|
overflow: hidden;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
> * {
|
||||||
|
z-index: 0;
|
||||||
|
position: relative;
|
||||||
|
padding-top: $grid-gutter-width/2;
|
||||||
|
padding-bottom: $grid-gutter-width/2;
|
||||||
|
}
|
||||||
|
.slide {
|
||||||
|
z-index: 1;
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background-size: cover;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
opacity: 0;
|
||||||
|
padding: $grid-gutter-width/2;
|
||||||
|
transition: opacity 400ms;
|
||||||
|
|
||||||
|
&.visible{
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&:hover .slide{
|
||||||
|
opacity: 1;
|
||||||
|
transition: opacity 100ms;
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-breakpoint-down(md) {
|
||||||
|
height: auto;
|
||||||
|
min-height: 200px;
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
content: "";
|
||||||
|
display: inline-block;
|
||||||
|
height: 100%;
|
||||||
|
min-height: 200px;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.v-align {
|
||||||
|
display: inline-block;
|
||||||
|
width: 98%;
|
||||||
|
vertical-align: middle;
|
||||||
|
|
||||||
|
top: auto;
|
||||||
|
transform: translate(0, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Used in editing mode
|
||||||
|
body.editor_enable .s_animated_boxes {
|
||||||
|
.item:hover .slide {
|
||||||
|
display: none;
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item.showSlide .slide, .item.showSlide:hover .slide {
|
||||||
|
display: block;
|
||||||
|
opacity: 1;
|
||||||
|
transform: translateY(0%)!important;
|
||||||
|
transform: translateX(0%)!important;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,55 @@
|
||||||
|
$s-banner-parallax-text-color: o-color('alpha') !default;
|
||||||
|
|
||||||
|
#wrapwrap .s_banner_parallax {
|
||||||
|
margin-bottom: 0px !important;
|
||||||
|
|
||||||
|
@include media-breakpoint-down(md) {
|
||||||
|
background-position: $s-banner-parallax-bg-position;
|
||||||
|
}
|
||||||
|
@include s-banner-parallax-height-hook;
|
||||||
|
|
||||||
|
.container-fluid {
|
||||||
|
|
||||||
|
.row {
|
||||||
|
height: $s-banner-parallax-height;
|
||||||
|
@include s-banner-parallax-row-hook;
|
||||||
|
|
||||||
|
.hero-bg {
|
||||||
|
padding-left: $s-banner-parallax-padding;
|
||||||
|
color: $s-banner-parallax-text-color;
|
||||||
|
@include s-banner-parallax-hero-bg-hook;
|
||||||
|
|
||||||
|
@include media-breakpoint-down(md) {
|
||||||
|
text-align: center;
|
||||||
|
padding-left: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: $s-banner-parallax-h1-size;
|
||||||
|
text-shadow: $s-banner-parallax-text-shadow;
|
||||||
|
|
||||||
|
@media screen and (max-width: 360px) { // FIXME
|
||||||
|
font-size: 50px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 40px;
|
||||||
|
text-shadow: $s-banner-parallax-text-shadow;
|
||||||
|
|
||||||
|
@media screen and (max-width: 360px) { // FIXME
|
||||||
|
font-size: 30px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
max-height: $s-banner-parallax-img-height;
|
||||||
|
|
||||||
|
@media screen and (max-width: 360px) { // FIXME
|
||||||
|
max-height: 200px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
$s-banner-parallax-height: 500px;
|
||||||
|
$s-banner-parallax-padding: 130px;
|
||||||
|
$s-banner-parallax-img-height: 200px;
|
||||||
|
$s-banner-parallax-text-shadow: 1px 1px 11px rgba(0, 0, 0, 0.86);
|
||||||
|
$s-banner-parallax-text-color: null;
|
||||||
|
$s-banner-parallax-bg-position: center !important;
|
||||||
|
$s-banner-parallax-h1-size: 80px;
|
||||||
|
|
||||||
|
@mixin s-banner-parallax-row-hook {}
|
||||||
|
@mixin s-banner-parallax-height-hook {}
|
||||||
|
@mixin s-banner-parallax-hero-bg-hook {}
|
|
@ -0,0 +1,42 @@
|
||||||
|
.s_big_icons {
|
||||||
|
text-align: center;
|
||||||
|
@include s-big-icon-circle-height-hook;
|
||||||
|
//fix -- without this in mobile view the circles go to the top and so they hide the h2 and h3 above it.
|
||||||
|
.col-lg-12 {
|
||||||
|
float: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.s_big_icons_box {
|
||||||
|
text-align: center;
|
||||||
|
width: 150px;
|
||||||
|
margin: 0 auto;
|
||||||
|
.fa {
|
||||||
|
color: #fff;
|
||||||
|
font-size: 40px;
|
||||||
|
@include s-big-icon-circle-fa-hook;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.s_big_icons_icon {
|
||||||
|
width: $s-big-icon-circle-icon-size;
|
||||||
|
height: $s-big-icon-circle-icon-size;
|
||||||
|
text-align: center;
|
||||||
|
padding: 40px 0;
|
||||||
|
transition: all 0.3s ease-in-out;
|
||||||
|
border-radius: 80px;
|
||||||
|
margin: 0px auto;
|
||||||
|
h5 {
|
||||||
|
margin-top: 48px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.s_big_icons_box:hover .s_big_icons_icon {
|
||||||
|
transition: all 0.3s ease-in-out;
|
||||||
|
background-color: o-color('gamma');
|
||||||
|
}
|
||||||
|
|
||||||
|
.s_big_icons_box:hover .s_big_icons_content h4 {
|
||||||
|
transition: all 0.3s ease-in-out;
|
||||||
|
color: o-color('gamma');
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
$s-big-icon-circle-icon-size: 120px;
|
||||||
|
|
||||||
|
@mixin s-big-icon-circle-height-hook {}
|
||||||
|
@mixin s-big-icon-circle-fa-hook {}
|
||||||
|
|
||||||
|
@mixin o-theme-chd-big-icons-classes($border, $font-color) {
|
||||||
|
.s_big_icons_box {
|
||||||
|
.s_big_icons_icon {
|
||||||
|
border: $border;
|
||||||
|
color: #fff;
|
||||||
|
.fa {
|
||||||
|
color: o-color('alpha') !important;
|
||||||
|
}
|
||||||
|
h5.o_default_snippet_text {
|
||||||
|
color: $font-color;
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&:hover .s_big_icons_icon {
|
||||||
|
@include o-theme-chd-big-icons-styles($h5-color: o-color('alpha'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
#wrapwrap .s_big_image {
|
||||||
|
height: 760px;
|
||||||
|
background-size: cover;
|
||||||
|
}
|
||||||
|
|
||||||
|
#wrapwrap .s_big_image_content {
|
||||||
|
z-index: 999;
|
||||||
|
h1 {
|
||||||
|
color: white;
|
||||||
|
font-size: 60px;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
#wrapwrap .s_big_image_parallax {
|
||||||
|
min-height: 780px;
|
||||||
|
padding-top: 80px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#wrapwrap .s_big_image_parallax_content {
|
||||||
|
z-index: 999;
|
||||||
|
h1 {
|
||||||
|
color: white;
|
||||||
|
font-size: 60px;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
|
||||||
|
#wrapwrap .s_clonable_boxes {
|
||||||
|
width: 100%;
|
||||||
|
height: auto!important; // Force height to avoid overlaps
|
||||||
|
|
||||||
|
.row {
|
||||||
|
display: flex;
|
||||||
|
flex-flow: row wrap;
|
||||||
|
|
||||||
|
> div {
|
||||||
|
display: flex;
|
||||||
|
flex-flow: column wrap;
|
||||||
|
justify-content: center;
|
||||||
|
text-align: center;
|
||||||
|
padding-top: $grid-gutter-width/2;
|
||||||
|
padding-bottom: $grid-gutter-width/2;
|
||||||
|
|
||||||
|
@include media-breakpoint-down(lg) {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
html[data-no-flex] .s_clonable_boxes {
|
||||||
|
width: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
.item {
|
||||||
|
height: 200px;
|
||||||
|
overflow: hidden;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
#wrapwrap .s_color_blocks_4 {
|
||||||
|
.row {
|
||||||
|
display: flex;
|
||||||
|
flex-flow: row wrap;
|
||||||
|
|
||||||
|
// Fix for safari browser as it 'supports' flex but not with the right
|
||||||
|
// behavior
|
||||||
|
&::before, &::after {
|
||||||
|
width: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
[class*="col-lg-"] {
|
||||||
|
padding: 64px 20px;
|
||||||
|
}
|
||||||
|
@include media-breakpoint-down(lg) {
|
||||||
|
[class*="col-lg-"] {
|
||||||
|
flex: 1 1 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
max-width: 100%;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
|
||||||
|
#wrapwrap .s_color_blocks_img_title {
|
||||||
|
margin-bottom: 0px;
|
||||||
|
h5 {
|
||||||
|
padding-top: 32px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#wrapwrap .s_color_blocks_img_img img {
|
||||||
|
max-width: 100%;
|
||||||
|
height: auto;
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
#wrapwrap .s_compact_menu {
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
.container-fluid .menu-container {
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
> div {
|
||||||
|
&.s_compact_menu_row_title {
|
||||||
|
h4 {
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
.fa {
|
||||||
|
margin: 20px 0px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
> .row {
|
||||||
|
min-height: 150px;
|
||||||
|
height: auto;
|
||||||
|
border-left: 3px solid map-get($grays, '200');
|
||||||
|
|
||||||
|
> .menublock {
|
||||||
|
margin: 0 0 0 20px;
|
||||||
|
padding: 0 20px 0 0;
|
||||||
|
border-bottom: 1px solid map-get($grays, '200');
|
||||||
|
float: left;
|
||||||
|
h4 {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
span {
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,122 @@
|
||||||
|
odoo.define('theme_common.s_css_slider_frontend', function (require) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
var publicWidget = require('web.public.widget');
|
||||||
|
|
||||||
|
publicWidget.registry.s_css_slider = publicWidget.Widget.extend({
|
||||||
|
selector: ".s_css_slider",
|
||||||
|
disabledInEditableMode: false,
|
||||||
|
|
||||||
|
start: function () {
|
||||||
|
var self = this;
|
||||||
|
var $container = self.$target;
|
||||||
|
$container.find(".s_css_slider_pagination").remove();
|
||||||
|
// create slider pagination
|
||||||
|
var sliderPagination = self.createSliderPagination($container);
|
||||||
|
self.bindEvents($container, sliderPagination);
|
||||||
|
$(window).on("resize", function () {
|
||||||
|
self.resizeImgs($container);
|
||||||
|
}).trigger("resize");
|
||||||
|
return this._super.apply(this, arguments);
|
||||||
|
},
|
||||||
|
|
||||||
|
bindEvents: function ($container, sliderPagination) {
|
||||||
|
var self = this,
|
||||||
|
$next_btn = $container.find('.next'),
|
||||||
|
$prev_btn = $container.find('.prev');
|
||||||
|
|
||||||
|
$next_btn.on('click.s_css', function (e) {
|
||||||
|
self.nextSlide($container, sliderPagination);
|
||||||
|
});
|
||||||
|
|
||||||
|
$prev_btn.on('click.s_css', function (e) {
|
||||||
|
self.prevSlide($container, sliderPagination);
|
||||||
|
});
|
||||||
|
|
||||||
|
if ($container.hasClass("autoplay") && this.editableMode !== true) {
|
||||||
|
var interval;
|
||||||
|
var autoplay = function () {
|
||||||
|
interval = setInterval(function () {
|
||||||
|
if (!$next_btn.hasClass("inactive")) {
|
||||||
|
self.nextSlide($container, sliderPagination);
|
||||||
|
} else {
|
||||||
|
self.prevSlide($container, sliderPagination, 0);
|
||||||
|
}
|
||||||
|
}, 3000);
|
||||||
|
};
|
||||||
|
autoplay();
|
||||||
|
$container.hover(function () { clearInterval(interval); });
|
||||||
|
$container.mouseleave(function () { autoplay(); });
|
||||||
|
}
|
||||||
|
|
||||||
|
sliderPagination.on('click.s_css', function () {
|
||||||
|
var selectedDot = $(this);
|
||||||
|
if (!selectedDot.hasClass('selected')) {
|
||||||
|
var selectedPosition = selectedDot.index(),
|
||||||
|
activePosition = $container.find('.slider .selected').index();
|
||||||
|
if ( activePosition < selectedPosition) {
|
||||||
|
self.nextSlide($container, sliderPagination, selectedPosition);
|
||||||
|
} else {
|
||||||
|
self.prevSlide($container, sliderPagination, selectedPosition);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
resizeImgs: function ($container) {
|
||||||
|
var cont_h = $container.height(),
|
||||||
|
imgs = $container.find(".slide img");
|
||||||
|
|
||||||
|
imgs.each(function () {
|
||||||
|
var $img = $(this),
|
||||||
|
img_h = $img.height();
|
||||||
|
if (img_h > cont_h) {
|
||||||
|
$img.css("width", "100%");
|
||||||
|
$img.css("margin-top", (cont_h - img_h)/2);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
createSliderPagination: function ($container) {
|
||||||
|
var wrapper = $('<ul class="s_css_slider_pagination"></ul>').insertAfter($container.find('.navigation'));
|
||||||
|
$container.find('.slider .slide').each(function (index) {
|
||||||
|
var dotWrapper = (index === 0) ? $('<li class="selected"></li>') : $('<li></li>'),
|
||||||
|
dot = $('<a href="#0"></a>').appendTo(dotWrapper);
|
||||||
|
dotWrapper.appendTo(wrapper);
|
||||||
|
dot.text(index+1);
|
||||||
|
});
|
||||||
|
return wrapper.children('li');
|
||||||
|
},
|
||||||
|
|
||||||
|
nextSlide: function ($container, $pagination, $n) {
|
||||||
|
var self = this,
|
||||||
|
visibleSlide = $container.find('.slider .selected'),
|
||||||
|
navigationDot = $container.find('.s_css_slider_pagination .selected');
|
||||||
|
|
||||||
|
if (typeof $n === 'undefined') $n = visibleSlide.index() + 1;
|
||||||
|
visibleSlide.removeClass('selected');
|
||||||
|
$container.find('.slider .slide').eq($n).addClass('selected').prevAll().addClass('move-left');
|
||||||
|
navigationDot.removeClass('selected');
|
||||||
|
$pagination.eq($n).addClass('selected');
|
||||||
|
self.updateNavigation($container, $container.find('.slider .slide').eq($n));
|
||||||
|
},
|
||||||
|
|
||||||
|
prevSlide: function ($container, $pagination, $n) {
|
||||||
|
var self = this,
|
||||||
|
visibleSlide = $container.find('.slider .selected'),
|
||||||
|
navigationDot = $container.find('.s_css_slider_pagination .selected');
|
||||||
|
|
||||||
|
if (typeof $n === 'undefined') $n = visibleSlide.index() - 1;
|
||||||
|
visibleSlide.removeClass('selected');
|
||||||
|
$container.find('.slider .slide').eq($n).addClass('selected').removeClass('move-left').nextAll().removeClass('move-left');
|
||||||
|
navigationDot.removeClass('selected');
|
||||||
|
$pagination.eq($n).addClass('selected');
|
||||||
|
self.updateNavigation($container, $container.find('.slider .slide').eq($n));
|
||||||
|
},
|
||||||
|
|
||||||
|
updateNavigation: function ($container, $active) {
|
||||||
|
$container.find('.prev').toggleClass('inactive', $active.is(':first-child'));
|
||||||
|
$container.find('.next').toggleClass('inactive', $active.is(':last-child'));
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
|
@ -0,0 +1,153 @@
|
||||||
|
|
||||||
|
#wrapwrap .s_css_slider {
|
||||||
|
position: relative;
|
||||||
|
min-height: 150px;
|
||||||
|
|
||||||
|
.wrapper {
|
||||||
|
height: 100%;
|
||||||
|
position: relative;
|
||||||
|
z-index: 10;
|
||||||
|
transition: width 400ms;
|
||||||
|
/* Force Hardware Acceleration */
|
||||||
|
transform: translateZ(0);
|
||||||
|
backface-visibility: hidden;
|
||||||
|
|
||||||
|
@include s-css-slider-wrapper-hook;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slider{
|
||||||
|
padding: 0;
|
||||||
|
height: 100%;
|
||||||
|
position: relative;
|
||||||
|
z-index: 10;
|
||||||
|
overflow: hidden;
|
||||||
|
@include s-css-slider-slider-hook;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slider .slide {
|
||||||
|
position: absolute;
|
||||||
|
list-style: none;
|
||||||
|
overflow: hidden;
|
||||||
|
top:0;
|
||||||
|
left:0;
|
||||||
|
margin: 0;
|
||||||
|
z-index: 10;
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
transform: translate(100%, 0);
|
||||||
|
transition: transform 300ms linear;
|
||||||
|
.info {
|
||||||
|
position: relative;
|
||||||
|
margin: 0;
|
||||||
|
|
||||||
|
&:not([class*=bg-]) {
|
||||||
|
color : $s-css-slider-info-text-color;
|
||||||
|
background-color : $s-css-slider-info-bg-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-breakpoint-up(md) {
|
||||||
|
padding: $grid-gutter-width;
|
||||||
|
padding-top: $grid-gutter-width*0.5;
|
||||||
|
@include o-position-absolute(30%, $left: 60px);
|
||||||
|
max-width: 60%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
img {
|
||||||
|
display:block;
|
||||||
|
width:100%;
|
||||||
|
|
||||||
|
// Fix the image size on some devices (e.g. iPhone X)
|
||||||
|
@media screen and (max-width: 400px) {
|
||||||
|
// The image height was greater than the container height
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
// Necessary if we don't want images of different sizes
|
||||||
|
// see resizeImgs() in s_css_slider_frontend.js
|
||||||
|
margin-top: 0 !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&.selected {
|
||||||
|
position:relative;
|
||||||
|
z-index:12;
|
||||||
|
transform: translate(0, 0);
|
||||||
|
}
|
||||||
|
&.move-left {
|
||||||
|
transform: translate(-100%, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.navigation li {
|
||||||
|
position:absolute;
|
||||||
|
z-index:12;
|
||||||
|
top:50%;
|
||||||
|
list-style:none;
|
||||||
|
bottom:auto;
|
||||||
|
transform: translate(0, -50%);
|
||||||
|
|
||||||
|
span {
|
||||||
|
display: block;
|
||||||
|
width: 48px;
|
||||||
|
height: 48px;
|
||||||
|
overflow: hidden;
|
||||||
|
font-size: 1.6em;
|
||||||
|
color: $s-css-slider-navigation-color;
|
||||||
|
text-shadow: $s-css-slider-navigation-text-shadow;
|
||||||
|
white-space: nowrap;
|
||||||
|
transition: e("opacity 200ms, visibility 0s");
|
||||||
|
|
||||||
|
@include s-css-slider-navigation-buttons-hook;
|
||||||
|
|
||||||
|
&.inactive {
|
||||||
|
opacity:0;
|
||||||
|
visibility:hidden;
|
||||||
|
transition: e("opacity 200ms 0s, visibility 0s 200ms");
|
||||||
|
}
|
||||||
|
&:hover {
|
||||||
|
opacity:.7;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&:first-of-type {
|
||||||
|
left:10px;
|
||||||
|
}
|
||||||
|
&:last-of-type {
|
||||||
|
right:10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@include s-css-slider-navigation-hook;
|
||||||
|
}
|
||||||
|
|
||||||
|
.s_css_slider_pagination {
|
||||||
|
position:absolute;
|
||||||
|
padding: 0;
|
||||||
|
z-index: 12;
|
||||||
|
bottom: 30px;
|
||||||
|
left: 50%;
|
||||||
|
right:auto;
|
||||||
|
transform: translate(-50%, 0);
|
||||||
|
|
||||||
|
li {
|
||||||
|
display:inline-block;
|
||||||
|
float:left;
|
||||||
|
margin:0 5px;
|
||||||
|
}
|
||||||
|
li.selected a {
|
||||||
|
background:#f5f4f3;
|
||||||
|
}
|
||||||
|
a {
|
||||||
|
display:block;
|
||||||
|
height:12px;
|
||||||
|
width:12px;
|
||||||
|
border-radius:50%;
|
||||||
|
box-shadow: 0 1px 0 #333;
|
||||||
|
border:1px solid #f5f4f3;
|
||||||
|
background-color:rgba(255,255,255,0);
|
||||||
|
overflow:hidden;
|
||||||
|
text-indent:100%;
|
||||||
|
white-space:nowrap;
|
||||||
|
}
|
||||||
|
&:after {
|
||||||
|
content:"";
|
||||||
|
display:table;
|
||||||
|
clear:both;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
$s-css-slider-navigation-color: white;
|
||||||
|
$s-css-slider-navigation-text-shadow: 0 1px 0 #333;
|
||||||
|
$s-css-slider-info-bg-color: #fff;
|
||||||
|
$s-css-slider-info-text-color: #333;
|
||||||
|
|
||||||
|
@mixin s-css-slider-wrapper-hook {}
|
||||||
|
@mixin s-css-slider-slider-hook {}
|
||||||
|
@mixin s-css-slider-slider-hover-hook {}
|
||||||
|
@mixin s-css-slider-navigation-hook {}
|
||||||
|
@mixin s-css-slider-navigation-buttons-hook {}
|
|
@ -0,0 +1,99 @@
|
||||||
|
|
||||||
|
#wrapwrap .s_discount_box {
|
||||||
|
background: white;
|
||||||
|
padding: 30px 0;
|
||||||
|
border-radius: $s-discount-box-border-radius;
|
||||||
|
position: relative;
|
||||||
|
box-shadow: 0px 0px 5px 0px rgba(map-get($grays, '700'), 0.5);
|
||||||
|
word-wrap: break-word;
|
||||||
|
|
||||||
|
&:before {
|
||||||
|
content: " ";
|
||||||
|
height: 20px;
|
||||||
|
width: 20px;
|
||||||
|
background: white;
|
||||||
|
border-radius: 20px;
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
top: 20px;
|
||||||
|
margin-left: -10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@include s-discount-box-hook;
|
||||||
|
}
|
||||||
|
|
||||||
|
#wrapwrap .s_discount_brand {
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: $s-discount-brand-letter-spacing;
|
||||||
|
padding: 10px 15px;
|
||||||
|
margin-top: 10px;
|
||||||
|
text-align: center;
|
||||||
|
min-height: 100px;
|
||||||
|
@include s-discount-brand-hook;
|
||||||
|
}
|
||||||
|
|
||||||
|
#wrapwrap .s_discount_amount {
|
||||||
|
min-height: 100px;
|
||||||
|
position: relative;
|
||||||
|
font-size: $s-discount-amount-size;
|
||||||
|
text-align: center;
|
||||||
|
font-weight: bold;
|
||||||
|
padding: 20px 15px;
|
||||||
|
text-shadow: 1px 1px 2px 0px white;
|
||||||
|
color: white;
|
||||||
|
|
||||||
|
&:after {
|
||||||
|
content: " ";
|
||||||
|
border-right: 20px solid rgba(0, 0, 0, 0);
|
||||||
|
border-left: 20px solid rgba(0, 0, 0, 0);
|
||||||
|
position: absolute;
|
||||||
|
bottom: -20px;
|
||||||
|
left: 20%;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#wrapwrap .s_discount_type {
|
||||||
|
font-size: 20px;
|
||||||
|
|
||||||
|
letter-spacing: 1px;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
#wrapwrap .s_discount_descr {
|
||||||
|
text-align: center;
|
||||||
|
font-size: 13px;
|
||||||
|
color: map-get($grays, '800');
|
||||||
|
margin-top: 10px;
|
||||||
|
padding: 20px 25px;
|
||||||
|
@include s-discount-descr-hook;
|
||||||
|
}
|
||||||
|
|
||||||
|
#wrapwrap .s_discount_ends {
|
||||||
|
padding: 0 25px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#wrapwrap .s_discount_coupon {
|
||||||
|
min-height: 50px;
|
||||||
|
text-align: center;
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 18px;
|
||||||
|
padding: 20px 15px;
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: $s-discount-coupon-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#wrapwrap .s_discount_code {
|
||||||
|
letter-spacing: 1px;
|
||||||
|
border-radius: 4px;
|
||||||
|
margin-top: 10px;
|
||||||
|
background: #f0f0f0;
|
||||||
|
color: map-get($grays, '800');
|
||||||
|
.code {
|
||||||
|
padding: 10px 15px;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
$s-discount-box-border-radius: 20px;
|
||||||
|
$s-discount-brand-letter-spacing: 3px;
|
||||||
|
$s-discount-coupon-color: white;
|
||||||
|
$s-discount-amount-size: 80px;
|
||||||
|
|
||||||
|
@mixin s-discount-brand-hook {}
|
||||||
|
@mixin s-discount-descr-hook {}
|
||||||
|
@mixin s-discount-box-hook {}
|
|
@ -0,0 +1,188 @@
|
||||||
|
|
||||||
|
#wrapwrap .s_event_list_item {
|
||||||
|
@include clearfix;
|
||||||
|
box-shadow: 0px 0px 5px rgba(black, 0.25);
|
||||||
|
margin: 0px 0px 20px;
|
||||||
|
|
||||||
|
> time {
|
||||||
|
display: block;
|
||||||
|
padding: 5px;
|
||||||
|
text-align: center;
|
||||||
|
text-transform: uppercase;
|
||||||
|
div {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.s_event_list_day, .s_event_list_month, .s_event_list_time {
|
||||||
|
display: block;
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
|
.s_event_list_day {
|
||||||
|
font-size: 50px;
|
||||||
|
padding-top: 10px;
|
||||||
|
}
|
||||||
|
.s_event_list_month {
|
||||||
|
font-size: 30px;
|
||||||
|
}
|
||||||
|
.s_event_list_time {
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 200;
|
||||||
|
padding-bottom: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
> .s_event_list_icon {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
> .s_event_list_info,
|
||||||
|
> .s_event_list_social {
|
||||||
|
> ul {
|
||||||
|
list-style: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
text-align: center;
|
||||||
|
> li {
|
||||||
|
float: left;
|
||||||
|
color: map-get($grays, '800');
|
||||||
|
font-size: 11px;
|
||||||
|
font-weight: 300;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
color: map-get($grays, '800');
|
||||||
|
background-color: map-get($grays, '200');
|
||||||
|
}
|
||||||
|
|
||||||
|
> a {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
> .s_event_list_info {
|
||||||
|
padding-top: 5px;
|
||||||
|
text-align: center;
|
||||||
|
> .s_event_list_title {
|
||||||
|
margin: 5px 0 0;
|
||||||
|
@include o-text-overflow;
|
||||||
|
}
|
||||||
|
> .s_event_list_desc {
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 300;
|
||||||
|
margin: 8px 0 0;
|
||||||
|
word-wrap: break-word;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
max-height: 2.2em;
|
||||||
|
line-height: 1.1em;
|
||||||
|
.fa {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
> ul {
|
||||||
|
margin-top: 10px;
|
||||||
|
> li {
|
||||||
|
width: 50%;
|
||||||
|
> a {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
color: map-get($grays, '800');
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
> .s_event_list_social > ul {
|
||||||
|
> li {
|
||||||
|
width: 33.3333%;
|
||||||
|
padding: 0px;
|
||||||
|
> a {
|
||||||
|
padding: 9px 0px 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover > a {
|
||||||
|
color: white!important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.s_event_list_facebook a {
|
||||||
|
color: $color-facebook!important;
|
||||||
|
}
|
||||||
|
.s_event_list_twitter a {
|
||||||
|
color: $color-twitter!important;
|
||||||
|
}
|
||||||
|
.s_event_list_google_plus a {
|
||||||
|
color: $color-google!important;
|
||||||
|
}
|
||||||
|
.s_event_list_facebook:hover a {
|
||||||
|
background-color: $color-facebook !important;
|
||||||
|
}
|
||||||
|
.s_event_list_twitter:hover a {
|
||||||
|
background-color: $color-twitter !important;
|
||||||
|
}
|
||||||
|
.s_event_list_google_plus:hover a {
|
||||||
|
background-color: $color-google !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-breakpoint-up(md) {
|
||||||
|
#wrapwrap .s_event_list_item {
|
||||||
|
display: flex;
|
||||||
|
position: relative;
|
||||||
|
> .s_event_list_icon {
|
||||||
|
width: $s-event-list-main-size;
|
||||||
|
height: $s-event-list-main-size;
|
||||||
|
float: left;
|
||||||
|
text-align: center;
|
||||||
|
.fa {
|
||||||
|
line-height: $s-event-list-main-size;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
> img {
|
||||||
|
height: $s-event-list-main-size;
|
||||||
|
}
|
||||||
|
> time {
|
||||||
|
max-width: $s-event-list-main-size;
|
||||||
|
}
|
||||||
|
> time, > img {
|
||||||
|
flex: 1 1 auto;
|
||||||
|
min-height: $s-event-list-main-size;
|
||||||
|
min-width: $s-event-list-main-size;
|
||||||
|
margin: 0px;
|
||||||
|
padding: 0px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
> .s_event_list_info {
|
||||||
|
flex: 1 1 auto;
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
min-height: $s-event-list-main-size;
|
||||||
|
padding-right: 40px;
|
||||||
|
text-align: left;
|
||||||
|
> .s_event_list_title, .s_event_list_desc {
|
||||||
|
padding: 0px 10px;
|
||||||
|
}
|
||||||
|
> ul {
|
||||||
|
@include o-position-absolute($left: 0, $bottom: 0, $right: 40px);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
> .s_event_list_social {
|
||||||
|
flex: 1 1 auto;
|
||||||
|
@include o-position-absolute($top: 0, $right: 0, $bottom: 0);
|
||||||
|
width: 40px;
|
||||||
|
> ul {
|
||||||
|
height: 100%;
|
||||||
|
border-left: 1px solid lighten(map-get($grays, '200'), 10%);
|
||||||
|
> li {
|
||||||
|
width: 100%;
|
||||||
|
height: 33.333%;
|
||||||
|
> a {
|
||||||
|
padding: 9px 0px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
$color-facebook: #4b6ea8;
|
||||||
|
$color-twitter: #4fd5f8;
|
||||||
|
$color-google: #dd4b39;
|
||||||
|
$s-event-list-main-size: 120px;
|
|
@ -0,0 +1,51 @@
|
||||||
|
#wrapwrap .s_event_slide {
|
||||||
|
overflow: hidden;
|
||||||
|
.row {
|
||||||
|
text-align: center;
|
||||||
|
overflow: hidden;
|
||||||
|
box-shadow: inset 0px -7px 9px -6px rgba(0,0,0,0.45);
|
||||||
|
.s_event_slide_title{
|
||||||
|
float: left;
|
||||||
|
@media screen and (max-width: 640px) { // FIXME
|
||||||
|
padding-bottom: 0;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.s_event_slide_list {
|
||||||
|
float: right;
|
||||||
|
border-left: 4px solid o-color('epsilon');
|
||||||
|
.header-border {
|
||||||
|
width: 20%;
|
||||||
|
height: 5px;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
border-radius: 10px;
|
||||||
|
background-color: o-color('epsilon');
|
||||||
|
}
|
||||||
|
> .row > div {
|
||||||
|
border-right: 1px solid map-get($grays, '200');
|
||||||
|
border-bottom: 1px solid map-get($grays, '200');
|
||||||
|
text-align: left;
|
||||||
|
h4 {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.event {
|
||||||
|
height: 400px;
|
||||||
|
overflow: hidden;
|
||||||
|
overflow-y: scroll;
|
||||||
|
padding-top: 40px;
|
||||||
|
@include media-breakpoint-down(md) {
|
||||||
|
overflow: visible;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
img {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.fa {
|
||||||
|
display: inline-block;
|
||||||
|
margin-top: 50px;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,69 @@
|
||||||
|
|
||||||
|
#wrapwrap .s_features_carousel {
|
||||||
|
//height: 650px;
|
||||||
|
@include s-features-carousel-inner-hook;
|
||||||
|
[class*="col-lg-"] img {
|
||||||
|
max-height: 400px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.circle {
|
||||||
|
position: relative;
|
||||||
|
height: 250px;
|
||||||
|
width: 250px;
|
||||||
|
@media only screen and (max-width : 360px) { // FIXME
|
||||||
|
width: 165px;
|
||||||
|
height: 165px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.mask {
|
||||||
|
display: inline-flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
width: 250px;
|
||||||
|
height: 250px;
|
||||||
|
padding: 40px;
|
||||||
|
border-radius: 50%;
|
||||||
|
font-size: 20px;
|
||||||
|
line-height: 20px;
|
||||||
|
text-align: center;
|
||||||
|
text-transform: uppercase;
|
||||||
|
@include s-features-carousel-mask-hook;
|
||||||
|
@media only screen and (max-width : 360px) { // FIXME
|
||||||
|
font-size: 15px;
|
||||||
|
line-height: 15px;
|
||||||
|
padding: 15px;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
border-bottom: {
|
||||||
|
width: $s-features-carousel-border-width;
|
||||||
|
style: $s-features-carousel-border-style;
|
||||||
|
color: if(s-features-carousel-border-color != null, $s-features-carousel-border-color, map-get($grays, '600'));
|
||||||
|
}
|
||||||
|
text-align: center;
|
||||||
|
padding-bottom: 30px;
|
||||||
|
}
|
||||||
|
.carousel-indicators {
|
||||||
|
border-top: 1px dotted map-get($grays, '600');
|
||||||
|
padding-top: 32px;
|
||||||
|
visibility: $s-features-carousel-indicators-visible;
|
||||||
|
li {
|
||||||
|
border: 1px solid map-get($grays, '200');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.carousel-indicators .active {
|
||||||
|
border: 1px solid o-color('gamma') !important;
|
||||||
|
}
|
||||||
|
.carousel-control-prev,
|
||||||
|
.carousel-control-next {
|
||||||
|
opacity: 1;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
@include media-breakpoint-down(md) {
|
||||||
|
[class*="col-lg-"] > p {
|
||||||
|
padding: 0 30px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
$s-features-carousel-border-width: 1px;
|
||||||
|
$s-features-carousel-border-style: dotted;
|
||||||
|
$s-features-carousel-border-color: null; // (default to a BS color)
|
||||||
|
$s-features-carousel-indicators-visible: hidden;
|
||||||
|
|
||||||
|
@mixin s-features-carousel-inner-hook {}
|
||||||
|
@mixin s-features-carousel-mask-hook {}
|
|
@ -0,0 +1,46 @@
|
||||||
|
#wrapwrap .s_full_menu {
|
||||||
|
overflow: hidden;
|
||||||
|
.container-fluid {
|
||||||
|
h2 {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
h4 {
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
.menu-container > .s_full_menu_content {
|
||||||
|
border-left: 3px solid map-get($grays, '200');
|
||||||
|
.row {
|
||||||
|
.s_full_menu_content_description {
|
||||||
|
border-bottom: 1px solid map-get($grays, '200');
|
||||||
|
padding-bottom: 15px;
|
||||||
|
line-height: 1;
|
||||||
|
span {
|
||||||
|
text-transform: uppercase;
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
@media screen and (max-width: 1024px) { // FIXME
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
@media screen and (max-width: 360px) { // FIXME
|
||||||
|
top: 0px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
img {
|
||||||
|
max-width: 200px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.price {
|
||||||
|
font-size: 2vw;
|
||||||
|
@media screen and (max-width: 360px) { // FIXME
|
||||||
|
font-size: 6.5vw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.slash {
|
||||||
|
font-size: 2vw;
|
||||||
|
@media screen and (max-width: 360px) { // FIXME
|
||||||
|
font-size: 6.5vw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
#wrapwrap .s_header_text_big_picture {
|
||||||
|
.s_header_text_big_picture_picturecol {
|
||||||
|
padding: 0;
|
||||||
|
img {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
[class*="col-lg-"] p {
|
||||||
|
padding: 0 25px;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
#wrapwrap .s_icon_box {
|
||||||
|
.fa {
|
||||||
|
margin: 10px 20px;
|
||||||
|
&:hover {
|
||||||
|
transition: all 0.3s ease-in-out;
|
||||||
|
color: o-color('gamma');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.icon_box_content {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
.s_images_carousel {
|
||||||
|
height: 400px;
|
||||||
|
&.carousel {
|
||||||
|
@include media-breakpoint-down(lg) {
|
||||||
|
height: auto !important;
|
||||||
|
}
|
||||||
|
.carousel-inner,
|
||||||
|
.carousel-item {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@include media-breakpoint-up(lg) {
|
||||||
|
img {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%,-50%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.carousel-caption {
|
||||||
|
background-color: #fff;
|
||||||
|
color: $body-color;
|
||||||
|
padding: 5px 0;
|
||||||
|
bottom: 55px;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
.s_images_row {
|
||||||
|
.s_images_row_overlay {
|
||||||
|
min-height: 250px;
|
||||||
|
&:after {
|
||||||
|
content: '';
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.s_images_row_body {
|
||||||
|
// @include o-position-absolute($spacer,$spacer,$spacer,$spacer);
|
||||||
|
background-color: #fff;
|
||||||
|
padding: $spacer/2 $spacer;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,39 @@
|
||||||
|
#wrapwrap .s_menu_three_columns {
|
||||||
|
.three-column {
|
||||||
|
width: 100%;
|
||||||
|
position: relative;
|
||||||
|
z-index: 800;
|
||||||
|
.big-menu {
|
||||||
|
height: 150px;
|
||||||
|
position: relative;
|
||||||
|
padding: 0;
|
||||||
|
@include media-breakpoint-down(md) {
|
||||||
|
height: 100px;
|
||||||
|
}
|
||||||
|
@media only screen and (max-width : 360px) { // FIXME
|
||||||
|
height: 80px;
|
||||||
|
}
|
||||||
|
a {
|
||||||
|
text-decoration: none;
|
||||||
|
display: block;
|
||||||
|
&:hover, &:focus {
|
||||||
|
text-decoration: none;
|
||||||
|
background-color: $white;
|
||||||
|
transition: all 200ms ease;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
h2 {
|
||||||
|
line-height: 150px;
|
||||||
|
margin-top: 0;
|
||||||
|
@include media-breakpoint-down(md) {
|
||||||
|
line-height: 100px;
|
||||||
|
line-height: 100px;
|
||||||
|
}
|
||||||
|
@media only screen and (max-width : 360px) { // FIXME
|
||||||
|
height: 80px;
|
||||||
|
line-height: 80px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|