PluginProbe
Vision – Interactive Image Map with Hotspots Builder / 1.12.0
Vision – Interactive Image Map with Hotspots Builder v1.12.0
1.12.2 1.12.1 1.12.0 1.11.0 1.6.0 1.6.1 1.6.2 1.7.1 1.7.2 1.7.3 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.9.0 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 All 33 releases
vision / includes / page-item.php

page-item.php in Vision – Interactive Image Map with Hotspots Builder 1.12.0, at includes/page-item.php

1,155 lines 119.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 defined('ABSPATH') || exit;
3
4 $page = sanitize_key(filter_input(INPUT_GET, 'page', FILTER_DEFAULT));
5 ?>
6 <!-- /begin vision app -->
7 <div class="vision-root" id="vision-app-item" style="display:none;">
8 <input id="vision-load-config-from-file" type="file" style="display:none;" />
9 <div class="vision-page-header">
10 <div class="vision-title">
11 <i class="icon icon-scan-eye"></i>
12 <span>Vision<sup><?php echo esc_attr(VISION_PLUGIN_PLAN); ?></sup></span>
13 <span> - </span>
14 <span><?php esc_html_e('Item', 'vision'); ?></span>
15 </div>
16 <div class="vision-menu">
17 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
18 <line x1="3" y1="12" x2="21" y2="12"></line>
19 <line x1="3" y1="6" x2="21" y2="6"></line>
20 <line x1="3" y1="18" x2="21" y2="18"></line>
21 </svg>
22 <div class="vision-actions">
23 <a href="#" al-on.click="appData.fn.saveConfigToFile(appData)" title="<?php esc_html_e('Save config to a JSON file', 'vision'); ?>"><?php esc_html_e('Save Config As...', 'vision'); ?></a>
24 <a href="#" al-on.click="appData.fn.loadConfigFromFile(appData)" title="<?php esc_html_e('Load config from a JSON file', 'vision'); ?>"><?php esc_html_e('Load Config As...', 'vision'); ?></a>
25 </div>
26 </div>
27 </div>
28 <div class="vision-messages" id="vision-messages">
29 </div>
30 <div class="vision-app" id="vision-app">
31 <div class="vision-loader-wrap">
32 <div class="vision-loader">
33 <div class="vision-loader-bar"></div>
34 <div class="vision-loader-bar"></div>
35 <div class="vision-loader-bar"></div>
36 <div class="vision-loader-bar"></div>
37 </div>
38 </div>
39 <div class="vision-wrap">
40 <div class="vision-main-header">
41 <input class="vision-title" type="text" al-text="appData.config.title" placeholder="<?php esc_html_e('Title', 'vision'); ?>">
42 </div>
43 <div class="vision-workplace">
44 <div class="vision-main-menu">
45 <div class="vision-left-panel">
46 <div class="vision-list">
47 <a class="vision-item vision-small vision-lite" href="https://1.envato.market/getvision" target="_blank" al-if="appData.plan=='lite'"><?php esc_html_e('Buy pro version', 'vision'); ?></a>
48 </div>
49 </div>
50 <div class="vision-right-panel">
51 <div class="vision-list">
52 <div class="vision-item vision-green" al-on.click="appData.fn.preview(appData);" title="<?php esc_html_e('The item should be saved before preview', 'vision'); ?>" al-if="appData.wp_item_id != null"><?php esc_html_e('Preview', 'vision'); ?></div>
53 <div class="vision-item vision-blue" al-on.click="appData.fn.saveConfig(appData);" title="<?php esc_html_e('Save config to database', 'vision'); ?>"><?php esc_html_e('Save', 'vision'); ?></div>
54 </div>
55 </div>
56 </div>
57 <div class="vision-main-tabs vision-clear-fix">
58 <div class="vision-tab" al-attr.class.vision-active="appData.ui.tabs.builder" al-on.click="appData.fn.onTab(appData, 'builder')"><?php esc_html_e('Builder', 'vision'); ?></div>
59 <div class="vision-tab" al-attr.class.vision-active="appData.ui.tabs.customCSS" al-on.click="appData.fn.onTab(appData, 'customCSS')"><?php esc_html_e('Custom CSS', 'vision'); ?><div class="vision-status" al-if="appData.config.customCSS.active"></div></div>
60 <div class="vision-tab" al-attr.class.vision-active="appData.ui.tabs.customJS" al-on.click="appData.fn.onTab(appData, 'customJS')"><?php esc_html_e('Custom JS', 'vision'); ?><div class="vision-status" al-if="appData.config.customJS.active"></div></div>
61 <div class="vision-tab" al-attr.class.vision-active="appData.ui.tabs.shortcode" al-on.click="appData.fn.onTab(appData, 'shortcode')" al-if="appData.wp_item_id"><?php esc_html_e('Shortcode', 'vision'); ?></div>
62 </div>
63 <div class="vision-main-data">
64 <div class="vision-section" al-attr.class.vision-active="appData.ui.tabs.builder">
65 <div class="vision-stage">
66 <div class="vision-builder">
67 <div class="vision-left-sidebar-panel" al-attr.class.vision-collapsed="!appData.ui.builder.leftSidebar" al-style.width="appData.ui.builder.leftSidebarWidth">
68 <div class="vision-sidebar-resizer" al-on.mousedown="appData.fn.onSidebarResizeStart(appData, $event, 'left')">
69 <div class="vision-sidebar-hide" al-on.click="appData.fn.toggleSidebarPanel(appData, 'left')">
70 <i class="icon icon-chevron-left" al-if="appData.ui.builder.leftSidebar"></i>
71 <i class="icon icon-chevron-right" al-if="!appData.ui.builder.leftSidebar"></i>
72 </div>
73 </div>
74 <div class="vision-tabs">
75 <div class="vision-tab" al-attr.class.vision-active="appData.ui.leftSidebarTabs.general" al-on.click="appData.fn.onLeftSidebarTab(appData, 'general')"><?php esc_html_e('General', 'vision'); ?></div>
76 <div class="vision-tab" al-attr.class.vision-active="appData.ui.leftSidebarTabs.layers" al-on.click="appData.fn.onLeftSidebarTab(appData, 'layers')"><?php esc_html_e('Layers', 'vision'); ?></div>
77 </div>
78 <div class="vision-data" al-attr.class.vision-active="appData.ui.leftSidebarTabs.general">
79 <div class="vision-block" al-attr.class.vision-block-folded="appData.ui.generalTab.main">
80 <div class="vision-block-header" al-on.click="appData.fn.onGeneralTab(appData,'main')">
81 <div class="vision-block-title"><?php esc_html_e('Settings', 'vision'); ?></div>
82 <div class="vision-block-state"></div>
83 </div>
84 <div class="vision-block-data">
85 <div class="vision-control">
86 <div class="vision-helper" title="<?php esc_html_e('Enable/disable item', 'vision'); ?>"></div>
87 <div class="vision-label"><?php esc_html_e('Enable item', 'vision'); ?></div>
88 <div al-toggle="appData.config.active"></div>
89 </div>
90
91 <div class="vision-control">
92 <div class="vision-helper" title="<?php esc_html_e('Sets a map image (jpeg or png format)', 'vision'); ?>"></div>
93 <div class="vision-label"><?php esc_html_e('Map image', 'vision'); ?></div>
94 <div class="vision-input-group">
95 <div class="vision-input-group-cell">
96 <input class="vision-text vision-long vision-no-brr" type="text" al-text="appData.config.image.url" placeholder="<?php esc_html_e('Select an image', 'vision'); ?>">
97 </div>
98 <div class="vision-input-group-cell vision-pinch">
99 <div class="vision-btn vision-default vision-no-bl" al-on.click="appData.fn.selectImage(appData, appData.rootScope, appData.config.image)" title="<?php esc_html_e('Select an image', 'vision'); ?>"><span><i class="icon icon-folder"></i></span></div>
100 </div>
101 </div>
102 </div>
103
104 <div class="vision-control">
105 <div class="vision-helper" title="<?php esc_html_e('Specifies a theme of elements', 'vision'); ?>"></div>
106 <div class="vision-label"><?php esc_html_e('Theme', 'vision'); ?></div>
107 <select class="vision-select vision-capitalize" al-select="appData.config.theme">
108 <option al-option="null"><?php esc_html_e('none', 'vision'); ?></option>
109 <option al-repeat="theme in appData.themes" al-option="theme.id">{{theme.title}}</option>
110 </select>
111 </div>
112 </div>
113 </div>
114 <div class="vision-block" al-attr.class.vision-block-folded="appData.ui.generalTab.container">
115 <div class="vision-block-header" al-on.click="appData.fn.onGeneralTab(appData,'container')">
116 <div class="vision-block-title"><?php esc_html_e('Container', 'vision'); ?></div>
117 <div class="vision-block-state"></div>
118 </div>
119 <div class="vision-block-data">
120 <div class="vision-control">
121 <div class="vision-helper" title="<?php esc_html_e('The container width will be auto calculated', 'vision'); ?>"></div>
122 <div class="vision-label"><?php esc_html_e('Auto width', 'vision'); ?></div>
123 <div al-toggle="appData.config.autoWidth"></div>
124 </div>
125
126 <div class="vision-control" al-if="!appData.config.autoWidth">
127 <div class="vision-helper" title="<?php esc_html_e('Sets the container width, can be any valid CSS units, not just pixels', 'vision'); ?>"></div>
128 <div class="vision-label"><?php esc_html_e('Custom width', 'vision'); ?></div>
129 <input class="vision-text" type="text" al-text="appData.config.containerWidth" placeholder="<?php esc_html_e('Default: auto', 'vision'); ?>">
130 </div>
131
132 <div class="vision-control">
133 <div class="vision-helper" title="<?php esc_html_e('The container height will be auto calculated', 'vision'); ?>"></div>
134 <div class="vision-label"><?php esc_html_e('Auto height', 'vision'); ?></div>
135 <div al-toggle="appData.config.autoHeight"></div>
136 </div>
137
138 <div class="vision-control" al-if="!appData.config.autoHeight">
139 <div class="vision-helper" title="<?php esc_html_e('Sets the container height, can be any valid CSS units, not just pixels', 'vision'); ?>"></div>
140 <div class="vision-label"><?php esc_html_e('Custom height', 'vision'); ?></div>
141 <input class="vision-text" type="text" al-text="appData.config.containerHeight" placeholder="<?php esc_html_e('Default: auto', 'vision'); ?>">
142 </div>
143
144 <div class="vision-control">
145 <div class="vision-helper" title="<?php esc_html_e('Background color in hexadecimal format (#fff or #555555)', 'vision'); ?>"></div>
146 <div class="vision-label"><?php esc_html_e('Background color', 'vision'); ?></div>
147 <div class="vision-color" al-color="appData.config.background.color"></div>
148 </div>
149
150 <div class="vision-control">
151 <div class="vision-helper" title="<?php esc_html_e('Sets a background image (jpeg or png format)', 'vision'); ?>"></div>
152 <div class="vision-label"><?php esc_html_e('Background image', 'vision'); ?></div>
153 <div class="vision-input-group">
154 <div class="vision-input-group-cell">
155 <input class="vision-text vision-long vision-no-brr" type="text" al-text="appData.config.background.image.url" placeholder="<?php esc_html_e('Select an image', 'vision'); ?>">
156 </div>
157 <div class="vision-input-group-cell vision-pinch">
158 <div class="vision-btn vision-default vision-no-bl" al-on.click="appData.fn.selectImage(appData, appData.rootScope, appData.config.background.image)" title="<?php esc_html_e('Select a background image', 'vision'); ?>"><span><i class="icon icon-folder"></i></span></div>
159 </div>
160 </div>
161 </div>
162
163 <div class="vision-control">
164 <div class="vision-helper" title="<?php esc_html_e('Specifies a size of the background image', 'vision'); ?>"></div>
165 <div class="vision-label"><?php esc_html_e('Background size', 'vision'); ?></div>
166 <div class="vision-select" al-backgroundsize="appData.config.background.size"></div>
167 </div>
168
169 <div class="vision-control">
170 <div class="vision-helper" title="<?php esc_html_e('How the background image will be repeated', 'vision'); ?>"></div>
171 <div class="vision-label"><?php esc_html_e('Background repeat', 'vision'); ?></div>
172 <div class="vision-select" al-backgroundrepeat="appData.config.background.repeat"></div>
173 </div>
174
175 <div class="vision-control">
176 <div class="vision-helper" title="<?php esc_html_e('Sets a starting position of the background image', 'vision'); ?>"></div>
177 <div class="vision-label"><?php esc_html_e('Background position', 'vision'); ?></div>
178 <input class="vision-text" type="text" al-text="appData.config.background.position" placeholder="<?php esc_html_e('Example: 50% 50%', 'vision'); ?>">
179 </div>
180
181 <div class="vision-control">
182 <div class="vision-helper" title="<?php esc_html_e('Sets additional css classes to the container', 'vision'); ?>"></div>
183 <div class="vision-label"><?php esc_html_e('Extra CSS classes', 'vision'); ?></div>
184 <input class="vision-text" type="text" al-text="appData.config.class">
185 </div>
186
187 <div class="vision-control">
188 <div class="vision-helper" title="<?php esc_html_e('Sets ID to the container', 'vision'); ?>"></div>
189 <div class="vision-label"><?php esc_html_e('Container ID', 'vision'); ?></div>
190 <input class="vision-text" type="text" al-text="appData.config.containerId">
191 </div>
192
193 <div class="vision-control">
194 <div class="vision-helper" title="<?php esc_html_e('Sets the slug for the vision item', 'vision'); ?>"></div>
195 <div class="vision-label"><?php esc_html_e('Slug', 'vision'); ?></div>
196 <input class="vision-text" type="text" al-text="appData.config.slug" data-regex="^([a-z0-9_-]+)$">
197 </div>
198 </div>
199 </div>
200 </div>
201 <div class="vision-data" al-attr.class.vision-active="appData.ui.leftSidebarTabs.layers">
202 <div al-if="appData.config.image.url == null">
203 <div class="vision-info"><?php esc_html_e('Please set a map image to access settings', 'vision'); ?></div>
204 </div>
205 <div class="vision-layers-wrap" al-if="appData.config.image.url != null">
206 <div al-if="appData.config.layers && appData.config.layers.length == 0">
207 <div class="vision-info"><?php esc_html_e('To create a new layer, use the top toolbar of the canvas, which includes link, text, and image controls', 'vision'); ?></div>
208 </div>
209 <div class="vision-layers-toolbar" al-if="appData.config.layers && appData.config.layers.length !== 0">
210 <div class="vision-left-panel" al-attr.class.vision-hidden="appData.ui.activeLayer == null">
211 <i class="icon icon-copy" al-on.click="appData.fn.copyLayer(appData)" title="<?php esc_html_e('copy', 'vision'); ?>"></i>
212 <i class="icon icon-arrow-up-from-line" al-on.click="appData.fn.updownLayer(appData, 'down')" title="<?php esc_html_e('move up', 'vision'); ?>"></i>
213 <i class="icon icon-arrow-down-from-line" al-on.click="appData.fn.updownLayer(appData, 'up')" title="<?php esc_html_e('move down', 'vision'); ?>"></i>
214 </div>
215 <div class="vision-right-panel" al-attr.class.vision-hidden="appData.ui.activeLayer == null">
216 <i class="icon icon-trash-2 icon-color-red" al-on.click="appData.fn.deleteLayer(appData)" title="<?php esc_html_e('delete', 'vision'); ?>"></i>
217 </div>
218 </div>
219 <div class="vision-layers-list">
220 <div class="vision-layer"
221 al-attr.class.vision-active="appData.fn.isLayerActive(appData, layer)"
222 al-on.click="appData.fn.onLayerItemClick(appData, layer)"
223 al-repeat="layer in appData.fn.reverse(appData, appData.config.layers)"
224 >
225 <i class="icon icon-link" al-if="layer.type == 'link'"></i>
226 <i class="icon icon-type" al-if="layer.type == 'text'"></i>
227 <i class="icon icon-image" al-if="layer.type == 'image'"></i>
228 <i class="icon icon-spline" al-if="layer.type == 'svg'"></i>
229 <div class="vision-label">{{layer.title ? layer.title : layer.type}}</div>
230 <div class="vision-actions">
231 <i class="icon icon-message-square-text" al-attr.class.vision-inactive="!layer.tooltip.active" al-on.click="appData.fn.toggleLayerTooltip(appData, layer)" title="<?php esc_html_e('enable/disable tooltip', 'vision'); ?>"></i>
232 <i class="icon icon-notepad-text" al-attr.class.vision-inactive="!layer.popover.active" al-on.click="appData.fn.toggleLayerPopover(appData, layer)" title="<?php esc_html_e('enable/disable popover', 'vision'); ?>"></i>
233 <i class="icon" al-attr.class.icon-eye="layer.visible" al-attr.class.icon-eye-off="!layer.visible" al-on.click="appData.fn.toggleLayerVisible(appData, layer)" title="<?php esc_html_e('show/hide', 'vision'); ?>"></i>
234 <i class="icon" al-attr.class.icon-lock-open="!layer.lock" al-attr.class.icon-lock="layer.lock" al-on.click="appData.fn.toggleLayerLock(appData, layer)" title="<?php esc_html_e('lock/unlock', 'vision'); ?>"></i>
235 </div>
236 </div>
237 </div>
238 </div>
239 </div>
240 </div>
241 <div class="vision-main-panel vision-center">
242 <div class="vision-map-blank" al-attr.class.vision-hidden="appData.config.image.url != null">
243 <div class="vision-map-button" al-on.click="appData.fn.selectImage(appData, appData.rootScope, appData.config.image)">
244 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
245 <path d="M16 5h6"/><path d="M19 2v6"/>
246 <path d="M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5"/>
247 <path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"/>
248 <circle cx="9" cy="9" r="2"/>
249 </svg>
250 </div>
251 <div class="vision-info"><?php esc_html_e('Please set a map image if you want to create layers on it', 'vision'); ?></div>
252 </div>
253 <div al-attr.class.vision-hidden="appData.config.image.url == null">
254 <div class="vision-edit-layers">
255 <div class="vision-layers-toolbar-top">
256 <div class="vision-layers-toolbar" al-attr.class.vision-hidden="appData.ui.activeLayer == null">
257 <i class="icon icon-chevron-left" al-on.click="appData.fn.prevLayer(appData)" title="<?php esc_html_e('Prev layer', 'vision'); ?>"></i>
258 <i class="icon icon-chevron-right" al-on.click="appData.fn.nextLayer(appData)" title="<?php esc_html_e('Next layer', 'vision'); ?>"></i>
259 </div>
260 <div class="vision-layers-toolbar">
261 <i class="icon icon-hand" al-attr.class.vision-active="appData.tools.activeTool == 'move'" al-on.click="appData.fn.moveCanvas(appData)" title="<?php esc_html_e('Move canvas or use "Ctrl + Left Mouse Click" instead', 'vision'); ?>"></i>
262 <i class="icon icon-link" al-attr.class.vision-active="appData.tools.activeTool == 'link'" al-on.click="appData.fn.addLayerLink(appData)" title="<?php esc_html_e('Add link', 'vision'); ?>"></i>
263 <i class="icon icon-type" al-attr.class.vision-active="appData.tools.activeTool == 'text'" al-on.click="appData.fn.addLayerText(appData)" title="<?php esc_html_e('Add text', 'vision'); ?>"></i>
264 <i class="icon icon-image" al-attr.class.vision-active="appData.tools.activeTool == 'image'" al-on.click="appData.fn.addLayerImage(appData)" title="<?php esc_html_e('Add image', 'vision'); ?>"></i>
265 </div>
266 <div class="vision-layers-toolbar" al-attr.class.vision-hidden="appData.ui.activeLayer == null">
267 <i class="icon icon-copy" al-on.click="appData.fn.copyLayer(appData)" title="<?php esc_html_e('copy', 'vision'); ?>"></i>
268 <i class="icon icon-arrow-up-from-line" al-on.click="appData.fn.updownLayer(appData, 'down')" title="<?php esc_html_e('move up', 'vision'); ?>"></i>
269 <i class="icon icon-arrow-down-from-line" al-on.click="appData.fn.updownLayer(appData, 'up')" title="<?php esc_html_e('move down', 'vision'); ?>"></i>
270 </div>
271 </div>
272 <div class="vision-layers-toolbar-bottom">
273 <div class="vision-layers-toolbar">
274 <div class="vision-icon" al-on.click="appData.fn.canvasZoomIn(appData)" title="<?php esc_html_e('Zoom in', 'vision'); ?>">
275 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
276 <circle cx="11" cy="11" r="8"/>
277 <line x1="21" x2="16.65" y1="21" y2="16.65"/>
278 <line x1="11" x2="11" y1="8" y2="14"/>
279 <line x1="8" x2="14" y1="11" y2="11"/>
280 </svg>
281 </div>
282 <span class="vision-zoom-value">{{appData.fn.getCanvasZoomForLabel(appData)}}%</span>
283 <div class="vision-icon" al-on.click="appData.fn.canvasZoomOut(appData)" title="<?php esc_html_e('Zoom out', 'vision'); ?>">
284 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
285 <circle cx="11" cy="11" r="8"/>
286 <line x1="21" x2="16.65" y1="21" y2="16.65"/>
287 <line x1="8" x2="14" y1="11" y2="11"/>
288 </svg>
289 </div>
290 <div class="vision-icon" al-on.click="appData.fn.canvasZoomFit(appData)" title="<?php esc_html_e('Zoom fit', 'vision'); ?>">
291 <svg width="24" height="24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
292 <path d="M8 3H5a2 2 0 0 0-2 2v3"/>
293 <path d="M21 8V5a2 2 0 0 0-2-2h-3"/>
294 <path d="m3 16v3a2 2 0 0 0 2 2h3"/>
295 <path d="m16 21h3a2 2 0 0 0 2-2v-3"/>
296 <rect x="6" y="6" width="12" height="12" ry="2" fill="currentColor" stroke="none" />
297 </svg>
298 </div>
299 <div class="vision-icon" al-on.click="appData.fn.canvasZoomDefault(appData)" title="<?php esc_html_e('Zoom default', 'vision'); ?>">
300 <svg class="lucide lucide-expand" width="24" height="24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
301 <path d="m21 21-6-6m6 6v-4.8m0 4.8h-4.8"/>
302 <path d="m3 16.2v4.8h4.8m-4.8 0 6-6"/>
303 <path d="m21 7.8v-4.8h-4.8m4.8 0-6 6"/>
304 <path d="M3 7.8V3m0 0h4.8M3 3l6 6"/>
305 </svg>
306 </div>
307 <div class="vision-icon" al-on.click="appData.fn.canvasMoveDefault(appData)" title="<?php esc_html_e('Move default', 'vision'); ?>">
308 <svg width="24" height="24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
309 <path d="m12 9v-7m0 7-3.4041-3.3841m3.4041 3.3841 3.3841-3.4041"/>
310 <path d="m18.399 15.384-3.4041-3.3841 3.3841-3.4041m-3.3841 3.4041h7.0051"/>
311 <path d="m5.5959 8.6159 3.4041 3.3841-3.3841 3.4041m3.3841-3.4041h-7"/>
312 <path d="m15.404 18.384-3.4041-3.3841-3.3841 3.4041m3.3841-3.4041v7"/>
313 </svg>
314 </div>
315 </div>
316 </div>
317 <div id="vision-layers-canvas-wrap" class="vision-layers-canvas-wrap" al-on.mousedown="appData.fn.onMoveCanvasStart(appData, $event)">
318 <div id="vision-layers-canvas" class="vision-layers-canvas">
319 <div id="vision-layers-image" class="vision-layers-image"></div>
320 <div class="vision-layers-stage">
321 <div class="vision-layer"
322 tabindex="1"
323 al-on.click="appData.fn.onLayerClick(appData, layer)"
324 al-on.keydown="appData.fn.onLayerKeyDown(appData, layer, $event, $element)"
325 al-attr.class.vision-active="appData.fn.isLayerActive(appData, layer)"
326 al-attr.class.vision-hidden="!layer.visible"
327 al-attr.class.vision-lock="layer.lock"
328 al-attr.class.vision-layer-link="layer.type == 'link'"
329 al-attr.class.vision-layer-text="layer.type == 'text'"
330 al-attr.class.vision-layer-image="layer.type == 'image'"
331 al-attr.class.vision-layer-svg="layer.type == 'svg'"
332 al-style.top="appData.fn.getLayerStyle(appData, layer, 'y')"
333 al-style.left="appData.fn.getLayerStyle(appData, layer, 'x')"
334 al-style.width="appData.fn.getLayerStyle(appData, layer, 'width')"
335 al-style.height="appData.fn.getLayerStyle(appData, layer, 'height')"
336 al-style.transform="appData.fn.getLayerStyle(appData, layer, 'angle')"
337 al-repeat="layer in appData.config.layers"
338 al-init="appData.fn.initLayer(appData, layer, $element)"
339 >
340 <div class="vision-layer-inner"
341 spellcheck="false"
342 al-style.border-radius="appData.fn.getLayerStyle(appData, layer, 'border-radius')"
343 al-style.background-color="appData.fn.getLayerStyle(appData, layer, 'background-color')"
344 al-style.background-image="appData.fn.getLayerStyle(appData, layer, 'background-image')"
345 al-style.background-size="appData.fn.getLayerStyle(appData, layer, 'background-size')"
346 al-style.background-repeat="appData.fn.getLayerStyle(appData, layer, 'background-repeat')"
347 al-style.background-position="appData.fn.getLayerStyle(appData, layer, 'background-position')"
348 al-style.color="appData.fn.getLayerStyle(appData, layer, 'color')"
349 al-style.font-family="appData.fn.getLayerStyle(appData, layer, 'font-family')"
350 al-style.font-size="appData.fn.getLayerStyle(appData, layer, 'font-size')"
351 al-style.line-height="appData.fn.getLayerStyle(appData, layer, 'line-height')"
352 al-style.text-align="appData.fn.getLayerStyle(appData, layer, 'text-align')"
353 al-style.letter-spacing="appData.fn.getLayerStyle(appData, layer, 'letter-spacing')"
354 al-init="appData.fn.initLayerInner(appData, layer, $element)"
355 >
356 </div>
357 </div>
358 </div>
359 </div>
360 </div>
361 </div>
362 </div>
363 </div>
364 <div class="vision-right-sidebar-panel" al-attr.class.vision-collapsed="!appData.ui.builder.rightSidebar" al-style.width="appData.ui.builder.rightSidebarWidth">
365 <div class="vision-sidebar-resizer" al-on.mousedown="appData.fn.onSidebarResizeStart(appData, $event, 'right')">
366 <div class="vision-sidebar-hide" al-on.click="appData.fn.toggleSidebarPanel(appData, 'right')">
367 <i class="icon icon-chevron-right" al-if="appData.ui.builder.rightSidebar"></i>
368 <i class="icon icon-chevron-left" al-if="!appData.ui.builder.rightSidebar"></i>
369 </div>
370 </div>
371 <div class="vision-tabs">
372 <div class="vision-tab" al-attr.class.vision-active="appData.ui.rightSidebarTabs.layer" al-on.click="appData.fn.onRightSidebarTab(appData, 'layer')"><?php esc_html_e('Layer', 'vision'); ?></div>
373 <div class="vision-tab" al-attr.class.vision-active="appData.ui.rightSidebarTabs.tooltip" al-on.click="appData.fn.onRightSidebarTab(appData, 'tooltip')"><?php esc_html_e('Tooltip', 'vision'); ?><div class="vision-status" al-if="appData.ui.activeLayer != null && appData.ui.activeLayer.tooltip.active"></div></div>
374 <div class="vision-tab" al-attr.class.vision-active="appData.ui.rightSidebarTabs.popover" al-on.click="appData.fn.onRightSidebarTab(appData, 'popover')"><?php esc_html_e('Popover', 'vision'); ?><div class="vision-status" al-if="appData.ui.activeLayer != null && appData.ui.activeLayer.popover.active"></div></div>
375 </div>
376 <div class="vision-data" al-attr.class.vision-active="appData.ui.rightSidebarTabs.layer">
377 <div al-if="appData.ui.activeLayer == null">
378 <div class="vision-info"><?php esc_html_e('Please select a layer to access settings', 'vision'); ?></div>
379 </div>
380 <div al-if="appData.ui.activeLayer != null">
381 <div class="vision-block-list">
382 <div class="vision-block" al-attr.class.vision-block-folded="appData.ui.layerTab.general">
383 <div class="vision-block-header" al-on.click="appData.fn.onLayerTab(appData,'general')">
384 <div class="vision-block-title"><?php esc_html_e('General', 'vision'); ?></div>
385 <div class="vision-block-state"></div>
386 </div>
387 <div class="vision-block-data">
388 <div class="vision-control">
389 <div class="vision-helper" title="<?php esc_html_e('Set layer title', 'vision'); ?>"></div>
390 <div class="vision-label"><?php esc_html_e('Title', 'vision'); ?></div>
391 <input class="vision-text vision-long" type="text" al-text="appData.ui.activeLayer.title">
392 </div>
393
394 <div class="vision-control">
395 <div class="vision-helper" title="<?php esc_html_e('Sets a layer id (allow numbers, chars & specials: "_","-"). Should be unique and not empty.', 'vision'); ?>"></div>
396 <div class="vision-label"><?php esc_html_e('Id', 'vision'); ?></div>
397 <div class="vision-input-group vision-long">
398 <div class="vision-input-group-cell">
399 <input class="vision-text vision-long vision-no-brr" type="text" al-uuid="appData.ui.activeLayer.id">
400 </div>
401 <div class="vision-input-group-cell vision-pinch">
402 <div class="vision-btn vision-default vision-no-bl" al-on.click="appData.fn.generateLayerId(appData, appData.rootScope, appData.ui.activeLayer)" title="<?php esc_html_e('Generate a new ID', 'vision'); ?>"><span><i class="icon icon-refresh-ccw"></i></span></div>
403 </div>
404 </div>
405 </div>
406
407 <div class="vision-control">
408 <div class="vision-helper" title="<?php esc_html_e('Set layer position', 'vision'); ?>"></div>
409 <div class="vision-input-group vision-long">
410 <div class="vision-input-group-cell vision-rgap">
411 <div class="vision-label"><?php esc_html_e('X [px]', 'vision'); ?></div>
412 <input class="vision-number vision-long" al-integer="appData.ui.activeLayer.x">
413 </div>
414 <div class="vision-input-group-cell vision-lgap">
415 <div class="vision-label"><?php esc_html_e('Y [px]', 'vision'); ?></div>
416 <input class="vision-number vision-long" al-integer="appData.ui.activeLayer.y">
417 </div>
418 </div>
419 </div>
420
421 <div class="vision-control">
422 <div class="vision-helper" title="<?php esc_html_e('Set layer size', 'vision'); ?>"></div>
423 <div class="vision-input-group vision-long">
424 <div class="vision-input-group-cell vision-rgap">
425 <div class="vision-label"><?php esc_html_e('Width [px]', 'vision'); ?></div>
426 <div class="vision-input-group vision-long">
427 <input class="vision-number vision-long" al-integer="appData.ui.activeLayer.width">
428 </div>
429 <div class="vision-input-group vision-long">
430 <div class="vision-input-group-cell vision-pinch">
431 <div al-checkbox="appData.ui.activeLayer.autoWidth"></div>
432 </div>
433 <div class="vision-input-group-cell">
434 <?php esc_html_e('Auto width', 'vision'); ?>
435 </div>
436 </div>
437 </div>
438 <div class="vision-input-group-cell vision-lgap">
439 <div class="vision-label"><?php esc_html_e('Height [px]', 'vision'); ?></div>
440 <div class="vision-input-group vision-long">
441 <input class="vision-number vision-long" al-integer="appData.ui.activeLayer.height">
442 </div>
443 <div class="vision-input-group vision-long">
444 <div class="vision-input-group-cell vision-pinch">
445 <div al-checkbox="appData.ui.activeLayer.autoHeight"></div>
446 </div>
447 <div class="vision-input-group-cell">
448 <?php esc_html_e('Auto height', 'vision'); ?>
449 </div>
450 </div>
451 </div>
452 </div>
453 </div>
454
455 <div class="vision-control">
456 <div class="vision-helper" title="<?php esc_html_e('Set layer angle', 'vision'); ?>"></div>
457 <div class="vision-label"><?php esc_html_e('Angle [deg]', 'vision'); ?></div>
458 <input class="vision-number vision-long" al-float="appData.ui.activeLayer.angle">
459 </div>
460 </div>
461 </div>
462
463 <div class="vision-block" al-attr.class.vision-block-folded="appData.ui.layerTab.data">
464 <div class="vision-block-header" al-on.click="appData.fn.onLayerTab(appData,'data')">
465 <div class="vision-block-title"><?php esc_html_e('Data', 'vision'); ?></div>
466 <div class="vision-block-state"></div>
467 </div>
468 <div class="vision-block-data">
469 <div class="vision-control">
470 <div class="vision-helper" title="<?php esc_html_e('Adds a specific url to the layer', 'vision'); ?>"></div>
471 <div class="vision-label"><?php esc_html_e('URL', 'vision'); ?></div>
472 <input class="vision-number vision-long" type="text" al-text="appData.ui.activeLayer.url" placeholder="<?php esc_html_e('URL', 'vision'); ?>">
473 <div class="vision-input-group vision-long">
474 <div class="vision-input-group-cell vision-pinch">
475 <div al-checkbox="appData.ui.activeLayer.urlNewWindow"></div>
476 </div>
477 <div class="vision-input-group-cell">
478 <?php esc_html_e('Open url in a new window', 'vision'); ?>
479 </div>
480 </div>
481 <div class="vision-input-group vision-long">
482 <div class="vision-input-group-cell vision-pinch">
483 <div al-checkbox="appData.ui.activeLayer.urlNoFollow"></div>
484 </div>
485 <div class="vision-input-group-cell">
486 <?php esc_html_e('Set the "nofollow" tag', 'vision'); ?>
487 </div>
488 </div>
489 </div>
490
491 <div class="vision-control">
492 <div class="vision-helper" title="<?php esc_html_e('Adds the inner content data to the layer (shortcodes can be used too)', 'vision'); ?>"></div>
493 <div class="vision-label"><?php esc_html_e('Content data', 'vision'); ?></div>
494 <textarea class="vision-long" al-textarea="appData.ui.activeLayer.contentData"></textarea>
495 </div>
496
497 <div class="vision-control">
498 <div class="vision-helper" title="<?php esc_html_e('Adds a specific string data to the layer, if we want to use it in custom code later', 'vision'); ?>"></div>
499 <div class="vision-label"><?php esc_html_e('User data', 'vision'); ?></div>
500 <textarea class="vision-long" al-textarea="appData.ui.activeLayer.userData"></textarea>
501 </div>
502 </div>
503 </div>
504
505 <div class="vision-block" al-attr.class.vision-block-folded="appData.ui.layerTab.appearance">
506 <div class="vision-block-header" al-on.click="appData.fn.onLayerTab(appData,'appearance')">
507 <div class="vision-block-title"><?php esc_html_e('Appearance', 'vision'); ?></div>
508 <div class="vision-block-state"></div>
509 </div>
510 <div class="vision-block-data">
511 <div class="vision-control">
512 <div class="vision-input-group vision-long">
513 <div class="vision-input-group-cell vision-rgap">
514 <div class="vision-helper" title="<?php esc_html_e('The layer size depends on the image size, it scales with the image', 'vision'); ?>"></div>
515 <div class="vision-label"><?php esc_html_e('Zoom with map', 'vision'); ?></div>
516 <div al-toggle="appData.ui.activeLayer.scaling"></div>
517 </div>
518 <div class="vision-input-group-cell vision-lgap">
519 <div class="vision-helper" title="<?php esc_html_e('The layer is never the target of mouse events', 'vision'); ?>"></div>
520 <div class="vision-label"><?php esc_html_e('No events', 'vision'); ?></div>
521 <div al-toggle="appData.ui.activeLayer.noevents"></div>
522 </div>
523 </div>
524 </div>
525
526 <div al-if="appData.ui.activeLayer.type == 'link'">
527 <div class="vision-control">
528 <div class="vision-helper" title="<?php esc_html_e('Normal color in hexadecimal format (#fff or #555555)', 'vision'); ?>"></div>
529 <div class="vision-label"><?php esc_html_e('Normal color', 'vision'); ?></div>
530 <div class="vision-color vision-long" al-color="appData.ui.activeLayer.link.normalColor"></div>
531 </div>
532
533 <div class="vision-control">
534 <div class="vision-helper" title="<?php esc_html_e('Hover color in hexadecimal format (#fff or #555555)', 'vision'); ?>"></div>
535 <div class="vision-label"><?php esc_html_e('Hover color', 'vision'); ?></div>
536 <div class="vision-color vision-long" al-color="appData.ui.activeLayer.link.hoverColor"></div>
537 </div>
538
539 <div class="vision-control">
540 <div class="vision-helper" title="<?php esc_html_e('Sets a radius (5px or 50%)', 'vision'); ?>"></div>
541 <div class="vision-label"><?php esc_html_e('Radius', 'vision'); ?></div>
542 <input class="vision-number vision-long" type="text" al-text="appData.ui.activeLayer.link.radius" placeholder="<?php esc_html_e('Example: 10px', 'vision'); ?>">
543 </div>
544 </div>
545
546 <div al-if="appData.ui.activeLayer.type == 'text'">
547 <div class="vision-control">
548 <div class="vision-helper" title="<?php esc_html_e('Add text', 'vision'); ?>"></div>
549 <div class="vision-label"><?php esc_html_e('Text', 'vision'); ?></div>
550 <input class="vision-number vision-long" type="text" al-text="appData.ui.activeLayer.text.data" placeholder="<?php esc_html_e('Text', 'vision'); ?>">
551 </div>
552
553 <div class="vision-control">
554 <div class="vision-helper" title="<?php esc_html_e('Specifies a font of the text', 'vision'); ?>"></div>
555 <div class="vision-label"><?php esc_html_e('Font', 'vision'); ?></div>
556 <div class="vision-select vision-capitalize vision-long" al-textfont="appData.ui.activeLayer.text.font" data-fonts="appData.fonts"></div>
557 </div>
558
559 <div class="vision-control">
560 <div class="vision-helper" title="<?php esc_html_e('Text color in hexadecimal format (#fff or #555555)', 'vision'); ?>"></div>
561 <div class="vision-label"><?php esc_html_e('Text color', 'vision'); ?></div>
562 <div class="vision-color vision-long" al-color="appData.ui.activeLayer.text.color"></div>
563 </div>
564
565 <div class="vision-control">
566 <div class="vision-input-group vision-long">
567 <div class="vision-input-group-cell vision-rgap">
568 <div class="vision-helper" title="<?php esc_html_e('Sets the text size in px', 'vision'); ?>"></div>
569 <div class="vision-label"><?php esc_html_e('Text size [px]', 'vision'); ?></div>
570 <input class="vision-number vision-long" al-integer="appData.ui.activeLayer.text.size" placeholder="<?php esc_html_e('Example: 18', 'vision'); ?>">
571 </div>
572 <div class="vision-input-group-cell vision-lgap">
573 <div class="vision-helper" title="<?php esc_html_e('Sets the text line height in px', 'vision'); ?>"></div>
574 <div class="vision-label"><?php esc_html_e('Line height [px]', 'vision'); ?></div>
575 <input class="vision-number vision-long" al-integer="appData.ui.activeLayer.text.lineHeight" placeholder="<?php esc_html_e('Example: 18', 'vision'); ?>">
576 </div>
577 </div>
578 </div>
579
580 <div class="vision-control">
581 <div class="vision-input-group vision-long">
582 <div class="vision-input-group-cell vision-rgap">
583 <div class="vision-helper" title="<?php esc_html_e('Specifies the horizontal alignment of the text', 'vision'); ?>"></div>
584 <div class="vision-label"><?php esc_html_e('Text align', 'vision'); ?></div>
585 <div class="vision-select vision-long" al-textalign="appData.ui.activeLayer.text.align"></div>
586 </div>
587 <div class="vision-input-group-cell vision-lgap">
588 <div class="vision-helper" title="<?php esc_html_e('Specifies the spacing behavior between text characters', 'vision'); ?>"></div>
589 <div class="vision-label"><?php esc_html_e('Letter spacing [px]', 'vision'); ?></div>
590 <input class="vision-number vision-long" al-integer="appData.ui.activeLayer.text.letterSpacing" placeholder="<?php esc_html_e('Example: 1', 'vision'); ?>">
591 </div>
592 </div>
593 </div>
594
595 <div class="vision-control">
596 <div class="vision-helper" title="<?php esc_html_e('Sets a background image (jpeg or png format)', 'vision'); ?>"></div>
597 <div class="vision-label"><?php esc_html_e('Background image', 'vision'); ?></div>
598 <div class="vision-input-group vision-long">
599 <div class="vision-input-group-cell">
600 <input class="vision-text vision-long vision-no-brr" type="text" al-text="appData.ui.activeLayer.text.background.file.url" placeholder="<?php esc_html_e('Select an image', 'vision'); ?>">
601 </div>
602 <div class="vision-input-group-cell vision-pinch">
603 <div class="vision-btn vision-default vision-no-bl" al-on.click="appData.fn.selectImage(appData, appData.rootScope, appData.ui.activeLayer.text.background.file)"><span><i class="icon icon-folder"></i></span></div>
604 </div>
605 </div>
606 </div>
607
608 <!-- background color & repeat -->
609 <div class="vision-control">
610 <div class="vision-input-group vision-long">
611 <div class="vision-input-group-cell vision-rgap">
612 <div class="vision-helper" title="<?php esc_html_e('Sets a background color', 'vision'); ?>"></div>
613 <div class="vision-label"><?php esc_html_e('Background color', 'vision'); ?></div>
614 <div class="vision-color vision-long" al-color="appData.ui.activeLayer.text.background.color"></div>
615 </div>
616 <div class="vision-input-group-cell vision-lgap">
617 <div class="vision-helper" title="<?php esc_html_e('How the background image will be repeated', 'vision'); ?>"></div>
618 <div class="vision-label"><?php esc_html_e('Background repeat', 'vision'); ?></div>
619 <div class="vision-select vision-long" al-backgroundrepeat="appData.ui.activeLayer.text.background.repeat"></div>
620 </div>
621 </div>
622 </div>
623
624 <div class="vision-control">
625 <div class="vision-input-group vision-long">
626 <div class="vision-input-group-cell vision-rgap">
627 <div class="vision-helper" title="<?php esc_html_e('Specifies a size of the background image', 'vision'); ?>"></div>
628 <div class="vision-label"><?php esc_html_e('Background size', 'vision'); ?></div>
629 <div class="vision-select vision-long" al-backgroundsize="appData.ui.activeLayer.text.background.size"></div>
630 </div>
631 <div class="vision-input-group-cell vision-lgap">
632 <div class="vision-helper" title="<?php esc_html_e('Sets a starting position of the background image', 'vision'); ?>"></div>
633 <div class="vision-label"><?php esc_html_e('Background position', 'vision'); ?></div>
634 <input class="vision-text vision-long" type="text" al-text="appData.ui.activeLayer.text.background.position" placeholder="<?php esc_html_e('Example: 50% 50%', 'vision'); ?>">
635 </div>
636 </div>
637 </div>
638 </div>
639
640 <div al-if="appData.ui.activeLayer.type == 'image'">
641 <div class="vision-control">
642 <div class="vision-helper" title="<?php esc_html_e('Sets a background image (jpeg or png format)', 'vision'); ?>"></div>
643 <div class="vision-label"><?php esc_html_e('Background image', 'vision'); ?></div>
644 <div class="vision-input-group vision-long">
645 <div class="vision-input-group-cell">
646 <input class="vision-text vision-long vision-no-brr" type="text" al-text="appData.ui.activeLayer.image.background.file.url" placeholder="<?php esc_html_e('Select an image', 'vision'); ?>">
647 </div>
648 <div class="vision-input-group-cell vision-pinch">
649 <div class="vision-btn vision-default vision-no-bl" al-on.click="appData.fn.selectImage(appData, appData.rootScope, appData.ui.activeLayer.image.background.file)"><span><i class="icon icon-folder"></i></span></div>
650 </div>
651 </div>
652 </div>
653
654 <!-- background color & repeat -->
655 <div class="vision-control">
656 <div class="vision-input-group vision-long">
657 <div class="vision-input-group-cell vision-rgap">
658 <div class="vision-helper" title="<?php esc_html_e('Sets a background color', 'vision'); ?>"></div>
659 <div class="vision-label"><?php esc_html_e('Background color', 'vision'); ?></div>
660 <div class="vision-color vision-long" al-color="appData.ui.activeLayer.image.background.color"></div>
661 </div>
662 <div class="vision-input-group-cell vision-lgap">
663 <div class="vision-helper" title="<?php esc_html_e('How the background image will be repeated', 'vision'); ?>"></div>
664 <div class="vision-label"><?php esc_html_e('Background repeat', 'vision'); ?></div>
665 <div class="vision-select vision-long" al-backgroundrepeat="appData.ui.activeLayer.image.background.repeat"></div>
666 </div>
667 </div>
668 </div>
669
670 <div class="vision-control">
671 <div class="vision-input-group vision-long">
672 <div class="vision-input-group-cell vision-rgap">
673 <div class="vision-helper" title="<?php esc_html_e('Specifies a size of the background image', 'vision'); ?>"></div>
674 <div class="vision-label"><?php esc_html_e('Background size', 'vision'); ?></div>
675 <div class="vision-select vision-long" al-backgroundsize="appData.ui.activeLayer.image.background.size"></div>
676 </div>
677 <div class="vision-input-group-cell vision-lgap">
678 <div class="vision-helper" title="<?php esc_html_e('Sets a starting position of the background image', 'vision'); ?>"></div>
679 <div class="vision-label"><?php esc_html_e('Background position', 'vision'); ?></div>
680 <input class="vision-text vision-long" type="text" al-text="appData.ui.activeLayer.image.background.position" placeholder="<?php esc_html_e('Example: 50% 50%', 'vision'); ?>">
681 </div>
682 </div>
683 </div>
684 </div>
685
686 <div al-if="appData.ui.activeLayer.type == 'svg'">
687 <div class="vision-control">
688 <div class="vision-helper" title="<?php esc_html_e('Set svg file', 'vision'); ?>"></div>
689 <div class="vision-label"><?php esc_html_e('File', 'vision'); ?></div>
690 <div class="vision-input-group vision-long">
691 <div class="vision-input-group-cell">
692 <input class="vision-text vision-long" type="text" al-text="appData.ui.activeLayer.svg.file.url" placeholder="<?php esc_html_e('Select a file', 'vision'); ?>">
693 </div>
694 <div class="vision-input-group-cell vision-pinch">
695 <div class="vision-btn vision-default vision-no-bl" al-on.click="appData.fn.selectImage(appData, appData.rootScope, appData.ui.activeLayer.svg.file)"><span><i class="icon icon-folder"></i></span></div>
696 </div>
697 </div>
698 </div>
699 </div>
700
701 <div class="vision-control">
702 <div class="vision-helper" title="<?php esc_html_e('Set additional css classes to the layer', 'vision'); ?>"></div>
703 <div class="vision-label"><?php esc_html_e('Extra CSS classes', 'vision'); ?></div>
704 <input class="vision-number vision-long" type="text" al-text="appData.ui.activeLayer.className">
705 </div>
706 </div>
707 </div>
708 </div>
709 </div>
710 </div>
711 <div class="vision-data" al-attr.class.vision-active="appData.ui.rightSidebarTabs.tooltip">
712 <div class="vision-data-block" al-attr.class.vision-active="appData.ui.activeLayer == null">
713 <div class="vision-info"><?php esc_html_e('Please select a layer to access settings', 'vision'); ?></div>
714 </div>
715 <div class="vision-data-block" al-attr.class.vision-active="appData.ui.activeLayer != null">
716 <div class="vision-block-list">
717 <div class="vision-block" al-attr.class.vision-block-folded="appData.ui.tooltipTab.data">
718 <div class="vision-block-header" al-on.click="appData.fn.onTooltipTab(appData,'data')">
719 <div class="vision-block-title"><?php esc_html_e('Data', 'vision'); ?></div>
720 <div class="vision-block-state"></div>
721 </div>
722 <div class="vision-block-data">
723 <div al-if="appData.ui.activeLayer != null">
724 <div class="vision-control">
725 <div class="vision-helper" title="<?php esc_html_e('Enable/disable tooltip for the selected layer', 'vision'); ?>"></div>
726 <div class="vision-label"><?php esc_html_e('Enable tooltip', 'vision'); ?></div>
727 <div al-toggle="appData.ui.activeLayer.tooltip.active"></div>
728 </div>
729 </div>
730
731 <div class="vision-control">
732 <?php
733 $vision_settings = [
734 'tinymce' => true,
735 'textarea_name' => 'vision-tooltip-text',
736 'wpautop' => false,
737 'editor_height' => 200, // In pixels, takes precedence and has no default value
738 'drag_drop_upload' => true,
739 'media_buttons' => true,
740 'teeny' => true,
741 'quicktags' => true
742 ];
743 wp_editor('','vision-tooltip-editor', $vision_settings);
744 ?>
745 </div>
746 </div>
747 </div>
748
749 <div class="vision-block" al-attr.class.vision-block-folded="appData.ui.tooltipTab.appearance">
750 <div class="vision-block-header" al-on.click="appData.fn.onTooltipTab(appData,'appearance')">
751 <div class="vision-block-title"><?php esc_html_e('Appearance', 'vision'); ?></div>
752 <div class="vision-block-state"></div>
753 </div>
754 <div class="vision-block-data">
755 <div al-if="appData.ui.activeLayer != null">
756 <div class="vision-control">
757 <div class="vision-input-group vision-long">
758 <div class="vision-input-group-cell vision-rgap">
759 <div class="vision-helper" title="<?php esc_html_e('Specifies a tooltip event trigger', 'vision'); ?>"></div>
760 <div class="vision-label"><?php esc_html_e('Trigger', 'vision'); ?></div>
761 <div class="vision-select vision-long" al-tooltiptrigger="appData.ui.activeLayer.tooltip.trigger"></div>
762 </div>
763 <div class="vision-input-group-cell vision-lgap">
764 <div class="vision-helper" title="<?php esc_html_e('Specifies a tooltip placement', 'vision'); ?>"></div>
765 <div class="vision-label"><?php esc_html_e('Placement', 'vision'); ?></div>
766 <div class="vision-select vision-long" al-tooltipplacement="appData.ui.activeLayer.tooltip.placement"></div>
767 </div>
768 </div>
769 </div>
770
771 <div class="vision-control">
772 <div class="vision-helper" title="<?php esc_html_e('Set tooltip offset', 'vision'); ?>"></div>
773 <div class="vision-input-group vision-long">
774 <div class="vision-input-group-cell vision-rgap">
775 <div class="vision-label"><?php esc_html_e('Offset top [px]', 'vision'); ?></div>
776 <input class="vision-number vision-long" al-integer="appData.ui.activeLayer.tooltip.offset.y">
777 </div>
778 <div class="vision-input-group-cell vision-lgap">
779 <div class="vision-label"><?php esc_html_e('Offset left [px]', 'vision'); ?></div>
780 <input class="vision-number vision-long" al-integer="appData.ui.activeLayer.tooltip.offset.x">
781 </div>
782 </div>
783 </div>
784
785 <div class="vision-control">
786 <div class="vision-input-group vision-long">
787 <div class="vision-input-group-cell vision-rgap">
788 <div class="vision-helper" title="<?php esc_html_e('The tooltip size depends on the image size', 'vision'); ?>"></div>
789 <div class="vision-label"><?php esc_html_e('Zoom with map', 'vision'); ?></div>
790 <div al-toggle="appData.ui.activeLayer.tooltip.scaling"></div>
791 </div>
792 <div class="vision-input-group-cell vision-lgap">
793 <div class="vision-helper" title="<?php esc_html_e('Determines if the tooltip is placed within the viewport as best it can be if there is not enough space', 'vision'); ?>"></div>
794 <div class="vision-label"><?php esc_html_e('Smart', 'vision'); ?></div>
795 <div al-toggle="appData.ui.activeLayer.tooltip.smart"></div>
796 </div>
797 </div>
798 </div>
799
800 <div class="vision-control">
801 <div class="vision-input-group vision-long">
802 <div class="vision-input-group-cell vision-rgap" al-attr.class.vision-nogap="appData.ui.activeLayer.tooltip.widthFromCSS">
803 <div class="vision-helper" title="<?php esc_html_e('If true, the tooltip width will be taken from CSS rules, dont forget to define them', 'vision'); ?>"></div>
804 <div class="vision-label"><?php esc_html_e('Width from CSS', 'vision'); ?></div>
805 <div al-toggle="appData.ui.activeLayer.tooltip.widthFromCSS"></div>
806 </div>
807 <div class="vision-input-group-cell vision-lgap" al-if="!appData.ui.activeLayer.tooltip.widthFromCSS">
808 <div class="vision-helper" title="<?php esc_html_e('Specifies a tooltip width', 'vision'); ?>"></div>
809 <div class="vision-label"><?php esc_html_e('Width [px]', 'vision'); ?></div>
810 <input class="vision-number vision-long" al-integer="appData.ui.activeLayer.tooltip.width" placeholder="<?php esc_html_e('auto', 'vision'); ?>">
811 </div>
812 </div>
813 </div>
814
815 <div class="vision-control" al-if="appData.ui.activeLayer.tooltip.trigger != 'hover'">
816 <div class="vision-helper" title="<?php esc_html_e('The tooltip will be shown immediately once the instance is created', 'vision'); ?>"></div>
817 <div class="vision-label"><?php esc_html_e('Show on init', 'vision'); ?></div>
818 <div al-toggle="appData.ui.activeLayer.tooltip.showOnInit"></div>
819 </div>
820
821 <div class="vision-control" al-if="appData.ui.activeLayer.tooltip.trigger == 'hover'">
822 <div class="vision-input-group vision-long">
823 <!--
824 <div class="vision-input-group-cell vision-rgap">
825 <div class="vision-helper" title="<?php esc_html_e('Enable/disable tooltip follow the cursor as you hover over the layer', 'vision'); ?>"></div>
826 <div class="vision-label"><?php esc_html_e('Follow the cursor', 'vision'); ?></div>
827 <div al-toggle="appData.ui.activeLayer.tooltip.followCursor"></div>
828 </div>
829 -->
830 <div class="vision-input-group-cell vision-rgap">
831 <div class="vision-helper" title="<?php esc_html_e('The tooltip will be shown immediately once the instance is created', 'vision'); ?>"></div>
832 <div class="vision-label"><?php esc_html_e('Show on init', 'vision'); ?></div>
833 <div al-toggle="appData.ui.activeLayer.tooltip.showOnInit"></div>
834 </div>
835 <div class="vision-input-group-cell vision-lgap">
836 <div class="vision-helper" title="<?php esc_html_e('The tooltip won\'t hide when you hover over or click on them', 'vision'); ?>"></div>
837 <div class="vision-label"><?php esc_html_e('Interactive', 'vision'); ?></div>
838 <div al-toggle="appData.ui.activeLayer.tooltip.interactive"></div>
839 </div>
840 </div>
841 </div>
842
843 <div class="vision-control">
844 <div class="vision-helper" title="<?php esc_html_e('Set additional css classes to the tooltip', 'vision'); ?>"></div>
845 <div class="vision-label"><?php esc_html_e('Extra CSS classes', 'vision'); ?></div>
846 <input class="vision-number vision-long" type="text" al-text="appData.ui.activeLayer.tooltip.className">
847 </div>
848
849 <div class="vision-control">
850 <div class="vision-input-group vision-long">
851 <div class="vision-input-group-cell vision-rgap">
852 <div class="vision-helper" title="<?php esc_html_e('Select a show animation effect for the tooltip from the list or write your own', 'vision'); ?>"></div>
853 <div class="vision-label"><?php esc_html_e('Show animation', 'vision'); ?></div>
854 <div class="vision-input-group vision-long">
855 <div class="vision-input-group-cell">
856 <input class="vision-text vision-long vision-no-brr" type="text" al-text="appData.ui.activeLayer.tooltip.showAnimation">
857 </div>
858 <div class="vision-input-group-cell vision-pinch">
859 <div class="vision-btn vision-default vision-no-bl" al-on.click="appData.fn.selectShowAnimation(appData, appData.ui.activeLayer.tooltip)" title="<?php esc_html_e('Select an effect', 'vision'); ?>"><span><i class="icon icon-folder"></i></span></div>
860 </div>
861 </div>
862 </div>
863 <div class="vision-input-group-cell vision-lgap">
864 <div class="vision-helper" title="<?php esc_html_e('Select a hide animation effect for the tooltip from the list or write your own', 'vision'); ?>"></div>
865 <div class="vision-label"><?php esc_html_e('Hide animation', 'vision'); ?></div>
866 <div class="vision-input-group vision-long">
867 <div class="vision-input-group-cell">
868 <input class="vision-text vision-long vision-no-brr" type="text" al-text="appData.ui.activeLayer.tooltip.hideAnimation">
869 </div>
870 <div class="vision-input-group-cell vision-pinch">
871 <div class="vision-btn vision-default vision-no-bl" al-on.click="appData.fn.selectHideAnimation(appData, appData.ui.activeLayer.tooltip)" title="<?php esc_html_e('Select an effect', 'vision'); ?>"><span><i class="icon icon-folder"></i></span></div>
872 </div>
873 </div>
874 </div>
875 </div>
876 </div>
877
878 <div class="vision-control">
879 <div class="vision-helper" title="<?php esc_html_e('Set animation duration for show and hide effects', 'vision'); ?>"></div>
880 <div class="vision-label"><?php esc_html_e('Duration [ms]', 'vision'); ?></div>
881 <input class="vision-number vision-long" al-integer="appData.ui.activeLayer.tooltip.duration">
882 </div>
883 </div>
884 </div>
885 </div>
886 </div>
887 </div>
888 </div>
889 <div class="vision-data" al-attr.class.vision-active="appData.ui.rightSidebarTabs.popover">
890 <div class="vision-data-block" al-attr.class.vision-active="appData.ui.activeLayer == null">
891 <div class="vision-info"><?php esc_html_e('Please select a layer to access settings', 'vision'); ?></div>
892 </div>
893 <div class="vision-data-block" al-attr.class.vision-active="appData.ui.activeLayer != null">
894 <div class="vision-block-list">
895 <div class="vision-block" al-attr.class.vision-block-folded="appData.ui.popoverTab.data">
896 <div class="vision-block-header" al-on.click="appData.fn.onPopoverTab(appData,'data')">
897 <div class="vision-block-title"><?php esc_html_e('Data', 'vision'); ?></div>
898 <div class="vision-block-state"></div>
899 </div>
900 <div class="vision-block-data">
901 <div al-if="appData.ui.activeLayer != null">
902 <div class="vision-control">
903 <div class="vision-helper" title="<?php esc_html_e('Enable/disable popover for the selected layer', 'vision'); ?>"></div>
904 <div class="vision-label"><?php esc_html_e('Enable popover', 'vision'); ?></div>
905 <div al-toggle="appData.ui.activeLayer.popover.active"></div>
906 </div>
907 </div>
908
909 <div class="vision-control">
910 <?php
911 $vision_settings = [
912 'tinymce' => true,
913 'textarea_name' => 'vision-popover-text',
914 'wpautop' => false,
915 'editor_height' => 200, // In pixels, takes precedence and has no default value
916 'drag_drop_upload' => true,
917 'media_buttons' => true,
918 'teeny' => true,
919 'quicktags' => true
920 ];
921 wp_editor('','vision-popover-editor', $vision_settings);
922 ?>
923 </div>
924 </div>
925 </div>
926
927 <div class="vision-block" al-attr.class.vision-block-folded="appData.ui.popoverTab.appearance">
928 <div class="vision-block-header" al-on.click="appData.fn.onPopoverTab(appData,'appearance')">
929 <div class="vision-block-title"><?php esc_html_e('Appearance', 'vision'); ?></div>
930 <div class="vision-block-state"></div>
931 </div>
932 <div class="vision-block-data">
933 <div al-if="appData.ui.activeLayer != null">
934 <div class="vision-control">
935 <div class="vision-input-group vision-long">
936 <div class="vision-input-group-cell vision-rgap">
937 <div class="vision-helper" title="<?php esc_html_e('Specifies a popover desktop type', 'vision'); ?>"></div>
938 <div class="vision-label"><?php esc_html_e('Desktop type', 'vision'); ?></div>
939 <div class="vision-select vision-long" al-popovertype="appData.ui.activeLayer.popover.type"></div>
940 </div>
941 <div class="vision-input-group-cell vision-lgap">
942 <div class="vision-helper" title="<?php esc_html_e('Specifies a popover mobile type', 'vision'); ?>"></div>
943 <div class="vision-label"><?php esc_html_e('Mobile type', 'vision'); ?></div>
944 <div class="vision-select vision-long" al-popovertype="appData.ui.activeLayer.popover.mobileType"></div>
945 </div>
946 </div>
947 </div>
948
949 <div al-if="!(appData.ui.activeLayer.popover.type == 'tooltip' || appData.ui.activeLayer.popover.mobileType == 'tooltip')">
950 <div class="vision-control">
951 <div class="vision-helper" title="<?php esc_html_e('Specifies the event trigger of the popover', 'vision'); ?>"></div>
952 <div class="vision-label"><?php esc_html_e('Trigger', 'vision'); ?></div>
953 <div class="vision-select vision-long" al-popovertrigger="appData.ui.activeLayer.popover.trigger"></div>
954 </div>
955 </div>
956
957 <div al-if="appData.ui.activeLayer.popover.type == 'tooltip' || appData.ui.activeLayer.popover.mobileType == 'tooltip'">
958 <div class="vision-control">
959 <div class="vision-input-group vision-long">
960 <div class="vision-input-group-cell vision-rgap">
961 <div class="vision-helper" title="<?php esc_html_e('Specifies a popover event trigger', 'vision'); ?>"></div>
962 <div class="vision-label"><?php esc_html_e('Trigger', 'vision'); ?></div>
963 <div class="vision-select vision-long" al-tooltiptrigger="appData.ui.activeLayer.popover.trigger"></div>
964 </div>
965 <div class="vision-input-group-cell vision-lgap">
966 <div class="vision-helper" title="<?php esc_html_e('Specifies a popover placement', 'vision'); ?>"></div>
967 <div class="vision-label"><?php esc_html_e('Placement', 'vision'); ?></div>
968 <div class="vision-select vision-long" al-tooltipplacement="appData.ui.activeLayer.popover.placement"></div>
969 </div>
970 </div>
971 </div>
972
973 <div class="vision-control">
974 <div class="vision-helper" title="<?php esc_html_e('Set popover offset', 'vision'); ?>"></div>
975 <div class="vision-input-group vision-long">
976 <div class="vision-input-group-cell vision-rgap">
977 <div class="vision-label"><?php esc_html_e('Offset top [px]', 'vision'); ?></div>
978 <input class="vision-number vision-long" al-integer="appData.ui.activeLayer.popover.offset.top">
979 </div>
980 <div class="vision-input-group-cell vision-lgap">
981 <div class="vision-label"><?php esc_html_e('Offset left [px]', 'vision'); ?></div>
982 <input class="vision-number vision-long" al-integer="appData.ui.activeLayer.popover.offset.left">
983 </div>
984 </div>
985 </div>
986
987 <div class="vision-control">
988 <div class="vision-input-group vision-long">
989 <div class="vision-input-group-cell vision-rgap">
990 <div class="vision-helper" title="<?php esc_html_e('The popover size depends on the image size', 'vision'); ?>"></div>
991 <div class="vision-label"><?php esc_html_e('Zoom with map', 'vision'); ?></div>
992 <div al-toggle="appData.ui.activeLayer.popover.scaling"></div>
993 </div>
994 <div class="vision-input-group-cell vision-lgap">
995 <div class="vision-helper" title="<?php esc_html_e('Determines if the popover is placed within the viewport as best it can be if there is not enough space', 'vision'); ?>"></div>
996 <div class="vision-label"><?php esc_html_e('Smart', 'vision'); ?></div>
997 <div al-toggle="appData.ui.activeLayer.popover.smart"></div>
998 </div>
999 </div>
1000 </div>
1001
1002 <div class="vision-control">
1003 <div class="vision-input-group vision-long">
1004 <div class="vision-input-group-cell vision-rgap" al-attr.class.vision-nogap="appData.ui.activeLayer.popover.widthFromCSS">
1005 <div class="vision-helper" title="<?php esc_html_e('If true, the tooltip width will be taken from CSS rules, dont forget to define them', 'vision'); ?>"></div>
1006 <div class="vision-label"><?php esc_html_e('Width from CSS', 'vision'); ?></div>
1007 <div al-toggle="appData.ui.activeLayer.popover.widthFromCSS"></div>
1008 </div>
1009 <div class="vision-input-group-cell vision-lgap" al-if="!appData.ui.activeLayer.popover.widthFromCSS">
1010 <div class="vision-helper" title="<?php esc_html_e('Specifies the width of the popover', 'vision'); ?>"></div>
1011 <div class="vision-label"><?php esc_html_e('Width [px]', 'vision'); ?></div>
1012 <input class="vision-number vision-long" al-integer="appData.ui.activeLayer.popover.width" placeholder="<?php esc_html_e('auto', 'vision'); ?>">
1013 </div>
1014 </div>
1015 </div>
1016 </div>
1017
1018 <div class="vision-control" al-if="appData.ui.activeLayer.popover.trigger != 'hover'">
1019 <div class="vision-helper" title="<?php esc_html_e('The popover will be shown immediately once the instance is created', 'vision'); ?>"></div>
1020 <div class="vision-label"><?php esc_html_e('Show on init', 'vision'); ?></div>
1021 <div al-toggle="appData.ui.activeLayer.popover.showOnInit"></div>
1022 </div>
1023
1024 <div class="vision-control" al-if="appData.ui.activeLayer.popover.trigger == 'hover'">
1025 <div class="vision-input-group vision-long">
1026 <!--
1027 <div class="vision-input-group-cell vision-rgap">
1028 <div class="vision-helper" title="<?php esc_html_e('Enable/disable popover follow the cursor as you hover over the layer', 'vision'); ?>"></div>
1029 <div class="vision-label"><?php esc_html_e('Follow the cursor', 'vision'); ?></div>
1030 <div al-toggle="appData.ui.activeLayer.popover.followCursor"></div>
1031 </div>
1032 -->
1033 <div class="vision-input-group-cell vision-rgap">
1034 <div class="vision-helper" title="<?php esc_html_e('The popover will be shown immediately once the instance is created', 'vision'); ?>"></div>
1035 <div class="vision-label"><?php esc_html_e('Show on init', 'vision'); ?></div>
1036 <div al-toggle="appData.ui.activeLayer.popover.showOnInit"></div>
1037 </div>
1038 <div class="vision-input-group-cell vision-lgap">
1039 <div class="vision-helper" title="<?php esc_html_e('The popover won\'t hide when you hover over or click on them', 'vision'); ?>"></div>
1040 <div class="vision-label"><?php esc_html_e('Interactive', 'vision'); ?></div>
1041 <div al-toggle="appData.ui.activeLayer.popover.interactive"></div>
1042 </div>
1043 </div>
1044 </div>
1045
1046 <div class="vision-control">
1047 <div class="vision-helper" title="<?php esc_html_e('Set additional css classes to the popover', 'vision'); ?>"></div>
1048 <div class="vision-label"><?php esc_html_e('Extra CSS classes', 'vision'); ?></div>
1049 <input class="vision-number vision-long" type="text" al-text="appData.ui.activeLayer.popover.className">
1050 </div>
1051 </div>
1052 </div>
1053 </div>
1054 </div>
1055 </div>
1056 </div>
1057 </div>
1058 </div>
1059 </div>
1060 </div>
1061 <div class="vision-section" al-attr.class.vision-active="appData.ui.tabs.customCSS" al-if="appData.ui.tabs.customCSS">
1062 <div class="vision-stage">
1063 <div class="vision-main-panel vision-main-panel-general">
1064 <div class="vision-data vision-active">
1065 <div class="vision-control">
1066 <div class="vision-helper" title="<?php esc_html_e('Enable/disable custom styles', 'vision'); ?>"></div>
1067 <div class="vision-input-group">
1068 <div class="vision-input-group-cell vision-pinch">
1069 <div al-toggle="appData.config.customCSS.active"></div>
1070 </div>
1071 <div class="vision-input-group-cell">
1072 <div class="vision-label vision-offset-top"><?php esc_html_e('Enable styles', 'vision'); ?></div>
1073 </div>
1074 </div>
1075 </div>
1076 <div class="vision-control vision-full-height">
1077 <pre id="vision-notepad-css" class="vision-notepad"></pre>
1078 </div>
1079 </div>
1080 </div>
1081 </div>
1082 </div>
1083 <div class="vision-section" al-attr.class.vision-active="appData.ui.tabs.customJS" al-if="appData.ui.tabs.customJS">
1084 <div class="vision-stage">
1085 <div class="vision-main-panel vision-main-panel-general">
1086 <div class="vision-data vision-active">
1087 <div class="vision-control">
1088 <div class="vision-helper" title="<?php esc_html_e('Enable/disable custom javascript code', 'vision'); ?>"></div>
1089 <div class="vision-input-group">
1090 <div class="vision-input-group-cell vision-pinch">
1091 <div al-toggle="appData.config.customJS.active"></div>
1092 </div>
1093 <div class="vision-input-group-cell">
1094 <div class="vision-label vision-offset-top"><?php esc_html_e('Enable javascript code', 'vision'); ?></div>
1095 </div>
1096 </div>
1097 </div>
1098 <div class="vision-control vision-full-height">
1099 <pre id="vision-notepad-js" class="vision-notepad"></pre>
1100 </div>
1101 </div>
1102 </div>
1103 </div>
1104 </div>
1105 <div class="vision-section" al-attr.class.vision-active="appData.ui.tabs.shortcode" al-if="appData.wp_item_id">
1106 <div class="vision-main-panel vision-main-panel-general">
1107 <div class="vision-data vision-active">
1108 <div class="vision-control">
1109 <div class="vision-info"><?php esc_html_e('Use a shortcode like the one below, copy and paste it into a post or page.', 'vision'); ?></div>
1110 </div>
1111
1112 <div class="vision-control">
1113 <div class="vision-label"><?php esc_html_e('Standard shortcode', 'vision'); ?></div>
1114 <div class="vision-input-group">
1115 <div class="vision-input-group-cell">
1116 <input id="vision-shortcode-1" class="vision-text vision-long" type="text" value='[vision id="{{appData.wp_item_id}}"]' readonly="readonly">
1117 </div>
1118 <div class="vision-input-group-cell vision-pinch">
1119 <div class="vision-btn vision-default vision-no-bl" al-on.click="appData.fn.copyToClipboard(appData, '#vision-shortcode-1')" title="<?php esc_html_e('Copy to clipboard', 'vision'); ?>"><span><i class="icon icon-clipboard"></i></span></div>
1120 </div>
1121 </div>
1122 </div>
1123
1124 <p><?php esc_html_e('Next to that you can also add a few optional arguments to your shortcode:', 'vision'); ?></p>
1125 <table class="vision-table">
1126 <tbody>
1127 <tr>
1128 <th><?php esc_html_e('Variable', 'vision'); ?></th>
1129 <th><?php esc_html_e('Value', 'vision'); ?></th>
1130 </tr>
1131 <tr>
1132 <td><code>id</code></td>
1133 <td><?php esc_html_e('item ID', 'vision'); ?></td>
1134 </tr>
1135 <tr>
1136 <td><code>slug</code></td>
1137 <td><?php esc_html_e('slug identifier', 'vision'); ?></td>
1138 </tr>
1139 <tr>
1140 <td><code>class</code></td>
1141 <td><?php esc_html_e('custom CSS class', 'vision'); ?></td>
1142 </tr>
1143 </tbody>
1144 </table>
1145 </div>
1146 </div>
1147 </div>
1148 </div>
1149 </div>
1150 </div>
1151 <div id="vision-modals" class="vision-modals">
1152 </div>
1153 </div>
1154 </div>
1155 <!-- /end vision app -->