UNPKG

aico-image-editor

Version:

Combine multiple image into and create single combined image

153 lines (152 loc) 12 kB
<div class="editor-interface__options" x-data="canvasControls"> <div class="block block-rounded mb-0 p-3 position-relative" x-data="dragdrop"> <ul class="nav nav-tabs nav-tabs-alt" role="tablist"> <li class="nav-item flex-fill"> <button type="button" class="nav-link text-primary w-100 border-end" id="common-controls-tab" data-bs-toggle="tab" data-bs-target="#common-controls" role="tab" aria-controls="common-controls" aria-selected="true" @click="activeSubTab = 'common-controls'" :class="activeSubTab === 'common-controls' ? 'active' : ''"> <span class="" x-text="getTranslatedHTML('commonSubTabTitle')"></span> </button> </li> <li class="nav-item flex-fill"> <button type="button" class="nav-link text-primary w-100 border-end" id="filter-controls-tab" data-bs-toggle="tab" data-bs-target="#filter-controls" role="tab" aria-controls="filter-controls" aria-selected="true" @click="activeSubTab = 'filter-controls'" :class="activeSubTab === 'filter-controls' ? 'active' : ''"> <span class="" x-text="getTranslatedHTML('canvasFilterSubTabTitle')"></span> </button> </li> <li class="nav-item flex-fill"> <button type="button" class="nav-link text-primary w-100" id="colors-controls-tab" data-bs-toggle="tab" data-bs-target="#colors-controls" role="tab" aria-controls="colors-controls" aria-selected="true" @click="activeSubTab = 'colors-controls'" :class="activeSubTab === 'colors-controls' ? 'active' : ''"> <span class="" x-text="getTranslatedHTML('colors')"></span> </button> </li> </ul> <div class="block-content block-content-full tab-content px-0"> <div class="tab-pane" role="tabpanel" id="common-controls" aria-labelledby="common-controls-tab" :class="activeSubTab === 'common-controls' ? 'active' : ''"> <div class="row justify-content-between gx-4 gy-4"> <div class="col-12 col-sm-8" :class="$store.canvas.isObjectDeselected ? 'inactiveblock': ''"> <div class="d-flex align-items-center mb-2"> <h6 class="mb-0" x-text="getTranslatedHTML('geometry')"></h6> <span class="linedesign ms-3 me-0"></span> </div> <div class="row flex-nowrap gx-2"> <div class="col-auto"> <button type="button" class="btn editor-interface__square border bg-gray-lighter" @click="$store.canvas.setVerticalCenter()" data-bs-toggle="tooltip" :title="getTranslatedHTML('centerVerticalButtonTitle')" x-data="tooltip"> <span class="bugano-vertical-align-icon fw-bold fs-4"></span> </button> </div> <div class="col-auto"> <button type="button" class="btn editor-interface__square border bg-gray-lighter" @click="$store.canvas.setHorizontalCenter()" data-bs-toggle="tooltip" :title="getTranslatedHTML('centerHorizontalButtonTitle')" x-data="tooltip"> <span class="bugano-horizontal-align-icon fw-bold fs-4"></span> </button> </div> <div class="col-auto"> <span class="btn editor-interface__square text-primary" > <span class="bugano-angle-icon fw-bold fs-4"></span> </span> </div> <div class="col-auto" data-bs-toggle="tooltip" :title="getTranslatedHTML('rotateInputTitle')" x-data="tooltip"> <input type="number" min="0" max="360" class="form-control border bg-gray-lighter" @change="$store.canvas.setAngle($el.value)" /> </div> </div> </div> <div class="col-12 col-sm-4" :class="$store.canvas.isObjectDeselected ? 'inactiveblock': ''"> <div class="d-flex align-items-center mb-2"> <h6 class="mb-0 text-uppercase" x-text="getTranslatedHTML('size')"></h6> <span class="linedesign ms-3 me-0"></span> </div> <div class="row gx-2 flex-nowrap"> <div class="col-auto"> <button type="button" class="btn border editor-interface__square bg-gray-lighter fw-bold" @click="$store.canvas.increaseObjectSize()" x-data="tooltip" data-bs-toggle="tooltip" :title="getTranslatedHTML('sizeIncreaseButtonTitle')"> <span><i class="fa-regular fa-plus"></i></span> </button> </div> <div class="col-auto"> <button type="button" class="btn border editor-interface__square bg-gray-lighter fw-bold" @click="$store.canvas.decreaseObjectSize()" x-data="tooltip" data-bs-toggle="tooltip" :title="getTranslatedHTML('sizeDecreaseButtonTitle')"> <span><i class="fa-solid fa-minus"></i></span> </button> </div> </div> </div> </div> <div class="row mt-0 justify-content-between gx-4 gy-4"> <div class="col" :class="$store.canvas.isCurveBlockDisabled ? 'inactiveblock':''"> <div class="d-flex align-items-center mb-2"> <h6 class="mb-0 text-uppercase" x-text="getTranslatedHTML('curvedText')"></h6> <span class="linedesign ms-3 me-0"></span> </div> <div class="row gx-2 flex-nowrap"> <div class="col-auto"> <button type="button" class="btn border editor-interface__square bg-gray-lighter fw-bold me-1" @click="() => { $store.canvas.curveDirection = 'upcurve'; $store.canvas.applyCurvature(); }" :disabled="$store.canvas.curveDirection === 'upcurve'" data-bs-toggle="tooltip" x-data="tooltip" :title="getTranslatedHTML('curveDownTitle')" > <span></span> </button> <button type="button" class="btn border editor-interface__square bg-gray-lighter fw-bold" @click="() => { $store.canvas.curveDirection = 'downcurve'; $store.canvas.applyCurvature(); }" :disabled="$store.canvas.curveDirection === 'downcurve'" data-bs-toggle="tooltip" x-data="tooltip" :title="getTranslatedHTML('curveUpTitle')"> <span></span> </button> </div> <div class="col-auto" data-bs-toggle="tooltip" :title="getTranslatedHTML('angleAdjustTitle')" x-data="tooltip"> <input type="number" class="form-control border bg-gray-lighter" :disabled="$store.canvas.curveDirection === null" x-model="$store.canvas.curvatureValue" @input.debounce.500ms="$store.canvas.applyCurvature()" id="heightcu" min="0" max="500" step="1" /> </div> </div> </div> <div class="col-auto" :class="$store.canvas.isObjectDeselected ? 'inactiveblock': ''"> <div class="d-flex align-items-center mb-2"> <h6 class="mb-0 text-uppercase" x-text="getTranslatedHTML('shadowText')"></h6> <span class="linedesign ms-3 me-0"></span> </div> <div class="row gx-2 flex-nowrap"> <div class="col-auto"> <button type="button" class="btn border editor-interface__square bg-gray-lighter fw-bold me-1" @click="() => { $store.canvas.shadowEffect('apply'); }" data-bs-toggle="tooltip" x-data="tooltip" :title="getTranslatedHTML('addTitle')"> <i class="far fa-clone fa-lg"></i> </button> <button type="button" class="btn border editor-interface__square bg-gray-lighter fw-bold me-1" @click="() => { $store.canvas.shadowEffect('remove'); }" data-bs-toggle="tooltip" x-data="tooltip" :title="getTranslatedHTML('removeTitle')"> <i class="far fa-square fa-lg"></i> </button> </div> <div class="col-auto" data-bs-toggle="tooltip" x-data="tooltip" :title="getTranslatedHTML('distanceAdjustTitle')" style="width: 72px;"> <input type="number" class="form-control border bg-gray-lighter px-2 text-center" id="shadowEffectValue" x-model="$store.canvas.shadowDistance" min="0" max="100" @input.debounce.500ms="$store.canvas.shadowEffect('apply')" /> </div> <div class="col-auto" data-bs-toggle="tooltip" x-data="tooltip" :title="getTranslatedHTML('blurAdjustTitle')" style="width: 72px;"> <input type="number" class="form-control border bg-gray-lighter px-2 text-center" id="blurEffectValue" x-model="$store.canvas.blurDistance" min="0" max="20" @input.debounce.500ms="$store.canvas.shadowEffect('apply')" /> </div> </div> </div> </div> <div class="server-loader position-absolute w-100 h-100 start-0 top-0 pe-none bg-white-75 d-flex justify-content-center align-items-center" :class="$store.canvas.isColorBlockLoaderVisible ? 'd-flex':'d-none'"> <i class="fas fa-spinner fa-pulse" aria-hidden="true"></i> </div> </div> <div class="tab-pane" role="tabpanel" id="filter-controls" aria-labelledby="filter-controls-tab" :class="activeSubTab === 'filter-controls' ? 'active' : ''"> <div class="col-xl-12"> <canvas-filter datatemplateurl="./canvasFilter.html" styles="global" shadow="true"></canvas-filter> </div> </div> <div class="tab-pane" role="tabpanel" id="colors-controls" aria-labelledby="colors-controls-tab" :class="activeSubTab === 'colors-controls' ? 'active' : ''"> <div class="col-12"> </div> </div> </div> </div> </div>