Premium Addons for Elementor - Version 4.9.23

Version Description

  • Tweak: Added Search by Name input field in plugin settings tab.
  • Tweak: Code refactored for better performance.
  • Fixed: Mega Menu content editor appears below the menu item settings in Mega Menu widget.
Download this release

Release Info

Developer leap13
Plugin Icon 128x128 Premium Addons for Elementor
Version 4.9.23
Comparing to
See all releases

Code changes from version 4.9.22 to 4.9.23

admin/assets/css/admin-rtl.css CHANGED
@@ -768,6 +768,8 @@
768
  position: absolute;
769
  top: 10px;
770
  left: 16px;
 
 
771
  }
772
 
773
  .pa-elements-filter label {
@@ -778,7 +780,22 @@
778
  }
779
 
780
  .pa-elements-filter select {
781
- padding: 5px 15px 5px 35px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
782
  }
783
 
784
  .pa-elements-tabs {
@@ -1155,7 +1172,6 @@
1155
  border: none;
1156
  }
1157
 
1158
- .pa-elements-filter select,
1159
  .pa-maps-table td select {
1160
  border-color: #dcdcdc;
1161
  -webkit-border-radius: 10px;
@@ -1245,31 +1261,37 @@
1245
  width: 550px;
1246
  }
1247
 
 
1248
  .pa-wht-lbl-settings input[type="text"]::-webkit-input-placeholder {
1249
  font-weight: 300;
1250
  font-family: "Poppins";
1251
  }
1252
 
 
1253
  .pa-wht-lbl-settings input[type="text"]:-moz-placeholder {
1254
  font-weight: 300;
1255
  font-family: "Poppins";
1256
  }
1257
 
 
1258
  .pa-wht-lbl-settings input[type="text"]::-moz-placeholder {
1259
  font-weight: 300;
1260
  font-family: "Poppins";
1261
  }
1262
 
 
1263
  .pa-wht-lbl-settings input[type="text"]:-ms-input-placeholder {
1264
  font-weight: 300;
1265
  font-family: "Poppins";
1266
  }
1267
 
 
1268
  .pa-wht-lbl-settings input[type="text"]::-ms-input-placeholder {
1269
  font-weight: 300;
1270
  font-family: "Poppins";
1271
  }
1272
 
 
1273
  .pa-wht-lbl-settings input[type="text"]::placeholder {
1274
  font-weight: 300;
1275
  font-family: "Poppins";
@@ -2389,10 +2411,89 @@
2389
  color: gray;
2390
  }
2391
 
2392
- .premium-menu-settings-modal .dialog-message {
2393
  overflow-y: scroll !important;
2394
- }
2395
 
2396
  .premium-setting-hidden {
2397
  display: none;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2398
  }
768
  position: absolute;
769
  top: 10px;
770
  left: 16px;
771
+ display: flex;
772
+ align-items: center;
773
  }
774
 
775
  .pa-elements-filter label {
780
  }
781
 
782
  .pa-elements-filter select {
783
+ padding: 5px 35px 5px 15px;
784
+ /* margin-left: -5px; */
785
+ border-width: 1px 1px 1px 0;
786
+ border-color: #dcdcdc;
787
+ border-radius: 10px;
788
+ border-top-left-radius: 0;
789
+ border-bottom-left-radius: 0;
790
+ }
791
+
792
+ .pa-elements-filter input {
793
+ min-width: 300px;
794
+ border-color: #dcdcdc;
795
+ min-height: 40px;
796
+ border-radius: 10px;
797
+ border-top-right-radius: 0;
798
+ border-bottom-right-radius: 0;
799
  }
800
 
801
  .pa-elements-tabs {
1172
  border: none;
1173
  }
1174
 
 
1175
  .pa-maps-table td select {
1176
  border-color: #dcdcdc;
1177
  -webkit-border-radius: 10px;
1261
  width: 550px;
1262
  }
1263
 
1264
+ .pa-elements-filter input[type="text"]::-webkit-input-placeholder,
1265
  .pa-wht-lbl-settings input[type="text"]::-webkit-input-placeholder {
1266
  font-weight: 300;
1267
  font-family: "Poppins";
1268
  }
1269
 
1270
+ .pa-elements-filter input[type="text"]::-webkit-input-placeholder,
1271
  .pa-wht-lbl-settings input[type="text"]:-moz-placeholder {
1272
  font-weight: 300;
1273
  font-family: "Poppins";
1274
  }
1275
 
1276
+ .pa-elements-filter input[type="text"]::-webkit-input-placeholder,
1277
  .pa-wht-lbl-settings input[type="text"]::-moz-placeholder {
1278
  font-weight: 300;
1279
  font-family: "Poppins";
1280
  }
1281
 
1282
+ .pa-elements-filter input[type="text"]::-webkit-input-placeholder,
1283
  .pa-wht-lbl-settings input[type="text"]:-ms-input-placeholder {
1284
  font-weight: 300;
1285
  font-family: "Poppins";
1286
  }
1287
 
1288
+ .pa-elements-filter input[type="text"]::-webkit-input-placeholder,
1289
  .pa-wht-lbl-settings input[type="text"]::-ms-input-placeholder {
1290
  font-weight: 300;
1291
  font-family: "Poppins";
1292
  }
1293
 
1294
+ .pa-elements-filter input[type="text"]::-webkit-input-placeholder,
1295
  .pa-wht-lbl-settings input[type="text"]::placeholder {
1296
  font-weight: 300;
1297
  font-family: "Poppins";
2411
  color: gray;
2412
  }
2413
 
2414
+ /* .premium-menu-settings-modal .dialog-message {
2415
  overflow-y: scroll !important;
2416
+ } */
2417
 
2418
  .premium-setting-hidden {
2419
  display: none;
2420
+ }
2421
+
2422
+ .premium-menu-temp-close {
2423
+ position: absolute;
2424
+ top: 24px;
2425
+ right: 40px;
2426
+ color: #a4afb7;
2427
+ font-size: 20px;
2428
+ z-index: 1000;
2429
+ cursor: pointer;
2430
+ }
2431
+
2432
+ .premium-menu-temp-close:hover {
2433
+ color: #495157;
2434
+ }
2435
+
2436
+ .premium-menu-control .icons-selector {
2437
+ border: 1px solid #dcdcdc;
2438
+ -webkit-border-radius: 5px;
2439
+ border-radius: 5px;
2440
+ }
2441
+
2442
+ .premium-menu-control .wp-picker-container {
2443
+ -js-display: flex;
2444
+ display: -webkit-box;
2445
+ display: -webkit-flex;
2446
+ display: -moz-box;
2447
+ display: -ms-flexbox;
2448
+ display: flex;
2449
+ width: 100%;
2450
+ -webkit-flex-wrap: wrap;
2451
+ -ms-flex-wrap: wrap;
2452
+ flex-wrap: wrap;
2453
+ -webkit-box-pack: justify;
2454
+ -webkit-justify-content: space-between;
2455
+ -moz-box-pack: justify;
2456
+ -ms-flex-pack: justify;
2457
+ justify-content: space-between;
2458
+ }
2459
+
2460
+ .premium-menu-control .wp-picker-open+.wp-picker-input-wrap {
2461
+ width: 68%;
2462
+ -js-display: flex;
2463
+ display: -webkit-box;
2464
+ display: -webkit-flex;
2465
+ display: -moz-box;
2466
+ display: -ms-flexbox;
2467
+ display: flex;
2468
+ }
2469
+
2470
+ #elementor-template-nav-menu-modal-container .wp-picker-holder {
2471
+ position: relative;
2472
+ min-width: 100%;
2473
+ }
2474
+
2475
+ #elementor-template-nav-menu-modal-container .wp-picker-container .iris-picker {
2476
+ position: absolute;
2477
+ z-index: 100;
2478
+ }
2479
+
2480
+ #elementor-template-nav-menu-modal-container .button.wp-color-result {
2481
+ margin: 0;
2482
+ min-width: 30%;
2483
+ height: 100%;
2484
+ }
2485
+
2486
+ #elementor-template-nav-menu-modal-container .wp-color-result-text {
2487
+ line-height: 28px;
2488
+ }
2489
+
2490
+ .premium-menu-control .wp-picker-input-wrap .premium-color-picker {
2491
+ min-width: 170px;
2492
+ border: 1px solid #dcdcdc;
2493
+ -webkit-border-radius: 0;
2494
+ border-radius: 0;
2495
+ }
2496
+
2497
+ .premium-live-editor-iframe-modal .dialog-type-lightbox {
2498
+ z-index: 100000;
2499
  }
admin/assets/css/admin.css CHANGED
@@ -830,6 +830,17 @@
830
  position: absolute;
831
  top: 10px;
832
  right: 16px;
 
 
 
 
 
 
 
 
 
 
 
833
  }
834
 
835
  .pa-elements-filter label {
@@ -841,6 +852,27 @@
841
 
842
  .pa-elements-filter select {
843
  padding: 5px 35px 5px 15px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
844
  }
845
 
846
  .pa-elements-tabs {
@@ -1218,7 +1250,6 @@
1218
  border: none;
1219
  }
1220
 
1221
- .pa-elements-filter select,
1222
  .pa-maps-table td select {
1223
  border-color: #dcdcdc;
1224
  -webkit-border-radius: 10px;
@@ -1308,31 +1339,42 @@
1308
  width: 550px;
1309
  }
1310
 
 
1311
  .pa-wht-lbl-settings input[type="text"]::-webkit-input-placeholder {
1312
  font-weight: 300;
1313
  font-family: "Poppins";
1314
  }
1315
 
 
1316
  .pa-wht-lbl-settings input[type="text"]:-moz-placeholder {
1317
  font-weight: 300;
1318
  font-family: "Poppins";
1319
  }
1320
 
 
1321
  .pa-wht-lbl-settings input[type="text"]::-moz-placeholder {
1322
  font-weight: 300;
1323
  font-family: "Poppins";
1324
  }
1325
 
 
1326
  .pa-wht-lbl-settings input[type="text"]:-ms-input-placeholder {
1327
  font-weight: 300;
1328
  font-family: "Poppins";
1329
  }
1330
 
 
1331
  .pa-wht-lbl-settings input[type="text"]::-ms-input-placeholder {
1332
  font-weight: 300;
1333
  font-family: "Poppins";
1334
  }
1335
 
 
 
 
 
 
 
1336
  .pa-wht-lbl-settings input[type="text"]::placeholder {
1337
  font-weight: 300;
1338
  font-family: "Poppins";
@@ -2512,6 +2554,6 @@
2512
  border-radius: 0;
2513
  }
2514
 
2515
- #elementor-template-nav-menu-modal-container.dialog-type-lightbox {
2516
  z-index: 100000;
2517
  }
830
  position: absolute;
831
  top: 10px;
832
  right: 16px;
833
+ -js-display: flex;
834
+ display: -webkit-box;
835
+ display: -webkit-flex;
836
+ display: -moz-box;
837
+ display: -ms-flexbox;
838
+ display: flex;
839
+ -webkit-box-align: center;
840
+ -webkit-align-items: center;
841
+ -moz-box-align: center;
842
+ -ms-flex-align: center;
843
+ align-items: center;
844
  }
845
 
846
  .pa-elements-filter label {
852
 
853
  .pa-elements-filter select {
854
  padding: 5px 35px 5px 15px;
855
+ /* margin-left: -5px; */
856
+ border-width: 1px 1px 1px 0;
857
+ border-color: #dcdcdc;
858
+ -webkit-border-radius: 10px;
859
+ border-radius: 10px;
860
+ -webkit-border-top-left-radius: 0;
861
+ border-top-left-radius: 0;
862
+ -webkit-border-bottom-left-radius: 0;
863
+ border-bottom-left-radius: 0;
864
+ }
865
+
866
+ .pa-elements-filter input {
867
+ min-width: 300px;
868
+ border-color: #dcdcdc;
869
+ min-height: 40px;
870
+ -webkit-border-radius: 10px;
871
+ border-radius: 10px;
872
+ -webkit-border-top-right-radius: 0;
873
+ border-top-right-radius: 0;
874
+ -webkit-border-bottom-right-radius: 0;
875
+ border-bottom-right-radius: 0;
876
  }
877
 
878
  .pa-elements-tabs {
1250
  border: none;
1251
  }
1252
 
 
1253
  .pa-maps-table td select {
1254
  border-color: #dcdcdc;
1255
  -webkit-border-radius: 10px;
1339
  width: 550px;
1340
  }
1341
 
1342
+ .pa-elements-filter input[type="text"]::-webkit-input-placeholder,
1343
  .pa-wht-lbl-settings input[type="text"]::-webkit-input-placeholder {
1344
  font-weight: 300;
1345
  font-family: "Poppins";
1346
  }
1347
 
1348
+ .pa-elements-filter input[type="text"]::-webkit-input-placeholder,
1349
  .pa-wht-lbl-settings input[type="text"]:-moz-placeholder {
1350
  font-weight: 300;
1351
  font-family: "Poppins";
1352
  }
1353
 
1354
+ .pa-elements-filter input[type="text"]::-webkit-input-placeholder,
1355
  .pa-wht-lbl-settings input[type="text"]::-moz-placeholder {
1356
  font-weight: 300;
1357
  font-family: "Poppins";
1358
  }
1359
 
1360
+ .pa-elements-filter input[type="text"]::-webkit-input-placeholder,
1361
  .pa-wht-lbl-settings input[type="text"]:-ms-input-placeholder {
1362
  font-weight: 300;
1363
  font-family: "Poppins";
1364
  }
1365
 
1366
+ .pa-elements-filter input[type="text"]::-webkit-input-placeholder,
1367
  .pa-wht-lbl-settings input[type="text"]::-ms-input-placeholder {
1368
  font-weight: 300;
1369
  font-family: "Poppins";
1370
  }
1371
 
1372
+ .pa-wht-lbl-settings input[type="text"]::-webkit-input-placeholder {
1373
+ font-weight: 300;
1374
+ font-family: "Poppins";
1375
+ }
1376
+
1377
+ .pa-elements-filter input[type="text"]::-webkit-input-placeholder,
1378
  .pa-wht-lbl-settings input[type="text"]::placeholder {
1379
  font-weight: 300;
1380
  font-family: "Poppins";
2554
  border-radius: 0;
2555
  }
2556
 
2557
+ .premium-live-editor-iframe-modal .dialog-type-lightbox {
2558
  z-index: 100000;
2559
  }
admin/assets/js/admin.js CHANGED
@@ -1,519 +1,537 @@
1
- (function ($) {
2
-
3
- "use strict";
4
-
5
- var redHadfontLink = document.createElement('link');
6
- redHadfontLink.rel = 'stylesheet';
7
- redHadfontLink.href = 'https://fonts.googleapis.com/css?family=Red Hat Display:100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic';
8
- redHadfontLink.type = 'text/css';
9
- document.head.appendChild(redHadfontLink);
10
-
11
- var poppinsfontLink = document.createElement('link');
12
- poppinsfontLink.rel = 'stylesheet';
13
- poppinsfontLink.href = 'https://fonts.googleapis.com/css?family=Poppins:100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic';
14
- poppinsfontLink.type = 'text/css';
15
- document.head.appendChild(poppinsfontLink);
16
-
17
- var settings = premiumAddonsSettings.settings;
18
-
19
- window.PremiumAddonsNavigation = function () {
20
-
21
- var self = this,
22
- $tabs = $(".pa-settings-tab"),
23
- $elementsTabs = $(".pa-elements-tab");
24
-
25
- self.init = function () {
26
-
27
- if (!$tabs.length) {
28
- return;
29
- }
30
-
31
- self.genButtonDisplay();
32
-
33
- self.initNavTabs($tabs);
34
-
35
- self.initElementsTabs($elementsTabs);
36
-
37
- if (settings.isTrackerAllowed) {
38
- self.getUnusedWidget();
39
- }
40
-
41
- self.handleElementsActions();
42
-
43
- self.handleSettingsSave();
44
-
45
- self.handleRollBack();
46
-
47
- self.handleNewsLetterForm();
48
-
49
- self.handlePaproActions();
50
-
51
- };
52
-
53
- // Handle settings form submission
54
- self.handleSettingsSave = function () {
55
-
56
- $("#pa-features .pa-section-info-cta input, #pa-modules .pa-switcher input, #pa-modules .pa-section-info-cta input").on(
57
- 'change',
58
- function () {
59
- self.saveElementsSettings('elements');
60
- }
61
- )
62
-
63
- $("#pa-ver-control input, #pa-integrations input, #pa-ver-control input, #pa-integrations select").change(
64
- function () {
65
- self.saveElementsSettings('additional');
66
- }
67
- );
68
-
69
- $("#pa-integrations input[type=text]").on(
70
- 'keyup',
71
- function () {
72
- self.saveElementsSettings('additional');
73
- }
74
- )
75
-
76
- };
77
-
78
- //get unused widgets.
79
- self.getUnusedWidget = function () {
80
-
81
- if ($(".pa-btn-group .pa-btn-disable").hasClass("active")) {
82
- $(".pa-btn-group .pa-btn-unused").addClass("dimmed");
83
- }
84
-
85
- $.ajax(
86
- {
87
- url: settings.ajaxurl,
88
- type: 'POST',
89
- data: {
90
- action: 'pa_get_unused_widgets',
91
- security: settings.nonce,
92
- },
93
- success: function (response) {
94
- console.log('unused widgets retrieved');
95
- self.unusedElements = response.data;
96
- },
97
- error: function (err) {
98
- console.log(err);
99
- }
100
- }
101
- );
102
- };
103
-
104
- // Handle global enable/disable buttons
105
- self.handleElementsActions = function () {
106
-
107
- $(".pa-elements-filter select").on(
108
- 'change',
109
- function () {
110
- var filter = $(this).val(),
111
- $activeTab = $(".pa-switchers-container").not(".hidden");
112
-
113
- $activeTab.find(".pa-switcher").removeClass("hidden");
114
-
115
- if ('free' === filter) {
116
- $activeTab.find(".pro-element").addClass("hidden");
117
- } else if ('pro' === filter) {
118
- $activeTab.find(".pa-switcher").not(".pro-element").addClass("hidden");
119
- }
120
- }
121
- );
122
-
123
- // Enable/Disable all widgets
124
- $(".pa-btn-group").on(
125
- "click",
126
- '.pa-btn',
127
- function () {
128
-
129
- var $btn = $(this),
130
- isChecked = $btn.hasClass("pa-btn-enable");
131
-
132
- if (!$btn.hasClass("active")) {
133
- $(".pa-btn-group .pa-btn").removeClass("active");
134
- $btn.addClass("active");
135
-
136
- $.ajax(
137
- {
138
- url: settings.ajaxurl,
139
- type: 'POST',
140
- data: {
141
- action: 'pa_save_global_btn',
142
- security: settings.nonce,
143
- isGlobalOn: isChecked
144
- }
145
- }
146
- );
147
-
148
- }
149
-
150
- if (isChecked) {
151
- $(".pa-btn-group .pa-btn-unused").removeClass("dimmed");
152
- } else {
153
- $(".pa-btn-group .pa-btn-unused").addClass("dimmed");
154
- }
155
-
156
- $("#pa-modules .pa-switcher input").prop("checked", isChecked);
157
-
158
- self.saveElementsSettings('elements');
159
-
160
- }
161
- );
162
-
163
- //Disable unused widgets.
164
- $(".pa-btn-group").on(
165
- "click",
166
- '.pa-btn-unused',
167
- function () {
168
-
169
- $.each(self.unusedElements, function (index, selector) {
170
- $('#pa-modules .pa-switcher.' + selector).find('input').prop('checked', false);
171
- });
172
-
173
- $(this).addClass('dimmed');
174
-
175
- self.saveElementsSettings('elements');
176
- }
177
- );
178
-
179
- $("#pa-modules .pa-switcher input").on(
180
- 'change',
181
- function () {
182
- var $this = $(this),
183
- id = $this.attr('id'),
184
- isChecked = $this.prop('checked');
185
-
186
- $("input[name='" + id + "']").prop('checked', isChecked);
187
- }
188
- )
189
-
190
- //Disable unused widgets.
191
- $(".pa-section-info-cta").on(
192
- "click",
193
- '.pa-btn-regenerate',
194
- function () {
195
-
196
- var _this = $(this);
197
- _this.addClass("loading");
198
-
199
- $.ajax(
200
- {
201
- url: settings.ajaxurl,
202
- type: 'POST',
203
- data: {
204
- action: 'pa_clear_cached_assets',
205
- security: settings.generate_nonce,
206
- },
207
- success: function (response) {
208
-
209
- swal.fire({
210
- title: 'Generated Assets Cleared!',
211
- text: 'Click OK to continue',
212
- type: 'success',
213
- timer: 1500
214
- });
215
-
216
- _this.removeClass("loading");
217
-
218
- },
219
- }
220
- );
221
- }
222
- );
223
-
224
- };
225
-
226
- // Handle Tabs Elements
227
- self.initElementsTabs = function ($elem) {
228
-
229
- var $links = $elem.find('a'),
230
- $sections = $(".pa-switchers-container");
231
-
232
- $sections.eq(0).removeClass("hidden");
233
- $links.eq(0).addClass("active");
234
-
235
- $links.on(
236
- 'click',
237
- function (e) {
238
-
239
- e.preventDefault();
240
-
241
- var $link = $(this),
242
- href = $link.attr('href');
243
-
244
- // Set this tab to active
245
- $links.removeClass("active");
246
- $link.addClass("active");
247
-
248
- // Navigate to tab section
249
- $sections.addClass("hidden");
250
- $("#" + href).removeClass("hidden");
251
-
252
- }
253
- );
254
- };
255
-
256
- // Handle settings tabs
257
- self.initNavTabs = function ($elem) {
258
-
259
- var $links = $elem.find('a'),
260
- $lastSection = null;
261
-
262
- $(window).on(
263
- 'hashchange',
264
- function () {
265
-
266
- var hash = window.location.hash.match(new RegExp('tab=([^&]*)')),
267
- slug = hash ? hash[1] : $links.first().attr('href').replace('#tab=', ''),
268
- $link = $('#pa-tab-link-' + slug);
269
-
270
- if (!$link.length) {
271
- return
272
-
273
- }
274
- $links.removeClass('pa-section-active');
275
- $link.addClass('pa-section-active');
276
-
277
- // Hide the last active section
278
- if ($lastSection) {
279
- $lastSection.hide();
280
- }
281
-
282
- var $section = $('#pa-section-' + slug);
283
- $section.css(
284
- {
285
- display: 'block'
286
- }
287
- );
288
-
289
- $lastSection = $section;
290
-
291
- }
292
- ).trigger('hashchange');
293
-
294
- };
295
-
296
- self.handleRollBack = function () {
297
-
298
- // Rollback button
299
- $('.pa-rollback-button').on(
300
- 'click',
301
- function (event) {
302
-
303
- event.preventDefault();
304
-
305
- var $this = $(this),
306
- href = $this.attr('href');
307
-
308
- if (!href) {
309
- return;
310
- }
311
-
312
- // Show PAPRO stable version if PAPRO Rollback is clicked
313
- var isPAPRO = '';
314
- if (-1 !== href.indexOf('papro_rollback')) {
315
- isPAPRO = 'papro_';
316
- }
317
-
318
- var premiumRollBackConfirm = premiumAddonsSettings.premiumRollBackConfirm;
319
-
320
- var dialogsManager = new DialogsManager.Instance();
321
-
322
- dialogsManager.createWidget(
323
- 'confirm',
324
- {
325
- headerMessage: premiumRollBackConfirm.i18n.rollback_to_previous_version,
326
- message: premiumRollBackConfirm['i18n'][isPAPRO + 'rollback_confirm'],
327
- strings: {
328
- cancel: premiumRollBackConfirm.i18n.cancel,
329
- confirm: premiumRollBackConfirm.i18n.yes,
330
- },
331
- onConfirm: function () {
332
-
333
- $this.addClass('loading');
334
-
335
- location.href = $this.attr('href');
336
-
337
- }
338
- }
339
- ).show();
340
- }
341
- );
342
-
343
- };
344
-
345
- self.saveElementsSettings = function (action) { //save elements settings changes
346
-
347
- var $form = null;
348
-
349
- if ('elements' === action) {
350
- $form = $('form#pa-settings, form#pa-features');
351
- action = 'pa_elements_settings';
352
- } else {
353
- $form = $('form#pa-ver-control, form#pa-integrations');
354
- action = 'pa_additional_settings';
355
- }
356
-
357
- $.ajax(
358
- {
359
- url: settings.ajaxurl,
360
- type: 'POST',
361
- data: {
362
- action: action,
363
- security: settings.nonce,
364
- fields: $form.serialize(),
365
- },
366
- success: function (response) {
367
- console.log('settings saved');
368
-
369
- self.genButtonDisplay();
370
- },
371
- error: function (err) {
372
- console.log(err);
373
- }
374
- }
375
- );
376
- }
377
-
378
- self.genButtonDisplay = function () {
379
- var $form = $('form#pa-settings'),
380
- searchTerm = 'premium-assets-generator=on',
381
- indexOfFirst = $form.serialize().indexOf(searchTerm);
382
-
383
- if (indexOfFirst !== -1) {
384
- $('.pa-btn-generate').show();
385
- } else {
386
- $('.pa-btn-generate').hide();
387
- }
388
- };
389
-
390
- self.handlePaproActions = function () {
391
-
392
- // Trigger SWAL for PRO elements
393
- $(".pro-slider").on(
394
- 'click',
395
- function () {
396
-
397
- var redirectionLink = " https://premiumaddons.com/pro/?utm_source=wp-menu&utm_medium=wp-dash&utm_campaign=get-pro&utm_term=";
398
-
399
- Swal.fire(
400
- {
401
- title: '<span class="pa-swal-head">Get PRO Widgets & Addons<span>',
402
- html: 'Supercharge your Elementor with PRO widgets and addons that you won’t find anywhere else.',
403
- type: 'warning',
404
- showCloseButton: true,
405
- showCancelButton: true,
406
- cancelButtonText: "More Info",
407
- focusConfirm: true,
408
- customClass: 'pa-swal',
409
- }
410
- ).then(
411
- function (res) {
412
- // Handle More Info button
413
- if (res.dismiss === 'cancel') {
414
- window.open(redirectionLink + settings.theme, '_blank');
415
- }
416
-
417
- }
418
- );
419
- }
420
- );
421
-
422
- // Trigger SWAL for White Labeling
423
- $(".premium-white-label-form.pro-inactive").on(
424
- 'submit',
425
- function (e) {
426
-
427
- e.preventDefault();
428
-
429
- var redirectionLink = " https://premiumaddons.com/pro/?utm_source=wp-menu&utm_medium=wp-dash&utm_campaign=get-pro&utm_term=";
430
-
431
- Swal.fire(
432
- {
433
- title: '<span class="pa-swal-head">Enable White Labeling Options<span>',
434
- html: 'Premium Addons can be completely re-branded with your own brand name and author details. Your clients will never know what tools you are using to build their website and will think that this is your own tool set. White-labeling works as long as your license is active.',
435
- type: 'warning',
436
- showCloseButton: true,
437
- showCancelButton: true,
438
- cancelButtonText: "More Info",
439
- focusConfirm: true
440
- }
441
- ).then(
442
- function (res) {
443
- // Handle More Info button
444
- if (res.dismiss === 'cancel') {
445
- window.open(redirectionLink + settings.theme, '_blank');
446
- }
447
-
448
- }
449
- );
450
- }
451
- );
452
-
453
- };
454
-
455
- self.handleNewsLetterForm = function () {
456
-
457
- $('.pa-newsletter-form').on('submit', function (e) {
458
- e.preventDefault();
459
-
460
- var email = $("#pa_news_email").val();
461
-
462
- if (checkEmail(email)) {
463
- $.ajax(
464
- {
465
- url: settings.ajaxurl,
466
- type: 'POST',
467
- data: {
468
- action: 'subscribe_newsletter',
469
- security: settings.nonce,
470
- email: email
471
- },
472
- beforeSend: function () {
473
- console.log("Adding user to subscribers list");
474
- },
475
- success: function (response) {
476
- if (response.data) {
477
- var status = response.data.status;
478
- if (status) {
479
- console.log("User added to subscribers list");
480
- swal.fire({
481
- title: 'Thanks for subscribing!',
482
- text: 'Click OK to continue',
483
- type: 'success',
484
- timer: 1000
485
- });
486
- }
487
-
488
- }
489
-
490
- },
491
- error: function (err) {
492
- console.log(err);
493
- }
494
- }
495
- );
496
- } else {
497
- Swal.fire({
498
- type: 'error',
499
- title: 'Invalid Email Address...',
500
- text: 'Please enter a valid email address!'
501
- });
502
- }
503
-
504
- })
505
-
506
- };
507
-
508
- function checkEmail(emailAddress) {
509
- var pattern = new RegExp(/^(("[\w-+\s]+")|([\w-+]+(?:\.[\w-+]+)*)|("[\w-+\s]+")([\w-+]+(?:\.[\w-+]+)*))(@((?:[\w-+]+\.)*\w[\w-+]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][\d]\.|1[\d]{2}\.|[\d]{1,2}\.))((25[0-5]|2[0-4][\d]|1[\d]{2}|[\d]{1,2})\.){2}(25[0-5]|2[0-4][\d]|1[\d]{2}|[\d]{1,2})\]?$)/i);
510
- return pattern.test(emailAddress);
511
- }
512
-
513
- };
514
-
515
- var instance = new PremiumAddonsNavigation();
516
-
517
- instance.init();
518
-
519
- })(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (function ($) {
2
+
3
+ "use strict";
4
+
5
+ var redHadfontLink = document.createElement('link');
6
+ redHadfontLink.rel = 'stylesheet';
7
+ redHadfontLink.href = 'https://fonts.googleapis.com/css?family=Red Hat Display:100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic';
8
+ redHadfontLink.type = 'text/css';
9
+ document.head.appendChild(redHadfontLink);
10
+
11
+ var poppinsfontLink = document.createElement('link');
12
+ poppinsfontLink.rel = 'stylesheet';
13
+ poppinsfontLink.href = 'https://fonts.googleapis.com/css?family=Poppins:100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic';
14
+ poppinsfontLink.type = 'text/css';
15
+ document.head.appendChild(poppinsfontLink);
16
+
17
+ var settings = premiumAddonsSettings.settings;
18
+
19
+ window.PremiumAddonsNavigation = function () {
20
+
21
+ var self = this,
22
+ $tabs = $(".pa-settings-tab"),
23
+ $elementsTabs = $(".pa-elements-tab");
24
+
25
+ self.init = function () {
26
+
27
+ if (!$tabs.length) {
28
+ return;
29
+ }
30
+
31
+ self.genButtonDisplay();
32
+
33
+ self.initNavTabs($tabs);
34
+
35
+ self.initElementsTabs($elementsTabs);
36
+
37
+ if (settings.isTrackerAllowed) {
38
+ self.getUnusedWidget();
39
+ }
40
+
41
+ self.handleElementsActions();
42
+
43
+ self.handleSettingsSave();
44
+
45
+ self.handleRollBack();
46
+
47
+ self.handleNewsLetterForm();
48
+
49
+ self.handlePaproActions();
50
+
51
+ };
52
+
53
+ // Handle settings form submission
54
+ self.handleSettingsSave = function () {
55
+
56
+ $("#pa-features .pa-section-info-cta input, #pa-modules .pa-switcher input, #pa-modules .pa-section-info-cta input").on(
57
+ 'change',
58
+ function () {
59
+ self.saveElementsSettings('elements');
60
+ }
61
+ )
62
+
63
+ $("#pa-ver-control input, #pa-integrations input, #pa-ver-control input, #pa-integrations select").change(
64
+ function () {
65
+ self.saveElementsSettings('additional');
66
+ }
67
+ );
68
+
69
+ $("#pa-integrations input[type=text]").on(
70
+ 'keyup',
71
+ function () {
72
+ self.saveElementsSettings('additional');
73
+ }
74
+ )
75
+
76
+ };
77
+
78
+ //get unused widgets.
79
+ self.getUnusedWidget = function () {
80
+
81
+ if ($(".pa-btn-group .pa-btn-disable").hasClass("active")) {
82
+ $(".pa-btn-group .pa-btn-unused").addClass("dimmed");
83
+ }
84
+
85
+ $.ajax(
86
+ {
87
+ url: settings.ajaxurl,
88
+ type: 'POST',
89
+ data: {
90
+ action: 'pa_get_unused_widgets',
91
+ security: settings.nonce,
92
+ },
93
+ success: function (response) {
94
+ console.log('unused widgets retrieved');
95
+ self.unusedElements = response.data;
96
+ },
97
+ error: function (err) {
98
+ console.log(err);
99
+ }
100
+ }
101
+ );
102
+ };
103
+
104
+ // Handle global enable/disable buttons
105
+ self.handleElementsActions = function () {
106
+
107
+ $(".pa-elements-filter select").on(
108
+ 'change',
109
+ function () {
110
+ var filter = $(this).val(),
111
+ $activeTab = $(".pa-switchers-container").not(".hidden");
112
+
113
+ $activeTab.find(".pa-switcher").removeClass("hidden");
114
+
115
+ if ('free' === filter) {
116
+ $activeTab.find(".pro-element").addClass("hidden");
117
+ } else if ('pro' === filter) {
118
+ $activeTab.find(".pa-switcher").not(".pro-element").addClass("hidden");
119
+ }
120
+ }
121
+ );
122
+
123
+ $(".pa-elements-filter input").on(
124
+ 'keyup',
125
+ function () {
126
+ var filter = $(this).val(),
127
+ $activeTab = $(".pa-switchers-container").not(".hidden"),
128
+ currentQuerySwitchers = $activeTab.find(".pa-switcher");
129
+
130
+ currentQuerySwitchers.addClass("hidden");
131
+ var searchResults = currentQuerySwitchers.filter(function (index, switcher) {
132
+ var elementName = $(switcher).find(".pa-element-name").text().toLowerCase();
133
+
134
+ return -1 != elementName.indexOf(filter.toLowerCase()) ? $(switcher) : '';
135
+ });
136
+
137
+ searchResults.removeClass("hidden");
138
+ }
139
+ );
140
+
141
+ // Enable/Disable all widgets
142
+ $(".pa-btn-group").on(
143
+ "click",
144
+ '.pa-btn',
145
+ function () {
146
+
147
+ var $btn = $(this),
148
+ isChecked = $btn.hasClass("pa-btn-enable");
149
+
150
+ if (!$btn.hasClass("active")) {
151
+ $(".pa-btn-group .pa-btn").removeClass("active");
152
+ $btn.addClass("active");
153
+
154
+ $.ajax(
155
+ {
156
+ url: settings.ajaxurl,
157
+ type: 'POST',
158
+ data: {
159
+ action: 'pa_save_global_btn',
160
+ security: settings.nonce,
161
+ isGlobalOn: isChecked
162
+ }
163
+ }
164
+ );
165
+
166
+ }
167
+
168
+ if (isChecked) {
169
+ $(".pa-btn-group .pa-btn-unused").removeClass("dimmed");
170
+ } else {
171
+ $(".pa-btn-group .pa-btn-unused").addClass("dimmed");
172
+ }
173
+
174
+ $("#pa-modules .pa-switcher input").prop("checked", isChecked);
175
+
176
+ self.saveElementsSettings('elements');
177
+
178
+ }
179
+ );
180
+
181
+ //Disable unused widgets.
182
+ $(".pa-btn-group").on(
183
+ "click",
184
+ '.pa-btn-unused',
185
+ function () {
186
+
187
+ $.each(self.unusedElements, function (index, selector) {
188
+ $('#pa-modules .pa-switcher.' + selector).find('input').prop('checked', false);
189
+ });
190
+
191
+ $(this).addClass('dimmed');
192
+
193
+ self.saveElementsSettings('elements');
194
+ }
195
+ );
196
+
197
+ $("#pa-modules .pa-switcher input").on(
198
+ 'change',
199
+ function () {
200
+ var $this = $(this),
201
+ id = $this.attr('id'),
202
+ isChecked = $this.prop('checked');
203
+
204
+ $("input[name='" + id + "']").prop('checked', isChecked);
205
+ }
206
+ )
207
+
208
+ //Disable unused widgets.
209
+ $(".pa-section-info-cta").on(
210
+ "click",
211
+ '.pa-btn-regenerate',
212
+ function () {
213
+
214
+ var _this = $(this);
215
+ _this.addClass("loading");
216
+
217
+ $.ajax(
218
+ {
219
+ url: settings.ajaxurl,
220
+ type: 'POST',
221
+ data: {
222
+ action: 'pa_clear_cached_assets',
223
+ security: settings.generate_nonce,
224
+ },
225
+ success: function (response) {
226
+
227
+ swal.fire({
228
+ title: 'Generated Assets Cleared!',
229
+ text: 'Click OK to continue',
230
+ type: 'success',
231
+ timer: 1500
232
+ });
233
+
234
+ _this.removeClass("loading");
235
+
236
+ },
237
+ }
238
+ );
239
+ }
240
+ );
241
+
242
+ };
243
+
244
+ // Handle Tabs Elements
245
+ self.initElementsTabs = function ($elem) {
246
+
247
+ var $links = $elem.find('a'),
248
+ $sections = $(".pa-switchers-container");
249
+
250
+ $sections.eq(0).removeClass("hidden");
251
+ $links.eq(0).addClass("active");
252
+
253
+ $links.on(
254
+ 'click',
255
+ function (e) {
256
+
257
+ e.preventDefault();
258
+
259
+ var $link = $(this),
260
+ href = $link.attr('href');
261
+
262
+ // Set this tab to active
263
+ $links.removeClass("active");
264
+ $link.addClass("active");
265
+
266
+ // Navigate to tab section
267
+ $sections.addClass("hidden");
268
+ $("#" + href).removeClass("hidden");
269
+
270
+ }
271
+ );
272
+ };
273
+
274
+ // Handle settings tabs
275
+ self.initNavTabs = function ($elem) {
276
+
277
+ var $links = $elem.find('a'),
278
+ $lastSection = null;
279
+
280
+ $(window).on(
281
+ 'hashchange',
282
+ function () {
283
+
284
+ var hash = window.location.hash.match(new RegExp('tab=([^&]*)')),
285
+ slug = hash ? hash[1] : $links.first().attr('href').replace('#tab=', ''),
286
+ $link = $('#pa-tab-link-' + slug);
287
+
288
+ if (!$link.length) {
289
+ return
290
+
291
+ }
292
+ $links.removeClass('pa-section-active');
293
+ $link.addClass('pa-section-active');
294
+
295
+ // Hide the last active section
296
+ if ($lastSection) {
297
+ $lastSection.hide();
298
+ }
299
+
300
+ var $section = $('#pa-section-' + slug);
301
+ $section.css(
302
+ {
303
+ display: 'block'
304
+ }
305
+ );
306
+
307
+ $lastSection = $section;
308
+
309
+ }
310
+ ).trigger('hashchange');
311
+
312
+ };
313
+
314
+ self.handleRollBack = function () {
315
+
316
+ // Rollback button
317
+ $('.pa-rollback-button').on(
318
+ 'click',
319
+ function (event) {
320
+
321
+ event.preventDefault();
322
+
323
+ var $this = $(this),
324
+ href = $this.attr('href');
325
+
326
+ if (!href) {
327
+ return;
328
+ }
329
+
330
+ // Show PAPRO stable version if PAPRO Rollback is clicked
331
+ var isPAPRO = '';
332
+ if (-1 !== href.indexOf('papro_rollback')) {
333
+ isPAPRO = 'papro_';
334
+ }
335
+
336
+ var premiumRollBackConfirm = premiumAddonsSettings.premiumRollBackConfirm;
337
+
338
+ var dialogsManager = new DialogsManager.Instance();
339
+
340
+ dialogsManager.createWidget(
341
+ 'confirm',
342
+ {
343
+ headerMessage: premiumRollBackConfirm.i18n.rollback_to_previous_version,
344
+ message: premiumRollBackConfirm['i18n'][isPAPRO + 'rollback_confirm'],
345
+ strings: {
346
+ cancel: premiumRollBackConfirm.i18n.cancel,
347
+ confirm: premiumRollBackConfirm.i18n.yes,
348
+ },
349
+ onConfirm: function () {
350
+
351
+ $this.addClass('loading');
352
+
353
+ location.href = $this.attr('href');
354
+
355
+ }
356
+ }
357
+ ).show();
358
+ }
359
+ );
360
+
361
+ };
362
+
363
+ self.saveElementsSettings = function (action) { //save elements settings changes
364
+
365
+ var $form = null;
366
+
367
+ if ('elements' === action) {
368
+ $form = $('form#pa-settings, form#pa-features');
369
+ action = 'pa_elements_settings';
370
+ } else {
371
+ $form = $('form#pa-ver-control, form#pa-integrations');
372
+ action = 'pa_additional_settings';
373
+ }
374
+
375
+ $.ajax(
376
+ {
377
+ url: settings.ajaxurl,
378
+ type: 'POST',
379
+ data: {
380
+ action: action,
381
+ security: settings.nonce,
382
+ fields: $form.serialize(),
383
+ },
384
+ success: function (response) {
385
+ console.log('settings saved');
386
+
387
+ self.genButtonDisplay();
388
+ },
389
+ error: function (err) {
390
+ console.log(err);
391
+ }
392
+ }
393
+ );
394
+ }
395
+
396
+ self.genButtonDisplay = function () {
397
+ var $form = $('form#pa-settings'),
398
+ searchTerm = 'premium-assets-generator=on',
399
+ indexOfFirst = $form.serialize().indexOf(searchTerm);
400
+
401
+ if (indexOfFirst !== -1) {
402
+ $('.pa-btn-generate').show();
403
+ } else {
404
+ $('.pa-btn-generate').hide();
405
+ }
406
+ };
407
+
408
+ self.handlePaproActions = function () {
409
+
410
+ // Trigger SWAL for PRO elements
411
+ $(".pro-slider").on(
412
+ 'click',
413
+ function () {
414
+
415
+ var redirectionLink = " https://premiumaddons.com/pro/?utm_source=wp-menu&utm_medium=wp-dash&utm_campaign=get-pro&utm_term=";
416
+
417
+ Swal.fire(
418
+ {
419
+ title: '<span class="pa-swal-head">Get PRO Widgets & Addons<span>',
420
+ html: 'Supercharge your Elementor with PRO widgets and addons that you won’t find anywhere else.',
421
+ type: 'warning',
422
+ showCloseButton: true,
423
+ showCancelButton: true,
424
+ cancelButtonText: "More Info",
425
+ focusConfirm: true,
426
+ customClass: 'pa-swal',
427
+ }
428
+ ).then(
429
+ function (res) {
430
+ // Handle More Info button
431
+ if (res.dismiss === 'cancel') {
432
+ window.open(redirectionLink + settings.theme, '_blank');
433
+ }
434
+
435
+ }
436
+ );
437
+ }
438
+ );
439
+
440
+ // Trigger SWAL for White Labeling
441
+ $(".premium-white-label-form.pro-inactive").on(
442
+ 'submit',
443
+ function (e) {
444
+
445
+ e.preventDefault();
446
+
447
+ var redirectionLink = " https://premiumaddons.com/pro/?utm_source=wp-menu&utm_medium=wp-dash&utm_campaign=get-pro&utm_term=";
448
+
449
+ Swal.fire(
450
+ {
451
+ title: '<span class="pa-swal-head">Enable White Labeling Options<span>',
452
+ html: 'Premium Addons can be completely re-branded with your own brand name and author details. Your clients will never know what tools you are using to build their website and will think that this is your own tool set. White-labeling works as long as your license is active.',
453
+ type: 'warning',
454
+ showCloseButton: true,
455
+ showCancelButton: true,
456
+ cancelButtonText: "More Info",
457
+ focusConfirm: true
458
+ }
459
+ ).then(
460
+ function (res) {
461
+ // Handle More Info button
462
+ if (res.dismiss === 'cancel') {
463
+ window.open(redirectionLink + settings.theme, '_blank');
464
+ }
465
+
466
+ }
467
+ );
468
+ }
469
+ );
470
+
471
+ };
472
+
473
+ self.handleNewsLetterForm = function () {
474
+
475
+ $('.pa-newsletter-form').on('submit', function (e) {
476
+ e.preventDefault();
477
+
478
+ var email = $("#pa_news_email").val();
479
+
480
+ if (checkEmail(email)) {
481
+ $.ajax(
482
+ {
483
+ url: settings.ajaxurl,
484
+ type: 'POST',
485
+ data: {
486
+ action: 'subscribe_newsletter',
487
+ security: settings.nonce,
488
+ email: email
489
+ },
490
+ beforeSend: function () {
491
+ console.log("Adding user to subscribers list");
492
+ },
493
+ success: function (response) {
494
+ if (response.data) {
495
+ var status = response.data.status;
496
+ if (status) {
497
+ console.log("User added to subscribers list");
498
+ swal.fire({
499
+ title: 'Thanks for subscribing!',
500
+ text: 'Click OK to continue',
501
+ type: 'success',
502
+ timer: 1000
503
+ });
504
+ }
505
+
506
+ }
507
+
508
+ },
509
+ error: function (err) {
510
+ console.log(err);
511
+ }
512
+ }
513
+ );
514
+ } else {
515
+ Swal.fire({
516
+ type: 'error',
517
+ title: 'Invalid Email Address...',
518
+ text: 'Please enter a valid email address!'
519
+ });
520
+ }
521
+
522
+ })
523
+
524
+ };
525
+
526
+ function checkEmail(emailAddress) {
527
+ var pattern = new RegExp(/^(("[\w-+\s]+")|([\w-+]+(?:\.[\w-+]+)*)|("[\w-+\s]+")([\w-+]+(?:\.[\w-+]+)*))(@((?:[\w-+]+\.)*\w[\w-+]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][\d]\.|1[\d]{2}\.|[\d]{1,2}\.))((25[0-5]|2[0-4][\d]|1[\d]{2}|[\d]{1,2})\.){2}(25[0-5]|2[0-4][\d]|1[\d]{2}|[\d]{1,2})\]?$)/i);
528
+ return pattern.test(emailAddress);
529
+ }
530
+
531
+ };
532
+
533
+ var instance = new PremiumAddonsNavigation();
534
+
535
+ instance.init();
536
+
537
+ })(jQuery);
admin/includes/templates/modules-settings.php CHANGED
@@ -1,172 +1,173 @@
1
- <?php
2
-
3
- if ( ! defined( 'ABSPATH' ) ) {
4
- exit;
5
- }
6
-
7
- use PremiumAddons\Includes\Helper_Functions;
8
-
9
- $elements = self::get_elements_list();
10
-
11
- $used_widgets = self::get_used_widgets();
12
-
13
- // Get elements settings
14
- $enabled_elements = self::get_enabled_elements();
15
-
16
- $global_btn = get_option( 'pa_global_btn_value', 'true' );
17
- $enable_btn = 'true' === $global_btn ? 'active' : '';
18
- $disable_btn = 'true' === $global_btn ? '' : 'active';
19
-
20
- $row_meta = Helper_Functions::is_hide_row_meta();
21
-
22
- ?>
23
-
24
- <div class="pa-section-content">
25
- <div class="row">
26
- <div class="col-full">
27
- <form action="" method="POST" id="pa-settings" name="pa-settings" class="pa-settings-form">
28
- <div id="pa-modules" class="pa-settings-tab">
29
-
30
- <div class="pa-section-outer-wrap">
31
- <div class="pa-section-info-wrap">
32
- <div class="pa-section-info">
33
- <h4><?php echo __( 'Dynamic Assets Generate', 'premium-addons-for-elementor' ); ?></h4>
34
- <p><?php echo __( 'Generates CSS/JS files dynamically for each page based on the elements in it. Enable this setting for better performance (recommended).', 'premium-addons-for-elementor' ); ?></p>
35
- </div>
36
-
37
- <div class="pa-section-info-cta">
38
- <label class="switch">
39
- <input type="checkbox" id="premium-assets-generator" name="premium-assets-generator" <?php echo checked( 1, $enabled_elements['premium-assets-generator'], false ); ?>>
40
- <span class="slider round"></span>
41
- </label>
42
- <?php if ( $enabled_elements['premium-assets-generator'] ) : ?>
43
- <button type="button" class="pa-btn-regenerate" title="<?php esc_html_e( 'Clear Generated Assets', 'premium-addons-for-elementor' ); ?>">
44
- <i class="dashicons dashicons-image-rotate"></i>
45
- </button>
46
- <?php endif; ?>
47
- </div>
48
-
49
- </div>
50
- </div>
51
-
52
- <div class="pa-section-info-wrap">
53
- <div class="pa-section-info">
54
- <h4><?php echo __( 'Master Switch', 'premium-addons-for-elementor' ); ?></h4>
55
- <p><?php echo __( 'Use this to switch on or off ALL Widgets & Add-ons at once.', 'premium-addons-for-elementor' ); ?></p>
56
- </div>
57
-
58
- <div class="pa-btn-group">
59
- <button type="button" class="pa-btn pa-btn-enable <?php echo esc_attr( $enable_btn ); ?>"><?php echo __( 'Switch On', 'premium-addons-for-elementor' ); ?></button>
60
- <button type="button" class="pa-btn pa-btn-disable <?php echo esc_attr( $disable_btn ); ?>"><?php echo __( 'Switch Off', 'premium-addons-for-elementor' ); ?></button>
61
- <?php if ( false !== $used_widgets ) { ?>
62
- <button type="button" class="pa-btn-unused"><?php echo __( 'Disable Unused Widgets', 'premium-addons-for-elementor' ); ?></button>
63
- <?php } ?>
64
- </div>
65
- </div>
66
-
67
- <div class="pa-elements-settings">
68
-
69
- <div class="pa-elements-filter">
70
- <label for="premium-elements-filter"><?php _e( 'Filter Widgets', 'premium-addons-for-elementor' ); ?></label>
71
- <select name="premium-elements-filter" id="premium-elements-filter" class="placeholder placeholder-active">
72
- <option value=""><?php _e( 'All Widgets', 'premium-addons-for-elementor' ); ?></option>
73
- <option value="free"><?php _e( 'Free Widgets', 'premium-addons-for-elementor' ); ?></option>
74
- <option value="pro"><?php _e( 'PRO Widgets', 'premium-addons-for-elementor' ); ?></option>
75
- </select>
76
- </div>
77
-
78
- <div class="pa-elements-tabs">
79
- <ul class="pa-elements-tabs-list">
80
- <?php
81
- foreach ( $elements as $index => $cat ) :
82
- if ( 'cat-11' !== $index ) :
83
- ?>
84
- <li class="pa-elements-tab">
85
- <a class="pa-elements-tab-link" href="pa-elements-tab-<?php echo $index; ?>">
86
- <i class="<?php echo esc_attr( 'pa-dash-cat-' . $cat['icon'] ); ?>"></i>
87
- </a>
88
- <span class="pa-element-tab-tooltip"><?php echo esc_html( $cat['title'] ); ?></span>
89
- </li>
90
- <?php endif; ?>
91
- <?php endforeach; ?>
92
- </ul>
93
- </div>
94
-
95
- <?php
96
- foreach ( $elements as $index => $cat ) :
97
- if ( 'cat-11' !== $index ) :
98
- ?>
99
- <div id="pa-elements-tab-<?php echo $index; ?>" class="pa-switchers-container hidden">
100
- <h3 class="pa-elements-tab-title"><?php echo __( $cat['title'] ); ?></h3>
101
- <div class="pa-switchers">
102
- <?php
103
- foreach ( $cat['elements'] as $index => $elem ) :
104
- $status = ( isset( $elem['is_pro'] ) && ! Helper_Functions::check_papro_version() ) ? 'disabled' : checked( 1, $enabled_elements[ $elem['key'] ], false );
105
- $class = ( isset( $elem['is_pro'] ) && ! Helper_Functions::check_papro_version() ) ? 'pro-' : '';
106
- $switcher_class = $class . 'slider round';
107
- ?>
108
- <div class="pa-switcher
109
- <?php
110
- echo isset( $elem['is_pro'] ) ? 'pro-element' : '';
111
- echo isset( $elem['name'] ) ? ' ' . $elem['name'] : '';
112
- ?>
113
- ">
114
- <div class="pa-element-info">
115
- <div class="pa-element-icon-wrap">
116
- <i class="pa-dash-<?php echo esc_attr( $elem['key'] ); ?> pa-element-icon"></i>
117
- </div>
118
- <div class="pa-element-meta-wrap">
119
- <p class="pa-element-name">
120
- <?php echo $elem['title']; ?>
121
- <span class="pa-total-use" title="Total Use">
122
- <?php
123
- if ( ! isset( $elem['is_global'] ) && is_array( $used_widgets ) ) {
124
- echo esc_html__( in_array( $elem['name'], array_keys( $used_widgets ) ) ? '(' . $used_widgets[ $elem['name'] ] . ')' : '(0)' );}
125
- ?>
126
- </span>
127
- <?php if ( isset( $elem['is_pro'] ) ) : ?>
128
- <span><?php echo __( 'pro', 'premium-addons-for-elementor' ); ?></span>
129
- <?php endif; ?>
130
- </p>
131
- <?php if ( ! $row_meta ) : ?>
132
- <div>
133
- <?php if ( isset( $elem['demo'] ) ) : ?>
134
- <a class="pa-element-link" href="<?php echo esc_url( $elem['demo'] ); ?>" target="_blank">
135
- <?php echo __( 'Live Demo', 'premium-addons-for-elementor' ); ?>
136
- <span class="pa-element-link-separator"></span>
137
- </a>
138
- <?php endif; ?>
139
- <?php if ( isset( $elem['doc'] ) ) : ?>
140
- <a class="pa-element-link" href="<?php echo esc_url( $elem['doc'] ); ?>" target="_blank">
141
- <?php echo __( 'Docs', 'premium-addons-for-elementor' ); ?>
142
- <?php if ( isset( $elem['tutorial'] ) ) : ?>
143
- <span class="pa-element-link-separator"></span>
144
- <?php endif; ?>
145
- </a>
146
- <?php endif; ?>
147
- <?php if ( isset( $elem['tutorial'] ) ) : ?>
148
- <a class="pa-element-link" href="<?php echo esc_url( $elem['tutorial'] ); ?>" target="_blank">
149
- <?php echo __( 'Video Tutorial', 'premium-addons-for-elementor' ); ?>
150
- </a>
151
- <?php endif; ?>
152
- </div>
153
- <?php endif; ?>
154
- </div>
155
- </div>
156
- <label class="switch">
157
- <input type="checkbox" id="<?php echo esc_attr( $elem['key'] ); ?>" name="<?php echo esc_attr( $elem['key'] ); ?>" <?php echo $status; ?>>
158
- <span class="<?php echo esc_attr( $switcher_class ); ?>"></span>
159
- </label>
160
- </div>
161
- <?php endforeach; ?>
162
- </div>
163
- </div>
164
- <?php endif; ?>
165
- <?php endforeach; ?>
166
- </div>
167
-
168
- </div>
169
- </form> <!-- End Form -->
170
- </div>
171
- </div>
172
- </div> <!-- End Section Content -->
 
1
+ <?php
2
+
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
+
7
+ use PremiumAddons\Includes\Helper_Functions;
8
+
9
+ $elements = self::get_elements_list();
10
+
11
+ $used_widgets = self::get_used_widgets();
12
+
13
+ // Get elements settings
14
+ $enabled_elements = self::get_enabled_elements();
15
+
16
+ $global_btn = get_option( 'pa_global_btn_value', 'true' );
17
+ $enable_btn = 'true' === $global_btn ? 'active' : '';
18
+ $disable_btn = 'true' === $global_btn ? '' : 'active';
19
+
20
+ $row_meta = Helper_Functions::is_hide_row_meta();
21
+
22
+ ?>
23
+
24
+ <div class="pa-section-content">
25
+ <div class="row">
26
+ <div class="col-full">
27
+ <form action="" method="POST" id="pa-settings" name="pa-settings" class="pa-settings-form">
28
+ <div id="pa-modules" class="pa-settings-tab">
29
+
30
+ <div class="pa-section-outer-wrap">
31
+ <div class="pa-section-info-wrap">
32
+ <div class="pa-section-info">
33
+ <h4><?php echo __( 'Dynamic Assets Generate', 'premium-addons-for-elementor' ); ?></h4>
34
+ <p><?php echo __( 'Generates CSS/JS files dynamically for each page based on the elements in it. Enable this setting for better performance (recommended).', 'premium-addons-for-elementor' ); ?></p>
35
+ </div>
36
+
37
+ <div class="pa-section-info-cta">
38
+ <label class="switch">
39
+ <input type="checkbox" id="premium-assets-generator" name="premium-assets-generator" <?php echo checked( 1, $enabled_elements['premium-assets-generator'], false ); ?>>
40
+ <span class="slider round"></span>
41
+ </label>
42
+ <?php if ( $enabled_elements['premium-assets-generator'] ) : ?>
43
+ <button type="button" class="pa-btn-regenerate" title="<?php esc_html_e( 'Clear Generated Assets', 'premium-addons-for-elementor' ); ?>">
44
+ <i class="dashicons dashicons-image-rotate"></i>
45
+ </button>
46
+ <?php endif; ?>
47
+ </div>
48
+
49
+ </div>
50
+ </div>
51
+
52
+ <div class="pa-section-info-wrap">
53
+ <div class="pa-section-info">
54
+ <h4><?php echo __( 'Master Switch', 'premium-addons-for-elementor' ); ?></h4>
55
+ <p><?php echo __( 'Use this to switch on or off ALL Widgets & Add-ons at once.', 'premium-addons-for-elementor' ); ?></p>
56
+ </div>
57
+
58
+ <div class="pa-btn-group">
59
+ <button type="button" class="pa-btn pa-btn-enable <?php echo esc_attr( $enable_btn ); ?>"><?php echo __( 'Switch On', 'premium-addons-for-elementor' ); ?></button>
60
+ <button type="button" class="pa-btn pa-btn-disable <?php echo esc_attr( $disable_btn ); ?>"><?php echo __( 'Switch Off', 'premium-addons-for-elementor' ); ?></button>
61
+ <?php if ( false !== $used_widgets ) { ?>
62
+ <button type="button" class="pa-btn-unused"><?php echo __( 'Disable Unused Widgets', 'premium-addons-for-elementor' ); ?></button>
63
+ <?php } ?>
64
+ </div>
65
+ </div>
66
+
67
+ <div class="pa-elements-settings">
68
+
69
+ <div class="pa-elements-filter">
70
+ <label for="premium-elements-filter"><?php _e( 'Filter Widgets', 'premium-addons-for-elementor' ); ?></label>
71
+ <input type="text" placeholder="<?php _e( 'Search by name...', 'premium-addons-for-elementor' ); ?>">
72
+ <select name="premium-elements-filter" id="premium-elements-filter" class="placeholder placeholder-active">
73
+ <option value=""><?php _e( 'All Widgets', 'premium-addons-for-elementor' ); ?></option>
74
+ <option value="free"><?php _e( 'Free Widgets', 'premium-addons-for-elementor' ); ?></option>
75
+ <option value="pro"><?php _e( 'PRO Widgets', 'premium-addons-for-elementor' ); ?></option>
76
+ </select>
77
+ </div>
78
+
79
+ <div class="pa-elements-tabs">
80
+ <ul class="pa-elements-tabs-list">
81
+ <?php
82
+ foreach ( $elements as $index => $cat ) :
83
+ if ( 'cat-11' !== $index ) :
84
+ ?>
85
+ <li class="pa-elements-tab">
86
+ <a class="pa-elements-tab-link" href="pa-elements-tab-<?php echo $index; ?>">
87
+ <i class="<?php echo esc_attr( 'pa-dash-cat-' . $cat['icon'] ); ?>"></i>
88
+ </a>
89
+ <span class="pa-element-tab-tooltip"><?php echo esc_html( $cat['title'] ); ?></span>
90
+ </li>
91
+ <?php endif; ?>
92
+ <?php endforeach; ?>
93
+ </ul>
94
+ </div>
95
+
96
+ <?php
97
+ foreach ( $elements as $index => $cat ) :
98
+ if ( 'cat-11' !== $index ) :
99
+ ?>
100
+ <div id="pa-elements-tab-<?php echo $index; ?>" class="pa-switchers-container hidden">
101
+ <h3 class="pa-elements-tab-title"><?php echo __( $cat['title'] ); ?></h3>
102
+ <div class="pa-switchers">
103
+ <?php
104
+ foreach ( $cat['elements'] as $index => $elem ) :
105
+ $status = ( isset( $elem['is_pro'] ) && ! Helper_Functions::check_papro_version() ) ? 'disabled' : checked( 1, $enabled_elements[ $elem['key'] ], false );
106
+ $class = ( isset( $elem['is_pro'] ) && ! Helper_Functions::check_papro_version() ) ? 'pro-' : '';
107
+ $switcher_class = $class . 'slider round';
108
+ ?>
109
+ <div class="pa-switcher
110
+ <?php
111
+ echo isset( $elem['is_pro'] ) ? 'pro-element' : '';
112
+ echo isset( $elem['name'] ) ? ' ' . $elem['name'] : '';
113
+ ?>
114
+ ">
115
+ <div class="pa-element-info">
116
+ <div class="pa-element-icon-wrap">
117
+ <i class="pa-dash-<?php echo esc_attr( $elem['key'] ); ?> pa-element-icon"></i>
118
+ </div>
119
+ <div class="pa-element-meta-wrap">
120
+ <p class="pa-element-name">
121
+ <?php echo $elem['title']; ?>
122
+ <span class="pa-total-use" title="Total Use">
123
+ <?php
124
+ if ( ! isset( $elem['is_global'] ) && is_array( $used_widgets ) ) {
125
+ echo esc_html__( in_array( $elem['name'], array_keys( $used_widgets ) ) ? '(' . $used_widgets[ $elem['name'] ] . ')' : '(0)' );}
126
+ ?>
127
+ </span>
128
+ <?php if ( isset( $elem['is_pro'] ) ) : ?>
129
+ <span><?php echo __( 'pro', 'premium-addons-for-elementor' ); ?></span>
130
+ <?php endif; ?>
131
+ </p>
132
+ <?php if ( ! $row_meta ) : ?>
133
+ <div>
134
+ <?php if ( isset( $elem['demo'] ) ) : ?>
135
+ <a class="pa-element-link" href="<?php echo esc_url( $elem['demo'] ); ?>" target="_blank">
136
+ <?php echo __( 'Live Demo', 'premium-addons-for-elementor' ); ?>
137
+ <span class="pa-element-link-separator"></span>
138
+ </a>
139
+ <?php endif; ?>
140
+ <?php if ( isset( $elem['doc'] ) ) : ?>
141
+ <a class="pa-element-link" href="<?php echo esc_url( $elem['doc'] ); ?>" target="_blank">
142
+ <?php echo __( 'Docs', 'premium-addons-for-elementor' ); ?>
143
+ <?php if ( isset( $elem['tutorial'] ) ) : ?>
144
+ <span class="pa-element-link-separator"></span>
145
+ <?php endif; ?>
146
+ </a>
147
+ <?php endif; ?>
148
+ <?php if ( isset( $elem['tutorial'] ) ) : ?>
149
+ <a class="pa-element-link" href="<?php echo esc_url( $elem['tutorial'] ); ?>" target="_blank">
150
+ <?php echo __( 'Video Tutorial', 'premium-addons-for-elementor' ); ?>
151
+ </a>
152
+ <?php endif; ?>
153
+ </div>
154
+ <?php endif; ?>
155
+ </div>
156
+ </div>
157
+ <label class="switch">
158
+ <input type="checkbox" id="<?php echo esc_attr( $elem['key'] ); ?>" name="<?php echo esc_attr( $elem['key'] ); ?>" <?php echo $status; ?>>
159
+ <span class="<?php echo esc_attr( $switcher_class ); ?>"></span>
160
+ </label>
161
+ </div>
162
+ <?php endforeach; ?>
163
+ </div>
164
+ </div>
165
+ <?php endif; ?>
166
+ <?php endforeach; ?>
167
+ </div>
168
+
169
+ </div>
170
+ </form> <!-- End Form -->
171
+ </div>
172
+ </div>
173
+ </div> <!-- End Section Content -->
assets/frontend/css/common.css CHANGED
@@ -1,257 +1,257 @@
1
  /*
2
  * Common Title/Dual Heading
3
- */
4
- .premium-title-bg-text:before {
5
- position: absolute;
6
- content: attr(data-background);
7
- top: 0;
8
- left: 0;
9
- text-align: left; }
10
-
11
- .premium-bg-text-yes .elementor-widget-container:before {
12
- position: absolute;
13
- top: 0;
14
- left: 0;
15
- text-align: left; }
16
-
17
- .premium-mask-yes .premium-dual-header-first-clip .premium-dual-header-first-span .premium-mask-span,
18
- .premium-mask-yes .premium-dual-header-second-clip .premium-mask-span {
19
- background: inherit; }
20
-
21
- .premium-mask-yes .premium-mask-span {
22
- position: relative;
23
- overflow: hidden;
24
- -js-display: inline-flex !important;
25
- display: -webkit-inline-box !important;
26
- display: -webkit-inline-flex !important;
27
- display: -moz-inline-box !important;
28
- display: -ms-inline-flexbox !important;
29
- display: inline-flex !important; }
30
- .premium-mask-yes .premium-mask-span::after {
31
- content: "";
32
- position: absolute;
33
- top: 0;
34
- right: 0px;
35
- width: 100%;
36
- height: 100%;
37
- background-color: currentColor;
38
- -webkit-backface-visibility: visible;
39
- backface-visibility: visible; }
40
-
41
- .premium-mask-active.premium-mask-tr .premium-mask-span::after {
42
- -webkit-animation: pa-mask-tr 1.7s cubic-bezier(1, 0, 0.18, 1) forwards;
43
- animation: pa-mask-tr 1.7s cubic-bezier(1, 0, 0.18, 1) forwards;
44
- -webkit-transform: translateX(-103%);
45
- -ms-transform: translateX(-103%);
46
- transform: translateX(-103%); }
47
-
48
- .premium-mask-active.premium-mask-tl .premium-mask-span::after {
49
- -webkit-animation: pa-mask-tl 1.7s cubic-bezier(1, 0, 0.18, 1) forwards;
50
- animation: pa-mask-tl 1.7s cubic-bezier(1, 0, 0.18, 1) forwards;
51
- -webkit-transform: translateX(103%);
52
- -ms-transform: translateX(103%);
53
- transform: translateX(103%); }
54
-
55
- .premium-mask-active.premium-mask-tb .premium-mask-span::after {
56
- -webkit-animation: pa-mask-tb 1.7s cubic-bezier(1, 0, 0.18, 1) forwards;
57
- animation: pa-mask-tb 1.7s cubic-bezier(1, 0, 0.18, 1) forwards;
58
- -webkit-transform: translateY(-103%);
59
- -ms-transform: translateY(-103%);
60
- transform: translateY(-103%); }
61
-
62
- .premium-mask-active.premium-mask-tt .premium-mask-span::after {
63
- -webkit-animation: pa-mask-tt 1.7s cubic-bezier(1, 0, 0.18, 1) forwards;
64
- animation: pa-mask-tt 1.7s cubic-bezier(1, 0, 0.18, 1) forwards;
65
- -webkit-transform: translateY(103%);
66
- -ms-transform: translateY(103%);
67
- transform: translateY(103%); }
68
-
69
- @-webkit-keyframes pa-mask-tr {
70
- 0% {
71
- -webkit-transform: translateX(0%);
72
- transform: translateX(0%); }
73
- 100% {
74
- -webkit-transform: translateX(103%);
75
- transform: translateX(103%); } }
76
-
77
- @keyframes pa-mask-tr {
78
- 0% {
79
- -webkit-transform: translateX(0%);
80
- transform: translateX(0%); }
81
- 100% {
82
- -webkit-transform: translateX(103%);
83
- transform: translateX(103%); } }
84
-
85
- @-webkit-keyframes pa-mask-tl {
86
- 0% {
87
- -webkit-transform: translateX(0%);
88
- transform: translateX(0%); }
89
- 100% {
90
- -webkit-transform: translateX(-103%);
91
- transform: translateX(-103%); } }
92
-
93
- @keyframes pa-mask-tl {
94
- 0% {
95
- -webkit-transform: translateX(0%);
96
- transform: translateX(0%); }
97
- 100% {
98
- -webkit-transform: translateX(-103%);
99
- transform: translateX(-103%); } }
100
-
101
- @-webkit-keyframes pa-mask-tb {
102
- 0% {
103
- -webkit-transform: translateY(0%);
104
- transform: translateY(0%); }
105
- 100% {
106
- -webkit-transform: translateY(103%);
107
- transform: translateY(103%); } }
108
-
109
- @keyframes pa-mask-tb {
110
- 0% {
111
- -webkit-transform: translateY(0%);
112
- transform: translateY(0%); }
113
- 100% {
114
- -webkit-transform: translateY(103%);
115
- transform: translateY(103%); } }
116
-
117
- @-webkit-keyframes pa-mask-tt {
118
- 0% {
119
- -webkit-transform: translateY(0%);
120
- transform: translateY(0%); }
121
- 100% {
122
- -webkit-transform: translateY(-103%);
123
- transform: translateY(-103%); } }
124
-
125
- @keyframes pa-mask-tt {
126
- 0% {
127
- -webkit-transform: translateY(0%);
128
- transform: translateY(0%); }
129
- 100% {
130
- -webkit-transform: translateY(-103%);
131
- transform: translateY(-103%); } }
132
-
133
  /*
134
  * Common Buttons Style.
135
- */
136
- .premium-button .premium-lottie-animation,
137
- .premium-image-button .premium-lottie-animation {
138
- -js-display: flex;
139
- display: -webkit-box;
140
- display: -webkit-flex;
141
- display: -moz-box;
142
- display: -ms-flexbox;
143
- display: flex; }
144
-
145
- .premium-button svg,
146
- .premium-image-button svg {
147
- width: 30px;
148
- height: 30px; }
149
-
150
- .premium-btn-sm,
151
- .premium-btn-md,
152
- .premium-btn-lg,
153
- .premium-btn-block {
154
- background-color: #eee;
155
- color: #042551;
156
- margin: 0px;
157
- text-decoration: none; }
158
- .premium-btn-sm:hover,
159
- .premium-btn-md:hover,
160
- .premium-btn-lg:hover,
161
- .premium-btn-block:hover {
162
- background-color: #54595f;
163
- color: #eee; }
164
-
165
- .premium-btn-sm {
166
- padding: 12px 24px;
167
- font-size: 14px;
168
- line-height: 1; }
169
-
170
- .premium-btn-md {
171
- padding: 14px 26px;
172
- font-size: 16px;
173
- line-height: 1.2; }
174
-
175
- .premium-btn-lg {
176
- padding: 16px 28px;
177
- font-size: 18px;
178
- line-height: 1.3333; }
179
-
180
- .premium-btn-block {
181
- font-size: 18px;
182
- line-height: 1;
183
- padding: 20px 0px;
184
- width: 100%;
185
- text-align: center; }
186
-
187
- .premium-button-text {
188
- display: inline-block;
189
- width: 100%; }
190
-
191
  /*
192
  * Common Button/Image Button Mouse Detect Effect.
193
- */
194
- .premium-mouse-detect-yes .premium-button-style6 .premium-button-style6-bg {
195
- position: absolute;
196
- z-index: 0;
197
- top: 0;
198
- left: 0;
199
- width: 0px;
200
- height: 0px;
201
- -webkit-border-radius: 50%;
202
- border-radius: 50%;
203
- display: block;
204
- -webkit-transform: translate(-50%, -50%);
205
- -ms-transform: translate(-50%, -50%);
206
- transform: translate(-50%, -50%);
207
- -webkit-transition: width 0.4s ease-in-out, height 0.4s ease-in-out;
208
- transition: width 0.4s ease-in-out, height 0.4s ease-in-out; }
209
-
210
- .premium-mouse-detect-yes .premium-button-style6:hover .premium-button-style6-bg {
211
- width: 225%;
212
- height: 560px; }
213
-
214
- .premium-mouse-detect-yes .premium-button-style6:before {
215
- width: 0;
216
- height: 0; }
217
-
218
- /** Loader */
219
- .premium-loader {
220
- border: 3px solid #f3f3f3;
221
- border-top-width: 3px;
222
- border-top-style: solid;
223
- border-top-color: #f3f3f3;
224
- -webkit-border-radius: 50%;
225
- border-radius: 50%;
226
- border-top: 3px solid;
227
- border-top-color: #bbb;
228
- width: 30px;
229
- height: 30px;
230
- -webkit-animation: spin 2s linear infinite;
231
- animation: spin 2s linear infinite;
232
- margin: 0 auto; }
233
-
234
- /** Common Animation */
235
- @-webkit-keyframes spin {
236
- 0% {
237
- -webkit-transform: rotate(0deg);
238
- transform: rotate(0deg); }
239
- 100% {
240
- -webkit-transform: rotate(360deg);
241
- transform: rotate(360deg); } }
242
- @keyframes spin {
243
- 0% {
244
- -webkit-transform: rotate(0deg);
245
- transform: rotate(0deg); }
246
- 100% {
247
- -webkit-transform: rotate(360deg);
248
- transform: rotate(360deg); } }
249
-
250
- /**Notice*/
251
- .premium-error-notice {
252
- width: 100%;
253
- padding: 10px;
254
- color: #b94a48;
255
- background-color: #f2dede;
256
- border-color: #eed3d7;
257
- text-align: center; }
1
  /*
2
  * Common Title/Dual Heading
3
+ */
4
+ .premium-title-bg-text:before {
5
+ position: absolute;
6
+ content: attr(data-background);
7
+ top: 0;
8
+ left: 0;
9
+ text-align: left; }
10
+
11
+ .premium-bg-text-yes .elementor-widget-container:before {
12
+ position: absolute;
13
+ top: 0;
14
+ left: 0;
15
+ text-align: left; }
16
+
17
+ .premium-mask-yes .premium-dual-header-first-clip .premium-dual-header-first-span .premium-mask-span,
18
+ .premium-mask-yes .premium-dual-header-second-clip .premium-mask-span {
19
+ background: inherit; }
20
+
21
+ .premium-mask-yes .premium-mask-span {
22
+ position: relative;
23
+ overflow: hidden;
24
+ -js-display: inline-flex !important;
25
+ display: -webkit-inline-box !important;
26
+ display: -webkit-inline-flex !important;
27
+ display: -moz-inline-box !important;
28
+ display: -ms-inline-flexbox !important;
29
+ display: inline-flex !important; }
30
+ .premium-mask-yes .premium-mask-span::after {
31
+ content: "";
32
+ position: absolute;
33
+ top: 0;
34
+ right: 0px;
35
+ width: 100%;
36
+ height: 100%;
37
+ background-color: currentColor;
38
+ -webkit-backface-visibility: visible;
39
+ backface-visibility: visible; }
40
+
41
+ .premium-mask-active.premium-mask-tr .premium-mask-span::after {
42
+ -webkit-animation: pa-mask-tr 1.7s cubic-bezier(1, 0, 0.18, 1) forwards;
43
+ animation: pa-mask-tr 1.7s cubic-bezier(1, 0, 0.18, 1) forwards;
44
+ -webkit-transform: translateX(-103%);
45
+ -ms-transform: translateX(-103%);
46
+ transform: translateX(-103%); }
47
+
48
+ .premium-mask-active.premium-mask-tl .premium-mask-span::after {
49
+ -webkit-animation: pa-mask-tl 1.7s cubic-bezier(1, 0, 0.18, 1) forwards;
50
+ animation: pa-mask-tl 1.7s cubic-bezier(1, 0, 0.18, 1) forwards;
51
+ -webkit-transform: translateX(103%);
52
+ -ms-transform: translateX(103%);
53
+ transform: translateX(103%); }
54
+
55
+ .premium-mask-active.premium-mask-tb .premium-mask-span::after {
56
+ -webkit-animation: pa-mask-tb 1.7s cubic-bezier(1, 0, 0.18, 1) forwards;
57
+ animation: pa-mask-tb 1.7s cubic-bezier(1, 0, 0.18, 1) forwards;
58
+ -webkit-transform: translateY(-103%);
59
+ -ms-transform: translateY(-103%);
60
+ transform: translateY(-103%); }
61
+
62
+ .premium-mask-active.premium-mask-tt .premium-mask-span::after {
63
+ -webkit-animation: pa-mask-tt 1.7s cubic-bezier(1, 0, 0.18, 1) forwards;
64
+ animation: pa-mask-tt 1.7s cubic-bezier(1, 0, 0.18, 1) forwards;
65
+ -webkit-transform: translateY(103%);
66
+ -ms-transform: translateY(103%);
67
+ transform: translateY(103%); }
68
+
69
+ @-webkit-keyframes pa-mask-tr {
70
+ 0% {
71
+ -webkit-transform: translateX(0%);
72
+ transform: translateX(0%); }
73
+ 100% {
74
+ -webkit-transform: translateX(103%);
75
+ transform: translateX(103%); } }
76
+
77
+ @keyframes pa-mask-tr {
78
+ 0% {
79
+ -webkit-transform: translateX(0%);
80
+ transform: translateX(0%); }
81
+ 100% {
82
+ -webkit-transform: translateX(103%);
83
+ transform: translateX(103%); } }
84
+
85
+ @-webkit-keyframes pa-mask-tl {
86
+ 0% {
87
+ -webkit-transform: translateX(0%);
88
+ transform: translateX(0%); }
89
+ 100% {
90
+ -webkit-transform: translateX(-103%);
91
+ transform: translateX(-103%); } }
92
+
93
+ @keyframes pa-mask-tl {
94
+ 0% {
95
+ -webkit-transform: translateX(0%);
96
+ transform: translateX(0%); }
97
+ 100% {
98
+ -webkit-transform: translateX(-103%);
99
+ transform: translateX(-103%); } }
100
+
101
+ @-webkit-keyframes pa-mask-tb {
102
+ 0% {
103
+ -webkit-transform: translateY(0%);
104
+ transform: translateY(0%); }
105
+ 100% {
106
+ -webkit-transform: translateY(103%);
107
+ transform: translateY(103%); } }
108
+
109
+ @keyframes pa-mask-tb {
110
+ 0% {
111
+ -webkit-transform: translateY(0%);
112
+ transform: translateY(0%); }
113
+ 100% {
114
+ -webkit-transform: translateY(103%);
115
+ transform: translateY(103%); } }
116
+
117
+ @-webkit-keyframes pa-mask-tt {
118
+ 0% {
119
+ -webkit-transform: translateY(0%);
120
+ transform: translateY(0%); }
121
+ 100% {
122
+ -webkit-transform: translateY(-103%);
123
+ transform: translateY(-103%); } }
124
+
125
+ @keyframes pa-mask-tt {
126
+ 0% {
127
+ -webkit-transform: translateY(0%);
128
+ transform: translateY(0%); }
129
+ 100% {
130
+ -webkit-transform: translateY(-103%);
131
+ transform: translateY(-103%); } }
132
+
133
  /*
134
  * Common Buttons Style.
135
+ */
136
+ .premium-button .premium-lottie-animation,
137
+ .premium-image-button .premium-lottie-animation {
138
+ -js-display: flex;
139
+ display: -webkit-box;
140
+ display: -webkit-flex;
141
+ display: -moz-box;
142
+ display: -ms-flexbox;
143
+ display: flex; }
144
+
145
+ .premium-button svg,
146
+ .premium-image-button svg {
147
+ width: 30px;
148
+ height: 30px; }
149
+
150
+ .premium-btn-sm,
151
+ .premium-btn-md,
152
+ .premium-btn-lg,
153
+ .premium-btn-block {
154
+ background-color: #eee;
155
+ color: #042551;
156
+ margin: 0px;
157
+ text-decoration: none; }
158
+ .premium-btn-sm:hover,
159
+ .premium-btn-md:hover,
160
+ .premium-btn-lg:hover,
161
+ .premium-btn-block:hover {
162
+ background-color: #54595f;
163
+ color: #eee; }
164
+
165
+ .premium-btn-sm {
166
+ padding: 12px 24px;
167
+ font-size: 14px;
168
+ line-height: 1; }
169
+
170
+ .premium-btn-md {
171
+ padding: 14px 26px;
172
+ font-size: 16px;
173
+ line-height: 1.2; }
174
+
175
+ .premium-btn-lg {
176
+ padding: 16px 28px;
177
+ font-size: 18px;
178
+ line-height: 1.3333; }
179
+
180
+ .premium-btn-block {
181
+ font-size: 18px;
182
+ line-height: 1;
183
+ padding: 20px 0px;
184
+ width: 100%;
185
+ text-align: center; }
186
+
187
+ .premium-button-text {
188
+ display: inline-block;
189
+ width: 100%; }
190
+
191
  /*
192
  * Common Button/Image Button Mouse Detect Effect.
193
+ */
194
+ .premium-mouse-detect-yes .premium-button-style6 .premium-button-style6-bg {
195
+ position: absolute;
196
+ z-index: 0;
197
+ top: 0;
198
+ left: 0;
199
+ width: 0px;
200
+ height: 0px;
201
+ -webkit-border-radius: 50%;
202
+ border-radius: 50%;
203
+ display: block;
204
+ -webkit-transform: translate(-50%, -50%);
205
+ -ms-transform: translate(-50%, -50%);
206
+ transform: translate(-50%, -50%);
207
+ -webkit-transition: width 0.4s ease-in-out, height 0.4s ease-in-out;
208
+ transition: width 0.4s ease-in-out, height 0.4s ease-in-out; }
209
+
210
+ .premium-mouse-detect-yes .premium-button-style6:hover .premium-button-style6-bg {
211
+ width: 225%;
212
+ height: 560px; }
213
+
214
+ .premium-mouse-detect-yes .premium-button-style6:before {
215
+ width: 0;
216
+ height: 0; }
217
+
218
+ /** Loader */
219
+ .premium-loader {
220
+ border: 3px solid #f3f3f3;
221
+ border-top-width: 3px;
222
+ border-top-style: solid;
223
+ border-top-color: #f3f3f3;
224
+ -webkit-border-radius: 50%;
225
+ border-radius: 50%;
226
+ border-top: 3px solid;
227
+ border-top-color: #bbb;
228
+ width: 30px;
229
+ height: 30px;
230
+ -webkit-animation: spin 2s linear infinite;
231
+ animation: spin 2s linear infinite;
232
+ margin: 0 auto; }
233
+
234
+ /** Common Animation */
235
+ @-webkit-keyframes spin {
236
+ 0% {
237
+ -webkit-transform: rotate(0deg);
238
+ transform: rotate(0deg); }
239
+ 100% {
240
+ -webkit-transform: rotate(360deg);
241
+ transform: rotate(360deg); } }
242
+ @keyframes spin {
243
+ 0% {
244
+ -webkit-transform: rotate(0deg);
245
+ transform: rotate(0deg); }
246
+ 100% {
247
+ -webkit-transform: rotate(360deg);
248
+ transform: rotate(360deg); } }
249
+
250
+ /**Notice*/
251
+ .premium-error-notice {
252
+ width: 100%;
253
+ padding: 10px;
254
+ color: #b94a48;
255
+ background-color: #f2dede;
256
+ border-color: #eed3d7;
257
+ text-align: center; }
assets/frontend/css/premium-addons-rtl.css CHANGED
@@ -3834,335 +3834,335 @@ span.icon.flex-width {
3834
  transform: rotateX(180deg);
3835
  }
3836
  }
3837
- /**************** Premium Bullet List *****************/
3838
- /******************************************************/
3839
- .premium-bullet-list-box {
3840
- -js-display: flex;
3841
- display: -webkit-box;
3842
- display: -webkit-flex;
3843
- display: -moz-box;
3844
- display: -ms-flexbox;
3845
- display: flex;
3846
- -webkit-flex-wrap: wrap;
3847
- -ms-flex-wrap: wrap;
3848
- flex-wrap: wrap;
3849
- -webkit-box-orient: vertical;
3850
- -webkit-box-direction: normal;
3851
- -webkit-flex-direction: column;
3852
- -moz-box-orient: vertical;
3853
- -moz-box-direction: normal;
3854
- -ms-flex-direction: column;
3855
- flex-direction: column;
3856
- }
3857
-
3858
- .premium-bullet-list-box .premium-bullet-list-content-grow-lc {
3859
- -webkit-transform-origin: right center;
3860
- -ms-transform-origin: right center;
3861
- transform-origin: right center;
3862
- }
3863
-
3864
- .premium-bullet-list-box .premium-bullet-list-content-grow-rc {
3865
- -webkit-transform-origin: left center;
3866
- -ms-transform-origin: left center;
3867
- transform-origin: left center;
3868
- }
3869
-
3870
- .premium-bullet-list-box .premium-bullet-list-content-grow-cc {
3871
- -webkit-transform-origin: center center;
3872
- -ms-transform-origin: center center;
3873
- transform-origin: center center;
3874
- }
3875
-
3876
- .premium-bullet-list-content {
3877
- -js-display: flex;
3878
- display: -webkit-box;
3879
- display: -webkit-flex;
3880
- display: -moz-box;
3881
- display: -ms-flexbox;
3882
- display: flex;
3883
- -webkit-transition: all 0.3s ease-in-out;
3884
- transition: all 0.3s ease-in-out;
3885
- width: auto;
3886
- position: relative;
3887
- }
3888
-
3889
- .premium-bullet-list-content .premium-bullet-list-text span,
3890
- .premium-bullet-list-content .premium-bullet-list-wrapper {
3891
- display: inline-block;
3892
- -webkit-align-self: center;
3893
- -ms-flex-item-align: center;
3894
- align-self: center;
3895
- -webkit-transition: all 0.3s ease-in-out;
3896
- transition: all 0.3s ease-in-out;
3897
- }
3898
-
3899
- .premium-bullet-list-content .premium-bullet-list-text span {
3900
- margin: 0 5px;
3901
- -webkit-box-flex: 1;
3902
- -webkit-flex: 1;
3903
- -moz-box-flex: 1;
3904
- -ms-flex: 1;
3905
- flex: 1;
3906
- }
3907
-
3908
- .premium-bullet-list-content .premium-bullet-list-icon-text p {
3909
- font-size: 18px;
3910
- background-color: #eee;
3911
- padding: 1px 5px;
3912
- -webkit-border-radius: 2px;
3913
- border-radius: 2px;
3914
- }
3915
-
3916
- .premium-bullet-list-content .premium-bullet-list-text span,
3917
- .premium-bullet-list-content .premium-bullet-list-icon-text p,
3918
- .premium-bullet-list-content .premium-bullet-list-wrapper img,
3919
- .premium-bullet-list-content .premium-bullet-list-wrapper svg,
3920
- .premium-bullet-list-content .premium-bullet-list-wrapper i {
3921
- -webkit-transition: all 0.3s ease-in-out;
3922
- transition: all 0.3s ease-in-out;
3923
- }
3924
-
3925
- .premium-bullet-list-content .premium-bullet-list-wrapper {
3926
- position: relative;
3927
- line-height: 0;
3928
- }
3929
-
3930
- .premium-bullet-list-content .premium-bullet-list-wrapper img,
3931
- .premium-bullet-list-content .premium-bullet-list-wrapper svg {
3932
- width: 30px !important;
3933
- height: 30px !important;
3934
- position: relative;
3935
- z-index: 500;
3936
- }
3937
-
3938
- .premium-bullet-list-content .premium-bullet-list-wrapper i {
3939
- width: 1.25em;
3940
- }
3941
-
3942
- .premium-bullet-list-content .premium-bullet-list-wrapper i,
3943
- .premium-bullet-list-content .premium-bullet-list-wrapper .premium-bullet-list-icon-text {
3944
- position: relative;
3945
- z-index: 500;
3946
- }
3947
-
3948
- .premium-bullet-list-content .premium-bullet-list-link {
3949
- position: absolute;
3950
- top: 0;
3951
- right: 0;
3952
- width: 100%;
3953
- height: 100%;
3954
- z-index: 1000;
3955
- }
3956
-
3957
- .premium-bullet-list-content:not(:last-of-type) .premium-bullet-list-connector {
3958
- width: 100%;
3959
- height: 100%;
3960
- position: absolute;
3961
- top: 0.5em;
3962
- z-index: 100;
3963
- -js-display: flex;
3964
- display: -webkit-box;
3965
- display: -webkit-flex;
3966
- display: -moz-box;
3967
- display: -ms-flexbox;
3968
- display: flex;
3969
- -webkit-box-pack: center;
3970
- -webkit-justify-content: center;
3971
- -moz-box-pack: center;
3972
- -ms-flex-pack: center;
3973
- justify-content: center;
3974
- }
3975
-
3976
- .premium-bullet-list-content:not(:last-of-type) .premium-bullet-list-connector .premium-icon-connector-content:after {
3977
- content: "";
3978
- border-left-width: 1px;
3979
- border-left-style: solid;
3980
- border-color: #333333;
3981
- display: block;
3982
- height: 100%;
3983
- }
3984
-
3985
- li.premium-bullet-list-content.premium-bullet-list-content-inline {
3986
- -webkit-align-self: center;
3987
- -ms-flex-item-align: center;
3988
- align-self: center;
3989
- z-index: 2;
3990
- }
3991
-
3992
- li.premium-bullet-list-content.premium-bullet-list-content-inline:not(:first-child) {
3993
- margin: 0 3px;
3994
- }
3995
-
3996
- li.premium-bullet-list-content.premium-bullet-list-content-inline:first-child {
3997
- margin: 0 0 0 3px;
3998
- }
3999
-
4000
- .premium-bullet-list-divider:not(:last-child) {
4001
- width: 100%;
4002
- -webkit-box-flex: 0;
4003
- -webkit-flex: 0 0 100%;
4004
- -moz-box-flex: 0;
4005
- -ms-flex: 0 0 100%;
4006
- flex: 0 0 100%;
4007
- overflow: hidden;
4008
- }
4009
-
4010
- .premium-bullet-list-divider:not(:last-child):after {
4011
- content: "";
4012
- display: block;
4013
- border-top-style: solid;
4014
- border-top-width: 1px;
4015
- }
4016
-
4017
- .premium-bullet-list-divider-inline:not(:last-child) {
4018
- float: left;
4019
- display: inline-block;
4020
- position: relative;
4021
- height: 100%;
4022
- overflow: hidden;
4023
- -webkit-align-self: center;
4024
- -ms-flex-item-align: center;
4025
- align-self: center;
4026
- margin: 0 3px;
4027
- }
4028
-
4029
- .premium-bullet-list-divider-inline:not(:last-child):after {
4030
- content: "";
4031
- display: block;
4032
- border-right-width: 1px;
4033
- height: 33px;
4034
- border-right-style: solid;
4035
- }
4036
-
4037
- .premium-bullet-list-icon-text {
4038
- line-height: 1.5;
4039
- }
4040
-
4041
- .premium-bullet-list-icon-text p,
4042
- ul.premium-bullet-list-box,
4043
- li.premium-bullet-list-content {
4044
- margin: 0;
4045
- }
4046
-
4047
- .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-wrapper i,
4048
- .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-text span,
4049
- .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-icon-text p {
4050
- color: transparent !important;
4051
- text-shadow: 0 0 3px #aaa;
4052
- }
4053
-
4054
- .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-icon-connector-content,
4055
- .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-wrapper .premium-lottie-animation svg,
4056
- .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-wrapper img,
4057
- .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-badge {
4058
- -webkit-filter: blur(3px);
4059
- filter: blur(3px);
4060
- }
4061
-
4062
- .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-wrapper i,
4063
- .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-text span,
4064
- .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-icon-text p {
4065
- color: #aaa !important;
4066
- text-shadow: 0 0px 0 transparent;
4067
- }
4068
-
4069
- .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-icon-connector-content,
4070
- .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-wrapper .premium-lottie-animation svg,
4071
- .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-wrapper img,
4072
- .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-badge {
4073
- -webkit-filter: none;
4074
- filter: none;
4075
- }
4076
-
4077
- .premium-bullet-list-content .premium-bullet-list-badge {
4078
- font-size: 11px;
4079
- top: auto;
4080
- min-width: -webkit-max-content;
4081
- min-width: -moz-max-content;
4082
- min-width: max-content;
4083
- height: -webkit-fit-content;
4084
- height: -moz-fit-content;
4085
- height: fit-content;
4086
- }
4087
-
4088
- .premium-bullet-list-content .premium-bullet-list-icon-text p {
4089
- font-size: 13px;
4090
- }
4091
-
4092
- .premium-bullet-list-gradient-effect[data-text] {
4093
- display: inline-block;
4094
- position: relative;
4095
- text-decoration: none;
4096
- }
4097
-
4098
- .premium-bullet-list-gradient-effect[data-text]::before {
4099
- content: attr(data-text);
4100
- position: absolute;
4101
- z-index: 1;
4102
- overflow: hidden;
4103
- -webkit-clip-path: polygon(100% 100%, 100% 100%, 50% 50%);
4104
- clip-path: polygon(100% 100%, 100% 100%, 50% 50%);
4105
- -webkit-background-clip: text;
4106
- background-clip: text;
4107
- -webkit-text-fill-color: transparent;
4108
- -webkit-transition: all 0.4s ease;
4109
- transition: all 0.4s ease;
4110
- }
4111
-
4112
- .premium-bullet-list-content:hover .premium-bullet-list-gradient-effect[data-text]::before,
4113
- .premium-bullet-list-content:focus .premium-bullet-list-gradient-effect[data-text]::before {
4114
- -webkit-animation: rtlgradient 1s forwards;
4115
- animation: rtlgradient 1s forwards;
4116
- }
4117
-
4118
- @-webkit-keyframes rtlgradient {
4119
- 0% {
4120
- -webkit-clip-path: circle(0% at 150% 50%);
4121
- clip-path: circle(0% at 150% 50%);
4122
- }
4123
-
4124
- 100% {
4125
- -webkit-clip-path: circle(100% at 50% 50%);
4126
- clip-path: circle(100% at 50% 50%);
4127
- }
4128
- }
4129
-
4130
- @keyframes rtlgradient {
4131
- 0% {
4132
- -webkit-clip-path: circle(0% at 150% 50%);
4133
- clip-path: circle(0% at 150% 50%);
4134
- }
4135
-
4136
- 100% {
4137
- -webkit-clip-path: circle(100% at 50% 50%);
4138
- clip-path: circle(100% at 50% 50%);
4139
- }
4140
- }
4141
-
4142
- ul[data-list-animation*="animated-"] .premium-bullet-list-divider,
4143
- ul[data-list-animation*="animated-"] .premium-bullet-list-content,
4144
- ul[data-list-animation*="animated-"] .premium-bullet-list-divider-inline {
4145
- opacity: 0;
4146
- }
4147
-
4148
- .premium-bullet-list-content-grow-effect:hover {
4149
- -webkit-transform: scale(1.07);
4150
- -ms-transform: scale(1.07);
4151
- transform: scale(1.07);
4152
- }
4153
-
4154
- @-webkit-keyframes spin {
4155
- 100% {
4156
- -webkit-transform: rotate(360deg);
4157
- transform: rotate(360deg);
4158
- }
4159
- }
4160
-
4161
- @keyframes spin {
4162
- 100% {
4163
- -webkit-transform: rotate(360deg);
4164
- transform: rotate(360deg);
4165
- }
4166
  }
4167
  /**************** Premium Image Button ***********/
4168
  /*************************************************/
@@ -7509,368 +7509,368 @@ ul.premium-person-social-list {
7509
  padding-right: 10px;
7510
  }
7511
 
7512
- .premium-person-style3 .premium-person-social-list {
7513
- -js-display: flex;
7514
- display: -webkit-box;
7515
- display: -webkit-flex;
7516
- display: -moz-box;
7517
- display: -ms-flexbox;
7518
- display: flex;
7519
- -webkit-box-orient: vertical;
7520
- -webkit-box-direction: normal;
7521
- -webkit-flex-direction: column;
7522
- -moz-box-orient: vertical;
7523
- -moz-box-direction: normal;
7524
- -ms-flex-direction: column;
7525
- flex-direction: column;
7526
- -webkit-transform: translateY(20px);
7527
- -ms-transform: translateY(20px);
7528
- transform: translateY(20px);
7529
- opacity: 0;
7530
- -webkit-transition: all 0.3s ease;
7531
- transition: all 0.3s ease;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7532
  }
7533
 
7534
- .premium-person-style3 .premium-person-list-item {
7535
- line-height: 0;
7536
  }
7537
 
7538
- .premium-person-style3 .premium-person-list-item a {
7539
- padding: 5px 0 0 10px;
7540
- margin: 5px 0;
7541
  }
7542
 
7543
- .premium-person-style3 .premium-person-container:hover .premium-person-title {
 
 
7544
  opacity: 1;
7545
  }
7546
 
7547
- .premium-person-style3 .premium-person-container:hover .premium-person-social-list {
7548
- opacity: 1;
7549
- -webkit-transform: translateY(0);
7550
- -ms-transform: translateY(0);
7551
- transform: translateY(0);
7552
  }
7553
 
7554
- .premium-persons-title-cw .premium-person-title {
7555
- -webkit-transform: translateX(-15px) rotate(-90deg);
7556
- -ms-transform: translateX(-15px) rotate(-90deg);
7557
- transform: translateX(-15px) rotate(-90deg);
7558
- -webkit-transform-origin: top;
7559
- -ms-transform-origin: top;
7560
- transform-origin: top;
7561
  }
7562
 
7563
- .premium-persons-title-cw .premium-person-container:hover .premium-person-title {
7564
- -webkit-transform: translateX(0) rotate(-90deg);
7565
- -ms-transform: translateX(0) rotate(-90deg);
7566
- transform: translateX(0) rotate(-90deg);
7567
  }
7568
 
7569
- .premium-persons-title-ccw .premium-person-title {
7570
- width: auto;
7571
- margin-left: 20px;
7572
- -webkit-transform: translateX(-15px) rotate(90deg);
7573
- -ms-transform: translateX(-15px) rotate(90deg);
7574
- transform: translateX(-15px) rotate(90deg);
7575
- -webkit-transform-origin: center left;
7576
- -ms-transform-origin: center left;
7577
- transform-origin: center left;
7578
  }
7579
 
7580
- .premium-persons-title-ccw .premium-person-container:hover .premium-person-title {
7581
- -webkit-transform: translateX(0) rotate(90deg);
7582
- -ms-transform: translateX(0) rotate(90deg);
7583
- transform: translateX(0) rotate(90deg);
7584
- }
7585
- /**************** Premium Pricing Table ****************/
7586
- /*******************************************************/
7587
- .premium-pricing-table-container {
7588
- position: relative;
7589
- text-align: center;
7590
- display: inline-block;
7591
- width: 100%;
7592
- -webkit-transition: all 0.3s ease-in-out;
7593
- transition: all 0.3s ease-in-out;
7594
- }
7595
-
7596
- .premium-pricing-icon-container {
7597
- -js-display: flex;
7598
- display: -webkit-box;
7599
- display: -webkit-flex;
7600
- display: -moz-box;
7601
- display: -ms-flexbox;
7602
- display: flex;
7603
- -webkit-box-pack: center;
7604
- -webkit-justify-content: center;
7605
- -moz-box-pack: center;
7606
- -ms-flex-pack: center;
7607
- justify-content: center;
7608
- line-height: 0;
7609
- }
7610
-
7611
- .premium-pricing-icon-container .premium-pricing-icon {
7612
- display: inline-block;
7613
- }
7614
-
7615
- .premium-pricing-icon-container .premium-pricing-image {
7616
- overflow: hidden;
7617
- }
7618
-
7619
- .premium-pricing-icon-container .premium-pricing-image img {
7620
- width: 25px;
7621
- height: 25px;
7622
- -o-object-fit: cover;
7623
- object-fit: cover;
7624
- }
7625
-
7626
- .premium-badge-left {
7627
- position: absolute;
7628
- top: 0;
7629
- }
7630
-
7631
- .premium-badge-right {
7632
- position: absolute;
7633
- top: 0;
7634
- right: 0;
7635
- }
7636
-
7637
- .premium-badge-left {
7638
- left: 0;
7639
- }
7640
-
7641
- .premium-badge-triangle.premium-badge-left .corner {
7642
- width: 0;
7643
- height: 0;
7644
- border-top: 150px solid;
7645
- border-bottom: 150px solid transparent;
7646
- border-right: 150px solid transparent;
7647
- }
7648
-
7649
- .premium-badge-triangle.premium-badge-right .corner {
7650
- width: 0;
7651
- height: 0;
7652
- border-bottom: 150px solid transparent;
7653
- border-right: 150px solid;
7654
- border-left: 150px solid transparent;
7655
- }
7656
-
7657
- .premium-badge-triangle span {
7658
- position: absolute;
7659
- top: 35px;
7660
- width: 100px;
7661
- text-align: center;
7662
- -webkit-transform: rotate(-45deg);
7663
- -ms-transform: rotate(-45deg);
7664
- transform: rotate(-45deg);
7665
- display: block;
7666
- text-transform: uppercase;
7667
- }
7668
-
7669
- .premium-badge-triangle.premium-badge-right span {
7670
- -webkit-transform: rotate(45deg);
7671
- -ms-transform: rotate(45deg);
7672
- transform: rotate(45deg);
7673
- right: 0;
7674
- }
7675
-
7676
- .premium-badge-circle {
7677
- min-width: 4em;
7678
- min-height: 4em;
7679
- line-height: 4em;
7680
- text-align: center;
7681
- -webkit-border-radius: 100%;
7682
- border-radius: 100%;
7683
- position: absolute;
7684
- z-index: 1;
7685
- }
7686
-
7687
- .premium-badge-stripe {
7688
- position: absolute;
7689
- -webkit-transform: rotate(90deg);
7690
- -ms-transform: rotate(90deg);
7691
- transform: rotate(90deg);
7692
- width: 15em;
7693
- overflow: hidden;
7694
- height: 15em;
7695
- }
7696
-
7697
- .premium-badge-stripe.premium-badge-left {
7698
- -webkit-transform: rotate(0);
7699
- -ms-transform: rotate(0);
7700
- transform: rotate(0);
7701
- }
7702
-
7703
- .premium-badge-stripe .corner {
7704
- text-align: center;
7705
- left: 0;
7706
- width: 150%;
7707
- -webkit-transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
7708
- -ms-transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
7709
- transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
7710
- margin-top: 35px;
7711
- font-size: 13px;
7712
- line-height: 2;
7713
- font-weight: 800;
7714
- text-transform: uppercase;
7715
- }
7716
-
7717
- .premium-badge-flag .corner {
7718
- text-align: center;
7719
- -webkit-border-radius: 4px 4px 0 4px;
7720
- border-radius: 4px 4px 0 4px;
7721
- padding: 3px 15px;
7722
- position: absolute;
7723
- top: 10%;
7724
- right: -8px;
7725
- }
7726
-
7727
- .premium-badge-flag .corner::before,
7728
- .premium-badge-flag .corner::after {
7729
- content: "";
7730
- display: block;
7731
- position: absolute;
7732
- width: 0;
7733
- height: 0;
7734
- top: 100%;
7735
- right: 0;
7736
- border-bottom: 8px solid transparent;
7737
- }
7738
-
7739
- .elementor-widget-premium-addon-pricing-table .elementor-widget-container {
7740
- overflow: visible !important;
7741
- }
7742
-
7743
- .premium-badge-flag .corner::after {
7744
- border-left: 8px solid rgba(0, 0, 0, 0.2);
7745
- }
7746
-
7747
- .premium-pricing-price-currency {
7748
- position: relative;
7749
- }
7750
-
7751
- .premium-pricing-button-container {
7752
- display: block;
7753
- }
7754
-
7755
- .premium-pricing-list {
7756
- -js-display: flex;
7757
- display: -webkit-box;
7758
- display: -webkit-flex;
7759
- display: -moz-box;
7760
- display: -ms-flexbox;
7761
- display: flex;
7762
- -webkit-box-orient: vertical;
7763
- -webkit-box-direction: normal;
7764
- -webkit-flex-direction: column;
7765
- -moz-box-orient: vertical;
7766
- -moz-box-direction: normal;
7767
- -ms-flex-direction: column;
7768
- flex-direction: column;
7769
- list-style-type: none;
7770
- margin: 0;
7771
- }
7772
-
7773
- .premium-pricing-list .premium-pricing-list-item {
7774
- -js-display: flex;
7775
- display: -webkit-box;
7776
- display: -webkit-flex;
7777
- display: -moz-box;
7778
- display: -ms-flexbox;
7779
- display: flex;
7780
- -webkit-box-align: center;
7781
- -webkit-align-items: center;
7782
- -moz-box-align: center;
7783
- -ms-flex-align: center;
7784
- align-items: center;
7785
- }
7786
-
7787
- .premium-pricing-list .premium-pricing-list-item svg {
7788
- width: 50px;
7789
- height: 50px;
7790
- }
7791
-
7792
- .premium-pricing-list .premium-pricing-list-item img {
7793
- width: 30px;
7794
- height: 30px;
7795
- -o-object-fit: cover;
7796
- object-fit: cover;
7797
- }
7798
-
7799
- .premium-pricing-list .premium-pricing-list-span {
7800
- position: relative;
7801
- }
7802
-
7803
- .premium-pricing-list .list-item-tooltip {
7804
- border-bottom: 1px dotted;
7805
- }
7806
-
7807
- .premium-pricing-list .premium-pricing-list-tooltip {
7808
- position: absolute;
7809
- top: -webkit-calc(100% + 1px);
7810
- top: calc(100% + 1px);
7811
- right: 0;
7812
- visibility: hidden;
7813
- padding: 15px 20px;
7814
- -webkit-border-radius: 5px;
7815
- border-radius: 5px;
7816
- min-width: 200px;
7817
- overflow: hidden;
7818
- text-align: right;
7819
- font-size: 0.8rem;
7820
- color: #fff;
7821
- background-color: #aaa;
7822
- }
7823
-
7824
- .premium-pricing-features-left .premium-pricing-list-span {
7825
- text-align: right;
7826
- }
7827
-
7828
- .premium-pricing-features-center .premium-pricing-list-span {
7829
- text-align: center;
7830
- }
7831
-
7832
- .premium-pricing-features-right .premium-pricing-list-span {
7833
- text-align: left;
7834
- }
7835
-
7836
- .premium-pricing-list-span:hover .premium-pricing-list-tooltip {
7837
- z-index: 99;
7838
- visibility: visible;
7839
- opacity: 1;
7840
- }
7841
-
7842
- .premium-pricing-slashed-price-value {
7843
- display: inline-block;
7844
- font-size: 20px;
7845
- font-weight: 400;
7846
- margin-left: 5px;
7847
- }
7848
-
7849
- .premium-pricing-price-value {
7850
- font-size: 70px;
7851
- }
7852
-
7853
- .premium-pricing-description-container li {
7854
- list-style-position: inside;
7855
- text-indent: -40px;
7856
- }
7857
-
7858
- @-moz-document url-prefix() {
7859
- .premium-pricing-description-container li {
7860
- text-indent: 0px;
7861
- }
7862
- }
7863
-
7864
- .premium-pricing-price-button {
7865
- display: block;
7866
- padding: 6px 12px;
7867
- line-height: 1.42857143;
7868
- text-align: center;
7869
- color: #fff;
7870
- background: #6ec1e4;
7871
- margin-bottom: 0;
7872
- -webkit-transition: all 0.3s ease-in-out;
7873
- transition: all 0.3s ease-in-out;
7874
  }
7875
  /**************** Premium Progress Bar ****************/
7876
  /******************************************************/
3834
  transform: rotateX(180deg);
3835
  }
3836
  }
3837
+ /**************** Premium Bullet List *****************/
3838
+ /******************************************************/
3839
+ .premium-bullet-list-box {
3840
+ -js-display: flex;
3841
+ display: -webkit-box;
3842
+ display: -webkit-flex;
3843
+ display: -moz-box;
3844
+ display: -ms-flexbox;
3845
+ display: flex;
3846
+ -webkit-flex-wrap: wrap;
3847
+ -ms-flex-wrap: wrap;
3848
+ flex-wrap: wrap;
3849
+ -webkit-box-orient: vertical;
3850
+ -webkit-box-direction: normal;
3851
+ -webkit-flex-direction: column;
3852
+ -moz-box-orient: vertical;
3853
+ -moz-box-direction: normal;
3854
+ -ms-flex-direction: column;
3855
+ flex-direction: column;
3856
+ }
3857
+
3858
+ .premium-bullet-list-box .premium-bullet-list-content-grow-lc {
3859
+ -webkit-transform-origin: right center;
3860
+ -ms-transform-origin: right center;
3861
+ transform-origin: right center;
3862
+ }
3863
+
3864
+ .premium-bullet-list-box .premium-bullet-list-content-grow-rc {
3865
+ -webkit-transform-origin: left center;
3866
+ -ms-transform-origin: left center;
3867
+ transform-origin: left center;
3868
+ }
3869
+
3870
+ .premium-bullet-list-box .premium-bullet-list-content-grow-cc {
3871
+ -webkit-transform-origin: center center;
3872
+ -ms-transform-origin: center center;
3873
+ transform-origin: center center;
3874
+ }
3875
+
3876
+ .premium-bullet-list-content {
3877
+ -js-display: flex;
3878
+ display: -webkit-box;
3879
+ display: -webkit-flex;
3880
+ display: -moz-box;
3881
+ display: -ms-flexbox;
3882
+ display: flex;
3883
+ -webkit-transition: all 0.3s ease-in-out;
3884
+ transition: all 0.3s ease-in-out;
3885
+ width: auto;
3886
+ position: relative;
3887
+ }
3888
+
3889
+ .premium-bullet-list-content .premium-bullet-list-text span,
3890
+ .premium-bullet-list-content .premium-bullet-list-wrapper {
3891
+ display: inline-block;
3892
+ -webkit-align-self: center;
3893
+ -ms-flex-item-align: center;
3894
+ align-self: center;
3895
+ -webkit-transition: all 0.3s ease-in-out;
3896
+ transition: all 0.3s ease-in-out;
3897
+ }
3898
+
3899
+ .premium-bullet-list-content .premium-bullet-list-text span {
3900
+ margin: 0 5px;
3901
+ -webkit-box-flex: 1;
3902
+ -webkit-flex: 1;
3903
+ -moz-box-flex: 1;
3904
+ -ms-flex: 1;
3905
+ flex: 1;
3906
+ }
3907
+
3908
+ .premium-bullet-list-content .premium-bullet-list-icon-text p {
3909
+ font-size: 18px;
3910
+ background-color: #eee;
3911
+ padding: 1px 5px;
3912
+ -webkit-border-radius: 2px;
3913
+ border-radius: 2px;
3914
+ }
3915
+
3916
+ .premium-bullet-list-content .premium-bullet-list-text span,
3917
+ .premium-bullet-list-content .premium-bullet-list-icon-text p,
3918
+ .premium-bullet-list-content .premium-bullet-list-wrapper img,
3919
+ .premium-bullet-list-content .premium-bullet-list-wrapper svg,
3920
+ .premium-bullet-list-content .premium-bullet-list-wrapper i {
3921
+ -webkit-transition: all 0.3s ease-in-out;
3922
+ transition: all 0.3s ease-in-out;
3923
+ }
3924
+
3925
+ .premium-bullet-list-content .premium-bullet-list-wrapper {
3926
+ position: relative;
3927
+ line-height: 0;
3928
+ }
3929
+
3930
+ .premium-bullet-list-content .premium-bullet-list-wrapper img,
3931
+ .premium-bullet-list-content .premium-bullet-list-wrapper svg {
3932
+ width: 30px !important;
3933
+ height: 30px !important;
3934
+ position: relative;
3935
+ z-index: 500;
3936
+ }
3937
+
3938
+ .premium-bullet-list-content .premium-bullet-list-wrapper i {
3939
+ width: 1.25em;
3940
+ }
3941
+
3942
+ .premium-bullet-list-content .premium-bullet-list-wrapper i,
3943
+ .premium-bullet-list-content .premium-bullet-list-wrapper .premium-bullet-list-icon-text {
3944
+ position: relative;
3945
+ z-index: 500;
3946
+ }
3947
+
3948
+ .premium-bullet-list-content .premium-bullet-list-link {
3949
+ position: absolute;
3950
+ top: 0;
3951
+ right: 0;
3952
+ width: 100%;
3953
+ height: 100%;
3954
+ z-index: 1000;
3955
+ }
3956
+
3957
+ .premium-bullet-list-content:not(:last-of-type) .premium-bullet-list-connector {
3958
+ width: 100%;
3959
+ height: 100%;
3960
+ position: absolute;
3961
+ top: 0.5em;
3962
+ z-index: 100;
3963
+ -js-display: flex;
3964
+ display: -webkit-box;
3965
+ display: -webkit-flex;
3966
+ display: -moz-box;
3967
+ display: -ms-flexbox;
3968
+ display: flex;
3969
+ -webkit-box-pack: center;
3970
+ -webkit-justify-content: center;
3971
+ -moz-box-pack: center;
3972
+ -ms-flex-pack: center;
3973
+ justify-content: center;
3974
+ }
3975
+
3976
+ .premium-bullet-list-content:not(:last-of-type) .premium-bullet-list-connector .premium-icon-connector-content:after {
3977
+ content: "";
3978
+ border-left-width: 1px;
3979
+ border-left-style: solid;
3980
+ border-color: #333333;
3981
+ display: block;
3982
+ height: 100%;
3983
+ }
3984
+
3985
+ li.premium-bullet-list-content.premium-bullet-list-content-inline {
3986
+ -webkit-align-self: center;
3987
+ -ms-flex-item-align: center;
3988
+ align-self: center;
3989
+ z-index: 2;
3990
+ }
3991
+
3992
+ li.premium-bullet-list-content.premium-bullet-list-content-inline:not(:first-child) {
3993
+ margin: 0 3px;
3994
+ }
3995
+
3996
+ li.premium-bullet-list-content.premium-bullet-list-content-inline:first-child {
3997
+ margin: 0 0 0 3px;
3998
+ }
3999
+
4000
+ .premium-bullet-list-divider:not(:last-child) {
4001
+ width: 100%;
4002
+ -webkit-box-flex: 0;
4003
+ -webkit-flex: 0 0 100%;
4004
+ -moz-box-flex: 0;
4005
+ -ms-flex: 0 0 100%;
4006
+ flex: 0 0 100%;
4007
+ overflow: hidden;
4008
+ }
4009
+
4010
+ .premium-bullet-list-divider:not(:last-child):after {
4011
+ content: "";
4012
+ display: block;
4013
+ border-top-style: solid;
4014
+ border-top-width: 1px;
4015
+ }
4016
+
4017
+ .premium-bullet-list-divider-inline:not(:last-child) {
4018
+ float: left;
4019
+ display: inline-block;
4020
+ position: relative;
4021
+ height: 100%;
4022
+ overflow: hidden;
4023
+ -webkit-align-self: center;
4024
+ -ms-flex-item-align: center;
4025
+ align-self: center;
4026
+ margin: 0 3px;
4027
+ }
4028
+
4029
+ .premium-bullet-list-divider-inline:not(:last-child):after {
4030
+ content: "";
4031
+ display: block;
4032
+ border-right-width: 1px;
4033
+ height: 33px;
4034
+ border-right-style: solid;
4035
+ }
4036
+
4037
+ .premium-bullet-list-icon-text {
4038
+ line-height: 1.5;
4039
+ }
4040
+
4041
+ .premium-bullet-list-icon-text p,
4042
+ ul.premium-bullet-list-box,
4043
+ li.premium-bullet-list-content {
4044
+ margin: 0;
4045
+ }
4046
+
4047
+ .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-wrapper i,
4048
+ .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-text span,
4049
+ .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-icon-text p {
4050
+ color: transparent !important;
4051
+ text-shadow: 0 0 3px #aaa;
4052
+ }
4053
+
4054
+ .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-icon-connector-content,
4055
+ .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-wrapper .premium-lottie-animation svg,
4056
+ .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-wrapper img,
4057
+ .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-badge {
4058
+ -webkit-filter: blur(3px);
4059
+ filter: blur(3px);
4060
+ }
4061
+
4062
+ .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-wrapper i,
4063
+ .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-text span,
4064
+ .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-icon-text p {
4065
+ color: #aaa !important;
4066
+ text-shadow: 0 0px 0 transparent;
4067
+ }
4068
+
4069
+ .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-icon-connector-content,
4070
+ .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-wrapper .premium-lottie-animation svg,
4071
+ .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-wrapper img,
4072
+ .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-badge {
4073
+ -webkit-filter: none;
4074
+ filter: none;
4075
+ }
4076
+
4077
+ .premium-bullet-list-content .premium-bullet-list-badge {
4078
+ font-size: 11px;
4079
+ top: auto;
4080
+ min-width: -webkit-max-content;
4081
+ min-width: -moz-max-content;
4082
+ min-width: max-content;
4083
+ height: -webkit-fit-content;
4084
+ height: -moz-fit-content;
4085
+ height: fit-content;
4086
+ }
4087
+
4088
+ .premium-bullet-list-content .premium-bullet-list-icon-text p {
4089
+ font-size: 13px;
4090
+ }
4091
+
4092
+ .premium-bullet-list-gradient-effect[data-text] {
4093
+ display: inline-block;
4094
+ position: relative;
4095
+ text-decoration: none;
4096
+ }
4097
+
4098
+ .premium-bullet-list-gradient-effect[data-text]::before {
4099
+ content: attr(data-text);
4100
+ position: absolute;
4101
+ z-index: 1;
4102
+ overflow: hidden;
4103
+ -webkit-clip-path: polygon(100% 100%, 100% 100%, 50% 50%);
4104
+ clip-path: polygon(100% 100%, 100% 100%, 50% 50%);
4105
+ -webkit-background-clip: text;
4106
+ background-clip: text;
4107
+ -webkit-text-fill-color: transparent;
4108
+ -webkit-transition: all 0.4s ease;
4109
+ transition: all 0.4s ease;
4110
+ }
4111
+
4112
+ .premium-bullet-list-content:hover .premium-bullet-list-gradient-effect[data-text]::before,
4113
+ .premium-bullet-list-content:focus .premium-bullet-list-gradient-effect[data-text]::before {
4114
+ -webkit-animation: rtlgradient 1s forwards;
4115
+ animation: rtlgradient 1s forwards;
4116
+ }
4117
+
4118
+ @-webkit-keyframes rtlgradient {
4119
+ 0% {
4120
+ -webkit-clip-path: circle(0% at 150% 50%);
4121
+ clip-path: circle(0% at 150% 50%);
4122
+ }
4123
+
4124
+ 100% {
4125
+ -webkit-clip-path: circle(100% at 50% 50%);
4126
+ clip-path: circle(100% at 50% 50%);
4127
+ }
4128
+ }
4129
+
4130
+ @keyframes rtlgradient {
4131
+ 0% {
4132
+ -webkit-clip-path: circle(0% at 150% 50%);
4133
+ clip-path: circle(0% at 150% 50%);
4134
+ }
4135
+
4136
+ 100% {
4137
+ -webkit-clip-path: circle(100% at 50% 50%);
4138
+ clip-path: circle(100% at 50% 50%);
4139
+ }
4140
+ }
4141
+
4142
+ ul[data-list-animation*="animated-"] .premium-bullet-list-divider,
4143
+ ul[data-list-animation*="animated-"] .premium-bullet-list-content,
4144
+ ul[data-list-animation*="animated-"] .premium-bullet-list-divider-inline {
4145
+ opacity: 0;
4146
+ }
4147
+
4148
+ .premium-bullet-list-content-grow-effect:hover {
4149
+ -webkit-transform: scale(1.07);
4150
+ -ms-transform: scale(1.07);
4151
+ transform: scale(1.07);
4152
+ }
4153
+
4154
+ @-webkit-keyframes spin {
4155
+ 100% {
4156
+ -webkit-transform: rotate(360deg);
4157
+ transform: rotate(360deg);
4158
+ }
4159
+ }
4160
+
4161
+ @keyframes spin {
4162
+ 100% {
4163
+ -webkit-transform: rotate(360deg);
4164
+ transform: rotate(360deg);
4165
+ }
4166
  }
4167
  /**************** Premium Image Button ***********/
4168
  /*************************************************/
7509
  padding-right: 10px;
7510
  }
7511
 
7512
+ .premium-person-style3 .premium-person-social-list {
7513
+ -js-display: flex;
7514
+ display: -webkit-box;
7515
+ display: -webkit-flex;
7516
+ display: -moz-box;
7517
+ display: -ms-flexbox;
7518
+ display: flex;
7519
+ -webkit-box-orient: vertical;
7520
+ -webkit-box-direction: normal;
7521
+ -webkit-flex-direction: column;
7522
+ -moz-box-orient: vertical;
7523
+ -moz-box-direction: normal;
7524
+ -ms-flex-direction: column;
7525
+ flex-direction: column;
7526
+ -webkit-transform: translateY(20px);
7527
+ -ms-transform: translateY(20px);
7528
+ transform: translateY(20px);
7529
+ opacity: 0;
7530
+ -webkit-transition: all 0.3s ease;
7531
+ transition: all 0.3s ease;
7532
+ }
7533
+
7534
+ .premium-person-style3 .premium-person-list-item {
7535
+ line-height: 0;
7536
+ }
7537
+
7538
+ .premium-person-style3 .premium-person-list-item a {
7539
+ padding: 5px 0 0 10px;
7540
+ margin: 5px 0;
7541
+ }
7542
+
7543
+ .premium-person-style3 .premium-person-container:hover .premium-person-title {
7544
+ opacity: 1;
7545
+ }
7546
+
7547
+ .premium-person-style3 .premium-person-container:hover .premium-person-social-list {
7548
+ opacity: 1;
7549
+ -webkit-transform: translateY(0);
7550
+ -ms-transform: translateY(0);
7551
+ transform: translateY(0);
7552
+ }
7553
+
7554
+ .premium-persons-title-cw .premium-person-title {
7555
+ -webkit-transform: translateX(-15px) rotate(-90deg);
7556
+ -ms-transform: translateX(-15px) rotate(-90deg);
7557
+ transform: translateX(-15px) rotate(-90deg);
7558
+ -webkit-transform-origin: top;
7559
+ -ms-transform-origin: top;
7560
+ transform-origin: top;
7561
+ }
7562
+
7563
+ .premium-persons-title-cw .premium-person-container:hover .premium-person-title {
7564
+ -webkit-transform: translateX(0) rotate(-90deg);
7565
+ -ms-transform: translateX(0) rotate(-90deg);
7566
+ transform: translateX(0) rotate(-90deg);
7567
+ }
7568
+
7569
+ .premium-persons-title-ccw .premium-person-title {
7570
+ width: auto;
7571
+ margin-left: 20px;
7572
+ -webkit-transform: translateX(-15px) rotate(90deg);
7573
+ -ms-transform: translateX(-15px) rotate(90deg);
7574
+ transform: translateX(-15px) rotate(90deg);
7575
+ -webkit-transform-origin: center left;
7576
+ -ms-transform-origin: center left;
7577
+ transform-origin: center left;
7578
+ }
7579
+
7580
+ .premium-persons-title-ccw .premium-person-container:hover .premium-person-title {
7581
+ -webkit-transform: translateX(0) rotate(90deg);
7582
+ -ms-transform: translateX(0) rotate(90deg);
7583
+ transform: translateX(0) rotate(90deg);
7584
+ }
7585
+ /**************** Premium Pricing Table ****************/
7586
+ /*******************************************************/
7587
+ .premium-pricing-table-container {
7588
+ position: relative;
7589
+ text-align: center;
7590
+ display: inline-block;
7591
+ width: 100%;
7592
+ -webkit-transition: all 0.3s ease-in-out;
7593
+ transition: all 0.3s ease-in-out;
7594
+ }
7595
+
7596
+ .premium-pricing-icon-container {
7597
+ -js-display: flex;
7598
+ display: -webkit-box;
7599
+ display: -webkit-flex;
7600
+ display: -moz-box;
7601
+ display: -ms-flexbox;
7602
+ display: flex;
7603
+ -webkit-box-pack: center;
7604
+ -webkit-justify-content: center;
7605
+ -moz-box-pack: center;
7606
+ -ms-flex-pack: center;
7607
+ justify-content: center;
7608
+ line-height: 0;
7609
+ }
7610
+
7611
+ .premium-pricing-icon-container .premium-pricing-icon {
7612
+ display: inline-block;
7613
+ }
7614
+
7615
+ .premium-pricing-icon-container .premium-pricing-image {
7616
+ overflow: hidden;
7617
+ }
7618
+
7619
+ .premium-pricing-icon-container .premium-pricing-image img {
7620
+ width: 25px;
7621
+ height: 25px;
7622
+ -o-object-fit: cover;
7623
+ object-fit: cover;
7624
+ }
7625
+
7626
+ .premium-badge-left {
7627
+ position: absolute;
7628
+ top: 0;
7629
+ }
7630
+
7631
+ .premium-badge-right {
7632
+ position: absolute;
7633
+ top: 0;
7634
+ right: 0;
7635
+ }
7636
+
7637
+ .premium-badge-left {
7638
+ left: 0;
7639
+ }
7640
+
7641
+ .premium-badge-triangle.premium-badge-left .corner {
7642
+ width: 0;
7643
+ height: 0;
7644
+ border-top: 150px solid;
7645
+ border-bottom: 150px solid transparent;
7646
+ border-right: 150px solid transparent;
7647
+ }
7648
+
7649
+ .premium-badge-triangle.premium-badge-right .corner {
7650
+ width: 0;
7651
+ height: 0;
7652
+ border-bottom: 150px solid transparent;
7653
+ border-right: 150px solid;
7654
+ border-left: 150px solid transparent;
7655
+ }
7656
+
7657
+ .premium-badge-triangle span {
7658
+ position: absolute;
7659
+ top: 35px;
7660
+ width: 100px;
7661
+ text-align: center;
7662
+ -webkit-transform: rotate(-45deg);
7663
+ -ms-transform: rotate(-45deg);
7664
+ transform: rotate(-45deg);
7665
+ display: block;
7666
+ text-transform: uppercase;
7667
+ }
7668
+
7669
+ .premium-badge-triangle.premium-badge-right span {
7670
+ -webkit-transform: rotate(45deg);
7671
+ -ms-transform: rotate(45deg);
7672
+ transform: rotate(45deg);
7673
+ right: 0;
7674
+ }
7675
+
7676
+ .premium-badge-circle {
7677
+ min-width: 4em;
7678
+ min-height: 4em;
7679
+ line-height: 4em;
7680
+ text-align: center;
7681
+ -webkit-border-radius: 100%;
7682
+ border-radius: 100%;
7683
+ position: absolute;
7684
+ z-index: 1;
7685
+ }
7686
+
7687
+ .premium-badge-stripe {
7688
+ position: absolute;
7689
+ -webkit-transform: rotate(90deg);
7690
+ -ms-transform: rotate(90deg);
7691
+ transform: rotate(90deg);
7692
+ width: 15em;
7693
+ overflow: hidden;
7694
+ height: 15em;
7695
+ }
7696
+
7697
+ .premium-badge-stripe.premium-badge-left {
7698
+ -webkit-transform: rotate(0);
7699
+ -ms-transform: rotate(0);
7700
+ transform: rotate(0);
7701
+ }
7702
+
7703
+ .premium-badge-stripe .corner {
7704
+ text-align: center;
7705
+ left: 0;
7706
+ width: 150%;
7707
+ -webkit-transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
7708
+ -ms-transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
7709
+ transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
7710
+ margin-top: 35px;
7711
+ font-size: 13px;
7712
+ line-height: 2;
7713
+ font-weight: 800;
7714
+ text-transform: uppercase;
7715
+ }
7716
+
7717
+ .premium-badge-flag .corner {
7718
+ text-align: center;
7719
+ -webkit-border-radius: 4px 4px 0 4px;
7720
+ border-radius: 4px 4px 0 4px;
7721
+ padding: 3px 15px;
7722
+ position: absolute;
7723
+ top: 10%;
7724
+ right: -8px;
7725
+ }
7726
+
7727
+ .premium-badge-flag .corner::before,
7728
+ .premium-badge-flag .corner::after {
7729
+ content: "";
7730
+ display: block;
7731
+ position: absolute;
7732
+ width: 0;
7733
+ height: 0;
7734
+ top: 100%;
7735
+ right: 0;
7736
+ border-bottom: 8px solid transparent;
7737
+ }
7738
+
7739
+ .elementor-widget-premium-addon-pricing-table .elementor-widget-container {
7740
+ overflow: visible !important;
7741
+ }
7742
+
7743
+ .premium-badge-flag .corner::after {
7744
+ border-left: 8px solid rgba(0, 0, 0, 0.2);
7745
+ }
7746
+
7747
+ .premium-pricing-price-currency {
7748
+ position: relative;
7749
+ }
7750
+
7751
+ .premium-pricing-button-container {
7752
+ display: block;
7753
+ }
7754
+
7755
+ .premium-pricing-list {
7756
+ -js-display: flex;
7757
+ display: -webkit-box;
7758
+ display: -webkit-flex;
7759
+ display: -moz-box;
7760
+ display: -ms-flexbox;
7761
+ display: flex;
7762
+ -webkit-box-orient: vertical;
7763
+ -webkit-box-direction: normal;
7764
+ -webkit-flex-direction: column;
7765
+ -moz-box-orient: vertical;
7766
+ -moz-box-direction: normal;
7767
+ -ms-flex-direction: column;
7768
+ flex-direction: column;
7769
+ list-style-type: none;
7770
+ margin: 0;
7771
+ }
7772
+
7773
+ .premium-pricing-list .premium-pricing-list-item {
7774
+ -js-display: flex;
7775
+ display: -webkit-box;
7776
+ display: -webkit-flex;
7777
+ display: -moz-box;
7778
+ display: -ms-flexbox;
7779
+ display: flex;
7780
+ -webkit-box-align: center;
7781
+ -webkit-align-items: center;
7782
+ -moz-box-align: center;
7783
+ -ms-flex-align: center;
7784
+ align-items: center;
7785
+ }
7786
+
7787
+ .premium-pricing-list .premium-pricing-list-item svg {
7788
+ width: 50px;
7789
+ height: 50px;
7790
+ }
7791
+
7792
+ .premium-pricing-list .premium-pricing-list-item img {
7793
+ width: 30px;
7794
+ height: 30px;
7795
+ -o-object-fit: cover;
7796
+ object-fit: cover;
7797
+ }
7798
+
7799
+ .premium-pricing-list .premium-pricing-list-span {
7800
+ position: relative;
7801
+ }
7802
+
7803
+ .premium-pricing-list .list-item-tooltip {
7804
+ border-bottom: 1px dotted;
7805
+ }
7806
+
7807
+ .premium-pricing-list .premium-pricing-list-tooltip {
7808
+ position: absolute;
7809
+ top: -webkit-calc(100% + 1px);
7810
+ top: calc(100% + 1px);
7811
+ right: 0;
7812
+ visibility: hidden;
7813
+ padding: 15px 20px;
7814
+ -webkit-border-radius: 5px;
7815
+ border-radius: 5px;
7816
+ min-width: 200px;
7817
+ overflow: hidden;
7818
+ text-align: right;
7819
+ font-size: 0.8rem;
7820
+ color: #fff;
7821
+ background-color: #aaa;
7822
+ }
7823
+
7824
+ .premium-pricing-features-left .premium-pricing-list-span {
7825
+ text-align: right;
7826
  }
7827
 
7828
+ .premium-pricing-features-center .premium-pricing-list-span {
7829
+ text-align: center;
7830
  }
7831
 
7832
+ .premium-pricing-features-right .premium-pricing-list-span {
7833
+ text-align: left;
 
7834
  }
7835
 
7836
+ .premium-pricing-list-span:hover .premium-pricing-list-tooltip {
7837
+ z-index: 99;
7838
+ visibility: visible;
7839
  opacity: 1;
7840
  }
7841
 
7842
+ .premium-pricing-slashed-price-value {
7843
+ display: inline-block;
7844
+ font-size: 20px;
7845
+ font-weight: 400;
7846
+ margin-left: 5px;
7847
  }
7848
 
7849
+ .premium-pricing-price-value {
7850
+ font-size: 70px;
 
 
 
 
 
7851
  }
7852
 
7853
+ .premium-pricing-description-container li {
7854
+ list-style-position: inside;
7855
+ text-indent: -40px;
 
7856
  }
7857
 
7858
+ @-moz-document url-prefix() {
7859
+ .premium-pricing-description-container li {
7860
+ text-indent: 0px;
7861
+ }
 
 
 
 
 
7862
  }
7863
 
7864
+ .premium-pricing-price-button {
7865
+ display: block;
7866
+ padding: 6px 12px;
7867
+ line-height: 1.42857143;
7868
+ text-align: center;
7869
+ color: #fff;
7870
+ background: #6ec1e4;
7871
+ margin-bottom: 0;
7872
+ -webkit-transition: all 0.3s ease-in-out;
7873
+ transition: all 0.3s ease-in-out;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7874
  }
7875
  /**************** Premium Progress Bar ****************/
7876
  /******************************************************/
assets/frontend/css/premium-addons.css CHANGED
@@ -3229,259 +3229,259 @@ span.icon.flex-width {
3229
  -webkit-transform: rotateX(180deg);
3230
  transform: rotateX(180deg); } }
3231
 
3232
- /**************** Premium Bullet List ****************/
3233
- /*****************************************************/
3234
- .premium-bullet-list-box {
3235
- -js-display: flex;
3236
- display: -webkit-box;
3237
- display: -webkit-flex;
3238
- display: -moz-box;
3239
- display: -ms-flexbox;
3240
- display: flex;
3241
- -webkit-flex-wrap: wrap;
3242
- -ms-flex-wrap: wrap;
3243
- flex-wrap: wrap;
3244
- -webkit-box-orient: vertical;
3245
- -webkit-box-direction: normal;
3246
- -webkit-flex-direction: column;
3247
- -moz-box-orient: vertical;
3248
- -moz-box-direction: normal;
3249
- -ms-flex-direction: column;
3250
- flex-direction: column; }
3251
- .premium-bullet-list-box .premium-bullet-list-content-grow-lc {
3252
- -webkit-transform-origin: left center;
3253
- -ms-transform-origin: left center;
3254
- transform-origin: left center; }
3255
- .premium-bullet-list-box .premium-bullet-list-content-grow-rc {
3256
- -webkit-transform-origin: right center;
3257
- -ms-transform-origin: right center;
3258
- transform-origin: right center; }
3259
- .premium-bullet-list-box .premium-bullet-list-content-grow-cc {
3260
- -webkit-transform-origin: center center;
3261
- -ms-transform-origin: center center;
3262
- transform-origin: center center; }
3263
-
3264
- .premium-bullet-list-content {
3265
- -js-display: flex;
3266
- display: -webkit-box;
3267
- display: -webkit-flex;
3268
- display: -moz-box;
3269
- display: -ms-flexbox;
3270
- display: flex;
3271
- -webkit-transition: all 0.3s ease-in-out;
3272
- transition: all 0.3s ease-in-out;
3273
- width: auto;
3274
- position: relative; }
3275
- .premium-bullet-list-content .premium-bullet-list-text span,
3276
- .premium-bullet-list-content .premium-bullet-list-wrapper {
3277
- display: inline-block;
3278
- -webkit-align-self: center;
3279
- -ms-flex-item-align: center;
3280
- align-self: center;
3281
- -webkit-transition: all 0.3s ease-in-out;
3282
- transition: all 0.3s ease-in-out; }
3283
- .premium-bullet-list-content .premium-bullet-list-text span {
3284
- margin: 0 5px;
3285
- -webkit-box-flex: 1;
3286
- -webkit-flex: 1;
3287
- -moz-box-flex: 1;
3288
- -ms-flex: 1;
3289
- flex: 1; }
3290
- .premium-bullet-list-content .premium-bullet-list-icon-text p {
3291
- font-size: 18px;
3292
- background-color: #eee;
3293
- padding: 1px 5px;
3294
- -webkit-border-radius: 2px;
3295
- border-radius: 2px; }
3296
- .premium-bullet-list-content .premium-bullet-list-text span,
3297
- .premium-bullet-list-content .premium-bullet-list-icon-text p,
3298
- .premium-bullet-list-content .premium-bullet-list-wrapper img,
3299
- .premium-bullet-list-content .premium-bullet-list-wrapper svg,
3300
- .premium-bullet-list-content .premium-bullet-list-wrapper i {
3301
- -webkit-transition: all 0.3s ease-in-out;
3302
- transition: all 0.3s ease-in-out; }
3303
- .premium-bullet-list-content .premium-bullet-list-wrapper {
3304
- position: relative;
3305
- line-height: 0; }
3306
- .premium-bullet-list-content .premium-bullet-list-wrapper img,
3307
- .premium-bullet-list-content .premium-bullet-list-wrapper svg {
3308
- width: 30px !important;
3309
- height: 30px !important;
3310
- position: relative;
3311
- z-index: 500; }
3312
- .premium-bullet-list-content .premium-bullet-list-wrapper i,
3313
- .premium-bullet-list-content .premium-bullet-list-wrapper .premium-bullet-list-icon-text {
3314
- position: relative;
3315
- z-index: 500; }
3316
- .premium-bullet-list-content .premium-bullet-list-wrapper i {
3317
- width: 1.25em; }
3318
- .premium-bullet-list-content .premium-bullet-list-link {
3319
- position: absolute;
3320
- top: 0;
3321
- left: 0;
3322
- width: 100%;
3323
- height: 100%;
3324
- z-index: 1000; }
3325
-
3326
- .premium-bullet-list-content:not(:last-of-type) .premium-bullet-list-connector {
3327
- width: 100%;
3328
- height: 100%;
3329
- position: absolute;
3330
- top: 0.5em;
3331
- z-index: 100;
3332
- -js-display: flex;
3333
- display: -webkit-box;
3334
- display: -webkit-flex;
3335
- display: -moz-box;
3336
- display: -ms-flexbox;
3337
- display: flex;
3338
- -webkit-box-pack: center;
3339
- -webkit-justify-content: center;
3340
- -moz-box-pack: center;
3341
- -ms-flex-pack: center;
3342
- justify-content: center; }
3343
- .premium-bullet-list-content:not(:last-of-type) .premium-bullet-list-connector .premium-icon-connector-content:after {
3344
- content: "";
3345
- border-right-width: 1px;
3346
- border-right-style: solid;
3347
- border-color: #333333;
3348
- display: block;
3349
- height: 100%; }
3350
-
3351
- li.premium-bullet-list-content.premium-bullet-list-content-inline {
3352
- -webkit-align-self: center;
3353
- -ms-flex-item-align: center;
3354
- align-self: center;
3355
- z-index: 2; }
3356
-
3357
- li.premium-bullet-list-content.premium-bullet-list-content-inline:not(:first-child) {
3358
- margin: 0 3px; }
3359
-
3360
- li.premium-bullet-list-content.premium-bullet-list-content-inline:first-child {
3361
- margin: 0 3px 0 0; }
3362
-
3363
- .premium-bullet-list-divider:not(:last-child) {
3364
- width: 100%;
3365
- -webkit-box-flex: 0;
3366
- -webkit-flex: 0 0 100%;
3367
- -moz-box-flex: 0;
3368
- -ms-flex: 0 0 100%;
3369
- flex: 0 0 100%;
3370
- overflow: hidden; }
3371
-
3372
- .premium-bullet-list-divider:not(:last-child):after {
3373
- content: "";
3374
- display: block;
3375
- border-top-style: solid;
3376
- border-top-width: 1px; }
3377
-
3378
- .premium-bullet-list-divider-inline:not(:last-child) {
3379
- float: right;
3380
- display: inline-block;
3381
- position: relative;
3382
- height: 100%;
3383
- overflow: hidden;
3384
- -webkit-align-self: center;
3385
- -ms-flex-item-align: center;
3386
- align-self: center;
3387
- margin: 0 3px; }
3388
-
3389
- .premium-bullet-list-divider-inline:not(:last-child):after {
3390
- content: "";
3391
- display: block;
3392
- border-left-width: 1px;
3393
- height: 33px;
3394
- border-left-style: solid; }
3395
-
3396
- .premium-bullet-list-icon-text {
3397
- line-height: 1.5; }
3398
-
3399
- .premium-bullet-list-icon-text p,
3400
- ul.premium-bullet-list-box,
3401
- li.premium-bullet-list-content {
3402
- margin: 0; }
3403
-
3404
- .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-wrapper i,
3405
- .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-text span,
3406
- .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-icon-text p {
3407
- color: transparent !important;
3408
- text-shadow: 0 0 3px #aaa; }
3409
-
3410
- .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-icon-connector-content,
3411
- .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-wrapper .premium-lottie-animation svg,
3412
- .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-wrapper img,
3413
- .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-badge {
3414
- -webkit-filter: blur(3px);
3415
- filter: blur(3px); }
3416
-
3417
- .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-wrapper i,
3418
- .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-text span,
3419
- .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-icon-text p {
3420
- color: #aaa !important;
3421
- text-shadow: 0 0px 0 transparent; }
3422
-
3423
- .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-icon-connector-content,
3424
- .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-wrapper .premium-lottie-animation svg,
3425
- .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-wrapper img,
3426
- .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-badge {
3427
- -webkit-filter: none;
3428
- filter: none; }
3429
-
3430
- .premium-bullet-list-content .premium-bullet-list-badge {
3431
- font-size: 11px;
3432
- top: auto;
3433
- min-width: -webkit-max-content;
3434
- min-width: -moz-max-content;
3435
- min-width: max-content;
3436
- height: -webkit-fit-content;
3437
- height: -moz-fit-content;
3438
- height: fit-content; }
3439
-
3440
- .premium-bullet-list-content .premium-bullet-list-icon-text p {
3441
- font-size: 13px; }
3442
-
3443
- .premium-bullet-list-gradient-effect[data-text] {
3444
- display: inline-block;
3445
- position: relative;
3446
- text-decoration: none; }
3447
-
3448
- .premium-bullet-list-gradient-effect[data-text]::before {
3449
- content: attr(data-text);
3450
- position: absolute;
3451
- z-index: 1;
3452
- overflow: hidden;
3453
- -webkit-clip-path: polygon(0 0, 1px 0, 1px 100%, 0 100%);
3454
- clip-path: polygon(0 0, 1px 0, 1px 100%, 0 100%);
3455
- -webkit-background-clip: text;
3456
- background-clip: text;
3457
- -webkit-text-fill-color: transparent;
3458
- -webkit-transition: all 0.4s ease;
3459
- transition: all 0.4s ease; }
3460
-
3461
- .premium-bullet-list-content:hover .premium-bullet-list-gradient-effect[data-text]::before,
3462
- .premium-bullet-list-content:focus .premium-bullet-list-gradient-effect[data-text]::before {
3463
- -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
3464
- clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); }
3465
-
3466
- ul[data-list-animation*="animated-"] .premium-bullet-list-divider,
3467
- ul[data-list-animation*="animated-"] .premium-bullet-list-content,
3468
- ul[data-list-animation*="animated-"] .premium-bullet-list-divider-inline {
3469
- opacity: 0; }
3470
-
3471
- .premium-bullet-list-content-grow-effect:hover {
3472
- -webkit-transform: scale(1.07);
3473
- -ms-transform: scale(1.07);
3474
- transform: scale(1.07); }
3475
-
3476
- @-webkit-keyframes spin {
3477
- 100% {
3478
- -webkit-transform: rotate(360deg);
3479
- transform: rotate(360deg); } }
3480
-
3481
- @keyframes spin {
3482
- 100% {
3483
- -webkit-transform: rotate(360deg);
3484
- transform: rotate(360deg); } }
3485
 
3486
  /**************** Premium Image Button ***********/
3487
  /*************************************************/
@@ -4034,485 +4034,485 @@ ul[data-list-animation*="animated-"] .premium-bullet-list-divider-inline {
4034
  -webkit-transition: all 0.3s ease-in-out;
4035
  transition: all 0.3s ease-in-out; }
4036
 
4037
- /******** Premium Media Grid ********/
4038
- /************************************/
4039
- .premium-img-gallery-filter,
4040
- .premium-blog-filter {
4041
- -js-display: flex;
4042
- display: -webkit-box;
4043
- display: -webkit-flex;
4044
- display: -moz-box;
4045
- display: -ms-flexbox;
4046
- display: flex;
4047
- -webkit-box-align: center;
4048
- -webkit-align-items: center;
4049
- -moz-box-align: center;
4050
- -ms-flex-align: center;
4051
- align-items: center;
4052
- -webkit-box-pack: center;
4053
- -webkit-justify-content: center;
4054
- -moz-box-pack: center;
4055
- -ms-flex-pack: center;
4056
- justify-content: center; }
4057
-
4058
- .premium-img-gallery {
4059
- clear: both;
4060
- overflow: hidden; }
4061
-
4062
- .premium-gallery-container .premium-gallery-item {
4063
- padding: 10px;
4064
- float: left; }
4065
-
4066
- .premium-gallery-container .grid-sizer {
4067
- width: 33.33%; }
4068
-
4069
- .premium-gallery-container .pa-gallery-item {
4070
- padding: 10px; }
4071
-
4072
- .premium-img-gallery-filter .premium-gallery-cats-container li a.category,
4073
- .premium-blog-filter .premium-blog-filters-container li a.category {
4074
- outline: none;
4075
- text-decoration: none;
4076
- -webkit-border-radius: 75px;
4077
- border-radius: 75px;
4078
- margin: 15px 5px 20px;
4079
- padding: 7px 20px;
4080
- -webkit-transition: all 0.3s ease-in-out;
4081
- transition: all 0.3s ease-in-out; }
4082
-
4083
- .pa-gallery-img {
4084
- position: relative; }
4085
- .pa-gallery-img .pa-gallery-whole-link {
4086
- position: absolute;
4087
- top: 0;
4088
- left: 0;
4089
- width: 100%;
4090
- height: 100%;
4091
- z-index: 2; }
4092
- .pa-gallery-img .pa-gallery-whole-link span {
4093
- display: none; }
4094
- .pa-gallery-img.style2 .pa-gallery-whole-link, .pa-gallery-img.style3 .pa-gallery-whole-link {
4095
- z-index: 99; }
4096
-
4097
- .pa-gallery-img-container {
4098
- overflow: hidden;
4099
- -webkit-backface-visibility: hidden;
4100
- backface-visibility: hidden;
4101
- -webkit-transform: translate3d(0, 0, 0);
4102
- transform: translate3d(0, 0, 0); }
4103
- .pa-gallery-img-container img {
4104
- display: block;
4105
- width: 100%;
4106
- -webkit-transition: all 0.3s ease-in-out;
4107
- transition: all 0.3s ease-in-out; }
4108
-
4109
- .premium-img-gallery.gray img {
4110
- -webkit-filter: grayscale(100%);
4111
- filter: grayscale(100%); }
4112
-
4113
- .premium-img-gallery.zoomout img,
4114
- .premium-img-gallery.scale img {
4115
- -webkit-transform: scale(1.2);
4116
- -ms-transform: scale(1.2);
4117
- transform: scale(1.2); }
4118
-
4119
- .premium-img-gallery.sepia img {
4120
- -webkit-filter: sepia(30%);
4121
- filter: sepia(30%); }
4122
-
4123
- .premium-img-gallery.bright img {
4124
- -webkit-filter: brightness(1);
4125
- filter: brightness(1); }
4126
-
4127
- .premium-img-gallery.trans img {
4128
- -webkit-transform: translateX(-15px) scale(1.1);
4129
- -ms-transform: translateX(-15px) scale(1.1);
4130
- transform: translateX(-15px) scale(1.1); }
4131
-
4132
- .pa-gallery-img .pa-gallery-magnific-image,
4133
- .pa-gallery-img .pa-gallery-img-link {
4134
- outline: none; }
4135
- .pa-gallery-img .pa-gallery-magnific-image i,
4136
- .pa-gallery-img .pa-gallery-magnific-image svg,
4137
- .pa-gallery-img .pa-gallery-img-link i,
4138
- .pa-gallery-img .pa-gallery-img-link svg {
4139
- -webkit-transition: all 0.3s ease-in-out;
4140
- transition: all 0.3s ease-in-out; }
4141
-
4142
- .pa-gallery-img .pa-gallery-magnific-image span,
4143
- .pa-gallery-img .pa-gallery-img-link span {
4144
- line-height: 1;
4145
- display: inline-block;
4146
- opacity: 0;
4147
- margin: 0 5px;
4148
- padding: 15px;
4149
- -webkit-border-radius: 50%;
4150
- border-radius: 50%; }
4151
-
4152
- .pa-gallery-img.style2 .pa-gallery-magnific-image span,
4153
- .pa-gallery-img.style2 .pa-gallery-img-link span {
4154
- margin: 0 5px 20px; }
4155
-
4156
- .pa-gallery-img:hover .pa-gallery-magnific-image span {
4157
- -webkit-transition: all 0.3s ease-in-out, opacity 0.5s ease-in-out 0.3s;
4158
- transition: all 0.3s ease-in-out, opacity 0.5s ease-in-out 0.3s; }
4159
-
4160
- .pa-gallery-img:hover .pa-gallery-img-link span {
4161
- -webkit-transition: all 0.3s ease-in-out, opacity 0.5s ease-in-out 0.6s;
4162
- transition: all 0.3s ease-in-out, opacity 0.5s ease-in-out 0.6s; }
4163
-
4164
- .pa-gallery-img:hover .pa-gallery-magnific-image span,
4165
- .pa-gallery-img:hover .pa-gallery-img-link span {
4166
- opacity: 1; }
4167
-
4168
- .premium-gallery-icon-show a.pa-gallery-video-icon span {
4169
- opacity: 1; }
4170
-
4171
- .premium-img-gallery-filter ul.premium-gallery-cats-container,
4172
- .premium-blog-filter ul.premium-blog-filters-container {
4173
- text-align: center;
4174
- margin: 0;
4175
- padding: 0; }
4176
-
4177
- .premium-img-gallery-filter .premium-gallery-cats-container li,
4178
- .premium-blog-filter .premium-blog-filters-container li {
4179
- list-style: none;
4180
- -js-display: inline-flex;
4181
- display: -webkit-inline-box;
4182
- display: -webkit-inline-flex;
4183
- display: -moz-inline-box;
4184
- display: -ms-inline-flexbox;
4185
- display: inline-flex; }
4186
-
4187
- .premium-img-gallery.zoomin .pa-gallery-img:hover img {
4188
- -webkit-transform: scale(1.1);
4189
- -ms-transform: scale(1.1);
4190
- transform: scale(1.1); }
4191
-
4192
- .premium-img-gallery.zoomout .pa-gallery-img:hover img {
4193
- -webkit-transform: scale(1);
4194
- -ms-transform: scale(1);
4195
- transform: scale(1); }
4196
-
4197
- .premium-img-gallery.scale .pa-gallery-img:hover img {
4198
- -webkit-transform: scale(1.3) rotate(5deg);
4199
- -ms-transform: scale(1.3) rotate(5deg);
4200
- transform: scale(1.3) rotate(5deg); }
4201
-
4202
- .premium-img-gallery.gray .pa-gallery-img:hover img {
4203
- -webkit-filter: grayscale(0%);
4204
- filter: grayscale(0%); }
4205
-
4206
- .premium-img-gallery.blur .pa-gallery-img:hover img {
4207
- -webkit-filter: blur(3px);
4208
- filter: blur(3px); }
4209
-
4210
- .premium-img-gallery.sepia .pa-gallery-img:hover img {
4211
- -webkit-filter: sepia(0%);
4212
- filter: sepia(0%); }
4213
-
4214
- .premium-img-gallery.trans .pa-gallery-img:hover img {
4215
- -webkit-transform: translateX(0px) scale(1.1);
4216
- -ms-transform: translateX(0px) scale(1.1);
4217
- transform: translateX(0px) scale(1.1); }
4218
-
4219
- .premium-img-gallery.bright .pa-gallery-img:hover img {
4220
- -webkit-filter: brightness(1.2);
4221
- filter: brightness(1.2); }
4222
-
4223
- .pa-gallery-img .premium-gallery-caption {
4224
- padding: 10px; }
4225
- .pa-gallery-img .premium-gallery-caption .premium-gallery-img-name {
4226
- margin-bottom: 0; }
4227
-
4228
- .pa-gallery-img.style1 {
4229
- overflow: hidden; }
4230
-
4231
- .pa-gallery-img:not(.style2) .pa-gallery-icons-wrapper {
4232
- position: absolute;
4233
- top: 0;
4234
- left: 0;
4235
- width: 100%;
4236
- height: 100%;
4237
- -webkit-transition: all 0.3s ease-in-out;
4238
- transition: all 0.3s ease-in-out; }
4239
-
4240
- .pa-gallery-img:not(.style2) .pa-gallery-icons-inner-container {
4241
- position: absolute;
4242
- top: 33.33%;
4243
- width: 100%;
4244
- text-align: center;
4245
- -webkit-transform: translateY(-50%);
4246
- -ms-transform: translateY(-50%);
4247
- transform: translateY(-50%);
4248
- z-index: 3; }
4249
-
4250
- .pa-gallery-img.style1 .premium-gallery-caption {
4251
- position: absolute;
4252
- top: auto;
4253
- right: 0;
4254
- bottom: -1px;
4255
- left: 0;
4256
- width: 100%;
4257
- -webkit-transition: all 500ms ease 0s;
4258
- transition: all 500ms ease 0s;
4259
- -webkit-transform: translate3d(0, 100%, 0);
4260
- transform: translate3d(0, 100%, 0); }
4261
-
4262
- .pa-gallery-img.style1:hover .premium-gallery-caption {
4263
- -webkit-transform: translate3d(0, 0, 0);
4264
- transform: translate3d(0, 0, 0);
4265
- bottom: -1px !important; }
4266
-
4267
- .pa-gallery-img.default .premium-gallery-caption {
4268
- position: absolute;
4269
- top: auto;
4270
- right: 0;
4271
- left: 0;
4272
- width: 100%;
4273
- bottom: 0; }
4274
-
4275
- .pa-gallery-img.style2 .pa-gallery-icons-caption-container {
4276
- position: absolute;
4277
- top: 0;
4278
- left: 0;
4279
- width: 100%;
4280
- height: 100%;
4281
- opacity: 0;
4282
- -webkit-backface-visibility: hidden;
4283
- backface-visibility: hidden;
4284
- -webkit-transition: opacity 0.3s, -webkit-transform 0.3s;
4285
- transition: opacity 0.3s, -webkit-transform 0.3s;
4286
- transition: transform 0.3s, opacity 0.3s;
4287
- transition: transform 0.3s, opacity 0.3s, -webkit-transform 0.3s;
4288
- z-index: 1;
4289
- background-color: rgba(108, 191, 226, 0.68);
4290
- -js-display: flex;
4291
- display: -webkit-box;
4292
- display: -webkit-flex;
4293
- display: -moz-box;
4294
- display: -ms-flexbox;
4295
- display: flex;
4296
- text-align: center;
4297
- -webkit-box-align: center;
4298
- -webkit-align-items: center;
4299
- -moz-box-align: center;
4300
- -ms-flex-align: center;
4301
- align-items: center; }
4302
-
4303
- .pa-gallery-img.style2 .pa-gallery-icons-caption-cell {
4304
- width: 100%; }
4305
-
4306
- .pa-gallery-img.style2:hover .pa-gallery-icons-caption-container {
4307
- opacity: 1;
4308
- -webkit-transform: translate(15px, 15px);
4309
- -ms-transform: translate(15px, 15px);
4310
- transform: translate(15px, 15px); }
4311
-
4312
- .premium-clearfix {
4313
- clear: both; }
4314
-
4315
- /**
4316
- * Metro Layout
4317
- */
4318
- .premium-img-gallery-metro .premium-gallery-item {
4319
- overflow: hidden; }
4320
-
4321
- .premium-img-gallery-metro .pa-gallery-img {
4322
- height: 100%; }
4323
-
4324
- .premium-img-gallery-metro .pa-gallery-img-container {
4325
- height: 100%; }
4326
- .premium-img-gallery-metro .pa-gallery-img-container img {
4327
- min-height: 100%;
4328
- width: 100%;
4329
- -o-object-fit: fill;
4330
- object-fit: fill; }
4331
-
4332
- .premium-img-gallery .premium-gallery-item-hidden {
4333
- visibility: hidden;
4334
- width: 0 !important;
4335
- height: 0 !important;
4336
- margin: 0 !important;
4337
- padding: 0 !important; }
4338
-
4339
- .premium-gallery-load-more {
4340
- position: relative; }
4341
- .premium-gallery-load-more .premium-gallery-load-more-btn {
4342
- -webkit-box-shadow: none;
4343
- box-shadow: none;
4344
- text-shadow: none;
4345
- border: none;
4346
- outline: none;
4347
- -webkit-box-align: center;
4348
- -webkit-align-items: center;
4349
- -moz-box-align: center;
4350
- -ms-flex-align: center;
4351
- align-items: center;
4352
- vertical-align: bottom;
4353
- cursor: pointer;
4354
- line-height: 1;
4355
- font-style: normal;
4356
- font-weight: normal;
4357
- background-image: none;
4358
- color: #fff;
4359
- -webkit-transition: all 0.3s ease-in-out;
4360
- transition: all 0.3s ease-in-out; }
4361
-
4362
- .premium-gallery-load-more-btn {
4363
- -js-display: inline-flex;
4364
- display: -webkit-inline-box;
4365
- display: -webkit-inline-flex;
4366
- display: -moz-inline-box;
4367
- display: -ms-inline-flexbox;
4368
- display: inline-flex;
4369
- -webkit-box-align: center;
4370
- -webkit-align-items: center;
4371
- -moz-box-align: center;
4372
- -ms-flex-align: center;
4373
- align-items: center; }
4374
-
4375
- .premium-gallery-load-more-btn div {
4376
- margin-left: 3px; }
4377
-
4378
- .premium-gallery-load-more-btn .premium-loader {
4379
- display: inline-block;
4380
- width: 20px;
4381
- height: 20px; }
4382
-
4383
- .pa-gallery-img .pa-gallery-lightbox-wrap {
4384
- display: inline-block; }
4385
-
4386
- .premium-img-gallery-no-lightbox .premium-gallery-video-item .pa-gallery-img,
4387
- .pa-gallery-img .pa-gallery-video-icon {
4388
- cursor: pointer; }
4389
-
4390
- .pa-gallery-img-container iframe {
4391
- position: absolute;
4392
- visibility: hidden;
4393
- top: 0;
4394
- left: 0;
4395
- max-width: 100%;
4396
- width: 100%;
4397
- height: 100%;
4398
- margin: 0;
4399
- line-height: 1;
4400
- border: none; }
4401
-
4402
- .pa-gallery-img-container video {
4403
- position: absolute;
4404
- visibility: hidden;
4405
- top: 0;
4406
- left: 0;
4407
- max-width: 100%;
4408
- width: 100%;
4409
- height: 100%;
4410
- margin: 0;
4411
- line-height: 1;
4412
- border: none;
4413
- -o-object-fit: contain;
4414
- object-fit: contain; }
4415
-
4416
- .pa-gallery-icons-inner-container svg,
4417
- .pa-gallery-icons-caption-cell svg {
4418
- width: 14px;
4419
- height: 14px; }
4420
-
4421
- .premium-gallery-gradient-layer {
4422
- position: absolute;
4423
- bottom: 40px;
4424
- width: 100%;
4425
- height: 20px;
4426
- background: -webkit-gradient(linear, left bottom, left top, from(#17181f), to(rgba(255, 255, 255, 0)));
4427
- background: -webkit-linear-gradient(bottom, #17181f 0%, rgba(255, 255, 255, 0) 100%);
4428
- background: linear-gradient(to top, #17181f 0%, rgba(255, 255, 255, 0) 100%); }
4429
-
4430
- /********* Premium Lottie Animations *********/
4431
- /*********************************************/
4432
- .elementor-widget-premium-lottie .premium-lottie-animation {
4433
- position: relative;
4434
- -js-display: inline-flex;
4435
- display: -webkit-inline-box;
4436
- display: -webkit-inline-flex;
4437
- display: -moz-inline-box;
4438
- display: -ms-inline-flexbox;
4439
- display: inline-flex;
4440
  -webkit-transition: all 0.3s ease-in-out;
4441
  transition: all 0.3s ease-in-out; }
4442
- .elementor-widget-premium-lottie .premium-lottie-animation a {
 
 
 
4443
  position: absolute;
4444
- left: 0;
4445
  top: 0;
 
4446
  width: 100%;
4447
  height: 100%;
4448
  z-index: 2; }
4449
-
4450
- /**************** Premium Google Maps ******************/
4451
- /*******************************************************/
4452
- .premium-maps-info-container {
4453
- margin-top: 10px;
4454
- margin-bottom: 10px; }
4455
 
4456
- .premium-maps-info-title,
4457
- .premium-maps-info-desc {
4458
- margin: 0;
4459
- padding: 0; }
 
 
 
 
 
 
 
4460
 
4461
- .premium-maps-container .gm-style-iw {
4462
- text-align: center; }
 
4463
 
4464
- .premium-maps-container .gm-style img {
4465
- max-width: none !important; }
4466
-
4467
- /**************** Premium Modal Box ****************/
4468
- /***************************************************/
4469
- .premium-modal-trigger-btn,
4470
- .premium-modal-box-modal-lower-close {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4471
  display: inline-block;
4472
- padding: 6px 12px;
4473
- margin-bottom: 0;
4474
- font-size: 14px;
4475
- font-weight: normal;
4476
- line-height: 1.42857143;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4477
  text-align: center;
4478
- white-space: nowrap;
4479
- vertical-align: middle;
4480
- -ms-touch-action: manipulation;
4481
- touch-action: manipulation;
4482
- cursor: pointer;
4483
- -webkit-user-select: none;
4484
- -moz-user-select: none;
4485
- -ms-user-select: none;
4486
- user-select: none;
4487
- background-image: none;
4488
- border: 1px solid transparent; }
4489
 
4490
- .premium-modal-trigger-btn > svg,
4491
- .premium-modal-trigger-btn .premium-modal-box-icon {
4492
- -webkit-transition: all 0.3s ease-in-out;
4493
- transition: all 0.3s ease-in-out; }
 
 
 
 
 
4494
 
4495
- .premium-modal-trigger-btn > svg {
4496
- width: 30px;
4497
- height: 30px; }
 
4498
 
4499
- .premium-modal-box-modal-close {
4500
- float: right;
4501
- font-size: 21px;
4502
- font-weight: bold;
4503
- line-height: 1;
4504
- color: #000; }
4505
- .premium-modal-box-modal-close:hover, .premium-modal-box-modal-close:focus {
4506
- color: #000;
4507
- text-decoration: none;
4508
- cursor: pointer; }
4509
 
4510
- button.premium-modal-box-modal-close {
4511
- -webkit-appearance: none;
4512
- padding: 0;
4513
- cursor: pointer;
4514
- background: transparent;
4515
- border: 0; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4516
 
4517
  .premium-modal-box-modal {
4518
  position: fixed;
@@ -4721,1128 +4721,1128 @@ button.premium-modal-box-modal-close {
4721
  .premium-modal-box-container[data-modal-animation*="animated-"] {
4722
  opacity: 0; }
4723
 
4724
- /************ Premium Nav Menu ************/
4725
- .premium-nav-widget-container ul {
4726
- list-style: none;
4727
- margin: 0;
4728
- padding: 0; }
4729
-
4730
- .premium-nav-widget-container .premium-main-nav-menu {
4731
- -js-display: flex;
4732
- display: -webkit-box;
4733
- display: -webkit-flex;
4734
- display: -moz-box;
4735
- display: -ms-flexbox;
4736
- display: flex;
4737
- height: 100%; }
4738
-
4739
- /*Vertical Main Menu**/
4740
- .premium-nav-ver .premium-ver-inner-container {
4741
- width: 45%;
4742
- position: relative; }
4743
-
4744
- .premium-nav-ver .premium-nav-menu-container,
4745
- .premium-nav-ver .premium-ver-toggler {
4746
- width: 100%; }
4747
-
4748
- .premium-nav-ver .premium-nav-menu-container {
4749
- background-color: #fff;
4750
- -webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
4751
- box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1); }
4752
-
4753
- .premium-nav-ver .premium-main-nav-menu {
4754
- position: relative;
4755
- -webkit-box-orient: vertical;
4756
- -webkit-box-direction: normal;
4757
- -webkit-flex-direction: column;
4758
- -moz-box-orient: vertical;
4759
- -moz-box-direction: normal;
4760
- -ms-flex-direction: column;
4761
- flex-direction: column;
4762
- -webkit-box-align: start;
4763
- -webkit-align-items: flex-start;
4764
- -moz-box-align: start;
4765
- -ms-flex-align: start;
4766
- align-items: flex-start; }
4767
-
4768
- .premium-nav-ver:not(.premium-hamburger-menu) .premium-nav-menu-item.menu-item-has-children .premium-sub-menu {
4769
- visibility: hidden;
4770
- opacity: 0;
4771
- position: absolute;
4772
- min-width: 250px; }
4773
-
4774
- .premium-nav-ver:not(.premium-hamburger-menu) .premium-nav-menu-item.menu-item-has-children:hover > .premium-sub-menu,
4775
- .premium-nav-ver:not(.premium-hamburger-menu) .premium-nav-menu-item.menu-item-has-children:hover .premium-mega-content-container {
4776
- opacity: 1;
4777
- visibility: visible; }
4778
-
4779
- .premium-nav-ver .premium-nav-menu-item {
4780
- width: 100%; }
4781
-
4782
- .premium-nav-ver:not(.premium-hamburger-menu).premium-vertical-right .premium-mega-content-container,
4783
- .premium-nav-ver:not(.premium-hamburger-menu).premium-vertical-right .premium-nav-menu-item.menu-item-has-children .premium-sub-menu {
4784
- left: 100%;
4785
- top: 0; }
4786
-
4787
- .premium-nav-ver:not(.premium-hamburger-menu).premium-vertical-left .premium-mega-content-container,
4788
- .premium-nav-ver:not(.premium-hamburger-menu).premium-vertical-left .premium-nav-menu-item.menu-item-has-children .premium-sub-menu {
4789
- right: 100%;
4790
- top: 0; }
4791
-
4792
- .premium-nav-ver:not(.premium-hamburger-menu).premium-vertical-left .premium-menu-link {
4793
- -webkit-box-orient: horizontal;
4794
- -webkit-box-direction: reverse;
4795
- -webkit-flex-direction: row-reverse;
4796
- -moz-box-orient: horizontal;
4797
- -moz-box-direction: reverse;
4798
- -ms-flex-direction: row-reverse;
4799
- flex-direction: row-reverse; }
4800
-
4801
- /*Horizontal Main Menu**/
4802
- .premium-nav-hor .premium-nav-menu-container {
4803
- height: 60px; }
4804
-
4805
- .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item .premium-sub-menu {
4806
- visibility: hidden;
4807
- opacity: 0;
4808
- position: absolute;
4809
- min-width: 220px; }
4810
-
4811
- .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item > .premium-sub-menu,
4812
- .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item .premium-mega-content-container {
4813
- top: 100%; }
4814
- .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item > .premium-sub-menu .premium-sub-menu,
4815
- .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item .premium-mega-content-container .premium-sub-menu {
4816
- left: 100%;
4817
- top: 0; }
4818
-
4819
- .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item:hover > .premium-sub-menu,
4820
- .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item:hover .premium-mega-content-container {
4821
- visibility: visible;
4822
- opacity: 1;
4823
- pointer-events: auto; }
4824
-
4825
- .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item.premium-mega-item-static .premium-mega-content-container {
4826
- left: 50%;
4827
- -webkit-transform: translateX(-50%);
4828
- -ms-transform: translateX(-50%);
4829
- transform: translateX(-50%); }
4830
-
4831
- .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item:not(.premium-mega-item-static) .premium-mega-content-container {
4832
- left: 0; }
4833
-
4834
- /**Mega Menu Container*/
4835
- .premium-mega-nav-item .premium-sub-menu {
4836
- display: none; }
4837
-
4838
- .premium-mega-nav-item {
4839
- position: relative; }
4840
- .premium-mega-nav-item:hover .premium-mega-content-container {
4841
- visibility: visible;
4842
- opacity: 1;
4843
- pointer-events: auto; }
4844
-
4845
- .premium-mega-content-container {
4846
- visibility: hidden;
4847
- position: absolute;
4848
- z-index: 9999;
4849
- opacity: 0;
4850
- pointer-events: none; }
4851
-
4852
- .premium-hamburger-menu .premium-mega-content-container,
4853
- .premium-nav-slide .premium-mega-content-container,
4854
- .premium-nav-dropdown .premium-mega-content-container {
4855
- visibility: visible;
4856
- position: relative;
4857
- opacity: 1;
4858
- pointer-events: auto; }
4859
-
4860
- /**Hamburger Menu*/
4861
- .premium-nav-widget-container a.premium-hamburger-toggle,
4862
- .premium-mobile-menu-outer-container a.premium-mobile-menu-close {
4863
- text-decoration: none; }
4864
-
4865
- .premium-nav-widget-container .premium-hamburger-toggle {
4866
- display: none;
4867
- -webkit-box-pack: center;
4868
- -webkit-justify-content: center;
4869
- -moz-box-pack: center;
4870
- -ms-flex-pack: center;
4871
- justify-content: center;
4872
- -webkit-box-align: center;
4873
- -webkit-align-items: center;
4874
- -moz-box-align: center;
4875
- -ms-flex-align: center;
4876
- align-items: center; }
4877
- .premium-nav-widget-container .premium-hamburger-toggle i {
4878
- padding: 0.25em;
4879
- font-size: 22px; }
4880
- .premium-nav-widget-container .premium-hamburger-toggle svg {
4881
- width: 22px;
4882
- height: 22px; }
4883
- .premium-nav-widget-container .premium-hamburger-toggle i,
4884
- .premium-nav-widget-container .premium-hamburger-toggle .premium-toggle-text,
4885
- .premium-nav-widget-container .premium-hamburger-toggle .premium-toggle-close {
4886
- color: #494c4f; }
4887
- .premium-nav-widget-container .premium-hamburger-toggle svg,
4888
- .premium-nav-widget-container .premium-hamburger-toggle svg path {
4889
- fill: #494c4f; }
4890
- .premium-nav-widget-container .premium-hamburger-toggle .premium-toggle-text,
4891
- .premium-nav-widget-container .premium-hamburger-toggle .premium-toggle-close {
4892
- margin: 2px; }
4893
- .premium-nav-widget-container .premium-hamburger-toggle .premium-toggle-close {
4894
- display: none; }
4895
-
4896
- .premium-mobile-menu-container {
4897
- width: 100%; }
4898
- .premium-mobile-menu-container .premium-main-mobile-menu {
4899
- width: 100%; }
4900
- .premium-mobile-menu-container ul {
4901
- list-style: none;
4902
- margin: 0;
4903
- padding: 0; }
4904
- .premium-mobile-menu-container .premium-mobile-menu,
4905
- .premium-mobile-menu-container .premium-sub-menu {
4906
- display: none;
4907
- -webkit-box-orient: vertical;
4908
- -webkit-box-direction: normal;
4909
- -webkit-flex-direction: column;
4910
- -moz-box-orient: vertical;
4911
- -moz-box-direction: normal;
4912
- -ms-flex-direction: column;
4913
- flex-direction: column; }
4914
- .premium-mobile-menu-container .premium-nav-menu-item {
4915
- -webkit-box-orient: vertical;
4916
- -webkit-box-direction: normal;
4917
- -webkit-flex-direction: column;
4918
- -moz-box-orient: vertical;
4919
- -moz-box-direction: normal;
4920
- -ms-flex-direction: column;
4921
- flex-direction: column; }
4922
- .premium-mobile-menu-container .premium-item-badge {
4923
- top: 50%;
4924
- right: 0;
4925
- left: unset;
4926
- -webkit-transform: translateY(-50%);
4927
- -ms-transform: translateY(-50%);
4928
- transform: translateY(-50%); }
4929
-
4930
- .premium-nav-hor .premium-mobile-menu-container .premium-item-badge {
4931
- top: 0;
4932
- -webkit-transform: translateY(0);
4933
- -ms-transform: translateY(0);
4934
- transform: translateY(0); }
4935
-
4936
- /**Vertical Hamburger Menu*/
4937
- .premium-mobile-menu-outer-container {
4938
- opacity: 0; }
4939
- .premium-mobile-menu-outer-container.premium-vertical-toggle-open {
4940
- opacity: 1; }
4941
-
4942
- .premium-ver-hamburger-menu .premium-mobile-menu-outer-container {
4943
- background-color: #f7f7f7;
4944
- width: 300px;
4945
- -webkit-transform: translateX(-300px);
4946
- -ms-transform: translateX(-300px);
4947
- transform: translateX(-300px);
4948
- height: 100%;
4949
- position: fixed;
4950
- top: 0;
4951
- left: 0;
4952
- overflow-x: hidden;
4953
- z-index: 10002;
4954
- -webkit-transition: 0.5s;
4955
- transition: 0.5s;
4956
- padding-top: 50px; }
4957
- .premium-ver-hamburger-menu .premium-mobile-menu-outer-container .premium-mobile-menu {
4958
- -js-display: flex;
4959
- display: -webkit-box;
4960
- display: -webkit-flex;
4961
- display: -moz-box;
4962
- display: -ms-flexbox;
4963
- display: flex; }
4964
- .premium-ver-hamburger-menu .premium-mobile-menu-outer-container .premium-mobile-menu-container {
4965
- margin-top: 50px; }
4966
- .premium-ver-hamburger-menu .premium-mobile-menu-outer-container .premium-mobile-menu-container .premium-item-badge {
4967
- -webkit-transform: translateY(0);
4968
- -ms-transform: translateY(0);
4969
- transform: translateY(0); }
4970
- .premium-ver-hamburger-menu .premium-mobile-menu-outer-container .premium-mobile-menu-close {
4971
- position: absolute;
4972
- top: 2%;
4973
- right: 5px;
4974
- padding: 0 9px;
4975
- z-index: 10000;
4976
- -js-display: inline-flex;
4977
- display: -webkit-inline-box;
4978
- display: -webkit-inline-flex;
4979
- display: -moz-inline-box;
4980
- display: -ms-inline-flexbox;
4981
- display: inline-flex;
4982
- color: #494c4f;
4983
- -webkit-box-pack: center;
4984
- -webkit-justify-content: center;
4985
- -moz-box-pack: center;
4986
- -ms-flex-pack: center;
4987
- justify-content: center;
4988
- -webkit-box-align: center;
4989
- -webkit-align-items: center;
4990
- -moz-box-align: center;
4991
- -ms-flex-align: center;
4992
- align-items: center; }
4993
- .premium-ver-hamburger-menu .premium-mobile-menu-outer-container .premium-mobile-menu-close .premium-toggle-close {
4994
- margin: 5px; }
4995
- .premium-ver-hamburger-menu .premium-mobile-menu-outer-container .premium-mobile-menu-close svg {
4996
- width: 22px;
4997
- height: 22px;
4998
- fill: #494c4f; }
4999
- .premium-ver-hamburger-menu .premium-mobile-menu-outer-container .premium-mobile-menu-close svg path {
5000
- fill: #494c4f; }
5001
- .premium-ver-hamburger-menu .premium-mobile-menu-outer-container .premium-mobile-menu-close i {
5002
- font-size: 22px; }
5003
-
5004
- .premium-ver-hamburger-menu .premium-vertical-toggle-open {
5005
- -webkit-transform: translateX(0) !important;
5006
- -ms-transform: translateX(0) !important;
5007
- transform: translateX(0) !important;
5008
- -webkit-transition: 0.5s;
5009
- transition: 0.5s; }
5010
-
5011
- /** Vertical Toggler*/
5012
- .premium-ver-toggle-yes .premium-nav-menu-container {
5013
- height: auto; }
5014
-
5015
- .premium-ver-toggle-yes .premium-ver-toggler {
5016
- -js-display: flex;
5017
- display: -webkit-box;
5018
- display: -webkit-flex;
5019
- display: -moz-box;
5020
- display: -ms-flexbox;
5021
- display: flex;
5022
- -webkit-box-align: center;
5023
- -webkit-align-items: center;
5024
- -moz-box-align: center;
5025
- -ms-flex-align: center;
5026
- align-items: center;
5027
- -webkit-box-pack: justify;
5028
- -webkit-justify-content: space-between;
5029
- -moz-box-pack: justify;
5030
- -ms-flex-pack: justify;
5031
- justify-content: space-between;
5032
- padding: 15px 20px 15px 20px;
5033
- background: #eeeeee;
5034
- color: #042551;
5035
- cursor: pointer; }
5036
- .premium-ver-toggle-yes .premium-ver-toggler .premium-ver-toggler-title,
5037
- .premium-ver-toggle-yes .premium-ver-toggler .premium-ver-toggler-btn {
5038
- -js-display: flex;
5039
- display: -webkit-box;
5040
- display: -webkit-flex;
5041
- display: -moz-box;
5042
- display: -ms-flexbox;
5043
- display: flex;
5044
- -webkit-box-pack: center;
5045
- -webkit-justify-content: center;
5046
- -moz-box-pack: center;
5047
- -ms-flex-pack: center;
5048
- justify-content: center;
5049
- -webkit-box-align: center;
5050
- -webkit-align-items: center;
5051
- -moz-box-align: center;
5052
- -ms-flex-align: center;
5053
- align-items: center; }
5054
- .premium-ver-toggle-yes .premium-ver-toggler .premium-ver-toggler-txt {
5055
- text-indent: 5px; }
5056
- .premium-ver-toggle-yes .premium-ver-toggler:hover {
5057
- background: #54595f;
5058
- color: #fff; }
5059
- .premium-ver-toggle-yes .premium-ver-toggler:hover .premium-ver-close svg,
5060
- .premium-ver-toggle-yes .premium-ver-toggler:hover .premium-ver-close svg path,
5061
- .premium-ver-toggle-yes .premium-ver-toggler:hover .premium-ver-open svg,
5062
- .premium-ver-toggle-yes .premium-ver-toggler:hover .premium-ver-open svg path,
5063
- .premium-ver-toggle-yes .premium-ver-toggler:hover .premium-ver-title-icon svg,
5064
- .premium-ver-toggle-yes .premium-ver-toggler:hover .premium-ver-title-icon svg path {
5065
- fill: #fff; }
5066
-
5067
- .premium-ver-toggle-yes .premium-ver-close,
5068
- .premium-ver-toggle-yes .premium-ver-open,
5069
- .premium-ver-toggle-yes .premium-nav-menu-container,
5070
- .premium-ver-toggle-yes .premium-ver-toggler {
5071
- -webkit-transition: all 0.3s linear 0s;
5072
- transition: all 0.3s linear 0s; }
5073
- .premium-ver-toggle-yes .premium-ver-close i,
5074
- .premium-ver-toggle-yes .premium-ver-close svg,
5075
- .premium-ver-toggle-yes .premium-ver-open i,
5076
- .premium-ver-toggle-yes .premium-ver-open svg,
5077
- .premium-ver-toggle-yes .premium-nav-menu-container i,
5078
- .premium-ver-toggle-yes .premium-nav-menu-container svg,
5079
- .premium-ver-toggle-yes .premium-ver-toggler i,
5080
- .premium-ver-toggle-yes .premium-ver-toggler svg {
5081
- -webkit-transition: color 0.3s linear 0s;
5082
- transition: color 0.3s linear 0s; }
5083
-
5084
- .premium-ver-toggle-yes .premium-ver-toggler-txt {
5085
- -webkit-transition: all 0.3s linear 0s;
5086
- transition: all 0.3s linear 0s; }
5087
-
5088
- .premium-ver-toggle-yes .premium-ver-close,
5089
- .premium-ver-toggle-yes .premium-ver-open,
5090
- .premium-ver-toggle-yes .premium-ver-title-icon {
5091
- -webkit-box-pack: center;
5092
- -webkit-justify-content: center;
5093
- -moz-box-pack: center;
5094
- -ms-flex-pack: center;
5095
- justify-content: center;
5096
- -webkit-box-align: center;
5097
- -webkit-align-items: center;
5098
- -moz-box-align: center;
5099
- -ms-flex-align: center;
5100
- align-items: center; }
5101
- .premium-ver-toggle-yes .premium-ver-close i,
5102
- .premium-ver-toggle-yes .premium-ver-open i,
5103
- .premium-ver-toggle-yes .premium-ver-title-icon i {
5104
- font-size: 16px; }
5105
- .premium-ver-toggle-yes .premium-ver-close svg,
5106
- .premium-ver-toggle-yes .premium-ver-open svg,
5107
- .premium-ver-toggle-yes .premium-ver-title-icon svg {
5108
- width: 17px;
5109
- height: 17px;
5110
- fill: #042551; }
5111
- .premium-ver-toggle-yes .premium-ver-close svg path,
5112
- .premium-ver-toggle-yes .premium-ver-open svg path,
5113
- .premium-ver-toggle-yes .premium-ver-title-icon svg path {
5114
- fill: #042551; }
5115
-
5116
- .premium-ver-toggle-yes.premium-ver-always .premium-ver-open {
5117
- -js-display: inline-flex;
5118
- display: -webkit-inline-box;
5119
- display: -webkit-inline-flex;
5120
- display: -moz-inline-box;
5121
- display: -ms-inline-flexbox;
5122
- display: inline-flex; }
5123
-
5124
- .premium-ver-toggle-yes .premium-ver-collapsed .premium-nav-menu-container {
5125
- visibility: hidden;
5126
- opacity: 0; }
5127
-
5128
- .premium-ver-toggle-yes .premium-ver-collapsed .premium-ver-close {
5129
- display: none; }
5130
-
5131
- .premium-ver-toggle-yes .premium-ver-collapsed .premium-ver-open {
5132
- -js-display: inline-flex;
5133
- display: -webkit-inline-box;
5134
- display: -webkit-inline-flex;
5135
- display: -moz-inline-box;
5136
- display: -ms-inline-flexbox;
5137
- display: inline-flex; }
5138
-
5139
- .premium-ver-toggle-yes.premium-ver-hover .premium-nav-menu-container {
5140
- position: absolute;
5141
- z-index: 10002; }
5142
-
5143
- .premium-ver-toggle-yes.premium-ver-click .premium-nav-menu-container {
5144
- position: absolute;
5145
- z-index: 10001; }
5146
-
5147
- .premium-ver-toggle-yes .premium-nav-menu-container,
5148
- .premium-ver-toggle-yes.premium-ver-hover .premium-ver-inner-container:hover .premium-nav-menu-container {
5149
- visibility: visible;
5150
- opacity: 1; }
5151
-
5152
- .premium-ver-toggle-yes .premium-ver-open,
5153
- .premium-ver-toggle-yes.premium-ver-hover .premium-ver-inner-container:hover .premium-ver-open {
5154
- display: none; }
5155
-
5156
- .premium-ver-toggle-yes .premium-ver-close,
5157
- .premium-ver-toggle-yes .premium-ver-title-icon,
5158
- .premium-ver-toggle-yes.premium-ver-hover .premium-ver-inner-container:hover .premium-ver-close,
5159
- .premium-ver-toggle-yes.premium-ver-hover .premium-ver-inner-container:hover .premium-ver-title-icon {
5160
- -js-display: inline-flex;
5161
- display: -webkit-inline-box;
5162
- display: -webkit-inline-flex;
5163
- display: -moz-inline-box;
5164
- display: -ms-inline-flexbox;
5165
- display: inline-flex; }
5166
-
5167
- /** Sticky Menu */
5168
- .premium-sticky-parent {
5169
- position: fixed;
5170
- z-index: 10003;
5171
- -webkit-transition: all 0.3s linear;
5172
- transition: all 0.3s linear; }
5173
-
5174
- .premium-sticky-scroll-yes.premium-sticky-parent.headroom--not-top {
5175
- will-change: transform;
5176
- -webkit-transition: -webkit-transform 500ms linear !important;
5177
- transition: -webkit-transform 500ms linear !important;
5178
- transition: transform 500ms linear !important;
5179
- transition: transform 500ms linear, -webkit-transform 500ms linear !important;
5180
- -webkit-transition-delay: 1s;
5181
- transition-delay: 1s; }
5182
-
5183
- .premium-sticky-scroll-yes.premium-sticky-parent.headroom--not-top.slideDown {
5184
- -webkit-transform: translateY(0%);
5185
- -ms-transform: translateY(0%);
5186
- transform: translateY(0%); }
5187
-
5188
- .premium-sticky-scroll-yes.premium-sticky-parent.headroom--not-top.slideUp {
5189
- -webkit-transform: translateY(-100%);
5190
- -ms-transform: translateY(-100%);
5191
- transform: translateY(-100%); }
5192
-
5193
- .premium-nav-sticky-yes.premium-sticky-active.premium-ham-dropdown .premium-mobile-menu-container,
5194
- .premium-ham-dropdown .premium-stretch-dropdown .premium-mobile-menu-container {
5195
- max-height: 400px;
5196
- overflow-y: auto; }
5197
-
5198
- /**Common*/
5199
- .premium-nav-slide-overlay {
5200
- display: none;
5201
- position: fixed;
5202
- top: 0;
5203
- left: 0;
5204
- right: 0;
5205
- bottom: 0;
5206
- -webkit-backface-visibility: hidden;
5207
- backface-visibility: hidden;
5208
- background: rgba(0, 0, 0, 0.6);
5209
- z-index: 10002; }
5210
- .premium-nav-slide-overlay.premium-vertical-toggle-open {
5211
- display: block; }
5212
-
5213
- .premium-active-menu,
5214
- .premium-active-menu:not(.premium-mega-nav-item) > .premium-sub-menu,
5215
- .premium-active-menu.premium-mega-nav-item > .premium-mega-content-container {
5216
- -js-display: flex !important;
5217
- display: -webkit-box !important;
5218
- display: -webkit-flex !important;
5219
- display: -moz-box !important;
5220
- display: -ms-flexbox !important;
5221
- display: flex !important;
5222
- -webkit-box-orient: vertical;
5223
- -webkit-box-direction: normal;
5224
- -webkit-flex-direction: column;
5225
- -moz-box-orient: vertical;
5226
- -moz-box-direction: normal;
5227
- -ms-flex-direction: column;
5228
- flex-direction: column; }
5229
-
5230
- .premium-active-menu .premium-toggle-close {
5231
- display: block; }
5232
-
5233
- .premium-nav-menu-container .premium-sub-menu {
5234
- background-color: #fff; }
5235
-
5236
- .premium-mobile-menu-container li,
5237
- .premium-mobile-menu-container li > .premium-mega-content-container {
5238
- width: 100% !important; }
5239
-
5240
- .premium-item-icon,
5241
- .premium-sub-item-icon {
5242
- font-size: 13px;
5243
- margin: 0 7px; }
5244
- .premium-item-icon svg,
5245
- .premium-sub-item-icon svg {
5246
- width: 100%;
5247
- height: 100%; }
5248
- .premium-item-icon.premium-lottie-animation,
5249
- .premium-sub-item-icon.premium-lottie-animation {
5250
- width: 20px;
5251
- height: 20px;
5252
- -js-display: flex;
5253
- display: -webkit-box;
5254
- display: -webkit-flex;
5255
- display: -moz-box;
5256
- display: -ms-flexbox;
5257
- display: flex;
5258
- -webkit-box-pack: center;
5259
- -webkit-justify-content: center;
5260
- -moz-box-pack: center;
5261
- -ms-flex-pack: center;
5262
- justify-content: center; }
5263
- .premium-item-icon.dashicons,
5264
- .premium-sub-item-icon.dashicons {
5265
- width: 13px;
5266
- height: 13px; }
5267
-
5268
- .premium-nav-menu-item {
5269
- position: relative; }
5270
- .premium-nav-menu-item .premium-menu-link {
5271
- -js-display: flex;
5272
- display: -webkit-box;
5273
- display: -webkit-flex;
5274
- display: -moz-box;
5275
- display: -ms-flexbox;
5276
- display: flex;
5277
- -webkit-box-align: center;
5278
- -webkit-align-items: center;
5279
- -moz-box-align: center;
5280
- -ms-flex-align: center;
5281
- align-items: center;
5282
- height: 100%;
5283
- padding: 7px 10px;
5284
- text-decoration: none;
5285
- position: relative; }
5286
- .premium-nav-menu-item .premium-dropdown-icon {
5287
- margin: 5px; }
5288
- .premium-nav-menu-item.menu-item-has-children {
5289
- position: relative; }
5290
- .premium-nav-menu-item.menu-item-has-children .premium-sub-menu {
5291
- z-index: 9999; }
5292
- .premium-nav-menu-item.menu-item-has-children .premium-sub-menu .premium-sub-menu-link {
5293
- -webkit-box-pack: start;
5294
- -webkit-justify-content: flex-start;
5295
- -moz-box-pack: start;
5296
- -ms-flex-pack: start;
5297
- justify-content: flex-start; }
5298
- .premium-nav-menu-item .menu-link {
5299
- position: relative;
5300
- text-decoration: none; }
5301
-
5302
- .premium-item-badge,
5303
- .premium-sub-item-badge {
5304
- position: absolute;
5305
- padding: 1px 6px;
5306
- min-width: 35px;
5307
- text-align: center;
5308
- font-size: 10px;
5309
- -webkit-border-radius: 4px;
5310
- border-radius: 4px;
5311
- line-height: 1.8;
5312
- white-space: nowrap; }
5313
-
5314
- .premium-nav-hor:not(.premium-hamburger-menu) .premium-item-badge, .premium-nav-hor:not(.premium-nav-slide) .premium-item-badge, .premium-nav-hor:not(.premium-nav-dropdown) .premium-item-badge {
5315
- position: relative;
5316
- margin: 8px; }
5317
-
5318
- .premium-nav-hor .premium-sub-item-badge,
5319
- .premium-nav-slide .premium-sub-item-badge,
5320
- .premium-nav-dropdown .premium-sub-item-badge,
5321
- .premium-nav-ver.premium-vertical-right .premium-item-badge,
5322
- .premium-nav-ver.premium-vertical-right .premium-sub-item-badge {
5323
- top: 50%;
5324
- right: 0;
5325
- -webkit-transform: translateY(-50%);
5326
- -ms-transform: translateY(-50%);
5327
- transform: translateY(-50%); }
5328
-
5329
- .premium-nav-ver.premium-vertical-left .premium-item-badge,
5330
- .premium-nav-ver.premium-vertical-left .premium-sub-item-badge {
5331
- top: 50%;
5332
- left: 0;
5333
- -webkit-transform: translateY(-50%);
5334
- -ms-transform: translateY(-50%);
5335
- transform: translateY(-50%); }
5336
-
5337
- .premium-mega-nav-item .premium-sub-menu {
5338
- display: none; }
5339
-
5340
- .premium-mega-nav-item {
5341
- position: relative; }
5342
-
5343
- .premium-hamburger-menu .premium-mega-content-container,
5344
- .premium-nav-dropdown .premium-mega-content-container,
5345
- .premium-nav-slide .premium-mega-content-container {
5346
- display: none; }
5347
-
5348
- .premium-mega-item-static {
5349
- position: static !important; }
5350
-
5351
- .premium-hamburger-menu .premium-nav-menu-container,
5352
- .premium-nav-dropdown .premium-nav-menu-container,
5353
- .premium-nav-slide .premium-nav-menu-container {
5354
- display: none; }
5355
-
5356
- .premium-hamburger-menu .premium-hamburger-toggle,
5357
- .premium-nav-dropdown .premium-hamburger-toggle,
5358
- .premium-nav-slide .premium-hamburger-toggle {
5359
- -js-display: inline-flex;
5360
- display: -webkit-inline-box;
5361
- display: -webkit-inline-flex;
5362
- display: -moz-inline-box;
5363
- display: -ms-inline-flexbox;
5364
- display: inline-flex; }
5365
-
5366
- .premium-hidden-icon-yes.premium-hamburger-menu .premium-item-icon,
5367
- .premium-hidden-icon-yes.premium-hamburger-menu .premium-sub-item-icon,
5368
- .premium-hidden-icon-yes.premium-nav-dropdown .premium-item-icon,
5369
- .premium-hidden-icon-yes.premium-nav-dropdown .premium-sub-item-icon,
5370
- .premium-hidden-icon-yes.premium-nav-slide .premium-item-icon,
5371
- .premium-hidden-icon-yes.premium-nav-slide .premium-sub-item-icon {
5372
- display: none; }
5373
-
5374
- .premium-hidden-badge-yes.premium-hamburger-menu .premium-item-badge,
5375
- .premium-hidden-badge-yes.premium-hamburger-menu .premium-sub-item-badge,
5376
- .premium-hidden-badge-yes.premium-nav-dropdown .premium-item-badge,
5377
- .premium-hidden-badge-yes.premium-nav-dropdown .premium-sub-item-badge,
5378
- .premium-hidden-badge-yes.premium-nav-slide .premium-item-badge,
5379
- .premium-hidden-badge-yes.premium-nav-slide .premium-sub-item-badge {
5380
- display: none; }
5381
-
5382
- .premium-ham-dropdown .premium-mobile-menu-container,
5383
- .premium-nav-dropdown .premium-mobile-menu-container {
5384
- -js-display: flex;
5385
- display: -webkit-box;
5386
- display: -webkit-flex;
5387
- display: -moz-box;
5388
- display: -ms-flexbox;
5389
- display: flex; }
5390
-
5391
- .premium-ham-dropdown .premium-toggle-opened .premium-toggle-close,
5392
- .premium-nav-dropdown .premium-toggle-opened .premium-toggle-close {
5393
- display: inline !important; }
5394
-
5395
- .premium-ham-dropdown .premium-toggle-opened .premium-toggle-text,
5396
- .premium-nav-dropdown .premium-toggle-opened .premium-toggle-text {
5397
- display: none !important; }
5398
-
5399
- .premium-stretch-dropdown .premium-mobile-menu-container {
5400
- position: absolute;
5401
- z-index: 9999; }
5402
-
5403
- .premium-nav-default {
5404
- display: none; }
5405
-
5406
- .premium-hamburger-toggle {
5407
- width: 100%; }
5408
-
5409
  /*
5410
  * Pointer & Pointer Animations
5411
- */
5412
- .premium-menu-link-parent::before, .premium-menu-link-parent::after {
5413
- display: block;
5414
- position: absolute;
5415
- -webkit-transition: all 0.3s cubic-bezier(0.58, 0.3, 0.005, 1);
5416
- transition: all 0.3s cubic-bezier(0.58, 0.3, 0.005, 1); }
5417
-
5418
- .premium-nav-pointer-underline .premium-menu-link-parent::after,
5419
- .premium-nav-pointer-double-line .premium-menu-link-parent::after {
5420
- content: "";
5421
- bottom: 0; }
5422
-
5423
- .premium-nav-pointer-overline .premium-menu-link-parent::before,
5424
- .premium-nav-pointer-double-line .premium-menu-link-parent::before {
5425
- content: "";
5426
- top: 0; }
5427
-
5428
- .premium-nav-pointer-underline .premium-menu-link-parent::before, .premium-nav-pointer-underline .premium-menu-link-parent::after,
5429
- .premium-nav-pointer-overline .premium-menu-link-parent::before,
5430
- .premium-nav-pointer-overline .premium-menu-link-parent::after,
5431
- .premium-nav-pointer-double-line .premium-menu-link-parent::before,
5432
- .premium-nav-pointer-double-line .premium-menu-link-parent::after {
5433
- height: 3px;
5434
- width: 100%;
5435
- left: 0;
5436
- background-color: #55595c;
5437
- z-index: 2; }
5438
-
5439
- .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before, .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after {
5440
- opacity: 0; }
5441
-
5442
- .premium-nav-pointer-underline.premium-nav-animation-none,
5443
- .premium-nav-pointer-overline.premium-nav-animation-none,
5444
- .premium-nav-pointer-double-line.premium-nav-animation-none {
5445
- -webkit-transition-duration: 0s;
5446
- transition-duration: 0s; }
5447
- .premium-nav-pointer-underline.premium-nav-animation-none .premium-menu-link-parent,
5448
- .premium-nav-pointer-underline.premium-nav-animation-none .premium-menu-link-parent::before,
5449
- .premium-nav-pointer-underline.premium-nav-animation-none .premium-menu-link-parent::after,
5450
- .premium-nav-pointer-underline.premium-nav-animation-none .premium-menu-link-parent:focus,
5451
- .premium-nav-pointer-underline.premium-nav-animation-none .premium-menu-link-parent:hover,
5452
- .premium-nav-pointer-overline.premium-nav-animation-none .premium-menu-link-parent,
5453
- .premium-nav-pointer-overline.premium-nav-animation-none .premium-menu-link-parent::before,
5454
- .premium-nav-pointer-overline.premium-nav-animation-none .premium-menu-link-parent::after,
5455
- .premium-nav-pointer-overline.premium-nav-animation-none .premium-menu-link-parent:focus,
5456
- .premium-nav-pointer-overline.premium-nav-animation-none .premium-menu-link-parent:hover,
5457
- .premium-nav-pointer-double-line.premium-nav-animation-none .premium-menu-link-parent,
5458
- .premium-nav-pointer-double-line.premium-nav-animation-none .premium-menu-link-parent::before,
5459
- .premium-nav-pointer-double-line.premium-nav-animation-none .premium-menu-link-parent::after,
5460
- .premium-nav-pointer-double-line.premium-nav-animation-none .premium-menu-link-parent:focus,
5461
- .premium-nav-pointer-double-line.premium-nav-animation-none .premium-menu-link-parent:hover {
5462
- -webkit-transition-duration: 0s;
5463
- transition-duration: 0s; }
5464
-
5465
- .premium-nav-pointer-underline.premium-nav-animation-slide .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after,
5466
- .premium-nav-pointer-double-line.premium-nav-animation-slide .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after {
5467
- width: 10px;
5468
- inset-inline-start: 100%; }
5469
-
5470
- .premium-nav-pointer-overline.premium-nav-animation-slide .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before,
5471
- .premium-nav-pointer-double-line.premium-nav-animation-slide .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
5472
- width: 10px;
5473
- left: -20px; }
5474
-
5475
- .premium-nav-pointer-underline.premium-nav-animation-grow .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before, .premium-nav-pointer-underline.premium-nav-animation-grow .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after,
5476
- .premium-nav-pointer-overline.premium-nav-animation-grow .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before,
5477
- .premium-nav-pointer-overline.premium-nav-animation-grow .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after,
5478
- .premium-nav-pointer-double-line.premium-nav-animation-grow .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before,
5479
- .premium-nav-pointer-double-line.premium-nav-animation-grow .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after {
5480
- height: 0;
5481
- width: 0;
5482
- left: 50%; }
5483
-
5484
- .premium-nav-pointer-underline.premium-nav-animation-drop-in .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before,
5485
- .premium-nav-pointer-overline.premium-nav-animation-drop-in .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before,
5486
- .premium-nav-pointer-double-line.premium-nav-animation-drop-in .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
5487
- top: -10px; }
5488
-
5489
- .premium-nav-pointer-underline.premium-nav-animation-drop-in .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after,
5490
- .premium-nav-pointer-overline.premium-nav-animation-drop-in .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after,
5491
- .premium-nav-pointer-double-line.premium-nav-animation-drop-in .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after {
5492
- bottom: -10px; }
5493
-
5494
- .premium-nav-pointer-underline.premium-nav-animation-drop-out .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before,
5495
- .premium-nav-pointer-overline.premium-nav-animation-drop-out .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before,
5496
- .premium-nav-pointer-double-line.premium-nav-animation-drop-out .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
5497
- top: 10px; }
5498
-
5499
- .premium-nav-pointer-underline.premium-nav-animation-drop-out .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after,
5500
- .premium-nav-pointer-overline.premium-nav-animation-drop-out .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after,
5501
- .premium-nav-pointer-double-line.premium-nav-animation-drop-out .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after {
5502
- bottom: 10px; }
5503
-
5504
- .premium-nav-pointer-framed .premium-menu-link-parent::before {
5505
- content: ""; }
5506
-
5507
- .premium-nav-pointer-framed .premium-menu-link-parent::before, .premium-nav-pointer-framed .premium-menu-link-parent::after {
5508
- background: transparent;
5509
- left: 0;
5510
- top: 0;
5511
- bottom: 0;
5512
- right: 0;
5513
- border: 3px solid #55595c; }
5514
-
5515
- .premium-nav-pointer-framed.premium-nav-animation-grow .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
5516
- -webkit-transform: scale(0.75);
5517
- -ms-transform: scale(0.75);
5518
- transform: scale(0.75); }
5519
-
5520
- .premium-nav-pointer-framed.premium-nav-animation-shrink .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
5521
- -webkit-transform: scale(1.25);
5522
- -ms-transform: scale(1.25);
5523
- transform: scale(1.25); }
5524
-
5525
- .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent::before, .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent::after {
5526
- width: 3px;
5527
- height: 3px; }
5528
-
5529
- .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent::before {
5530
- border-width: 0 0 3px 3px;
5531
- -webkit-transition: width 0.1s 0.2s, height 0.1s 0.3s, opacity 0.12s 0.22s;
5532
- transition: width 0.1s 0.2s, height 0.1s 0.3s, opacity 0.12s 0.22s; }
5533
-
5534
- .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent::after {
5535
- content: "";
5536
- top: auto;
5537
- bottom: 0;
5538
- left: auto;
5539
- right: 0;
5540
- border-width: 3px 3px 0 0;
5541
- -webkit-transition: width 0.1s, height 0.1s 0.1s, opacity 0.02s 0.18s;
5542
- transition: width 0.1s, height 0.1s 0.1s, opacity 0.02s 0.18s; }
5543
-
5544
- .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent:hover::before, .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent:focus::before {
5545
- -webkit-transition: opacity 0.02s, height 0.1s, width 0.1s 0.1s;
5546
- transition: opacity 0.02s, height 0.1s, width 0.1s 0.1s; }
5547
-
5548
- .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent:hover::after, .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent:focus::after {
5549
- -webkit-transition: opacity 0.02s 0.2s, height 0.1s 0.2s, width 0.1s 0.3s;
5550
- transition: opacity 0.02s 0.2s, height 0.1s 0.2s, width 0.1s 0.3s; }
5551
-
5552
- .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent:hover::before, .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent:hover::after, .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent:focus::before, .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent:focus::after {
5553
- width: 100%;
5554
- height: 100%; }
5555
-
5556
- .premium-nav-pointer-framed.premium-nav-animation-draw .premium-active-item .premium-menu-link-parent::before {
5557
- -webkit-transition: opacity 0.02s, height 0.1s, width 0.1s 0.1s;
5558
- transition: opacity 0.02s, height 0.1s, width 0.1s 0.1s; }
5559
-
5560
- .premium-nav-pointer-framed.premium-nav-animation-draw .premium-active-item .premium-menu-link-parent::after {
5561
- -webkit-transition: opacity 0.02s 0.2s, height 0.1s 0.2s, width 0.1s 0.3s;
5562
- transition: opacity 0.02s 0.2s, height 0.1s 0.2s, width 0.1s 0.3s; }
5563
-
5564
- .premium-nav-pointer-framed.premium-nav-animation-draw .premium-active-item .premium-menu-link-parent::before, .premium-nav-pointer-framed.premium-nav-animation-draw .premium-active-item .premium-menu-link-parent::after {
5565
- width: 100%;
5566
- height: 100%; }
5567
-
5568
- .premium-nav-pointer-framed.premium-nav-animation-corners .premium-menu-link-parent::before {
5569
- border-width: 3px 0 0 3px; }
5570
-
5571
- .premium-nav-pointer-framed.premium-nav-animation-corners .premium-menu-link-parent::after {
5572
- content: "";
5573
- top: auto;
5574
- bottom: 0;
5575
- left: auto;
5576
- right: 0;
5577
- border-width: 0 3px 3px 0; }
5578
-
5579
- .premium-nav-pointer-framed.premium-nav-animation-corners .premium-menu-link-parent::before, .premium-nav-pointer-framed.premium-nav-animation-corners .premium-menu-link-parent::after {
5580
- width: 3px;
5581
- height: 3px; }
5582
-
5583
- .premium-nav-pointer-framed.premium-nav-animation-corners .premium-menu-link-parent:hover::before, .premium-nav-pointer-framed.premium-nav-animation-corners .premium-menu-link-parent:hover::after, .premium-nav-pointer-framed.premium-nav-animation-corners .premium-menu-link-parent:focus::before, .premium-nav-pointer-framed.premium-nav-animation-corners .premium-menu-link-parent:focus::after {
5584
- width: 100%;
5585
- height: 100%;
5586
- -webkit-transition: opacity 2ms, width 0.4s, height 0.4s;
5587
- transition: opacity 2ms, width 0.4s, height 0.4s; }
5588
-
5589
- .premium-nav-pointer-framed.premium-nav-animation-corners .premium-active-item .premium-menu-link-parent::before, .premium-nav-pointer-framed.premium-nav-animation-corners .premium-active-item .premium-menu-link-parent::after {
5590
- width: 100%;
5591
- height: 100%;
5592
- -webkit-transition: opacity 2ms, width 0.4s, height 0.4s;
5593
- transition: opacity 2ms, width 0.4s, height 0.4s; }
5594
-
5595
- .premium-nav-pointer-text.premium-nav-animation-grow .premium-menu-link-parent:hover, .premium-nav-pointer-text.premium-nav-animation-grow .premium-menu-link-parent:focus {
5596
- -webkit-transform: scale(1.2);
5597
- -ms-transform: scale(1.2);
5598
- transform: scale(1.2); }
5599
-
5600
- .premium-nav-pointer-text.premium-nav-animation-shrink .premium-menu-link-parent:hover, .premium-nav-pointer-text.premium-nav-animation-shrink .premium-menu-link-parent:focus {
5601
- -webkit-transform: scale(0.8);
5602
- -ms-transform: scale(0.8);
5603
- transform: scale(0.8); }
5604
-
5605
- .premium-nav-pointer-text.premium-nav-animation-sink .premium-menu-link-parent:hover, .premium-nav-pointer-text.premium-nav-animation-sink .premium-menu-link-parent:focus {
5606
- -webkit-transform: translateY(8px);
5607
- -ms-transform: translateY(8px);
5608
- transform: translateY(8px); }
5609
-
5610
- .premium-nav-pointer-text.premium-nav-animation-float .premium-menu-link-parent:hover, .premium-nav-pointer-text.premium-nav-animation-float .premium-menu-link-parent:focus {
5611
- -webkit-transform: translateY(-8px);
5612
- -ms-transform: translateY(-8px);
5613
- transform: translateY(-8px); }
5614
-
5615
- .premium-nav-pointer-text.premium-nav-animation-skew .premium-menu-link-parent:hover, .premium-nav-pointer-text.premium-nav-animation-skew .premium-menu-link-parent:focus {
5616
- -webkit-transform: skew(-8deg);
5617
- -ms-transform: skew(-8deg);
5618
- transform: skew(-8deg); }
5619
-
5620
- .premium-nav-pointer-text.premium-nav-animation-rotate .premium-menu-link-parent:hover, .premium-nav-pointer-text.premium-nav-animation-rotate .premium-menu-link-parent:focus {
5621
- -webkit-transform: rotate(6deg);
5622
- -ms-transform: rotate(6deg);
5623
- transform: rotate(6deg); }
5624
-
5625
- .premium-nav-pointer-background .premium-menu-link-parent::before {
5626
- top: 0;
5627
- left: 0;
5628
- right: 0;
5629
- bottom: 0;
5630
- background: #55595c;
5631
- background-color: #55595c;
5632
- z-index: -1; }
5633
-
5634
- .premium-nav-pointer-background .premium-menu-link-parent::before, .premium-nav-pointer-background .premium-menu-link-parent::after {
5635
- content: "";
5636
- -webkit-transition: 0.3s;
5637
- transition: 0.3s; }
5638
-
5639
- .premium-nav-pointer-background.premium-nav-animation-grow .premium-menu-link-parent::before {
5640
- -webkit-transform: scale(0.5);
5641
- -ms-transform: scale(0.5);
5642
- transform: scale(0.5); }
5643
-
5644
- .premium-nav-pointer-background.premium-nav-animation-grow .premium-menu-link-parent:hover::before, .premium-nav-pointer-background.premium-nav-animation-grow .premium-menu-link-parent:focus::before {
5645
- -webkit-transform: scale(1);
5646
- -ms-transform: scale(1);
5647
- transform: scale(1); }
5648
-
5649
- .premium-nav-pointer-background.premium-nav-animation-grow .premium-active-item .premium-menu-link-parent::before {
5650
- -webkit-transform: scale(1);
5651
- -ms-transform: scale(1);
5652
- transform: scale(1); }
5653
-
5654
- .premium-nav-pointer-background.premium-nav-animation-shrink .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
5655
- -webkit-transform: scale(1.2);
5656
- -ms-transform: scale(1.2);
5657
- transform: scale(1.2);
5658
- -webkit-transition: 0.3;
5659
- transition: 0.3; }
5660
-
5661
- .premium-nav-pointer-background.premium-nav-animation-sweep-left .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
5662
- left: 100%; }
5663
-
5664
- .premium-nav-pointer-background.premium-nav-animation-sweep-right .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
5665
- right: 100%; }
5666
-
5667
- .premium-nav-pointer-background.premium-nav-animation-sweep-up .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
5668
- top: 100%; }
5669
-
5670
- .premium-nav-pointer-background.premium-nav-animation-sweep-down .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
5671
- bottom: 100%; }
5672
-
5673
- .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-menu-link-parent::after, .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-menu-link-parent::after {
5674
- top: 0;
5675
- left: 0;
5676
- right: 0;
5677
- bottom: 0;
5678
- background: #55595c;
5679
- background-color: #55595c;
5680
- z-index: -1; }
5681
-
5682
- .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-menu-link-parent::before {
5683
- top: 0;
5684
- bottom: 100%; }
5685
-
5686
- .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-menu-link-parent::after {
5687
- top: 100%;
5688
- bottom: 0; }
5689
-
5690
- .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-menu-link-parent:hover::before, .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-menu-link-parent:focus::before {
5691
- bottom: 50%; }
5692
-
5693
- .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-menu-link-parent:hover::after, .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-menu-link-parent:focus::after {
5694
- top: 50%; }
5695
-
5696
- .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-active-item .premium-menu-link-parent::before {
5697
- bottom: 50%; }
5698
-
5699
- .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-active-item .premium-menu-link-parent::after {
5700
- top: 50%; }
5701
-
5702
- .premium-nav-pointer-background.premium-nav-animation-shutter-out-vertical .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
5703
- bottom: 50%;
5704
- top: 50%; }
5705
-
5706
- .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-menu-link-parent::before {
5707
- right: 0;
5708
- left: 100%; }
5709
-
5710
- .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-menu-link-parent::after {
5711
- right: 100%;
5712
- left: 0; }
5713
-
5714
- .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-menu-link-parent:hover::before, .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-menu-link-parent:focus::before {
5715
- left: 50%; }
5716
-
5717
- .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-menu-link-parent:hover::after, .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-menu-link-parent:focus::after {
5718
- right: 50%; }
5719
-
5720
- .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-active-item .premium-menu-link-parent::before {
5721
- left: 50%; }
5722
-
5723
- .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-active-item .premium-menu-link-parent::after {
5724
- right: 50%; }
5725
-
5726
- .premium-nav-pointer-background.premium-nav-animation-shutter-out-horizontal .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
5727
- left: 50%;
5728
- right: 50%; }
5729
-
5730
- .premium-active-item::before, .premium-active-item::after,
5731
- .premium-menu-link-parent:hover::before,
5732
- .premium-menu-link-parent:hover::after,
5733
- .premium-menu-link-parent:focus::before,
5734
- .premium-menu-link-parent:focus::after {
5735
- -webkit-transform: scale(1);
5736
- -ms-transform: scale(1);
5737
- transform: scale(1); }
5738
-
5739
- /**Sub Menu Animation*/
5740
- .premium-nav-menu-item .premium-sub-menu,
5741
- .premium-nav-menu-item .premium-mega-content-container {
5742
- -webkit-transition: 0.5s all ease-in-out;
5743
- transition: 0.5s all ease-in-out;
5744
- -webkit-transition-delay: 0.1s;
5745
- transition-delay: 0.1s; }
5746
-
5747
- [class*="premium-nav-slide-"].premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item:hover > .premium-sub-menu,
5748
- [class*="premium-nav-slide-"].premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item:hover > .premium-mega-content-container,
5749
- [class*="premium-nav-slide-"].premium-nav-hor:not(.premium-hamburger-menu) .premium-sub-menu:hover > .premium-sub-menu,
5750
- [class*="premium-nav-slide-"].premium-nav-ver:not(.premium-hamburger-menu) .premium-nav-menu-item:hover > .premium-sub-menu,
5751
- [class*="premium-nav-slide-"].premium-nav-ver:not(.premium-hamburger-menu) .premium-nav-menu-item:hover > .premium-mega-content-container,
5752
- [class*="premium-nav-slide-"].premium-nav-ver:not(.premium-hamburger-menu) .premium-sub-menu:hover > .premium-sub-menu {
5753
- -webkit-transform: translate(0);
5754
- -ms-transform: translate(0);
5755
- transform: translate(0); }
5756
-
5757
- .premium-nav-slide-up.premium-nav-hor:not(.premium-hamburger-menu) .premium-sub-menu,
5758
- .premium-nav-slide-up.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-content-container,
5759
- .premium-nav-slide-up.premium-nav-ver:not(.premium-hamburger-menu) .premium-sub-menu,
5760
- .premium-nav-slide-up.premium-nav-ver:not(.premium-hamburger-menu) .premium-mega-content-container {
5761
- -webkit-transform: translateY(10px);
5762
- -ms-transform: translateY(10px);
5763
- transform: translateY(10px); }
5764
-
5765
- .premium-nav-slide-down.premium-nav-hor:not(.premium-hamburger-menu) .premium-sub-menu,
5766
- .premium-nav-slide-down.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-content-container,
5767
- .premium-nav-slide-down.premium-nav-ver:not(.premium-hamburger-menu) .premium-sub-menu,
5768
- .premium-nav-slide-down.premium-nav-ver:not(.premium-hamburger-menu) .premium-mega-content-container {
5769
- -webkit-transform: translateY(-10px);
5770
- -ms-transform: translateY(-10px);
5771
- transform: translateY(-10px); }
5772
-
5773
- .premium-nav-slide-right.premium-nav-hor:not(.premium-hamburger-menu) .premium-sub-menu,
5774
- .premium-nav-slide-right.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-content-container,
5775
- .premium-nav-slide-right.premium-nav-ver:not(.premium-hamburger-menu) .premium-sub-menu,
5776
- .premium-nav-slide-right.premium-nav-ver:not(.premium-hamburger-menu) .premium-mega-content-container {
5777
- -webkit-transform: translateX(-10px);
5778
- -ms-transform: translateX(-10px);
5779
- transform: translateX(-10px); }
5780
-
5781
- .premium-nav-slide-left.premium-nav-hor:not(.premium-hamburger-menu) .premium-sub-menu,
5782
- .premium-nav-slide-left.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-content-container,
5783
- .premium-nav-slide-left.premium-nav-ver:not(.premium-hamburger-menu) .premium-sub-menu,
5784
- .premium-nav-slide-left.premium-nav-ver:not(.premium-hamburger-menu) .premium-mega-content-container {
5785
- -webkit-transform: translateX(10px);
5786
- -ms-transform: translateX(10px);
5787
- transform: translateX(10px); }
5788
-
5789
- /**Horizontal - Static Mega Content*/
5790
- /*UP*/
5791
- .premium-nav-slide-up.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-item-static .premium-mega-content-container {
5792
- -webkit-transform: translateX(-50%) translateY(10px);
5793
- -ms-transform: translateX(-50%) translateY(10px);
5794
- transform: translateX(-50%) translateY(10px); }
5795
-
5796
- .premium-nav-slide-up.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-item-static:hover .premium-mega-content-container {
5797
- -webkit-transform: translateX(-50%) translateY(0);
5798
- -ms-transform: translateX(-50%) translateY(0);
5799
- transform: translateX(-50%) translateY(0); }
5800
-
5801
- /*DOWN*/
5802
- .premium-nav-slide-down.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-item-static .premium-mega-content-container {
5803
- -webkit-transform: translateX(-50%) translateY(-10px);
5804
- -ms-transform: translateX(-50%) translateY(-10px);
5805
- transform: translateX(-50%) translateY(-10px); }
5806
-
5807
- .premium-nav-slide-down.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-item-static:hover .premium-mega-content-container {
5808
- -webkit-transform: translateX(-50%) translateY(0);
5809
- -ms-transform: translateX(-50%) translateY(0);
5810
- transform: translateX(-50%) translateY(0); }
5811
-
5812
- /*Left*/
5813
- .premium-nav-slide-left.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-item-static .premium-mega-content-container {
5814
- -webkit-transform: translateX(-45%);
5815
- -ms-transform: translateX(-45%);
5816
- transform: translateX(-45%); }
5817
-
5818
- .premium-nav-slide-left.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-item-static:hover .premium-mega-content-container {
5819
- -webkit-transform: translateX(-50%);
5820
- -ms-transform: translateX(-50%);
5821
- transform: translateX(-50%); }
5822
-
5823
- /*Right*/
5824
- .premium-nav-slide-right.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-item-static .premium-mega-content-container {
5825
- -webkit-transform: translateX(-55%);
5826
- -ms-transform: translateX(-55%);
5827
- transform: translateX(-55%); }
5828
-
5829
- .premium-nav-slide-right.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-item-static:hover .premium-mega-content-container {
5830
- -webkit-transform: translateX(-50%);
5831
- -ms-transform: translateX(-50%);
5832
- transform: translateX(-50%); }
5833
-
5834
- /**Vertical - Static Mega Content*/
5835
- .premium-nav-slide-down.premium-nav-ver:not(.premium-hamburger-menu) .premium-mega-item-static:hover .premium-mega-content-container,
5836
- .premium-nav-slide-up.premium-nav-ver:not(.premium-hamburger-menu) .premium-mega-item-static:hover .premium-mega-content-container {
5837
- -webkit-transform: translateY(0);
5838
- -ms-transform: translateY(0);
5839
- transform: translateY(0); }
5840
-
5841
- .premium-nav-slide-right.premium-nav-ver:not(.premium-hamburger-menu) .premium-mega-item-static:hover .premium-mega-content-container,
5842
- .premium-nav-slide-left.premium-nav-ver:not(.premium-hamburger-menu) .premium-mega-item-static:hover .premium-mega-content-container {
5843
- -webkit-transform: translateX(0);
5844
- -ms-transform: translateX(0);
5845
- transform: translateX(0); }
5846
 
5847
  /************ Premium Team Members ************/
5848
  /**********************************************/
@@ -6251,255 +6251,255 @@ ul.premium-person-social-list {
6251
  width: auto;
6252
  margin-right: 20px;
6253
  -webkit-transform: translateX(15px) rotate(-90deg);
6254
- -ms-transform: translateX(15px) rotate(-90deg);
6255
- transform: translateX(15px) rotate(-90deg);
6256
- -webkit-transform-origin: center right;
6257
- -ms-transform-origin: center right;
6258
- transform-origin: center right; }
6259
-
6260
- .premium-persons-title-ccw .premium-person-container:hover .premium-person-title {
6261
- -webkit-transform: translateX(0) rotate(-90deg);
6262
- -ms-transform: translateX(0) rotate(-90deg);
6263
- transform: translateX(0) rotate(-90deg); }
6264
-
6265
- /**************** Premium Pricing Table ****************/
6266
- /*******************************************************/
6267
- .premium-pricing-table-container {
6268
- position: relative;
6269
- text-align: center;
6270
- display: inline-block;
6271
- width: 100%;
6272
- -webkit-transition: all 0.3s ease-in-out;
6273
- transition: all 0.3s ease-in-out; }
6274
-
6275
- .premium-pricing-icon-container {
6276
- -js-display: flex;
6277
- display: -webkit-box;
6278
- display: -webkit-flex;
6279
- display: -moz-box;
6280
- display: -ms-flexbox;
6281
- display: flex;
6282
- -webkit-box-pack: center;
6283
- -webkit-justify-content: center;
6284
- -moz-box-pack: center;
6285
- -ms-flex-pack: center;
6286
- justify-content: center;
6287
- line-height: 0; }
6288
- .premium-pricing-icon-container .premium-pricing-icon {
6289
- display: inline-block; }
6290
- .premium-pricing-icon-container .premium-pricing-image {
6291
- overflow: hidden; }
6292
- .premium-pricing-icon-container .premium-pricing-image img {
6293
- width: 25px;
6294
- height: 25px;
6295
- -o-object-fit: cover;
6296
- object-fit: cover; }
6297
-
6298
- .premium-badge-left {
6299
- position: absolute;
6300
- top: 0; }
6301
-
6302
- .premium-badge-right {
6303
- position: absolute;
6304
- top: 0;
6305
- right: 0; }
6306
-
6307
- .premium-badge-left {
6308
- left: 0; }
6309
-
6310
- .premium-badge-triangle.premium-badge-left .corner {
6311
- width: 0;
6312
- height: 0;
6313
- border-top: 150px solid;
6314
- border-bottom: 150px solid transparent;
6315
- border-right: 150px solid transparent; }
6316
-
6317
- .premium-badge-triangle.premium-badge-right .corner {
6318
- width: 0;
6319
- height: 0;
6320
- border-bottom: 150px solid transparent;
6321
- border-right: 150px solid;
6322
- border-left: 150px solid transparent; }
6323
-
6324
- .premium-badge-triangle span {
6325
- position: absolute;
6326
- top: 35px;
6327
- width: 100px;
6328
- text-align: center;
6329
- -webkit-transform: rotate(-45deg);
6330
- -ms-transform: rotate(-45deg);
6331
- transform: rotate(-45deg);
6332
- display: block;
6333
- text-transform: uppercase; }
6334
-
6335
- .premium-badge-triangle.premium-badge-right span {
6336
- -webkit-transform: rotate(45deg);
6337
- -ms-transform: rotate(45deg);
6338
- transform: rotate(45deg);
6339
- right: 0; }
6340
-
6341
- .premium-badge-circle {
6342
- min-width: 4em;
6343
- min-height: 4em;
6344
- line-height: 4em;
6345
- text-align: center;
6346
- -webkit-border-radius: 100%;
6347
- border-radius: 100%;
6348
- position: absolute;
6349
- z-index: 1; }
6350
-
6351
- .premium-badge-stripe {
6352
- position: absolute;
6353
- -webkit-transform: rotate(90deg);
6354
- -ms-transform: rotate(90deg);
6355
- transform: rotate(90deg);
6356
- width: 15em;
6357
- overflow: hidden;
6358
- height: 15em; }
6359
- .premium-badge-stripe.premium-badge-left {
6360
- -webkit-transform: rotate(0);
6361
- -ms-transform: rotate(0);
6362
- transform: rotate(0); }
6363
- .premium-badge-stripe .corner {
6364
- text-align: center;
6365
- left: 0;
6366
- width: 150%;
6367
- -webkit-transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
6368
- -ms-transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
6369
- transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
6370
- margin-top: 35px;
6371
- font-size: 13px;
6372
- line-height: 2;
6373
- font-weight: 800;
6374
- text-transform: uppercase; }
6375
-
6376
- .premium-badge-flag .corner {
6377
- text-align: center;
6378
- -webkit-border-radius: 4px 4px 0 4px;
6379
- border-radius: 4px 4px 0 4px;
6380
- padding: 3px 15px;
6381
- position: absolute;
6382
- top: 10%;
6383
- right: -8px; }
6384
- .premium-badge-flag .corner::before, .premium-badge-flag .corner::after {
6385
- content: "";
6386
- display: block;
6387
- position: absolute;
6388
- width: 0;
6389
- height: 0;
6390
- top: 100%;
6391
- right: 0;
6392
- border-bottom: 8px solid transparent; }
6393
-
6394
- .elementor-widget-premium-addon-pricing-table .elementor-widget-container {
6395
- overflow: visible !important; }
6396
-
6397
- .premium-badge-flag .corner::after {
6398
- border-left: 8px solid rgba(0, 0, 0, 0.2); }
6399
-
6400
- .premium-pricing-price-currency {
6401
- position: relative; }
6402
-
6403
- .premium-pricing-button-container {
6404
- display: block; }
6405
-
6406
- .premium-pricing-list {
6407
- -js-display: flex;
6408
- display: -webkit-box;
6409
- display: -webkit-flex;
6410
- display: -moz-box;
6411
- display: -ms-flexbox;
6412
- display: flex;
6413
- -webkit-box-orient: vertical;
6414
- -webkit-box-direction: normal;
6415
- -webkit-flex-direction: column;
6416
- -moz-box-orient: vertical;
6417
- -moz-box-direction: normal;
6418
- -ms-flex-direction: column;
6419
- flex-direction: column;
6420
- list-style-type: none;
6421
- margin: 0; }
6422
- .premium-pricing-list .premium-pricing-list-item {
6423
- -js-display: flex;
6424
- display: -webkit-box;
6425
- display: -webkit-flex;
6426
- display: -moz-box;
6427
- display: -ms-flexbox;
6428
- display: flex;
6429
- -webkit-box-align: center;
6430
- -webkit-align-items: center;
6431
- -moz-box-align: center;
6432
- -ms-flex-align: center;
6433
- align-items: center; }
6434
- .premium-pricing-list .premium-pricing-list-item svg {
6435
- width: 50px;
6436
- height: 50px; }
6437
- .premium-pricing-list .premium-pricing-list-item img {
6438
- width: 30px;
6439
- height: 30px;
6440
- -o-object-fit: cover;
6441
- object-fit: cover; }
6442
- .premium-pricing-list .premium-pricing-list-span {
6443
- position: relative; }
6444
- .premium-pricing-list .list-item-tooltip {
6445
- border-bottom: 1px dotted; }
6446
- .premium-pricing-list .premium-pricing-list-tooltip {
6447
- position: absolute;
6448
- top: -webkit-calc(100% + 1px);
6449
- top: calc(100% + 1px);
6450
- left: 0;
6451
- visibility: hidden;
6452
- padding: 15px 20px;
6453
- -webkit-border-radius: 5px;
6454
- border-radius: 5px;
6455
- min-width: 200px;
6456
- overflow: hidden;
6457
- text-align: left;
6458
- font-size: 0.8rem;
6459
- color: #fff;
6460
- background-color: #aaa; }
6461
-
6462
- .premium-pricing-features-left .premium-pricing-list-span {
6463
- text-align: left; }
6464
-
6465
- .premium-pricing-features-center .premium-pricing-list-span {
6466
- text-align: center; }
6467
-
6468
- .premium-pricing-features-right .premium-pricing-list-span {
6469
- text-align: right; }
6470
-
6471
- .premium-pricing-list-span:hover .premium-pricing-list-tooltip {
6472
- z-index: 99;
6473
- visibility: visible;
6474
- opacity: 1; }
6475
-
6476
- .premium-pricing-slashed-price-value {
6477
- display: inline-block;
6478
- font-size: 20px;
6479
- font-weight: 400;
6480
- margin-right: 5px; }
6481
-
6482
- .premium-pricing-price-value {
6483
- font-size: 70px; }
6484
-
6485
- .premium-pricing-description-container li {
6486
- list-style-position: inside;
6487
- text-indent: -40px; }
6488
-
6489
- @-moz-document url-prefix() {
6490
- .premium-pricing-description-container li {
6491
- text-indent: 0px; } }
6492
-
6493
- .premium-pricing-price-button {
6494
- display: block;
6495
- padding: 6px 12px;
6496
- line-height: 1.42857143;
6497
- text-align: center;
6498
- color: #fff;
6499
- background: #6ec1e4;
6500
- margin-bottom: 0;
6501
- -webkit-transition: all 0.3s ease-in-out;
6502
- transition: all 0.3s ease-in-out; }
6503
 
6504
  /**************** Premium Progress Bar ****************/
6505
  /******************************************************/
@@ -8764,258 +8764,258 @@ html.premium-woo-qv-opened body {
8764
 
8765
  /*
8766
  * Common Title/Dual Heading
8767
- */
8768
- .premium-title-bg-text:before {
8769
- position: absolute;
8770
- content: attr(data-background);
8771
- top: 0;
8772
- left: 0;
8773
- text-align: left; }
8774
-
8775
- .premium-bg-text-yes .elementor-widget-container:before {
8776
- position: absolute;
8777
- top: 0;
8778
- left: 0;
8779
- text-align: left; }
8780
-
8781
- .premium-mask-yes .premium-dual-header-first-clip .premium-dual-header-first-span .premium-mask-span,
8782
- .premium-mask-yes .premium-dual-header-second-clip .premium-mask-span {
8783
- background: inherit; }
8784
-
8785
- .premium-mask-yes .premium-mask-span {
8786
- position: relative;
8787
- overflow: hidden;
8788
- -js-display: inline-flex !important;
8789
- display: -webkit-inline-box !important;
8790
- display: -webkit-inline-flex !important;
8791
- display: -moz-inline-box !important;
8792
- display: -ms-inline-flexbox !important;
8793
- display: inline-flex !important; }
8794
- .premium-mask-yes .premium-mask-span::after {
8795
- content: "";
8796
- position: absolute;
8797
- top: 0;
8798
- right: 0px;
8799
- width: 100%;
8800
- height: 100%;
8801
- background-color: currentColor;
8802
- -webkit-backface-visibility: visible;
8803
- backface-visibility: visible; }
8804
-
8805
- .premium-mask-active.premium-mask-tr .premium-mask-span::after {
8806
- -webkit-animation: pa-mask-tr 1.7s cubic-bezier(1, 0, 0.18, 1) forwards;
8807
- animation: pa-mask-tr 1.7s cubic-bezier(1, 0, 0.18, 1) forwards;
8808
- -webkit-transform: translateX(-103%);
8809
- -ms-transform: translateX(-103%);
8810
- transform: translateX(-103%); }
8811
-
8812
- .premium-mask-active.premium-mask-tl .premium-mask-span::after {
8813
- -webkit-animation: pa-mask-tl 1.7s cubic-bezier(1, 0, 0.18, 1) forwards;
8814
- animation: pa-mask-tl 1.7s cubic-bezier(1, 0, 0.18, 1) forwards;
8815
- -webkit-transform: translateX(103%);
8816
- -ms-transform: translateX(103%);
8817
- transform: translateX(103%); }
8818
-
8819
- .premium-mask-active.premium-mask-tb .premium-mask-span::after {
8820
- -webkit-animation: pa-mask-tb 1.7s cubic-bezier(1, 0, 0.18, 1) forwards;
8821
- animation: pa-mask-tb 1.7s cubic-bezier(1, 0, 0.18, 1) forwards;
8822
- -webkit-transform: translateY(-103%);
8823
- -ms-transform: translateY(-103%);
8824
- transform: translateY(-103%); }
8825
-
8826
- .premium-mask-active.premium-mask-tt .premium-mask-span::after {
8827
- -webkit-animation: pa-mask-tt 1.7s cubic-bezier(1, 0, 0.18, 1) forwards;
8828
- animation: pa-mask-tt 1.7s cubic-bezier(1, 0, 0.18, 1) forwards;
8829
- -webkit-transform: translateY(103%);
8830
- -ms-transform: translateY(103%);
8831
- transform: translateY(103%); }
8832
-
8833
- @-webkit-keyframes pa-mask-tr {
8834
- 0% {
8835
- -webkit-transform: translateX(0%);
8836
- transform: translateX(0%); }
8837
- 100% {
8838
- -webkit-transform: translateX(103%);
8839
- transform: translateX(103%); } }
8840
-
8841
- @keyframes pa-mask-tr {
8842
- 0% {
8843
- -webkit-transform: translateX(0%);
8844
- transform: translateX(0%); }
8845
- 100% {
8846
- -webkit-transform: translateX(103%);
8847
- transform: translateX(103%); } }
8848
-
8849
- @-webkit-keyframes pa-mask-tl {
8850
- 0% {
8851
- -webkit-transform: translateX(0%);
8852
- transform: translateX(0%); }
8853
- 100% {
8854
- -webkit-transform: translateX(-103%);
8855
- transform: translateX(-103%); } }
8856
-
8857
- @keyframes pa-mask-tl {
8858
- 0% {
8859
- -webkit-transform: translateX(0%);
8860
- transform: translateX(0%); }
8861
- 100% {
8862
- -webkit-transform: translateX(-103%);
8863
- transform: translateX(-103%); } }
8864
-
8865
- @-webkit-keyframes pa-mask-tb {
8866
- 0% {
8867
- -webkit-transform: translateY(0%);
8868
- transform: translateY(0%); }
8869
- 100% {
8870
- -webkit-transform: translateY(103%);
8871
- transform: translateY(103%); } }
8872
-
8873
- @keyframes pa-mask-tb {
8874
- 0% {
8875
- -webkit-transform: translateY(0%);
8876
- transform: translateY(0%); }
8877
- 100% {
8878
- -webkit-transform: translateY(103%);
8879
- transform: translateY(103%); } }
8880
-
8881
- @-webkit-keyframes pa-mask-tt {
8882
- 0% {
8883
- -webkit-transform: translateY(0%);
8884
- transform: translateY(0%); }
8885
- 100% {
8886
- -webkit-transform: translateY(-103%);
8887
- transform: translateY(-103%); } }
8888
-
8889
- @keyframes pa-mask-tt {
8890
- 0% {
8891
- -webkit-transform: translateY(0%);
8892
- transform: translateY(0%); }
8893
- 100% {
8894
- -webkit-transform: translateY(-103%);
8895
- transform: translateY(-103%); } }
8896
-
8897
  /*
8898
  * Common Buttons Style.
8899
- */
8900
- .premium-button .premium-lottie-animation,
8901
- .premium-image-button .premium-lottie-animation {
8902
- -js-display: flex;
8903
- display: -webkit-box;
8904
- display: -webkit-flex;
8905
- display: -moz-box;
8906
- display: -ms-flexbox;
8907
- display: flex; }
8908
-
8909
- .premium-button svg,
8910
- .premium-image-button svg {
8911
- width: 30px;
8912
- height: 30px; }
8913
-
8914
- .premium-btn-sm,
8915
- .premium-btn-md,
8916
- .premium-btn-lg,
8917
- .premium-btn-block {
8918
- background-color: #eee;
8919
- color: #042551;
8920
- margin: 0px;
8921
- text-decoration: none; }
8922
- .premium-btn-sm:hover,
8923
- .premium-btn-md:hover,
8924
- .premium-btn-lg:hover,
8925
- .premium-btn-block:hover {
8926
- background-color: #54595f;
8927
- color: #eee; }
8928
-
8929
- .premium-btn-sm {
8930
- padding: 12px 24px;
8931
- font-size: 14px;
8932
- line-height: 1; }
8933
-
8934
- .premium-btn-md {
8935
- padding: 14px 26px;
8936
- font-size: 16px;
8937
- line-height: 1.2; }
8938
-
8939
- .premium-btn-lg {
8940
- padding: 16px 28px;
8941
- font-size: 18px;
8942
- line-height: 1.3333; }
8943
-
8944
- .premium-btn-block {
8945
- font-size: 18px;
8946
- line-height: 1;
8947
- padding: 20px 0px;
8948
- width: 100%;
8949
- text-align: center; }
8950
-
8951
- .premium-button-text {
8952
- display: inline-block;
8953
- width: 100%; }
8954
-
8955
  /*
8956
  * Common Button/Image Button Mouse Detect Effect.
8957
- */
8958
- .premium-mouse-detect-yes .premium-button-style6 .premium-button-style6-bg {
8959
- position: absolute;
8960
- z-index: 0;
8961
- top: 0;
8962
- left: 0;
8963
- width: 0px;
8964
- height: 0px;
8965
- -webkit-border-radius: 50%;
8966
- border-radius: 50%;
8967
- display: block;
8968
- -webkit-transform: translate(-50%, -50%);
8969
- -ms-transform: translate(-50%, -50%);
8970
- transform: translate(-50%, -50%);
8971
- -webkit-transition: width 0.4s ease-in-out, height 0.4s ease-in-out;
8972
- transition: width 0.4s ease-in-out, height 0.4s ease-in-out; }
8973
-
8974
- .premium-mouse-detect-yes .premium-button-style6:hover .premium-button-style6-bg {
8975
- width: 225%;
8976
- height: 560px; }
8977
-
8978
- .premium-mouse-detect-yes .premium-button-style6:before {
8979
- width: 0;
8980
- height: 0; }
8981
-
8982
- /** Loader */
8983
- .premium-loader {
8984
- border: 3px solid #f3f3f3;
8985
- border-top-width: 3px;
8986
- border-top-style: solid;
8987
- border-top-color: #f3f3f3;
8988
- -webkit-border-radius: 50%;
8989
- border-radius: 50%;
8990
- border-top: 3px solid;
8991
- border-top-color: #bbb;
8992
- width: 30px;
8993
- height: 30px;
8994
- -webkit-animation: spin 2s linear infinite;
8995
- animation: spin 2s linear infinite;
8996
- margin: 0 auto; }
8997
-
8998
- /** Common Animation */
8999
- @-webkit-keyframes spin {
9000
- 0% {
9001
- -webkit-transform: rotate(0deg);
9002
- transform: rotate(0deg); }
9003
- 100% {
9004
- -webkit-transform: rotate(360deg);
9005
- transform: rotate(360deg); } }
9006
- @keyframes spin {
9007
- 0% {
9008
- -webkit-transform: rotate(0deg);
9009
- transform: rotate(0deg); }
9010
- 100% {
9011
- -webkit-transform: rotate(360deg);
9012
- transform: rotate(360deg); } }
9013
-
9014
- /**Notice*/
9015
- .premium-error-notice {
9016
- width: 100%;
9017
- padding: 10px;
9018
- color: #b94a48;
9019
- background-color: #f2dede;
9020
- border-color: #eed3d7;
9021
- text-align: center; }
3229
  -webkit-transform: rotateX(180deg);
3230
  transform: rotateX(180deg); } }
3231
 
3232
+ /**************** Premium Bullet List ****************/
3233
+ /*****************************************************/
3234
+ .premium-bullet-list-box {
3235
+ -js-display: flex;
3236
+ display: -webkit-box;
3237
+ display: -webkit-flex;
3238
+ display: -moz-box;
3239
+ display: -ms-flexbox;
3240
+ display: flex;
3241
+ -webkit-flex-wrap: wrap;
3242
+ -ms-flex-wrap: wrap;
3243
+ flex-wrap: wrap;
3244
+ -webkit-box-orient: vertical;
3245
+ -webkit-box-direction: normal;
3246
+ -webkit-flex-direction: column;
3247
+ -moz-box-orient: vertical;
3248
+ -moz-box-direction: normal;
3249
+ -ms-flex-direction: column;
3250
+ flex-direction: column; }
3251
+ .premium-bullet-list-box .premium-bullet-list-content-grow-lc {
3252
+ -webkit-transform-origin: left center;
3253
+ -ms-transform-origin: left center;
3254
+ transform-origin: left center; }
3255
+ .premium-bullet-list-box .premium-bullet-list-content-grow-rc {
3256
+ -webkit-transform-origin: right center;
3257
+ -ms-transform-origin: right center;
3258
+ transform-origin: right center; }
3259
+ .premium-bullet-list-box .premium-bullet-list-content-grow-cc {
3260
+ -webkit-transform-origin: center center;
3261
+ -ms-transform-origin: center center;
3262
+ transform-origin: center center; }
3263
+
3264
+ .premium-bullet-list-content {
3265
+ -js-display: flex;
3266
+ display: -webkit-box;
3267
+ display: -webkit-flex;
3268
+ display: -moz-box;
3269
+ display: -ms-flexbox;
3270
+ display: flex;
3271
+ -webkit-transition: all 0.3s ease-in-out;
3272
+ transition: all 0.3s ease-in-out;
3273
+ width: auto;
3274
+ position: relative; }
3275
+ .premium-bullet-list-content .premium-bullet-list-text span,
3276
+ .premium-bullet-list-content .premium-bullet-list-wrapper {
3277
+ display: inline-block;
3278
+ -webkit-align-self: center;
3279
+ -ms-flex-item-align: center;
3280
+ align-self: center;
3281
+ -webkit-transition: all 0.3s ease-in-out;
3282
+ transition: all 0.3s ease-in-out; }
3283
+ .premium-bullet-list-content .premium-bullet-list-text span {
3284
+ margin: 0 5px;
3285
+ -webkit-box-flex: 1;
3286
+ -webkit-flex: 1;
3287
+ -moz-box-flex: 1;
3288
+ -ms-flex: 1;
3289
+ flex: 1; }
3290
+ .premium-bullet-list-content .premium-bullet-list-icon-text p {
3291
+ font-size: 18px;
3292
+ background-color: #eee;
3293
+ padding: 1px 5px;
3294
+ -webkit-border-radius: 2px;
3295
+ border-radius: 2px; }
3296
+ .premium-bullet-list-content .premium-bullet-list-text span,
3297
+ .premium-bullet-list-content .premium-bullet-list-icon-text p,
3298
+ .premium-bullet-list-content .premium-bullet-list-wrapper img,
3299
+ .premium-bullet-list-content .premium-bullet-list-wrapper svg,
3300
+ .premium-bullet-list-content .premium-bullet-list-wrapper i {
3301
+ -webkit-transition: all 0.3s ease-in-out;
3302
+ transition: all 0.3s ease-in-out; }
3303
+ .premium-bullet-list-content .premium-bullet-list-wrapper {
3304
+ position: relative;
3305
+ line-height: 0; }
3306
+ .premium-bullet-list-content .premium-bullet-list-wrapper img,
3307
+ .premium-bullet-list-content .premium-bullet-list-wrapper svg {
3308
+ width: 30px !important;
3309
+ height: 30px !important;
3310
+ position: relative;
3311
+ z-index: 500; }
3312
+ .premium-bullet-list-content .premium-bullet-list-wrapper i,
3313
+ .premium-bullet-list-content .premium-bullet-list-wrapper .premium-bullet-list-icon-text {
3314
+ position: relative;
3315
+ z-index: 500; }
3316
+ .premium-bullet-list-content .premium-bullet-list-wrapper i {
3317
+ width: 1.25em; }
3318
+ .premium-bullet-list-content .premium-bullet-list-link {
3319
+ position: absolute;
3320
+ top: 0;
3321
+ left: 0;
3322
+ width: 100%;
3323
+ height: 100%;
3324
+ z-index: 1000; }
3325
+
3326
+ .premium-bullet-list-content:not(:last-of-type) .premium-bullet-list-connector {
3327
+ width: 100%;
3328
+ height: 100%;
3329
+ position: absolute;
3330
+ top: 0.5em;
3331
+ z-index: 100;
3332
+ -js-display: flex;
3333
+ display: -webkit-box;
3334
+ display: -webkit-flex;
3335
+ display: -moz-box;
3336
+ display: -ms-flexbox;
3337
+ display: flex;
3338
+ -webkit-box-pack: center;
3339
+ -webkit-justify-content: center;
3340
+ -moz-box-pack: center;
3341
+ -ms-flex-pack: center;
3342
+ justify-content: center; }
3343
+ .premium-bullet-list-content:not(:last-of-type) .premium-bullet-list-connector .premium-icon-connector-content:after {
3344
+ content: "";
3345
+ border-right-width: 1px;
3346
+ border-right-style: solid;
3347
+ border-color: #333333;
3348
+ display: block;
3349
+ height: 100%; }
3350
+
3351
+ li.premium-bullet-list-content.premium-bullet-list-content-inline {
3352
+ -webkit-align-self: center;
3353
+ -ms-flex-item-align: center;
3354
+ align-self: center;
3355
+ z-index: 2; }
3356
+
3357
+ li.premium-bullet-list-content.premium-bullet-list-content-inline:not(:first-child) {
3358
+ margin: 0 3px; }
3359
+
3360
+ li.premium-bullet-list-content.premium-bullet-list-content-inline:first-child {
3361
+ margin: 0 3px 0 0; }
3362
+
3363
+ .premium-bullet-list-divider:not(:last-child) {
3364
+ width: 100%;
3365
+ -webkit-box-flex: 0;
3366
+ -webkit-flex: 0 0 100%;
3367
+ -moz-box-flex: 0;
3368
+ -ms-flex: 0 0 100%;
3369
+ flex: 0 0 100%;
3370
+ overflow: hidden; }
3371
+
3372
+ .premium-bullet-list-divider:not(:last-child):after {
3373
+ content: "";
3374
+ display: block;
3375
+ border-top-style: solid;
3376
+ border-top-width: 1px; }
3377
+
3378
+ .premium-bullet-list-divider-inline:not(:last-child) {
3379
+ float: right;
3380
+ display: inline-block;
3381
+ position: relative;
3382
+ height: 100%;
3383
+ overflow: hidden;
3384
+ -webkit-align-self: center;
3385
+ -ms-flex-item-align: center;
3386
+ align-self: center;
3387
+ margin: 0 3px; }
3388
+
3389
+ .premium-bullet-list-divider-inline:not(:last-child):after {
3390
+ content: "";
3391
+ display: block;
3392
+ border-left-width: 1px;
3393
+ height: 33px;
3394
+ border-left-style: solid; }
3395
+
3396
+ .premium-bullet-list-icon-text {
3397
+ line-height: 1.5; }
3398
+
3399
+ .premium-bullet-list-icon-text p,
3400
+ ul.premium-bullet-list-box,
3401
+ li.premium-bullet-list-content {
3402
+ margin: 0; }
3403
+
3404
+ .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-wrapper i,
3405
+ .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-text span,
3406
+ .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-icon-text p {
3407
+ color: transparent !important;
3408
+ text-shadow: 0 0 3px #aaa; }
3409
+
3410
+ .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-icon-connector-content,
3411
+ .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-wrapper .premium-lottie-animation svg,
3412
+ .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-wrapper img,
3413
+ .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-badge {
3414
+ -webkit-filter: blur(3px);
3415
+ filter: blur(3px); }
3416
+
3417
+ .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-wrapper i,
3418
+ .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-text span,
3419
+ .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-icon-text p {
3420
+ color: #aaa !important;
3421
+ text-shadow: 0 0px 0 transparent; }
3422
+
3423
+ .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-icon-connector-content,
3424
+ .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-wrapper .premium-lottie-animation svg,
3425
+ .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-wrapper img,
3426
+ .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-badge {
3427
+ -webkit-filter: none;
3428
+ filter: none; }
3429
+
3430
+ .premium-bullet-list-content .premium-bullet-list-badge {
3431
+ font-size: 11px;
3432
+ top: auto;
3433
+ min-width: -webkit-max-content;
3434
+ min-width: -moz-max-content;
3435
+ min-width: max-content;
3436
+ height: -webkit-fit-content;
3437
+ height: -moz-fit-content;
3438
+ height: fit-content; }
3439
+
3440
+ .premium-bullet-list-content .premium-bullet-list-icon-text p {
3441
+ font-size: 13px; }
3442
+
3443
+ .premium-bullet-list-gradient-effect[data-text] {
3444
+ display: inline-block;
3445
+ position: relative;
3446
+ text-decoration: none; }
3447
+
3448
+ .premium-bullet-list-gradient-effect[data-text]::before {
3449
+ content: attr(data-text);
3450
+ position: absolute;
3451
+ z-index: 1;
3452
+ overflow: hidden;
3453
+ -webkit-clip-path: polygon(0 0, 1px 0, 1px 100%, 0 100%);
3454
+ clip-path: polygon(0 0, 1px 0, 1px 100%, 0 100%);
3455
+ -webkit-background-clip: text;
3456
+ background-clip: text;
3457
+ -webkit-text-fill-color: transparent;
3458
+ -webkit-transition: all 0.4s ease;
3459
+ transition: all 0.4s ease; }
3460
+
3461
+ .premium-bullet-list-content:hover .premium-bullet-list-gradient-effect[data-text]::before,
3462
+ .premium-bullet-list-content:focus .premium-bullet-list-gradient-effect[data-text]::before {
3463
+ -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
3464
+ clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); }
3465
+
3466
+ ul[data-list-animation*="animated-"] .premium-bullet-list-divider,
3467
+ ul[data-list-animation*="animated-"] .premium-bullet-list-content,
3468
+ ul[data-list-animation*="animated-"] .premium-bullet-list-divider-inline {
3469
+ opacity: 0; }
3470
+
3471
+ .premium-bullet-list-content-grow-effect:hover {
3472
+ -webkit-transform: scale(1.07);
3473
+ -ms-transform: scale(1.07);
3474
+ transform: scale(1.07); }
3475
+
3476
+ @-webkit-keyframes spin {
3477
+ 100% {
3478
+ -webkit-transform: rotate(360deg);
3479
+ transform: rotate(360deg); } }
3480
+
3481
+ @keyframes spin {
3482
+ 100% {
3483
+ -webkit-transform: rotate(360deg);
3484
+ transform: rotate(360deg); } }
3485
 
3486
  /**************** Premium Image Button ***********/
3487
  /*************************************************/
4034
  -webkit-transition: all 0.3s ease-in-out;
4035
  transition: all 0.3s ease-in-out; }
4036
 
4037
+ /******** Premium Media Grid ********/
4038
+ /************************************/
4039
+ .premium-img-gallery-filter,
4040
+ .premium-blog-filter {
4041
+ -js-display: flex;
4042
+ display: -webkit-box;
4043
+ display: -webkit-flex;
4044
+ display: -moz-box;
4045
+ display: -ms-flexbox;
4046
+ display: flex;
4047
+ -webkit-box-align: center;
4048
+ -webkit-align-items: center;
4049
+ -moz-box-align: center;
4050
+ -ms-flex-align: center;
4051
+ align-items: center;
4052
+ -webkit-box-pack: center;
4053
+ -webkit-justify-content: center;
4054
+ -moz-box-pack: center;
4055
+ -ms-flex-pack: center;
4056
+ justify-content: center; }
4057
+
4058
+ .premium-img-gallery {
4059
+ clear: both;
4060
+ overflow: hidden; }
4061
+
4062
+ .premium-gallery-container .premium-gallery-item {
4063
+ padding: 10px;
4064
+ float: left; }
4065
+
4066
+ .premium-gallery-container .grid-sizer {
4067
+ width: 33.33%; }
4068
+
4069
+ .premium-gallery-container .pa-gallery-item {
4070
+ padding: 10px; }
4071
+
4072
+ .premium-img-gallery-filter .premium-gallery-cats-container li a.category,
4073
+ .premium-blog-filter .premium-blog-filters-container li a.category {
4074
+ outline: none;
4075
+ text-decoration: none;
4076
+ -webkit-border-radius: 75px;
4077
+ border-radius: 75px;
4078
+ margin: 15px 5px 20px;
4079
+ padding: 7px 20px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4080
  -webkit-transition: all 0.3s ease-in-out;
4081
  transition: all 0.3s ease-in-out; }
4082
+
4083
+ .pa-gallery-img {
4084
+ position: relative; }
4085
+ .pa-gallery-img .pa-gallery-whole-link {
4086
  position: absolute;
 
4087
  top: 0;
4088
+ left: 0;
4089
  width: 100%;
4090
  height: 100%;
4091
  z-index: 2; }
4092
+ .pa-gallery-img .pa-gallery-whole-link span {
4093
+ display: none; }
4094
+ .pa-gallery-img.style2 .pa-gallery-whole-link, .pa-gallery-img.style3 .pa-gallery-whole-link {
4095
+ z-index: 99; }
 
 
4096
 
4097
+ .pa-gallery-img-container {
4098
+ overflow: hidden;
4099
+ -webkit-backface-visibility: hidden;
4100
+ backface-visibility: hidden;
4101
+ -webkit-transform: translate3d(0, 0, 0);
4102
+ transform: translate3d(0, 0, 0); }
4103
+ .pa-gallery-img-container img {
4104
+ display: block;
4105
+ width: 100%;
4106
+ -webkit-transition: all 0.3s ease-in-out;
4107
+ transition: all 0.3s ease-in-out; }
4108
 
4109
+ .premium-img-gallery.gray img {
4110
+ -webkit-filter: grayscale(100%);
4111
+ filter: grayscale(100%); }
4112
 
4113
+ .premium-img-gallery.zoomout img,
4114
+ .premium-img-gallery.scale img {
4115
+ -webkit-transform: scale(1.2);
4116
+ -ms-transform: scale(1.2);
4117
+ transform: scale(1.2); }
4118
+
4119
+ .premium-img-gallery.sepia img {
4120
+ -webkit-filter: sepia(30%);
4121
+ filter: sepia(30%); }
4122
+
4123
+ .premium-img-gallery.bright img {
4124
+ -webkit-filter: brightness(1);
4125
+ filter: brightness(1); }
4126
+
4127
+ .premium-img-gallery.trans img {
4128
+ -webkit-transform: translateX(-15px) scale(1.1);
4129
+ -ms-transform: translateX(-15px) scale(1.1);
4130
+ transform: translateX(-15px) scale(1.1); }
4131
+
4132
+ .pa-gallery-img .pa-gallery-magnific-image,
4133
+ .pa-gallery-img .pa-gallery-img-link {
4134
+ outline: none; }
4135
+ .pa-gallery-img .pa-gallery-magnific-image i,
4136
+ .pa-gallery-img .pa-gallery-magnific-image svg,
4137
+ .pa-gallery-img .pa-gallery-img-link i,
4138
+ .pa-gallery-img .pa-gallery-img-link svg {
4139
+ -webkit-transition: all 0.3s ease-in-out;
4140
+ transition: all 0.3s ease-in-out; }
4141
+
4142
+ .pa-gallery-img .pa-gallery-magnific-image span,
4143
+ .pa-gallery-img .pa-gallery-img-link span {
4144
+ line-height: 1;
4145
  display: inline-block;
4146
+ opacity: 0;
4147
+ margin: 0 5px;
4148
+ padding: 15px;
4149
+ -webkit-border-radius: 50%;
4150
+ border-radius: 50%; }
4151
+
4152
+ .pa-gallery-img.style2 .pa-gallery-magnific-image span,
4153
+ .pa-gallery-img.style2 .pa-gallery-img-link span {
4154
+ margin: 0 5px 20px; }
4155
+
4156
+ .pa-gallery-img:hover .pa-gallery-magnific-image span {
4157
+ -webkit-transition: all 0.3s ease-in-out, opacity 0.5s ease-in-out 0.3s;
4158
+ transition: all 0.3s ease-in-out, opacity 0.5s ease-in-out 0.3s; }
4159
+
4160
+ .pa-gallery-img:hover .pa-gallery-img-link span {
4161
+ -webkit-transition: all 0.3s ease-in-out, opacity 0.5s ease-in-out 0.6s;
4162
+ transition: all 0.3s ease-in-out, opacity 0.5s ease-in-out 0.6s; }
4163
+
4164
+ .pa-gallery-img:hover .pa-gallery-magnific-image span,
4165
+ .pa-gallery-img:hover .pa-gallery-img-link span {
4166
+ opacity: 1; }
4167
+
4168
+ .premium-gallery-icon-show a.pa-gallery-video-icon span {
4169
+ opacity: 1; }
4170
+
4171
+ .premium-img-gallery-filter ul.premium-gallery-cats-container,
4172
+ .premium-blog-filter ul.premium-blog-filters-container {
4173
  text-align: center;
4174
+ margin: 0;
4175
+ padding: 0; }
 
 
 
 
 
 
 
 
 
4176
 
4177
+ .premium-img-gallery-filter .premium-gallery-cats-container li,
4178
+ .premium-blog-filter .premium-blog-filters-container li {
4179
+ list-style: none;
4180
+ -js-display: inline-flex;
4181
+ display: -webkit-inline-box;
4182
+ display: -webkit-inline-flex;
4183
+ display: -moz-inline-box;
4184
+ display: -ms-inline-flexbox;
4185
+ display: inline-flex; }
4186
 
4187
+ .premium-img-gallery.zoomin .pa-gallery-img:hover img {
4188
+ -webkit-transform: scale(1.1);
4189
+ -ms-transform: scale(1.1);
4190
+ transform: scale(1.1); }
4191
 
4192
+ .premium-img-gallery.zoomout .pa-gallery-img:hover img {
4193
+ -webkit-transform: scale(1);
4194
+ -ms-transform: scale(1);
4195
+ transform: scale(1); }
 
 
 
 
 
 
4196
 
4197
+ .premium-img-gallery.scale .pa-gallery-img:hover img {
4198
+ -webkit-transform: scale(1.3) rotate(5deg);
4199
+ -ms-transform: scale(1.3) rotate(5deg);
4200
+ transform: scale(1.3) rotate(5deg); }
4201
+
4202
+ .premium-img-gallery.gray .pa-gallery-img:hover img {
4203
+ -webkit-filter: grayscale(0%);
4204
+ filter: grayscale(0%); }
4205
+
4206
+ .premium-img-gallery.blur .pa-gallery-img:hover img {
4207
+ -webkit-filter: blur(3px);
4208
+ filter: blur(3px); }
4209
+
4210
+ .premium-img-gallery.sepia .pa-gallery-img:hover img {
4211
+ -webkit-filter: sepia(0%);
4212
+ filter: sepia(0%); }
4213
+
4214
+ .premium-img-gallery.trans .pa-gallery-img:hover img {
4215
+ -webkit-transform: translateX(0px) scale(1.1);
4216
+ -ms-transform: translateX(0px) scale(1.1);
4217
+ transform: translateX(0px) scale(1.1); }
4218
+
4219
+ .premium-img-gallery.bright .pa-gallery-img:hover img {
4220
+ -webkit-filter: brightness(1.2);
4221
+ filter: brightness(1.2); }
4222
+
4223
+ .pa-gallery-img .premium-gallery-caption {
4224
+ padding: 10px; }
4225
+ .pa-gallery-img .premium-gallery-caption .premium-gallery-img-name {
4226
+ margin-bottom: 0; }
4227
+
4228
+ .pa-gallery-img.style1 {
4229
+ overflow: hidden; }
4230
+
4231
+ .pa-gallery-img:not(.style2) .pa-gallery-icons-wrapper {
4232
+ position: absolute;
4233
+ top: 0;
4234
+ left: 0;
4235
+ width: 100%;
4236
+ height: 100%;
4237
+ -webkit-transition: all 0.3s ease-in-out;
4238
+ transition: all 0.3s ease-in-out; }
4239
+
4240
+ .pa-gallery-img:not(.style2) .pa-gallery-icons-inner-container {
4241
+ position: absolute;
4242
+ top: 33.33%;
4243
+ width: 100%;
4244
+ text-align: center;
4245
+ -webkit-transform: translateY(-50%);
4246
+ -ms-transform: translateY(-50%);
4247
+ transform: translateY(-50%);
4248
+ z-index: 3; }
4249
+
4250
+ .pa-gallery-img.style1 .premium-gallery-caption {
4251
+ position: absolute;
4252
+ top: auto;
4253
+ right: 0;
4254
+ bottom: -1px;
4255
+ left: 0;
4256
+ width: 100%;
4257
+ -webkit-transition: all 500ms ease 0s;
4258
+ transition: all 500ms ease 0s;
4259
+ -webkit-transform: translate3d(0, 100%, 0);
4260
+ transform: translate3d(0, 100%, 0); }
4261
+
4262
+ .pa-gallery-img.style1:hover .premium-gallery-caption {
4263
+ -webkit-transform: translate3d(0, 0, 0);
4264
+ transform: translate3d(0, 0, 0);
4265
+ bottom: -1px !important; }
4266
+
4267
+ .pa-gallery-img.default .premium-gallery-caption {
4268
+ position: absolute;
4269
+ top: auto;
4270
+ right: 0;
4271
+ left: 0;
4272
+ width: 100%;
4273
+ bottom: 0; }
4274
+
4275
+ .pa-gallery-img.style2 .pa-gallery-icons-caption-container {
4276
+ position: absolute;
4277
+ top: 0;
4278
+ left: 0;
4279
+ width: 100%;
4280
+ height: 100%;
4281
+ opacity: 0;
4282
+ -webkit-backface-visibility: hidden;
4283
+ backface-visibility: hidden;
4284
+ -webkit-transition: opacity 0.3s, -webkit-transform 0.3s;
4285
+ transition: opacity 0.3s, -webkit-transform 0.3s;
4286
+ transition: transform 0.3s, opacity 0.3s;
4287
+ transition: transform 0.3s, opacity 0.3s, -webkit-transform 0.3s;
4288
+ z-index: 1;
4289
+ background-color: rgba(108, 191, 226, 0.68);
4290
+ -js-display: flex;
4291
+ display: -webkit-box;
4292
+ display: -webkit-flex;
4293
+ display: -moz-box;
4294
+ display: -ms-flexbox;
4295
+ display: flex;
4296
+ text-align: center;
4297
+ -webkit-box-align: center;
4298
+ -webkit-align-items: center;
4299
+ -moz-box-align: center;
4300
+ -ms-flex-align: center;
4301
+ align-items: center; }
4302
+
4303
+ .pa-gallery-img.style2 .pa-gallery-icons-caption-cell {
4304
+ width: 100%; }
4305
+
4306
+ .pa-gallery-img.style2:hover .pa-gallery-icons-caption-container {
4307
+ opacity: 1;
4308
+ -webkit-transform: translate(15px, 15px);
4309
+ -ms-transform: translate(15px, 15px);
4310
+ transform: translate(15px, 15px); }
4311
+
4312
+ .premium-clearfix {
4313
+ clear: both; }
4314
+
4315
+ /**
4316
+ * Metro Layout
4317
+ */
4318
+ .premium-img-gallery-metro .premium-gallery-item {
4319
+ overflow: hidden; }
4320
+
4321
+ .premium-img-gallery-metro .pa-gallery-img {
4322
+ height: 100%; }
4323
+
4324
+ .premium-img-gallery-metro .pa-gallery-img-container {
4325
+ height: 100%; }
4326
+ .premium-img-gallery-metro .pa-gallery-img-container img {
4327
+ min-height: 100%;
4328
+ width: 100%;
4329
+ -o-object-fit: fill;
4330
+ object-fit: fill; }
4331
+
4332
+ .premium-img-gallery .premium-gallery-item-hidden {
4333
+ visibility: hidden;
4334
+ width: 0 !important;
4335
+ height: 0 !important;
4336
+ margin: 0 !important;
4337
+ padding: 0 !important; }
4338
+
4339
+ .premium-gallery-load-more {
4340
+ position: relative; }
4341
+ .premium-gallery-load-more .premium-gallery-load-more-btn {
4342
+ -webkit-box-shadow: none;
4343
+ box-shadow: none;
4344
+ text-shadow: none;
4345
+ border: none;
4346
+ outline: none;
4347
+ -webkit-box-align: center;
4348
+ -webkit-align-items: center;
4349
+ -moz-box-align: center;
4350
+ -ms-flex-align: center;
4351
+ align-items: center;
4352
+ vertical-align: bottom;
4353
+ cursor: pointer;
4354
+ line-height: 1;
4355
+ font-style: normal;
4356
+ font-weight: normal;
4357
+ background-image: none;
4358
+ color: #fff;
4359
+ -webkit-transition: all 0.3s ease-in-out;
4360
+ transition: all 0.3s ease-in-out; }
4361
+
4362
+ .premium-gallery-load-more-btn {
4363
+ -js-display: inline-flex;
4364
+ display: -webkit-inline-box;
4365
+ display: -webkit-inline-flex;
4366
+ display: -moz-inline-box;
4367
+ display: -ms-inline-flexbox;
4368
+ display: inline-flex;
4369
+ -webkit-box-align: center;
4370
+ -webkit-align-items: center;
4371
+ -moz-box-align: center;
4372
+ -ms-flex-align: center;
4373
+ align-items: center; }
4374
+
4375
+ .premium-gallery-load-more-btn div {
4376
+ margin-left: 3px; }
4377
+
4378
+ .premium-gallery-load-more-btn .premium-loader {
4379
+ display: inline-block;
4380
+ width: 20px;
4381
+ height: 20px; }
4382
+
4383
+ .pa-gallery-img .pa-gallery-lightbox-wrap {
4384
+ display: inline-block; }
4385
+
4386
+ .premium-img-gallery-no-lightbox .premium-gallery-video-item .pa-gallery-img,
4387
+ .pa-gallery-img .pa-gallery-video-icon {
4388
+ cursor: pointer; }
4389
+
4390
+ .pa-gallery-img-container iframe {
4391
+ position: absolute;
4392
+ visibility: hidden;
4393
+ top: 0;
4394
+ left: 0;
4395
+ max-width: 100%;
4396
+ width: 100%;
4397
+ height: 100%;
4398
+ margin: 0;
4399
+ line-height: 1;
4400
+ border: none; }
4401
+
4402
+ .pa-gallery-img-container video {
4403
+ position: absolute;
4404
+ visibility: hidden;
4405
+ top: 0;
4406
+ left: 0;
4407
+ max-width: 100%;
4408
+ width: 100%;
4409
+ height: 100%;
4410
+ margin: 0;
4411
+ line-height: 1;
4412
+ border: none;
4413
+ -o-object-fit: contain;
4414
+ object-fit: contain; }
4415
+
4416
+ .pa-gallery-icons-inner-container svg,
4417
+ .pa-gallery-icons-caption-cell svg {
4418
+ width: 14px;
4419
+ height: 14px; }
4420
+
4421
+ .premium-gallery-gradient-layer {
4422
+ position: absolute;
4423
+ bottom: 40px;
4424
+ width: 100%;
4425
+ height: 20px;
4426
+ background: -webkit-gradient(linear, left bottom, left top, from(#17181f), to(rgba(255, 255, 255, 0)));
4427
+ background: -webkit-linear-gradient(bottom, #17181f 0%, rgba(255, 255, 255, 0) 100%);
4428
+ background: linear-gradient(to top, #17181f 0%, rgba(255, 255, 255, 0) 100%); }
4429
+
4430
+ /********* Premium Lottie Animations *********/
4431
+ /*********************************************/
4432
+ .elementor-widget-premium-lottie .premium-lottie-animation {
4433
+ position: relative;
4434
+ -js-display: inline-flex;
4435
+ display: -webkit-inline-box;
4436
+ display: -webkit-inline-flex;
4437
+ display: -moz-inline-box;
4438
+ display: -ms-inline-flexbox;
4439
+ display: inline-flex;
4440
+ -webkit-transition: all 0.3s ease-in-out;
4441
+ transition: all 0.3s ease-in-out; }
4442
+ .elementor-widget-premium-lottie .premium-lottie-animation a {
4443
+ position: absolute;
4444
+ left: 0;
4445
+ top: 0;
4446
+ width: 100%;
4447
+ height: 100%;
4448
+ z-index: 2; }
4449
+
4450
+ /**************** Premium Google Maps ******************/
4451
+ /*******************************************************/
4452
+ .premium-maps-info-container {
4453
+ margin-top: 10px;
4454
+ margin-bottom: 10px; }
4455
+
4456
+ .premium-maps-info-title,
4457
+ .premium-maps-info-desc {
4458
+ margin: 0;
4459
+ padding: 0; }
4460
+
4461
+ .premium-maps-container .gm-style-iw {
4462
+ text-align: center; }
4463
+
4464
+ .premium-maps-container .gm-style img {
4465
+ max-width: none !important; }
4466
+
4467
+ /**************** Premium Modal Box ****************/
4468
+ /***************************************************/
4469
+ .premium-modal-trigger-btn,
4470
+ .premium-modal-box-modal-lower-close {
4471
+ display: inline-block;
4472
+ padding: 6px 12px;
4473
+ margin-bottom: 0;
4474
+ font-size: 14px;
4475
+ font-weight: normal;
4476
+ line-height: 1.42857143;
4477
+ text-align: center;
4478
+ white-space: nowrap;
4479
+ vertical-align: middle;
4480
+ -ms-touch-action: manipulation;
4481
+ touch-action: manipulation;
4482
+ cursor: pointer;
4483
+ -webkit-user-select: none;
4484
+ -moz-user-select: none;
4485
+ -ms-user-select: none;
4486
+ user-select: none;
4487
+ background-image: none;
4488
+ border: 1px solid transparent; }
4489
+
4490
+ .premium-modal-trigger-btn > svg,
4491
+ .premium-modal-trigger-btn .premium-modal-box-icon {
4492
+ -webkit-transition: all 0.3s ease-in-out;
4493
+ transition: all 0.3s ease-in-out; }
4494
+
4495
+ .premium-modal-trigger-btn > svg {
4496
+ width: 30px;
4497
+ height: 30px; }
4498
+
4499
+ .premium-modal-box-modal-close {
4500
+ float: right;
4501
+ font-size: 21px;
4502
+ font-weight: bold;
4503
+ line-height: 1;
4504
+ color: #000; }
4505
+ .premium-modal-box-modal-close:hover, .premium-modal-box-modal-close:focus {
4506
+ color: #000;
4507
+ text-decoration: none;
4508
+ cursor: pointer; }
4509
+
4510
+ button.premium-modal-box-modal-close {
4511
+ -webkit-appearance: none;
4512
+ padding: 0;
4513
+ cursor: pointer;
4514
+ background: transparent;
4515
+ border: 0; }
4516
 
4517
  .premium-modal-box-modal {
4518
  position: fixed;
4721
  .premium-modal-box-container[data-modal-animation*="animated-"] {
4722
  opacity: 0; }
4723
 
4724
+ /************ Premium Nav Menu ************/
4725
+ .premium-nav-widget-container ul {
4726
+ list-style: none;
4727
+ margin: 0;
4728
+ padding: 0; }
4729
+
4730
+ .premium-nav-widget-container .premium-main-nav-menu {
4731
+ -js-display: flex;
4732
+ display: -webkit-box;
4733
+ display: -webkit-flex;
4734
+ display: -moz-box;
4735
+ display: -ms-flexbox;
4736
+ display: flex;
4737
+ height: 100%; }
4738
+
4739
+ /*Vertical Main Menu**/
4740
+ .premium-nav-ver .premium-ver-inner-container {
4741
+ width: 45%;
4742
+ position: relative; }
4743
+
4744
+ .premium-nav-ver .premium-nav-menu-container,
4745
+ .premium-nav-ver .premium-ver-toggler {
4746
+ width: 100%; }
4747
+
4748
+ .premium-nav-ver .premium-nav-menu-container {
4749
+ background-color: #fff;
4750
+ -webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
4751
+ box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1); }
4752
+
4753
+ .premium-nav-ver .premium-main-nav-menu {
4754
+ position: relative;
4755
+ -webkit-box-orient: vertical;
4756
+ -webkit-box-direction: normal;
4757
+ -webkit-flex-direction: column;
4758
+ -moz-box-orient: vertical;
4759
+ -moz-box-direction: normal;
4760
+ -ms-flex-direction: column;
4761
+ flex-direction: column;
4762
+ -webkit-box-align: start;
4763
+ -webkit-align-items: flex-start;
4764
+ -moz-box-align: start;
4765
+ -ms-flex-align: start;
4766
+ align-items: flex-start; }
4767
+
4768
+ .premium-nav-ver:not(.premium-hamburger-menu) .premium-nav-menu-item.menu-item-has-children .premium-sub-menu {
4769
+ visibility: hidden;
4770
+ opacity: 0;
4771
+ position: absolute;
4772
+ min-width: 250px; }
4773
+
4774
+ .premium-nav-ver:not(.premium-hamburger-menu) .premium-nav-menu-item.menu-item-has-children:hover > .premium-sub-menu,
4775
+ .premium-nav-ver:not(.premium-hamburger-menu) .premium-nav-menu-item.menu-item-has-children:hover .premium-mega-content-container {
4776
+ opacity: 1;
4777
+ visibility: visible; }
4778
+
4779
+ .premium-nav-ver .premium-nav-menu-item {
4780
+ width: 100%; }
4781
+
4782
+ .premium-nav-ver:not(.premium-hamburger-menu).premium-vertical-right .premium-mega-content-container,
4783
+ .premium-nav-ver:not(.premium-hamburger-menu).premium-vertical-right .premium-nav-menu-item.menu-item-has-children .premium-sub-menu {
4784
+ left: 100%;
4785
+ top: 0; }
4786
+
4787
+ .premium-nav-ver:not(.premium-hamburger-menu).premium-vertical-left .premium-mega-content-container,
4788
+ .premium-nav-ver:not(.premium-hamburger-menu).premium-vertical-left .premium-nav-menu-item.menu-item-has-children .premium-sub-menu {
4789
+ right: 100%;
4790
+ top: 0; }
4791
+
4792
+ .premium-nav-ver:not(.premium-hamburger-menu).premium-vertical-left .premium-menu-link {
4793
+ -webkit-box-orient: horizontal;
4794
+ -webkit-box-direction: reverse;
4795
+ -webkit-flex-direction: row-reverse;
4796
+ -moz-box-orient: horizontal;
4797
+ -moz-box-direction: reverse;
4798
+ -ms-flex-direction: row-reverse;
4799
+ flex-direction: row-reverse; }
4800
+
4801
+ /*Horizontal Main Menu**/
4802
+ .premium-nav-hor .premium-nav-menu-container {
4803
+ height: 60px; }
4804
+
4805
+ .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item .premium-sub-menu {
4806
+ visibility: hidden;
4807
+ opacity: 0;
4808
+ position: absolute;
4809
+ min-width: 220px; }
4810
+
4811
+ .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item > .premium-sub-menu,
4812
+ .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item .premium-mega-content-container {
4813
+ top: 100%; }
4814
+ .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item > .premium-sub-menu .premium-sub-menu,
4815
+ .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item .premium-mega-content-container .premium-sub-menu {
4816
+ left: 100%;
4817
+ top: 0; }
4818
+
4819
+ .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item:hover > .premium-sub-menu,
4820
+ .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item:hover .premium-mega-content-container {
4821
+ visibility: visible;
4822
+ opacity: 1;
4823
+ pointer-events: auto; }
4824
+
4825
+ .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item.premium-mega-item-static .premium-mega-content-container {
4826
+ left: 50%;
4827
+ -webkit-transform: translateX(-50%);
4828
+ -ms-transform: translateX(-50%);
4829
+ transform: translateX(-50%); }
4830
+
4831
+ .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item:not(.premium-mega-item-static) .premium-mega-content-container {
4832
+ left: 0; }
4833
+
4834
+ /**Mega Menu Container*/
4835
+ .premium-mega-nav-item .premium-sub-menu {
4836
+ display: none; }
4837
+
4838
+ .premium-mega-nav-item {
4839
+ position: relative; }
4840
+ .premium-mega-nav-item:hover .premium-mega-content-container {
4841
+ visibility: visible;
4842
+ opacity: 1;
4843
+ pointer-events: auto; }
4844
+
4845
+ .premium-mega-content-container {
4846
+ visibility: hidden;
4847
+ position: absolute;
4848
+ z-index: 9999;
4849
+ opacity: 0;
4850
+ pointer-events: none; }
4851
+
4852
+ .premium-hamburger-menu .premium-mega-content-container,
4853
+ .premium-nav-slide .premium-mega-content-container,
4854
+ .premium-nav-dropdown .premium-mega-content-container {
4855
+ visibility: visible;
4856
+ position: relative;
4857
+ opacity: 1;
4858
+ pointer-events: auto; }
4859
+
4860
+ /**Hamburger Menu*/
4861
+ .premium-nav-widget-container a.premium-hamburger-toggle,
4862
+ .premium-mobile-menu-outer-container a.premium-mobile-menu-close {
4863
+ text-decoration: none; }
4864
+
4865
+ .premium-nav-widget-container .premium-hamburger-toggle {
4866
+ display: none;
4867
+ -webkit-box-pack: center;
4868
+ -webkit-justify-content: center;
4869
+ -moz-box-pack: center;
4870
+ -ms-flex-pack: center;
4871
+ justify-content: center;
4872
+ -webkit-box-align: center;
4873
+ -webkit-align-items: center;
4874
+ -moz-box-align: center;
4875
+ -ms-flex-align: center;
4876
+ align-items: center; }
4877
+ .premium-nav-widget-container .premium-hamburger-toggle i {
4878
+ padding: 0.25em;
4879
+ font-size: 22px; }
4880
+ .premium-nav-widget-container .premium-hamburger-toggle svg {
4881
+ width: 22px;
4882
+ height: 22px; }
4883
+ .premium-nav-widget-container .premium-hamburger-toggle i,
4884
+ .premium-nav-widget-container .premium-hamburger-toggle .premium-toggle-text,
4885
+ .premium-nav-widget-container .premium-hamburger-toggle .premium-toggle-close {
4886
+ color: #494c4f; }
4887
+ .premium-nav-widget-container .premium-hamburger-toggle svg,
4888
+ .premium-nav-widget-container .premium-hamburger-toggle svg path {
4889
+ fill: #494c4f; }
4890
+ .premium-nav-widget-container .premium-hamburger-toggle .premium-toggle-text,
4891
+ .premium-nav-widget-container .premium-hamburger-toggle .premium-toggle-close {
4892
+ margin: 2px; }
4893
+ .premium-nav-widget-container .premium-hamburger-toggle .premium-toggle-close {
4894
+ display: none; }
4895
+
4896
+ .premium-mobile-menu-container {
4897
+ width: 100%; }
4898
+ .premium-mobile-menu-container .premium-main-mobile-menu {
4899
+ width: 100%; }
4900
+ .premium-mobile-menu-container ul {
4901
+ list-style: none;
4902
+ margin: 0;
4903
+ padding: 0; }
4904
+ .premium-mobile-menu-container .premium-mobile-menu,
4905
+ .premium-mobile-menu-container .premium-sub-menu {
4906
+ display: none;
4907
+ -webkit-box-orient: vertical;
4908
+ -webkit-box-direction: normal;
4909
+ -webkit-flex-direction: column;
4910
+ -moz-box-orient: vertical;
4911
+ -moz-box-direction: normal;
4912
+ -ms-flex-direction: column;
4913
+ flex-direction: column; }
4914
+ .premium-mobile-menu-container .premium-nav-menu-item {
4915
+ -webkit-box-orient: vertical;
4916
+ -webkit-box-direction: normal;
4917
+ -webkit-flex-direction: column;
4918
+ -moz-box-orient: vertical;
4919
+ -moz-box-direction: normal;
4920
+ -ms-flex-direction: column;
4921
+ flex-direction: column; }
4922
+ .premium-mobile-menu-container .premium-item-badge {
4923
+ top: 50%;
4924
+ right: 0;
4925
+ left: unset;
4926
+ -webkit-transform: translateY(-50%);
4927
+ -ms-transform: translateY(-50%);
4928
+ transform: translateY(-50%); }
4929
+
4930
+ .premium-nav-hor .premium-mobile-menu-container .premium-item-badge {
4931
+ top: 0;
4932
+ -webkit-transform: translateY(0);
4933
+ -ms-transform: translateY(0);
4934
+ transform: translateY(0); }
4935
+
4936
+ /**Vertical Hamburger Menu*/
4937
+ .premium-mobile-menu-outer-container {
4938
+ opacity: 0; }
4939
+ .premium-mobile-menu-outer-container.premium-vertical-toggle-open {
4940
+ opacity: 1; }
4941
+
4942
+ .premium-ver-hamburger-menu .premium-mobile-menu-outer-container {
4943
+ background-color: #f7f7f7;
4944
+ width: 300px;
4945
+ -webkit-transform: translateX(-300px);
4946
+ -ms-transform: translateX(-300px);
4947
+ transform: translateX(-300px);
4948
+ height: 100%;
4949
+ position: fixed;
4950
+ top: 0;
4951
+ left: 0;
4952
+ overflow-x: hidden;
4953
+ z-index: 10002;
4954
+ -webkit-transition: 0.5s;
4955
+ transition: 0.5s;
4956
+ padding-top: 50px; }
4957
+ .premium-ver-hamburger-menu .premium-mobile-menu-outer-container .premium-mobile-menu {
4958
+ -js-display: flex;
4959
+ display: -webkit-box;
4960
+ display: -webkit-flex;
4961
+ display: -moz-box;
4962
+ display: -ms-flexbox;
4963
+ display: flex; }
4964
+ .premium-ver-hamburger-menu .premium-mobile-menu-outer-container .premium-mobile-menu-container {
4965
+ margin-top: 50px; }
4966
+ .premium-ver-hamburger-menu .premium-mobile-menu-outer-container .premium-mobile-menu-container .premium-item-badge {
4967
+ -webkit-transform: translateY(0);
4968
+ -ms-transform: translateY(0);
4969
+ transform: translateY(0); }
4970
+ .premium-ver-hamburger-menu .premium-mobile-menu-outer-container .premium-mobile-menu-close {
4971
+ position: absolute;
4972
+ top: 2%;
4973
+ right: 5px;
4974
+ padding: 0 9px;
4975
+ z-index: 10000;
4976
+ -js-display: inline-flex;
4977
+ display: -webkit-inline-box;
4978
+ display: -webkit-inline-flex;
4979
+ display: -moz-inline-box;
4980
+ display: -ms-inline-flexbox;
4981
+ display: inline-flex;
4982
+ color: #494c4f;
4983
+ -webkit-box-pack: center;
4984
+ -webkit-justify-content: center;
4985
+ -moz-box-pack: center;
4986
+ -ms-flex-pack: center;
4987
+ justify-content: center;
4988
+ -webkit-box-align: center;
4989
+ -webkit-align-items: center;
4990
+ -moz-box-align: center;
4991
+ -ms-flex-align: center;
4992
+ align-items: center; }
4993
+ .premium-ver-hamburger-menu .premium-mobile-menu-outer-container .premium-mobile-menu-close .premium-toggle-close {
4994
+ margin: 5px; }
4995
+ .premium-ver-hamburger-menu .premium-mobile-menu-outer-container .premium-mobile-menu-close svg {
4996
+ width: 22px;
4997
+ height: 22px;
4998
+ fill: #494c4f; }
4999
+ .premium-ver-hamburger-menu .premium-mobile-menu-outer-container .premium-mobile-menu-close svg path {
5000
+ fill: #494c4f; }
5001
+ .premium-ver-hamburger-menu .premium-mobile-menu-outer-container .premium-mobile-menu-close i {
5002
+ font-size: 22px; }
5003
+
5004
+ .premium-ver-hamburger-menu .premium-vertical-toggle-open {
5005
+ -webkit-transform: translateX(0) !important;
5006
+ -ms-transform: translateX(0) !important;
5007
+ transform: translateX(0) !important;
5008
+ -webkit-transition: 0.5s;
5009
+ transition: 0.5s; }
5010
+
5011
+ /** Vertical Toggler*/
5012
+ .premium-ver-toggle-yes .premium-nav-menu-container {
5013
+ height: auto; }
5014
+
5015
+ .premium-ver-toggle-yes .premium-ver-toggler {
5016
+ -js-display: flex;
5017
+ display: -webkit-box;
5018
+ display: -webkit-flex;
5019
+ display: -moz-box;
5020
+ display: -ms-flexbox;
5021
+ display: flex;
5022
+ -webkit-box-align: center;
5023
+ -webkit-align-items: center;
5024
+ -moz-box-align: center;
5025
+ -ms-flex-align: center;
5026
+ align-items: center;
5027
+ -webkit-box-pack: justify;
5028
+ -webkit-justify-content: space-between;
5029
+ -moz-box-pack: justify;
5030
+ -ms-flex-pack: justify;
5031
+ justify-content: space-between;
5032
+ padding: 15px 20px 15px 20px;
5033
+ background: #eeeeee;
5034
+ color: #042551;
5035
+ cursor: pointer; }
5036
+ .premium-ver-toggle-yes .premium-ver-toggler .premium-ver-toggler-title,
5037
+ .premium-ver-toggle-yes .premium-ver-toggler .premium-ver-toggler-btn {
5038
+ -js-display: flex;
5039
+ display: -webkit-box;
5040
+ display: -webkit-flex;
5041
+ display: -moz-box;
5042
+ display: -ms-flexbox;
5043
+ display: flex;
5044
+ -webkit-box-pack: center;
5045
+ -webkit-justify-content: center;
5046
+ -moz-box-pack: center;
5047
+ -ms-flex-pack: center;
5048
+ justify-content: center;
5049
+ -webkit-box-align: center;
5050
+ -webkit-align-items: center;
5051
+ -moz-box-align: center;
5052
+ -ms-flex-align: center;
5053
+ align-items: center; }
5054
+ .premium-ver-toggle-yes .premium-ver-toggler .premium-ver-toggler-txt {
5055
+ text-indent: 5px; }
5056
+ .premium-ver-toggle-yes .premium-ver-toggler:hover {
5057
+ background: #54595f;
5058
+ color: #fff; }
5059
+ .premium-ver-toggle-yes .premium-ver-toggler:hover .premium-ver-close svg,
5060
+ .premium-ver-toggle-yes .premium-ver-toggler:hover .premium-ver-close svg path,
5061
+ .premium-ver-toggle-yes .premium-ver-toggler:hover .premium-ver-open svg,
5062
+ .premium-ver-toggle-yes .premium-ver-toggler:hover .premium-ver-open svg path,
5063
+ .premium-ver-toggle-yes .premium-ver-toggler:hover .premium-ver-title-icon svg,
5064
+ .premium-ver-toggle-yes .premium-ver-toggler:hover .premium-ver-title-icon svg path {
5065
+ fill: #fff; }
5066
+
5067
+ .premium-ver-toggle-yes .premium-ver-close,
5068
+ .premium-ver-toggle-yes .premium-ver-open,
5069
+ .premium-ver-toggle-yes .premium-nav-menu-container,
5070
+ .premium-ver-toggle-yes .premium-ver-toggler {
5071
+ -webkit-transition: all 0.3s linear 0s;
5072
+ transition: all 0.3s linear 0s; }
5073
+ .premium-ver-toggle-yes .premium-ver-close i,
5074
+ .premium-ver-toggle-yes .premium-ver-close svg,
5075
+ .premium-ver-toggle-yes .premium-ver-open i,
5076
+ .premium-ver-toggle-yes .premium-ver-open svg,
5077
+ .premium-ver-toggle-yes .premium-nav-menu-container i,
5078
+ .premium-ver-toggle-yes .premium-nav-menu-container svg,
5079
+ .premium-ver-toggle-yes .premium-ver-toggler i,
5080
+ .premium-ver-toggle-yes .premium-ver-toggler svg {
5081
+ -webkit-transition: color 0.3s linear 0s;
5082
+ transition: color 0.3s linear 0s; }
5083
+
5084
+ .premium-ver-toggle-yes .premium-ver-toggler-txt {
5085
+ -webkit-transition: all 0.3s linear 0s;
5086
+ transition: all 0.3s linear 0s; }
5087
+
5088
+ .premium-ver-toggle-yes .premium-ver-close,
5089
+ .premium-ver-toggle-yes .premium-ver-open,
5090
+ .premium-ver-toggle-yes .premium-ver-title-icon {
5091
+ -webkit-box-pack: center;
5092
+ -webkit-justify-content: center;
5093
+ -moz-box-pack: center;
5094
+ -ms-flex-pack: center;
5095
+ justify-content: center;
5096
+ -webkit-box-align: center;
5097
+ -webkit-align-items: center;
5098
+ -moz-box-align: center;
5099
+ -ms-flex-align: center;
5100
+ align-items: center; }
5101
+ .premium-ver-toggle-yes .premium-ver-close i,
5102
+ .premium-ver-toggle-yes .premium-ver-open i,
5103
+ .premium-ver-toggle-yes .premium-ver-title-icon i {
5104
+ font-size: 16px; }
5105
+ .premium-ver-toggle-yes .premium-ver-close svg,
5106
+ .premium-ver-toggle-yes .premium-ver-open svg,
5107
+ .premium-ver-toggle-yes .premium-ver-title-icon svg {
5108
+ width: 17px;
5109
+ height: 17px;
5110
+ fill: #042551; }
5111
+ .premium-ver-toggle-yes .premium-ver-close svg path,
5112
+ .premium-ver-toggle-yes .premium-ver-open svg path,
5113
+ .premium-ver-toggle-yes .premium-ver-title-icon svg path {
5114
+ fill: #042551; }
5115
+
5116
+ .premium-ver-toggle-yes.premium-ver-always .premium-ver-open {
5117
+ -js-display: inline-flex;
5118
+ display: -webkit-inline-box;
5119
+ display: -webkit-inline-flex;
5120
+ display: -moz-inline-box;
5121
+ display: -ms-inline-flexbox;
5122
+ display: inline-flex; }
5123
+
5124
+ .premium-ver-toggle-yes .premium-ver-collapsed .premium-nav-menu-container {
5125
+ visibility: hidden;
5126
+ opacity: 0; }
5127
+
5128
+ .premium-ver-toggle-yes .premium-ver-collapsed .premium-ver-close {
5129
+ display: none; }
5130
+
5131
+ .premium-ver-toggle-yes .premium-ver-collapsed .premium-ver-open {
5132
+ -js-display: inline-flex;
5133
+ display: -webkit-inline-box;
5134
+ display: -webkit-inline-flex;
5135
+ display: -moz-inline-box;
5136
+ display: -ms-inline-flexbox;
5137
+ display: inline-flex; }
5138
+
5139
+ .premium-ver-toggle-yes.premium-ver-hover .premium-nav-menu-container {
5140
+ position: absolute;
5141
+ z-index: 10002; }
5142
+
5143
+ .premium-ver-toggle-yes.premium-ver-click .premium-nav-menu-container {
5144
+ position: absolute;
5145
+ z-index: 10001; }
5146
+
5147
+ .premium-ver-toggle-yes .premium-nav-menu-container,
5148
+ .premium-ver-toggle-yes.premium-ver-hover .premium-ver-inner-container:hover .premium-nav-menu-container {
5149
+ visibility: visible;
5150
+ opacity: 1; }
5151
+
5152
+ .premium-ver-toggle-yes .premium-ver-open,
5153
+ .premium-ver-toggle-yes.premium-ver-hover .premium-ver-inner-container:hover .premium-ver-open {
5154
+ display: none; }
5155
+
5156
+ .premium-ver-toggle-yes .premium-ver-close,
5157
+ .premium-ver-toggle-yes .premium-ver-title-icon,
5158
+ .premium-ver-toggle-yes.premium-ver-hover .premium-ver-inner-container:hover .premium-ver-close,
5159
+ .premium-ver-toggle-yes.premium-ver-hover .premium-ver-inner-container:hover .premium-ver-title-icon {
5160
+ -js-display: inline-flex;
5161
+ display: -webkit-inline-box;
5162
+ display: -webkit-inline-flex;
5163
+ display: -moz-inline-box;
5164
+ display: -ms-inline-flexbox;
5165
+ display: inline-flex; }
5166
+
5167
+ /** Sticky Menu */
5168
+ .premium-sticky-parent {
5169
+ position: fixed;
5170
+ z-index: 10003;
5171
+ -webkit-transition: all 0.3s linear;
5172
+ transition: all 0.3s linear; }
5173
+
5174
+ .premium-sticky-scroll-yes.premium-sticky-parent.headroom--not-top {
5175
+ will-change: transform;
5176
+ -webkit-transition: -webkit-transform 500ms linear !important;
5177
+ transition: -webkit-transform 500ms linear !important;
5178
+ transition: transform 500ms linear !important;
5179
+ transition: transform 500ms linear, -webkit-transform 500ms linear !important;
5180
+ -webkit-transition-delay: 1s;
5181
+ transition-delay: 1s; }
5182
+
5183
+ .premium-sticky-scroll-yes.premium-sticky-parent.headroom--not-top.slideDown {
5184
+ -webkit-transform: translateY(0%);
5185
+ -ms-transform: translateY(0%);
5186
+ transform: translateY(0%); }
5187
+
5188
+ .premium-sticky-scroll-yes.premium-sticky-parent.headroom--not-top.slideUp {
5189
+ -webkit-transform: translateY(-100%);
5190
+ -ms-transform: translateY(-100%);
5191
+ transform: translateY(-100%); }
5192
+
5193
+ .premium-nav-sticky-yes.premium-sticky-active.premium-ham-dropdown .premium-mobile-menu-container,
5194
+ .premium-ham-dropdown .premium-stretch-dropdown .premium-mobile-menu-container {
5195
+ max-height: 400px;
5196
+ overflow-y: auto; }
5197
+
5198
+ /**Common*/
5199
+ .premium-nav-slide-overlay {
5200
+ display: none;
5201
+ position: fixed;
5202
+ top: 0;
5203
+ left: 0;
5204
+ right: 0;
5205
+ bottom: 0;
5206
+ -webkit-backface-visibility: hidden;
5207
+ backface-visibility: hidden;
5208
+ background: rgba(0, 0, 0, 0.6);
5209
+ z-index: 10002; }
5210
+ .premium-nav-slide-overlay.premium-vertical-toggle-open {
5211
+ display: block; }
5212
+
5213
+ .premium-active-menu,
5214
+ .premium-active-menu:not(.premium-mega-nav-item) > .premium-sub-menu,
5215
+ .premium-active-menu.premium-mega-nav-item > .premium-mega-content-container {
5216
+ -js-display: flex !important;
5217
+ display: -webkit-box !important;
5218
+ display: -webkit-flex !important;
5219
+ display: -moz-box !important;
5220
+ display: -ms-flexbox !important;
5221
+ display: flex !important;
5222
+ -webkit-box-orient: vertical;
5223
+ -webkit-box-direction: normal;
5224
+ -webkit-flex-direction: column;
5225
+ -moz-box-orient: vertical;
5226
+ -moz-box-direction: normal;
5227
+ -ms-flex-direction: column;
5228
+ flex-direction: column; }
5229
+
5230
+ .premium-active-menu .premium-toggle-close {
5231
+ display: block; }
5232
+
5233
+ .premium-nav-menu-container .premium-sub-menu {
5234
+ background-color: #fff; }
5235
+
5236
+ .premium-mobile-menu-container li,
5237
+ .premium-mobile-menu-container li > .premium-mega-content-container {
5238
+ width: 100% !important; }
5239
+
5240
+ .premium-item-icon,
5241
+ .premium-sub-item-icon {
5242
+ font-size: 13px;
5243
+ margin: 0 7px; }
5244
+ .premium-item-icon svg,
5245
+ .premium-sub-item-icon svg {
5246
+ width: 100%;
5247
+ height: 100%; }
5248
+ .premium-item-icon.premium-lottie-animation,
5249
+ .premium-sub-item-icon.premium-lottie-animation {
5250
+ width: 20px;
5251
+ height: 20px;
5252
+ -js-display: flex;
5253
+ display: -webkit-box;
5254
+ display: -webkit-flex;
5255
+ display: -moz-box;
5256
+ display: -ms-flexbox;
5257
+ display: flex;
5258
+ -webkit-box-pack: center;
5259
+ -webkit-justify-content: center;
5260
+ -moz-box-pack: center;
5261
+ -ms-flex-pack: center;
5262
+ justify-content: center; }
5263
+ .premium-item-icon.dashicons,
5264
+ .premium-sub-item-icon.dashicons {
5265
+ width: 13px;
5266
+ height: 13px; }
5267
+
5268
+ .premium-nav-menu-item {
5269
+ position: relative; }
5270
+ .premium-nav-menu-item .premium-menu-link {
5271
+ -js-display: flex;
5272
+ display: -webkit-box;
5273
+ display: -webkit-flex;
5274
+ display: -moz-box;
5275
+ display: -ms-flexbox;
5276
+ display: flex;
5277
+ -webkit-box-align: center;
5278
+ -webkit-align-items: center;
5279
+ -moz-box-align: center;
5280
+ -ms-flex-align: center;
5281
+ align-items: center;
5282
+ height: 100%;
5283
+ padding: 7px 10px;
5284
+ text-decoration: none;
5285
+ position: relative; }
5286
+ .premium-nav-menu-item .premium-dropdown-icon {
5287
+ margin: 5px; }
5288
+ .premium-nav-menu-item.menu-item-has-children {
5289
+ position: relative; }
5290
+ .premium-nav-menu-item.menu-item-has-children .premium-sub-menu {
5291
+ z-index: 9999; }
5292
+ .premium-nav-menu-item.menu-item-has-children .premium-sub-menu .premium-sub-menu-link {
5293
+ -webkit-box-pack: start;
5294
+ -webkit-justify-content: flex-start;
5295
+ -moz-box-pack: start;
5296
+ -ms-flex-pack: start;
5297
+ justify-content: flex-start; }
5298
+ .premium-nav-menu-item .menu-link {
5299
+ position: relative;
5300
+ text-decoration: none; }
5301
+
5302
+ .premium-item-badge,
5303
+ .premium-sub-item-badge {
5304
+ position: absolute;
5305
+ padding: 1px 6px;
5306
+ min-width: 35px;
5307
+ text-align: center;
5308
+ font-size: 10px;
5309
+ -webkit-border-radius: 4px;
5310
+ border-radius: 4px;
5311
+ line-height: 1.8;
5312
+ white-space: nowrap; }
5313
+
5314
+ .premium-nav-hor:not(.premium-hamburger-menu) .premium-item-badge, .premium-nav-hor:not(.premium-nav-slide) .premium-item-badge, .premium-nav-hor:not(.premium-nav-dropdown) .premium-item-badge {
5315
+ position: relative;
5316
+ margin: 8px; }
5317
+
5318
+ .premium-nav-hor .premium-sub-item-badge,
5319
+ .premium-nav-slide .premium-sub-item-badge,
5320
+ .premium-nav-dropdown .premium-sub-item-badge,
5321
+ .premium-nav-ver.premium-vertical-right .premium-item-badge,
5322
+ .premium-nav-ver.premium-vertical-right .premium-sub-item-badge {
5323
+ top: 50%;
5324
+ right: 0;
5325
+ -webkit-transform: translateY(-50%);
5326
+ -ms-transform: translateY(-50%);
5327
+ transform: translateY(-50%); }
5328
+
5329
+ .premium-nav-ver.premium-vertical-left .premium-item-badge,
5330
+ .premium-nav-ver.premium-vertical-left .premium-sub-item-badge {
5331
+ top: 50%;
5332
+ left: 0;
5333
+ -webkit-transform: translateY(-50%);
5334
+ -ms-transform: translateY(-50%);
5335
+ transform: translateY(-50%); }
5336
+
5337
+ .premium-mega-nav-item .premium-sub-menu {
5338
+ display: none; }
5339
+
5340
+ .premium-mega-nav-item {
5341
+ position: relative; }
5342
+
5343
+ .premium-hamburger-menu .premium-mega-content-container,
5344
+ .premium-nav-dropdown .premium-mega-content-container,
5345
+ .premium-nav-slide .premium-mega-content-container {
5346
+ display: none; }
5347
+
5348
+ .premium-mega-item-static {
5349
+ position: static !important; }
5350
+
5351
+ .premium-hamburger-menu .premium-nav-menu-container,
5352
+ .premium-nav-dropdown .premium-nav-menu-container,
5353
+ .premium-nav-slide .premium-nav-menu-container {
5354
+ display: none; }
5355
+
5356
+ .premium-hamburger-menu .premium-hamburger-toggle,
5357
+ .premium-nav-dropdown .premium-hamburger-toggle,
5358
+ .premium-nav-slide .premium-hamburger-toggle {
5359
+ -js-display: inline-flex;
5360
+ display: -webkit-inline-box;
5361
+ display: -webkit-inline-flex;
5362
+ display: -moz-inline-box;
5363
+ display: -ms-inline-flexbox;
5364
+ display: inline-flex; }
5365
+
5366
+ .premium-hidden-icon-yes.premium-hamburger-menu .premium-item-icon,
5367
+ .premium-hidden-icon-yes.premium-hamburger-menu .premium-sub-item-icon,
5368
+ .premium-hidden-icon-yes.premium-nav-dropdown .premium-item-icon,
5369
+ .premium-hidden-icon-yes.premium-nav-dropdown .premium-sub-item-icon,
5370
+ .premium-hidden-icon-yes.premium-nav-slide .premium-item-icon,
5371
+ .premium-hidden-icon-yes.premium-nav-slide .premium-sub-item-icon {
5372
+ display: none; }
5373
+
5374
+ .premium-hidden-badge-yes.premium-hamburger-menu .premium-item-badge,
5375
+ .premium-hidden-badge-yes.premium-hamburger-menu .premium-sub-item-badge,
5376
+ .premium-hidden-badge-yes.premium-nav-dropdown .premium-item-badge,
5377
+ .premium-hidden-badge-yes.premium-nav-dropdown .premium-sub-item-badge,
5378
+ .premium-hidden-badge-yes.premium-nav-slide .premium-item-badge,
5379
+ .premium-hidden-badge-yes.premium-nav-slide .premium-sub-item-badge {
5380
+ display: none; }
5381
+
5382
+ .premium-ham-dropdown .premium-mobile-menu-container,
5383
+ .premium-nav-dropdown .premium-mobile-menu-container {
5384
+ -js-display: flex;
5385
+ display: -webkit-box;
5386
+ display: -webkit-flex;
5387
+ display: -moz-box;
5388
+ display: -ms-flexbox;
5389
+ display: flex; }
5390
+
5391
+ .premium-ham-dropdown .premium-toggle-opened .premium-toggle-close,
5392
+ .premium-nav-dropdown .premium-toggle-opened .premium-toggle-close {
5393
+ display: inline !important; }
5394
+
5395
+ .premium-ham-dropdown .premium-toggle-opened .premium-toggle-text,
5396
+ .premium-nav-dropdown .premium-toggle-opened .premium-toggle-text {
5397
+ display: none !important; }
5398
+
5399
+ .premium-stretch-dropdown .premium-mobile-menu-container {
5400
+ position: absolute;
5401
+ z-index: 9999; }
5402
+
5403
+ .premium-nav-default {
5404
+ display: none; }
5405
+
5406
+ .premium-hamburger-toggle {
5407
+ width: 100%; }
5408
+
5409
  /*
5410
  * Pointer & Pointer Animations
5411
+ */
5412
+ .premium-menu-link-parent::before, .premium-menu-link-parent::after {
5413
+ display: block;
5414
+ position: absolute;
5415
+ -webkit-transition: all 0.3s cubic-bezier(0.58, 0.3, 0.005, 1);
5416
+ transition: all 0.3s cubic-bezier(0.58, 0.3, 0.005, 1); }
5417
+
5418
+ .premium-nav-pointer-underline .premium-menu-link-parent::after,
5419
+ .premium-nav-pointer-double-line .premium-menu-link-parent::after {
5420
+ content: "";
5421
+ bottom: 0; }
5422
+
5423
+ .premium-nav-pointer-overline .premium-menu-link-parent::before,
5424
+ .premium-nav-pointer-double-line .premium-menu-link-parent::before {
5425
+ content: "";
5426
+ top: 0; }
5427
+
5428
+ .premium-nav-pointer-underline .premium-menu-link-parent::before, .premium-nav-pointer-underline .premium-menu-link-parent::after,
5429
+ .premium-nav-pointer-overline .premium-menu-link-parent::before,
5430
+ .premium-nav-pointer-overline .premium-menu-link-parent::after,
5431
+ .premium-nav-pointer-double-line .premium-menu-link-parent::before,
5432
+ .premium-nav-pointer-double-line .premium-menu-link-parent::after {
5433
+ height: 3px;
5434
+ width: 100%;
5435
+ left: 0;
5436
+ background-color: #55595c;
5437
+ z-index: 2; }
5438
+
5439
+ .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before, .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after {
5440
+ opacity: 0; }
5441
+
5442
+ .premium-nav-pointer-underline.premium-nav-animation-none,
5443
+ .premium-nav-pointer-overline.premium-nav-animation-none,
5444
+ .premium-nav-pointer-double-line.premium-nav-animation-none {
5445
+ -webkit-transition-duration: 0s;
5446
+ transition-duration: 0s; }
5447
+ .premium-nav-pointer-underline.premium-nav-animation-none .premium-menu-link-parent,
5448
+ .premium-nav-pointer-underline.premium-nav-animation-none .premium-menu-link-parent::before,
5449
+ .premium-nav-pointer-underline.premium-nav-animation-none .premium-menu-link-parent::after,
5450
+ .premium-nav-pointer-underline.premium-nav-animation-none .premium-menu-link-parent:focus,
5451
+ .premium-nav-pointer-underline.premium-nav-animation-none .premium-menu-link-parent:hover,
5452
+ .premium-nav-pointer-overline.premium-nav-animation-none .premium-menu-link-parent,
5453
+ .premium-nav-pointer-overline.premium-nav-animation-none .premium-menu-link-parent::before,
5454
+ .premium-nav-pointer-overline.premium-nav-animation-none .premium-menu-link-parent::after,
5455
+ .premium-nav-pointer-overline.premium-nav-animation-none .premium-menu-link-parent:focus,
5456
+ .premium-nav-pointer-overline.premium-nav-animation-none .premium-menu-link-parent:hover,
5457
+ .premium-nav-pointer-double-line.premium-nav-animation-none .premium-menu-link-parent,
5458
+ .premium-nav-pointer-double-line.premium-nav-animation-none .premium-menu-link-parent::before,
5459
+ .premium-nav-pointer-double-line.premium-nav-animation-none .premium-menu-link-parent::after,
5460
+ .premium-nav-pointer-double-line.premium-nav-animation-none .premium-menu-link-parent:focus,
5461
+ .premium-nav-pointer-double-line.premium-nav-animation-none .premium-menu-link-parent:hover {
5462
+ -webkit-transition-duration: 0s;
5463
+ transition-duration: 0s; }
5464
+
5465
+ .premium-nav-pointer-underline.premium-nav-animation-slide .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after,
5466
+ .premium-nav-pointer-double-line.premium-nav-animation-slide .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after {
5467
+ width: 10px;
5468
+ inset-inline-start: 100%; }
5469
+
5470
+ .premium-nav-pointer-overline.premium-nav-animation-slide .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before,
5471
+ .premium-nav-pointer-double-line.premium-nav-animation-slide .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
5472
+ width: 10px;
5473
+ left: -20px; }
5474
+
5475
+ .premium-nav-pointer-underline.premium-nav-animation-grow .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before, .premium-nav-pointer-underline.premium-nav-animation-grow .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after,
5476
+ .premium-nav-pointer-overline.premium-nav-animation-grow .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before,
5477
+ .premium-nav-pointer-overline.premium-nav-animation-grow .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after,
5478
+ .premium-nav-pointer-double-line.premium-nav-animation-grow .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before,
5479
+ .premium-nav-pointer-double-line.premium-nav-animation-grow .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after {
5480
+ height: 0;
5481
+ width: 0;
5482
+ left: 50%; }
5483
+
5484
+ .premium-nav-pointer-underline.premium-nav-animation-drop-in .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before,
5485
+ .premium-nav-pointer-overline.premium-nav-animation-drop-in .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before,
5486
+ .premium-nav-pointer-double-line.premium-nav-animation-drop-in .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
5487
+ top: -10px; }
5488
+
5489
+ .premium-nav-pointer-underline.premium-nav-animation-drop-in .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after,
5490
+ .premium-nav-pointer-overline.premium-nav-animation-drop-in .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after,
5491
+ .premium-nav-pointer-double-line.premium-nav-animation-drop-in .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after {
5492
+ bottom: -10px; }
5493
+
5494
+ .premium-nav-pointer-underline.premium-nav-animation-drop-out .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before,
5495
+ .premium-nav-pointer-overline.premium-nav-animation-drop-out .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before,
5496
+ .premium-nav-pointer-double-line.premium-nav-animation-drop-out .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
5497
+ top: 10px; }
5498
+
5499
+ .premium-nav-pointer-underline.premium-nav-animation-drop-out .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after,
5500
+ .premium-nav-pointer-overline.premium-nav-animation-drop-out .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after,
5501
+ .premium-nav-pointer-double-line.premium-nav-animation-drop-out .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after {
5502
+ bottom: 10px; }
5503
+
5504
+ .premium-nav-pointer-framed .premium-menu-link-parent::before {
5505
+ content: ""; }
5506
+
5507
+ .premium-nav-pointer-framed .premium-menu-link-parent::before, .premium-nav-pointer-framed .premium-menu-link-parent::after {
5508
+ background: transparent;
5509
+ left: 0;
5510
+ top: 0;
5511
+ bottom: 0;
5512
+ right: 0;
5513
+ border: 3px solid #55595c; }
5514
+
5515
+ .premium-nav-pointer-framed.premium-nav-animation-grow .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
5516
+ -webkit-transform: scale(0.75);
5517
+ -ms-transform: scale(0.75);
5518
+ transform: scale(0.75); }
5519
+
5520
+ .premium-nav-pointer-framed.premium-nav-animation-shrink .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
5521
+ -webkit-transform: scale(1.25);
5522
+ -ms-transform: scale(1.25);
5523
+ transform: scale(1.25); }
5524
+
5525
+ .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent::before, .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent::after {
5526
+ width: 3px;
5527
+ height: 3px; }
5528
+
5529
+ .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent::before {
5530
+ border-width: 0 0 3px 3px;
5531
+ -webkit-transition: width 0.1s 0.2s, height 0.1s 0.3s, opacity 0.12s 0.22s;
5532
+ transition: width 0.1s 0.2s, height 0.1s 0.3s, opacity 0.12s 0.22s; }
5533
+
5534
+ .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent::after {
5535
+ content: "";
5536
+ top: auto;
5537
+ bottom: 0;
5538
+ left: auto;
5539
+ right: 0;
5540
+ border-width: 3px 3px 0 0;
5541
+ -webkit-transition: width 0.1s, height 0.1s 0.1s, opacity 0.02s 0.18s;
5542
+ transition: width 0.1s, height 0.1s 0.1s, opacity 0.02s 0.18s; }
5543
+
5544
+ .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent:hover::before, .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent:focus::before {
5545
+ -webkit-transition: opacity 0.02s, height 0.1s, width 0.1s 0.1s;
5546
+ transition: opacity 0.02s, height 0.1s, width 0.1s 0.1s; }
5547
+
5548
+ .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent:hover::after, .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent:focus::after {
5549
+ -webkit-transition: opacity 0.02s 0.2s, height 0.1s 0.2s, width 0.1s 0.3s;
5550
+ transition: opacity 0.02s 0.2s, height 0.1s 0.2s, width 0.1s 0.3s; }
5551
+
5552
+ .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent:hover::before, .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent:hover::after, .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent:focus::before, .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent:focus::after {
5553
+ width: 100%;
5554
+ height: 100%; }
5555
+
5556
+ .premium-nav-pointer-framed.premium-nav-animation-draw .premium-active-item .premium-menu-link-parent::before {
5557
+ -webkit-transition: opacity 0.02s, height 0.1s, width 0.1s 0.1s;
5558
+ transition: opacity 0.02s, height 0.1s, width 0.1s 0.1s; }
5559
+
5560
+ .premium-nav-pointer-framed.premium-nav-animation-draw .premium-active-item .premium-menu-link-parent::after {
5561
+ -webkit-transition: opacity 0.02s 0.2s, height 0.1s 0.2s, width 0.1s 0.3s;
5562
+ transition: opacity 0.02s 0.2s, height 0.1s 0.2s, width 0.1s 0.3s; }
5563
+
5564
+ .premium-nav-pointer-framed.premium-nav-animation-draw .premium-active-item .premium-menu-link-parent::before, .premium-nav-pointer-framed.premium-nav-animation-draw .premium-active-item .premium-menu-link-parent::after {
5565
+ width: 100%;
5566
+ height: 100%; }
5567
+
5568
+ .premium-nav-pointer-framed.premium-nav-animation-corners .premium-menu-link-parent::before {
5569
+ border-width: 3px 0 0 3px; }
5570
+
5571
+ .premium-nav-pointer-framed.premium-nav-animation-corners .premium-menu-link-parent::after {
5572
+ content: "";
5573
+ top: auto;
5574
+ bottom: 0;
5575
+ left: auto;
5576
+ right: 0;
5577
+ border-width: 0 3px 3px 0; }
5578
+
5579
+ .premium-nav-pointer-framed.premium-nav-animation-corners .premium-menu-link-parent::before, .premium-nav-pointer-framed.premium-nav-animation-corners .premium-menu-link-parent::after {
5580
+ width: 3px;
5581
+ height: 3px; }
5582
+
5583
+ .premium-nav-pointer-framed.premium-nav-animation-corners .premium-menu-link-parent:hover::before, .premium-nav-pointer-framed.premium-nav-animation-corners .premium-menu-link-parent:hover::after, .premium-nav-pointer-framed.premium-nav-animation-corners .premium-menu-link-parent:focus::before, .premium-nav-pointer-framed.premium-nav-animation-corners .premium-menu-link-parent:focus::after {
5584
+ width: 100%;
5585
+ height: 100%;
5586
+ -webkit-transition: opacity 2ms, width 0.4s, height 0.4s;
5587
+ transition: opacity 2ms, width 0.4s, height 0.4s; }
5588
+
5589
+ .premium-nav-pointer-framed.premium-nav-animation-corners .premium-active-item .premium-menu-link-parent::before, .premium-nav-pointer-framed.premium-nav-animation-corners .premium-active-item .premium-menu-link-parent::after {
5590
+ width: 100%;
5591
+ height: 100%;
5592
+ -webkit-transition: opacity 2ms, width 0.4s, height 0.4s;
5593
+ transition: opacity 2ms, width 0.4s, height 0.4s; }
5594
+
5595
+ .premium-nav-pointer-text.premium-nav-animation-grow .premium-menu-link-parent:hover, .premium-nav-pointer-text.premium-nav-animation-grow .premium-menu-link-parent:focus {
5596
+ -webkit-transform: scale(1.2);
5597
+ -ms-transform: scale(1.2);
5598
+ transform: scale(1.2); }
5599
+
5600
+ .premium-nav-pointer-text.premium-nav-animation-shrink .premium-menu-link-parent:hover, .premium-nav-pointer-text.premium-nav-animation-shrink .premium-menu-link-parent:focus {
5601
+ -webkit-transform: scale(0.8);
5602
+ -ms-transform: scale(0.8);
5603
+ transform: scale(0.8); }
5604
+
5605
+ .premium-nav-pointer-text.premium-nav-animation-sink .premium-menu-link-parent:hover, .premium-nav-pointer-text.premium-nav-animation-sink .premium-menu-link-parent:focus {
5606
+ -webkit-transform: translateY(8px);
5607
+ -ms-transform: translateY(8px);
5608
+ transform: translateY(8px); }
5609
+
5610
+ .premium-nav-pointer-text.premium-nav-animation-float .premium-menu-link-parent:hover, .premium-nav-pointer-text.premium-nav-animation-float .premium-menu-link-parent:focus {
5611
+ -webkit-transform: translateY(-8px);
5612
+ -ms-transform: translateY(-8px);
5613
+ transform: translateY(-8px); }
5614
+
5615
+ .premium-nav-pointer-text.premium-nav-animation-skew .premium-menu-link-parent:hover, .premium-nav-pointer-text.premium-nav-animation-skew .premium-menu-link-parent:focus {
5616
+ -webkit-transform: skew(-8deg);
5617
+ -ms-transform: skew(-8deg);
5618
+ transform: skew(-8deg); }
5619
+
5620
+ .premium-nav-pointer-text.premium-nav-animation-rotate .premium-menu-link-parent:hover, .premium-nav-pointer-text.premium-nav-animation-rotate .premium-menu-link-parent:focus {
5621
+ -webkit-transform: rotate(6deg);
5622
+ -ms-transform: rotate(6deg);
5623
+ transform: rotate(6deg); }
5624
+
5625
+ .premium-nav-pointer-background .premium-menu-link-parent::before {
5626
+ top: 0;
5627
+ left: 0;
5628
+ right: 0;
5629
+ bottom: 0;
5630
+ background: #55595c;
5631
+ background-color: #55595c;
5632
+ z-index: -1; }
5633
+
5634
+ .premium-nav-pointer-background .premium-menu-link-parent::before, .premium-nav-pointer-background .premium-menu-link-parent::after {
5635
+ content: "";
5636
+ -webkit-transition: 0.3s;
5637
+ transition: 0.3s; }
5638
+
5639
+ .premium-nav-pointer-background.premium-nav-animation-grow .premium-menu-link-parent::before {
5640
+ -webkit-transform: scale(0.5);
5641
+ -ms-transform: scale(0.5);
5642
+ transform: scale(0.5); }
5643
+
5644
+ .premium-nav-pointer-background.premium-nav-animation-grow .premium-menu-link-parent:hover::before, .premium-nav-pointer-background.premium-nav-animation-grow .premium-menu-link-parent:focus::before {
5645
+ -webkit-transform: scale(1);
5646
+ -ms-transform: scale(1);
5647
+ transform: scale(1); }
5648
+
5649
+ .premium-nav-pointer-background.premium-nav-animation-grow .premium-active-item .premium-menu-link-parent::before {
5650
+ -webkit-transform: scale(1);
5651
+ -ms-transform: scale(1);
5652
+ transform: scale(1); }
5653
+
5654
+ .premium-nav-pointer-background.premium-nav-animation-shrink .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
5655
+ -webkit-transform: scale(1.2);
5656
+ -ms-transform: scale(1.2);
5657
+ transform: scale(1.2);
5658
+ -webkit-transition: 0.3;
5659
+ transition: 0.3; }
5660
+
5661
+ .premium-nav-pointer-background.premium-nav-animation-sweep-left .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
5662
+ left: 100%; }
5663
+
5664
+ .premium-nav-pointer-background.premium-nav-animation-sweep-right .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
5665
+ right: 100%; }
5666
+
5667
+ .premium-nav-pointer-background.premium-nav-animation-sweep-up .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
5668
+ top: 100%; }
5669
+
5670
+ .premium-nav-pointer-background.premium-nav-animation-sweep-down .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
5671
+ bottom: 100%; }
5672
+
5673
+ .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-menu-link-parent::after, .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-menu-link-parent::after {
5674
+ top: 0;
5675
+ left: 0;
5676
+ right: 0;
5677
+ bottom: 0;
5678
+ background: #55595c;
5679
+ background-color: #55595c;
5680
+ z-index: -1; }
5681
+
5682
+ .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-menu-link-parent::before {
5683
+ top: 0;
5684
+ bottom: 100%; }
5685
+
5686
+ .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-menu-link-parent::after {
5687
+ top: 100%;
5688
+ bottom: 0; }
5689
+
5690
+ .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-menu-link-parent:hover::before, .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-menu-link-parent:focus::before {
5691
+ bottom: 50%; }
5692
+
5693
+ .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-menu-link-parent:hover::after, .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-menu-link-parent:focus::after {
5694
+ top: 50%; }
5695
+
5696
+ .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-active-item .premium-menu-link-parent::before {
5697
+ bottom: 50%; }
5698
+
5699
+ .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-active-item .premium-menu-link-parent::after {
5700
+ top: 50%; }
5701
+
5702
+ .premium-nav-pointer-background.premium-nav-animation-shutter-out-vertical .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
5703
+ bottom: 50%;
5704
+ top: 50%; }
5705
+
5706
+ .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-menu-link-parent::before {
5707
+ right: 0;
5708
+ left: 100%; }
5709
+
5710
+ .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-menu-link-parent::after {
5711
+ right: 100%;
5712
+ left: 0; }
5713
+
5714
+ .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-menu-link-parent:hover::before, .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-menu-link-parent:focus::before {
5715
+ left: 50%; }
5716
+
5717
+ .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-menu-link-parent:hover::after, .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-menu-link-parent:focus::after {
5718
+ right: 50%; }
5719
+
5720
+ .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-active-item .premium-menu-link-parent::before {
5721
+ left: 50%; }
5722
+
5723
+ .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-active-item .premium-menu-link-parent::after {
5724
+ right: 50%; }
5725
+
5726
+ .premium-nav-pointer-background.premium-nav-animation-shutter-out-horizontal .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
5727
+ left: 50%;
5728
+ right: 50%; }
5729
+
5730
+ .premium-active-item::before, .premium-active-item::after,
5731
+ .premium-menu-link-parent:hover::before,
5732
+ .premium-menu-link-parent:hover::after,
5733
+ .premium-menu-link-parent:focus::before,
5734
+ .premium-menu-link-parent:focus::after {
5735
+ -webkit-transform: scale(1);
5736
+ -ms-transform: scale(1);
5737
+ transform: scale(1); }
5738
+
5739
+ /**Sub Menu Animation*/
5740
+ .premium-nav-menu-item .premium-sub-menu,
5741
+ .premium-nav-menu-item .premium-mega-content-container {
5742
+ -webkit-transition: 0.5s all ease-in-out;
5743
+ transition: 0.5s all ease-in-out;
5744
+ -webkit-transition-delay: 0.1s;
5745
+ transition-delay: 0.1s; }
5746
+
5747
+ [class*="premium-nav-slide-"].premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item:hover > .premium-sub-menu,
5748
+ [class*="premium-nav-slide-"].premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item:hover > .premium-mega-content-container,
5749
+ [class*="premium-nav-slide-"].premium-nav-hor:not(.premium-hamburger-menu) .premium-sub-menu:hover > .premium-sub-menu,
5750
+ [class*="premium-nav-slide-"].premium-nav-ver:not(.premium-hamburger-menu) .premium-nav-menu-item:hover > .premium-sub-menu,
5751
+ [class*="premium-nav-slide-"].premium-nav-ver:not(.premium-hamburger-menu) .premium-nav-menu-item:hover > .premium-mega-content-container,
5752
+ [class*="premium-nav-slide-"].premium-nav-ver:not(.premium-hamburger-menu) .premium-sub-menu:hover > .premium-sub-menu {
5753
+ -webkit-transform: translate(0);
5754
+ -ms-transform: translate(0);
5755
+ transform: translate(0); }
5756
+
5757
+ .premium-nav-slide-up.premium-nav-hor:not(.premium-hamburger-menu) .premium-sub-menu,
5758
+ .premium-nav-slide-up.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-content-container,
5759
+ .premium-nav-slide-up.premium-nav-ver:not(.premium-hamburger-menu) .premium-sub-menu,
5760
+ .premium-nav-slide-up.premium-nav-ver:not(.premium-hamburger-menu) .premium-mega-content-container {
5761
+ -webkit-transform: translateY(10px);
5762
+ -ms-transform: translateY(10px);
5763
+ transform: translateY(10px); }
5764
+
5765
+ .premium-nav-slide-down.premium-nav-hor:not(.premium-hamburger-menu) .premium-sub-menu,
5766
+ .premium-nav-slide-down.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-content-container,
5767
+ .premium-nav-slide-down.premium-nav-ver:not(.premium-hamburger-menu) .premium-sub-menu,
5768
+ .premium-nav-slide-down.premium-nav-ver:not(.premium-hamburger-menu) .premium-mega-content-container {
5769
+ -webkit-transform: translateY(-10px);
5770
+ -ms-transform: translateY(-10px);
5771
+ transform: translateY(-10px); }
5772
+
5773
+ .premium-nav-slide-right.premium-nav-hor:not(.premium-hamburger-menu) .premium-sub-menu,
5774
+ .premium-nav-slide-right.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-content-container,
5775
+ .premium-nav-slide-right.premium-nav-ver:not(.premium-hamburger-menu) .premium-sub-menu,
5776
+ .premium-nav-slide-right.premium-nav-ver:not(.premium-hamburger-menu) .premium-mega-content-container {
5777
+ -webkit-transform: translateX(-10px);
5778
+ -ms-transform: translateX(-10px);
5779
+ transform: translateX(-10px); }
5780
+
5781
+ .premium-nav-slide-left.premium-nav-hor:not(.premium-hamburger-menu) .premium-sub-menu,
5782
+ .premium-nav-slide-left.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-content-container,
5783
+ .premium-nav-slide-left.premium-nav-ver:not(.premium-hamburger-menu) .premium-sub-menu,
5784
+ .premium-nav-slide-left.premium-nav-ver:not(.premium-hamburger-menu) .premium-mega-content-container {
5785
+ -webkit-transform: translateX(10px);
5786
+ -ms-transform: translateX(10px);
5787
+ transform: translateX(10px); }
5788
+
5789
+ /**Horizontal - Static Mega Content*/
5790
+ /*UP*/
5791
+ .premium-nav-slide-up.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-item-static .premium-mega-content-container {
5792
+ -webkit-transform: translateX(-50%) translateY(10px);
5793
+ -ms-transform: translateX(-50%) translateY(10px);
5794
+ transform: translateX(-50%) translateY(10px); }
5795
+
5796
+ .premium-nav-slide-up.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-item-static:hover .premium-mega-content-container {
5797
+ -webkit-transform: translateX(-50%) translateY(0);
5798
+ -ms-transform: translateX(-50%) translateY(0);
5799
+ transform: translateX(-50%) translateY(0); }
5800
+
5801
+ /*DOWN*/
5802
+ .premium-nav-slide-down.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-item-static .premium-mega-content-container {
5803
+ -webkit-transform: translateX(-50%) translateY(-10px);
5804
+ -ms-transform: translateX(-50%) translateY(-10px);
5805
+ transform: translateX(-50%) translateY(-10px); }
5806
+
5807
+ .premium-nav-slide-down.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-item-static:hover .premium-mega-content-container {
5808
+ -webkit-transform: translateX(-50%) translateY(0);
5809
+ -ms-transform: translateX(-50%) translateY(0);
5810
+ transform: translateX(-50%) translateY(0); }
5811
+
5812
+ /*Left*/
5813
+ .premium-nav-slide-left.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-item-static .premium-mega-content-container {
5814
+ -webkit-transform: translateX(-45%);
5815
+ -ms-transform: translateX(-45%);
5816
+ transform: translateX(-45%); }
5817
+
5818
+ .premium-nav-slide-left.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-item-static:hover .premium-mega-content-container {
5819
+ -webkit-transform: translateX(-50%);
5820
+ -ms-transform: translateX(-50%);
5821
+ transform: translateX(-50%); }
5822
+
5823
+ /*Right*/
5824
+ .premium-nav-slide-right.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-item-static .premium-mega-content-container {
5825
+ -webkit-transform: translateX(-55%);
5826
+ -ms-transform: translateX(-55%);
5827
+ transform: translateX(-55%); }
5828
+
5829
+ .premium-nav-slide-right.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-item-static:hover .premium-mega-content-container {
5830
+ -webkit-transform: translateX(-50%);
5831
+ -ms-transform: translateX(-50%);
5832
+ transform: translateX(-50%); }
5833
+
5834
+ /**Vertical - Static Mega Content*/
5835
+ .premium-nav-slide-down.premium-nav-ver:not(.premium-hamburger-menu) .premium-mega-item-static:hover .premium-mega-content-container,
5836
+ .premium-nav-slide-up.premium-nav-ver:not(.premium-hamburger-menu) .premium-mega-item-static:hover .premium-mega-content-container {
5837
+ -webkit-transform: translateY(0);
5838
+ -ms-transform: translateY(0);
5839
+ transform: translateY(0); }
5840
+
5841
+ .premium-nav-slide-right.premium-nav-ver:not(.premium-hamburger-menu) .premium-mega-item-static:hover .premium-mega-content-container,
5842
+ .premium-nav-slide-left.premium-nav-ver:not(.premium-hamburger-menu) .premium-mega-item-static:hover .premium-mega-content-container {
5843
+ -webkit-transform: translateX(0);
5844
+ -ms-transform: translateX(0);
5845
+ transform: translateX(0); }
5846
 
5847
  /************ Premium Team Members ************/
5848
  /**********************************************/
6251
  width: auto;
6252
  margin-right: 20px;
6253
  -webkit-transform: translateX(15px) rotate(-90deg);
6254
+ -ms-transform: translateX(15px) rotate(-90deg);
6255
+ transform: translateX(15px) rotate(-90deg);
6256
+ -webkit-transform-origin: center right;
6257
+ -ms-transform-origin: center right;
6258
+ transform-origin: center right; }
6259
+
6260
+ .premium-persons-title-ccw .premium-person-container:hover .premium-person-title {
6261
+ -webkit-transform: translateX(0) rotate(-90deg);
6262
+ -ms-transform: translateX(0) rotate(-90deg);
6263
+ transform: translateX(0) rotate(-90deg); }
6264
+
6265
+ /**************** Premium Pricing Table ****************/
6266
+ /*******************************************************/
6267
+ .premium-pricing-table-container {
6268
+ position: relative;
6269
+ text-align: center;
6270
+ display: inline-block;
6271
+ width: 100%;
6272
+ -webkit-transition: all 0.3s ease-in-out;
6273
+ transition: all 0.3s ease-in-out; }
6274
+
6275
+ .premium-pricing-icon-container {
6276
+ -js-display: flex;
6277
+ display: -webkit-box;
6278
+ display: -webkit-flex;
6279
+ display: -moz-box;
6280
+ display: -ms-flexbox;
6281
+ display: flex;
6282
+ -webkit-box-pack: center;
6283
+ -webkit-justify-content: center;
6284
+ -moz-box-pack: center;
6285
+ -ms-flex-pack: center;
6286
+ justify-content: center;
6287
+ line-height: 0; }
6288
+ .premium-pricing-icon-container .premium-pricing-icon {
6289
+ display: inline-block; }
6290
+ .premium-pricing-icon-container .premium-pricing-image {
6291
+ overflow: hidden; }
6292
+ .premium-pricing-icon-container .premium-pricing-image img {
6293
+ width: 25px;
6294
+ height: 25px;
6295
+ -o-object-fit: cover;
6296
+ object-fit: cover; }
6297
+
6298
+ .premium-badge-left {
6299
+ position: absolute;
6300
+ top: 0; }
6301
+
6302
+ .premium-badge-right {
6303
+ position: absolute;
6304
+ top: 0;
6305
+ right: 0; }
6306
+
6307
+ .premium-badge-left {
6308
+ left: 0; }
6309
+
6310
+ .premium-badge-triangle.premium-badge-left .corner {
6311
+ width: 0;
6312
+ height: 0;
6313
+ border-top: 150px solid;
6314
+ border-bottom: 150px solid transparent;
6315
+ border-right: 150px solid transparent; }
6316
+
6317
+ .premium-badge-triangle.premium-badge-right .corner {
6318
+ width: 0;
6319
+ height: 0;
6320
+ border-bottom: 150px solid transparent;
6321
+ border-right: 150px solid;
6322
+ border-left: 150px solid transparent; }
6323
+
6324
+ .premium-badge-triangle span {
6325
+ position: absolute;
6326
+ top: 35px;
6327
+ width: 100px;
6328
+ text-align: center;
6329
+ -webkit-transform: rotate(-45deg);
6330
+ -ms-transform: rotate(-45deg);
6331
+ transform: rotate(-45deg);
6332
+ display: block;
6333
+ text-transform: uppercase; }
6334
+
6335
+ .premium-badge-triangle.premium-badge-right span {
6336
+ -webkit-transform: rotate(45deg);
6337
+ -ms-transform: rotate(45deg);
6338
+ transform: rotate(45deg);
6339
+ right: 0; }
6340
+
6341
+ .premium-badge-circle {
6342
+ min-width: 4em;
6343
+ min-height: 4em;
6344
+ line-height: 4em;
6345
+ text-align: center;
6346
+ -webkit-border-radius: 100%;
6347
+ border-radius: 100%;
6348
+ position: absolute;
6349
+ z-index: 1; }
6350
+
6351
+ .premium-badge-stripe {
6352
+ position: absolute;
6353
+ -webkit-transform: rotate(90deg);
6354
+ -ms-transform: rotate(90deg);
6355
+ transform: rotate(90deg);
6356
+ width: 15em;
6357
+ overflow: hidden;
6358
+ height: 15em; }
6359
+ .premium-badge-stripe.premium-badge-left {
6360
+ -webkit-transform: rotate(0);
6361
+ -ms-transform: rotate(0);
6362
+ transform: rotate(0); }
6363
+ .premium-badge-stripe .corner {
6364
+ text-align: center;
6365
+ left: 0;
6366
+ width: 150%;
6367
+ -webkit-transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
6368
+ -ms-transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
6369
+ transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
6370
+ margin-top: 35px;
6371
+ font-size: 13px;
6372
+ line-height: 2;
6373
+ font-weight: 800;
6374
+ text-transform: uppercase; }
6375
+
6376
+ .premium-badge-flag .corner {
6377
+ text-align: center;
6378
+ -webkit-border-radius: 4px 4px 0 4px;
6379
+ border-radius: 4px 4px 0 4px;
6380
+ padding: 3px 15px;
6381
+ position: absolute;
6382
+ top: 10%;
6383
+ right: -8px; }
6384
+ .premium-badge-flag .corner::before, .premium-badge-flag .corner::after {
6385
+ content: "";
6386
+ display: block;
6387
+ position: absolute;
6388
+ width: 0;
6389
+ height: 0;
6390
+ top: 100%;
6391
+ right: 0;
6392
+ border-bottom: 8px solid transparent; }
6393
+
6394
+ .elementor-widget-premium-addon-pricing-table .elementor-widget-container {
6395
+ overflow: visible !important; }
6396
+
6397
+ .premium-badge-flag .corner::after {
6398
+ border-left: 8px solid rgba(0, 0, 0, 0.2); }
6399
+
6400
+ .premium-pricing-price-currency {
6401
+ position: relative; }
6402
+
6403
+ .premium-pricing-button-container {
6404
+ display: block; }
6405
+
6406
+ .premium-pricing-list {
6407
+ -js-display: flex;
6408
+ display: -webkit-box;
6409
+ display: -webkit-flex;
6410
+ display: -moz-box;
6411
+ display: -ms-flexbox;
6412
+ display: flex;
6413
+ -webkit-box-orient: vertical;
6414
+ -webkit-box-direction: normal;
6415
+ -webkit-flex-direction: column;
6416
+ -moz-box-orient: vertical;
6417
+ -moz-box-direction: normal;
6418
+ -ms-flex-direction: column;
6419
+ flex-direction: column;
6420
+ list-style-type: none;
6421
+ margin: 0; }
6422
+ .premium-pricing-list .premium-pricing-list-item {
6423
+ -js-display: flex;
6424
+ display: -webkit-box;
6425
+ display: -webkit-flex;
6426
+ display: -moz-box;
6427
+ display: -ms-flexbox;
6428
+ display: flex;
6429
+ -webkit-box-align: center;
6430
+ -webkit-align-items: center;
6431
+ -moz-box-align: center;
6432
+ -ms-flex-align: center;
6433
+ align-items: center; }
6434
+ .premium-pricing-list .premium-pricing-list-item svg {
6435
+ width: 50px;
6436
+ height: 50px; }
6437
+ .premium-pricing-list .premium-pricing-list-item img {
6438
+ width: 30px;
6439
+ height: 30px;
6440
+ -o-object-fit: cover;
6441
+ object-fit: cover; }
6442
+ .premium-pricing-list .premium-pricing-list-span {
6443
+ position: relative; }
6444
+ .premium-pricing-list .list-item-tooltip {
6445
+ border-bottom: 1px dotted; }
6446
+ .premium-pricing-list .premium-pricing-list-tooltip {
6447
+ position: absolute;
6448
+ top: -webkit-calc(100% + 1px);
6449
+ top: calc(100% + 1px);
6450
+ left: 0;
6451
+ visibility: hidden;
6452
+ padding: 15px 20px;
6453
+ -webkit-border-radius: 5px;
6454
+ border-radius: 5px;
6455
+ min-width: 200px;
6456
+ overflow: hidden;
6457
+ text-align: left;
6458
+ font-size: 0.8rem;
6459
+ color: #fff;
6460
+ background-color: #aaa; }
6461
+
6462
+ .premium-pricing-features-left .premium-pricing-list-span {
6463
+ text-align: left; }
6464
+
6465
+ .premium-pricing-features-center .premium-pricing-list-span {
6466
+ text-align: center; }
6467
+
6468
+ .premium-pricing-features-right .premium-pricing-list-span {
6469
+ text-align: right; }
6470
+
6471
+ .premium-pricing-list-span:hover .premium-pricing-list-tooltip {
6472
+ z-index: 99;
6473
+ visibility: visible;
6474
+ opacity: 1; }
6475
+
6476
+ .premium-pricing-slashed-price-value {
6477
+ display: inline-block;
6478
+ font-size: 20px;
6479
+ font-weight: 400;
6480
+ margin-right: 5px; }
6481
+
6482
+ .premium-pricing-price-value {
6483
+ font-size: 70px; }
6484
+
6485
+ .premium-pricing-description-container li {
6486
+ list-style-position: inside;
6487
+ text-indent: -40px; }
6488
+
6489
+ @-moz-document url-prefix() {
6490
+ .premium-pricing-description-container li {
6491
+ text-indent: 0px; } }
6492
+
6493
+ .premium-pricing-price-button {
6494
+ display: block;
6495
+ padding: 6px 12px;
6496
+ line-height: 1.42857143;
6497
+ text-align: center;
6498
+ color: #fff;
6499
+ background: #6ec1e4;
6500
+ margin-bottom: 0;
6501
+ -webkit-transition: all 0.3s ease-in-out;
6502
+ transition: all 0.3s ease-in-out; }
6503
 
6504
  /**************** Premium Progress Bar ****************/
6505
  /******************************************************/
8764
 
8765
  /*
8766
  * Common Title/Dual Heading
8767
+ */
8768
+ .premium-title-bg-text:before {
8769
+ position: absolute;
8770
+ content: attr(data-background);
8771
+ top: 0;
8772
+ left: 0;
8773
+ text-align: left; }
8774
+
8775
+ .premium-bg-text-yes .elementor-widget-container:before {
8776
+ position: absolute;
8777
+ top: 0;
8778
+ left: 0;
8779
+ text-align: left; }
8780
+
8781
+ .premium-mask-yes .premium-dual-header-first-clip .premium-dual-header-first-span .premium-mask-span,
8782
+ .premium-mask-yes .premium-dual-header-second-clip .premium-mask-span {
8783
+ background: inherit; }
8784
+
8785
+ .premium-mask-yes .premium-mask-span {
8786
+ position: relative;
8787
+ overflow: hidden;
8788
+ -js-display: inline-flex !important;
8789
+ display: -webkit-inline-box !important;
8790
+ display: -webkit-inline-flex !important;
8791
+ display: -moz-inline-box !important;
8792
+ display: -ms-inline-flexbox !important;
8793
+ display: inline-flex !important; }
8794
+ .premium-mask-yes .premium-mask-span::after {
8795
+ content: "";
8796
+ position: absolute;
8797
+ top: 0;
8798
+ right: 0px;
8799
+ width: 100%;
8800
+ height: 100%;
8801
+ background-color: currentColor;
8802
+ -webkit-backface-visibility: visible;
8803
+ backface-visibility: visible; }
8804
+
8805
+ .premium-mask-active.premium-mask-tr .premium-mask-span::after {
8806
+ -webkit-animation: pa-mask-tr 1.7s cubic-bezier(1, 0, 0.18, 1) forwards;
8807
+ animation: pa-mask-tr 1.7s cubic-bezier(1, 0, 0.18, 1) forwards;
8808
+ -webkit-transform: translateX(-103%);
8809
+ -ms-transform: translateX(-103%);
8810
+ transform: translateX(-103%); }
8811
+
8812
+ .premium-mask-active.premium-mask-tl .premium-mask-span::after {
8813
+ -webkit-animation: pa-mask-tl 1.7s cubic-bezier(1, 0, 0.18, 1) forwards;
8814
+ animation: pa-mask-tl 1.7s cubic-bezier(1, 0, 0.18, 1) forwards;
8815
+ -webkit-transform: translateX(103%);
8816
+ -ms-transform: translateX(103%);
8817
+ transform: translateX(103%); }
8818
+
8819
+ .premium-mask-active.premium-mask-tb .premium-mask-span::after {
8820
+ -webkit-animation: pa-mask-tb 1.7s cubic-bezier(1, 0, 0.18, 1) forwards;
8821
+ animation: pa-mask-tb 1.7s cubic-bezier(1, 0, 0.18, 1) forwards;
8822
+ -webkit-transform: translateY(-103%);
8823
+ -ms-transform: translateY(-103%);
8824
+ transform: translateY(-103%); }
8825
+
8826
+ .premium-mask-active.premium-mask-tt .premium-mask-span::after {
8827
+ -webkit-animation: pa-mask-tt 1.7s cubic-bezier(1, 0, 0.18, 1) forwards;
8828
+ animation: pa-mask-tt 1.7s cubic-bezier(1, 0, 0.18, 1) forwards;
8829
+ -webkit-transform: translateY(103%);
8830
+ -ms-transform: translateY(103%);
8831
+ transform: translateY(103%); }
8832
+
8833
+ @-webkit-keyframes pa-mask-tr {
8834
+ 0% {
8835
+ -webkit-transform: translateX(0%);
8836
+ transform: translateX(0%); }
8837
+ 100% {
8838
+ -webkit-transform: translateX(103%);
8839
+ transform: translateX(103%); } }
8840
+
8841
+ @keyframes pa-mask-tr {
8842
+ 0% {
8843
+ -webkit-transform: translateX(0%);
8844
+ transform: translateX(0%); }
8845
+ 100% {
8846
+ -webkit-transform: translateX(103%);
8847
+ transform: translateX(103%); } }
8848
+
8849
+ @-webkit-keyframes pa-mask-tl {
8850
+ 0% {
8851
+ -webkit-transform: translateX(0%);
8852
+ transform: translateX(0%); }
8853
+ 100% {
8854
+ -webkit-transform: translateX(-103%);
8855
+ transform: translateX(-103%); } }
8856
+
8857
+ @keyframes pa-mask-tl {
8858
+ 0% {
8859
+ -webkit-transform: translateX(0%);
8860
+ transform: translateX(0%); }
8861
+ 100% {
8862
+ -webkit-transform: translateX(-103%);
8863
+ transform: translateX(-103%); } }
8864
+
8865
+ @-webkit-keyframes pa-mask-tb {
8866
+ 0% {
8867
+ -webkit-transform: translateY(0%);
8868
+ transform: translateY(0%); }
8869
+ 100% {
8870
+ -webkit-transform: translateY(103%);
8871
+ transform: translateY(103%); } }
8872
+
8873
+ @keyframes pa-mask-tb {
8874
+ 0% {
8875
+ -webkit-transform: translateY(0%);
8876
+ transform: translateY(0%); }
8877
+ 100% {
8878
+ -webkit-transform: translateY(103%);
8879
+ transform: translateY(103%); } }
8880
+
8881
+ @-webkit-keyframes pa-mask-tt {
8882
+ 0% {
8883
+ -webkit-transform: translateY(0%);
8884
+ transform: translateY(0%); }
8885
+ 100% {
8886
+ -webkit-transform: translateY(-103%);
8887
+ transform: translateY(-103%); } }
8888
+
8889
+ @keyframes pa-mask-tt {
8890
+ 0% {
8891
+ -webkit-transform: translateY(0%);
8892
+ transform: translateY(0%); }
8893
+ 100% {
8894
+ -webkit-transform: translateY(-103%);
8895
+ transform: translateY(-103%); } }
8896
+
8897
  /*
8898
  * Common Buttons Style.
8899
+ */
8900
+ .premium-button .premium-lottie-animation,
8901
+ .premium-image-button .premium-lottie-animation {
8902
+ -js-display: flex;
8903
+ display: -webkit-box;
8904
+ display: -webkit-flex;
8905
+ display: -moz-box;
8906
+ display: -ms-flexbox;
8907
+ display: flex; }
8908
+
8909
+ .premium-button svg,
8910
+ .premium-image-button svg {
8911
+ width: 30px;
8912
+ height: 30px; }
8913
+
8914
+ .premium-btn-sm,
8915
+ .premium-btn-md,
8916
+ .premium-btn-lg,
8917
+ .premium-btn-block {
8918
+ background-color: #eee;
8919
+ color: #042551;
8920
+ margin: 0px;
8921
+ text-decoration: none; }
8922
+ .premium-btn-sm:hover,
8923
+ .premium-btn-md:hover,
8924
+ .premium-btn-lg:hover,
8925
+ .premium-btn-block:hover {
8926
+ background-color: #54595f;
8927
+ color: #eee; }
8928
+
8929
+ .premium-btn-sm {
8930
+ padding: 12px 24px;
8931
+ font-size: 14px;
8932
+ line-height: 1; }
8933
+
8934
+ .premium-btn-md {
8935
+ padding: 14px 26px;
8936
+ font-size: 16px;
8937
+ line-height: 1.2; }
8938
+
8939
+ .premium-btn-lg {
8940
+ padding: 16px 28px;
8941
+ font-size: 18px;
8942
+ line-height: 1.3333; }
8943
+
8944
+ .premium-btn-block {
8945
+ font-size: 18px;
8946
+ line-height: 1;
8947
+ padding: 20px 0px;
8948
+ width: 100%;
8949
+ text-align: center; }
8950
+
8951
+ .premium-button-text {
8952
+ display: inline-block;
8953
+ width: 100%; }
8954
+
8955
  /*
8956
  * Common Button/Image Button Mouse Detect Effect.
8957
+ */
8958
+ .premium-mouse-detect-yes .premium-button-style6 .premium-button-style6-bg {
8959
+ position: absolute;
8960
+ z-index: 0;
8961
+ top: 0;
8962
+ left: 0;
8963
+ width: 0px;
8964
+ height: 0px;
8965
+ -webkit-border-radius: 50%;
8966
+ border-radius: 50%;
8967
+ display: block;
8968
+ -webkit-transform: translate(-50%, -50%);
8969
+ -ms-transform: translate(-50%, -50%);
8970
+ transform: translate(-50%, -50%);
8971
+ -webkit-transition: width 0.4s ease-in-out, height 0.4s ease-in-out;
8972
+ transition: width 0.4s ease-in-out, height 0.4s ease-in-out; }
8973
+
8974
+ .premium-mouse-detect-yes .premium-button-style6:hover .premium-button-style6-bg {
8975
+ width: 225%;
8976
+ height: 560px; }
8977
+
8978
+ .premium-mouse-detect-yes .premium-button-style6:before {
8979
+ width: 0;
8980
+ height: 0; }
8981
+
8982
+ /** Loader */
8983
+ .premium-loader {
8984
+ border: 3px solid #f3f3f3;
8985
+ border-top-width: 3px;
8986
+ border-top-style: solid;
8987
+ border-top-color: #f3f3f3;
8988
+ -webkit-border-radius: 50%;
8989
+ border-radius: 50%;
8990
+ border-top: 3px solid;
8991
+ border-top-color: #bbb;
8992
+ width: 30px;
8993
+ height: 30px;
8994
+ -webkit-animation: spin 2s linear infinite;
8995
+ animation: spin 2s linear infinite;
8996
+ margin: 0 auto; }
8997
+
8998
+ /** Common Animation */
8999
+ @-webkit-keyframes spin {
9000
+ 0% {
9001
+ -webkit-transform: rotate(0deg);
9002
+ transform: rotate(0deg); }
9003
+ 100% {
9004
+ -webkit-transform: rotate(360deg);
9005
+ transform: rotate(360deg); } }
9006
+ @keyframes spin {
9007
+ 0% {
9008
+ -webkit-transform: rotate(0deg);
9009
+ transform: rotate(0deg); }
9010
+ 100% {
9011
+ -webkit-transform: rotate(360deg);
9012
+ transform: rotate(360deg); } }
9013
+
9014
+ /**Notice*/
9015
+ .premium-error-notice {
9016
+ width: 100%;
9017
+ padding: 10px;
9018
+ color: #b94a48;
9019
+ background-color: #f2dede;
9020
+ border-color: #eed3d7;
9021
+ text-align: center; }
assets/frontend/css/premium-icon-list-rtl.css CHANGED
@@ -1,330 +1,330 @@
1
- /**************** Premium Bullet List *****************/
2
- /******************************************************/
3
- .premium-bullet-list-box {
4
- -js-display: flex;
5
- display: -webkit-box;
6
- display: -webkit-flex;
7
- display: -moz-box;
8
- display: -ms-flexbox;
9
- display: flex;
10
- -webkit-flex-wrap: wrap;
11
- -ms-flex-wrap: wrap;
12
- flex-wrap: wrap;
13
- -webkit-box-orient: vertical;
14
- -webkit-box-direction: normal;
15
- -webkit-flex-direction: column;
16
- -moz-box-orient: vertical;
17
- -moz-box-direction: normal;
18
- -ms-flex-direction: column;
19
- flex-direction: column;
20
- }
21
-
22
- .premium-bullet-list-box .premium-bullet-list-content-grow-lc {
23
- -webkit-transform-origin: right center;
24
- -ms-transform-origin: right center;
25
- transform-origin: right center;
26
- }
27
-
28
- .premium-bullet-list-box .premium-bullet-list-content-grow-rc {
29
- -webkit-transform-origin: left center;
30
- -ms-transform-origin: left center;
31
- transform-origin: left center;
32
- }
33
-
34
- .premium-bullet-list-box .premium-bullet-list-content-grow-cc {
35
- -webkit-transform-origin: center center;
36
- -ms-transform-origin: center center;
37
- transform-origin: center center;
38
- }
39
-
40
- .premium-bullet-list-content {
41
- -js-display: flex;
42
- display: -webkit-box;
43
- display: -webkit-flex;
44
- display: -moz-box;
45
- display: -ms-flexbox;
46
- display: flex;
47
- -webkit-transition: all 0.3s ease-in-out;
48
- transition: all 0.3s ease-in-out;
49
- width: auto;
50
- position: relative;
51
- }
52
-
53
- .premium-bullet-list-content .premium-bullet-list-text span,
54
- .premium-bullet-list-content .premium-bullet-list-wrapper {
55
- display: inline-block;
56
- -webkit-align-self: center;
57
- -ms-flex-item-align: center;
58
- align-self: center;
59
- -webkit-transition: all 0.3s ease-in-out;
60
- transition: all 0.3s ease-in-out;
61
- }
62
-
63
- .premium-bullet-list-content .premium-bullet-list-text span {
64
- margin: 0 5px;
65
- -webkit-box-flex: 1;
66
- -webkit-flex: 1;
67
- -moz-box-flex: 1;
68
- -ms-flex: 1;
69
- flex: 1;
70
- }
71
-
72
- .premium-bullet-list-content .premium-bullet-list-icon-text p {
73
- font-size: 18px;
74
- background-color: #eee;
75
- padding: 1px 5px;
76
- -webkit-border-radius: 2px;
77
- border-radius: 2px;
78
- }
79
-
80
- .premium-bullet-list-content .premium-bullet-list-text span,
81
- .premium-bullet-list-content .premium-bullet-list-icon-text p,
82
- .premium-bullet-list-content .premium-bullet-list-wrapper img,
83
- .premium-bullet-list-content .premium-bullet-list-wrapper svg,
84
- .premium-bullet-list-content .premium-bullet-list-wrapper i {
85
- -webkit-transition: all 0.3s ease-in-out;
86
- transition: all 0.3s ease-in-out;
87
- }
88
-
89
- .premium-bullet-list-content .premium-bullet-list-wrapper {
90
- position: relative;
91
- line-height: 0;
92
- }
93
-
94
- .premium-bullet-list-content .premium-bullet-list-wrapper img,
95
- .premium-bullet-list-content .premium-bullet-list-wrapper svg {
96
- width: 30px !important;
97
- height: 30px !important;
98
- position: relative;
99
- z-index: 500;
100
- }
101
-
102
- .premium-bullet-list-content .premium-bullet-list-wrapper i {
103
- width: 1.25em;
104
- }
105
-
106
- .premium-bullet-list-content .premium-bullet-list-wrapper i,
107
- .premium-bullet-list-content .premium-bullet-list-wrapper .premium-bullet-list-icon-text {
108
- position: relative;
109
- z-index: 500;
110
- }
111
-
112
- .premium-bullet-list-content .premium-bullet-list-link {
113
- position: absolute;
114
- top: 0;
115
- right: 0;
116
- width: 100%;
117
- height: 100%;
118
- z-index: 1000;
119
- }
120
-
121
- .premium-bullet-list-content:not(:last-of-type) .premium-bullet-list-connector {
122
- width: 100%;
123
- height: 100%;
124
- position: absolute;
125
- top: 0.5em;
126
- z-index: 100;
127
- -js-display: flex;
128
- display: -webkit-box;
129
- display: -webkit-flex;
130
- display: -moz-box;
131
- display: -ms-flexbox;
132
- display: flex;
133
- -webkit-box-pack: center;
134
- -webkit-justify-content: center;
135
- -moz-box-pack: center;
136
- -ms-flex-pack: center;
137
- justify-content: center;
138
- }
139
-
140
- .premium-bullet-list-content:not(:last-of-type) .premium-bullet-list-connector .premium-icon-connector-content:after {
141
- content: "";
142
- border-left-width: 1px;
143
- border-left-style: solid;
144
- border-color: #333333;
145
- display: block;
146
- height: 100%;
147
- }
148
-
149
- li.premium-bullet-list-content.premium-bullet-list-content-inline {
150
- -webkit-align-self: center;
151
- -ms-flex-item-align: center;
152
- align-self: center;
153
- z-index: 2;
154
- }
155
-
156
- li.premium-bullet-list-content.premium-bullet-list-content-inline:not(:first-child) {
157
- margin: 0 3px;
158
- }
159
-
160
- li.premium-bullet-list-content.premium-bullet-list-content-inline:first-child {
161
- margin: 0 0 0 3px;
162
- }
163
-
164
- .premium-bullet-list-divider:not(:last-child) {
165
- width: 100%;
166
- -webkit-box-flex: 0;
167
- -webkit-flex: 0 0 100%;
168
- -moz-box-flex: 0;
169
- -ms-flex: 0 0 100%;
170
- flex: 0 0 100%;
171
- overflow: hidden;
172
- }
173
-
174
- .premium-bullet-list-divider:not(:last-child):after {
175
- content: "";
176
- display: block;
177
- border-top-style: solid;
178
- border-top-width: 1px;
179
- }
180
-
181
- .premium-bullet-list-divider-inline:not(:last-child) {
182
- float: left;
183
- display: inline-block;
184
- position: relative;
185
- height: 100%;
186
- overflow: hidden;
187
- -webkit-align-self: center;
188
- -ms-flex-item-align: center;
189
- align-self: center;
190
- margin: 0 3px;
191
- }
192
-
193
- .premium-bullet-list-divider-inline:not(:last-child):after {
194
- content: "";
195
- display: block;
196
- border-right-width: 1px;
197
- height: 33px;
198
- border-right-style: solid;
199
- }
200
-
201
- .premium-bullet-list-icon-text {
202
- line-height: 1.5;
203
- }
204
-
205
- .premium-bullet-list-icon-text p,
206
- ul.premium-bullet-list-box,
207
- li.premium-bullet-list-content {
208
- margin: 0;
209
- }
210
-
211
- .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-wrapper i,
212
- .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-text span,
213
- .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-icon-text p {
214
- color: transparent !important;
215
- text-shadow: 0 0 3px #aaa;
216
- }
217
-
218
- .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-icon-connector-content,
219
- .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-wrapper .premium-lottie-animation svg,
220
- .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-wrapper img,
221
- .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-badge {
222
- -webkit-filter: blur(3px);
223
- filter: blur(3px);
224
- }
225
-
226
- .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-wrapper i,
227
- .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-text span,
228
- .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-icon-text p {
229
- color: #aaa !important;
230
- text-shadow: 0 0px 0 transparent;
231
- }
232
-
233
- .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-icon-connector-content,
234
- .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-wrapper .premium-lottie-animation svg,
235
- .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-wrapper img,
236
- .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-badge {
237
- -webkit-filter: none;
238
- filter: none;
239
- }
240
-
241
- .premium-bullet-list-content .premium-bullet-list-badge {
242
- font-size: 11px;
243
- top: auto;
244
- min-width: -webkit-max-content;
245
- min-width: -moz-max-content;
246
- min-width: max-content;
247
- height: -webkit-fit-content;
248
- height: -moz-fit-content;
249
- height: fit-content;
250
- }
251
-
252
- .premium-bullet-list-content .premium-bullet-list-icon-text p {
253
- font-size: 13px;
254
- }
255
-
256
- .premium-bullet-list-gradient-effect[data-text] {
257
- display: inline-block;
258
- position: relative;
259
- text-decoration: none;
260
- }
261
-
262
- .premium-bullet-list-gradient-effect[data-text]::before {
263
- content: attr(data-text);
264
- position: absolute;
265
- z-index: 1;
266
- overflow: hidden;
267
- -webkit-clip-path: polygon(100% 100%, 100% 100%, 50% 50%);
268
- clip-path: polygon(100% 100%, 100% 100%, 50% 50%);
269
- -webkit-background-clip: text;
270
- background-clip: text;
271
- -webkit-text-fill-color: transparent;
272
- -webkit-transition: all 0.4s ease;
273
- transition: all 0.4s ease;
274
- }
275
-
276
- .premium-bullet-list-content:hover .premium-bullet-list-gradient-effect[data-text]::before,
277
- .premium-bullet-list-content:focus .premium-bullet-list-gradient-effect[data-text]::before {
278
- -webkit-animation: rtlgradient 1s forwards;
279
- animation: rtlgradient 1s forwards;
280
- }
281
-
282
- @-webkit-keyframes rtlgradient {
283
- 0% {
284
- -webkit-clip-path: circle(0% at 150% 50%);
285
- clip-path: circle(0% at 150% 50%);
286
- }
287
-
288
- 100% {
289
- -webkit-clip-path: circle(100% at 50% 50%);
290
- clip-path: circle(100% at 50% 50%);
291
- }
292
- }
293
-
294
- @keyframes rtlgradient {
295
- 0% {
296
- -webkit-clip-path: circle(0% at 150% 50%);
297
- clip-path: circle(0% at 150% 50%);
298
- }
299
-
300
- 100% {
301
- -webkit-clip-path: circle(100% at 50% 50%);
302
- clip-path: circle(100% at 50% 50%);
303
- }
304
- }
305
-
306
- ul[data-list-animation*="animated-"] .premium-bullet-list-divider,
307
- ul[data-list-animation*="animated-"] .premium-bullet-list-content,
308
- ul[data-list-animation*="animated-"] .premium-bullet-list-divider-inline {
309
- opacity: 0;
310
- }
311
-
312
- .premium-bullet-list-content-grow-effect:hover {
313
- -webkit-transform: scale(1.07);
314
- -ms-transform: scale(1.07);
315
- transform: scale(1.07);
316
- }
317
-
318
- @-webkit-keyframes spin {
319
- 100% {
320
- -webkit-transform: rotate(360deg);
321
- transform: rotate(360deg);
322
- }
323
- }
324
-
325
- @keyframes spin {
326
- 100% {
327
- -webkit-transform: rotate(360deg);
328
- transform: rotate(360deg);
329
- }
330
  }
1
+ /**************** Premium Bullet List *****************/
2
+ /******************************************************/
3
+ .premium-bullet-list-box {
4
+ -js-display: flex;
5
+ display: -webkit-box;
6
+ display: -webkit-flex;
7
+ display: -moz-box;
8
+ display: -ms-flexbox;
9
+ display: flex;
10
+ -webkit-flex-wrap: wrap;
11
+ -ms-flex-wrap: wrap;
12
+ flex-wrap: wrap;
13
+ -webkit-box-orient: vertical;
14
+ -webkit-box-direction: normal;
15
+ -webkit-flex-direction: column;
16
+ -moz-box-orient: vertical;
17
+ -moz-box-direction: normal;
18
+ -ms-flex-direction: column;
19
+ flex-direction: column;
20
+ }
21
+
22
+ .premium-bullet-list-box .premium-bullet-list-content-grow-lc {
23
+ -webkit-transform-origin: right center;
24
+ -ms-transform-origin: right center;
25
+ transform-origin: right center;
26
+ }
27
+
28
+ .premium-bullet-list-box .premium-bullet-list-content-grow-rc {
29
+ -webkit-transform-origin: left center;
30
+ -ms-transform-origin: left center;
31
+ transform-origin: left center;
32
+ }
33
+
34
+ .premium-bullet-list-box .premium-bullet-list-content-grow-cc {
35
+ -webkit-transform-origin: center center;
36
+ -ms-transform-origin: center center;
37
+ transform-origin: center center;
38
+ }
39
+
40
+ .premium-bullet-list-content {
41
+ -js-display: flex;
42
+ display: -webkit-box;
43
+ display: -webkit-flex;
44
+ display: -moz-box;
45
+ display: -ms-flexbox;
46
+ display: flex;
47
+ -webkit-transition: all 0.3s ease-in-out;
48
+ transition: all 0.3s ease-in-out;
49
+ width: auto;
50
+ position: relative;
51
+ }
52
+
53
+ .premium-bullet-list-content .premium-bullet-list-text span,
54
+ .premium-bullet-list-content .premium-bullet-list-wrapper {
55
+ display: inline-block;
56
+ -webkit-align-self: center;
57
+ -ms-flex-item-align: center;
58
+ align-self: center;
59
+ -webkit-transition: all 0.3s ease-in-out;
60
+ transition: all 0.3s ease-in-out;
61
+ }
62
+
63
+ .premium-bullet-list-content .premium-bullet-list-text span {
64
+ margin: 0 5px;
65
+ -webkit-box-flex: 1;
66
+ -webkit-flex: 1;
67
+ -moz-box-flex: 1;
68
+ -ms-flex: 1;
69
+ flex: 1;
70
+ }
71
+
72
+ .premium-bullet-list-content .premium-bullet-list-icon-text p {
73
+ font-size: 18px;
74
+ background-color: #eee;
75
+ padding: 1px 5px;
76
+ -webkit-border-radius: 2px;
77
+ border-radius: 2px;
78
+ }
79
+
80
+ .premium-bullet-list-content .premium-bullet-list-text span,
81
+ .premium-bullet-list-content .premium-bullet-list-icon-text p,
82
+ .premium-bullet-list-content .premium-bullet-list-wrapper img,
83
+ .premium-bullet-list-content .premium-bullet-list-wrapper svg,
84
+ .premium-bullet-list-content .premium-bullet-list-wrapper i {
85
+ -webkit-transition: all 0.3s ease-in-out;
86
+ transition: all 0.3s ease-in-out;
87
+ }
88
+
89
+ .premium-bullet-list-content .premium-bullet-list-wrapper {
90
+ position: relative;
91
+ line-height: 0;
92
+ }
93
+
94
+ .premium-bullet-list-content .premium-bullet-list-wrapper img,
95
+ .premium-bullet-list-content .premium-bullet-list-wrapper svg {
96
+ width: 30px !important;
97
+ height: 30px !important;
98
+ position: relative;
99
+ z-index: 500;
100
+ }
101
+
102
+ .premium-bullet-list-content .premium-bullet-list-wrapper i {
103
+ width: 1.25em;
104
+ }
105
+
106
+ .premium-bullet-list-content .premium-bullet-list-wrapper i,
107
+ .premium-bullet-list-content .premium-bullet-list-wrapper .premium-bullet-list-icon-text {
108
+ position: relative;
109
+ z-index: 500;
110
+ }
111
+
112
+ .premium-bullet-list-content .premium-bullet-list-link {
113
+ position: absolute;
114
+ top: 0;
115
+ right: 0;
116
+ width: 100%;
117
+ height: 100%;
118
+ z-index: 1000;
119
+ }
120
+
121
+ .premium-bullet-list-content:not(:last-of-type) .premium-bullet-list-connector {
122
+ width: 100%;
123
+ height: 100%;
124
+ position: absolute;
125
+ top: 0.5em;
126
+ z-index: 100;
127
+ -js-display: flex;
128
+ display: -webkit-box;
129
+ display: -webkit-flex;
130
+ display: -moz-box;
131
+ display: -ms-flexbox;
132
+ display: flex;
133
+ -webkit-box-pack: center;
134
+ -webkit-justify-content: center;
135
+ -moz-box-pack: center;
136
+ -ms-flex-pack: center;
137
+ justify-content: center;
138
+ }
139
+
140
+ .premium-bullet-list-content:not(:last-of-type) .premium-bullet-list-connector .premium-icon-connector-content:after {
141
+ content: "";
142
+ border-left-width: 1px;
143
+ border-left-style: solid;
144
+ border-color: #333333;
145
+ display: block;
146
+ height: 100%;
147
+ }
148
+
149
+ li.premium-bullet-list-content.premium-bullet-list-content-inline {
150
+ -webkit-align-self: center;
151
+ -ms-flex-item-align: center;
152
+ align-self: center;
153
+ z-index: 2;
154
+ }
155
+
156
+ li.premium-bullet-list-content.premium-bullet-list-content-inline:not(:first-child) {
157
+ margin: 0 3px;
158
+ }
159
+
160
+ li.premium-bullet-list-content.premium-bullet-list-content-inline:first-child {
161
+ margin: 0 0 0 3px;
162
+ }
163
+
164
+ .premium-bullet-list-divider:not(:last-child) {
165
+ width: 100%;
166
+ -webkit-box-flex: 0;
167
+ -webkit-flex: 0 0 100%;
168
+ -moz-box-flex: 0;
169
+ -ms-flex: 0 0 100%;
170
+ flex: 0 0 100%;
171
+ overflow: hidden;
172
+ }
173
+
174
+ .premium-bullet-list-divider:not(:last-child):after {
175
+ content: "";
176
+ display: block;
177
+ border-top-style: solid;
178
+ border-top-width: 1px;
179
+ }
180
+
181
+ .premium-bullet-list-divider-inline:not(:last-child) {
182
+ float: left;
183
+ display: inline-block;
184
+ position: relative;
185
+ height: 100%;
186
+ overflow: hidden;
187
+ -webkit-align-self: center;
188
+ -ms-flex-item-align: center;
189
+ align-self: center;
190
+ margin: 0 3px;
191
+ }
192
+
193
+ .premium-bullet-list-divider-inline:not(:last-child):after {
194
+ content: "";
195
+ display: block;
196
+ border-right-width: 1px;
197
+ height: 33px;
198
+ border-right-style: solid;
199
+ }
200
+
201
+ .premium-bullet-list-icon-text {
202
+ line-height: 1.5;
203
+ }
204
+
205
+ .premium-bullet-list-icon-text p,
206
+ ul.premium-bullet-list-box,
207
+ li.premium-bullet-list-content {
208
+ margin: 0;
209
+ }
210
+
211
+ .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-wrapper i,
212
+ .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-text span,
213
+ .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-icon-text p {
214
+ color: transparent !important;
215
+ text-shadow: 0 0 3px #aaa;
216
+ }
217
+
218
+ .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-icon-connector-content,
219
+ .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-wrapper .premium-lottie-animation svg,
220
+ .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-wrapper img,
221
+ .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-badge {
222
+ -webkit-filter: blur(3px);
223
+ filter: blur(3px);
224
+ }
225
+
226
+ .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-wrapper i,
227
+ .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-text span,
228
+ .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-icon-text p {
229
+ color: #aaa !important;
230
+ text-shadow: 0 0px 0 transparent;
231
+ }
232
+
233
+ .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-icon-connector-content,
234
+ .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-wrapper .premium-lottie-animation svg,
235
+ .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-wrapper img,
236
+ .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-badge {
237
+ -webkit-filter: none;
238
+ filter: none;
239
+ }
240
+
241
+ .premium-bullet-list-content .premium-bullet-list-badge {
242
+ font-size: 11px;
243
+ top: auto;
244
+ min-width: -webkit-max-content;
245
+ min-width: -moz-max-content;
246
+ min-width: max-content;
247
+ height: -webkit-fit-content;
248
+ height: -moz-fit-content;
249
+ height: fit-content;
250
+ }
251
+
252
+ .premium-bullet-list-content .premium-bullet-list-icon-text p {
253
+ font-size: 13px;
254
+ }
255
+
256
+ .premium-bullet-list-gradient-effect[data-text] {
257
+ display: inline-block;
258
+ position: relative;
259
+ text-decoration: none;
260
+ }
261
+
262
+ .premium-bullet-list-gradient-effect[data-text]::before {
263
+ content: attr(data-text);
264
+ position: absolute;
265
+ z-index: 1;
266
+ overflow: hidden;
267
+ -webkit-clip-path: polygon(100% 100%, 100% 100%, 50% 50%);
268
+ clip-path: polygon(100% 100%, 100% 100%, 50% 50%);
269
+ -webkit-background-clip: text;
270
+ background-clip: text;
271
+ -webkit-text-fill-color: transparent;
272
+ -webkit-transition: all 0.4s ease;
273
+ transition: all 0.4s ease;
274
+ }
275
+
276
+ .premium-bullet-list-content:hover .premium-bullet-list-gradient-effect[data-text]::before,
277
+ .premium-bullet-list-content:focus .premium-bullet-list-gradient-effect[data-text]::before {
278
+ -webkit-animation: rtlgradient 1s forwards;
279
+ animation: rtlgradient 1s forwards;
280
+ }
281
+
282
+ @-webkit-keyframes rtlgradient {
283
+ 0% {
284
+ -webkit-clip-path: circle(0% at 150% 50%);
285
+ clip-path: circle(0% at 150% 50%);
286
+ }
287
+
288
+ 100% {
289
+ -webkit-clip-path: circle(100% at 50% 50%);
290
+ clip-path: circle(100% at 50% 50%);
291
+ }
292
+ }
293
+
294
+ @keyframes rtlgradient {
295
+ 0% {
296
+ -webkit-clip-path: circle(0% at 150% 50%);
297
+ clip-path: circle(0% at 150% 50%);
298
+ }
299
+
300
+ 100% {
301
+ -webkit-clip-path: circle(100% at 50% 50%);
302
+ clip-path: circle(100% at 50% 50%);
303
+ }
304
+ }
305
+
306
+ ul[data-list-animation*="animated-"] .premium-bullet-list-divider,
307
+ ul[data-list-animation*="animated-"] .premium-bullet-list-content,
308
+ ul[data-list-animation*="animated-"] .premium-bullet-list-divider-inline {
309
+ opacity: 0;
310
+ }
311
+
312
+ .premium-bullet-list-content-grow-effect:hover {
313
+ -webkit-transform: scale(1.07);
314
+ -ms-transform: scale(1.07);
315
+ transform: scale(1.07);
316
+ }
317
+
318
+ @-webkit-keyframes spin {
319
+ 100% {
320
+ -webkit-transform: rotate(360deg);
321
+ transform: rotate(360deg);
322
+ }
323
+ }
324
+
325
+ @keyframes spin {
326
+ 100% {
327
+ -webkit-transform: rotate(360deg);
328
+ transform: rotate(360deg);
329
+ }
330
  }
assets/frontend/css/premium-icon-list.css CHANGED
@@ -1,253 +1,253 @@
1
- /**************** Premium Bullet List ****************/
2
- /*****************************************************/
3
- .premium-bullet-list-box {
4
- -js-display: flex;
5
- display: -webkit-box;
6
- display: -webkit-flex;
7
- display: -moz-box;
8
- display: -ms-flexbox;
9
- display: flex;
10
- -webkit-flex-wrap: wrap;
11
- -ms-flex-wrap: wrap;
12
- flex-wrap: wrap;
13
- -webkit-box-orient: vertical;
14
- -webkit-box-direction: normal;
15
- -webkit-flex-direction: column;
16
- -moz-box-orient: vertical;
17
- -moz-box-direction: normal;
18
- -ms-flex-direction: column;
19
- flex-direction: column; }
20
- .premium-bullet-list-box .premium-bullet-list-content-grow-lc {
21
- -webkit-transform-origin: left center;
22
- -ms-transform-origin: left center;
23
- transform-origin: left center; }
24
- .premium-bullet-list-box .premium-bullet-list-content-grow-rc {
25
- -webkit-transform-origin: right center;
26
- -ms-transform-origin: right center;
27
- transform-origin: right center; }
28
- .premium-bullet-list-box .premium-bullet-list-content-grow-cc {
29
- -webkit-transform-origin: center center;
30
- -ms-transform-origin: center center;
31
- transform-origin: center center; }
32
-
33
- .premium-bullet-list-content {
34
- -js-display: flex;
35
- display: -webkit-box;
36
- display: -webkit-flex;
37
- display: -moz-box;
38
- display: -ms-flexbox;
39
- display: flex;
40
- -webkit-transition: all 0.3s ease-in-out;
41
- transition: all 0.3s ease-in-out;
42
- width: auto;
43
- position: relative; }
44
- .premium-bullet-list-content .premium-bullet-list-text span,
45
- .premium-bullet-list-content .premium-bullet-list-wrapper {
46
- display: inline-block;
47
- -webkit-align-self: center;
48
- -ms-flex-item-align: center;
49
- align-self: center;
50
- -webkit-transition: all 0.3s ease-in-out;
51
- transition: all 0.3s ease-in-out; }
52
- .premium-bullet-list-content .premium-bullet-list-text span {
53
- margin: 0 5px;
54
- -webkit-box-flex: 1;
55
- -webkit-flex: 1;
56
- -moz-box-flex: 1;
57
- -ms-flex: 1;
58
- flex: 1; }
59
- .premium-bullet-list-content .premium-bullet-list-icon-text p {
60
- font-size: 18px;
61
- background-color: #eee;
62
- padding: 1px 5px;
63
- -webkit-border-radius: 2px;
64
- border-radius: 2px; }
65
- .premium-bullet-list-content .premium-bullet-list-text span,
66
- .premium-bullet-list-content .premium-bullet-list-icon-text p,
67
- .premium-bullet-list-content .premium-bullet-list-wrapper img,
68
- .premium-bullet-list-content .premium-bullet-list-wrapper svg,
69
- .premium-bullet-list-content .premium-bullet-list-wrapper i {
70
- -webkit-transition: all 0.3s ease-in-out;
71
- transition: all 0.3s ease-in-out; }
72
- .premium-bullet-list-content .premium-bullet-list-wrapper {
73
- position: relative;
74
- line-height: 0; }
75
- .premium-bullet-list-content .premium-bullet-list-wrapper img,
76
- .premium-bullet-list-content .premium-bullet-list-wrapper svg {
77
- width: 30px !important;
78
- height: 30px !important;
79
- position: relative;
80
- z-index: 500; }
81
- .premium-bullet-list-content .premium-bullet-list-wrapper i,
82
- .premium-bullet-list-content .premium-bullet-list-wrapper .premium-bullet-list-icon-text {
83
- position: relative;
84
- z-index: 500; }
85
- .premium-bullet-list-content .premium-bullet-list-wrapper i {
86
- width: 1.25em; }
87
- .premium-bullet-list-content .premium-bullet-list-link {
88
- position: absolute;
89
- top: 0;
90
- left: 0;
91
- width: 100%;
92
- height: 100%;
93
- z-index: 1000; }
94
-
95
- .premium-bullet-list-content:not(:last-of-type) .premium-bullet-list-connector {
96
- width: 100%;
97
- height: 100%;
98
- position: absolute;
99
- top: 0.5em;
100
- z-index: 100;
101
- -js-display: flex;
102
- display: -webkit-box;
103
- display: -webkit-flex;
104
- display: -moz-box;
105
- display: -ms-flexbox;
106
- display: flex;
107
- -webkit-box-pack: center;
108
- -webkit-justify-content: center;
109
- -moz-box-pack: center;
110
- -ms-flex-pack: center;
111
- justify-content: center; }
112
- .premium-bullet-list-content:not(:last-of-type) .premium-bullet-list-connector .premium-icon-connector-content:after {
113
- content: "";
114
- border-right-width: 1px;
115
- border-right-style: solid;
116
- border-color: #333333;
117
- display: block;
118
- height: 100%; }
119
-
120
- li.premium-bullet-list-content.premium-bullet-list-content-inline {
121
- -webkit-align-self: center;
122
- -ms-flex-item-align: center;
123
- align-self: center;
124
- z-index: 2; }
125
-
126
- li.premium-bullet-list-content.premium-bullet-list-content-inline:not(:first-child) {
127
- margin: 0 3px; }
128
-
129
- li.premium-bullet-list-content.premium-bullet-list-content-inline:first-child {
130
- margin: 0 3px 0 0; }
131
-
132
- .premium-bullet-list-divider:not(:last-child) {
133
- width: 100%;
134
- -webkit-box-flex: 0;
135
- -webkit-flex: 0 0 100%;
136
- -moz-box-flex: 0;
137
- -ms-flex: 0 0 100%;
138
- flex: 0 0 100%;
139
- overflow: hidden; }
140
-
141
- .premium-bullet-list-divider:not(:last-child):after {
142
- content: "";
143
- display: block;
144
- border-top-style: solid;
145
- border-top-width: 1px; }
146
-
147
- .premium-bullet-list-divider-inline:not(:last-child) {
148
- float: right;
149
- display: inline-block;
150
- position: relative;
151
- height: 100%;
152
- overflow: hidden;
153
- -webkit-align-self: center;
154
- -ms-flex-item-align: center;
155
- align-self: center;
156
- margin: 0 3px; }
157
-
158
- .premium-bullet-list-divider-inline:not(:last-child):after {
159
- content: "";
160
- display: block;
161
- border-left-width: 1px;
162
- height: 33px;
163
- border-left-style: solid; }
164
-
165
- .premium-bullet-list-icon-text {
166
- line-height: 1.5; }
167
-
168
- .premium-bullet-list-icon-text p,
169
- ul.premium-bullet-list-box,
170
- li.premium-bullet-list-content {
171
- margin: 0; }
172
-
173
- .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-wrapper i,
174
- .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-text span,
175
- .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-icon-text p {
176
- color: transparent !important;
177
- text-shadow: 0 0 3px #aaa; }
178
-
179
- .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-icon-connector-content,
180
- .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-wrapper .premium-lottie-animation svg,
181
- .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-wrapper img,
182
- .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-badge {
183
- -webkit-filter: blur(3px);
184
- filter: blur(3px); }
185
-
186
- .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-wrapper i,
187
- .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-text span,
188
- .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-icon-text p {
189
- color: #aaa !important;
190
- text-shadow: 0 0px 0 transparent; }
191
-
192
- .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-icon-connector-content,
193
- .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-wrapper .premium-lottie-animation svg,
194
- .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-wrapper img,
195
- .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-badge {
196
- -webkit-filter: none;
197
- filter: none; }
198
-
199
- .premium-bullet-list-content .premium-bullet-list-badge {
200
- font-size: 11px;
201
- top: auto;
202
- min-width: -webkit-max-content;
203
- min-width: -moz-max-content;
204
- min-width: max-content;
205
- height: -webkit-fit-content;
206
- height: -moz-fit-content;
207
- height: fit-content; }
208
-
209
- .premium-bullet-list-content .premium-bullet-list-icon-text p {
210
- font-size: 13px; }
211
-
212
- .premium-bullet-list-gradient-effect[data-text] {
213
- display: inline-block;
214
- position: relative;
215
- text-decoration: none; }
216
-
217
- .premium-bullet-list-gradient-effect[data-text]::before {
218
- content: attr(data-text);
219
- position: absolute;
220
- z-index: 1;
221
- overflow: hidden;
222
- -webkit-clip-path: polygon(0 0, 1px 0, 1px 100%, 0 100%);
223
- clip-path: polygon(0 0, 1px 0, 1px 100%, 0 100%);
224
- -webkit-background-clip: text;
225
- background-clip: text;
226
- -webkit-text-fill-color: transparent;
227
- -webkit-transition: all 0.4s ease;
228
- transition: all 0.4s ease; }
229
-
230
- .premium-bullet-list-content:hover .premium-bullet-list-gradient-effect[data-text]::before,
231
- .premium-bullet-list-content:focus .premium-bullet-list-gradient-effect[data-text]::before {
232
- -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
233
- clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); }
234
-
235
- ul[data-list-animation*="animated-"] .premium-bullet-list-divider,
236
- ul[data-list-animation*="animated-"] .premium-bullet-list-content,
237
- ul[data-list-animation*="animated-"] .premium-bullet-list-divider-inline {
238
- opacity: 0; }
239
-
240
- .premium-bullet-list-content-grow-effect:hover {
241
- -webkit-transform: scale(1.07);
242
- -ms-transform: scale(1.07);
243
- transform: scale(1.07); }
244
-
245
- @-webkit-keyframes spin {
246
- 100% {
247
- -webkit-transform: rotate(360deg);
248
- transform: rotate(360deg); } }
249
-
250
- @keyframes spin {
251
- 100% {
252
- -webkit-transform: rotate(360deg);
253
- transform: rotate(360deg); } }
1
+ /**************** Premium Bullet List ****************/
2
+ /*****************************************************/
3
+ .premium-bullet-list-box {
4
+ -js-display: flex;
5
+ display: -webkit-box;
6
+ display: -webkit-flex;
7
+ display: -moz-box;
8
+ display: -ms-flexbox;
9
+ display: flex;
10
+ -webkit-flex-wrap: wrap;
11
+ -ms-flex-wrap: wrap;
12
+ flex-wrap: wrap;
13
+ -webkit-box-orient: vertical;
14
+ -webkit-box-direction: normal;
15
+ -webkit-flex-direction: column;
16
+ -moz-box-orient: vertical;
17
+ -moz-box-direction: normal;
18
+ -ms-flex-direction: column;
19
+ flex-direction: column; }
20
+ .premium-bullet-list-box .premium-bullet-list-content-grow-lc {
21
+ -webkit-transform-origin: left center;
22
+ -ms-transform-origin: left center;
23
+ transform-origin: left center; }
24
+ .premium-bullet-list-box .premium-bullet-list-content-grow-rc {
25
+ -webkit-transform-origin: right center;
26
+ -ms-transform-origin: right center;
27
+ transform-origin: right center; }
28
+ .premium-bullet-list-box .premium-bullet-list-content-grow-cc {
29
+ -webkit-transform-origin: center center;
30
+ -ms-transform-origin: center center;
31
+ transform-origin: center center; }
32
+
33
+ .premium-bullet-list-content {
34
+ -js-display: flex;
35
+ display: -webkit-box;
36
+ display: -webkit-flex;
37
+ display: -moz-box;
38
+ display: -ms-flexbox;
39
+ display: flex;
40
+ -webkit-transition: all 0.3s ease-in-out;
41
+ transition: all 0.3s ease-in-out;
42
+ width: auto;
43
+ position: relative; }
44
+ .premium-bullet-list-content .premium-bullet-list-text span,
45
+ .premium-bullet-list-content .premium-bullet-list-wrapper {
46
+ display: inline-block;
47
+ -webkit-align-self: center;
48
+ -ms-flex-item-align: center;
49
+ align-self: center;
50
+ -webkit-transition: all 0.3s ease-in-out;
51
+ transition: all 0.3s ease-in-out; }
52
+ .premium-bullet-list-content .premium-bullet-list-text span {
53
+ margin: 0 5px;
54
+ -webkit-box-flex: 1;
55
+ -webkit-flex: 1;
56
+ -moz-box-flex: 1;
57
+ -ms-flex: 1;
58
+ flex: 1; }
59
+ .premium-bullet-list-content .premium-bullet-list-icon-text p {
60
+ font-size: 18px;
61
+ background-color: #eee;
62
+ padding: 1px 5px;
63
+ -webkit-border-radius: 2px;
64
+ border-radius: 2px; }
65
+ .premium-bullet-list-content .premium-bullet-list-text span,
66
+ .premium-bullet-list-content .premium-bullet-list-icon-text p,
67
+ .premium-bullet-list-content .premium-bullet-list-wrapper img,
68
+ .premium-bullet-list-content .premium-bullet-list-wrapper svg,
69
+ .premium-bullet-list-content .premium-bullet-list-wrapper i {
70
+ -webkit-transition: all 0.3s ease-in-out;
71
+ transition: all 0.3s ease-in-out; }
72
+ .premium-bullet-list-content .premium-bullet-list-wrapper {
73
+ position: relative;
74
+ line-height: 0; }
75
+ .premium-bullet-list-content .premium-bullet-list-wrapper img,
76
+ .premium-bullet-list-content .premium-bullet-list-wrapper svg {
77
+ width: 30px !important;
78
+ height: 30px !important;
79
+ position: relative;
80
+ z-index: 500; }
81
+ .premium-bullet-list-content .premium-bullet-list-wrapper i,
82
+ .premium-bullet-list-content .premium-bullet-list-wrapper .premium-bullet-list-icon-text {
83
+ position: relative;
84
+ z-index: 500; }
85
+ .premium-bullet-list-content .premium-bullet-list-wrapper i {
86
+ width: 1.25em; }
87
+ .premium-bullet-list-content .premium-bullet-list-link {
88
+ position: absolute;
89
+ top: 0;
90
+ left: 0;
91
+ width: 100%;
92
+ height: 100%;
93
+ z-index: 1000; }
94
+
95
+ .premium-bullet-list-content:not(:last-of-type) .premium-bullet-list-connector {
96
+ width: 100%;
97
+ height: 100%;
98
+ position: absolute;
99
+ top: 0.5em;
100
+ z-index: 100;
101
+ -js-display: flex;
102
+ display: -webkit-box;
103
+ display: -webkit-flex;
104
+ display: -moz-box;
105
+ display: -ms-flexbox;
106
+ display: flex;
107
+ -webkit-box-pack: center;
108
+ -webkit-justify-content: center;
109
+ -moz-box-pack: center;
110
+ -ms-flex-pack: center;
111
+ justify-content: center; }
112
+ .premium-bullet-list-content:not(:last-of-type) .premium-bullet-list-connector .premium-icon-connector-content:after {
113
+ content: "";
114
+ border-right-width: 1px;
115
+ border-right-style: solid;
116
+ border-color: #333333;
117
+ display: block;
118
+ height: 100%; }
119
+
120
+ li.premium-bullet-list-content.premium-bullet-list-content-inline {
121
+ -webkit-align-self: center;
122
+ -ms-flex-item-align: center;
123
+ align-self: center;
124
+ z-index: 2; }
125
+
126
+ li.premium-bullet-list-content.premium-bullet-list-content-inline:not(:first-child) {
127
+ margin: 0 3px; }
128
+
129
+ li.premium-bullet-list-content.premium-bullet-list-content-inline:first-child {
130
+ margin: 0 3px 0 0; }
131
+
132
+ .premium-bullet-list-divider:not(:last-child) {
133
+ width: 100%;
134
+ -webkit-box-flex: 0;
135
+ -webkit-flex: 0 0 100%;
136
+ -moz-box-flex: 0;
137
+ -ms-flex: 0 0 100%;
138
+ flex: 0 0 100%;
139
+ overflow: hidden; }
140
+
141
+ .premium-bullet-list-divider:not(:last-child):after {
142
+ content: "";
143
+ display: block;
144
+ border-top-style: solid;
145
+ border-top-width: 1px; }
146
+
147
+ .premium-bullet-list-divider-inline:not(:last-child) {
148
+ float: right;
149
+ display: inline-block;
150
+ position: relative;
151
+ height: 100%;
152
+ overflow: hidden;
153
+ -webkit-align-self: center;
154
+ -ms-flex-item-align: center;
155
+ align-self: center;
156
+ margin: 0 3px; }
157
+
158
+ .premium-bullet-list-divider-inline:not(:last-child):after {
159
+ content: "";
160
+ display: block;
161
+ border-left-width: 1px;
162
+ height: 33px;
163
+ border-left-style: solid; }
164
+
165
+ .premium-bullet-list-icon-text {
166
+ line-height: 1.5; }
167
+
168
+ .premium-bullet-list-icon-text p,
169
+ ul.premium-bullet-list-box,
170
+ li.premium-bullet-list-content {
171
+ margin: 0; }
172
+
173
+ .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-wrapper i,
174
+ .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-text span,
175
+ .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-icon-text p {
176
+ color: transparent !important;
177
+ text-shadow: 0 0 3px #aaa; }
178
+
179
+ .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-icon-connector-content,
180
+ .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-wrapper .premium-lottie-animation svg,
181
+ .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-wrapper img,
182
+ .premium-bullet-list-blur:hover .premium-bullet-list-content .premium-bullet-list-badge {
183
+ -webkit-filter: blur(3px);
184
+ filter: blur(3px); }
185
+
186
+ .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-wrapper i,
187
+ .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-text span,
188
+ .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-icon-text p {
189
+ color: #aaa !important;
190
+ text-shadow: 0 0px 0 transparent; }
191
+
192
+ .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-icon-connector-content,
193
+ .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-wrapper .premium-lottie-animation svg,
194
+ .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-wrapper img,
195
+ .premium-bullet-list-blur:hover .premium-bullet-list-content:hover .premium-bullet-list-badge {
196
+ -webkit-filter: none;
197
+ filter: none; }
198
+
199
+ .premium-bullet-list-content .premium-bullet-list-badge {
200
+ font-size: 11px;
201
+ top: auto;
202
+ min-width: -webkit-max-content;
203
+ min-width: -moz-max-content;
204
+ min-width: max-content;
205
+ height: -webkit-fit-content;
206
+ height: -moz-fit-content;
207
+ height: fit-content; }
208
+
209
+ .premium-bullet-list-content .premium-bullet-list-icon-text p {
210
+ font-size: 13px; }
211
+
212
+ .premium-bullet-list-gradient-effect[data-text] {
213
+ display: inline-block;
214
+ position: relative;
215
+ text-decoration: none; }
216
+
217
+ .premium-bullet-list-gradient-effect[data-text]::before {
218
+ content: attr(data-text);
219
+ position: absolute;
220
+ z-index: 1;
221
+ overflow: hidden;
222
+ -webkit-clip-path: polygon(0 0, 1px 0, 1px 100%, 0 100%);
223
+ clip-path: polygon(0 0, 1px 0, 1px 100%, 0 100%);
224
+ -webkit-background-clip: text;
225
+ background-clip: text;
226
+ -webkit-text-fill-color: transparent;
227
+ -webkit-transition: all 0.4s ease;
228
+ transition: all 0.4s ease; }
229
+
230
+ .premium-bullet-list-content:hover .premium-bullet-list-gradient-effect[data-text]::before,
231
+ .premium-bullet-list-content:focus .premium-bullet-list-gradient-effect[data-text]::before {
232
+ -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
233
+ clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); }
234
+
235
+ ul[data-list-animation*="animated-"] .premium-bullet-list-divider,
236
+ ul[data-list-animation*="animated-"] .premium-bullet-list-content,
237
+ ul[data-list-animation*="animated-"] .premium-bullet-list-divider-inline {
238
+ opacity: 0; }
239
+
240
+ .premium-bullet-list-content-grow-effect:hover {
241
+ -webkit-transform: scale(1.07);
242
+ -ms-transform: scale(1.07);
243
+ transform: scale(1.07); }
244
+
245
+ @-webkit-keyframes spin {
246
+ 100% {
247
+ -webkit-transform: rotate(360deg);
248
+ transform: rotate(360deg); } }
249
+
250
+ @keyframes spin {
251
+ 100% {
252
+ -webkit-transform: rotate(360deg);
253
+ transform: rotate(360deg); } }
assets/frontend/css/premium-img-gallery.css CHANGED
@@ -1,392 +1,392 @@
1
- /******** Premium Media Grid ********/
2
- /************************************/
3
- .premium-img-gallery-filter,
4
- .premium-blog-filter {
5
- -js-display: flex;
6
- display: -webkit-box;
7
- display: -webkit-flex;
8
- display: -moz-box;
9
- display: -ms-flexbox;
10
- display: flex;
11
- -webkit-box-align: center;
12
- -webkit-align-items: center;
13
- -moz-box-align: center;
14
- -ms-flex-align: center;
15
- align-items: center;
16
- -webkit-box-pack: center;
17
- -webkit-justify-content: center;
18
- -moz-box-pack: center;
19
- -ms-flex-pack: center;
20
- justify-content: center; }
21
-
22
- .premium-img-gallery {
23
- clear: both;
24
- overflow: hidden; }
25
-
26
- .premium-gallery-container .premium-gallery-item {
27
- padding: 10px;
28
- float: left; }
29
-
30
- .premium-gallery-container .grid-sizer {
31
- width: 33.33%; }
32
-
33
- .premium-gallery-container .pa-gallery-item {
34
- padding: 10px; }
35
-
36
- .premium-img-gallery-filter .premium-gallery-cats-container li a.category,
37
- .premium-blog-filter .premium-blog-filters-container li a.category {
38
- outline: none;
39
- text-decoration: none;
40
- -webkit-border-radius: 75px;
41
- border-radius: 75px;
42
- margin: 15px 5px 20px;
43
- padding: 7px 20px;
44
- -webkit-transition: all 0.3s ease-in-out;
45
- transition: all 0.3s ease-in-out; }
46
-
47
- .pa-gallery-img {
48
- position: relative; }
49
- .pa-gallery-img .pa-gallery-whole-link {
50
- position: absolute;
51
- top: 0;
52
- left: 0;
53
- width: 100%;
54
- height: 100%;
55
- z-index: 2; }
56
- .pa-gallery-img .pa-gallery-whole-link span {
57
- display: none; }
58
- .pa-gallery-img.style2 .pa-gallery-whole-link, .pa-gallery-img.style3 .pa-gallery-whole-link {
59
- z-index: 99; }
60
-
61
- .pa-gallery-img-container {
62
- overflow: hidden;
63
- -webkit-backface-visibility: hidden;
64
- backface-visibility: hidden;
65
- -webkit-transform: translate3d(0, 0, 0);
66
- transform: translate3d(0, 0, 0); }
67
- .pa-gallery-img-container img {
68
- display: block;
69
- width: 100%;
70
- -webkit-transition: all 0.3s ease-in-out;
71
- transition: all 0.3s ease-in-out; }
72
-
73
- .premium-img-gallery.gray img {
74
- -webkit-filter: grayscale(100%);
75
- filter: grayscale(100%); }
76
-
77
- .premium-img-gallery.zoomout img,
78
- .premium-img-gallery.scale img {
79
- -webkit-transform: scale(1.2);
80
- -ms-transform: scale(1.2);
81
- transform: scale(1.2); }
82
-
83
- .premium-img-gallery.sepia img {
84
- -webkit-filter: sepia(30%);
85
- filter: sepia(30%); }
86
-
87
- .premium-img-gallery.bright img {
88
- -webkit-filter: brightness(1);
89
- filter: brightness(1); }
90
-
91
- .premium-img-gallery.trans img {
92
- -webkit-transform: translateX(-15px) scale(1.1);
93
- -ms-transform: translateX(-15px) scale(1.1);
94
- transform: translateX(-15px) scale(1.1); }
95
-
96
- .pa-gallery-img .pa-gallery-magnific-image,
97
- .pa-gallery-img .pa-gallery-img-link {
98
- outline: none; }
99
- .pa-gallery-img .pa-gallery-magnific-image i,
100
- .pa-gallery-img .pa-gallery-magnific-image svg,
101
- .pa-gallery-img .pa-gallery-img-link i,
102
- .pa-gallery-img .pa-gallery-img-link svg {
103
- -webkit-transition: all 0.3s ease-in-out;
104
- transition: all 0.3s ease-in-out; }
105
-
106
- .pa-gallery-img .pa-gallery-magnific-image span,
107
- .pa-gallery-img .pa-gallery-img-link span {
108
- line-height: 1;
109
- display: inline-block;
110
- opacity: 0;
111
- margin: 0 5px;
112
- padding: 15px;
113
- -webkit-border-radius: 50%;
114
- border-radius: 50%; }
115
-
116
- .pa-gallery-img.style2 .pa-gallery-magnific-image span,
117
- .pa-gallery-img.style2 .pa-gallery-img-link span {
118
- margin: 0 5px 20px; }
119
-
120
- .pa-gallery-img:hover .pa-gallery-magnific-image span {
121
- -webkit-transition: all 0.3s ease-in-out, opacity 0.5s ease-in-out 0.3s;
122
- transition: all 0.3s ease-in-out, opacity 0.5s ease-in-out 0.3s; }
123
-
124
- .pa-gallery-img:hover .pa-gallery-img-link span {
125
- -webkit-transition: all 0.3s ease-in-out, opacity 0.5s ease-in-out 0.6s;
126
- transition: all 0.3s ease-in-out, opacity 0.5s ease-in-out 0.6s; }
127
-
128
- .pa-gallery-img:hover .pa-gallery-magnific-image span,
129
- .pa-gallery-img:hover .pa-gallery-img-link span {
130
- opacity: 1; }
131
-
132
- .premium-gallery-icon-show a.pa-gallery-video-icon span {
133
- opacity: 1; }
134
-
135
- .premium-img-gallery-filter ul.premium-gallery-cats-container,
136
- .premium-blog-filter ul.premium-blog-filters-container {
137
- text-align: center;
138
- margin: 0;
139
- padding: 0; }
140
-
141
- .premium-img-gallery-filter .premium-gallery-cats-container li,
142
- .premium-blog-filter .premium-blog-filters-container li {
143
- list-style: none;
144
- -js-display: inline-flex;
145
- display: -webkit-inline-box;
146
- display: -webkit-inline-flex;
147
- display: -moz-inline-box;
148
- display: -ms-inline-flexbox;
149
- display: inline-flex; }
150
-
151
- .premium-img-gallery.zoomin .pa-gallery-img:hover img {
152
- -webkit-transform: scale(1.1);
153
- -ms-transform: scale(1.1);
154
- transform: scale(1.1); }
155
-
156
- .premium-img-gallery.zoomout .pa-gallery-img:hover img {
157
- -webkit-transform: scale(1);
158
- -ms-transform: scale(1);
159
- transform: scale(1); }
160
-
161
- .premium-img-gallery.scale .pa-gallery-img:hover img {
162
- -webkit-transform: scale(1.3) rotate(5deg);
163
- -ms-transform: scale(1.3) rotate(5deg);
164
- transform: scale(1.3) rotate(5deg); }
165
-
166
- .premium-img-gallery.gray .pa-gallery-img:hover img {
167
- -webkit-filter: grayscale(0%);
168
- filter: grayscale(0%); }
169
-
170
- .premium-img-gallery.blur .pa-gallery-img:hover img {
171
- -webkit-filter: blur(3px);
172
- filter: blur(3px); }
173
-
174
- .premium-img-gallery.sepia .pa-gallery-img:hover img {
175
- -webkit-filter: sepia(0%);
176
- filter: sepia(0%); }
177
-
178
- .premium-img-gallery.trans .pa-gallery-img:hover img {
179
- -webkit-transform: translateX(0px) scale(1.1);
180
- -ms-transform: translateX(0px) scale(1.1);
181
- transform: translateX(0px) scale(1.1); }
182
-
183
- .premium-img-gallery.bright .pa-gallery-img:hover img {
184
- -webkit-filter: brightness(1.2);
185
- filter: brightness(1.2); }
186
-
187
- .pa-gallery-img .premium-gallery-caption {
188
- padding: 10px; }
189
- .pa-gallery-img .premium-gallery-caption .premium-gallery-img-name {
190
- margin-bottom: 0; }
191
-
192
- .pa-gallery-img.style1 {
193
- overflow: hidden; }
194
-
195
- .pa-gallery-img:not(.style2) .pa-gallery-icons-wrapper {
196
- position: absolute;
197
- top: 0;
198
- left: 0;
199
- width: 100%;
200
- height: 100%;
201
- -webkit-transition: all 0.3s ease-in-out;
202
- transition: all 0.3s ease-in-out; }
203
-
204
- .pa-gallery-img:not(.style2) .pa-gallery-icons-inner-container {
205
- position: absolute;
206
- top: 33.33%;
207
- width: 100%;
208
- text-align: center;
209
- -webkit-transform: translateY(-50%);
210
- -ms-transform: translateY(-50%);
211
- transform: translateY(-50%);
212
- z-index: 3; }
213
-
214
- .pa-gallery-img.style1 .premium-gallery-caption {
215
- position: absolute;
216
- top: auto;
217
- right: 0;
218
- bottom: -1px;
219
- left: 0;
220
- width: 100%;
221
- -webkit-transition: all 500ms ease 0s;
222
- transition: all 500ms ease 0s;
223
- -webkit-transform: translate3d(0, 100%, 0);
224
- transform: translate3d(0, 100%, 0); }
225
-
226
- .pa-gallery-img.style1:hover .premium-gallery-caption {
227
- -webkit-transform: translate3d(0, 0, 0);
228
- transform: translate3d(0, 0, 0);
229
- bottom: -1px !important; }
230
-
231
- .pa-gallery-img.default .premium-gallery-caption {
232
- position: absolute;
233
- top: auto;
234
- right: 0;
235
- left: 0;
236
- width: 100%;
237
- bottom: 0; }
238
-
239
- .pa-gallery-img.style2 .pa-gallery-icons-caption-container {
240
- position: absolute;
241
- top: 0;
242
- left: 0;
243
- width: 100%;
244
- height: 100%;
245
- opacity: 0;
246
- -webkit-backface-visibility: hidden;
247
- backface-visibility: hidden;
248
- -webkit-transition: opacity 0.3s, -webkit-transform 0.3s;
249
- transition: opacity 0.3s, -webkit-transform 0.3s;
250
- transition: transform 0.3s, opacity 0.3s;
251
- transition: transform 0.3s, opacity 0.3s, -webkit-transform 0.3s;
252
- z-index: 1;
253
- background-color: rgba(108, 191, 226, 0.68);
254
- -js-display: flex;
255
- display: -webkit-box;
256
- display: -webkit-flex;
257
- display: -moz-box;
258
- display: -ms-flexbox;
259
- display: flex;
260
- text-align: center;
261
- -webkit-box-align: center;
262
- -webkit-align-items: center;
263
- -moz-box-align: center;
264
- -ms-flex-align: center;
265
- align-items: center; }
266
-
267
- .pa-gallery-img.style2 .pa-gallery-icons-caption-cell {
268
- width: 100%; }
269
-
270
- .pa-gallery-img.style2:hover .pa-gallery-icons-caption-container {
271
- opacity: 1;
272
- -webkit-transform: translate(15px, 15px);
273
- -ms-transform: translate(15px, 15px);
274
- transform: translate(15px, 15px); }
275
-
276
- .premium-clearfix {
277
- clear: both; }
278
-
279
  /**
280
  * Metro Layout
281
- */
282
- .premium-img-gallery-metro .premium-gallery-item {
283
- overflow: hidden; }
284
-
285
- .premium-img-gallery-metro .pa-gallery-img {
286
- height: 100%; }
287
-
288
- .premium-img-gallery-metro .pa-gallery-img-container {
289
- height: 100%; }
290
- .premium-img-gallery-metro .pa-gallery-img-container img {
291
- min-height: 100%;
292
- width: 100%;
293
- -o-object-fit: fill;
294
- object-fit: fill; }
295
-
296
- .premium-img-gallery .premium-gallery-item-hidden {
297
- visibility: hidden;
298
- width: 0 !important;
299
- height: 0 !important;
300
- margin: 0 !important;
301
- padding: 0 !important; }
302
-
303
- .premium-gallery-load-more {
304
- position: relative; }
305
- .premium-gallery-load-more .premium-gallery-load-more-btn {
306
- -webkit-box-shadow: none;
307
- box-shadow: none;
308
- text-shadow: none;
309
- border: none;
310
- outline: none;
311
- -webkit-box-align: center;
312
- -webkit-align-items: center;
313
- -moz-box-align: center;
314
- -ms-flex-align: center;
315
- align-items: center;
316
- vertical-align: bottom;
317
- cursor: pointer;
318
- line-height: 1;
319
- font-style: normal;
320
- font-weight: normal;
321
- background-image: none;
322
- color: #fff;
323
- -webkit-transition: all 0.3s ease-in-out;
324
- transition: all 0.3s ease-in-out; }
325
-
326
- .premium-gallery-load-more-btn {
327
- -js-display: inline-flex;
328
- display: -webkit-inline-box;
329
- display: -webkit-inline-flex;
330
- display: -moz-inline-box;
331
- display: -ms-inline-flexbox;
332
- display: inline-flex;
333
- -webkit-box-align: center;
334
- -webkit-align-items: center;
335
- -moz-box-align: center;
336
- -ms-flex-align: center;
337
- align-items: center; }
338
-
339
- .premium-gallery-load-more-btn div {
340
- margin-left: 3px; }
341
-
342
- .premium-gallery-load-more-btn .premium-loader {
343
- display: inline-block;
344
- width: 20px;
345
- height: 20px; }
346
-
347
- .pa-gallery-img .pa-gallery-lightbox-wrap {
348
- display: inline-block; }
349
-
350
- .premium-img-gallery-no-lightbox .premium-gallery-video-item .pa-gallery-img,
351
- .pa-gallery-img .pa-gallery-video-icon {
352
- cursor: pointer; }
353
-
354
- .pa-gallery-img-container iframe {
355
- position: absolute;
356
- visibility: hidden;
357
- top: 0;
358
- left: 0;
359
- max-width: 100%;
360
- width: 100%;
361
- height: 100%;
362
- margin: 0;
363
- line-height: 1;
364
- border: none; }
365
-
366
- .pa-gallery-img-container video {
367
- position: absolute;
368
- visibility: hidden;
369
- top: 0;
370
- left: 0;
371
- max-width: 100%;
372
- width: 100%;
373
- height: 100%;
374
- margin: 0;
375
- line-height: 1;
376
- border: none;
377
- -o-object-fit: contain;
378
- object-fit: contain; }
379
-
380
- .pa-gallery-icons-inner-container svg,
381
- .pa-gallery-icons-caption-cell svg {
382
- width: 14px;
383
- height: 14px; }
384
-
385
- .premium-gallery-gradient-layer {
386
- position: absolute;
387
- bottom: 40px;
388
- width: 100%;
389
- height: 20px;
390
- background: -webkit-gradient(linear, left bottom, left top, from(#17181f), to(rgba(255, 255, 255, 0)));
391
- background: -webkit-linear-gradient(bottom, #17181f 0%, rgba(255, 255, 255, 0) 100%);
392
- background: linear-gradient(to top, #17181f 0%, rgba(255, 255, 255, 0) 100%); }
1
+ /******** Premium Media Grid ********/
2
+ /************************************/
3
+ .premium-img-gallery-filter,
4
+ .premium-blog-filter {
5
+ -js-display: flex;
6
+ display: -webkit-box;
7
+ display: -webkit-flex;
8
+ display: -moz-box;
9
+ display: -ms-flexbox;
10
+ display: flex;
11
+ -webkit-box-align: center;
12
+ -webkit-align-items: center;
13
+ -moz-box-align: center;
14
+ -ms-flex-align: center;
15
+ align-items: center;
16
+ -webkit-box-pack: center;
17
+ -webkit-justify-content: center;
18
+ -moz-box-pack: center;
19
+ -ms-flex-pack: center;
20
+ justify-content: center; }
21
+
22
+ .premium-img-gallery {
23
+ clear: both;
24
+ overflow: hidden; }
25
+
26
+ .premium-gallery-container .premium-gallery-item {
27
+ padding: 10px;
28
+ float: left; }
29
+
30
+ .premium-gallery-container .grid-sizer {
31
+ width: 33.33%; }
32
+
33
+ .premium-gallery-container .pa-gallery-item {
34
+ padding: 10px; }
35
+
36
+ .premium-img-gallery-filter .premium-gallery-cats-container li a.category,
37
+ .premium-blog-filter .premium-blog-filters-container li a.category {
38
+ outline: none;
39
+ text-decoration: none;
40
+ -webkit-border-radius: 75px;
41
+ border-radius: 75px;
42
+ margin: 15px 5px 20px;
43
+ padding: 7px 20px;
44
+ -webkit-transition: all 0.3s ease-in-out;
45
+ transition: all 0.3s ease-in-out; }
46
+
47
+ .pa-gallery-img {
48
+ position: relative; }
49
+ .pa-gallery-img .pa-gallery-whole-link {
50
+ position: absolute;
51
+ top: 0;
52
+ left: 0;
53
+ width: 100%;
54
+ height: 100%;
55
+ z-index: 2; }
56
+ .pa-gallery-img .pa-gallery-whole-link span {
57
+ display: none; }
58
+ .pa-gallery-img.style2 .pa-gallery-whole-link, .pa-gallery-img.style3 .pa-gallery-whole-link {
59
+ z-index: 99; }
60
+
61
+ .pa-gallery-img-container {
62
+ overflow: hidden;
63
+ -webkit-backface-visibility: hidden;
64
+ backface-visibility: hidden;
65
+ -webkit-transform: translate3d(0, 0, 0);
66
+ transform: translate3d(0, 0, 0); }
67
+ .pa-gallery-img-container img {
68
+ display: block;
69
+ width: 100%;
70
+ -webkit-transition: all 0.3s ease-in-out;
71
+ transition: all 0.3s ease-in-out; }
72
+
73
+ .premium-img-gallery.gray img {
74
+ -webkit-filter: grayscale(100%);
75
+ filter: grayscale(100%); }
76
+
77
+ .premium-img-gallery.zoomout img,
78
+ .premium-img-gallery.scale img {
79
+ -webkit-transform: scale(1.2);
80
+ -ms-transform: scale(1.2);
81
+ transform: scale(1.2); }
82
+
83
+ .premium-img-gallery.sepia img {
84
+ -webkit-filter: sepia(30%);
85
+ filter: sepia(30%); }
86
+
87
+ .premium-img-gallery.bright img {
88
+ -webkit-filter: brightness(1);
89
+ filter: brightness(1); }
90
+
91
+ .premium-img-gallery.trans img {
92
+ -webkit-transform: translateX(-15px) scale(1.1);
93
+ -ms-transform: translateX(-15px) scale(1.1);
94
+ transform: translateX(-15px) scale(1.1); }
95
+
96
+ .pa-gallery-img .pa-gallery-magnific-image,
97
+ .pa-gallery-img .pa-gallery-img-link {
98
+ outline: none; }
99
+ .pa-gallery-img .pa-gallery-magnific-image i,
100
+ .pa-gallery-img .pa-gallery-magnific-image svg,
101
+ .pa-gallery-img .pa-gallery-img-link i,
102
+ .pa-gallery-img .pa-gallery-img-link svg {
103
+ -webkit-transition: all 0.3s ease-in-out;
104
+ transition: all 0.3s ease-in-out; }
105
+
106
+ .pa-gallery-img .pa-gallery-magnific-image span,
107
+ .pa-gallery-img .pa-gallery-img-link span {
108
+ line-height: 1;
109
+ display: inline-block;
110
+ opacity: 0;
111
+ margin: 0 5px;
112
+ padding: 15px;
113
+ -webkit-border-radius: 50%;
114
+ border-radius: 50%; }
115
+
116
+ .pa-gallery-img.style2 .pa-gallery-magnific-image span,
117
+ .pa-gallery-img.style2 .pa-gallery-img-link span {
118
+ margin: 0 5px 20px; }
119
+
120
+ .pa-gallery-img:hover .pa-gallery-magnific-image span {
121
+ -webkit-transition: all 0.3s ease-in-out, opacity 0.5s ease-in-out 0.3s;
122
+ transition: all 0.3s ease-in-out, opacity 0.5s ease-in-out 0.3s; }
123
+
124
+ .pa-gallery-img:hover .pa-gallery-img-link span {
125
+ -webkit-transition: all 0.3s ease-in-out, opacity 0.5s ease-in-out 0.6s;
126
+ transition: all 0.3s ease-in-out, opacity 0.5s ease-in-out 0.6s; }
127
+
128
+ .pa-gallery-img:hover .pa-gallery-magnific-image span,
129
+ .pa-gallery-img:hover .pa-gallery-img-link span {
130
+ opacity: 1; }
131
+
132
+ .premium-gallery-icon-show a.pa-gallery-video-icon span {
133
+ opacity: 1; }
134
+
135
+ .premium-img-gallery-filter ul.premium-gallery-cats-container,
136
+ .premium-blog-filter ul.premium-blog-filters-container {
137
+ text-align: center;
138
+ margin: 0;
139
+ padding: 0; }
140
+
141
+ .premium-img-gallery-filter .premium-gallery-cats-container li,
142
+ .premium-blog-filter .premium-blog-filters-container li {
143
+ list-style: none;
144
+ -js-display: inline-flex;
145
+ display: -webkit-inline-box;
146
+ display: -webkit-inline-flex;
147
+ display: -moz-inline-box;
148
+ display: -ms-inline-flexbox;
149
+ display: inline-flex; }
150
+
151
+ .premium-img-gallery.zoomin .pa-gallery-img:hover img {
152
+ -webkit-transform: scale(1.1);
153
+ -ms-transform: scale(1.1);
154
+ transform: scale(1.1); }
155
+
156
+ .premium-img-gallery.zoomout .pa-gallery-img:hover img {
157
+ -webkit-transform: scale(1);
158
+ -ms-transform: scale(1);
159
+ transform: scale(1); }
160
+
161
+ .premium-img-gallery.scale .pa-gallery-img:hover img {
162
+ -webkit-transform: scale(1.3) rotate(5deg);
163
+ -ms-transform: scale(1.3) rotate(5deg);
164
+ transform: scale(1.3) rotate(5deg); }
165
+
166
+ .premium-img-gallery.gray .pa-gallery-img:hover img {
167
+ -webkit-filter: grayscale(0%);
168
+ filter: grayscale(0%); }
169
+
170
+ .premium-img-gallery.blur .pa-gallery-img:hover img {
171
+ -webkit-filter: blur(3px);
172
+ filter: blur(3px); }
173
+
174
+ .premium-img-gallery.sepia .pa-gallery-img:hover img {
175
+ -webkit-filter: sepia(0%);
176
+ filter: sepia(0%); }
177
+
178
+ .premium-img-gallery.trans .pa-gallery-img:hover img {
179
+ -webkit-transform: translateX(0px) scale(1.1);
180
+ -ms-transform: translateX(0px) scale(1.1);
181
+ transform: translateX(0px) scale(1.1); }
182
+
183
+ .premium-img-gallery.bright .pa-gallery-img:hover img {
184
+ -webkit-filter: brightness(1.2);
185
+ filter: brightness(1.2); }
186
+
187
+ .pa-gallery-img .premium-gallery-caption {
188
+ padding: 10px; }
189
+ .pa-gallery-img .premium-gallery-caption .premium-gallery-img-name {
190
+ margin-bottom: 0; }
191
+
192
+ .pa-gallery-img.style1 {
193
+ overflow: hidden; }
194
+
195
+ .pa-gallery-img:not(.style2) .pa-gallery-icons-wrapper {
196
+ position: absolute;
197
+ top: 0;
198
+ left: 0;
199
+ width: 100%;
200
+ height: 100%;
201
+ -webkit-transition: all 0.3s ease-in-out;
202
+ transition: all 0.3s ease-in-out; }
203
+
204
+ .pa-gallery-img:not(.style2) .pa-gallery-icons-inner-container {
205
+ position: absolute;
206
+ top: 33.33%;
207
+ width: 100%;
208
+ text-align: center;
209
+ -webkit-transform: translateY(-50%);
210
+ -ms-transform: translateY(-50%);
211
+ transform: translateY(-50%);
212
+ z-index: 3; }
213
+
214
+ .pa-gallery-img.style1 .premium-gallery-caption {
215
+ position: absolute;
216
+ top: auto;
217
+ right: 0;
218
+ bottom: -1px;
219
+ left: 0;
220
+ width: 100%;
221
+ -webkit-transition: all 500ms ease 0s;
222
+ transition: all 500ms ease 0s;
223
+ -webkit-transform: translate3d(0, 100%, 0);
224
+ transform: translate3d(0, 100%, 0); }
225
+
226
+ .pa-gallery-img.style1:hover .premium-gallery-caption {
227
+ -webkit-transform: translate3d(0, 0, 0);
228
+ transform: translate3d(0, 0, 0);
229
+ bottom: -1px !important; }
230
+
231
+ .pa-gallery-img.default .premium-gallery-caption {
232
+ position: absolute;
233
+ top: auto;
234
+ right: 0;
235
+ left: 0;
236
+ width: 100%;
237
+ bottom: 0; }
238
+
239
+ .pa-gallery-img.style2 .pa-gallery-icons-caption-container {
240
+ position: absolute;
241
+ top: 0;
242
+ left: 0;
243
+ width: 100%;
244
+ height: 100%;
245
+ opacity: 0;
246
+ -webkit-backface-visibility: hidden;
247
+ backface-visibility: hidden;
248
+ -webkit-transition: opacity 0.3s, -webkit-transform 0.3s;
249
+ transition: opacity 0.3s, -webkit-transform 0.3s;
250
+ transition: transform 0.3s, opacity 0.3s;
251
+ transition: transform 0.3s, opacity 0.3s, -webkit-transform 0.3s;
252
+ z-index: 1;
253
+ background-color: rgba(108, 191, 226, 0.68);
254
+ -js-display: flex;
255
+ display: -webkit-box;
256
+ display: -webkit-flex;
257
+ display: -moz-box;
258
+ display: -ms-flexbox;
259
+ display: flex;
260
+ text-align: center;
261
+ -webkit-box-align: center;
262
+ -webkit-align-items: center;
263
+ -moz-box-align: center;
264
+ -ms-flex-align: center;
265
+ align-items: center; }
266
+
267
+ .pa-gallery-img.style2 .pa-gallery-icons-caption-cell {
268
+ width: 100%; }
269
+
270
+ .pa-gallery-img.style2:hover .pa-gallery-icons-caption-container {
271
+ opacity: 1;
272
+ -webkit-transform: translate(15px, 15px);
273
+ -ms-transform: translate(15px, 15px);
274
+ transform: translate(15px, 15px); }
275
+
276
+ .premium-clearfix {
277
+ clear: both; }
278
+
279
  /**
280
  * Metro Layout
281
+ */
282
+ .premium-img-gallery-metro .premium-gallery-item {
283
+ overflow: hidden; }
284
+
285
+ .premium-img-gallery-metro .pa-gallery-img {
286
+ height: 100%; }
287
+
288
+ .premium-img-gallery-metro .pa-gallery-img-container {
289
+ height: 100%; }
290
+ .premium-img-gallery-metro .pa-gallery-img-container img {
291
+ min-height: 100%;
292
+ width: 100%;
293
+ -o-object-fit: fill;
294
+ object-fit: fill; }
295
+
296
+ .premium-img-gallery .premium-gallery-item-hidden {
297
+ visibility: hidden;
298
+ width: 0 !important;
299
+ height: 0 !important;
300
+ margin: 0 !important;
301
+ padding: 0 !important; }
302
+
303
+ .premium-gallery-load-more {
304
+ position: relative; }
305
+ .premium-gallery-load-more .premium-gallery-load-more-btn {
306
+ -webkit-box-shadow: none;
307
+ box-shadow: none;
308
+ text-shadow: none;
309
+ border: none;
310
+ outline: none;
311
+ -webkit-box-align: center;
312
+ -webkit-align-items: center;
313
+ -moz-box-align: center;
314
+ -ms-flex-align: center;
315
+ align-items: center;
316
+ vertical-align: bottom;
317
+ cursor: pointer;
318
+ line-height: 1;
319
+ font-style: normal;
320
+ font-weight: normal;
321
+ background-image: none;
322
+ color: #fff;
323
+ -webkit-transition: all 0.3s ease-in-out;
324
+ transition: all 0.3s ease-in-out; }
325
+
326
+ .premium-gallery-load-more-btn {
327
+ -js-display: inline-flex;
328
+ display: -webkit-inline-box;
329
+ display: -webkit-inline-flex;
330
+ display: -moz-inline-box;
331
+ display: -ms-inline-flexbox;
332
+ display: inline-flex;
333
+ -webkit-box-align: center;
334
+ -webkit-align-items: center;
335
+ -moz-box-align: center;
336
+ -ms-flex-align: center;
337
+ align-items: center; }
338
+
339
+ .premium-gallery-load-more-btn div {
340
+ margin-left: 3px; }
341
+
342
+ .premium-gallery-load-more-btn .premium-loader {
343
+ display: inline-block;
344
+ width: 20px;
345
+ height: 20px; }
346
+
347
+ .pa-gallery-img .pa-gallery-lightbox-wrap {
348
+ display: inline-block; }
349
+
350
+ .premium-img-gallery-no-lightbox .premium-gallery-video-item .pa-gallery-img,
351
+ .pa-gallery-img .pa-gallery-video-icon {
352
+ cursor: pointer; }
353
+
354
+ .pa-gallery-img-container iframe {
355
+ position: absolute;
356
+ visibility: hidden;
357
+ top: 0;
358
+ left: 0;
359
+ max-width: 100%;
360
+ width: 100%;
361
+ height: 100%;
362
+ margin: 0;
363
+ line-height: 1;
364
+ border: none; }
365
+
366
+ .pa-gallery-img-container video {
367
+ position: absolute;
368
+ visibility: hidden;
369
+ top: 0;
370
+ left: 0;
371
+ max-width: 100%;
372
+ width: 100%;
373
+ height: 100%;
374
+ margin: 0;
375
+ line-height: 1;
376
+ border: none;
377
+ -o-object-fit: contain;
378
+ object-fit: contain; }
379
+
380
+ .pa-gallery-icons-inner-container svg,
381
+ .pa-gallery-icons-caption-cell svg {
382
+ width: 14px;
383
+ height: 14px; }
384
+
385
+ .premium-gallery-gradient-layer {
386
+ position: absolute;
387
+ bottom: 40px;
388
+ width: 100%;
389
+ height: 20px;
390
+ background: -webkit-gradient(linear, left bottom, left top, from(#17181f), to(rgba(255, 255, 255, 0)));
391
+ background: -webkit-linear-gradient(bottom, #17181f 0%, rgba(255, 255, 255, 0) 100%);
392
+ background: linear-gradient(to top, #17181f 0%, rgba(255, 255, 255, 0) 100%); }
assets/frontend/css/premium-nav-menu.css CHANGED
@@ -1,1122 +1,1122 @@
1
- /************ Premium Nav Menu ************/
2
- .premium-nav-widget-container ul {
3
- list-style: none;
4
- margin: 0;
5
- padding: 0; }
6
-
7
- .premium-nav-widget-container .premium-main-nav-menu {
8
- -js-display: flex;
9
- display: -webkit-box;
10
- display: -webkit-flex;
11
- display: -moz-box;
12
- display: -ms-flexbox;
13
- display: flex;
14
- height: 100%; }
15
-
16
- /*Vertical Main Menu**/
17
- .premium-nav-ver .premium-ver-inner-container {
18
- width: 45%;
19
- position: relative; }
20
-
21
- .premium-nav-ver .premium-nav-menu-container,
22
- .premium-nav-ver .premium-ver-toggler {
23
- width: 100%; }
24
-
25
- .premium-nav-ver .premium-nav-menu-container {
26
- background-color: #fff;
27
- -webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
28
- box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1); }
29
-
30
- .premium-nav-ver .premium-main-nav-menu {
31
- position: relative;
32
- -webkit-box-orient: vertical;
33
- -webkit-box-direction: normal;
34
- -webkit-flex-direction: column;
35
- -moz-box-orient: vertical;
36
- -moz-box-direction: normal;
37
- -ms-flex-direction: column;
38
- flex-direction: column;
39
- -webkit-box-align: start;
40
- -webkit-align-items: flex-start;
41
- -moz-box-align: start;
42
- -ms-flex-align: start;
43
- align-items: flex-start; }
44
-
45
- .premium-nav-ver:not(.premium-hamburger-menu) .premium-nav-menu-item.menu-item-has-children .premium-sub-menu {
46
- visibility: hidden;
47
- opacity: 0;
48
- position: absolute;
49
- min-width: 250px; }
50
-
51
- .premium-nav-ver:not(.premium-hamburger-menu) .premium-nav-menu-item.menu-item-has-children:hover > .premium-sub-menu,
52
- .premium-nav-ver:not(.premium-hamburger-menu) .premium-nav-menu-item.menu-item-has-children:hover .premium-mega-content-container {
53
- opacity: 1;
54
- visibility: visible; }
55
-
56
- .premium-nav-ver .premium-nav-menu-item {
57
- width: 100%; }
58
-
59
- .premium-nav-ver:not(.premium-hamburger-menu).premium-vertical-right .premium-mega-content-container,
60
- .premium-nav-ver:not(.premium-hamburger-menu).premium-vertical-right .premium-nav-menu-item.menu-item-has-children .premium-sub-menu {
61
- left: 100%;
62
- top: 0; }
63
-
64
- .premium-nav-ver:not(.premium-hamburger-menu).premium-vertical-left .premium-mega-content-container,
65
- .premium-nav-ver:not(.premium-hamburger-menu).premium-vertical-left .premium-nav-menu-item.menu-item-has-children .premium-sub-menu {
66
- right: 100%;
67
- top: 0; }
68
-
69
- .premium-nav-ver:not(.premium-hamburger-menu).premium-vertical-left .premium-menu-link {
70
- -webkit-box-orient: horizontal;
71
- -webkit-box-direction: reverse;
72
- -webkit-flex-direction: row-reverse;
73
- -moz-box-orient: horizontal;
74
- -moz-box-direction: reverse;
75
- -ms-flex-direction: row-reverse;
76
- flex-direction: row-reverse; }
77
-
78
- /*Horizontal Main Menu**/
79
- .premium-nav-hor .premium-nav-menu-container {
80
- height: 60px; }
81
-
82
- .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item .premium-sub-menu {
83
- visibility: hidden;
84
- opacity: 0;
85
- position: absolute;
86
- min-width: 220px; }
87
-
88
- .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item > .premium-sub-menu,
89
- .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item .premium-mega-content-container {
90
- top: 100%; }
91
- .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item > .premium-sub-menu .premium-sub-menu,
92
- .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item .premium-mega-content-container .premium-sub-menu {
93
- left: 100%;
94
- top: 0; }
95
-
96
- .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item:hover > .premium-sub-menu,
97
- .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item:hover .premium-mega-content-container {
98
- visibility: visible;
99
- opacity: 1;
100
- pointer-events: auto; }
101
-
102
- .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item.premium-mega-item-static .premium-mega-content-container {
103
- left: 50%;
104
- -webkit-transform: translateX(-50%);
105
- -ms-transform: translateX(-50%);
106
- transform: translateX(-50%); }
107
-
108
- .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item:not(.premium-mega-item-static) .premium-mega-content-container {
109
- left: 0; }
110
-
111
- /**Mega Menu Container*/
112
- .premium-mega-nav-item .premium-sub-menu {
113
- display: none; }
114
-
115
- .premium-mega-nav-item {
116
- position: relative; }
117
- .premium-mega-nav-item:hover .premium-mega-content-container {
118
- visibility: visible;
119
- opacity: 1;
120
- pointer-events: auto; }
121
-
122
- .premium-mega-content-container {
123
- visibility: hidden;
124
- position: absolute;
125
- z-index: 9999;
126
- opacity: 0;
127
- pointer-events: none; }
128
-
129
- .premium-hamburger-menu .premium-mega-content-container,
130
- .premium-nav-slide .premium-mega-content-container,
131
- .premium-nav-dropdown .premium-mega-content-container {
132
- visibility: visible;
133
- position: relative;
134
- opacity: 1;
135
- pointer-events: auto; }
136
-
137
- /**Hamburger Menu*/
138
- .premium-nav-widget-container a.premium-hamburger-toggle,
139
- .premium-mobile-menu-outer-container a.premium-mobile-menu-close {
140
- text-decoration: none; }
141
-
142
- .premium-nav-widget-container .premium-hamburger-toggle {
143
- display: none;
144
- -webkit-box-pack: center;
145
- -webkit-justify-content: center;
146
- -moz-box-pack: center;
147
- -ms-flex-pack: center;
148
- justify-content: center;
149
- -webkit-box-align: center;
150
- -webkit-align-items: center;
151
- -moz-box-align: center;
152
- -ms-flex-align: center;
153
- align-items: center; }
154
- .premium-nav-widget-container .premium-hamburger-toggle i {
155
- padding: 0.25em;
156
- font-size: 22px; }
157
- .premium-nav-widget-container .premium-hamburger-toggle svg {
158
- width: 22px;
159
- height: 22px; }
160
- .premium-nav-widget-container .premium-hamburger-toggle i,
161
- .premium-nav-widget-container .premium-hamburger-toggle .premium-toggle-text,
162
- .premium-nav-widget-container .premium-hamburger-toggle .premium-toggle-close {
163
- color: #494c4f; }
164
- .premium-nav-widget-container .premium-hamburger-toggle svg,
165
- .premium-nav-widget-container .premium-hamburger-toggle svg path {
166
- fill: #494c4f; }
167
- .premium-nav-widget-container .premium-hamburger-toggle .premium-toggle-text,
168
- .premium-nav-widget-container .premium-hamburger-toggle .premium-toggle-close {
169
- margin: 2px; }
170
- .premium-nav-widget-container .premium-hamburger-toggle .premium-toggle-close {
171
- display: none; }
172
-
173
- .premium-mobile-menu-container {
174
- width: 100%; }
175
- .premium-mobile-menu-container .premium-main-mobile-menu {
176
- width: 100%; }
177
- .premium-mobile-menu-container ul {
178
- list-style: none;
179
- margin: 0;
180
- padding: 0; }
181
- .premium-mobile-menu-container .premium-mobile-menu,
182
- .premium-mobile-menu-container .premium-sub-menu {
183
- display: none;
184
- -webkit-box-orient: vertical;
185
- -webkit-box-direction: normal;
186
- -webkit-flex-direction: column;
187
- -moz-box-orient: vertical;
188
- -moz-box-direction: normal;
189
- -ms-flex-direction: column;
190
- flex-direction: column; }
191
- .premium-mobile-menu-container .premium-nav-menu-item {
192
- -webkit-box-orient: vertical;
193
- -webkit-box-direction: normal;
194
- -webkit-flex-direction: column;
195
- -moz-box-orient: vertical;
196
- -moz-box-direction: normal;
197
- -ms-flex-direction: column;
198
- flex-direction: column; }
199
- .premium-mobile-menu-container .premium-item-badge {
200
- top: 50%;
201
- right: 0;
202
- left: unset;
203
- -webkit-transform: translateY(-50%);
204
- -ms-transform: translateY(-50%);
205
- transform: translateY(-50%); }
206
-
207
- .premium-nav-hor .premium-mobile-menu-container .premium-item-badge {
208
- top: 0;
209
- -webkit-transform: translateY(0);
210
- -ms-transform: translateY(0);
211
- transform: translateY(0); }
212
-
213
- /**Vertical Hamburger Menu*/
214
- .premium-mobile-menu-outer-container {
215
- opacity: 0; }
216
- .premium-mobile-menu-outer-container.premium-vertical-toggle-open {
217
- opacity: 1; }
218
-
219
- .premium-ver-hamburger-menu .premium-mobile-menu-outer-container {
220
- background-color: #f7f7f7;
221
- width: 300px;
222
- -webkit-transform: translateX(-300px);
223
- -ms-transform: translateX(-300px);
224
- transform: translateX(-300px);
225
- height: 100%;
226
- position: fixed;
227
- top: 0;
228
- left: 0;
229
- overflow-x: hidden;
230
- z-index: 10002;
231
- -webkit-transition: 0.5s;
232
- transition: 0.5s;
233
- padding-top: 50px; }
234
- .premium-ver-hamburger-menu .premium-mobile-menu-outer-container .premium-mobile-menu {
235
- -js-display: flex;
236
- display: -webkit-box;
237
- display: -webkit-flex;
238
- display: -moz-box;
239
- display: -ms-flexbox;
240
- display: flex; }
241
- .premium-ver-hamburger-menu .premium-mobile-menu-outer-container .premium-mobile-menu-container {
242
- margin-top: 50px; }
243
- .premium-ver-hamburger-menu .premium-mobile-menu-outer-container .premium-mobile-menu-container .premium-item-badge {
244
- -webkit-transform: translateY(0);
245
- -ms-transform: translateY(0);
246
- transform: translateY(0); }
247
- .premium-ver-hamburger-menu .premium-mobile-menu-outer-container .premium-mobile-menu-close {
248
- position: absolute;
249
- top: 2%;
250
- right: 5px;
251
- padding: 0 9px;
252
- z-index: 10000;
253
- -js-display: inline-flex;
254
- display: -webkit-inline-box;
255
- display: -webkit-inline-flex;
256
- display: -moz-inline-box;
257
- display: -ms-inline-flexbox;
258
- display: inline-flex;
259
- color: #494c4f;
260
- -webkit-box-pack: center;
261
- -webkit-justify-content: center;
262
- -moz-box-pack: center;
263
- -ms-flex-pack: center;
264
- justify-content: center;
265
- -webkit-box-align: center;
266
- -webkit-align-items: center;
267
- -moz-box-align: center;
268
- -ms-flex-align: center;
269
- align-items: center; }
270
- .premium-ver-hamburger-menu .premium-mobile-menu-outer-container .premium-mobile-menu-close .premium-toggle-close {
271
- margin: 5px; }
272
- .premium-ver-hamburger-menu .premium-mobile-menu-outer-container .premium-mobile-menu-close svg {
273
- width: 22px;
274
- height: 22px;
275
- fill: #494c4f; }
276
- .premium-ver-hamburger-menu .premium-mobile-menu-outer-container .premium-mobile-menu-close svg path {
277
- fill: #494c4f; }
278
- .premium-ver-hamburger-menu .premium-mobile-menu-outer-container .premium-mobile-menu-close i {
279
- font-size: 22px; }
280
-
281
- .premium-ver-hamburger-menu .premium-vertical-toggle-open {
282
- -webkit-transform: translateX(0) !important;
283
- -ms-transform: translateX(0) !important;
284
- transform: translateX(0) !important;
285
- -webkit-transition: 0.5s;
286
- transition: 0.5s; }
287
-
288
- /** Vertical Toggler*/
289
- .premium-ver-toggle-yes .premium-nav-menu-container {
290
- height: auto; }
291
-
292
- .premium-ver-toggle-yes .premium-ver-toggler {
293
- -js-display: flex;
294
- display: -webkit-box;
295
- display: -webkit-flex;
296
- display: -moz-box;
297
- display: -ms-flexbox;
298
- display: flex;
299
- -webkit-box-align: center;
300
- -webkit-align-items: center;
301
- -moz-box-align: center;
302
- -ms-flex-align: center;
303
- align-items: center;
304
- -webkit-box-pack: justify;
305
- -webkit-justify-content: space-between;
306
- -moz-box-pack: justify;
307
- -ms-flex-pack: justify;
308
- justify-content: space-between;
309
- padding: 15px 20px 15px 20px;
310
- background: #eeeeee;
311
- color: #042551;
312
- cursor: pointer; }
313
- .premium-ver-toggle-yes .premium-ver-toggler .premium-ver-toggler-title,
314
- .premium-ver-toggle-yes .premium-ver-toggler .premium-ver-toggler-btn {
315
- -js-display: flex;
316
- display: -webkit-box;
317
- display: -webkit-flex;
318
- display: -moz-box;
319
- display: -ms-flexbox;
320
- display: flex;
321
- -webkit-box-pack: center;
322
- -webkit-justify-content: center;
323
- -moz-box-pack: center;
324
- -ms-flex-pack: center;
325
- justify-content: center;
326
- -webkit-box-align: center;
327
- -webkit-align-items: center;
328
- -moz-box-align: center;
329
- -ms-flex-align: center;
330
- align-items: center; }
331
- .premium-ver-toggle-yes .premium-ver-toggler .premium-ver-toggler-txt {
332
- text-indent: 5px; }
333
- .premium-ver-toggle-yes .premium-ver-toggler:hover {
334
- background: #54595f;
335
- color: #fff; }
336
- .premium-ver-toggle-yes .premium-ver-toggler:hover .premium-ver-close svg,
337
- .premium-ver-toggle-yes .premium-ver-toggler:hover .premium-ver-close svg path,
338
- .premium-ver-toggle-yes .premium-ver-toggler:hover .premium-ver-open svg,
339
- .premium-ver-toggle-yes .premium-ver-toggler:hover .premium-ver-open svg path,
340
- .premium-ver-toggle-yes .premium-ver-toggler:hover .premium-ver-title-icon svg,
341
- .premium-ver-toggle-yes .premium-ver-toggler:hover .premium-ver-title-icon svg path {
342
- fill: #fff; }
343
-
344
- .premium-ver-toggle-yes .premium-ver-close,
345
- .premium-ver-toggle-yes .premium-ver-open,
346
- .premium-ver-toggle-yes .premium-nav-menu-container,
347
- .premium-ver-toggle-yes .premium-ver-toggler {
348
- -webkit-transition: all 0.3s linear 0s;
349
- transition: all 0.3s linear 0s; }
350
- .premium-ver-toggle-yes .premium-ver-close i,
351
- .premium-ver-toggle-yes .premium-ver-close svg,
352
- .premium-ver-toggle-yes .premium-ver-open i,
353
- .premium-ver-toggle-yes .premium-ver-open svg,
354
- .premium-ver-toggle-yes .premium-nav-menu-container i,
355
- .premium-ver-toggle-yes .premium-nav-menu-container svg,
356
- .premium-ver-toggle-yes .premium-ver-toggler i,
357
- .premium-ver-toggle-yes .premium-ver-toggler svg {
358
- -webkit-transition: color 0.3s linear 0s;
359
- transition: color 0.3s linear 0s; }
360
-
361
- .premium-ver-toggle-yes .premium-ver-toggler-txt {
362
- -webkit-transition: all 0.3s linear 0s;
363
- transition: all 0.3s linear 0s; }
364
-
365
- .premium-ver-toggle-yes .premium-ver-close,
366
- .premium-ver-toggle-yes .premium-ver-open,
367
- .premium-ver-toggle-yes .premium-ver-title-icon {
368
- -webkit-box-pack: center;
369
- -webkit-justify-content: center;
370
- -moz-box-pack: center;
371
- -ms-flex-pack: center;
372
- justify-content: center;
373
- -webkit-box-align: center;
374
- -webkit-align-items: center;
375
- -moz-box-align: center;
376
- -ms-flex-align: center;
377
- align-items: center; }
378
- .premium-ver-toggle-yes .premium-ver-close i,
379
- .premium-ver-toggle-yes .premium-ver-open i,
380
- .premium-ver-toggle-yes .premium-ver-title-icon i {
381
- font-size: 16px; }
382
- .premium-ver-toggle-yes .premium-ver-close svg,
383
- .premium-ver-toggle-yes .premium-ver-open svg,
384
- .premium-ver-toggle-yes .premium-ver-title-icon svg {
385
- width: 17px;
386
- height: 17px;
387
- fill: #042551; }
388
- .premium-ver-toggle-yes .premium-ver-close svg path,
389
- .premium-ver-toggle-yes .premium-ver-open svg path,
390
- .premium-ver-toggle-yes .premium-ver-title-icon svg path {
391
- fill: #042551; }
392
-
393
- .premium-ver-toggle-yes.premium-ver-always .premium-ver-open {
394
- -js-display: inline-flex;
395
- display: -webkit-inline-box;
396
- display: -webkit-inline-flex;
397
- display: -moz-inline-box;
398
- display: -ms-inline-flexbox;
399
- display: inline-flex; }
400
-
401
- .premium-ver-toggle-yes .premium-ver-collapsed .premium-nav-menu-container {
402
- visibility: hidden;
403
- opacity: 0; }
404
-
405
- .premium-ver-toggle-yes .premium-ver-collapsed .premium-ver-close {
406
- display: none; }
407
-
408
- .premium-ver-toggle-yes .premium-ver-collapsed .premium-ver-open {
409
- -js-display: inline-flex;
410
- display: -webkit-inline-box;
411
- display: -webkit-inline-flex;
412
- display: -moz-inline-box;
413
- display: -ms-inline-flexbox;
414
- display: inline-flex; }
415
-
416
- .premium-ver-toggle-yes.premium-ver-hover .premium-nav-menu-container {
417
- position: absolute;
418
- z-index: 10002; }
419
-
420
- .premium-ver-toggle-yes.premium-ver-click .premium-nav-menu-container {
421
- position: absolute;
422
- z-index: 10001; }
423
-
424
- .premium-ver-toggle-yes .premium-nav-menu-container,
425
- .premium-ver-toggle-yes.premium-ver-hover .premium-ver-inner-container:hover .premium-nav-menu-container {
426
- visibility: visible;
427
- opacity: 1; }
428
-
429
- .premium-ver-toggle-yes .premium-ver-open,
430
- .premium-ver-toggle-yes.premium-ver-hover .premium-ver-inner-container:hover .premium-ver-open {
431
- display: none; }
432
-
433
- .premium-ver-toggle-yes .premium-ver-close,
434
- .premium-ver-toggle-yes .premium-ver-title-icon,
435
- .premium-ver-toggle-yes.premium-ver-hover .premium-ver-inner-container:hover .premium-ver-close,
436
- .premium-ver-toggle-yes.premium-ver-hover .premium-ver-inner-container:hover .premium-ver-title-icon {
437
- -js-display: inline-flex;
438
- display: -webkit-inline-box;
439
- display: -webkit-inline-flex;
440
- display: -moz-inline-box;
441
- display: -ms-inline-flexbox;
442
- display: inline-flex; }
443
-
444
- /** Sticky Menu */
445
- .premium-sticky-parent {
446
- position: fixed;
447
- z-index: 10003;
448
- -webkit-transition: all 0.3s linear;
449
- transition: all 0.3s linear; }
450
-
451
- .premium-sticky-scroll-yes.premium-sticky-parent.headroom--not-top {
452
- will-change: transform;
453
- -webkit-transition: -webkit-transform 500ms linear !important;
454
- transition: -webkit-transform 500ms linear !important;
455
- transition: transform 500ms linear !important;
456
- transition: transform 500ms linear, -webkit-transform 500ms linear !important;
457
- -webkit-transition-delay: 1s;
458
- transition-delay: 1s; }
459
-
460
- .premium-sticky-scroll-yes.premium-sticky-parent.headroom--not-top.slideDown {
461
- -webkit-transform: translateY(0%);
462
- -ms-transform: translateY(0%);
463
- transform: translateY(0%); }
464
-
465
- .premium-sticky-scroll-yes.premium-sticky-parent.headroom--not-top.slideUp {
466
- -webkit-transform: translateY(-100%);
467
- -ms-transform: translateY(-100%);
468
- transform: translateY(-100%); }
469
-
470
- .premium-nav-sticky-yes.premium-sticky-active.premium-ham-dropdown .premium-mobile-menu-container,
471
- .premium-ham-dropdown .premium-stretch-dropdown .premium-mobile-menu-container {
472
- max-height: 400px;
473
- overflow-y: auto; }
474
-
475
- /**Common*/
476
- .premium-nav-slide-overlay {
477
- display: none;
478
- position: fixed;
479
- top: 0;
480
- left: 0;
481
- right: 0;
482
- bottom: 0;
483
- -webkit-backface-visibility: hidden;
484
- backface-visibility: hidden;
485
- background: rgba(0, 0, 0, 0.6);
486
- z-index: 10002; }
487
- .premium-nav-slide-overlay.premium-vertical-toggle-open {
488
- display: block; }
489
-
490
- .premium-active-menu,
491
- .premium-active-menu:not(.premium-mega-nav-item) > .premium-sub-menu,
492
- .premium-active-menu.premium-mega-nav-item > .premium-mega-content-container {
493
- -js-display: flex !important;
494
- display: -webkit-box !important;
495
- display: -webkit-flex !important;
496
- display: -moz-box !important;
497
- display: -ms-flexbox !important;
498
- display: flex !important;
499
- -webkit-box-orient: vertical;
500
- -webkit-box-direction: normal;
501
- -webkit-flex-direction: column;
502
- -moz-box-orient: vertical;
503
- -moz-box-direction: normal;
504
- -ms-flex-direction: column;
505
- flex-direction: column; }
506
-
507
- .premium-active-menu .premium-toggle-close {
508
- display: block; }
509
-
510
- .premium-nav-menu-container .premium-sub-menu {
511
- background-color: #fff; }
512
-
513
- .premium-mobile-menu-container li,
514
- .premium-mobile-menu-container li > .premium-mega-content-container {
515
- width: 100% !important; }
516
-
517
- .premium-item-icon,
518
- .premium-sub-item-icon {
519
- font-size: 13px;
520
- margin: 0 7px; }
521
- .premium-item-icon svg,
522
- .premium-sub-item-icon svg {
523
- width: 100%;
524
- height: 100%; }
525
- .premium-item-icon.premium-lottie-animation,
526
- .premium-sub-item-icon.premium-lottie-animation {
527
- width: 20px;
528
- height: 20px;
529
- -js-display: flex;
530
- display: -webkit-box;
531
- display: -webkit-flex;
532
- display: -moz-box;
533
- display: -ms-flexbox;
534
- display: flex;
535
- -webkit-box-pack: center;
536
- -webkit-justify-content: center;
537
- -moz-box-pack: center;
538
- -ms-flex-pack: center;
539
- justify-content: center; }
540
- .premium-item-icon.dashicons,
541
- .premium-sub-item-icon.dashicons {
542
- width: 13px;
543
- height: 13px; }
544
-
545
- .premium-nav-menu-item {
546
- position: relative; }
547
- .premium-nav-menu-item .premium-menu-link {
548
- -js-display: flex;
549
- display: -webkit-box;
550
- display: -webkit-flex;
551
- display: -moz-box;
552
- display: -ms-flexbox;
553
- display: flex;
554
- -webkit-box-align: center;
555
- -webkit-align-items: center;
556
- -moz-box-align: center;
557
- -ms-flex-align: center;
558
- align-items: center;
559
- height: 100%;
560
- padding: 7px 10px;
561
- text-decoration: none;
562
- position: relative; }
563
- .premium-nav-menu-item .premium-dropdown-icon {
564
- margin: 5px; }
565
- .premium-nav-menu-item.menu-item-has-children {
566
- position: relative; }
567
- .premium-nav-menu-item.menu-item-has-children .premium-sub-menu {
568
- z-index: 9999; }
569
- .premium-nav-menu-item.menu-item-has-children .premium-sub-menu .premium-sub-menu-link {
570
- -webkit-box-pack: start;
571
- -webkit-justify-content: flex-start;
572
- -moz-box-pack: start;
573
- -ms-flex-pack: start;
574
- justify-content: flex-start; }
575
- .premium-nav-menu-item .menu-link {
576
- position: relative;
577
- text-decoration: none; }
578
-
579
- .premium-item-badge,
580
- .premium-sub-item-badge {
581
- position: absolute;
582
- padding: 1px 6px;
583
- min-width: 35px;
584
- text-align: center;
585
- font-size: 10px;
586
- -webkit-border-radius: 4px;
587
- border-radius: 4px;
588
- line-height: 1.8;
589
- white-space: nowrap; }
590
-
591
- .premium-nav-hor:not(.premium-hamburger-menu) .premium-item-badge, .premium-nav-hor:not(.premium-nav-slide) .premium-item-badge, .premium-nav-hor:not(.premium-nav-dropdown) .premium-item-badge {
592
- position: relative;
593
- margin: 8px; }
594
-
595
- .premium-nav-hor .premium-sub-item-badge,
596
- .premium-nav-slide .premium-sub-item-badge,
597
- .premium-nav-dropdown .premium-sub-item-badge,
598
- .premium-nav-ver.premium-vertical-right .premium-item-badge,
599
- .premium-nav-ver.premium-vertical-right .premium-sub-item-badge {
600
- top: 50%;
601
- right: 0;
602
- -webkit-transform: translateY(-50%);
603
- -ms-transform: translateY(-50%);
604
- transform: translateY(-50%); }
605
-
606
- .premium-nav-ver.premium-vertical-left .premium-item-badge,
607
- .premium-nav-ver.premium-vertical-left .premium-sub-item-badge {
608
- top: 50%;
609
- left: 0;
610
- -webkit-transform: translateY(-50%);
611
- -ms-transform: translateY(-50%);
612
- transform: translateY(-50%); }
613
-
614
- .premium-mega-nav-item .premium-sub-menu {
615
- display: none; }
616
-
617
- .premium-mega-nav-item {
618
- position: relative; }
619
-
620
- .premium-hamburger-menu .premium-mega-content-container,
621
- .premium-nav-dropdown .premium-mega-content-container,
622
- .premium-nav-slide .premium-mega-content-container {
623
- display: none; }
624
-
625
- .premium-mega-item-static {
626
- position: static !important; }
627
-
628
- .premium-hamburger-menu .premium-nav-menu-container,
629
- .premium-nav-dropdown .premium-nav-menu-container,
630
- .premium-nav-slide .premium-nav-menu-container {
631
- display: none; }
632
-
633
- .premium-hamburger-menu .premium-hamburger-toggle,
634
- .premium-nav-dropdown .premium-hamburger-toggle,
635
- .premium-nav-slide .premium-hamburger-toggle {
636
- -js-display: inline-flex;
637
- display: -webkit-inline-box;
638
- display: -webkit-inline-flex;
639
- display: -moz-inline-box;
640
- display: -ms-inline-flexbox;
641
- display: inline-flex; }
642
-
643
- .premium-hidden-icon-yes.premium-hamburger-menu .premium-item-icon,
644
- .premium-hidden-icon-yes.premium-hamburger-menu .premium-sub-item-icon,
645
- .premium-hidden-icon-yes.premium-nav-dropdown .premium-item-icon,
646
- .premium-hidden-icon-yes.premium-nav-dropdown .premium-sub-item-icon,
647
- .premium-hidden-icon-yes.premium-nav-slide .premium-item-icon,
648
- .premium-hidden-icon-yes.premium-nav-slide .premium-sub-item-icon {
649
- display: none; }
650
-
651
- .premium-hidden-badge-yes.premium-hamburger-menu .premium-item-badge,
652
- .premium-hidden-badge-yes.premium-hamburger-menu .premium-sub-item-badge,
653
- .premium-hidden-badge-yes.premium-nav-dropdown .premium-item-badge,
654
- .premium-hidden-badge-yes.premium-nav-dropdown .premium-sub-item-badge,
655
- .premium-hidden-badge-yes.premium-nav-slide .premium-item-badge,
656
- .premium-hidden-badge-yes.premium-nav-slide .premium-sub-item-badge {
657
- display: none; }
658
-
659
- .premium-ham-dropdown .premium-mobile-menu-container,
660
- .premium-nav-dropdown .premium-mobile-menu-container {
661
- -js-display: flex;
662
- display: -webkit-box;
663
- display: -webkit-flex;
664
- display: -moz-box;
665
- display: -ms-flexbox;
666
- display: flex; }
667
-
668
- .premium-ham-dropdown .premium-toggle-opened .premium-toggle-close,
669
- .premium-nav-dropdown .premium-toggle-opened .premium-toggle-close {
670
- display: inline !important; }
671
-
672
- .premium-ham-dropdown .premium-toggle-opened .premium-toggle-text,
673
- .premium-nav-dropdown .premium-toggle-opened .premium-toggle-text {
674
- display: none !important; }
675
-
676
- .premium-stretch-dropdown .premium-mobile-menu-container {
677
- position: absolute;
678
- z-index: 9999; }
679
-
680
- .premium-nav-default {
681
- display: none; }
682
-
683
- .premium-hamburger-toggle {
684
- width: 100%; }
685
-
686
  /*
687
  * Pointer & Pointer Animations
688
- */
689
- .premium-menu-link-parent::before, .premium-menu-link-parent::after {
690
- display: block;
691
- position: absolute;
692
- -webkit-transition: all 0.3s cubic-bezier(0.58, 0.3, 0.005, 1);
693
- transition: all 0.3s cubic-bezier(0.58, 0.3, 0.005, 1); }
694
-
695
- .premium-nav-pointer-underline .premium-menu-link-parent::after,
696
- .premium-nav-pointer-double-line .premium-menu-link-parent::after {
697
- content: "";
698
- bottom: 0; }
699
-
700
- .premium-nav-pointer-overline .premium-menu-link-parent::before,
701
- .premium-nav-pointer-double-line .premium-menu-link-parent::before {
702
- content: "";
703
- top: 0; }
704
-
705
- .premium-nav-pointer-underline .premium-menu-link-parent::before, .premium-nav-pointer-underline .premium-menu-link-parent::after,
706
- .premium-nav-pointer-overline .premium-menu-link-parent::before,
707
- .premium-nav-pointer-overline .premium-menu-link-parent::after,
708
- .premium-nav-pointer-double-line .premium-menu-link-parent::before,
709
- .premium-nav-pointer-double-line .premium-menu-link-parent::after {
710
- height: 3px;
711
- width: 100%;
712
- left: 0;
713
- background-color: #55595c;
714
- z-index: 2; }
715
-
716
- .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before, .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after {
717
- opacity: 0; }
718
-
719
- .premium-nav-pointer-underline.premium-nav-animation-none,
720
- .premium-nav-pointer-overline.premium-nav-animation-none,
721
- .premium-nav-pointer-double-line.premium-nav-animation-none {
722
- -webkit-transition-duration: 0s;
723
- transition-duration: 0s; }
724
- .premium-nav-pointer-underline.premium-nav-animation-none .premium-menu-link-parent,
725
- .premium-nav-pointer-underline.premium-nav-animation-none .premium-menu-link-parent::before,
726
- .premium-nav-pointer-underline.premium-nav-animation-none .premium-menu-link-parent::after,
727
- .premium-nav-pointer-underline.premium-nav-animation-none .premium-menu-link-parent:focus,
728
- .premium-nav-pointer-underline.premium-nav-animation-none .premium-menu-link-parent:hover,
729
- .premium-nav-pointer-overline.premium-nav-animation-none .premium-menu-link-parent,
730
- .premium-nav-pointer-overline.premium-nav-animation-none .premium-menu-link-parent::before,
731
- .premium-nav-pointer-overline.premium-nav-animation-none .premium-menu-link-parent::after,
732
- .premium-nav-pointer-overline.premium-nav-animation-none .premium-menu-link-parent:focus,
733
- .premium-nav-pointer-overline.premium-nav-animation-none .premium-menu-link-parent:hover,
734
- .premium-nav-pointer-double-line.premium-nav-animation-none .premium-menu-link-parent,
735
- .premium-nav-pointer-double-line.premium-nav-animation-none .premium-menu-link-parent::before,
736
- .premium-nav-pointer-double-line.premium-nav-animation-none .premium-menu-link-parent::after,
737
- .premium-nav-pointer-double-line.premium-nav-animation-none .premium-menu-link-parent:focus,
738
- .premium-nav-pointer-double-line.premium-nav-animation-none .premium-menu-link-parent:hover {
739
- -webkit-transition-duration: 0s;
740
- transition-duration: 0s; }
741
-
742
- .premium-nav-pointer-underline.premium-nav-animation-slide .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after,
743
- .premium-nav-pointer-double-line.premium-nav-animation-slide .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after {
744
- width: 10px;
745
- inset-inline-start: 100%; }
746
-
747
- .premium-nav-pointer-overline.premium-nav-animation-slide .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before,
748
- .premium-nav-pointer-double-line.premium-nav-animation-slide .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
749
- width: 10px;
750
- left: -20px; }
751
-
752
- .premium-nav-pointer-underline.premium-nav-animation-grow .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before, .premium-nav-pointer-underline.premium-nav-animation-grow .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after,
753
- .premium-nav-pointer-overline.premium-nav-animation-grow .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before,
754
- .premium-nav-pointer-overline.premium-nav-animation-grow .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after,
755
- .premium-nav-pointer-double-line.premium-nav-animation-grow .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before,
756
- .premium-nav-pointer-double-line.premium-nav-animation-grow .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after {
757
- height: 0;
758
- width: 0;
759
- left: 50%; }
760
-
761
- .premium-nav-pointer-underline.premium-nav-animation-drop-in .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before,
762
- .premium-nav-pointer-overline.premium-nav-animation-drop-in .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before,
763
- .premium-nav-pointer-double-line.premium-nav-animation-drop-in .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
764
- top: -10px; }
765
-
766
- .premium-nav-pointer-underline.premium-nav-animation-drop-in .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after,
767
- .premium-nav-pointer-overline.premium-nav-animation-drop-in .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after,
768
- .premium-nav-pointer-double-line.premium-nav-animation-drop-in .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after {
769
- bottom: -10px; }
770
-
771
- .premium-nav-pointer-underline.premium-nav-animation-drop-out .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before,
772
- .premium-nav-pointer-overline.premium-nav-animation-drop-out .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before,
773
- .premium-nav-pointer-double-line.premium-nav-animation-drop-out .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
774
- top: 10px; }
775
-
776
- .premium-nav-pointer-underline.premium-nav-animation-drop-out .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after,
777
- .premium-nav-pointer-overline.premium-nav-animation-drop-out .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after,
778
- .premium-nav-pointer-double-line.premium-nav-animation-drop-out .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after {
779
- bottom: 10px; }
780
-
781
- .premium-nav-pointer-framed .premium-menu-link-parent::before {
782
- content: ""; }
783
-
784
- .premium-nav-pointer-framed .premium-menu-link-parent::before, .premium-nav-pointer-framed .premium-menu-link-parent::after {
785
- background: transparent;
786
- left: 0;
787
- top: 0;
788
- bottom: 0;
789
- right: 0;
790
- border: 3px solid #55595c; }
791
-
792
- .premium-nav-pointer-framed.premium-nav-animation-grow .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
793
- -webkit-transform: scale(0.75);
794
- -ms-transform: scale(0.75);
795
- transform: scale(0.75); }
796
-
797
- .premium-nav-pointer-framed.premium-nav-animation-shrink .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
798
- -webkit-transform: scale(1.25);
799
- -ms-transform: scale(1.25);
800
- transform: scale(1.25); }
801
-
802
- .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent::before, .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent::after {
803
- width: 3px;
804
- height: 3px; }
805
-
806
- .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent::before {
807
- border-width: 0 0 3px 3px;
808
- -webkit-transition: width 0.1s 0.2s, height 0.1s 0.3s, opacity 0.12s 0.22s;
809
- transition: width 0.1s 0.2s, height 0.1s 0.3s, opacity 0.12s 0.22s; }
810
-
811
- .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent::after {
812
- content: "";
813
- top: auto;
814
- bottom: 0;
815
- left: auto;
816
- right: 0;
817
- border-width: 3px 3px 0 0;
818
- -webkit-transition: width 0.1s, height 0.1s 0.1s, opacity 0.02s 0.18s;
819
- transition: width 0.1s, height 0.1s 0.1s, opacity 0.02s 0.18s; }
820
-
821
- .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent:hover::before, .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent:focus::before {
822
- -webkit-transition: opacity 0.02s, height 0.1s, width 0.1s 0.1s;
823
- transition: opacity 0.02s, height 0.1s, width 0.1s 0.1s; }
824
-
825
- .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent:hover::after, .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent:focus::after {
826
- -webkit-transition: opacity 0.02s 0.2s, height 0.1s 0.2s, width 0.1s 0.3s;
827
- transition: opacity 0.02s 0.2s, height 0.1s 0.2s, width 0.1s 0.3s; }
828
-
829
- .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent:hover::before, .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent:hover::after, .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent:focus::before, .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent:focus::after {
830
- width: 100%;
831
- height: 100%; }
832
-
833
- .premium-nav-pointer-framed.premium-nav-animation-draw .premium-active-item .premium-menu-link-parent::before {
834
- -webkit-transition: opacity 0.02s, height 0.1s, width 0.1s 0.1s;
835
- transition: opacity 0.02s, height 0.1s, width 0.1s 0.1s; }
836
-
837
- .premium-nav-pointer-framed.premium-nav-animation-draw .premium-active-item .premium-menu-link-parent::after {
838
- -webkit-transition: opacity 0.02s 0.2s, height 0.1s 0.2s, width 0.1s 0.3s;
839
- transition: opacity 0.02s 0.2s, height 0.1s 0.2s, width 0.1s 0.3s; }
840
-
841
- .premium-nav-pointer-framed.premium-nav-animation-draw .premium-active-item .premium-menu-link-parent::before, .premium-nav-pointer-framed.premium-nav-animation-draw .premium-active-item .premium-menu-link-parent::after {
842
- width: 100%;
843
- height: 100%; }
844
-
845
- .premium-nav-pointer-framed.premium-nav-animation-corners .premium-menu-link-parent::before {
846
- border-width: 3px 0 0 3px; }
847
-
848
- .premium-nav-pointer-framed.premium-nav-animation-corners .premium-menu-link-parent::after {
849
- content: "";
850
- top: auto;
851
- bottom: 0;
852
- left: auto;
853
- right: 0;
854
- border-width: 0 3px 3px 0; }
855
-
856
- .premium-nav-pointer-framed.premium-nav-animation-corners .premium-menu-link-parent::before, .premium-nav-pointer-framed.premium-nav-animation-corners .premium-menu-link-parent::after {
857
- width: 3px;
858
- height: 3px; }
859
-
860
- .premium-nav-pointer-framed.premium-nav-animation-corners .premium-menu-link-parent:hover::before, .premium-nav-pointer-framed.premium-nav-animation-corners .premium-menu-link-parent:hover::after, .premium-nav-pointer-framed.premium-nav-animation-corners .premium-menu-link-parent:focus::before, .premium-nav-pointer-framed.premium-nav-animation-corners .premium-menu-link-parent:focus::after {
861
- width: 100%;
862
- height: 100%;
863
- -webkit-transition: opacity 2ms, width 0.4s, height 0.4s;
864
- transition: opacity 2ms, width 0.4s, height 0.4s; }
865
-
866
- .premium-nav-pointer-framed.premium-nav-animation-corners .premium-active-item .premium-menu-link-parent::before, .premium-nav-pointer-framed.premium-nav-animation-corners .premium-active-item .premium-menu-link-parent::after {
867
- width: 100%;
868
- height: 100%;
869
- -webkit-transition: opacity 2ms, width 0.4s, height 0.4s;
870
- transition: opacity 2ms, width 0.4s, height 0.4s; }
871
-
872
- .premium-nav-pointer-text.premium-nav-animation-grow .premium-menu-link-parent:hover, .premium-nav-pointer-text.premium-nav-animation-grow .premium-menu-link-parent:focus {
873
- -webkit-transform: scale(1.2);
874
- -ms-transform: scale(1.2);
875
- transform: scale(1.2); }
876
-
877
- .premium-nav-pointer-text.premium-nav-animation-shrink .premium-menu-link-parent:hover, .premium-nav-pointer-text.premium-nav-animation-shrink .premium-menu-link-parent:focus {
878
- -webkit-transform: scale(0.8);
879
- -ms-transform: scale(0.8);
880
- transform: scale(0.8); }
881
-
882
- .premium-nav-pointer-text.premium-nav-animation-sink .premium-menu-link-parent:hover, .premium-nav-pointer-text.premium-nav-animation-sink .premium-menu-link-parent:focus {
883
- -webkit-transform: translateY(8px);
884
- -ms-transform: translateY(8px);
885
- transform: translateY(8px); }
886
-
887
- .premium-nav-pointer-text.premium-nav-animation-float .premium-menu-link-parent:hover, .premium-nav-pointer-text.premium-nav-animation-float .premium-menu-link-parent:focus {
888
- -webkit-transform: translateY(-8px);
889
- -ms-transform: translateY(-8px);
890
- transform: translateY(-8px); }
891
-
892
- .premium-nav-pointer-text.premium-nav-animation-skew .premium-menu-link-parent:hover, .premium-nav-pointer-text.premium-nav-animation-skew .premium-menu-link-parent:focus {
893
- -webkit-transform: skew(-8deg);
894
- -ms-transform: skew(-8deg);
895
- transform: skew(-8deg); }
896
-
897
- .premium-nav-pointer-text.premium-nav-animation-rotate .premium-menu-link-parent:hover, .premium-nav-pointer-text.premium-nav-animation-rotate .premium-menu-link-parent:focus {
898
- -webkit-transform: rotate(6deg);
899
- -ms-transform: rotate(6deg);
900
- transform: rotate(6deg); }
901
-
902
- .premium-nav-pointer-background .premium-menu-link-parent::before {
903
- top: 0;
904
- left: 0;
905
- right: 0;
906
- bottom: 0;
907
- background: #55595c;
908
- background-color: #55595c;
909
- z-index: -1; }
910
-
911
- .premium-nav-pointer-background .premium-menu-link-parent::before, .premium-nav-pointer-background .premium-menu-link-parent::after {
912
- content: "";
913
- -webkit-transition: 0.3s;
914
- transition: 0.3s; }
915
-
916
- .premium-nav-pointer-background.premium-nav-animation-grow .premium-menu-link-parent::before {
917
- -webkit-transform: scale(0.5);
918
- -ms-transform: scale(0.5);
919
- transform: scale(0.5); }
920
-
921
- .premium-nav-pointer-background.premium-nav-animation-grow .premium-menu-link-parent:hover::before, .premium-nav-pointer-background.premium-nav-animation-grow .premium-menu-link-parent:focus::before {
922
- -webkit-transform: scale(1);
923
- -ms-transform: scale(1);
924
- transform: scale(1); }
925
-
926
- .premium-nav-pointer-background.premium-nav-animation-grow .premium-active-item .premium-menu-link-parent::before {
927
- -webkit-transform: scale(1);
928
- -ms-transform: scale(1);
929
- transform: scale(1); }
930
-
931
- .premium-nav-pointer-background.premium-nav-animation-shrink .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
932
- -webkit-transform: scale(1.2);
933
- -ms-transform: scale(1.2);
934
- transform: scale(1.2);
935
- -webkit-transition: 0.3;
936
- transition: 0.3; }
937
-
938
- .premium-nav-pointer-background.premium-nav-animation-sweep-left .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
939
- left: 100%; }
940
-
941
- .premium-nav-pointer-background.premium-nav-animation-sweep-right .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
942
- right: 100%; }
943
-
944
- .premium-nav-pointer-background.premium-nav-animation-sweep-up .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
945
- top: 100%; }
946
-
947
- .premium-nav-pointer-background.premium-nav-animation-sweep-down .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
948
- bottom: 100%; }
949
-
950
- .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-menu-link-parent::after, .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-menu-link-parent::after {
951
- top: 0;
952
- left: 0;
953
- right: 0;
954
- bottom: 0;
955
- background: #55595c;
956
- background-color: #55595c;
957
- z-index: -1; }
958
-
959
- .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-menu-link-parent::before {
960
- top: 0;
961
- bottom: 100%; }
962
-
963
- .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-menu-link-parent::after {
964
- top: 100%;
965
- bottom: 0; }
966
-
967
- .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-menu-link-parent:hover::before, .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-menu-link-parent:focus::before {
968
- bottom: 50%; }
969
-
970
- .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-menu-link-parent:hover::after, .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-menu-link-parent:focus::after {
971
- top: 50%; }
972
-
973
- .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-active-item .premium-menu-link-parent::before {
974
- bottom: 50%; }
975
-
976
- .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-active-item .premium-menu-link-parent::after {
977
- top: 50%; }
978
-
979
- .premium-nav-pointer-background.premium-nav-animation-shutter-out-vertical .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
980
- bottom: 50%;
981
- top: 50%; }
982
-
983
- .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-menu-link-parent::before {
984
- right: 0;
985
- left: 100%; }
986
-
987
- .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-menu-link-parent::after {
988
- right: 100%;
989
- left: 0; }
990
-
991
- .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-menu-link-parent:hover::before, .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-menu-link-parent:focus::before {
992
- left: 50%; }
993
-
994
- .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-menu-link-parent:hover::after, .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-menu-link-parent:focus::after {
995
- right: 50%; }
996
-
997
- .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-active-item .premium-menu-link-parent::before {
998
- left: 50%; }
999
-
1000
- .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-active-item .premium-menu-link-parent::after {
1001
- right: 50%; }
1002
-
1003
- .premium-nav-pointer-background.premium-nav-animation-shutter-out-horizontal .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
1004
- left: 50%;
1005
- right: 50%; }
1006
-
1007
- .premium-active-item::before, .premium-active-item::after,
1008
- .premium-menu-link-parent:hover::before,
1009
- .premium-menu-link-parent:hover::after,
1010
- .premium-menu-link-parent:focus::before,
1011
- .premium-menu-link-parent:focus::after {
1012
- -webkit-transform: scale(1);
1013
- -ms-transform: scale(1);
1014
- transform: scale(1); }
1015
-
1016
- /**Sub Menu Animation*/
1017
- .premium-nav-menu-item .premium-sub-menu,
1018
- .premium-nav-menu-item .premium-mega-content-container {
1019
- -webkit-transition: 0.5s all ease-in-out;
1020
- transition: 0.5s all ease-in-out;
1021
- -webkit-transition-delay: 0.1s;
1022
- transition-delay: 0.1s; }
1023
-
1024
- [class*="premium-nav-slide-"].premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item:hover > .premium-sub-menu,
1025
- [class*="premium-nav-slide-"].premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item:hover > .premium-mega-content-container,
1026
- [class*="premium-nav-slide-"].premium-nav-hor:not(.premium-hamburger-menu) .premium-sub-menu:hover > .premium-sub-menu,
1027
- [class*="premium-nav-slide-"].premium-nav-ver:not(.premium-hamburger-menu) .premium-nav-menu-item:hover > .premium-sub-menu,
1028
- [class*="premium-nav-slide-"].premium-nav-ver:not(.premium-hamburger-menu) .premium-nav-menu-item:hover > .premium-mega-content-container,
1029
- [class*="premium-nav-slide-"].premium-nav-ver:not(.premium-hamburger-menu) .premium-sub-menu:hover > .premium-sub-menu {
1030
- -webkit-transform: translate(0);
1031
- -ms-transform: translate(0);
1032
- transform: translate(0); }
1033
-
1034
- .premium-nav-slide-up.premium-nav-hor:not(.premium-hamburger-menu) .premium-sub-menu,
1035
- .premium-nav-slide-up.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-content-container,
1036
- .premium-nav-slide-up.premium-nav-ver:not(.premium-hamburger-menu) .premium-sub-menu,
1037
- .premium-nav-slide-up.premium-nav-ver:not(.premium-hamburger-menu) .premium-mega-content-container {
1038
- -webkit-transform: translateY(10px);
1039
- -ms-transform: translateY(10px);
1040
- transform: translateY(10px); }
1041
-
1042
- .premium-nav-slide-down.premium-nav-hor:not(.premium-hamburger-menu) .premium-sub-menu,
1043
- .premium-nav-slide-down.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-content-container,
1044
- .premium-nav-slide-down.premium-nav-ver:not(.premium-hamburger-menu) .premium-sub-menu,
1045
- .premium-nav-slide-down.premium-nav-ver:not(.premium-hamburger-menu) .premium-mega-content-container {
1046
- -webkit-transform: translateY(-10px);
1047
- -ms-transform: translateY(-10px);
1048
- transform: translateY(-10px); }
1049
-
1050
- .premium-nav-slide-right.premium-nav-hor:not(.premium-hamburger-menu) .premium-sub-menu,
1051
- .premium-nav-slide-right.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-content-container,
1052
- .premium-nav-slide-right.premium-nav-ver:not(.premium-hamburger-menu) .premium-sub-menu,
1053
- .premium-nav-slide-right.premium-nav-ver:not(.premium-hamburger-menu) .premium-mega-content-container {
1054
- -webkit-transform: translateX(-10px);
1055
- -ms-transform: translateX(-10px);
1056
- transform: translateX(-10px); }
1057
-
1058
- .premium-nav-slide-left.premium-nav-hor:not(.premium-hamburger-menu) .premium-sub-menu,
1059
- .premium-nav-slide-left.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-content-container,
1060
- .premium-nav-slide-left.premium-nav-ver:not(.premium-hamburger-menu) .premium-sub-menu,
1061
- .premium-nav-slide-left.premium-nav-ver:not(.premium-hamburger-menu) .premium-mega-content-container {
1062
- -webkit-transform: translateX(10px);
1063
- -ms-transform: translateX(10px);
1064
- transform: translateX(10px); }
1065
-
1066
- /**Horizontal - Static Mega Content*/
1067
- /*UP*/
1068
- .premium-nav-slide-up.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-item-static .premium-mega-content-container {
1069
- -webkit-transform: translateX(-50%) translateY(10px);
1070
- -ms-transform: translateX(-50%) translateY(10px);
1071
- transform: translateX(-50%) translateY(10px); }
1072
-
1073
- .premium-nav-slide-up.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-item-static:hover .premium-mega-content-container {
1074
- -webkit-transform: translateX(-50%) translateY(0);
1075
- -ms-transform: translateX(-50%) translateY(0);
1076
- transform: translateX(-50%) translateY(0); }
1077
-
1078
- /*DOWN*/
1079
- .premium-nav-slide-down.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-item-static .premium-mega-content-container {
1080
- -webkit-transform: translateX(-50%) translateY(-10px);
1081
- -ms-transform: translateX(-50%) translateY(-10px);
1082
- transform: translateX(-50%) translateY(-10px); }
1083
-
1084
- .premium-nav-slide-down.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-item-static:hover .premium-mega-content-container {
1085
- -webkit-transform: translateX(-50%) translateY(0);
1086
- -ms-transform: translateX(-50%) translateY(0);
1087
- transform: translateX(-50%) translateY(0); }
1088
-
1089
- /*Left*/
1090
- .premium-nav-slide-left.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-item-static .premium-mega-content-container {
1091
- -webkit-transform: translateX(-45%);
1092
- -ms-transform: translateX(-45%);
1093
- transform: translateX(-45%); }
1094
-
1095
- .premium-nav-slide-left.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-item-static:hover .premium-mega-content-container {
1096
- -webkit-transform: translateX(-50%);
1097
- -ms-transform: translateX(-50%);
1098
- transform: translateX(-50%); }
1099
-
1100
- /*Right*/
1101
- .premium-nav-slide-right.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-item-static .premium-mega-content-container {
1102
- -webkit-transform: translateX(-55%);
1103
- -ms-transform: translateX(-55%);
1104
- transform: translateX(-55%); }
1105
-
1106
- .premium-nav-slide-right.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-item-static:hover .premium-mega-content-container {
1107
- -webkit-transform: translateX(-50%);
1108
- -ms-transform: translateX(-50%);
1109
- transform: translateX(-50%); }
1110
-
1111
- /**Vertical - Static Mega Content*/
1112
- .premium-nav-slide-down.premium-nav-ver:not(.premium-hamburger-menu) .premium-mega-item-static:hover .premium-mega-content-container,
1113
- .premium-nav-slide-up.premium-nav-ver:not(.premium-hamburger-menu) .premium-mega-item-static:hover .premium-mega-content-container {
1114
- -webkit-transform: translateY(0);
1115
- -ms-transform: translateY(0);
1116
- transform: translateY(0); }
1117
-
1118
- .premium-nav-slide-right.premium-nav-ver:not(.premium-hamburger-menu) .premium-mega-item-static:hover .premium-mega-content-container,
1119
- .premium-nav-slide-left.premium-nav-ver:not(.premium-hamburger-menu) .premium-mega-item-static:hover .premium-mega-content-container {
1120
- -webkit-transform: translateX(0);
1121
- -ms-transform: translateX(0);
1122
- transform: translateX(0); }
1
+ /************ Premium Nav Menu ************/
2
+ .premium-nav-widget-container ul {
3
+ list-style: none;
4
+ margin: 0;
5
+ padding: 0; }
6
+
7
+ .premium-nav-widget-container .premium-main-nav-menu {
8
+ -js-display: flex;
9
+ display: -webkit-box;
10
+ display: -webkit-flex;
11
+ display: -moz-box;
12
+ display: -ms-flexbox;
13
+ display: flex;
14
+ height: 100%; }
15
+
16
+ /*Vertical Main Menu**/
17
+ .premium-nav-ver .premium-ver-inner-container {
18
+ width: 45%;
19
+ position: relative; }
20
+
21
+ .premium-nav-ver .premium-nav-menu-container,
22
+ .premium-nav-ver .premium-ver-toggler {
23
+ width: 100%; }
24
+
25
+ .premium-nav-ver .premium-nav-menu-container {
26
+ background-color: #fff;
27
+ -webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
28
+ box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1); }
29
+
30
+ .premium-nav-ver .premium-main-nav-menu {
31
+ position: relative;
32
+ -webkit-box-orient: vertical;
33
+ -webkit-box-direction: normal;
34
+ -webkit-flex-direction: column;
35
+ -moz-box-orient: vertical;
36
+ -moz-box-direction: normal;
37
+ -ms-flex-direction: column;
38
+ flex-direction: column;
39
+ -webkit-box-align: start;
40
+ -webkit-align-items: flex-start;
41
+ -moz-box-align: start;
42
+ -ms-flex-align: start;
43
+ align-items: flex-start; }
44
+
45
+ .premium-nav-ver:not(.premium-hamburger-menu) .premium-nav-menu-item.menu-item-has-children .premium-sub-menu {
46
+ visibility: hidden;
47
+ opacity: 0;
48
+ position: absolute;
49
+ min-width: 250px; }
50
+
51
+ .premium-nav-ver:not(.premium-hamburger-menu) .premium-nav-menu-item.menu-item-has-children:hover > .premium-sub-menu,
52
+ .premium-nav-ver:not(.premium-hamburger-menu) .premium-nav-menu-item.menu-item-has-children:hover .premium-mega-content-container {
53
+ opacity: 1;
54
+ visibility: visible; }
55
+
56
+ .premium-nav-ver .premium-nav-menu-item {
57
+ width: 100%; }
58
+
59
+ .premium-nav-ver:not(.premium-hamburger-menu).premium-vertical-right .premium-mega-content-container,
60
+ .premium-nav-ver:not(.premium-hamburger-menu).premium-vertical-right .premium-nav-menu-item.menu-item-has-children .premium-sub-menu {
61
+ left: 100%;
62
+ top: 0; }
63
+
64
+ .premium-nav-ver:not(.premium-hamburger-menu).premium-vertical-left .premium-mega-content-container,
65
+ .premium-nav-ver:not(.premium-hamburger-menu).premium-vertical-left .premium-nav-menu-item.menu-item-has-children .premium-sub-menu {
66
+ right: 100%;
67
+ top: 0; }
68
+
69
+ .premium-nav-ver:not(.premium-hamburger-menu).premium-vertical-left .premium-menu-link {
70
+ -webkit-box-orient: horizontal;
71
+ -webkit-box-direction: reverse;
72
+ -webkit-flex-direction: row-reverse;
73
+ -moz-box-orient: horizontal;
74
+ -moz-box-direction: reverse;
75
+ -ms-flex-direction: row-reverse;
76
+ flex-direction: row-reverse; }
77
+
78
+ /*Horizontal Main Menu**/
79
+ .premium-nav-hor .premium-nav-menu-container {
80
+ height: 60px; }
81
+
82
+ .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item .premium-sub-menu {
83
+ visibility: hidden;
84
+ opacity: 0;
85
+ position: absolute;
86
+ min-width: 220px; }
87
+
88
+ .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item > .premium-sub-menu,
89
+ .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item .premium-mega-content-container {
90
+ top: 100%; }
91
+ .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item > .premium-sub-menu .premium-sub-menu,
92
+ .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item .premium-mega-content-container .premium-sub-menu {
93
+ left: 100%;
94
+ top: 0; }
95
+
96
+ .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item:hover > .premium-sub-menu,
97
+ .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item:hover .premium-mega-content-container {
98
+ visibility: visible;
99
+ opacity: 1;
100
+ pointer-events: auto; }
101
+
102
+ .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item.premium-mega-item-static .premium-mega-content-container {
103
+ left: 50%;
104
+ -webkit-transform: translateX(-50%);
105
+ -ms-transform: translateX(-50%);
106
+ transform: translateX(-50%); }
107
+
108
+ .premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item:not(.premium-mega-item-static) .premium-mega-content-container {
109
+ left: 0; }
110
+
111
+ /**Mega Menu Container*/
112
+ .premium-mega-nav-item .premium-sub-menu {
113
+ display: none; }
114
+
115
+ .premium-mega-nav-item {
116
+ position: relative; }
117
+ .premium-mega-nav-item:hover .premium-mega-content-container {
118
+ visibility: visible;
119
+ opacity: 1;
120
+ pointer-events: auto; }
121
+
122
+ .premium-mega-content-container {
123
+ visibility: hidden;
124
+ position: absolute;
125
+ z-index: 9999;
126
+ opacity: 0;
127
+ pointer-events: none; }
128
+
129
+ .premium-hamburger-menu .premium-mega-content-container,
130
+ .premium-nav-slide .premium-mega-content-container,
131
+ .premium-nav-dropdown .premium-mega-content-container {
132
+ visibility: visible;
133
+ position: relative;
134
+ opacity: 1;
135
+ pointer-events: auto; }
136
+
137
+ /**Hamburger Menu*/
138
+ .premium-nav-widget-container a.premium-hamburger-toggle,
139
+ .premium-mobile-menu-outer-container a.premium-mobile-menu-close {
140
+ text-decoration: none; }
141
+
142
+ .premium-nav-widget-container .premium-hamburger-toggle {
143
+ display: none;
144
+ -webkit-box-pack: center;
145
+ -webkit-justify-content: center;
146
+ -moz-box-pack: center;
147
+ -ms-flex-pack: center;
148
+ justify-content: center;
149
+ -webkit-box-align: center;
150
+ -webkit-align-items: center;
151
+ -moz-box-align: center;
152
+ -ms-flex-align: center;
153
+ align-items: center; }
154
+ .premium-nav-widget-container .premium-hamburger-toggle i {
155
+ padding: 0.25em;
156
+ font-size: 22px; }
157
+ .premium-nav-widget-container .premium-hamburger-toggle svg {
158
+ width: 22px;
159
+ height: 22px; }
160
+ .premium-nav-widget-container .premium-hamburger-toggle i,
161
+ .premium-nav-widget-container .premium-hamburger-toggle .premium-toggle-text,
162
+ .premium-nav-widget-container .premium-hamburger-toggle .premium-toggle-close {
163
+ color: #494c4f; }
164
+ .premium-nav-widget-container .premium-hamburger-toggle svg,
165
+ .premium-nav-widget-container .premium-hamburger-toggle svg path {
166
+ fill: #494c4f; }
167
+ .premium-nav-widget-container .premium-hamburger-toggle .premium-toggle-text,
168
+ .premium-nav-widget-container .premium-hamburger-toggle .premium-toggle-close {
169
+ margin: 2px; }
170
+ .premium-nav-widget-container .premium-hamburger-toggle .premium-toggle-close {
171
+ display: none; }
172
+
173
+ .premium-mobile-menu-container {
174
+ width: 100%; }
175
+ .premium-mobile-menu-container .premium-main-mobile-menu {
176
+ width: 100%; }
177
+ .premium-mobile-menu-container ul {
178
+ list-style: none;
179
+ margin: 0;
180
+ padding: 0; }
181
+ .premium-mobile-menu-container .premium-mobile-menu,
182
+ .premium-mobile-menu-container .premium-sub-menu {
183
+ display: none;
184
+ -webkit-box-orient: vertical;
185
+ -webkit-box-direction: normal;
186
+ -webkit-flex-direction: column;
187
+ -moz-box-orient: vertical;
188
+ -moz-box-direction: normal;
189
+ -ms-flex-direction: column;
190
+ flex-direction: column; }
191
+ .premium-mobile-menu-container .premium-nav-menu-item {
192
+ -webkit-box-orient: vertical;
193
+ -webkit-box-direction: normal;
194
+ -webkit-flex-direction: column;
195
+ -moz-box-orient: vertical;
196
+ -moz-box-direction: normal;
197
+ -ms-flex-direction: column;
198
+ flex-direction: column; }
199
+ .premium-mobile-menu-container .premium-item-badge {
200
+ top: 50%;
201
+ right: 0;
202
+ left: unset;
203
+ -webkit-transform: translateY(-50%);
204
+ -ms-transform: translateY(-50%);
205
+ transform: translateY(-50%); }
206
+
207
+ .premium-nav-hor .premium-mobile-menu-container .premium-item-badge {
208
+ top: 0;
209
+ -webkit-transform: translateY(0);
210
+ -ms-transform: translateY(0);
211
+ transform: translateY(0); }
212
+
213
+ /**Vertical Hamburger Menu*/
214
+ .premium-mobile-menu-outer-container {
215
+ opacity: 0; }
216
+ .premium-mobile-menu-outer-container.premium-vertical-toggle-open {
217
+ opacity: 1; }
218
+
219
+ .premium-ver-hamburger-menu .premium-mobile-menu-outer-container {
220
+ background-color: #f7f7f7;
221
+ width: 300px;
222
+ -webkit-transform: translateX(-300px);
223
+ -ms-transform: translateX(-300px);
224
+ transform: translateX(-300px);
225
+ height: 100%;
226
+ position: fixed;
227
+ top: 0;
228
+ left: 0;
229
+ overflow-x: hidden;
230
+ z-index: 10002;
231
+ -webkit-transition: 0.5s;
232
+ transition: 0.5s;
233
+ padding-top: 50px; }
234
+ .premium-ver-hamburger-menu .premium-mobile-menu-outer-container .premium-mobile-menu {
235
+ -js-display: flex;
236
+ display: -webkit-box;
237
+ display: -webkit-flex;
238
+ display: -moz-box;
239
+ display: -ms-flexbox;
240
+ display: flex; }
241
+ .premium-ver-hamburger-menu .premium-mobile-menu-outer-container .premium-mobile-menu-container {
242
+ margin-top: 50px; }
243
+ .premium-ver-hamburger-menu .premium-mobile-menu-outer-container .premium-mobile-menu-container .premium-item-badge {
244
+ -webkit-transform: translateY(0);
245
+ -ms-transform: translateY(0);
246
+ transform: translateY(0); }
247
+ .premium-ver-hamburger-menu .premium-mobile-menu-outer-container .premium-mobile-menu-close {
248
+ position: absolute;
249
+ top: 2%;
250
+ right: 5px;
251
+ padding: 0 9px;
252
+ z-index: 10000;
253
+ -js-display: inline-flex;
254
+ display: -webkit-inline-box;
255
+ display: -webkit-inline-flex;
256
+ display: -moz-inline-box;
257
+ display: -ms-inline-flexbox;
258
+ display: inline-flex;
259
+ color: #494c4f;
260
+ -webkit-box-pack: center;
261
+ -webkit-justify-content: center;
262
+ -moz-box-pack: center;
263
+ -ms-flex-pack: center;
264
+ justify-content: center;
265
+ -webkit-box-align: center;
266
+ -webkit-align-items: center;
267
+ -moz-box-align: center;
268
+ -ms-flex-align: center;
269
+ align-items: center; }
270
+ .premium-ver-hamburger-menu .premium-mobile-menu-outer-container .premium-mobile-menu-close .premium-toggle-close {
271
+ margin: 5px; }
272
+ .premium-ver-hamburger-menu .premium-mobile-menu-outer-container .premium-mobile-menu-close svg {
273
+ width: 22px;
274
+ height: 22px;
275
+ fill: #494c4f; }
276
+ .premium-ver-hamburger-menu .premium-mobile-menu-outer-container .premium-mobile-menu-close svg path {
277
+ fill: #494c4f; }
278
+ .premium-ver-hamburger-menu .premium-mobile-menu-outer-container .premium-mobile-menu-close i {
279
+ font-size: 22px; }
280
+
281
+ .premium-ver-hamburger-menu .premium-vertical-toggle-open {
282
+ -webkit-transform: translateX(0) !important;
283
+ -ms-transform: translateX(0) !important;
284
+ transform: translateX(0) !important;
285
+ -webkit-transition: 0.5s;
286
+ transition: 0.5s; }
287
+
288
+ /** Vertical Toggler*/
289
+ .premium-ver-toggle-yes .premium-nav-menu-container {
290
+ height: auto; }
291
+
292
+ .premium-ver-toggle-yes .premium-ver-toggler {
293
+ -js-display: flex;
294
+ display: -webkit-box;
295
+ display: -webkit-flex;
296
+ display: -moz-box;
297
+ display: -ms-flexbox;
298
+ display: flex;
299
+ -webkit-box-align: center;
300
+ -webkit-align-items: center;
301
+ -moz-box-align: center;
302
+ -ms-flex-align: center;
303
+ align-items: center;
304
+ -webkit-box-pack: justify;
305
+ -webkit-justify-content: space-between;
306
+ -moz-box-pack: justify;
307
+ -ms-flex-pack: justify;
308
+ justify-content: space-between;
309
+ padding: 15px 20px 15px 20px;
310
+ background: #eeeeee;
311
+ color: #042551;
312
+ cursor: pointer; }
313
+ .premium-ver-toggle-yes .premium-ver-toggler .premium-ver-toggler-title,
314
+ .premium-ver-toggle-yes .premium-ver-toggler .premium-ver-toggler-btn {
315
+ -js-display: flex;
316
+ display: -webkit-box;
317
+ display: -webkit-flex;
318
+ display: -moz-box;
319
+ display: -ms-flexbox;
320
+ display: flex;
321
+ -webkit-box-pack: center;
322
+ -webkit-justify-content: center;
323
+ -moz-box-pack: center;
324
+ -ms-flex-pack: center;
325
+ justify-content: center;
326
+ -webkit-box-align: center;
327
+ -webkit-align-items: center;
328
+ -moz-box-align: center;
329
+ -ms-flex-align: center;
330
+ align-items: center; }
331
+ .premium-ver-toggle-yes .premium-ver-toggler .premium-ver-toggler-txt {
332
+ text-indent: 5px; }
333
+ .premium-ver-toggle-yes .premium-ver-toggler:hover {
334
+ background: #54595f;
335
+ color: #fff; }
336
+ .premium-ver-toggle-yes .premium-ver-toggler:hover .premium-ver-close svg,
337
+ .premium-ver-toggle-yes .premium-ver-toggler:hover .premium-ver-close svg path,
338
+ .premium-ver-toggle-yes .premium-ver-toggler:hover .premium-ver-open svg,
339
+ .premium-ver-toggle-yes .premium-ver-toggler:hover .premium-ver-open svg path,
340
+ .premium-ver-toggle-yes .premium-ver-toggler:hover .premium-ver-title-icon svg,
341
+ .premium-ver-toggle-yes .premium-ver-toggler:hover .premium-ver-title-icon svg path {
342
+ fill: #fff; }
343
+
344
+ .premium-ver-toggle-yes .premium-ver-close,
345
+ .premium-ver-toggle-yes .premium-ver-open,
346
+ .premium-ver-toggle-yes .premium-nav-menu-container,
347
+ .premium-ver-toggle-yes .premium-ver-toggler {
348
+ -webkit-transition: all 0.3s linear 0s;
349
+ transition: all 0.3s linear 0s; }
350
+ .premium-ver-toggle-yes .premium-ver-close i,
351
+ .premium-ver-toggle-yes .premium-ver-close svg,
352
+ .premium-ver-toggle-yes .premium-ver-open i,
353
+ .premium-ver-toggle-yes .premium-ver-open svg,
354
+ .premium-ver-toggle-yes .premium-nav-menu-container i,
355
+ .premium-ver-toggle-yes .premium-nav-menu-container svg,
356
+ .premium-ver-toggle-yes .premium-ver-toggler i,
357
+ .premium-ver-toggle-yes .premium-ver-toggler svg {
358
+ -webkit-transition: color 0.3s linear 0s;
359
+ transition: color 0.3s linear 0s; }
360
+
361
+ .premium-ver-toggle-yes .premium-ver-toggler-txt {
362
+ -webkit-transition: all 0.3s linear 0s;
363
+ transition: all 0.3s linear 0s; }
364
+
365
+ .premium-ver-toggle-yes .premium-ver-close,
366
+ .premium-ver-toggle-yes .premium-ver-open,
367
+ .premium-ver-toggle-yes .premium-ver-title-icon {
368
+ -webkit-box-pack: center;
369
+ -webkit-justify-content: center;
370
+ -moz-box-pack: center;
371
+ -ms-flex-pack: center;
372
+ justify-content: center;
373
+ -webkit-box-align: center;
374
+ -webkit-align-items: center;
375
+ -moz-box-align: center;
376
+ -ms-flex-align: center;
377
+ align-items: center; }
378
+ .premium-ver-toggle-yes .premium-ver-close i,
379
+ .premium-ver-toggle-yes .premium-ver-open i,
380
+ .premium-ver-toggle-yes .premium-ver-title-icon i {
381
+ font-size: 16px; }
382
+ .premium-ver-toggle-yes .premium-ver-close svg,
383
+ .premium-ver-toggle-yes .premium-ver-open svg,
384
+ .premium-ver-toggle-yes .premium-ver-title-icon svg {
385
+ width: 17px;
386
+ height: 17px;
387
+ fill: #042551; }
388
+ .premium-ver-toggle-yes .premium-ver-close svg path,
389
+ .premium-ver-toggle-yes .premium-ver-open svg path,
390
+ .premium-ver-toggle-yes .premium-ver-title-icon svg path {
391
+ fill: #042551; }
392
+
393
+ .premium-ver-toggle-yes.premium-ver-always .premium-ver-open {
394
+ -js-display: inline-flex;
395
+ display: -webkit-inline-box;
396
+ display: -webkit-inline-flex;
397
+ display: -moz-inline-box;
398
+ display: -ms-inline-flexbox;
399
+ display: inline-flex; }
400
+
401
+ .premium-ver-toggle-yes .premium-ver-collapsed .premium-nav-menu-container {
402
+ visibility: hidden;
403
+ opacity: 0; }
404
+
405
+ .premium-ver-toggle-yes .premium-ver-collapsed .premium-ver-close {
406
+ display: none; }
407
+
408
+ .premium-ver-toggle-yes .premium-ver-collapsed .premium-ver-open {
409
+ -js-display: inline-flex;
410
+ display: -webkit-inline-box;
411
+ display: -webkit-inline-flex;
412
+ display: -moz-inline-box;
413
+ display: -ms-inline-flexbox;
414
+ display: inline-flex; }
415
+
416
+ .premium-ver-toggle-yes.premium-ver-hover .premium-nav-menu-container {
417
+ position: absolute;
418
+ z-index: 10002; }
419
+
420
+ .premium-ver-toggle-yes.premium-ver-click .premium-nav-menu-container {
421
+ position: absolute;
422
+ z-index: 10001; }
423
+
424
+ .premium-ver-toggle-yes .premium-nav-menu-container,
425
+ .premium-ver-toggle-yes.premium-ver-hover .premium-ver-inner-container:hover .premium-nav-menu-container {
426
+ visibility: visible;
427
+ opacity: 1; }
428
+
429
+ .premium-ver-toggle-yes .premium-ver-open,
430
+ .premium-ver-toggle-yes.premium-ver-hover .premium-ver-inner-container:hover .premium-ver-open {
431
+ display: none; }
432
+
433
+ .premium-ver-toggle-yes .premium-ver-close,
434
+ .premium-ver-toggle-yes .premium-ver-title-icon,
435
+ .premium-ver-toggle-yes.premium-ver-hover .premium-ver-inner-container:hover .premium-ver-close,
436
+ .premium-ver-toggle-yes.premium-ver-hover .premium-ver-inner-container:hover .premium-ver-title-icon {
437
+ -js-display: inline-flex;
438
+ display: -webkit-inline-box;
439
+ display: -webkit-inline-flex;
440
+ display: -moz-inline-box;
441
+ display: -ms-inline-flexbox;
442
+ display: inline-flex; }
443
+
444
+ /** Sticky Menu */
445
+ .premium-sticky-parent {
446
+ position: fixed;
447
+ z-index: 10003;
448
+ -webkit-transition: all 0.3s linear;
449
+ transition: all 0.3s linear; }
450
+
451
+ .premium-sticky-scroll-yes.premium-sticky-parent.headroom--not-top {
452
+ will-change: transform;
453
+ -webkit-transition: -webkit-transform 500ms linear !important;
454
+ transition: -webkit-transform 500ms linear !important;
455
+ transition: transform 500ms linear !important;
456
+ transition: transform 500ms linear, -webkit-transform 500ms linear !important;
457
+ -webkit-transition-delay: 1s;
458
+ transition-delay: 1s; }
459
+
460
+ .premium-sticky-scroll-yes.premium-sticky-parent.headroom--not-top.slideDown {
461
+ -webkit-transform: translateY(0%);
462
+ -ms-transform: translateY(0%);
463
+ transform: translateY(0%); }
464
+
465
+ .premium-sticky-scroll-yes.premium-sticky-parent.headroom--not-top.slideUp {
466
+ -webkit-transform: translateY(-100%);
467
+ -ms-transform: translateY(-100%);
468
+ transform: translateY(-100%); }
469
+
470
+ .premium-nav-sticky-yes.premium-sticky-active.premium-ham-dropdown .premium-mobile-menu-container,
471
+ .premium-ham-dropdown .premium-stretch-dropdown .premium-mobile-menu-container {
472
+ max-height: 400px;
473
+ overflow-y: auto; }
474
+
475
+ /**Common*/
476
+ .premium-nav-slide-overlay {
477
+ display: none;
478
+ position: fixed;
479
+ top: 0;
480
+ left: 0;
481
+ right: 0;
482
+ bottom: 0;
483
+ -webkit-backface-visibility: hidden;
484
+ backface-visibility: hidden;
485
+ background: rgba(0, 0, 0, 0.6);
486
+ z-index: 10002; }
487
+ .premium-nav-slide-overlay.premium-vertical-toggle-open {
488
+ display: block; }
489
+
490
+ .premium-active-menu,
491
+ .premium-active-menu:not(.premium-mega-nav-item) > .premium-sub-menu,
492
+ .premium-active-menu.premium-mega-nav-item > .premium-mega-content-container {
493
+ -js-display: flex !important;
494
+ display: -webkit-box !important;
495
+ display: -webkit-flex !important;
496
+ display: -moz-box !important;
497
+ display: -ms-flexbox !important;
498
+ display: flex !important;
499
+ -webkit-box-orient: vertical;
500
+ -webkit-box-direction: normal;
501
+ -webkit-flex-direction: column;
502
+ -moz-box-orient: vertical;
503
+ -moz-box-direction: normal;
504
+ -ms-flex-direction: column;
505
+ flex-direction: column; }
506
+
507
+ .premium-active-menu .premium-toggle-close {
508
+ display: block; }
509
+
510
+ .premium-nav-menu-container .premium-sub-menu {
511
+ background-color: #fff; }
512
+
513
+ .premium-mobile-menu-container li,
514
+ .premium-mobile-menu-container li > .premium-mega-content-container {
515
+ width: 100% !important; }
516
+
517
+ .premium-item-icon,
518
+ .premium-sub-item-icon {
519
+ font-size: 13px;
520
+ margin: 0 7px; }
521
+ .premium-item-icon svg,
522
+ .premium-sub-item-icon svg {
523
+ width: 100%;
524
+ height: 100%; }
525
+ .premium-item-icon.premium-lottie-animation,
526
+ .premium-sub-item-icon.premium-lottie-animation {
527
+ width: 20px;
528
+ height: 20px;
529
+ -js-display: flex;
530
+ display: -webkit-box;
531
+ display: -webkit-flex;
532
+ display: -moz-box;
533
+ display: -ms-flexbox;
534
+ display: flex;
535
+ -webkit-box-pack: center;
536
+ -webkit-justify-content: center;
537
+ -moz-box-pack: center;
538
+ -ms-flex-pack: center;
539
+ justify-content: center; }
540
+ .premium-item-icon.dashicons,
541
+ .premium-sub-item-icon.dashicons {
542
+ width: 13px;
543
+ height: 13px; }
544
+
545
+ .premium-nav-menu-item {
546
+ position: relative; }
547
+ .premium-nav-menu-item .premium-menu-link {
548
+ -js-display: flex;
549
+ display: -webkit-box;
550
+ display: -webkit-flex;
551
+ display: -moz-box;
552
+ display: -ms-flexbox;
553
+ display: flex;
554
+ -webkit-box-align: center;
555
+ -webkit-align-items: center;
556
+ -moz-box-align: center;
557
+ -ms-flex-align: center;
558
+ align-items: center;
559
+ height: 100%;
560
+ padding: 7px 10px;
561
+ text-decoration: none;
562
+ position: relative; }
563
+ .premium-nav-menu-item .premium-dropdown-icon {
564
+ margin: 5px; }
565
+ .premium-nav-menu-item.menu-item-has-children {
566
+ position: relative; }
567
+ .premium-nav-menu-item.menu-item-has-children .premium-sub-menu {
568
+ z-index: 9999; }
569
+ .premium-nav-menu-item.menu-item-has-children .premium-sub-menu .premium-sub-menu-link {
570
+ -webkit-box-pack: start;
571
+ -webkit-justify-content: flex-start;
572
+ -moz-box-pack: start;
573
+ -ms-flex-pack: start;
574
+ justify-content: flex-start; }
575
+ .premium-nav-menu-item .menu-link {
576
+ position: relative;
577
+ text-decoration: none; }
578
+
579
+ .premium-item-badge,
580
+ .premium-sub-item-badge {
581
+ position: absolute;
582
+ padding: 1px 6px;
583
+ min-width: 35px;
584
+ text-align: center;
585
+ font-size: 10px;
586
+ -webkit-border-radius: 4px;
587
+ border-radius: 4px;
588
+ line-height: 1.8;
589
+ white-space: nowrap; }
590
+
591
+ .premium-nav-hor:not(.premium-hamburger-menu) .premium-item-badge, .premium-nav-hor:not(.premium-nav-slide) .premium-item-badge, .premium-nav-hor:not(.premium-nav-dropdown) .premium-item-badge {
592
+ position: relative;
593
+ margin: 8px; }
594
+
595
+ .premium-nav-hor .premium-sub-item-badge,
596
+ .premium-nav-slide .premium-sub-item-badge,
597
+ .premium-nav-dropdown .premium-sub-item-badge,
598
+ .premium-nav-ver.premium-vertical-right .premium-item-badge,
599
+ .premium-nav-ver.premium-vertical-right .premium-sub-item-badge {
600
+ top: 50%;
601
+ right: 0;
602
+ -webkit-transform: translateY(-50%);
603
+ -ms-transform: translateY(-50%);
604
+ transform: translateY(-50%); }
605
+
606
+ .premium-nav-ver.premium-vertical-left .premium-item-badge,
607
+ .premium-nav-ver.premium-vertical-left .premium-sub-item-badge {
608
+ top: 50%;
609
+ left: 0;
610
+ -webkit-transform: translateY(-50%);
611
+ -ms-transform: translateY(-50%);
612
+ transform: translateY(-50%); }
613
+
614
+ .premium-mega-nav-item .premium-sub-menu {
615
+ display: none; }
616
+
617
+ .premium-mega-nav-item {
618
+ position: relative; }
619
+
620
+ .premium-hamburger-menu .premium-mega-content-container,
621
+ .premium-nav-dropdown .premium-mega-content-container,
622
+ .premium-nav-slide .premium-mega-content-container {
623
+ display: none; }
624
+
625
+ .premium-mega-item-static {
626
+ position: static !important; }
627
+
628
+ .premium-hamburger-menu .premium-nav-menu-container,
629
+ .premium-nav-dropdown .premium-nav-menu-container,
630
+ .premium-nav-slide .premium-nav-menu-container {
631
+ display: none; }
632
+
633
+ .premium-hamburger-menu .premium-hamburger-toggle,
634
+ .premium-nav-dropdown .premium-hamburger-toggle,
635
+ .premium-nav-slide .premium-hamburger-toggle {
636
+ -js-display: inline-flex;
637
+ display: -webkit-inline-box;
638
+ display: -webkit-inline-flex;
639
+ display: -moz-inline-box;
640
+ display: -ms-inline-flexbox;
641
+ display: inline-flex; }
642
+
643
+ .premium-hidden-icon-yes.premium-hamburger-menu .premium-item-icon,
644
+ .premium-hidden-icon-yes.premium-hamburger-menu .premium-sub-item-icon,
645
+ .premium-hidden-icon-yes.premium-nav-dropdown .premium-item-icon,
646
+ .premium-hidden-icon-yes.premium-nav-dropdown .premium-sub-item-icon,
647
+ .premium-hidden-icon-yes.premium-nav-slide .premium-item-icon,
648
+ .premium-hidden-icon-yes.premium-nav-slide .premium-sub-item-icon {
649
+ display: none; }
650
+
651
+ .premium-hidden-badge-yes.premium-hamburger-menu .premium-item-badge,
652
+ .premium-hidden-badge-yes.premium-hamburger-menu .premium-sub-item-badge,
653
+ .premium-hidden-badge-yes.premium-nav-dropdown .premium-item-badge,
654
+ .premium-hidden-badge-yes.premium-nav-dropdown .premium-sub-item-badge,
655
+ .premium-hidden-badge-yes.premium-nav-slide .premium-item-badge,
656
+ .premium-hidden-badge-yes.premium-nav-slide .premium-sub-item-badge {
657
+ display: none; }
658
+
659
+ .premium-ham-dropdown .premium-mobile-menu-container,
660
+ .premium-nav-dropdown .premium-mobile-menu-container {
661
+ -js-display: flex;
662
+ display: -webkit-box;
663
+ display: -webkit-flex;
664
+ display: -moz-box;
665
+ display: -ms-flexbox;
666
+ display: flex; }
667
+
668
+ .premium-ham-dropdown .premium-toggle-opened .premium-toggle-close,
669
+ .premium-nav-dropdown .premium-toggle-opened .premium-toggle-close {
670
+ display: inline !important; }
671
+
672
+ .premium-ham-dropdown .premium-toggle-opened .premium-toggle-text,
673
+ .premium-nav-dropdown .premium-toggle-opened .premium-toggle-text {
674
+ display: none !important; }
675
+
676
+ .premium-stretch-dropdown .premium-mobile-menu-container {
677
+ position: absolute;
678
+ z-index: 9999; }
679
+
680
+ .premium-nav-default {
681
+ display: none; }
682
+
683
+ .premium-hamburger-toggle {
684
+ width: 100%; }
685
+
686
  /*
687
  * Pointer & Pointer Animations
688
+ */
689
+ .premium-menu-link-parent::before, .premium-menu-link-parent::after {
690
+ display: block;
691
+ position: absolute;
692
+ -webkit-transition: all 0.3s cubic-bezier(0.58, 0.3, 0.005, 1);
693
+ transition: all 0.3s cubic-bezier(0.58, 0.3, 0.005, 1); }
694
+
695
+ .premium-nav-pointer-underline .premium-menu-link-parent::after,
696
+ .premium-nav-pointer-double-line .premium-menu-link-parent::after {
697
+ content: "";
698
+ bottom: 0; }
699
+
700
+ .premium-nav-pointer-overline .premium-menu-link-parent::before,
701
+ .premium-nav-pointer-double-line .premium-menu-link-parent::before {
702
+ content: "";
703
+ top: 0; }
704
+
705
+ .premium-nav-pointer-underline .premium-menu-link-parent::before, .premium-nav-pointer-underline .premium-menu-link-parent::after,
706
+ .premium-nav-pointer-overline .premium-menu-link-parent::before,
707
+ .premium-nav-pointer-overline .premium-menu-link-parent::after,
708
+ .premium-nav-pointer-double-line .premium-menu-link-parent::before,
709
+ .premium-nav-pointer-double-line .premium-menu-link-parent::after {
710
+ height: 3px;
711
+ width: 100%;
712
+ left: 0;
713
+ background-color: #55595c;
714
+ z-index: 2; }
715
+
716
+ .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before, .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after {
717
+ opacity: 0; }
718
+
719
+ .premium-nav-pointer-underline.premium-nav-animation-none,
720
+ .premium-nav-pointer-overline.premium-nav-animation-none,
721
+ .premium-nav-pointer-double-line.premium-nav-animation-none {
722
+ -webkit-transition-duration: 0s;
723
+ transition-duration: 0s; }
724
+ .premium-nav-pointer-underline.premium-nav-animation-none .premium-menu-link-parent,
725
+ .premium-nav-pointer-underline.premium-nav-animation-none .premium-menu-link-parent::before,
726
+ .premium-nav-pointer-underline.premium-nav-animation-none .premium-menu-link-parent::after,
727
+ .premium-nav-pointer-underline.premium-nav-animation-none .premium-menu-link-parent:focus,
728
+ .premium-nav-pointer-underline.premium-nav-animation-none .premium-menu-link-parent:hover,
729
+ .premium-nav-pointer-overline.premium-nav-animation-none .premium-menu-link-parent,
730
+ .premium-nav-pointer-overline.premium-nav-animation-none .premium-menu-link-parent::before,
731
+ .premium-nav-pointer-overline.premium-nav-animation-none .premium-menu-link-parent::after,
732
+ .premium-nav-pointer-overline.premium-nav-animation-none .premium-menu-link-parent:focus,
733
+ .premium-nav-pointer-overline.premium-nav-animation-none .premium-menu-link-parent:hover,
734
+ .premium-nav-pointer-double-line.premium-nav-animation-none .premium-menu-link-parent,
735
+ .premium-nav-pointer-double-line.premium-nav-animation-none .premium-menu-link-parent::before,
736
+ .premium-nav-pointer-double-line.premium-nav-animation-none .premium-menu-link-parent::after,
737
+ .premium-nav-pointer-double-line.premium-nav-animation-none .premium-menu-link-parent:focus,
738
+ .premium-nav-pointer-double-line.premium-nav-animation-none .premium-menu-link-parent:hover {
739
+ -webkit-transition-duration: 0s;
740
+ transition-duration: 0s; }
741
+
742
+ .premium-nav-pointer-underline.premium-nav-animation-slide .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after,
743
+ .premium-nav-pointer-double-line.premium-nav-animation-slide .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after {
744
+ width: 10px;
745
+ inset-inline-start: 100%; }
746
+
747
+ .premium-nav-pointer-overline.premium-nav-animation-slide .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before,
748
+ .premium-nav-pointer-double-line.premium-nav-animation-slide .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
749
+ width: 10px;
750
+ left: -20px; }
751
+
752
+ .premium-nav-pointer-underline.premium-nav-animation-grow .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before, .premium-nav-pointer-underline.premium-nav-animation-grow .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after,
753
+ .premium-nav-pointer-overline.premium-nav-animation-grow .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before,
754
+ .premium-nav-pointer-overline.premium-nav-animation-grow .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after,
755
+ .premium-nav-pointer-double-line.premium-nav-animation-grow .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before,
756
+ .premium-nav-pointer-double-line.premium-nav-animation-grow .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after {
757
+ height: 0;
758
+ width: 0;
759
+ left: 50%; }
760
+
761
+ .premium-nav-pointer-underline.premium-nav-animation-drop-in .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before,
762
+ .premium-nav-pointer-overline.premium-nav-animation-drop-in .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before,
763
+ .premium-nav-pointer-double-line.premium-nav-animation-drop-in .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
764
+ top: -10px; }
765
+
766
+ .premium-nav-pointer-underline.premium-nav-animation-drop-in .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after,
767
+ .premium-nav-pointer-overline.premium-nav-animation-drop-in .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after,
768
+ .premium-nav-pointer-double-line.premium-nav-animation-drop-in .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after {
769
+ bottom: -10px; }
770
+
771
+ .premium-nav-pointer-underline.premium-nav-animation-drop-out .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before,
772
+ .premium-nav-pointer-overline.premium-nav-animation-drop-out .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before,
773
+ .premium-nav-pointer-double-line.premium-nav-animation-drop-out .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
774
+ top: 10px; }
775
+
776
+ .premium-nav-pointer-underline.premium-nav-animation-drop-out .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after,
777
+ .premium-nav-pointer-overline.premium-nav-animation-drop-out .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after,
778
+ .premium-nav-pointer-double-line.premium-nav-animation-drop-out .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::after {
779
+ bottom: 10px; }
780
+
781
+ .premium-nav-pointer-framed .premium-menu-link-parent::before {
782
+ content: ""; }
783
+
784
+ .premium-nav-pointer-framed .premium-menu-link-parent::before, .premium-nav-pointer-framed .premium-menu-link-parent::after {
785
+ background: transparent;
786
+ left: 0;
787
+ top: 0;
788
+ bottom: 0;
789
+ right: 0;
790
+ border: 3px solid #55595c; }
791
+
792
+ .premium-nav-pointer-framed.premium-nav-animation-grow .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
793
+ -webkit-transform: scale(0.75);
794
+ -ms-transform: scale(0.75);
795
+ transform: scale(0.75); }
796
+
797
+ .premium-nav-pointer-framed.premium-nav-animation-shrink .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
798
+ -webkit-transform: scale(1.25);
799
+ -ms-transform: scale(1.25);
800
+ transform: scale(1.25); }
801
+
802
+ .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent::before, .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent::after {
803
+ width: 3px;
804
+ height: 3px; }
805
+
806
+ .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent::before {
807
+ border-width: 0 0 3px 3px;
808
+ -webkit-transition: width 0.1s 0.2s, height 0.1s 0.3s, opacity 0.12s 0.22s;
809
+ transition: width 0.1s 0.2s, height 0.1s 0.3s, opacity 0.12s 0.22s; }
810
+
811
+ .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent::after {
812
+ content: "";
813
+ top: auto;
814
+ bottom: 0;
815
+ left: auto;
816
+ right: 0;
817
+ border-width: 3px 3px 0 0;
818
+ -webkit-transition: width 0.1s, height 0.1s 0.1s, opacity 0.02s 0.18s;
819
+ transition: width 0.1s, height 0.1s 0.1s, opacity 0.02s 0.18s; }
820
+
821
+ .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent:hover::before, .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent:focus::before {
822
+ -webkit-transition: opacity 0.02s, height 0.1s, width 0.1s 0.1s;
823
+ transition: opacity 0.02s, height 0.1s, width 0.1s 0.1s; }
824
+
825
+ .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent:hover::after, .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent:focus::after {
826
+ -webkit-transition: opacity 0.02s 0.2s, height 0.1s 0.2s, width 0.1s 0.3s;
827
+ transition: opacity 0.02s 0.2s, height 0.1s 0.2s, width 0.1s 0.3s; }
828
+
829
+ .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent:hover::before, .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent:hover::after, .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent:focus::before, .premium-nav-pointer-framed.premium-nav-animation-draw .premium-menu-link-parent:focus::after {
830
+ width: 100%;
831
+ height: 100%; }
832
+
833
+ .premium-nav-pointer-framed.premium-nav-animation-draw .premium-active-item .premium-menu-link-parent::before {
834
+ -webkit-transition: opacity 0.02s, height 0.1s, width 0.1s 0.1s;
835
+ transition: opacity 0.02s, height 0.1s, width 0.1s 0.1s; }
836
+
837
+ .premium-nav-pointer-framed.premium-nav-animation-draw .premium-active-item .premium-menu-link-parent::after {
838
+ -webkit-transition: opacity 0.02s 0.2s, height 0.1s 0.2s, width 0.1s 0.3s;
839
+ transition: opacity 0.02s 0.2s, height 0.1s 0.2s, width 0.1s 0.3s; }
840
+
841
+ .premium-nav-pointer-framed.premium-nav-animation-draw .premium-active-item .premium-menu-link-parent::before, .premium-nav-pointer-framed.premium-nav-animation-draw .premium-active-item .premium-menu-link-parent::after {
842
+ width: 100%;
843
+ height: 100%; }
844
+
845
+ .premium-nav-pointer-framed.premium-nav-animation-corners .premium-menu-link-parent::before {
846
+ border-width: 3px 0 0 3px; }
847
+
848
+ .premium-nav-pointer-framed.premium-nav-animation-corners .premium-menu-link-parent::after {
849
+ content: "";
850
+ top: auto;
851
+ bottom: 0;
852
+ left: auto;
853
+ right: 0;
854
+ border-width: 0 3px 3px 0; }
855
+
856
+ .premium-nav-pointer-framed.premium-nav-animation-corners .premium-menu-link-parent::before, .premium-nav-pointer-framed.premium-nav-animation-corners .premium-menu-link-parent::after {
857
+ width: 3px;
858
+ height: 3px; }
859
+
860
+ .premium-nav-pointer-framed.premium-nav-animation-corners .premium-menu-link-parent:hover::before, .premium-nav-pointer-framed.premium-nav-animation-corners .premium-menu-link-parent:hover::after, .premium-nav-pointer-framed.premium-nav-animation-corners .premium-menu-link-parent:focus::before, .premium-nav-pointer-framed.premium-nav-animation-corners .premium-menu-link-parent:focus::after {
861
+ width: 100%;
862
+ height: 100%;
863
+ -webkit-transition: opacity 2ms, width 0.4s, height 0.4s;
864
+ transition: opacity 2ms, width 0.4s, height 0.4s; }
865
+
866
+ .premium-nav-pointer-framed.premium-nav-animation-corners .premium-active-item .premium-menu-link-parent::before, .premium-nav-pointer-framed.premium-nav-animation-corners .premium-active-item .premium-menu-link-parent::after {
867
+ width: 100%;
868
+ height: 100%;
869
+ -webkit-transition: opacity 2ms, width 0.4s, height 0.4s;
870
+ transition: opacity 2ms, width 0.4s, height 0.4s; }
871
+
872
+ .premium-nav-pointer-text.premium-nav-animation-grow .premium-menu-link-parent:hover, .premium-nav-pointer-text.premium-nav-animation-grow .premium-menu-link-parent:focus {
873
+ -webkit-transform: scale(1.2);
874
+ -ms-transform: scale(1.2);
875
+ transform: scale(1.2); }
876
+
877
+ .premium-nav-pointer-text.premium-nav-animation-shrink .premium-menu-link-parent:hover, .premium-nav-pointer-text.premium-nav-animation-shrink .premium-menu-link-parent:focus {
878
+ -webkit-transform: scale(0.8);
879
+ -ms-transform: scale(0.8);
880
+ transform: scale(0.8); }
881
+
882
+ .premium-nav-pointer-text.premium-nav-animation-sink .premium-menu-link-parent:hover, .premium-nav-pointer-text.premium-nav-animation-sink .premium-menu-link-parent:focus {
883
+ -webkit-transform: translateY(8px);
884
+ -ms-transform: translateY(8px);
885
+ transform: translateY(8px); }
886
+
887
+ .premium-nav-pointer-text.premium-nav-animation-float .premium-menu-link-parent:hover, .premium-nav-pointer-text.premium-nav-animation-float .premium-menu-link-parent:focus {
888
+ -webkit-transform: translateY(-8px);
889
+ -ms-transform: translateY(-8px);
890
+ transform: translateY(-8px); }
891
+
892
+ .premium-nav-pointer-text.premium-nav-animation-skew .premium-menu-link-parent:hover, .premium-nav-pointer-text.premium-nav-animation-skew .premium-menu-link-parent:focus {
893
+ -webkit-transform: skew(-8deg);
894
+ -ms-transform: skew(-8deg);
895
+ transform: skew(-8deg); }
896
+
897
+ .premium-nav-pointer-text.premium-nav-animation-rotate .premium-menu-link-parent:hover, .premium-nav-pointer-text.premium-nav-animation-rotate .premium-menu-link-parent:focus {
898
+ -webkit-transform: rotate(6deg);
899
+ -ms-transform: rotate(6deg);
900
+ transform: rotate(6deg); }
901
+
902
+ .premium-nav-pointer-background .premium-menu-link-parent::before {
903
+ top: 0;
904
+ left: 0;
905
+ right: 0;
906
+ bottom: 0;
907
+ background: #55595c;
908
+ background-color: #55595c;
909
+ z-index: -1; }
910
+
911
+ .premium-nav-pointer-background .premium-menu-link-parent::before, .premium-nav-pointer-background .premium-menu-link-parent::after {
912
+ content: "";
913
+ -webkit-transition: 0.3s;
914
+ transition: 0.3s; }
915
+
916
+ .premium-nav-pointer-background.premium-nav-animation-grow .premium-menu-link-parent::before {
917
+ -webkit-transform: scale(0.5);
918
+ -ms-transform: scale(0.5);
919
+ transform: scale(0.5); }
920
+
921
+ .premium-nav-pointer-background.premium-nav-animation-grow .premium-menu-link-parent:hover::before, .premium-nav-pointer-background.premium-nav-animation-grow .premium-menu-link-parent:focus::before {
922
+ -webkit-transform: scale(1);
923
+ -ms-transform: scale(1);
924
+ transform: scale(1); }
925
+
926
+ .premium-nav-pointer-background.premium-nav-animation-grow .premium-active-item .premium-menu-link-parent::before {
927
+ -webkit-transform: scale(1);
928
+ -ms-transform: scale(1);
929
+ transform: scale(1); }
930
+
931
+ .premium-nav-pointer-background.premium-nav-animation-shrink .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
932
+ -webkit-transform: scale(1.2);
933
+ -ms-transform: scale(1.2);
934
+ transform: scale(1.2);
935
+ -webkit-transition: 0.3;
936
+ transition: 0.3; }
937
+
938
+ .premium-nav-pointer-background.premium-nav-animation-sweep-left .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
939
+ left: 100%; }
940
+
941
+ .premium-nav-pointer-background.premium-nav-animation-sweep-right .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
942
+ right: 100%; }
943
+
944
+ .premium-nav-pointer-background.premium-nav-animation-sweep-up .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
945
+ top: 100%; }
946
+
947
+ .premium-nav-pointer-background.premium-nav-animation-sweep-down .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
948
+ bottom: 100%; }
949
+
950
+ .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-menu-link-parent::after, .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-menu-link-parent::after {
951
+ top: 0;
952
+ left: 0;
953
+ right: 0;
954
+ bottom: 0;
955
+ background: #55595c;
956
+ background-color: #55595c;
957
+ z-index: -1; }
958
+
959
+ .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-menu-link-parent::before {
960
+ top: 0;
961
+ bottom: 100%; }
962
+
963
+ .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-menu-link-parent::after {
964
+ top: 100%;
965
+ bottom: 0; }
966
+
967
+ .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-menu-link-parent:hover::before, .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-menu-link-parent:focus::before {
968
+ bottom: 50%; }
969
+
970
+ .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-menu-link-parent:hover::after, .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-menu-link-parent:focus::after {
971
+ top: 50%; }
972
+
973
+ .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-active-item .premium-menu-link-parent::before {
974
+ bottom: 50%; }
975
+
976
+ .premium-nav-pointer-background.premium-nav-animation-shutter-in-vertical .premium-active-item .premium-menu-link-parent::after {
977
+ top: 50%; }
978
+
979
+ .premium-nav-pointer-background.premium-nav-animation-shutter-out-vertical .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
980
+ bottom: 50%;
981
+ top: 50%; }
982
+
983
+ .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-menu-link-parent::before {
984
+ right: 0;
985
+ left: 100%; }
986
+
987
+ .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-menu-link-parent::after {
988
+ right: 100%;
989
+ left: 0; }
990
+
991
+ .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-menu-link-parent:hover::before, .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-menu-link-parent:focus::before {
992
+ left: 50%; }
993
+
994
+ .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-menu-link-parent:hover::after, .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-menu-link-parent:focus::after {
995
+ right: 50%; }
996
+
997
+ .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-active-item .premium-menu-link-parent::before {
998
+ left: 50%; }
999
+
1000
+ .premium-nav-pointer-background.premium-nav-animation-shutter-in-horizontal .premium-active-item .premium-menu-link-parent::after {
1001
+ right: 50%; }
1002
+
1003
+ .premium-nav-pointer-background.premium-nav-animation-shutter-out-horizontal .premium-nav-menu-item:not(.premium-active-item) .premium-menu-link-parent:not(:hover):not(:focus)::before {
1004
+ left: 50%;
1005
+ right: 50%; }
1006
+
1007
+ .premium-active-item::before, .premium-active-item::after,
1008
+ .premium-menu-link-parent:hover::before,
1009
+ .premium-menu-link-parent:hover::after,
1010
+ .premium-menu-link-parent:focus::before,
1011
+ .premium-menu-link-parent:focus::after {
1012
+ -webkit-transform: scale(1);
1013
+ -ms-transform: scale(1);
1014
+ transform: scale(1); }
1015
+
1016
+ /**Sub Menu Animation*/
1017
+ .premium-nav-menu-item .premium-sub-menu,
1018
+ .premium-nav-menu-item .premium-mega-content-container {
1019
+ -webkit-transition: 0.5s all ease-in-out;
1020
+ transition: 0.5s all ease-in-out;
1021
+ -webkit-transition-delay: 0.1s;
1022
+ transition-delay: 0.1s; }
1023
+
1024
+ [class*="premium-nav-slide-"].premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item:hover > .premium-sub-menu,
1025
+ [class*="premium-nav-slide-"].premium-nav-hor:not(.premium-hamburger-menu) .premium-nav-menu-item:hover > .premium-mega-content-container,
1026
+ [class*="premium-nav-slide-"].premium-nav-hor:not(.premium-hamburger-menu) .premium-sub-menu:hover > .premium-sub-menu,
1027
+ [class*="premium-nav-slide-"].premium-nav-ver:not(.premium-hamburger-menu) .premium-nav-menu-item:hover > .premium-sub-menu,
1028
+ [class*="premium-nav-slide-"].premium-nav-ver:not(.premium-hamburger-menu) .premium-nav-menu-item:hover > .premium-mega-content-container,
1029
+ [class*="premium-nav-slide-"].premium-nav-ver:not(.premium-hamburger-menu) .premium-sub-menu:hover > .premium-sub-menu {
1030
+ -webkit-transform: translate(0);
1031
+ -ms-transform: translate(0);
1032
+ transform: translate(0); }
1033
+
1034
+ .premium-nav-slide-up.premium-nav-hor:not(.premium-hamburger-menu) .premium-sub-menu,
1035
+ .premium-nav-slide-up.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-content-container,
1036
+ .premium-nav-slide-up.premium-nav-ver:not(.premium-hamburger-menu) .premium-sub-menu,
1037
+ .premium-nav-slide-up.premium-nav-ver:not(.premium-hamburger-menu) .premium-mega-content-container {
1038
+ -webkit-transform: translateY(10px);
1039
+ -ms-transform: translateY(10px);
1040
+ transform: translateY(10px); }
1041
+
1042
+ .premium-nav-slide-down.premium-nav-hor:not(.premium-hamburger-menu) .premium-sub-menu,
1043
+ .premium-nav-slide-down.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-content-container,
1044
+ .premium-nav-slide-down.premium-nav-ver:not(.premium-hamburger-menu) .premium-sub-menu,
1045
+ .premium-nav-slide-down.premium-nav-ver:not(.premium-hamburger-menu) .premium-mega-content-container {
1046
+ -webkit-transform: translateY(-10px);
1047
+ -ms-transform: translateY(-10px);
1048
+ transform: translateY(-10px); }
1049
+
1050
+ .premium-nav-slide-right.premium-nav-hor:not(.premium-hamburger-menu) .premium-sub-menu,
1051
+ .premium-nav-slide-right.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-content-container,
1052
+ .premium-nav-slide-right.premium-nav-ver:not(.premium-hamburger-menu) .premium-sub-menu,
1053
+ .premium-nav-slide-right.premium-nav-ver:not(.premium-hamburger-menu) .premium-mega-content-container {
1054
+ -webkit-transform: translateX(-10px);
1055
+ -ms-transform: translateX(-10px);
1056
+ transform: translateX(-10px); }
1057
+
1058
+ .premium-nav-slide-left.premium-nav-hor:not(.premium-hamburger-menu) .premium-sub-menu,
1059
+ .premium-nav-slide-left.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-content-container,
1060
+ .premium-nav-slide-left.premium-nav-ver:not(.premium-hamburger-menu) .premium-sub-menu,
1061
+ .premium-nav-slide-left.premium-nav-ver:not(.premium-hamburger-menu) .premium-mega-content-container {
1062
+ -webkit-transform: translateX(10px);
1063
+ -ms-transform: translateX(10px);
1064
+ transform: translateX(10px); }
1065
+
1066
+ /**Horizontal - Static Mega Content*/
1067
+ /*UP*/
1068
+ .premium-nav-slide-up.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-item-static .premium-mega-content-container {
1069
+ -webkit-transform: translateX(-50%) translateY(10px);
1070
+ -ms-transform: translateX(-50%) translateY(10px);
1071
+ transform: translateX(-50%) translateY(10px); }
1072
+
1073
+ .premium-nav-slide-up.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-item-static:hover .premium-mega-content-container {
1074
+ -webkit-transform: translateX(-50%) translateY(0);
1075
+ -ms-transform: translateX(-50%) translateY(0);
1076
+ transform: translateX(-50%) translateY(0); }
1077
+
1078
+ /*DOWN*/
1079
+ .premium-nav-slide-down.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-item-static .premium-mega-content-container {
1080
+ -webkit-transform: translateX(-50%) translateY(-10px);
1081
+ -ms-transform: translateX(-50%) translateY(-10px);
1082
+ transform: translateX(-50%) translateY(-10px); }
1083
+
1084
+ .premium-nav-slide-down.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-item-static:hover .premium-mega-content-container {
1085
+ -webkit-transform: translateX(-50%) translateY(0);
1086
+ -ms-transform: translateX(-50%) translateY(0);
1087
+ transform: translateX(-50%) translateY(0); }
1088
+
1089
+ /*Left*/
1090
+ .premium-nav-slide-left.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-item-static .premium-mega-content-container {
1091
+ -webkit-transform: translateX(-45%);
1092
+ -ms-transform: translateX(-45%);
1093
+ transform: translateX(-45%); }
1094
+
1095
+ .premium-nav-slide-left.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-item-static:hover .premium-mega-content-container {
1096
+ -webkit-transform: translateX(-50%);
1097
+ -ms-transform: translateX(-50%);
1098
+ transform: translateX(-50%); }
1099
+
1100
+ /*Right*/
1101
+ .premium-nav-slide-right.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-item-static .premium-mega-content-container {
1102
+ -webkit-transform: translateX(-55%);
1103
+ -ms-transform: translateX(-55%);
1104
+ transform: translateX(-55%); }
1105
+
1106
+ .premium-nav-slide-right.premium-nav-hor:not(.premium-hamburger-menu) .premium-mega-item-static:hover .premium-mega-content-container {
1107
+ -webkit-transform: translateX(-50%);
1108
+ -ms-transform: translateX(-50%);
1109
+ transform: translateX(-50%); }
1110
+
1111
+ /**Vertical - Static Mega Content*/
1112
+ .premium-nav-slide-down.premium-nav-ver:not(.premium-hamburger-menu) .premium-mega-item-static:hover .premium-mega-content-container,
1113
+ .premium-nav-slide-up.premium-nav-ver:not(.premium-hamburger-menu) .premium-mega-item-static:hover .premium-mega-content-container {
1114
+ -webkit-transform: translateY(0);
1115
+ -ms-transform: translateY(0);
1116
+ transform: translateY(0); }
1117
+
1118
+ .premium-nav-slide-right.premium-nav-ver:not(.premium-hamburger-menu) .premium-mega-item-static:hover .premium-mega-content-container,
1119
+ .premium-nav-slide-left.premium-nav-ver:not(.premium-hamburger-menu) .premium-mega-item-static:hover .premium-mega-content-container {
1120
+ -webkit-transform: translateX(0);
1121
+ -ms-transform: translateX(0);
1122
+ transform: translateX(0); }
assets/frontend/css/premium-pricing-table-rtl.css CHANGED
@@ -1,290 +1,290 @@
1
- /**************** Premium Pricing Table ****************/
2
- /*******************************************************/
3
- .premium-pricing-table-container {
4
- position: relative;
5
- text-align: center;
6
- display: inline-block;
7
- width: 100%;
8
- -webkit-transition: all 0.3s ease-in-out;
9
- transition: all 0.3s ease-in-out;
10
- }
11
-
12
- .premium-pricing-icon-container {
13
- -js-display: flex;
14
- display: -webkit-box;
15
- display: -webkit-flex;
16
- display: -moz-box;
17
- display: -ms-flexbox;
18
- display: flex;
19
- -webkit-box-pack: center;
20
- -webkit-justify-content: center;
21
- -moz-box-pack: center;
22
- -ms-flex-pack: center;
23
- justify-content: center;
24
- line-height: 0;
25
- }
26
-
27
- .premium-pricing-icon-container .premium-pricing-icon {
28
- display: inline-block;
29
- }
30
-
31
- .premium-pricing-icon-container .premium-pricing-image {
32
- overflow: hidden;
33
- }
34
-
35
- .premium-pricing-icon-container .premium-pricing-image img {
36
- width: 25px;
37
- height: 25px;
38
- -o-object-fit: cover;
39
- object-fit: cover;
40
- }
41
-
42
- .premium-badge-left {
43
- position: absolute;
44
- top: 0;
45
- }
46
-
47
- .premium-badge-right {
48
- position: absolute;
49
- top: 0;
50
- right: 0;
51
- }
52
-
53
- .premium-badge-left {
54
- left: 0;
55
- }
56
-
57
- .premium-badge-triangle.premium-badge-left .corner {
58
- width: 0;
59
- height: 0;
60
- border-top: 150px solid;
61
- border-bottom: 150px solid transparent;
62
- border-right: 150px solid transparent;
63
- }
64
-
65
- .premium-badge-triangle.premium-badge-right .corner {
66
- width: 0;
67
- height: 0;
68
- border-bottom: 150px solid transparent;
69
- border-right: 150px solid;
70
- border-left: 150px solid transparent;
71
- }
72
-
73
- .premium-badge-triangle span {
74
- position: absolute;
75
- top: 35px;
76
- width: 100px;
77
- text-align: center;
78
- -webkit-transform: rotate(-45deg);
79
- -ms-transform: rotate(-45deg);
80
- transform: rotate(-45deg);
81
- display: block;
82
- text-transform: uppercase;
83
- }
84
-
85
- .premium-badge-triangle.premium-badge-right span {
86
- -webkit-transform: rotate(45deg);
87
- -ms-transform: rotate(45deg);
88
- transform: rotate(45deg);
89
- right: 0;
90
- }
91
-
92
- .premium-badge-circle {
93
- min-width: 4em;
94
- min-height: 4em;
95
- line-height: 4em;
96
- text-align: center;
97
- -webkit-border-radius: 100%;
98
- border-radius: 100%;
99
- position: absolute;
100
- z-index: 1;
101
- }
102
-
103
- .premium-badge-stripe {
104
- position: absolute;
105
- -webkit-transform: rotate(90deg);
106
- -ms-transform: rotate(90deg);
107
- transform: rotate(90deg);
108
- width: 15em;
109
- overflow: hidden;
110
- height: 15em;
111
- }
112
-
113
- .premium-badge-stripe.premium-badge-left {
114
- -webkit-transform: rotate(0);
115
- -ms-transform: rotate(0);
116
- transform: rotate(0);
117
- }
118
-
119
- .premium-badge-stripe .corner {
120
- text-align: center;
121
- left: 0;
122
- width: 150%;
123
- -webkit-transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
124
- -ms-transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
125
- transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
126
- margin-top: 35px;
127
- font-size: 13px;
128
- line-height: 2;
129
- font-weight: 800;
130
- text-transform: uppercase;
131
- }
132
-
133
- .premium-badge-flag .corner {
134
- text-align: center;
135
- -webkit-border-radius: 4px 4px 0 4px;
136
- border-radius: 4px 4px 0 4px;
137
- padding: 3px 15px;
138
- position: absolute;
139
- top: 10%;
140
- right: -8px;
141
- }
142
-
143
- .premium-badge-flag .corner::before,
144
- .premium-badge-flag .corner::after {
145
- content: "";
146
- display: block;
147
- position: absolute;
148
- width: 0;
149
- height: 0;
150
- top: 100%;
151
- right: 0;
152
- border-bottom: 8px solid transparent;
153
- }
154
-
155
- .elementor-widget-premium-addon-pricing-table .elementor-widget-container {
156
- overflow: visible !important;
157
- }
158
-
159
- .premium-badge-flag .corner::after {
160
- border-left: 8px solid rgba(0, 0, 0, 0.2);
161
- }
162
-
163
- .premium-pricing-price-currency {
164
- position: relative;
165
- }
166
-
167
- .premium-pricing-button-container {
168
- display: block;
169
- }
170
-
171
- .premium-pricing-list {
172
- -js-display: flex;
173
- display: -webkit-box;
174
- display: -webkit-flex;
175
- display: -moz-box;
176
- display: -ms-flexbox;
177
- display: flex;
178
- -webkit-box-orient: vertical;
179
- -webkit-box-direction: normal;
180
- -webkit-flex-direction: column;
181
- -moz-box-orient: vertical;
182
- -moz-box-direction: normal;
183
- -ms-flex-direction: column;
184
- flex-direction: column;
185
- list-style-type: none;
186
- margin: 0;
187
- }
188
-
189
- .premium-pricing-list .premium-pricing-list-item {
190
- -js-display: flex;
191
- display: -webkit-box;
192
- display: -webkit-flex;
193
- display: -moz-box;
194
- display: -ms-flexbox;
195
- display: flex;
196
- -webkit-box-align: center;
197
- -webkit-align-items: center;
198
- -moz-box-align: center;
199
- -ms-flex-align: center;
200
- align-items: center;
201
- }
202
-
203
- .premium-pricing-list .premium-pricing-list-item svg {
204
- width: 50px;
205
- height: 50px;
206
- }
207
-
208
- .premium-pricing-list .premium-pricing-list-item img {
209
- width: 30px;
210
- height: 30px;
211
- -o-object-fit: cover;
212
- object-fit: cover;
213
- }
214
-
215
- .premium-pricing-list .premium-pricing-list-span {
216
- position: relative;
217
- }
218
-
219
- .premium-pricing-list .list-item-tooltip {
220
- border-bottom: 1px dotted;
221
- }
222
-
223
- .premium-pricing-list .premium-pricing-list-tooltip {
224
- position: absolute;
225
- top: -webkit-calc(100% + 1px);
226
- top: calc(100% + 1px);
227
- right: 0;
228
- visibility: hidden;
229
- padding: 15px 20px;
230
- -webkit-border-radius: 5px;
231
- border-radius: 5px;
232
- min-width: 200px;
233
- overflow: hidden;
234
- text-align: right;
235
- font-size: 0.8rem;
236
- color: #fff;
237
- background-color: #aaa;
238
- }
239
-
240
- .premium-pricing-features-left .premium-pricing-list-span {
241
- text-align: right;
242
- }
243
-
244
- .premium-pricing-features-center .premium-pricing-list-span {
245
- text-align: center;
246
- }
247
-
248
- .premium-pricing-features-right .premium-pricing-list-span {
249
- text-align: left;
250
- }
251
-
252
- .premium-pricing-list-span:hover .premium-pricing-list-tooltip {
253
- z-index: 99;
254
- visibility: visible;
255
- opacity: 1;
256
- }
257
-
258
- .premium-pricing-slashed-price-value {
259
- display: inline-block;
260
- font-size: 20px;
261
- font-weight: 400;
262
- margin-left: 5px;
263
- }
264
-
265
- .premium-pricing-price-value {
266
- font-size: 70px;
267
- }
268
-
269
- .premium-pricing-description-container li {
270
- list-style-position: inside;
271
- text-indent: -40px;
272
- }
273
-
274
- @-moz-document url-prefix() {
275
- .premium-pricing-description-container li {
276
- text-indent: 0px;
277
- }
278
- }
279
-
280
- .premium-pricing-price-button {
281
- display: block;
282
- padding: 6px 12px;
283
- line-height: 1.42857143;
284
- text-align: center;
285
- color: #fff;
286
- background: #6ec1e4;
287
- margin-bottom: 0;
288
- -webkit-transition: all 0.3s ease-in-out;
289
- transition: all 0.3s ease-in-out;
290
  }
1
+ /**************** Premium Pricing Table ****************/
2
+ /*******************************************************/
3
+ .premium-pricing-table-container {
4
+ position: relative;
5
+ text-align: center;
6
+ display: inline-block;
7
+ width: 100%;
8
+ -webkit-transition: all 0.3s ease-in-out;
9
+ transition: all 0.3s ease-in-out;
10
+ }
11
+
12
+ .premium-pricing-icon-container {
13
+ -js-display: flex;
14
+ display: -webkit-box;
15
+ display: -webkit-flex;
16
+ display: -moz-box;
17
+ display: -ms-flexbox;
18
+ display: flex;
19
+ -webkit-box-pack: center;
20
+ -webkit-justify-content: center;
21
+ -moz-box-pack: center;
22
+ -ms-flex-pack: center;
23
+ justify-content: center;
24
+ line-height: 0;
25
+ }
26
+
27
+ .premium-pricing-icon-container .premium-pricing-icon {
28
+ display: inline-block;
29
+ }
30
+
31
+ .premium-pricing-icon-container .premium-pricing-image {
32
+ overflow: hidden;
33
+ }
34
+
35
+ .premium-pricing-icon-container .premium-pricing-image img {
36
+ width: 25px;
37
+ height: 25px;
38
+ -o-object-fit: cover;
39
+ object-fit: cover;
40
+ }
41
+
42
+ .premium-badge-left {
43
+ position: absolute;
44
+ top: 0;
45
+ }
46
+
47
+ .premium-badge-right {
48
+ position: absolute;
49
+ top: 0;
50
+ right: 0;
51
+ }
52
+
53
+ .premium-badge-left {
54
+ left: 0;
55
+ }
56
+
57
+ .premium-badge-triangle.premium-badge-left .corner {
58
+ width: 0;
59
+ height: 0;
60
+ border-top: 150px solid;
61
+ border-bottom: 150px solid transparent;
62
+ border-right: 150px solid transparent;
63
+ }
64
+
65
+ .premium-badge-triangle.premium-badge-right .corner {
66
+ width: 0;
67
+ height: 0;
68
+ border-bottom: 150px solid transparent;
69
+ border-right: 150px solid;
70
+ border-left: 150px solid transparent;
71
+ }
72
+
73
+ .premium-badge-triangle span {
74
+ position: absolute;
75
+ top: 35px;
76
+ width: 100px;
77
+ text-align: center;
78
+ -webkit-transform: rotate(-45deg);
79
+ -ms-transform: rotate(-45deg);
80
+ transform: rotate(-45deg);
81
+ display: block;
82
+ text-transform: uppercase;
83
+ }
84
+
85
+ .premium-badge-triangle.premium-badge-right span {
86
+ -webkit-transform: rotate(45deg);
87
+ -ms-transform: rotate(45deg);
88
+ transform: rotate(45deg);
89
+ right: 0;
90
+ }
91
+
92
+ .premium-badge-circle {
93
+ min-width: 4em;
94
+ min-height: 4em;
95
+ line-height: 4em;
96
+ text-align: center;
97
+ -webkit-border-radius: 100%;
98
+ border-radius: 100%;
99
+ position: absolute;
100
+ z-index: 1;
101
+ }
102
+
103
+ .premium-badge-stripe {
104
+ position: absolute;
105
+ -webkit-transform: rotate(90deg);
106
+ -ms-transform: rotate(90deg);
107
+ transform: rotate(90deg);
108
+ width: 15em;
109
+ overflow: hidden;
110
+ height: 15em;
111
+ }
112
+
113
+ .premium-badge-stripe.premium-badge-left {
114
+ -webkit-transform: rotate(0);
115
+ -ms-transform: rotate(0);
116
+ transform: rotate(0);
117
+ }
118
+
119
+ .premium-badge-stripe .corner {
120
+ text-align: center;
121
+ left: 0;
122
+ width: 150%;
123
+ -webkit-transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
124
+ -ms-transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
125
+ transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
126
+ margin-top: 35px;
127
+ font-size: 13px;
128
+ line-height: 2;
129
+ font-weight: 800;
130
+ text-transform: uppercase;
131
+ }
132
+
133
+ .premium-badge-flag .corner {
134
+ text-align: center;
135
+ -webkit-border-radius: 4px 4px 0 4px;
136
+ border-radius: 4px 4px 0 4px;
137
+ padding: 3px 15px;
138
+ position: absolute;
139
+ top: 10%;
140
+ right: -8px;
141
+ }
142
+
143
+ .premium-badge-flag .corner::before,
144
+ .premium-badge-flag .corner::after {
145
+ content: "";
146
+ display: block;
147
+ position: absolute;
148
+ width: 0;
149
+ height: 0;
150
+ top: 100%;
151
+ right: 0;
152
+ border-bottom: 8px solid transparent;
153
+ }
154
+
155
+ .elementor-widget-premium-addon-pricing-table .elementor-widget-container {
156
+ overflow: visible !important;
157
+ }
158
+
159
+ .premium-badge-flag .corner::after {
160
+ border-left: 8px solid rgba(0, 0, 0, 0.2);
161
+ }
162
+
163
+ .premium-pricing-price-currency {
164
+ position: relative;
165
+ }
166
+
167
+ .premium-pricing-button-container {
168
+ display: block;
169
+ }
170
+
171
+ .premium-pricing-list {
172
+ -js-display: flex;
173
+ display: -webkit-box;
174
+ display: -webkit-flex;
175
+ display: -moz-box;
176
+ display: -ms-flexbox;
177
+ display: flex;
178
+ -webkit-box-orient: vertical;
179
+ -webkit-box-direction: normal;
180
+ -webkit-flex-direction: column;
181
+ -moz-box-orient: vertical;
182
+ -moz-box-direction: normal;
183
+ -ms-flex-direction: column;
184
+ flex-direction: column;
185
+ list-style-type: none;
186
+ margin: 0;
187
+ }
188
+
189
+ .premium-pricing-list .premium-pricing-list-item {
190
+ -js-display: flex;
191
+ display: -webkit-box;
192
+ display: -webkit-flex;
193
+ display: -moz-box;
194
+ display: -ms-flexbox;
195
+ display: flex;
196
+ -webkit-box-align: center;
197
+ -webkit-align-items: center;
198
+ -moz-box-align: center;
199
+ -ms-flex-align: center;
200
+ align-items: center;
201
+ }
202
+
203
+ .premium-pricing-list .premium-pricing-list-item svg {
204
+ width: 50px;
205
+ height: 50px;
206
+ }
207
+
208
+ .premium-pricing-list .premium-pricing-list-item img {
209
+ width: 30px;
210
+ height: 30px;
211
+ -o-object-fit: cover;
212
+ object-fit: cover;
213
+ }
214
+
215
+ .premium-pricing-list .premium-pricing-list-span {
216
+ position: relative;
217
+ }
218
+
219
+ .premium-pricing-list .list-item-tooltip {
220
+ border-bottom: 1px dotted;
221
+ }
222
+
223
+ .premium-pricing-list .premium-pricing-list-tooltip {
224
+ position: absolute;
225
+ top: -webkit-calc(100% + 1px);
226
+ top: calc(100% + 1px);
227
+ right: 0;
228
+ visibility: hidden;
229
+ padding: 15px 20px;
230
+ -webkit-border-radius: 5px;
231
+ border-radius: 5px;
232
+ min-width: 200px;
233
+ overflow: hidden;
234
+ text-align: right;
235
+ font-size: 0.8rem;
236
+ color: #fff;
237
+ background-color: #aaa;
238
+ }
239
+
240
+ .premium-pricing-features-left .premium-pricing-list-span {
241
+ text-align: right;
242
+ }
243
+
244
+ .premium-pricing-features-center .premium-pricing-list-span {
245
+ text-align: center;
246
+ }
247
+
248
+ .premium-pricing-features-right .premium-pricing-list-span {
249
+ text-align: left;
250
+ }
251
+
252
+ .premium-pricing-list-span:hover .premium-pricing-list-tooltip {
253
+ z-index: 99;
254
+ visibility: visible;
255
+ opacity: 1;
256
+ }
257
+
258
+ .premium-pricing-slashed-price-value {
259
+ display: inline-block;
260
+ font-size: 20px;
261
+ font-weight: 400;
262
+ margin-left: 5px;
263
+ }
264
+
265
+ .premium-pricing-price-value {
266
+ font-size: 70px;
267
+ }
268
+
269
+ .premium-pricing-description-container li {
270
+ list-style-position: inside;
271
+ text-indent: -40px;
272
+ }
273
+
274
+ @-moz-document url-prefix() {
275
+ .premium-pricing-description-container li {
276
+ text-indent: 0px;
277
+ }
278
+ }
279
+
280
+ .premium-pricing-price-button {
281
+ display: block;
282
+ padding: 6px 12px;
283
+ line-height: 1.42857143;
284
+ text-align: center;
285
+ color: #fff;
286
+ background: #6ec1e4;
287
+ margin-bottom: 0;
288
+ -webkit-transition: all 0.3s ease-in-out;
289
+ transition: all 0.3s ease-in-out;
290
  }
assets/frontend/css/premium-pricing-table.css CHANGED
@@ -1,238 +1,238 @@
1
- /**************** Premium Pricing Table ****************/
2
- /*******************************************************/
3
- .premium-pricing-table-container {
4
- position: relative;
5
- text-align: center;
6
- display: inline-block;
7
- width: 100%;
8
- -webkit-transition: all 0.3s ease-in-out;
9
- transition: all 0.3s ease-in-out; }
10
-
11
- .premium-pricing-icon-container {
12
- -js-display: flex;
13
- display: -webkit-box;
14
- display: -webkit-flex;
15
- display: -moz-box;
16
- display: -ms-flexbox;
17
- display: flex;
18
- -webkit-box-pack: center;
19
- -webkit-justify-content: center;
20
- -moz-box-pack: center;
21
- -ms-flex-pack: center;
22
- justify-content: center;
23
- line-height: 0; }
24
- .premium-pricing-icon-container .premium-pricing-icon {
25
- display: inline-block; }
26
- .premium-pricing-icon-container .premium-pricing-image {
27
- overflow: hidden; }
28
- .premium-pricing-icon-container .premium-pricing-image img {
29
- width: 25px;
30
- height: 25px;
31
- -o-object-fit: cover;
32
- object-fit: cover; }
33
-
34
- .premium-badge-left {
35
- position: absolute;
36
- top: 0; }
37
-
38
- .premium-badge-right {
39
- position: absolute;
40
- top: 0;
41
- right: 0; }
42
-
43
- .premium-badge-left {
44
- left: 0; }
45
-
46
- .premium-badge-triangle.premium-badge-left .corner {
47
- width: 0;
48
- height: 0;
49
- border-top: 150px solid;
50
- border-bottom: 150px solid transparent;
51
- border-right: 150px solid transparent; }
52
-
53
- .premium-badge-triangle.premium-badge-right .corner {
54
- width: 0;
55
- height: 0;
56
- border-bottom: 150px solid transparent;
57
- border-right: 150px solid;
58
- border-left: 150px solid transparent; }
59
-
60
- .premium-badge-triangle span {
61
- position: absolute;
62
- top: 35px;
63
- width: 100px;
64
- text-align: center;
65
- -webkit-transform: rotate(-45deg);
66
- -ms-transform: rotate(-45deg);
67
- transform: rotate(-45deg);
68
- display: block;
69
- text-transform: uppercase; }
70
-
71
- .premium-badge-triangle.premium-badge-right span {
72
- -webkit-transform: rotate(45deg);
73
- -ms-transform: rotate(45deg);
74
- transform: rotate(45deg);
75
- right: 0; }
76
-
77
- .premium-badge-circle {
78
- min-width: 4em;
79
- min-height: 4em;
80
- line-height: 4em;
81
- text-align: center;
82
- -webkit-border-radius: 100%;
83
- border-radius: 100%;
84
- position: absolute;
85
- z-index: 1; }
86
-
87
- .premium-badge-stripe {
88
- position: absolute;
89
- -webkit-transform: rotate(90deg);
90
- -ms-transform: rotate(90deg);
91
- transform: rotate(90deg);
92
- width: 15em;
93
- overflow: hidden;
94
- height: 15em; }
95
- .premium-badge-stripe.premium-badge-left {
96
- -webkit-transform: rotate(0);
97
- -ms-transform: rotate(0);
98
- transform: rotate(0); }
99
- .premium-badge-stripe .corner {
100
- text-align: center;
101
- left: 0;
102
- width: 150%;
103
- -webkit-transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
104
- -ms-transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
105
- transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
106
- margin-top: 35px;
107
- font-size: 13px;
108
- line-height: 2;
109
- font-weight: 800;
110
- text-transform: uppercase; }
111
-
112
- .premium-badge-flag .corner {
113
- text-align: center;
114
- -webkit-border-radius: 4px 4px 0 4px;
115
- border-radius: 4px 4px 0 4px;
116
- padding: 3px 15px;
117
- position: absolute;
118
- top: 10%;
119
- right: -8px; }
120
- .premium-badge-flag .corner::before, .premium-badge-flag .corner::after {
121
- content: "";
122
- display: block;
123
- position: absolute;
124
- width: 0;
125
- height: 0;
126
- top: 100%;
127
- right: 0;
128
- border-bottom: 8px solid transparent; }
129
-
130
- .elementor-widget-premium-addon-pricing-table .elementor-widget-container {
131
- overflow: visible !important; }
132
-
133
- .premium-badge-flag .corner::after {
134
- border-left: 8px solid rgba(0, 0, 0, 0.2); }
135
-
136
- .premium-pricing-price-currency {
137
- position: relative; }
138
-
139
- .premium-pricing-button-container {
140
- display: block; }
141
-
142
- .premium-pricing-list {
143
- -js-display: flex;
144
- display: -webkit-box;
145
- display: -webkit-flex;
146
- display: -moz-box;
147
- display: -ms-flexbox;
148
- display: flex;
149
- -webkit-box-orient: vertical;
150
- -webkit-box-direction: normal;
151
- -webkit-flex-direction: column;
152
- -moz-box-orient: vertical;
153
- -moz-box-direction: normal;
154
- -ms-flex-direction: column;
155
- flex-direction: column;
156
- list-style-type: none;
157
- margin: 0; }
158
- .premium-pricing-list .premium-pricing-list-item {
159
- -js-display: flex;
160
- display: -webkit-box;
161
- display: -webkit-flex;
162
- display: -moz-box;
163
- display: -ms-flexbox;
164
- display: flex;
165
- -webkit-box-align: center;
166
- -webkit-align-items: center;
167
- -moz-box-align: center;
168
- -ms-flex-align: center;
169
- align-items: center; }
170
- .premium-pricing-list .premium-pricing-list-item svg {
171
- width: 50px;
172
- height: 50px; }
173
- .premium-pricing-list .premium-pricing-list-item img {
174
- width: 30px;
175
- height: 30px;
176
- -o-object-fit: cover;
177
- object-fit: cover; }
178
- .premium-pricing-list .premium-pricing-list-span {
179
- position: relative; }
180
- .premium-pricing-list .list-item-tooltip {
181
- border-bottom: 1px dotted; }
182
- .premium-pricing-list .premium-pricing-list-tooltip {
183
- position: absolute;
184
- top: -webkit-calc(100% + 1px);
185
- top: calc(100% + 1px);
186
- left: 0;
187
- visibility: hidden;
188
- padding: 15px 20px;
189
- -webkit-border-radius: 5px;
190
- border-radius: 5px;
191
- min-width: 200px;
192
- overflow: hidden;
193
- text-align: left;
194
- font-size: 0.8rem;
195
- color: #fff;
196
- background-color: #aaa; }
197
-
198
- .premium-pricing-features-left .premium-pricing-list-span {
199
- text-align: left; }
200
-
201
- .premium-pricing-features-center .premium-pricing-list-span {
202
- text-align: center; }
203
-
204
- .premium-pricing-features-right .premium-pricing-list-span {
205
- text-align: right; }
206
-
207
- .premium-pricing-list-span:hover .premium-pricing-list-tooltip {
208
- z-index: 99;
209
- visibility: visible;
210
- opacity: 1; }
211
-
212
- .premium-pricing-slashed-price-value {
213
- display: inline-block;
214
- font-size: 20px;
215
- font-weight: 400;
216
- margin-right: 5px; }
217
-
218
- .premium-pricing-price-value {
219
- font-size: 70px; }
220
-
221
- .premium-pricing-description-container li {
222
- list-style-position: inside;
223
- text-indent: -40px; }
224
-
225
- @-moz-document url-prefix() {
226
- .premium-pricing-description-container li {
227
- text-indent: 0px; } }
228
-
229
- .premium-pricing-price-button {
230
- display: block;
231
- padding: 6px 12px;
232
- line-height: 1.42857143;
233
- text-align: center;
234
- color: #fff;
235
- background: #6ec1e4;
236
- margin-bottom: 0;
237
- -webkit-transition: all 0.3s ease-in-out;
238
- transition: all 0.3s ease-in-out; }
1
+ /**************** Premium Pricing Table ****************/
2
+ /*******************************************************/
3
+ .premium-pricing-table-container {
4
+ position: relative;
5
+ text-align: center;
6
+ display: inline-block;
7
+ width: 100%;
8
+ -webkit-transition: all 0.3s ease-in-out;
9
+ transition: all 0.3s ease-in-out; }
10
+
11
+ .premium-pricing-icon-container {
12
+ -js-display: flex;
13
+ display: -webkit-box;
14
+ display: -webkit-flex;
15
+ display: -moz-box;
16
+ display: -ms-flexbox;
17
+ display: flex;
18
+ -webkit-box-pack: center;
19
+ -webkit-justify-content: center;
20
+ -moz-box-pack: center;
21
+ -ms-flex-pack: center;
22
+ justify-content: center;
23
+ line-height: 0; }
24
+ .premium-pricing-icon-container .premium-pricing-icon {
25
+ display: inline-block; }
26
+ .premium-pricing-icon-container .premium-pricing-image {
27
+ overflow: hidden; }
28
+ .premium-pricing-icon-container .premium-pricing-image img {
29
+ width: 25px;
30
+ height: 25px;
31
+ -o-object-fit: cover;
32
+ object-fit: cover; }
33
+
34
+ .premium-badge-left {
35
+ position: absolute;
36
+ top: 0; }
37
+
38
+ .premium-badge-right {
39
+ position: absolute;
40
+ top: 0;
41
+ right: 0; }
42
+
43
+ .premium-badge-left {
44
+ left: 0; }
45
+
46
+ .premium-badge-triangle.premium-badge-left .corner {
47
+ width: 0;
48
+ height: 0;
49
+ border-top: 150px solid;
50
+ border-bottom: 150px solid transparent;
51
+ border-right: 150px solid transparent; }
52
+
53
+ .premium-badge-triangle.premium-badge-right .corner {
54
+ width: 0;
55
+ height: 0;
56
+ border-bottom: 150px solid transparent;
57
+ border-right: 150px solid;
58
+ border-left: 150px solid transparent; }
59
+
60
+ .premium-badge-triangle span {
61
+ position: absolute;
62
+ top: 35px;
63
+ width: 100px;
64
+ text-align: center;
65
+ -webkit-transform: rotate(-45deg);
66
+ -ms-transform: rotate(-45deg);
67
+ transform: rotate(-45deg);
68
+ display: block;
69
+ text-transform: uppercase; }
70
+
71
+ .premium-badge-triangle.premium-badge-right span {
72
+ -webkit-transform: rotate(45deg);
73
+ -ms-transform: rotate(45deg);
74
+ transform: rotate(45deg);
75
+ right: 0; }
76
+
77
+ .premium-badge-circle {
78
+ min-width: 4em;
79
+ min-height: 4em;
80
+ line-height: 4em;
81
+ text-align: center;
82
+ -webkit-border-radius: 100%;
83
+ border-radius: 100%;
84
+ position: absolute;
85
+ z-index: 1; }
86
+
87
+ .premium-badge-stripe {
88
+ position: absolute;
89
+ -webkit-transform: rotate(90deg);
90
+ -ms-transform: rotate(90deg);
91
+ transform: rotate(90deg);
92
+ width: 15em;
93
+ overflow: hidden;
94
+ height: 15em; }
95
+ .premium-badge-stripe.premium-badge-left {
96
+ -webkit-transform: rotate(0);
97
+ -ms-transform: rotate(0);
98
+ transform: rotate(0); }
99
+ .premium-badge-stripe .corner {
100
+ text-align: center;
101
+ left: 0;
102
+ width: 150%;
103
+ -webkit-transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
104
+ -ms-transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
105
+ transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
106
+ margin-top: 35px;
107
+ font-size: 13px;
108
+ line-height: 2;
109
+ font-weight: 800;
110
+ text-transform: uppercase; }
111
+
112
+ .premium-badge-flag .corner {
113
+ text-align: center;
114
+ -webkit-border-radius: 4px 4px 0 4px;
115
+ border-radius: 4px 4px 0 4px;
116
+ padding: 3px 15px;
117
+ position: absolute;
118
+ top: 10%;
119
+ right: -8px; }
120
+ .premium-badge-flag .corner::before, .premium-badge-flag .corner::after {
121
+ content: "";
122
+ display: block;
123
+ position: absolute;
124
+ width: 0;
125
+ height: 0;
126
+ top: 100%;
127
+ right: 0;
128
+ border-bottom: 8px solid transparent; }
129
+
130
+ .elementor-widget-premium-addon-pricing-table .elementor-widget-container {
131
+ overflow: visible !important; }
132
+
133
+ .premium-badge-flag .corner::after {
134
+ border-left: 8px solid rgba(0, 0, 0, 0.2); }
135
+
136
+ .premium-pricing-price-currency {
137
+ position: relative; }
138
+
139
+ .premium-pricing-button-container {
140
+ display: block; }
141
+
142
+ .premium-pricing-list {
143
+ -js-display: flex;
144
+ display: -webkit-box;
145
+ display: -webkit-flex;
146
+ display: -moz-box;
147
+ display: -ms-flexbox;
148
+ display: flex;
149
+ -webkit-box-orient: vertical;
150
+ -webkit-box-direction: normal;
151
+ -webkit-flex-direction: column;
152
+ -moz-box-orient: vertical;
153
+ -moz-box-direction: normal;
154
+ -ms-flex-direction: column;
155
+ flex-direction: column;
156
+ list-style-type: none;
157
+ margin: 0; }
158
+ .premium-pricing-list .premium-pricing-list-item {
159
+ -js-display: flex;
160
+ display: -webkit-box;
161
+ display: -webkit-flex;
162
+ display: -moz-box;
163
+ display: -ms-flexbox;
164
+ display: flex;
165
+ -webkit-box-align: center;
166
+ -webkit-align-items: center;
167
+ -moz-box-align: center;
168
+ -ms-flex-align: center;
169
+ align-items: center; }
170
+ .premium-pricing-list .premium-pricing-list-item svg {
171
+ width: 50px;
172
+ height: 50px; }
173
+ .premium-pricing-list .premium-pricing-list-item img {
174
+ width: 30px;
175
+ height: 30px;
176
+ -o-object-fit: cover;
177
+ object-fit: cover; }
178
+ .premium-pricing-list .premium-pricing-list-span {
179
+ position: relative; }
180
+ .premium-pricing-list .list-item-tooltip {
181
+ border-bottom: 1px dotted; }
182
+ .premium-pricing-list .premium-pricing-list-tooltip {
183
+ position: absolute;
184
+ top: -webkit-calc(100% + 1px);
185
+ top: calc(100% + 1px);
186
+ left: 0;
187
+ visibility: hidden;
188
+ padding: 15px 20px;
189
+ -webkit-border-radius: 5px;
190
+ border-radius: 5px;
191
+ min-width: 200px;
192
+ overflow: hidden;
193
+ text-align: left;
194
+ font-size: 0.8rem;
195
+ color: #fff;
196
+ background-color: #aaa; }
197
+
198
+ .premium-pricing-features-left .premium-pricing-list-span {
199
+ text-align: left; }
200
+
201
+ .premium-pricing-features-center .premium-pricing-list-span {
202
+ text-align: center; }
203
+
204
+ .premium-pricing-features-right .premium-pricing-list-span {
205
+ text-align: right; }
206
+
207
+ .premium-pricing-list-span:hover .premium-pricing-list-tooltip {
208
+ z-index: 99;
209
+ visibility: visible;
210
+ opacity: 1; }
211
+
212
+ .premium-pricing-slashed-price-value {
213
+ display: inline-block;
214
+ font-size: 20px;
215
+ font-weight: 400;
216
+ margin-right: 5px; }
217
+
218
+ .premium-pricing-price-value {
219
+ font-size: 70px; }
220
+
221
+ .premium-pricing-description-container li {
222
+ list-style-position: inside;
223
+ text-indent: -40px; }
224
+
225
+ @-moz-document url-prefix() {
226
+ .premium-pricing-description-container li {
227
+ text-indent: 0px; } }
228
+
229
+ .premium-pricing-price-button {
230
+ display: block;
231
+ padding: 6px 12px;
232
+ line-height: 1.42857143;
233
+ text-align: center;
234
+ color: #fff;
235
+ background: #6ec1e4;
236
+ margin-bottom: 0;
237
+ -webkit-transition: all 0.3s ease-in-out;
238
+ transition: all 0.3s ease-in-out; }
assets/frontend/js/lottie.js CHANGED
@@ -1,19242 +1,19242 @@
1
- (function ($) {
2
-
3
- (typeof navigator !== "undefined") && (function (global, factory) {
4
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
5
- typeof define === 'function' && define.amd ? define(factory) :
6
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());
7
- })(this, (function () {
8
- 'use strict';
9
-
10
- var svgNS = 'http://www.w3.org/2000/svg';
11
- var locationHref = '';
12
- var _useWebWorker = false;
13
- var initialDefaultFrame = -999999;
14
-
15
- var setWebWorker = function setWebWorker(flag) {
16
- _useWebWorker = !!flag;
17
- };
18
-
19
- var getWebWorker = function getWebWorker() {
20
- return _useWebWorker;
21
- };
22
-
23
- var setLocationHref = function setLocationHref(value) {
24
- locationHref = value;
25
- };
26
-
27
- var getLocationHref = function getLocationHref() {
28
- return locationHref;
29
- };
30
-
31
- function createTag(type) {
32
- // return {appendChild:function(){},setAttribute:function(){},style:{}}
33
- return document.createElement(type);
34
- }
35
-
36
- function extendPrototype(sources, destination) {
37
- var i;
38
- var len = sources.length;
39
- var sourcePrototype;
40
-
41
- for (i = 0; i < len; i += 1) {
42
- sourcePrototype = sources[i].prototype;
43
-
44
- for (var attr in sourcePrototype) {
45
- if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];
46
- }
47
- }
48
- }
49
-
50
- function getDescriptor(object, prop) {
51
- return Object.getOwnPropertyDescriptor(object, prop);
52
- }
53
-
54
- function createProxyFunction(prototype) {
55
- function ProxyFunction() { }
56
-
57
- ProxyFunction.prototype = prototype;
58
- return ProxyFunction;
59
- }
60
-
61
- // import Howl from '../../3rd_party/howler';
62
- var audioControllerFactory = function () {
63
- function AudioController(audioFactory) {
64
- this.audios = [];
65
- this.audioFactory = audioFactory;
66
- this._volume = 1;
67
- this._isMuted = false;
68
- }
69
-
70
- AudioController.prototype = {
71
- addAudio: function addAudio(audio) {
72
- this.audios.push(audio);
73
- },
74
- pause: function pause() {
75
- var i;
76
- var len = this.audios.length;
77
-
78
- for (i = 0; i < len; i += 1) {
79
- this.audios[i].pause();
80
- }
81
- },
82
- resume: function resume() {
83
- var i;
84
- var len = this.audios.length;
85
-
86
- for (i = 0; i < len; i += 1) {
87
- this.audios[i].resume();
88
- }
89
- },
90
- setRate: function setRate(rateValue) {
91
- var i;
92
- var len = this.audios.length;
93
-
94
- for (i = 0; i < len; i += 1) {
95
- this.audios[i].setRate(rateValue);
96
- }
97
- },
98
- createAudio: function createAudio(assetPath) {
99
- if (this.audioFactory) {
100
- return this.audioFactory(assetPath);
101
- }
102
-
103
- if (window.Howl) {
104
- return new window.Howl({
105
- src: [assetPath]
106
- });
107
- }
108
-
109
- return {
110
- isPlaying: false,
111
- play: function play() {
112
- this.isPlaying = true;
113
- },
114
- seek: function seek() {
115
- this.isPlaying = false;
116
- },
117
- playing: function playing() { },
118
- rate: function rate() { },
119
- setVolume: function setVolume() { }
120
- };
121
- },
122
- setAudioFactory: function setAudioFactory(audioFactory) {
123
- this.audioFactory = audioFactory;
124
- },
125
- setVolume: function setVolume(value) {
126
- this._volume = value;
127
-
128
- this._updateVolume();
129
- },
130
- mute: function mute() {
131
- this._isMuted = true;
132
-
133
- this._updateVolume();
134
- },
135
- unmute: function unmute() {
136
- this._isMuted = false;
137
-
138
- this._updateVolume();
139
- },
140
- getVolume: function getVolume() {
141
- return this._volume;
142
- },
143
- _updateVolume: function _updateVolume() {
144
- var i;
145
- var len = this.audios.length;
146
-
147
- for (i = 0; i < len; i += 1) {
148
- this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));
149
- }
150
- }
151
- };
152
- return function () {
153
- return new AudioController();
154
- };
155
- }();
156
-
157
- var createTypedArray = function () {
158
- function createRegularArray(type, len) {
159
- var i = 0;
160
- var arr = [];
161
- var value;
162
-
163
- switch (type) {
164
- case 'int16':
165
- case 'uint8c':
166
- value = 1;
167
- break;
168
-
169
- default:
170
- value = 1.1;
171
- break;
172
- }
173
-
174
- for (i = 0; i < len; i += 1) {
175
- arr.push(value);
176
- }
177
-
178
- return arr;
179
- }
180
-
181
- function createTypedArrayFactory(type, len) {
182
- if (type === 'float32') {
183
- return new Float32Array(len);
184
- }
185
-
186
- if (type === 'int16') {
187
- return new Int16Array(len);
188
- }
189
-
190
- if (type === 'uint8c') {
191
- return new Uint8ClampedArray(len);
192
- }
193
-
194
- return createRegularArray(type, len);
195
- }
196
-
197
- if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {
198
- return createTypedArrayFactory;
199
- }
200
-
201
- return createRegularArray;
202
- }();
203
-
204
- function createSizedArray(len) {
205
- return Array.apply(null, {
206
- length: len
207
- });
208
- }
209
-
210
- function _typeof$6(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof$6(obj); }
211
- var subframeEnabled = true;
212
- var expressionsPlugin = null;
213
- var idPrefix$1 = '';
214
- var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
215
- var _shouldRoundValues = false;
216
- var bmPow = Math.pow;
217
- var bmSqrt = Math.sqrt;
218
- var bmFloor = Math.floor;
219
- var bmMax = Math.max;
220
- var bmMin = Math.min;
221
- var BMMath = {};
222
-
223
- (function () {
224
- var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];
225
- var i;
226
- var len = propertyNames.length;
227
-
228
- for (i = 0; i < len; i += 1) {
229
- BMMath[propertyNames[i]] = Math[propertyNames[i]];
230
- }
231
- })();
232
-
233
- function ProjectInterface$1() {
234
- return {};
235
- }
236
-
237
- BMMath.random = Math.random;
238
-
239
- BMMath.abs = function (val) {
240
- var tOfVal = _typeof$6(val);
241
-
242
- if (tOfVal === 'object' && val.length) {
243
- var absArr = createSizedArray(val.length);
244
- var i;
245
- var len = val.length;
246
-
247
- for (i = 0; i < len; i += 1) {
248
- absArr[i] = Math.abs(val[i]);
249
- }
250
-
251
- return absArr;
252
- }
253
-
254
- return Math.abs(val);
255
- };
256
-
257
- var defaultCurveSegments = 150;
258
- var degToRads = Math.PI / 180;
259
- var roundCorner = 0.5519;
260
-
261
- function roundValues(flag) {
262
- _shouldRoundValues = !!flag;
263
- }
264
-
265
- function bmRnd(value) {
266
- if (_shouldRoundValues) {
267
- return Math.round(value);
268
- }
269
-
270
- return value;
271
- }
272
-
273
- function styleDiv(element) {
274
- element.style.position = 'absolute';
275
- element.style.top = 0;
276
- element.style.left = 0;
277
- element.style.display = 'block';
278
- element.style.transformOrigin = '0 0';
279
- element.style.webkitTransformOrigin = '0 0';
280
- element.style.backfaceVisibility = 'visible';
281
- element.style.webkitBackfaceVisibility = 'visible';
282
- element.style.transformStyle = 'preserve-3d';
283
- element.style.webkitTransformStyle = 'preserve-3d';
284
- element.style.mozTransformStyle = 'preserve-3d';
285
- }
286
-
287
- function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {
288
- this.type = type;
289
- this.currentTime = currentTime;
290
- this.totalTime = totalTime;
291
- this.direction = frameMultiplier < 0 ? -1 : 1;
292
- }
293
-
294
- function BMCompleteEvent(type, frameMultiplier) {
295
- this.type = type;
296
- this.direction = frameMultiplier < 0 ? -1 : 1;
297
- }
298
-
299
- function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {
300
- this.type = type;
301
- this.currentLoop = currentLoop;
302
- this.totalLoops = totalLoops;
303
- this.direction = frameMultiplier < 0 ? -1 : 1;
304
- }
305
-
306
- function BMSegmentStartEvent(type, firstFrame, totalFrames) {
307
- this.type = type;
308
- this.firstFrame = firstFrame;
309
- this.totalFrames = totalFrames;
310
- }
311
-
312
- function BMDestroyEvent(type, target) {
313
- this.type = type;
314
- this.target = target;
315
- }
316
-
317
- function BMRenderFrameErrorEvent(nativeError, currentTime) {
318
- this.type = 'renderFrameError';
319
- this.nativeError = nativeError;
320
- this.currentTime = currentTime;
321
- }
322
-
323
- function BMConfigErrorEvent(nativeError) {
324
- this.type = 'configError';
325
- this.nativeError = nativeError;
326
- }
327
-
328
- function BMAnimationConfigErrorEvent(type, nativeError) {
329
- this.type = type;
330
- this.nativeError = nativeError;
331
- }
332
-
333
- var createElementID = function () {
334
- var _count = 0;
335
- return function createID() {
336
- _count += 1;
337
- return idPrefix$1 + '__lottie_element_' + _count;
338
- };
339
- }();
340
-
341
- function HSVtoRGB(h, s, v) {
342
- var r;
343
- var g;
344
- var b;
345
- var i;
346
- var f;
347
- var p;
348
- var q;
349
- var t;
350
- i = Math.floor(h * 6);
351
- f = h * 6 - i;
352
- p = v * (1 - s);
353
- q = v * (1 - f * s);
354
- t = v * (1 - (1 - f) * s);
355
-
356
- switch (i % 6) {
357
- case 0:
358
- r = v;
359
- g = t;
360
- b = p;
361
- break;
362
-
363
- case 1:
364
- r = q;
365
- g = v;
366
- b = p;
367
- break;
368
-
369
- case 2:
370
- r = p;
371
- g = v;
372
- b = t;
373
- break;
374
-
375
- case 3:
376
- r = p;
377
- g = q;
378
- b = v;
379
- break;
380
-
381
- case 4:
382
- r = t;
383
- g = p;
384
- b = v;
385
- break;
386
-
387
- case 5:
388
- r = v;
389
- g = p;
390
- b = q;
391
- break;
392
-
393
- default:
394
- break;
395
- }
396
-
397
- return [r, g, b];
398
- }
399
-
400
- function RGBtoHSV(r, g, b) {
401
- var max = Math.max(r, g, b);
402
- var min = Math.min(r, g, b);
403
- var d = max - min;
404
- var h;
405
- var s = max === 0 ? 0 : d / max;
406
- var v = max / 255;
407
-
408
- switch (max) {
409
- case min:
410
- h = 0;
411
- break;
412
-
413
- case r:
414
- h = g - b + d * (g < b ? 6 : 0);
415
- h /= 6 * d;
416
- break;
417
-
418
- case g:
419
- h = b - r + d * 2;
420
- h /= 6 * d;
421
- break;
422
-
423
- case b:
424
- h = r - g + d * 4;
425
- h /= 6 * d;
426
- break;
427
-
428
- default:
429
- break;
430
- }
431
-
432
- return [h, s, v];
433
- }
434
-
435
- function addSaturationToRGB(color, offset) {
436
- var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);
437
- hsv[1] += offset;
438
-
439
- if (hsv[1] > 1) {
440
- hsv[1] = 1;
441
- } else if (hsv[1] <= 0) {
442
- hsv[1] = 0;
443
- }
444
-
445
- return HSVtoRGB(hsv[0], hsv[1], hsv[2]);
446
- }
447
-
448
- function addBrightnessToRGB(color, offset) {
449
- var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);
450
- hsv[2] += offset;
451
-
452
- if (hsv[2] > 1) {
453
- hsv[2] = 1;
454
- } else if (hsv[2] < 0) {
455
- hsv[2] = 0;
456
- }
457
-
458
- return HSVtoRGB(hsv[0], hsv[1], hsv[2]);
459
- }
460
-
461
- function addHueToRGB(color, offset) {
462
- var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);
463
- hsv[0] += offset / 360;
464
-
465
- if (hsv[0] > 1) {
466
- hsv[0] -= 1;
467
- } else if (hsv[0] < 0) {
468
- hsv[0] += 1;
469
- }
470
-
471
- return HSVtoRGB(hsv[0], hsv[1], hsv[2]);
472
- }
473
-
474
- var rgbToHex = function () {
475
- var colorMap = [];
476
- var i;
477
- var hex;
478
-
479
- for (i = 0; i < 256; i += 1) {
480
- hex = i.toString(16);
481
- colorMap[i] = hex.length === 1 ? '0' + hex : hex;
482
- }
483
-
484
- return function (r, g, b) {
485
- if (r < 0) {
486
- r = 0;
487
- }
488
-
489
- if (g < 0) {
490
- g = 0;
491
- }
492
-
493
- if (b < 0) {
494
- b = 0;
495
- }
496
-
497
- return '#' + colorMap[r] + colorMap[g] + colorMap[b];
498
- };
499
- }();
500
-
501
- var setSubframeEnabled = function setSubframeEnabled(flag) {
502
- subframeEnabled = !!flag;
503
- };
504
-
505
- var getSubframeEnabled = function getSubframeEnabled() {
506
- return subframeEnabled;
507
- };
508
-
509
- var setExpressionsPlugin = function setExpressionsPlugin(value) {
510
- expressionsPlugin = value;
511
- };
512
-
513
- var getExpressionsPlugin = function getExpressionsPlugin() {
514
- return expressionsPlugin;
515
- };
516
-
517
- var setDefaultCurveSegments = function setDefaultCurveSegments(value) {
518
- defaultCurveSegments = value;
519
- };
520
-
521
- var getDefaultCurveSegments = function getDefaultCurveSegments() {
522
- return defaultCurveSegments;
523
- };
524
-
525
- var setIdPrefix = function setIdPrefix(value) {
526
- idPrefix$1 = value;
527
- };
528
-
529
- var getIdPrefix = function getIdPrefix() {
530
- return idPrefix$1;
531
- };
532
-
533
- function createNS(type) {
534
- // return {appendChild:function(){},setAttribute:function(){},style:{}}
535
- return document.createElementNS(svgNS, type);
536
- }
537
-
538
- function _typeof$5(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof$5(obj); }
539
-
540
- var dataManager = function () {
541
- var _counterId = 1;
542
- var processes = [];
543
- var workerFn;
544
- var workerInstance;
545
- var workerProxy = {
546
- onmessage: function onmessage() { },
547
- postMessage: function postMessage(path) {
548
- workerFn({
549
- data: path
550
- });
551
- }
552
- };
553
- var _workerSelf = {
554
- postMessage: function postMessage(data) {
555
- workerProxy.onmessage({
556
- data: data
557
- });
558
- }
559
- };
560
-
561
- function createWorker(fn) {
562
- if (window.Worker && window.Blob && getWebWorker()) {
563
- var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {
564
- type: 'text/javascript'
565
- }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });
566
-
567
- var url = URL.createObjectURL(blob);
568
- return new Worker(url);
569
- }
570
-
571
- workerFn = fn;
572
- return workerProxy;
573
- }
574
-
575
- function setupWorker() {
576
- if (!workerInstance) {
577
- workerInstance = createWorker(function workerStart(e) {
578
- function dataFunctionManager() {
579
- function completeLayers(layers, comps) {
580
- var layerData;
581
- var i;
582
- var len = layers.length;
583
- var j;
584
- var jLen;
585
- var k;
586
- var kLen;
587
-
588
- for (i = 0; i < len; i += 1) {
589
- layerData = layers[i];
590
-
591
- if ('ks' in layerData && !layerData.completed) {
592
- layerData.completed = true;
593
-
594
- if (layerData.tt) {
595
- layers[i - 1].td = layerData.tt;
596
- }
597
-
598
- if (layerData.hasMask) {
599
- var maskProps = layerData.masksProperties;
600
- jLen = maskProps.length;
601
-
602
- for (j = 0; j < jLen; j += 1) {
603
- if (maskProps[j].pt.k.i) {
604
- convertPathsToAbsoluteValues(maskProps[j].pt.k);
605
- } else {
606
- kLen = maskProps[j].pt.k.length;
607
-
608
- for (k = 0; k < kLen; k += 1) {
609
- if (maskProps[j].pt.k[k].s) {
610
- convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);
611
- }
612
-
613
- if (maskProps[j].pt.k[k].e) {
614
- convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);
615
- }
616
- }
617
- }
618
- }
619
- }
620
-
621
- if (layerData.ty === 0) {
622
- layerData.layers = findCompLayers(layerData.refId, comps);
623
- completeLayers(layerData.layers, comps);
624
- } else if (layerData.ty === 4) {
625
- completeShapes(layerData.shapes);
626
- } else if (layerData.ty === 5) {
627
- completeText(layerData);
628
- }
629
- }
630
- }
631
- }
632
-
633
- function completeChars(chars, assets) {
634
- if (chars) {
635
- var i = 0;
636
- var len = chars.length;
637
-
638
- for (i = 0; i < len; i += 1) {
639
- if (chars[i].t === 1) {
640
- // var compData = findComp(chars[i].data.refId, assets);
641
- chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;
642
- // chars[i].data.op = 99999;
643
- // chars[i].data.st = 0;
644
- // chars[i].data.sr = 1;
645
- // chars[i].w = compData.w;
646
- // chars[i].data.ks = {
647
- // a: { k: [0, 0, 0], a: 0 },
648
- // p: { k: [0, -compData.h, 0], a: 0 },
649
- // r: { k: 0, a: 0 },
650
- // s: { k: [100, 100], a: 0 },
651
- // o: { k: 100, a: 0 },
652
- // };
653
-
654
- completeLayers(chars[i].data.layers, assets);
655
- }
656
- }
657
- }
658
- }
659
-
660
- function findComp(id, comps) {
661
- var i = 0;
662
- var len = comps.length;
663
-
664
- while (i < len) {
665
- if (comps[i].id === id) {
666
- return comps[i];
667
- }
668
-
669
- i += 1;
670
- }
671
-
672
- return null;
673
- }
674
-
675
- function findCompLayers(id, comps) {
676
- var comp = findComp(id, comps);
677
-
678
- if (comp) {
679
- if (!comp.layers.__used) {
680
- comp.layers.__used = true;
681
- return comp.layers;
682
- }
683
-
684
- return JSON.parse(JSON.stringify(comp.layers));
685
- }
686
-
687
- return null;
688
- }
689
-
690
- function completeShapes(arr) {
691
- var i;
692
- var len = arr.length;
693
- var j;
694
- var jLen;
695
-
696
- for (i = len - 1; i >= 0; i -= 1) {
697
- if (arr[i].ty === 'sh') {
698
- if (arr[i].ks.k.i) {
699
- convertPathsToAbsoluteValues(arr[i].ks.k);
700
- } else {
701
- jLen = arr[i].ks.k.length;
702
-
703
- for (j = 0; j < jLen; j += 1) {
704
- if (arr[i].ks.k[j].s) {
705
- convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);
706
- }
707
-
708
- if (arr[i].ks.k[j].e) {
709
- convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);
710
- }
711
- }
712
- }
713
- } else if (arr[i].ty === 'gr') {
714
- completeShapes(arr[i].it);
715
- }
716
- }
717
- }
718
-
719
- function convertPathsToAbsoluteValues(path) {
720
- var i;
721
- var len = path.i.length;
722
-
723
- for (i = 0; i < len; i += 1) {
724
- path.i[i][0] += path.v[i][0];
725
- path.i[i][1] += path.v[i][1];
726
- path.o[i][0] += path.v[i][0];
727
- path.o[i][1] += path.v[i][1];
728
- }
729
- }
730
-
731
- function checkVersion(minimum, animVersionString) {
732
- var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];
733
-
734
- if (minimum[0] > animVersion[0]) {
735
- return true;
736
- }
737
-
738
- if (animVersion[0] > minimum[0]) {
739
- return false;
740
- }
741
-
742
- if (minimum[1] > animVersion[1]) {
743
- return true;
744
- }
745
-
746
- if (animVersion[1] > minimum[1]) {
747
- return false;
748
- }
749
-
750
- if (minimum[2] > animVersion[2]) {
751
- return true;
752
- }
753
-
754
- if (animVersion[2] > minimum[2]) {
755
- return false;
756
- }
757
-
758
- return null;
759
- }
760
-
761
- var checkText = function () {
762
- var minimumVersion = [4, 4, 14];
763
-
764
- function updateTextLayer(textLayer) {
765
- var documentData = textLayer.t.d;
766
- textLayer.t.d = {
767
- k: [{
768
- s: documentData,
769
- t: 0
770
- }]
771
- };
772
- }
773
-
774
- function iterateLayers(layers) {
775
- var i;
776
- var len = layers.length;
777
-
778
- for (i = 0; i < len; i += 1) {
779
- if (layers[i].ty === 5) {
780
- updateTextLayer(layers[i]);
781
- }
782
- }
783
- }
784
-
785
- return function (animationData) {
786
- if (checkVersion(minimumVersion, animationData.v)) {
787
- iterateLayers(animationData.layers);
788
-
789
- if (animationData.assets) {
790
- var i;
791
- var len = animationData.assets.length;
792
-
793
- for (i = 0; i < len; i += 1) {
794
- if (animationData.assets[i].layers) {
795
- iterateLayers(animationData.assets[i].layers);
796
- }
797
- }
798
- }
799
- }
800
- };
801
- }();
802
-
803
- var checkChars = function () {
804
- var minimumVersion = [4, 7, 99];
805
- return function (animationData) {
806
- if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {
807
- var i;
808
- var len = animationData.chars.length;
809
-
810
- for (i = 0; i < len; i += 1) {
811
- var charData = animationData.chars[i];
812
-
813
- if (charData.data && charData.data.shapes) {
814
- completeShapes(charData.data.shapes);
815
- charData.data.ip = 0;
816
- charData.data.op = 99999;
817
- charData.data.st = 0;
818
- charData.data.sr = 1;
819
- charData.data.ks = {
820
- p: {
821
- k: [0, 0],
822
- a: 0
823
- },
824
- s: {
825
- k: [100, 100],
826
- a: 0
827
- },
828
- a: {
829
- k: [0, 0],
830
- a: 0
831
- },
832
- r: {
833
- k: 0,
834
- a: 0
835
- },
836
- o: {
837
- k: 100,
838
- a: 0
839
- }
840
- };
841
-
842
- if (!animationData.chars[i].t) {
843
- charData.data.shapes.push({
844
- ty: 'no'
845
- });
846
- charData.data.shapes[0].it.push({
847
- p: {
848
- k: [0, 0],
849
- a: 0
850
- },
851
- s: {
852
- k: [100, 100],
853
- a: 0
854
- },
855
- a: {
856
- k: [0, 0],
857
- a: 0
858
- },
859
- r: {
860
- k: 0,
861
- a: 0
862
- },
863
- o: {
864
- k: 100,
865
- a: 0
866
- },
867
- sk: {
868
- k: 0,
869
- a: 0
870
- },
871
- sa: {
872
- k: 0,
873
- a: 0
874
- },
875
- ty: 'tr'
876
- });
877
- }
878
- }
879
- }
880
- }
881
- };
882
- }();
883
-
884
- var checkPathProperties = function () {
885
- var minimumVersion = [5, 7, 15];
886
-
887
- function updateTextLayer(textLayer) {
888
- var pathData = textLayer.t.p;
889
-
890
- if (typeof pathData.a === 'number') {
891
- pathData.a = {
892
- a: 0,
893
- k: pathData.a
894
- };
895
- }
896
-
897
- if (typeof pathData.p === 'number') {
898
- pathData.p = {
899
- a: 0,
900
- k: pathData.p
901
- };
902
- }
903
-
904
- if (typeof pathData.r === 'number') {
905
- pathData.r = {
906
- a: 0,
907
- k: pathData.r
908
- };
909
- }
910
- }
911
-
912
- function iterateLayers(layers) {
913
- var i;
914
- var len = layers.length;
915
-
916
- for (i = 0; i < len; i += 1) {
917
- if (layers[i].ty === 5) {
918
- updateTextLayer(layers[i]);
919
- }
920
- }
921
- }
922
-
923
- return function (animationData) {
924
- if (checkVersion(minimumVersion, animationData.v)) {
925
- iterateLayers(animationData.layers);
926
-
927
- if (animationData.assets) {
928
- var i;
929
- var len = animationData.assets.length;
930
-
931
- for (i = 0; i < len; i += 1) {
932
- if (animationData.assets[i].layers) {
933
- iterateLayers(animationData.assets[i].layers);
934
- }
935
- }
936
- }
937
- }
938
- };
939
- }();
940
-
941
- var checkColors = function () {
942
- var minimumVersion = [4, 1, 9];
943
-
944
- function iterateShapes(shapes) {
945
- var i;
946
- var len = shapes.length;
947
- var j;
948
- var jLen;
949
-
950
- for (i = 0; i < len; i += 1) {
951
- if (shapes[i].ty === 'gr') {
952
- iterateShapes(shapes[i].it);
953
- } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {
954
- if (shapes[i].c.k && shapes[i].c.k[0].i) {
955
- jLen = shapes[i].c.k.length;
956
-
957
- for (j = 0; j < jLen; j += 1) {
958
- if (shapes[i].c.k[j].s) {
959
- shapes[i].c.k[j].s[0] /= 255;
960
- shapes[i].c.k[j].s[1] /= 255;
961
- shapes[i].c.k[j].s[2] /= 255;
962
- shapes[i].c.k[j].s[3] /= 255;
963
- }
964
-
965
- if (shapes[i].c.k[j].e) {
966
- shapes[i].c.k[j].e[0] /= 255;
967
- shapes[i].c.k[j].e[1] /= 255;
968
- shapes[i].c.k[j].e[2] /= 255;
969
- shapes[i].c.k[j].e[3] /= 255;
970
- }
971
- }
972
- } else {
973
- shapes[i].c.k[0] /= 255;
974
- shapes[i].c.k[1] /= 255;
975
- shapes[i].c.k[2] /= 255;
976
- shapes[i].c.k[3] /= 255;
977
- }
978
- }
979
- }
980
- }
981
-
982
- function iterateLayers(layers) {
983
- var i;
984
- var len = layers.length;
985
-
986
- for (i = 0; i < len; i += 1) {
987
- if (layers[i].ty === 4) {
988
- iterateShapes(layers[i].shapes);
989
- }
990
- }
991
- }
992
-
993
- return function (animationData) {
994
- if (checkVersion(minimumVersion, animationData.v)) {
995
- iterateLayers(animationData.layers);
996
-
997
- if (animationData.assets) {
998
- var i;
999
- var len = animationData.assets.length;
1000
-
1001
- for (i = 0; i < len; i += 1) {
1002
- if (animationData.assets[i].layers) {
1003
- iterateLayers(animationData.assets[i].layers);
1004
- }
1005
- }
1006
- }
1007
- }
1008
- };
1009
- }();
1010
-
1011
- var checkShapes = function () {
1012
- var minimumVersion = [4, 4, 18];
1013
-
1014
- function completeClosingShapes(arr) {
1015
- var i;
1016
- var len = arr.length;
1017
- var j;
1018
- var jLen;
1019
-
1020
- for (i = len - 1; i >= 0; i -= 1) {
1021
- if (arr[i].ty === 'sh') {
1022
- if (arr[i].ks.k.i) {
1023
- arr[i].ks.k.c = arr[i].closed;
1024
- } else {
1025
- jLen = arr[i].ks.k.length;
1026
-
1027
- for (j = 0; j < jLen; j += 1) {
1028
- if (arr[i].ks.k[j].s) {
1029
- arr[i].ks.k[j].s[0].c = arr[i].closed;
1030
- }
1031
-
1032
- if (arr[i].ks.k[j].e) {
1033
- arr[i].ks.k[j].e[0].c = arr[i].closed;
1034
- }
1035
- }
1036
- }
1037
- } else if (arr[i].ty === 'gr') {
1038
- completeClosingShapes(arr[i].it);
1039
- }
1040
- }
1041
- }
1042
-
1043
- function iterateLayers(layers) {
1044
- var layerData;
1045
- var i;
1046
- var len = layers.length;
1047
- var j;
1048
- var jLen;
1049
- var k;
1050
- var kLen;
1051
-
1052
- for (i = 0; i < len; i += 1) {
1053
- layerData = layers[i];
1054
-
1055
- if (layerData.hasMask) {
1056
- var maskProps = layerData.masksProperties;
1057
- jLen = maskProps.length;
1058
-
1059
- for (j = 0; j < jLen; j += 1) {
1060
- if (maskProps[j].pt.k.i) {
1061
- maskProps[j].pt.k.c = maskProps[j].cl;
1062
- } else {
1063
- kLen = maskProps[j].pt.k.length;
1064
-
1065
- for (k = 0; k < kLen; k += 1) {
1066
- if (maskProps[j].pt.k[k].s) {
1067
- maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;
1068
- }
1069
-
1070
- if (maskProps[j].pt.k[k].e) {
1071
- maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;
1072
- }
1073
- }
1074
- }
1075
- }
1076
- }
1077
-
1078
- if (layerData.ty === 4) {
1079
- completeClosingShapes(layerData.shapes);
1080
- }
1081
- }
1082
- }
1083
-
1084
- return function (animationData) {
1085
- if (checkVersion(minimumVersion, animationData.v)) {
1086
- iterateLayers(animationData.layers);
1087
-
1088
- if (animationData.assets) {
1089
- var i;
1090
- var len = animationData.assets.length;
1091
-
1092
- for (i = 0; i < len; i += 1) {
1093
- if (animationData.assets[i].layers) {
1094
- iterateLayers(animationData.assets[i].layers);
1095
- }
1096
- }
1097
- }
1098
- }
1099
- };
1100
- }();
1101
-
1102
- function completeData(animationData) {
1103
- if (animationData.__complete) {
1104
- return;
1105
- }
1106
-
1107
- checkColors(animationData);
1108
- checkText(animationData);
1109
- checkChars(animationData);
1110
- checkPathProperties(animationData);
1111
- checkShapes(animationData);
1112
- completeLayers(animationData.layers, animationData.assets);
1113
- completeChars(animationData.chars, animationData.assets);
1114
- animationData.__complete = true;
1115
- }
1116
-
1117
- function completeText(data) {
1118
- if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;
1119
- }
1120
- }
1121
-
1122
- var moduleOb = {};
1123
- moduleOb.completeData = completeData;
1124
- moduleOb.checkColors = checkColors;
1125
- moduleOb.checkChars = checkChars;
1126
- moduleOb.checkPathProperties = checkPathProperties;
1127
- moduleOb.checkShapes = checkShapes;
1128
- moduleOb.completeLayers = completeLayers;
1129
- return moduleOb;
1130
- }
1131
-
1132
- if (!_workerSelf.dataManager) {
1133
- _workerSelf.dataManager = dataFunctionManager();
1134
- }
1135
-
1136
- if (!_workerSelf.assetLoader) {
1137
- _workerSelf.assetLoader = function () {
1138
- function formatResponse(xhr) {
1139
- // using typeof doubles the time of execution of this method,
1140
- // so if available, it's better to use the header to validate the type
1141
- var contentTypeHeader = xhr.getResponseHeader('content-type');
1142
-
1143
- if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {
1144
- return xhr.response;
1145
- }
1146
-
1147
- if (xhr.response && _typeof$5(xhr.response) === 'object') {
1148
- return xhr.response;
1149
- }
1150
-
1151
- if (xhr.response && typeof xhr.response === 'string') {
1152
- return JSON.parse(xhr.response);
1153
- }
1154
-
1155
- if (xhr.responseText) {
1156
- return JSON.parse(xhr.responseText);
1157
- }
1158
-
1159
- return null;
1160
- }
1161
-
1162
- function loadAsset(path, fullPath, callback, errorCallback) {
1163
- var response;
1164
- var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.
1165
-
1166
- try {
1167
- // This crashes on Android WebView prior to KitKat
1168
- xhr.responseType = 'json';
1169
- } catch (err) { } // eslint-disable-line no-empty
1170
-
1171
-
1172
- xhr.onreadystatechange = function () {
1173
- if (xhr.readyState === 4) {
1174
- if (xhr.status === 200) {
1175
- response = formatResponse(xhr);
1176
- callback(response);
1177
- } else {
1178
- try {
1179
- response = formatResponse(xhr);
1180
- callback(response);
1181
- } catch (err) {
1182
- if (errorCallback) {
1183
- errorCallback(err);
1184
- }
1185
- }
1186
- }
1187
- }
1188
- };
1189
-
1190
- try {
1191
- xhr.open('GET', path, true);
1192
- } catch (error) {
1193
- xhr.open('GET', fullPath + '/' + path, true);
1194
- }
1195
-
1196
- xhr.send();
1197
- }
1198
-
1199
- return {
1200
- load: loadAsset
1201
- };
1202
- }();
1203
- }
1204
-
1205
- if (e.data.type === 'loadAnimation') {
1206
- _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {
1207
- _workerSelf.dataManager.completeData(data);
1208
-
1209
- _workerSelf.postMessage({
1210
- id: e.data.id,
1211
- payload: data,
1212
- status: 'success'
1213
- });
1214
- }, function () {
1215
- _workerSelf.postMessage({
1216
- id: e.data.id,
1217
- status: 'error'
1218
- });
1219
- });
1220
- } else if (e.data.type === 'complete') {
1221
- var animation = e.data.animation;
1222
-
1223
- _workerSelf.dataManager.completeData(animation);
1224
-
1225
- _workerSelf.postMessage({
1226
- id: e.data.id,
1227
- payload: animation,
1228
- status: 'success'
1229
- });
1230
- } else if (e.data.type === 'loadData') {
1231
- _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {
1232
- _workerSelf.postMessage({
1233
- id: e.data.id,
1234
- payload: data,
1235
- status: 'success'
1236
- });
1237
- }, function () {
1238
- _workerSelf.postMessage({
1239
- id: e.data.id,
1240
- status: 'error'
1241
- });
1242
- });
1243
- }
1244
- });
1245
-
1246
- workerInstance.onmessage = function (event) {
1247
- var data = event.data;
1248
- var id = data.id;
1249
- var process = processes[id];
1250
- processes[id] = null;
1251
-
1252
- if (data.status === 'success') {
1253
- process.onComplete(data.payload);
1254
- } else if (process.onError) {
1255
- process.onError();
1256
- }
1257
- };
1258
- }
1259
- }
1260
-
1261
- function createProcess(onComplete, onError) {
1262
- _counterId += 1;
1263
- var id = 'processId_' + _counterId;
1264
- processes[id] = {
1265
- onComplete: onComplete,
1266
- onError: onError
1267
- };
1268
- return id;
1269
- }
1270
-
1271
- function loadAnimation(path, onComplete, onError) {
1272
- setupWorker();
1273
- var processId = createProcess(onComplete, onError);
1274
- workerInstance.postMessage({
1275
- type: 'loadAnimation',
1276
- path: path,
1277
- fullPath: window.location.origin + window.location.pathname,
1278
- id: processId
1279
- });
1280
- }
1281
-
1282
- function loadData(path, onComplete, onError) {
1283
- setupWorker();
1284
- var processId = createProcess(onComplete, onError);
1285
- workerInstance.postMessage({
1286
- type: 'loadData',
1287
- path: path,
1288
- fullPath: window.location.origin + window.location.pathname,
1289
- id: processId
1290
- });
1291
- }
1292
-
1293
- function completeAnimation(anim, onComplete, onError) {
1294
- setupWorker();
1295
- var processId = createProcess(onComplete, onError);
1296
- workerInstance.postMessage({
1297
- type: 'complete',
1298
- animation: anim,
1299
- id: processId
1300
- });
1301
- }
1302
-
1303
- return {
1304
- loadAnimation: loadAnimation,
1305
- loadData: loadData,
1306
- completeAnimation: completeAnimation
1307
- };
1308
- }();
1309
-
1310
- var ImagePreloader = function () {
1311
- var proxyImage = function () {
1312
- var canvas = createTag('canvas');
1313
- canvas.width = 1;
1314
- canvas.height = 1;
1315
- var ctx = canvas.getContext('2d');
1316
- ctx.fillStyle = 'rgba(0,0,0,0)';
1317
- ctx.fillRect(0, 0, 1, 1);
1318
- return canvas;
1319
- }();
1320
-
1321
- function imageLoaded() {
1322
- this.loadedAssets += 1;
1323
-
1324
- if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {
1325
- if (this.imagesLoadedCb) {
1326
- this.imagesLoadedCb(null);
1327
- }
1328
- }
1329
- }
1330
-
1331
- function footageLoaded() {
1332
- this.loadedFootagesCount += 1;
1333
-
1334
- if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {
1335
- if (this.imagesLoadedCb) {
1336
- this.imagesLoadedCb(null);
1337
- }
1338
- }
1339
- }
1340
-
1341
- function getAssetsPath(assetData, assetsPath, originalPath) {
1342
- var path = '';
1343
-
1344
- if (assetData.e) {
1345
- path = assetData.p;
1346
- } else if (assetsPath) {
1347
- var imagePath = assetData.p;
1348
-
1349
- if (imagePath.indexOf('images/') !== -1) {
1350
- imagePath = imagePath.split('/')[1];
1351
- }
1352
-
1353
- path = assetsPath + imagePath;
1354
- } else {
1355
- path = originalPath;
1356
- path += assetData.u ? assetData.u : '';
1357
- path += assetData.p;
1358
- }
1359
-
1360
- return path;
1361
- }
1362
-
1363
- function testImageLoaded(img) {
1364
- var _count = 0;
1365
- var intervalId = setInterval(function () {
1366
- var box = img.getBBox();
1367
-
1368
- if (box.width || _count > 500) {
1369
- this._imageLoaded();
1370
-
1371
- clearInterval(intervalId);
1372
- }
1373
-
1374
- _count += 1;
1375
- }.bind(this), 50);
1376
- }
1377
-
1378
- function createImageData(assetData) {
1379
- var path = getAssetsPath(assetData, this.assetsPath, this.path);
1380
- var img = createNS('image');
1381
-
1382
- if (isSafari) {
1383
- this.testImageLoaded(img);
1384
- } else {
1385
- img.addEventListener('load', this._imageLoaded, false);
1386
- }
1387
-
1388
- img.addEventListener('error', function () {
1389
- ob.img = proxyImage;
1390
-
1391
- this._imageLoaded();
1392
- }.bind(this), false);
1393
- img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);
1394
-
1395
- if (this._elementHelper.append) {
1396
- this._elementHelper.append(img);
1397
- } else {
1398
- this._elementHelper.appendChild(img);
1399
- }
1400
-
1401
- var ob = {
1402
- img: img,
1403
- assetData: assetData
1404
- };
1405
- return ob;
1406
- }
1407
-
1408
- function createImgData(assetData) {
1409
- var path = getAssetsPath(assetData, this.assetsPath, this.path);
1410
- var img = createTag('img');
1411
- img.crossOrigin = 'anonymous';
1412
- img.addEventListener('load', this._imageLoaded, false);
1413
- img.addEventListener('error', function () {
1414
- ob.img = proxyImage;
1415
-
1416
- this._imageLoaded();
1417
- }.bind(this), false);
1418
- img.src = path;
1419
- var ob = {
1420
- img: img,
1421
- assetData: assetData
1422
- };
1423
- return ob;
1424
- }
1425
-
1426
- function createFootageData(data) {
1427
- var ob = {
1428
- assetData: data
1429
- };
1430
- var path = getAssetsPath(data, this.assetsPath, this.path);
1431
- dataManager.loadData(path, function (footageData) {
1432
- ob.img = footageData;
1433
-
1434
- this._footageLoaded();
1435
- }.bind(this), function () {
1436
- ob.img = {};
1437
-
1438
- this._footageLoaded();
1439
- }.bind(this));
1440
- return ob;
1441
- }
1442
-
1443
- function loadAssets(assets, cb) {
1444
- this.imagesLoadedCb = cb;
1445
- var i;
1446
- var len = assets.length;
1447
-
1448
- for (i = 0; i < len; i += 1) {
1449
- if (!assets[i].layers) {
1450
- if (!assets[i].t || assets[i].t === 'seq') {
1451
- this.totalImages += 1;
1452
- this.images.push(this._createImageData(assets[i]));
1453
- } else if (assets[i].t === 3) {
1454
- this.totalFootages += 1;
1455
- this.images.push(this.createFootageData(assets[i]));
1456
- }
1457
- }
1458
- }
1459
- }
1460
-
1461
- function setPath(path) {
1462
- this.path = path || '';
1463
- }
1464
-
1465
- function setAssetsPath(path) {
1466
- this.assetsPath = path || '';
1467
- }
1468
-
1469
- function getAsset(assetData) {
1470
- var i = 0;
1471
- var len = this.images.length;
1472
-
1473
- while (i < len) {
1474
- if (this.images[i].assetData === assetData) {
1475
- return this.images[i].img;
1476
- }
1477
-
1478
- i += 1;
1479
- }
1480
-
1481
- return null;
1482
- }
1483
-
1484
- function destroy() {
1485
- this.imagesLoadedCb = null;
1486
- this.images.length = 0;
1487
- }
1488
-
1489
- function loadedImages() {
1490
- return this.totalImages === this.loadedAssets;
1491
- }
1492
-
1493
- function loadedFootages() {
1494
- return this.totalFootages === this.loadedFootagesCount;
1495
- }
1496
-
1497
- function setCacheType(type, elementHelper) {
1498
- if (type === 'svg') {
1499
- this._elementHelper = elementHelper;
1500
- this._createImageData = this.createImageData.bind(this);
1501
- } else {
1502
- this._createImageData = this.createImgData.bind(this);
1503
- }
1504
- }
1505
-
1506
- function ImagePreloaderFactory() {
1507
- this._imageLoaded = imageLoaded.bind(this);
1508
- this._footageLoaded = footageLoaded.bind(this);
1509
- this.testImageLoaded = testImageLoaded.bind(this);
1510
- this.createFootageData = createFootageData.bind(this);
1511
- this.assetsPath = '';
1512
- this.path = '';
1513
- this.totalImages = 0;
1514
- this.totalFootages = 0;
1515
- this.loadedAssets = 0;
1516
- this.loadedFootagesCount = 0;
1517
- this.imagesLoadedCb = null;
1518
- this.images = [];
1519
- }
1520
-
1521
- ImagePreloaderFactory.prototype = {
1522
- loadAssets: loadAssets,
1523
- setAssetsPath: setAssetsPath,
1524
- setPath: setPath,
1525
- loadedImages: loadedImages,
1526
- loadedFootages: loadedFootages,
1527
- destroy: destroy,
1528
- getAsset: getAsset,
1529
- createImgData: createImgData,
1530
- createImageData: createImageData,
1531
- imageLoaded: imageLoaded,
1532
- footageLoaded: footageLoaded,
1533
- setCacheType: setCacheType
1534
- };
1535
- return ImagePreloaderFactory;
1536
- }();
1537
-
1538
- function BaseEvent() { }
1539
-
1540
- BaseEvent.prototype = {
1541
- triggerEvent: function triggerEvent(eventName, args) {
1542
- if (this._cbs[eventName]) {
1543
- var callbacks = this._cbs[eventName];
1544
-
1545
- for (var i = 0; i < callbacks.length; i += 1) {
1546
- callbacks[i](args);
1547
- }
1548
- }
1549
- },
1550
- addEventListener: function addEventListener(eventName, callback) {
1551
- if (!this._cbs[eventName]) {
1552
- this._cbs[eventName] = [];
1553
- }
1554
-
1555
- this._cbs[eventName].push(callback);
1556
-
1557
- return function () {
1558
- this.removeEventListener(eventName, callback);
1559
- }.bind(this);
1560
- },
1561
- removeEventListener: function removeEventListener(eventName, callback) {
1562
- if (!callback) {
1563
- this._cbs[eventName] = null;
1564
- } else if (this._cbs[eventName]) {
1565
- var i = 0;
1566
- var len = this._cbs[eventName].length;
1567
-
1568
- while (i < len) {
1569
- if (this._cbs[eventName][i] === callback) {
1570
- this._cbs[eventName].splice(i, 1);
1571
-
1572
- i -= 1;
1573
- len -= 1;
1574
- }
1575
-
1576
- i += 1;
1577
- }
1578
-
1579
- if (!this._cbs[eventName].length) {
1580
- this._cbs[eventName] = null;
1581
- }
1582
- }
1583
- }
1584
- };
1585
-
1586
- var markerParser = function () {
1587
- function parsePayloadLines(payload) {
1588
- var lines = payload.split('\r\n');
1589
- var keys = {};
1590
- var line;
1591
- var keysCount = 0;
1592
-
1593
- for (var i = 0; i < lines.length; i += 1) {
1594
- line = lines[i].split(':');
1595
-
1596
- if (line.length === 2) {
1597
- keys[line[0]] = line[1].trim();
1598
- keysCount += 1;
1599
- }
1600
- }
1601
-
1602
- if (keysCount === 0) {
1603
- throw new Error();
1604
- }
1605
-
1606
- return keys;
1607
- }
1608
-
1609
- return function (_markers) {
1610
- var markers = [];
1611
-
1612
- for (var i = 0; i < _markers.length; i += 1) {
1613
- var _marker = _markers[i];
1614
- var markerData = {
1615
- time: _marker.tm,
1616
- duration: _marker.dr
1617
- };
1618
-
1619
- try {
1620
- markerData.payload = JSON.parse(_markers[i].cm);
1621
- } catch (_) {
1622
- try {
1623
- markerData.payload = parsePayloadLines(_markers[i].cm);
1624
- } catch (__) {
1625
- markerData.payload = {
1626
- name: _markers[i].cm
1627
- };
1628
- }
1629
- }
1630
-
1631
- markers.push(markerData);
1632
- }
1633
-
1634
- return markers;
1635
- };
1636
- }();
1637
-
1638
- var ProjectInterface = function () {
1639
- function registerComposition(comp) {
1640
- this.compositions.push(comp);
1641
- }
1642
-
1643
- return function () {
1644
- function _thisProjectFunction(name) {
1645
- var i = 0;
1646
- var len = this.compositions.length;
1647
-
1648
- while (i < len) {
1649
- if (this.compositions[i].data && this.compositions[i].data.nm === name) {
1650
- if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {
1651
- this.compositions[i].prepareFrame(this.currentFrame);
1652
- }
1653
-
1654
- return this.compositions[i].compInterface;
1655
- }
1656
-
1657
- i += 1;
1658
- }
1659
-
1660
- return null;
1661
- }
1662
-
1663
- _thisProjectFunction.compositions = [];
1664
- _thisProjectFunction.currentFrame = 0;
1665
- _thisProjectFunction.registerComposition = registerComposition;
1666
- return _thisProjectFunction;
1667
- };
1668
- }();
1669
-
1670
- var renderers = {};
1671
-
1672
- var registerRenderer = function registerRenderer(key, value) {
1673
- renderers[key] = value;
1674
- };
1675
-
1676
- function getRenderer(key) {
1677
- return renderers[key];
1678
- }
1679
-
1680
- function _typeof$4(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof$4(obj); }
1681
-
1682
- var AnimationItem = function AnimationItem() {
1683
- this._cbs = [];
1684
- this.name = '';
1685
- this.path = '';
1686
- this.isLoaded = false;
1687
- this.currentFrame = 0;
1688
- this.currentRawFrame = 0;
1689
- this.firstFrame = 0;
1690
- this.totalFrames = 0;
1691
- this.frameRate = 0;
1692
- this.frameMult = 0;
1693
- this.playSpeed = 1;
1694
- this.playDirection = 1;
1695
- this.playCount = 0;
1696
- this.animationData = {};
1697
- this.assets = [];
1698
- this.isPaused = true;
1699
- this.autoplay = false;
1700
- this.loop = true;
1701
- this.renderer = null;
1702
- this.animationID = createElementID();
1703
- this.assetsPath = '';
1704
- this.timeCompleted = 0;
1705
- this.segmentPos = 0;
1706
- this.isSubframeEnabled = getSubframeEnabled();
1707
- this.segments = [];
1708
- this._idle = true;
1709
- this._completedLoop = false;
1710
- this.projectInterface = ProjectInterface();
1711
- this.imagePreloader = new ImagePreloader();
1712
- this.audioController = audioControllerFactory();
1713
- this.markers = [];
1714
- this.configAnimation = this.configAnimation.bind(this);
1715
- this.onSetupError = this.onSetupError.bind(this);
1716
- this.onSegmentComplete = this.onSegmentComplete.bind(this);
1717
- this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);
1718
- };
1719
-
1720
- extendPrototype([BaseEvent], AnimationItem);
1721
-
1722
- AnimationItem.prototype.setParams = function (params) {
1723
- if (params.wrapper || params.container) {
1724
- this.wrapper = params.wrapper || params.container;
1725
- }
1726
-
1727
- var animType = 'svg';
1728
-
1729
- if (params.animType) {
1730
- animType = params.animType;
1731
- } else if (params.renderer) {
1732
- animType = params.renderer;
1733
- }
1734
-
1735
- var RendererClass = getRenderer(animType);
1736
- this.renderer = new RendererClass(this, params.rendererSettings);
1737
- this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);
1738
- this.renderer.setProjectInterface(this.projectInterface);
1739
- this.animType = animType;
1740
-
1741
- if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {
1742
- this.loop = true;
1743
- } else if (params.loop === false) {
1744
- this.loop = false;
1745
- } else {
1746
- this.loop = parseInt(params.loop, 10);
1747
- }
1748
-
1749
- this.autoplay = 'autoplay' in params ? params.autoplay : true;
1750
- this.name = params.name ? params.name : '';
1751
- this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;
1752
- this.assetsPath = params.assetsPath;
1753
- this.initialSegment = params.initialSegment;
1754
-
1755
- if (params.audioFactory) {
1756
- this.audioController.setAudioFactory(params.audioFactory);
1757
- }
1758
-
1759
- if (params.animationData) {
1760
- this.setupAnimation(params.animationData);
1761
- } else if (params.path) {
1762
- if (params.path.lastIndexOf('\\') !== -1) {
1763
- this.path = params.path.substr(0, params.path.lastIndexOf('\\') + 1);
1764
- } else {
1765
- this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);
1766
- }
1767
-
1768
- this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);
1769
- this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));
1770
- dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);
1771
- }
1772
- };
1773
-
1774
- AnimationItem.prototype.onSetupError = function () {
1775
- this.trigger('data_failed');
1776
- };
1777
-
1778
- AnimationItem.prototype.setupAnimation = function (data) {
1779
- dataManager.completeAnimation(data, this.configAnimation);
1780
- };
1781
-
1782
- AnimationItem.prototype.setData = function (wrapper, animationData) {
1783
- if (animationData) {
1784
- if (_typeof$4(animationData) !== 'object') {
1785
- animationData = JSON.parse(animationData);
1786
- }
1787
- }
1788
-
1789
- var params = {
1790
- wrapper: wrapper,
1791
- animationData: animationData
1792
- };
1793
- var wrapperAttributes = wrapper.attributes;
1794
- params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary
1795
- ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary
1796
- ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';
1797
- params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary
1798
- ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary
1799
- ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary
1800
- ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary
1801
- ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : 'canvas';
1802
- var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary
1803
- ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary
1804
- ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';
1805
-
1806
- if (loop === 'false') {
1807
- params.loop = false;
1808
- } else if (loop === 'true') {
1809
- params.loop = true;
1810
- } else if (loop !== '') {
1811
- params.loop = parseInt(loop, 10);
1812
- }
1813
-
1814
- var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary
1815
- ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary
1816
- ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;
1817
- params.autoplay = autoplay !== 'false';
1818
- params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary
1819
- ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary
1820
- ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';
1821
- var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary
1822
- ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary
1823
- ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';
1824
-
1825
- if (prerender === 'false') {
1826
- params.prerender = false;
1827
- }
1828
-
1829
- this.setParams(params);
1830
- };
1831
-
1832
- AnimationItem.prototype.includeLayers = function (data) {
1833
- if (data.op > this.animationData.op) {
1834
- this.animationData.op = data.op;
1835
- this.totalFrames = Math.floor(data.op - this.animationData.ip);
1836
- }
1837
-
1838
- var layers = this.animationData.layers;
1839
- var i;
1840
- var len = layers.length;
1841
- var newLayers = data.layers;
1842
- var j;
1843
- var jLen = newLayers.length;
1844
-
1845
- for (j = 0; j < jLen; j += 1) {
1846
- i = 0;
1847
-
1848
- while (i < len) {
1849
- if (layers[i].id === newLayers[j].id) {
1850
- layers[i] = newLayers[j];
1851
- break;
1852
- }
1853
-
1854
- i += 1;
1855
- }
1856
- }
1857
-
1858
- if (data.chars || data.fonts) {
1859
- this.renderer.globalData.fontManager.addChars(data.chars);
1860
- this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);
1861
- }
1862
-
1863
- if (data.assets) {
1864
- len = data.assets.length;
1865
-
1866
- for (i = 0; i < len; i += 1) {
1867
- this.animationData.assets.push(data.assets[i]);
1868
- }
1869
- }
1870
-
1871
- this.animationData.__complete = false;
1872
- dataManager.completeAnimation(this.animationData, this.onSegmentComplete);
1873
- };
1874
-
1875
- AnimationItem.prototype.onSegmentComplete = function (data) {
1876
- this.animationData = data;
1877
- var expressionsPlugin = getExpressionsPlugin();
1878
-
1879
- if (expressionsPlugin) {
1880
- expressionsPlugin.initExpressions(this);
1881
- }
1882
-
1883
- this.loadNextSegment();
1884
- };
1885
-
1886
- AnimationItem.prototype.loadNextSegment = function () {
1887
- var segments = this.animationData.segments;
1888
-
1889
- if (!segments || segments.length === 0 || !this.autoloadSegments) {
1890
- this.trigger('data_ready');
1891
- this.timeCompleted = this.totalFrames;
1892
- return;
1893
- }
1894
-
1895
- var segment = segments.shift();
1896
- this.timeCompleted = segment.time * this.frameRate;
1897
- var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';
1898
- this.segmentPos += 1;
1899
- dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {
1900
- this.trigger('data_failed');
1901
- }.bind(this));
1902
- };
1903
-
1904
- AnimationItem.prototype.loadSegments = function () {
1905
- var segments = this.animationData.segments;
1906
-
1907
- if (!segments) {
1908
- this.timeCompleted = this.totalFrames;
1909
- }
1910
-
1911
- this.loadNextSegment();
1912
- };
1913
-
1914
- AnimationItem.prototype.imagesLoaded = function () {
1915
- this.trigger('loaded_images');
1916
- this.checkLoaded();
1917
- };
1918
-
1919
- AnimationItem.prototype.preloadImages = function () {
1920
- this.imagePreloader.setAssetsPath(this.assetsPath);
1921
- this.imagePreloader.setPath(this.path);
1922
- this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));
1923
- };
1924
-
1925
- AnimationItem.prototype.configAnimation = function (animData) {
1926
- if (!this.renderer) {
1927
- return;
1928
- }
1929
-
1930
- try {
1931
- this.animationData = animData;
1932
-
1933
- if (this.initialSegment) {
1934
- this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);
1935
- this.firstFrame = Math.round(this.initialSegment[0]);
1936
- } else {
1937
- this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);
1938
- this.firstFrame = Math.round(this.animationData.ip);
1939
- }
1940
-
1941
- this.renderer.configAnimation(animData);
1942
-
1943
- if (!animData.assets) {
1944
- animData.assets = [];
1945
- }
1946
-
1947
- this.assets = this.animationData.assets;
1948
- this.frameRate = this.animationData.fr;
1949
- this.frameMult = this.animationData.fr / 1000;
1950
- this.renderer.searchExtraCompositions(animData.assets);
1951
- this.markers = markerParser(animData.markers || []);
1952
- this.trigger('config_ready');
1953
- this.preloadImages();
1954
- this.loadSegments();
1955
- this.updaFrameModifier();
1956
- this.waitForFontsLoaded();
1957
-
1958
- if (this.isPaused) {
1959
- this.audioController.pause();
1960
- }
1961
- } catch (error) {
1962
- this.triggerConfigError(error);
1963
- }
1964
- };
1965
-
1966
- AnimationItem.prototype.waitForFontsLoaded = function () {
1967
- if (!this.renderer) {
1968
- return;
1969
- }
1970
-
1971
- if (this.renderer.globalData.fontManager.isLoaded) {
1972
- this.checkLoaded();
1973
- } else {
1974
- setTimeout(this.waitForFontsLoaded.bind(this), 20);
1975
- }
1976
- };
1977
-
1978
- AnimationItem.prototype.checkLoaded = function () {
1979
- if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {
1980
- this.isLoaded = true;
1981
- var expressionsPlugin = getExpressionsPlugin();
1982
-
1983
- if (expressionsPlugin) {
1984
- expressionsPlugin.initExpressions(this);
1985
- }
1986
-
1987
- this.renderer.initItems();
1988
- setTimeout(function () {
1989
- this.trigger('DOMLoaded');
1990
- }.bind(this), 0);
1991
- this.gotoFrame();
1992
-
1993
- if (this.autoplay) {
1994
- this.play();
1995
- }
1996
- }
1997
- };
1998
-
1999
- AnimationItem.prototype.resize = function () {
2000
- this.renderer.updateContainerSize();
2001
- };
2002
-
2003
- AnimationItem.prototype.setSubframe = function (flag) {
2004
- this.isSubframeEnabled = !!flag;
2005
- };
2006
-
2007
- AnimationItem.prototype.gotoFrame = function () {
2008
- this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise
2009
-
2010
- if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {
2011
- this.currentFrame = this.timeCompleted;
2012
- }
2013
-
2014
- this.trigger('enterFrame');
2015
- this.renderFrame();
2016
- this.trigger('drawnFrame');
2017
- };
2018
-
2019
- AnimationItem.prototype.renderFrame = function () {
2020
- if (this.isLoaded === false || !this.renderer) {
2021
- return;
2022
- }
2023
-
2024
- try {
2025
- this.renderer.renderFrame(this.currentFrame + this.firstFrame);
2026
- } catch (error) {
2027
- this.triggerRenderFrameError(error);
2028
- }
2029
- };
2030
-
2031
- AnimationItem.prototype.play = function (name) {
2032
- if (name && this.name !== name) {
2033
- return;
2034
- }
2035
-
2036
- if (this.isPaused === true) {
2037
- this.isPaused = false;
2038
- this.trigger('_pause');
2039
- this.audioController.resume();
2040
-
2041
- if (this._idle) {
2042
- this._idle = false;
2043
- this.trigger('_active');
2044
- }
2045
- }
2046
- };
2047
-
2048
- AnimationItem.prototype.pause = function (name) {
2049
- if (name && this.name !== name) {
2050
- return;
2051
- }
2052
-
2053
- if (this.isPaused === false) {
2054
- this.isPaused = true;
2055
- this.trigger('_play');
2056
- this._idle = true;
2057
- this.trigger('_idle');
2058
- this.audioController.pause();
2059
- }
2060
- };
2061
-
2062
- AnimationItem.prototype.togglePause = function (name) {
2063
- if (name && this.name !== name) {
2064
- return;
2065
- }
2066
-
2067
- if (this.isPaused === true) {
2068
- this.play();
2069
- } else {
2070
- this.pause();
2071
- }
2072
- };
2073
-
2074
- AnimationItem.prototype.stop = function (name) {
2075
- if (name && this.name !== name) {
2076
- return;
2077
- }
2078
-
2079
- this.pause();
2080
- this.playCount = 0;
2081
- this._completedLoop = false;
2082
- this.setCurrentRawFrameValue(0);
2083
- };
2084
-
2085
- AnimationItem.prototype.getMarkerData = function (markerName) {
2086
- var marker;
2087
-
2088
- for (var i = 0; i < this.markers.length; i += 1) {
2089
- marker = this.markers[i];
2090
-
2091
- if (marker.payload && marker.payload.name === markerName) {
2092
- return marker;
2093
- }
2094
- }
2095
-
2096
- return null;
2097
- };
2098
-
2099
- AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {
2100
- if (name && this.name !== name) {
2101
- return;
2102
- }
2103
-
2104
- var numValue = Number(value);
2105
-
2106
- if (isNaN(numValue)) {
2107
- var marker = this.getMarkerData(value);
2108
-
2109
- if (marker) {
2110
- this.goToAndStop(marker.time, true);
2111
- }
2112
- } else if (isFrame) {
2113
- this.setCurrentRawFrameValue(value);
2114
- } else {
2115
- this.setCurrentRawFrameValue(value * this.frameModifier);
2116
- }
2117
-
2118
- this.pause();
2119
- };
2120
-
2121
- AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {
2122
- if (name && this.name !== name) {
2123
- return;
2124
- }
2125
-
2126
- var numValue = Number(value);
2127
-
2128
- if (isNaN(numValue)) {
2129
- var marker = this.getMarkerData(value);
2130
-
2131
- if (marker) {
2132
- if (!marker.duration) {
2133
- this.goToAndStop(marker.time, true);
2134
- } else {
2135
- this.playSegments([marker.time, marker.time + marker.duration], true);
2136
- }
2137
- }
2138
- } else {
2139
- this.goToAndStop(numValue, isFrame, name);
2140
- }
2141
-
2142
- this.play();
2143
- };
2144
-
2145
- AnimationItem.prototype.advanceTime = function (value) {
2146
- if (this.isPaused === true || this.isLoaded === false) {
2147
- return;
2148
- }
2149
-
2150
- var nextValue = this.currentRawFrame + value * this.frameModifier;
2151
- var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.
2152
- // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.
2153
-
2154
- if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {
2155
- if (!this.loop || this.playCount === this.loop) {
2156
- if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {
2157
- _isComplete = true;
2158
- nextValue = this.totalFrames - 1;
2159
- }
2160
- } else if (nextValue >= this.totalFrames) {
2161
- this.playCount += 1;
2162
-
2163
- if (!this.checkSegments(nextValue % this.totalFrames)) {
2164
- this.setCurrentRawFrameValue(nextValue % this.totalFrames);
2165
- this._completedLoop = true;
2166
- this.trigger('loopComplete');
2167
- }
2168
- } else {
2169
- this.setCurrentRawFrameValue(nextValue);
2170
- }
2171
- } else if (nextValue < 0) {
2172
- if (!this.checkSegments(nextValue % this.totalFrames)) {
2173
- if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {
2174
- // eslint-disable-line no-plusplus
2175
- this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);
2176
-
2177
- if (!this._completedLoop) {
2178
- this._completedLoop = true;
2179
- } else {
2180
- this.trigger('loopComplete');
2181
- }
2182
- } else {
2183
- _isComplete = true;
2184
- nextValue = 0;
2185
- }
2186
- }
2187
- } else {
2188
- this.setCurrentRawFrameValue(nextValue);
2189
- }
2190
-
2191
- if (_isComplete) {
2192
- this.setCurrentRawFrameValue(nextValue);
2193
- this.pause();
2194
- this.trigger('complete');
2195
- }
2196
- };
2197
-
2198
- AnimationItem.prototype.adjustSegment = function (arr, offset) {
2199
- this.playCount = 0;
2200
-
2201
- if (arr[1] < arr[0]) {
2202
- if (this.frameModifier > 0) {
2203
- if (this.playSpeed < 0) {
2204
- this.setSpeed(-this.playSpeed);
2205
- } else {
2206
- this.setDirection(-1);
2207
- }
2208
- }
2209
-
2210
- this.totalFrames = arr[0] - arr[1];
2211
- this.timeCompleted = this.totalFrames;
2212
- this.firstFrame = arr[1];
2213
- this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);
2214
- } else if (arr[1] > arr[0]) {
2215
- if (this.frameModifier < 0) {
2216
- if (this.playSpeed < 0) {
2217
- this.setSpeed(-this.playSpeed);
2218
- } else {
2219
- this.setDirection(1);
2220
- }
2221
- }
2222
-
2223
- this.totalFrames = arr[1] - arr[0];
2224
- this.timeCompleted = this.totalFrames;
2225
- this.firstFrame = arr[0];
2226
- this.setCurrentRawFrameValue(0.001 + offset);
2227
- }
2228
-
2229
- this.trigger('segmentStart');
2230
- };
2231
-
2232
- AnimationItem.prototype.setSegment = function (init, end) {
2233
- var pendingFrame = -1;
2234
-
2235
- if (this.isPaused) {
2236
- if (this.currentRawFrame + this.firstFrame < init) {
2237
- pendingFrame = init;
2238
- } else if (this.currentRawFrame + this.firstFrame > end) {
2239
- pendingFrame = end - init;
2240
- }
2241
- }
2242
-
2243
- this.firstFrame = init;
2244
- this.totalFrames = end - init;
2245
- this.timeCompleted = this.totalFrames;
2246
-
2247
- if (pendingFrame !== -1) {
2248
- this.goToAndStop(pendingFrame, true);
2249
- }
2250
- };
2251
-
2252
- AnimationItem.prototype.playSegments = function (arr, forceFlag) {
2253
- if (forceFlag) {
2254
- this.segments.length = 0;
2255
- }
2256
-
2257
- if (_typeof$4(arr[0]) === 'object') {
2258
- var i;
2259
- var len = arr.length;
2260
-
2261
- for (i = 0; i < len; i += 1) {
2262
- this.segments.push(arr[i]);
2263
- }
2264
- } else {
2265
- this.segments.push(arr);
2266
- }
2267
-
2268
- if (this.segments.length && forceFlag) {
2269
- this.adjustSegment(this.segments.shift(), 0);
2270
- }
2271
-
2272
- if (this.isPaused) {
2273
- this.play();
2274
- }
2275
- };
2276
-
2277
- AnimationItem.prototype.resetSegments = function (forceFlag) {
2278
- this.segments.length = 0;
2279
- this.segments.push([this.animationData.ip, this.animationData.op]);
2280
-
2281
- if (forceFlag) {
2282
- this.checkSegments(0);
2283
- }
2284
- };
2285
-
2286
- AnimationItem.prototype.checkSegments = function (offset) {
2287
- if (this.segments.length) {
2288
- this.adjustSegment(this.segments.shift(), offset);
2289
- return true;
2290
- }
2291
-
2292
- return false;
2293
- };
2294
-
2295
- AnimationItem.prototype.destroy = function (name) {
2296
- if (name && this.name !== name || !this.renderer) {
2297
- return;
2298
- }
2299
-
2300
- this.renderer.destroy();
2301
- this.imagePreloader.destroy();
2302
- this.trigger('destroy');
2303
- this._cbs = null;
2304
- this.onEnterFrame = null;
2305
- this.onLoopComplete = null;
2306
- this.onComplete = null;
2307
- this.onSegmentStart = null;
2308
- this.onDestroy = null;
2309
- this.renderer = null;
2310
- this.renderer = null;
2311
- this.imagePreloader = null;
2312
- this.projectInterface = null;
2313
- };
2314
-
2315
- AnimationItem.prototype.setCurrentRawFrameValue = function (value) {
2316
- this.currentRawFrame = value;
2317
- this.gotoFrame();
2318
- };
2319
-
2320
- AnimationItem.prototype.setSpeed = function (val) {
2321
- this.playSpeed = val;
2322
- this.updaFrameModifier();
2323
- };
2324
-
2325
- AnimationItem.prototype.setDirection = function (val) {
2326
- this.playDirection = val < 0 ? -1 : 1;
2327
- this.updaFrameModifier();
2328
- };
2329
-
2330
- AnimationItem.prototype.setVolume = function (val, name) {
2331
- if (name && this.name !== name) {
2332
- return;
2333
- }
2334
-
2335
- this.audioController.setVolume(val);
2336
- };
2337
-
2338
- AnimationItem.prototype.getVolume = function () {
2339
- return this.audioController.getVolume();
2340
- };
2341
-
2342
- AnimationItem.prototype.mute = function (name) {
2343
- if (name && this.name !== name) {
2344
- return;
2345
- }
2346
-
2347
- this.audioController.mute();
2348
- };
2349
-
2350
- AnimationItem.prototype.unmute = function (name) {
2351
- if (name && this.name !== name) {
2352
- return;
2353
- }
2354
-
2355
- this.audioController.unmute();
2356
- };
2357
-
2358
- AnimationItem.prototype.updaFrameModifier = function () {
2359
- this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;
2360
- this.audioController.setRate(this.playSpeed * this.playDirection);
2361
- };
2362
-
2363
- AnimationItem.prototype.getPath = function () {
2364
- return this.path;
2365
- };
2366
-
2367
- AnimationItem.prototype.getAssetsPath = function (assetData) {
2368
- var path = '';
2369
-
2370
- if (assetData.e) {
2371
- path = assetData.p;
2372
- } else if (this.assetsPath) {
2373
- var imagePath = assetData.p;
2374
-
2375
- if (imagePath.indexOf('images/') !== -1) {
2376
- imagePath = imagePath.split('/')[1];
2377
- }
2378
-
2379
- path = this.assetsPath + imagePath;
2380
- } else {
2381
- path = this.path;
2382
- path += assetData.u ? assetData.u : '';
2383
- path += assetData.p;
2384
- }
2385
-
2386
- return path;
2387
- };
2388
-
2389
- AnimationItem.prototype.getAssetData = function (id) {
2390
- var i = 0;
2391
- var len = this.assets.length;
2392
-
2393
- while (i < len) {
2394
- if (id === this.assets[i].id) {
2395
- return this.assets[i];
2396
- }
2397
-
2398
- i += 1;
2399
- }
2400
-
2401
- return null;
2402
- };
2403
-
2404
- AnimationItem.prototype.hide = function () {
2405
- this.renderer.hide();
2406
- };
2407
-
2408
- AnimationItem.prototype.show = function () {
2409
- this.renderer.show();
2410
- };
2411
-
2412
- AnimationItem.prototype.getDuration = function (isFrame) {
2413
- return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;
2414
- };
2415
-
2416
- AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {
2417
- try {
2418
- var element = this.renderer.getElementByPath(path);
2419
- element.updateDocumentData(documentData, index);
2420
- } catch (error) {// TODO: decide how to handle catch case
2421
- }
2422
- };
2423
-
2424
- AnimationItem.prototype.trigger = function (name) {
2425
- if (this._cbs && this._cbs[name]) {
2426
- switch (name) {
2427
- case 'enterFrame':
2428
- this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));
2429
- break;
2430
-
2431
- case 'drawnFrame':
2432
- this.drawnFrameEvent.currentTime = this.currentFrame;
2433
- this.drawnFrameEvent.totalTime = this.totalFrames;
2434
- this.drawnFrameEvent.direction = this.frameModifier;
2435
- this.triggerEvent(name, this.drawnFrameEvent);
2436
- break;
2437
-
2438
- case 'loopComplete':
2439
- this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));
2440
- break;
2441
-
2442
- case 'complete':
2443
- this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));
2444
- break;
2445
-
2446
- case 'segmentStart':
2447
- this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));
2448
- break;
2449
-
2450
- case 'destroy':
2451
- this.triggerEvent(name, new BMDestroyEvent(name, this));
2452
- break;
2453
-
2454
- default:
2455
- this.triggerEvent(name);
2456
- }
2457
- }
2458
-
2459
- if (name === 'enterFrame' && this.onEnterFrame) {
2460
- this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));
2461
- }
2462
-
2463
- if (name === 'loopComplete' && this.onLoopComplete) {
2464
- this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));
2465
- }
2466
-
2467
- if (name === 'complete' && this.onComplete) {
2468
- this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));
2469
- }
2470
-
2471
- if (name === 'segmentStart' && this.onSegmentStart) {
2472
- this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));
2473
- }
2474
-
2475
- if (name === 'destroy' && this.onDestroy) {
2476
- this.onDestroy.call(this, new BMDestroyEvent(name, this));
2477
- }
2478
- };
2479
-
2480
- AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {
2481
- var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);
2482
- this.triggerEvent('error', error);
2483
-
2484
- if (this.onError) {
2485
- this.onError.call(this, error);
2486
- }
2487
- };
2488
-
2489
- AnimationItem.prototype.triggerConfigError = function (nativeError) {
2490
- var error = new BMConfigErrorEvent(nativeError, this.currentFrame);
2491
- this.triggerEvent('error', error);
2492
-
2493
- if (this.onError) {
2494
- this.onError.call(this, error);
2495
- }
2496
- };
2497
-
2498
- var animationManager = function () {
2499
- var moduleOb = {};
2500
- var registeredAnimations = [];
2501
- var initTime = 0;
2502
- var len = 0;
2503
- var playingAnimationsNum = 0;
2504
- var _stopped = true;
2505
- var _isFrozen = false;
2506
-
2507
- function removeElement(ev) {
2508
- var i = 0;
2509
- var animItem = ev.target;
2510
-
2511
- while (i < len) {
2512
- if (registeredAnimations[i].animation === animItem) {
2513
- registeredAnimations.splice(i, 1);
2514
- i -= 1;
2515
- len -= 1;
2516
-
2517
- if (!animItem.isPaused) {
2518
- subtractPlayingCount();
2519
- }
2520
- }
2521
-
2522
- i += 1;
2523
- }
2524
- }
2525
-
2526
- function registerAnimation(element, animationData) {
2527
- if (!element) {
2528
- return null;
2529
- }
2530
-
2531
- var i = 0;
2532
-
2533
- while (i < len) {
2534
- if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {
2535
- return registeredAnimations[i].animation;
2536
- }
2537
-
2538
- i += 1;
2539
- }
2540
-
2541
- var animItem = new AnimationItem();
2542
- setupAnimation(animItem, element);
2543
- animItem.setData(element, animationData);
2544
- return animItem;
2545
- }
2546
-
2547
- function getRegisteredAnimations() {
2548
- var i;
2549
- var lenAnims = registeredAnimations.length;
2550
- var animations = [];
2551
-
2552
- for (i = 0; i < lenAnims; i += 1) {
2553
- animations.push(registeredAnimations[i].animation);
2554
- }
2555
-
2556
- return animations;
2557
- }
2558
-
2559
- function addPlayingCount() {
2560
- playingAnimationsNum += 1;
2561
- activate();
2562
- }
2563
-
2564
- function subtractPlayingCount() {
2565
- playingAnimationsNum -= 1;
2566
- }
2567
-
2568
- function setupAnimation(animItem, element) {
2569
- animItem.addEventListener('destroy', removeElement);
2570
- animItem.addEventListener('_active', addPlayingCount);
2571
- animItem.addEventListener('_idle', subtractPlayingCount);
2572
- registeredAnimations.push({
2573
- elem: element,
2574
- animation: animItem
2575
- });
2576
- len += 1;
2577
- }
2578
-
2579
- function loadAnimation(params) {
2580
- var animItem = new AnimationItem();
2581
- setupAnimation(animItem, null);
2582
- animItem.setParams(params);
2583
- return animItem;
2584
- }
2585
-
2586
- function setSpeed(val, animation) {
2587
- var i;
2588
-
2589
- for (i = 0; i < len; i += 1) {
2590
- registeredAnimations[i].animation.setSpeed(val, animation);
2591
- }
2592
- }
2593
-
2594
- function setDirection(val, animation) {
2595
- var i;
2596
-
2597
- for (i = 0; i < len; i += 1) {
2598
- registeredAnimations[i].animation.setDirection(val, animation);
2599
- }
2600
- }
2601
-
2602
- function play(animation) {
2603
- var i;
2604
-
2605
- for (i = 0; i < len; i += 1) {
2606
- registeredAnimations[i].animation.play(animation);
2607
- }
2608
- }
2609
-
2610
- function resume(nowTime) {
2611
- var elapsedTime = nowTime - initTime;
2612
- var i;
2613
-
2614
- for (i = 0; i < len; i += 1) {
2615
- registeredAnimations[i].animation.advanceTime(elapsedTime);
2616
- }
2617
-
2618
- initTime = nowTime;
2619
-
2620
- if (playingAnimationsNum && !_isFrozen) {
2621
- window.requestAnimationFrame(resume);
2622
- } else {
2623
- _stopped = true;
2624
- }
2625
- }
2626
-
2627
- function first(nowTime) {
2628
- initTime = nowTime;
2629
- window.requestAnimationFrame(resume);
2630
- }
2631
-
2632
- function pause(animation) {
2633
- var i;
2634
-
2635
- for (i = 0; i < len; i += 1) {
2636
- registeredAnimations[i].animation.pause(animation);
2637
- }
2638
- }
2639
-
2640
- function goToAndStop(value, isFrame, animation) {
2641
- var i;
2642
-
2643
- for (i = 0; i < len; i += 1) {
2644
- registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);
2645
- }
2646
- }
2647
-
2648
- function stop(animation) {
2649
- var i;
2650
-
2651
- for (i = 0; i < len; i += 1) {
2652
- registeredAnimations[i].animation.stop(animation);
2653
- }
2654
- }
2655
-
2656
- function togglePause(animation) {
2657
- var i;
2658
-
2659
- for (i = 0; i < len; i += 1) {
2660
- registeredAnimations[i].animation.togglePause(animation);
2661
- }
2662
- }
2663
-
2664
- function destroy(animation) {
2665
- var i;
2666
-
2667
- for (i = len - 1; i >= 0; i -= 1) {
2668
- registeredAnimations[i].animation.destroy(animation);
2669
- }
2670
- }
2671
-
2672
- function searchAnimations(animationData, standalone, renderer) {
2673
- var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));
2674
- var i;
2675
- var lenAnims = animElements.length;
2676
-
2677
- for (i = 0; i < lenAnims; i += 1) {
2678
- if (renderer) {
2679
- animElements[i].setAttribute('data-bm-type', renderer);
2680
- }
2681
-
2682
- registerAnimation(animElements[i], animationData);
2683
- }
2684
-
2685
- if (standalone && lenAnims === 0) {
2686
- if (!renderer) {
2687
- renderer = 'svg';
2688
- }
2689
-
2690
- var body = document.getElementsByTagName('body')[0];
2691
- body.innerText = '';
2692
- var div = createTag('div');
2693
- div.style.width = '100%';
2694
- div.style.height = '100%';
2695
- div.setAttribute('data-bm-type', renderer);
2696
- body.appendChild(div);
2697
- registerAnimation(div, animationData);
2698
- }
2699
- }
2700
-
2701
- function resize() {
2702
- var i;
2703
-
2704
- for (i = 0; i < len; i += 1) {
2705
- registeredAnimations[i].animation.resize();
2706
- }
2707
- }
2708
-
2709
- function activate() {
2710
- if (!_isFrozen && playingAnimationsNum) {
2711
- if (_stopped) {
2712
- window.requestAnimationFrame(first);
2713
- _stopped = false;
2714
- }
2715
- }
2716
- }
2717
-
2718
- function freeze() {
2719
- _isFrozen = true;
2720
- }
2721
-
2722
- function unfreeze() {
2723
- _isFrozen = false;
2724
- activate();
2725
- }
2726
-
2727
- function setVolume(val, animation) {
2728
- var i;
2729
-
2730
- for (i = 0; i < len; i += 1) {
2731
- registeredAnimations[i].animation.setVolume(val, animation);
2732
- }
2733
- }
2734
-
2735
- function mute(animation) {
2736
- var i;
2737
-
2738
- for (i = 0; i < len; i += 1) {
2739
- registeredAnimations[i].animation.mute(animation);
2740
- }
2741
- }
2742
-
2743
- function unmute(animation) {
2744
- var i;
2745
-
2746
- for (i = 0; i < len; i += 1) {
2747
- registeredAnimations[i].animation.unmute(animation);
2748
- }
2749
- }
2750
-
2751
- moduleOb.registerAnimation = registerAnimation;
2752
- moduleOb.loadAnimation = loadAnimation;
2753
- moduleOb.setSpeed = setSpeed;
2754
- moduleOb.setDirection = setDirection;
2755
- moduleOb.play = play;
2756
- moduleOb.pause = pause;
2757
- moduleOb.stop = stop;
2758
- moduleOb.togglePause = togglePause;
2759
- moduleOb.searchAnimations = searchAnimations;
2760
- moduleOb.resize = resize; // moduleOb.start = start;
2761
-
2762
- moduleOb.goToAndStop = goToAndStop;
2763
- moduleOb.destroy = destroy;
2764
- moduleOb.freeze = freeze;
2765
- moduleOb.unfreeze = unfreeze;
2766
- moduleOb.setVolume = setVolume;
2767
- moduleOb.mute = mute;
2768
- moduleOb.unmute = unmute;
2769
- moduleOb.getRegisteredAnimations = getRegisteredAnimations;
2770
- return moduleOb;
2771
- }();
2772
-
2773
- /* eslint-disable */
2774
- var BezierFactory = function () {
2775
- /**
2776
- * BezierEasing - use bezier curve for transition easing function
2777
- * by Gaëtan Renaudeau 2014 - 2015 – MIT License
2778
- *
2779
- * Credits: is based on Firefox's nsSMILKeySpline.cpp
2780
- * Usage:
2781
- * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])
2782
- * spline.get(x) => returns the easing value | x must be in [0, 1] range
2783
- *
2784
- */
2785
- var ob = {};
2786
- ob.getBezierEasing = getBezierEasing;
2787
- var beziers = {};
2788
-
2789
- function getBezierEasing(a, b, c, d, nm) {
2790
- var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\./g, 'p');
2791
-
2792
- if (beziers[str]) {
2793
- return beziers[str];
2794
- }
2795
-
2796
- var bezEasing = new BezierEasing([a, b, c, d]);
2797
- beziers[str] = bezEasing;
2798
- return bezEasing;
2799
- } // These values are established by empiricism with tests (tradeoff: performance VS precision)
2800
-
2801
-
2802
- var NEWTON_ITERATIONS = 4;
2803
- var NEWTON_MIN_SLOPE = 0.001;
2804
- var SUBDIVISION_PRECISION = 0.0000001;
2805
- var SUBDIVISION_MAX_ITERATIONS = 10;
2806
- var kSplineTableSize = 11;
2807
- var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);
2808
- var float32ArraySupported = typeof Float32Array === 'function';
2809
-
2810
- function A(aA1, aA2) {
2811
- return 1.0 - 3.0 * aA2 + 3.0 * aA1;
2812
- }
2813
-
2814
- function B(aA1, aA2) {
2815
- return 3.0 * aA2 - 6.0 * aA1;
2816
- }
2817
-
2818
- function C(aA1) {
2819
- return 3.0 * aA1;
2820
- } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.
2821
-
2822
-
2823
- function calcBezier(aT, aA1, aA2) {
2824
- return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;
2825
- } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.
2826
-
2827
-
2828
- function getSlope(aT, aA1, aA2) {
2829
- return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);
2830
- }
2831
-
2832
- function binarySubdivide(aX, aA, aB, mX1, mX2) {
2833
- var currentX,
2834
- currentT,
2835
- i = 0;
2836
-
2837
- do {
2838
- currentT = aA + (aB - aA) / 2.0;
2839
- currentX = calcBezier(currentT, mX1, mX2) - aX;
2840
-
2841
- if (currentX > 0.0) {
2842
- aB = currentT;
2843
- } else {
2844
- aA = currentT;
2845
- }
2846
- } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);
2847
-
2848
- return currentT;
2849
- }
2850
-
2851
- function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {
2852
- for (var i = 0; i < NEWTON_ITERATIONS; ++i) {
2853
- var currentSlope = getSlope(aGuessT, mX1, mX2);
2854
- if (currentSlope === 0.0) return aGuessT;
2855
- var currentX = calcBezier(aGuessT, mX1, mX2) - aX;
2856
- aGuessT -= currentX / currentSlope;
2857
- }
2858
-
2859
- return aGuessT;
2860
- }
2861
- /**
2862
- * points is an array of [ mX1, mY1, mX2, mY2 ]
2863
- */
2864
-
2865
-
2866
- function BezierEasing(points) {
2867
- this._p = points;
2868
- this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);
2869
- this._precomputed = false;
2870
- this.get = this.get.bind(this);
2871
- }
2872
-
2873
- BezierEasing.prototype = {
2874
- get: function get(x) {
2875
- var mX1 = this._p[0],
2876
- mY1 = this._p[1],
2877
- mX2 = this._p[2],
2878
- mY2 = this._p[3];
2879
- if (!this._precomputed) this._precompute();
2880
- if (mX1 === mY1 && mX2 === mY2) return x; // linear
2881
- // Because JavaScript number are imprecise, we should guarantee the extremes are right.
2882
-
2883
- if (x === 0) return 0;
2884
- if (x === 1) return 1;
2885
- return calcBezier(this._getTForX(x), mY1, mY2);
2886
- },
2887
- // Private part
2888
- _precompute: function _precompute() {
2889
- var mX1 = this._p[0],
2890
- mY1 = this._p[1],
2891
- mX2 = this._p[2],
2892
- mY2 = this._p[3];
2893
- this._precomputed = true;
2894
-
2895
- if (mX1 !== mY1 || mX2 !== mY2) {
2896
- this._calcSampleValues();
2897
- }
2898
- },
2899
- _calcSampleValues: function _calcSampleValues() {
2900
- var mX1 = this._p[0],
2901
- mX2 = this._p[2];
2902
-
2903
- for (var i = 0; i < kSplineTableSize; ++i) {
2904
- this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);
2905
- }
2906
- },
2907
-
2908
- /**
2909
- * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.
2910
- */
2911
- _getTForX: function _getTForX(aX) {
2912
- var mX1 = this._p[0],
2913
- mX2 = this._p[2],
2914
- mSampleValues = this._mSampleValues;
2915
- var intervalStart = 0.0;
2916
- var currentSample = 1;
2917
- var lastSample = kSplineTableSize - 1;
2918
-
2919
- for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {
2920
- intervalStart += kSampleStepSize;
2921
- }
2922
-
2923
- --currentSample; // Interpolate to provide an initial guess for t
2924
-
2925
- var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);
2926
- var guessForT = intervalStart + dist * kSampleStepSize;
2927
- var initialSlope = getSlope(guessForT, mX1, mX2);
2928
-
2929
- if (initialSlope >= NEWTON_MIN_SLOPE) {
2930
- return newtonRaphsonIterate(aX, guessForT, mX1, mX2);
2931
- }
2932
-
2933
- if (initialSlope === 0.0) {
2934
- return guessForT;
2935
- }
2936
-
2937
- return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);
2938
- }
2939
- };
2940
- return ob;
2941
- }();
2942
-
2943
- var pooling = function () {
2944
- function _double(arr) {
2945
- return arr.concat(createSizedArray(arr.length));
2946
- }
2947
-
2948
- return {
2949
- "double": _double
2950
- };
2951
- }();
2952
-
2953
- var poolFactory = function () {
2954
- return function (initialLength, _create, _release) {
2955
- var _length = 0;
2956
- var _maxLength = initialLength;
2957
- var pool = createSizedArray(_maxLength);
2958
- var ob = {
2959
- newElement: newElement,
2960
- release: release
2961
- };
2962
-
2963
- function newElement() {
2964
- var element;
2965
-
2966
- if (_length) {
2967
- _length -= 1;
2968
- element = pool[_length];
2969
- } else {
2970
- element = _create();
2971
- }
2972
-
2973
- return element;
2974
- }
2975
-
2976
- function release(element) {
2977
- if (_length === _maxLength) {
2978
- pool = pooling["double"](pool);
2979
- _maxLength *= 2;
2980
- }
2981
-
2982
- if (_release) {
2983
- _release(element);
2984
- }
2985
-
2986
- pool[_length] = element;
2987
- _length += 1;
2988
- }
2989
-
2990
- return ob;
2991
- };
2992
- }();
2993
-
2994
- var bezierLengthPool = function () {
2995
- function create() {
2996
- return {
2997
- addedLength: 0,
2998
- percents: createTypedArray('float32', getDefaultCurveSegments()),
2999
- lengths: createTypedArray('float32', getDefaultCurveSegments())
3000
- };
3001
- }
3002
-
3003
- return poolFactory(8, create);
3004
- }();
3005
-
3006
- var segmentsLengthPool = function () {
3007
- function create() {
3008
- return {
3009
- lengths: [],
3010
- totalLength: 0
3011
- };
3012
- }
3013
-
3014
- function release(element) {
3015
- var i;
3016
- var len = element.lengths.length;
3017
-
3018
- for (i = 0; i < len; i += 1) {
3019
- bezierLengthPool.release(element.lengths[i]);
3020
- }
3021
-
3022
- element.lengths.length = 0;
3023
- }
3024
-
3025
- return poolFactory(8, create, release);
3026
- }();
3027
-
3028
- function bezFunction() {
3029
- var math = Math;
3030
-
3031
- function pointOnLine2D(x1, y1, x2, y2, x3, y3) {
3032
- var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;
3033
- return det1 > -0.001 && det1 < 0.001;
3034
- }
3035
-
3036
- function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {
3037
- if (z1 === 0 && z2 === 0 && z3 === 0) {
3038
- return pointOnLine2D(x1, y1, x2, y2, x3, y3);
3039
- }
3040
-
3041
- var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));
3042
- var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));
3043
- var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));
3044
- var diffDist;
3045
-
3046
- if (dist1 > dist2) {
3047
- if (dist1 > dist3) {
3048
- diffDist = dist1 - dist2 - dist3;
3049
- } else {
3050
- diffDist = dist3 - dist2 - dist1;
3051
- }
3052
- } else if (dist3 > dist2) {
3053
- diffDist = dist3 - dist2 - dist1;
3054
- } else {
3055
- diffDist = dist2 - dist1 - dist3;
3056
- }
3057
-
3058
- return diffDist > -0.0001 && diffDist < 0.0001;
3059
- }
3060
-
3061
- var getBezierLength = function () {
3062
- return function (pt1, pt2, pt3, pt4) {
3063
- var curveSegments = getDefaultCurveSegments();
3064
- var k;
3065
- var i;
3066
- var len;
3067
- var ptCoord;
3068
- var perc;
3069
- var addedLength = 0;
3070
- var ptDistance;
3071
- var point = [];
3072
- var lastPoint = [];
3073
- var lengthData = bezierLengthPool.newElement();
3074
- len = pt3.length;
3075
-
3076
- for (k = 0; k < curveSegments; k += 1) {
3077
- perc = k / (curveSegments - 1);
3078
- ptDistance = 0;
3079
-
3080
- for (i = 0; i < len; i += 1) {
3081
- ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];
3082
- point[i] = ptCoord;
3083
-
3084
- if (lastPoint[i] !== null) {
3085
- ptDistance += bmPow(point[i] - lastPoint[i], 2);
3086
- }
3087
-
3088
- lastPoint[i] = point[i];
3089
- }
3090
-
3091
- if (ptDistance) {
3092
- ptDistance = bmSqrt(ptDistance);
3093
- addedLength += ptDistance;
3094
- }
3095
-
3096
- lengthData.percents[k] = perc;
3097
- lengthData.lengths[k] = addedLength;
3098
- }
3099
-
3100
- lengthData.addedLength = addedLength;
3101
- return lengthData;
3102
- };
3103
- }();
3104
-
3105
- function getSegmentsLength(shapeData) {
3106
- var segmentsLength = segmentsLengthPool.newElement();
3107
- var closed = shapeData.c;
3108
- var pathV = shapeData.v;
3109
- var pathO = shapeData.o;
3110
- var pathI = shapeData.i;
3111
- var i;
3112
- var len = shapeData._length;
3113
- var lengths = segmentsLength.lengths;
3114
- var totalLength = 0;
3115
-
3116
- for (i = 0; i < len - 1; i += 1) {
3117
- lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);
3118
- totalLength += lengths[i].addedLength;
3119
- }
3120
-
3121
- if (closed && len) {
3122
- lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);
3123
- totalLength += lengths[i].addedLength;
3124
- }
3125
-
3126
- segmentsLength.totalLength = totalLength;
3127
- return segmentsLength;
3128
- }
3129
-
3130
- function BezierData(length) {
3131
- this.segmentLength = 0;
3132
- this.points = new Array(length);
3133
- }
3134
-
3135
- function PointData(partial, point) {
3136
- this.partialLength = partial;
3137
- this.point = point;
3138
- }
3139
-
3140
- var buildBezierData = function () {
3141
- var storedData = {};
3142
- return function (pt1, pt2, pt3, pt4) {
3143
- var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\./g, 'p');
3144
-
3145
- if (!storedData[bezierName]) {
3146
- var curveSegments = getDefaultCurveSegments();
3147
- var k;
3148
- var i;
3149
- var len;
3150
- var ptCoord;
3151
- var perc;
3152
- var addedLength = 0;
3153
- var ptDistance;
3154
- var point;
3155
- var lastPoint = null;
3156
-
3157
- if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {
3158
- curveSegments = 2;
3159
- }
3160
-
3161
- var bezierData = new BezierData(curveSegments);
3162
- len = pt3.length;
3163
-
3164
- for (k = 0; k < curveSegments; k += 1) {
3165
- point = createSizedArray(len);
3166
- perc = k / (curveSegments - 1);
3167
- ptDistance = 0;
3168
-
3169
- for (i = 0; i < len; i += 1) {
3170
- ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];
3171
- point[i] = ptCoord;
3172
-
3173
- if (lastPoint !== null) {
3174
- ptDistance += bmPow(point[i] - lastPoint[i], 2);
3175
- }
3176
- }
3177
-
3178
- ptDistance = bmSqrt(ptDistance);
3179
- addedLength += ptDistance;
3180
- bezierData.points[k] = new PointData(ptDistance, point);
3181
- lastPoint = point;
3182
- }
3183
-
3184
- bezierData.segmentLength = addedLength;
3185
- storedData[bezierName] = bezierData;
3186
- }
3187
-
3188
- return storedData[bezierName];
3189
- };
3190
- }();
3191
-
3192
- function getDistancePerc(perc, bezierData) {
3193
- var percents = bezierData.percents;
3194
- var lengths = bezierData.lengths;
3195
- var len = percents.length;
3196
- var initPos = bmFloor((len - 1) * perc);
3197
- var lengthPos = perc * bezierData.addedLength;
3198
- var lPerc = 0;
3199
-
3200
- if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {
3201
- return percents[initPos];
3202
- }
3203
-
3204
- var dir = lengths[initPos] > lengthPos ? -1 : 1;
3205
- var flag = true;
3206
-
3207
- while (flag) {
3208
- if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {
3209
- lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);
3210
- flag = false;
3211
- } else {
3212
- initPos += dir;
3213
- }
3214
-
3215
- if (initPos < 0 || initPos >= len - 1) {
3216
- // FIX for TypedArrays that don't store floating point values with enough accuracy
3217
- if (initPos === len - 1) {
3218
- return percents[initPos];
3219
- }
3220
-
3221
- flag = false;
3222
- }
3223
- }
3224
-
3225
- return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;
3226
- }
3227
-
3228
- function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {
3229
- var t1 = getDistancePerc(percent, bezierData);
3230
- var u1 = 1 - t1;
3231
- var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;
3232
- var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;
3233
- return [ptX, ptY];
3234
- }
3235
-
3236
- var bezierSegmentPoints = createTypedArray('float32', 8);
3237
-
3238
- function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {
3239
- if (startPerc < 0) {
3240
- startPerc = 0;
3241
- } else if (startPerc > 1) {
3242
- startPerc = 1;
3243
- }
3244
-
3245
- var t0 = getDistancePerc(startPerc, bezierData);
3246
- endPerc = endPerc > 1 ? 1 : endPerc;
3247
- var t1 = getDistancePerc(endPerc, bezierData);
3248
- var i;
3249
- var len = pt1.length;
3250
- var u0 = 1 - t0;
3251
- var u1 = 1 - t1;
3252
- var u0u0u0 = u0 * u0 * u0;
3253
- var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase
3254
-
3255
- var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase
3256
-
3257
- var t0t0t0 = t0 * t0 * t0; //
3258
-
3259
- var u0u0u1 = u0 * u0 * u1;
3260
- var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase
3261
-
3262
- var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase
3263
-
3264
- var t0t0t1 = t0 * t0 * t1; //
3265
-
3266
- var u0u1u1 = u0 * u1 * u1;
3267
- var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase
3268
-
3269
- var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase
3270
-
3271
- var t0t1t1 = t0 * t1 * t1; //
3272
-
3273
- var u1u1u1 = u1 * u1 * u1;
3274
- var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase
3275
-
3276
- var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase
3277
-
3278
- var t1t1t1 = t1 * t1 * t1;
3279
-
3280
- for (i = 0; i < len; i += 1) {
3281
- bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase
3282
-
3283
- bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase
3284
-
3285
- bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase
3286
-
3287
- bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase
3288
- }
3289
-
3290
- return bezierSegmentPoints;
3291
- }
3292
-
3293
- return {
3294
- getSegmentsLength: getSegmentsLength,
3295
- getNewSegment: getNewSegment,
3296
- getPointInSegment: getPointInSegment,
3297
- buildBezierData: buildBezierData,
3298
- pointOnLine2D: pointOnLine2D,
3299
- pointOnLine3D: pointOnLine3D
3300
- };
3301
- }
3302
-
3303
- var bez = bezFunction();
3304
-
3305
- var PropertyFactory = function () {
3306
- var initFrame = initialDefaultFrame;
3307
- var mathAbs = Math.abs;
3308
-
3309
- function interpolateValue(frameNum, caching) {
3310
- var offsetTime = this.offsetTime;
3311
- var newValue;
3312
-
3313
- if (this.propType === 'multidimensional') {
3314
- newValue = createTypedArray('float32', this.pv.length);
3315
- }
3316
-
3317
- var iterationIndex = caching.lastIndex;
3318
- var i = iterationIndex;
3319
- var len = this.keyframes.length - 1;
3320
- var flag = true;
3321
- var keyData;
3322
- var nextKeyData;
3323
- var keyframeMetadata;
3324
-
3325
- while (flag) {
3326
- keyData = this.keyframes[i];
3327
- nextKeyData = this.keyframes[i + 1];
3328
-
3329
- if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {
3330
- if (keyData.h) {
3331
- keyData = nextKeyData;
3332
- }
3333
-
3334
- iterationIndex = 0;
3335
- break;
3336
- }
3337
-
3338
- if (nextKeyData.t - offsetTime > frameNum) {
3339
- iterationIndex = i;
3340
- break;
3341
- }
3342
-
3343
- if (i < len - 1) {
3344
- i += 1;
3345
- } else {
3346
- iterationIndex = 0;
3347
- flag = false;
3348
- }
3349
- }
3350
-
3351
- keyframeMetadata = this.keyframesMetadata[i] || {};
3352
- var k;
3353
- var kLen;
3354
- var perc;
3355
- var jLen;
3356
- var j;
3357
- var fnc;
3358
- var nextKeyTime = nextKeyData.t - offsetTime;
3359
- var keyTime = keyData.t - offsetTime;
3360
- var endValue;
3361
-
3362
- if (keyData.to) {
3363
- if (!keyframeMetadata.bezierData) {
3364
- keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);
3365
- }
3366
-
3367
- var bezierData = keyframeMetadata.bezierData;
3368
-
3369
- if (frameNum >= nextKeyTime || frameNum < keyTime) {
3370
- var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;
3371
- kLen = bezierData.points[ind].point.length;
3372
-
3373
- for (k = 0; k < kLen; k += 1) {
3374
- newValue[k] = bezierData.points[ind].point[k];
3375
- } // caching._lastKeyframeIndex = -1;
3376
-
3377
- } else {
3378
- if (keyframeMetadata.__fnct) {
3379
- fnc = keyframeMetadata.__fnct;
3380
- } else {
3381
- fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;
3382
- keyframeMetadata.__fnct = fnc;
3383
- }
3384
-
3385
- perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));
3386
- var distanceInLine = bezierData.segmentLength * perc;
3387
- var segmentPerc;
3388
- var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;
3389
- j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;
3390
- flag = true;
3391
- jLen = bezierData.points.length;
3392
-
3393
- while (flag) {
3394
- addedLength += bezierData.points[j].partialLength;
3395
-
3396
- if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {
3397
- kLen = bezierData.points[j].point.length;
3398
-
3399
- for (k = 0; k < kLen; k += 1) {
3400
- newValue[k] = bezierData.points[j].point[k];
3401
- }
3402
-
3403
- break;
3404
- } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {
3405
- segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;
3406
- kLen = bezierData.points[j].point.length;
3407
-
3408
- for (k = 0; k < kLen; k += 1) {
3409
- newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;
3410
- }
3411
-
3412
- break;
3413
- }
3414
-
3415
- if (j < jLen - 1) {
3416
- j += 1;
3417
- } else {
3418
- flag = false;
3419
- }
3420
- }
3421
-
3422
- caching._lastPoint = j;
3423
- caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;
3424
- caching._lastKeyframeIndex = i;
3425
- }
3426
- } else {
3427
- var outX;
3428
- var outY;
3429
- var inX;
3430
- var inY;
3431
- var keyValue;
3432
- len = keyData.s.length;
3433
- endValue = nextKeyData.s || keyData.e;
3434
-
3435
- if (this.sh && keyData.h !== 1) {
3436
- if (frameNum >= nextKeyTime) {
3437
- newValue[0] = endValue[0];
3438
- newValue[1] = endValue[1];
3439
- newValue[2] = endValue[2];
3440
- } else if (frameNum <= keyTime) {
3441
- newValue[0] = keyData.s[0];
3442
- newValue[1] = keyData.s[1];
3443
- newValue[2] = keyData.s[2];
3444
- } else {
3445
- var quatStart = createQuaternion(keyData.s);
3446
- var quatEnd = createQuaternion(endValue);
3447
- var time = (frameNum - keyTime) / (nextKeyTime - keyTime);
3448
- quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));
3449
- }
3450
- } else {
3451
- for (i = 0; i < len; i += 1) {
3452
- if (keyData.h !== 1) {
3453
- if (frameNum >= nextKeyTime) {
3454
- perc = 1;
3455
- } else if (frameNum < keyTime) {
3456
- perc = 0;
3457
- } else {
3458
- if (keyData.o.x.constructor === Array) {
3459
- if (!keyframeMetadata.__fnct) {
3460
- keyframeMetadata.__fnct = [];
3461
- }
3462
-
3463
- if (!keyframeMetadata.__fnct[i]) {
3464
- outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];
3465
- outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];
3466
- inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];
3467
- inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];
3468
- fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;
3469
- keyframeMetadata.__fnct[i] = fnc;
3470
- } else {
3471
- fnc = keyframeMetadata.__fnct[i];
3472
- }
3473
- } else if (!keyframeMetadata.__fnct) {
3474
- outX = keyData.o.x;
3475
- outY = keyData.o.y;
3476
- inX = keyData.i.x;
3477
- inY = keyData.i.y;
3478
- fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;
3479
- keyData.keyframeMetadata = fnc;
3480
- } else {
3481
- fnc = keyframeMetadata.__fnct;
3482
- }
3483
-
3484
- perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));
3485
- }
3486
- }
3487
-
3488
- endValue = nextKeyData.s || keyData.e;
3489
- keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;
3490
-
3491
- if (this.propType === 'multidimensional') {
3492
- newValue[i] = keyValue;
3493
- } else {
3494
- newValue = keyValue;
3495
- }
3496
- }
3497
- }
3498
- }
3499
-
3500
- caching.lastIndex = iterationIndex;
3501
- return newValue;
3502
- } // based on @Toji's https://github.com/toji/gl-matrix/
3503
-
3504
-
3505
- function slerp(a, b, t) {
3506
- var out = [];
3507
- var ax = a[0];
3508
- var ay = a[1];
3509
- var az = a[2];
3510
- var aw = a[3];
3511
- var bx = b[0];
3512
- var by = b[1];
3513
- var bz = b[2];
3514
- var bw = b[3];
3515
- var omega;
3516
- var cosom;
3517
- var sinom;
3518
- var scale0;
3519
- var scale1;
3520
- cosom = ax * bx + ay * by + az * bz + aw * bw;
3521
-
3522
- if (cosom < 0.0) {
3523
- cosom = -cosom;
3524
- bx = -bx;
3525
- by = -by;
3526
- bz = -bz;
3527
- bw = -bw;
3528
- }
3529
-
3530
- if (1.0 - cosom > 0.000001) {
3531
- omega = Math.acos(cosom);
3532
- sinom = Math.sin(omega);
3533
- scale0 = Math.sin((1.0 - t) * omega) / sinom;
3534
- scale1 = Math.sin(t * omega) / sinom;
3535
- } else {
3536
- scale0 = 1.0 - t;
3537
- scale1 = t;
3538
- }
3539
-
3540
- out[0] = scale0 * ax + scale1 * bx;
3541
- out[1] = scale0 * ay + scale1 * by;
3542
- out[2] = scale0 * az + scale1 * bz;
3543
- out[3] = scale0 * aw + scale1 * bw;
3544
- return out;
3545
- }
3546
-
3547
- function quaternionToEuler(out, quat) {
3548
- var qx = quat[0];
3549
- var qy = quat[1];
3550
- var qz = quat[2];
3551
- var qw = quat[3];
3552
- var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);
3553
- var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);
3554
- var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);
3555
- out[0] = heading / degToRads;
3556
- out[1] = attitude / degToRads;
3557
- out[2] = bank / degToRads;
3558
- }
3559
-
3560
- function createQuaternion(values) {
3561
- var heading = values[0] * degToRads;
3562
- var attitude = values[1] * degToRads;
3563
- var bank = values[2] * degToRads;
3564
- var c1 = Math.cos(heading / 2);
3565
- var c2 = Math.cos(attitude / 2);
3566
- var c3 = Math.cos(bank / 2);
3567
- var s1 = Math.sin(heading / 2);
3568
- var s2 = Math.sin(attitude / 2);
3569
- var s3 = Math.sin(bank / 2);
3570
- var w = c1 * c2 * c3 - s1 * s2 * s3;
3571
- var x = s1 * s2 * c3 + c1 * c2 * s3;
3572
- var y = s1 * c2 * c3 + c1 * s2 * s3;
3573
- var z = c1 * s2 * c3 - s1 * c2 * s3;
3574
- return [x, y, z, w];
3575
- }
3576
-
3577
- function getValueAtCurrentTime() {
3578
- var frameNum = this.comp.renderedFrame - this.offsetTime;
3579
- var initTime = this.keyframes[0].t - this.offsetTime;
3580
- var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;
3581
-
3582
- if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {
3583
- if (this._caching.lastFrame >= frameNum) {
3584
- this._caching._lastKeyframeIndex = -1;
3585
- this._caching.lastIndex = 0;
3586
- }
3587
-
3588
- var renderResult = this.interpolateValue(frameNum, this._caching);
3589
- this.pv = renderResult;
3590
- }
3591
-
3592
- this._caching.lastFrame = frameNum;
3593
- return this.pv;
3594
- }
3595
-
3596
- function setVValue(val) {
3597
- var multipliedValue;
3598
-
3599
- if (this.propType === 'unidimensional') {
3600
- multipliedValue = val * this.mult;
3601
-
3602
- if (mathAbs(this.v - multipliedValue) > 0.00001) {
3603
- this.v = multipliedValue;
3604
- this._mdf = true;
3605
- }
3606
- } else {
3607
- var i = 0;
3608
- var len = this.v.length;
3609
-
3610
- while (i < len) {
3611
- multipliedValue = val[i] * this.mult;
3612
-
3613
- if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {
3614
- this.v[i] = multipliedValue;
3615
- this._mdf = true;
3616
- }
3617
-
3618
- i += 1;
3619
- }
3620
- }
3621
- }
3622
-
3623
- function processEffectsSequence() {
3624
- if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {
3625
- return;
3626
- }
3627
-
3628
- if (this.lock) {
3629
- this.setVValue(this.pv);
3630
- return;
3631
- }
3632
-
3633
- this.lock = true;
3634
- this._mdf = this._isFirstFrame;
3635
- var i;
3636
- var len = this.effectsSequence.length;
3637
- var finalValue = this.kf ? this.pv : this.data.k;
3638
-
3639
- for (i = 0; i < len; i += 1) {
3640
- finalValue = this.effectsSequence[i](finalValue);
3641
- }
3642
-
3643
- this.setVValue(finalValue);
3644
- this._isFirstFrame = false;
3645
- this.lock = false;
3646
- this.frameId = this.elem.globalData.frameId;
3647
- }
3648
-
3649
- function addEffect(effectFunction) {
3650
- this.effectsSequence.push(effectFunction);
3651
- this.container.addDynamicProperty(this);
3652
- }
3653
-
3654
- function ValueProperty(elem, data, mult, container) {
3655
- this.propType = 'unidimensional';
3656
- this.mult = mult || 1;
3657
- this.data = data;
3658
- this.v = mult ? data.k * mult : data.k;
3659
- this.pv = data.k;
3660
- this._mdf = false;
3661
- this.elem = elem;
3662
- this.container = container;
3663
- this.comp = elem.comp;
3664
- this.k = false;
3665
- this.kf = false;
3666
- this.vel = 0;
3667
- this.effectsSequence = [];
3668
- this._isFirstFrame = true;
3669
- this.getValue = processEffectsSequence;
3670
- this.setVValue = setVValue;
3671
- this.addEffect = addEffect;
3672
- }
3673
-
3674
- function MultiDimensionalProperty(elem, data, mult, container) {
3675
- this.propType = 'multidimensional';
3676
- this.mult = mult || 1;
3677
- this.data = data;
3678
- this._mdf = false;
3679
- this.elem = elem;
3680
- this.container = container;
3681
- this.comp = elem.comp;
3682
- this.k = false;
3683
- this.kf = false;
3684
- this.frameId = -1;
3685
- var i;
3686
- var len = data.k.length;
3687
- this.v = createTypedArray('float32', len);
3688
- this.pv = createTypedArray('float32', len);
3689
- this.vel = createTypedArray('float32', len);
3690
-
3691
- for (i = 0; i < len; i += 1) {
3692
- this.v[i] = data.k[i] * this.mult;
3693
- this.pv[i] = data.k[i];
3694
- }
3695
-
3696
- this._isFirstFrame = true;
3697
- this.effectsSequence = [];
3698
- this.getValue = processEffectsSequence;
3699
- this.setVValue = setVValue;
3700
- this.addEffect = addEffect;
3701
- }
3702
-
3703
- function KeyframedValueProperty(elem, data, mult, container) {
3704
- this.propType = 'unidimensional';
3705
- this.keyframes = data.k;
3706
- this.keyframesMetadata = [];
3707
- this.offsetTime = elem.data.st;
3708
- this.frameId = -1;
3709
- this._caching = {
3710
- lastFrame: initFrame,
3711
- lastIndex: 0,
3712
- value: 0,
3713
- _lastKeyframeIndex: -1
3714
- };
3715
- this.k = true;
3716
- this.kf = true;
3717
- this.data = data;
3718
- this.mult = mult || 1;
3719
- this.elem = elem;
3720
- this.container = container;
3721
- this.comp = elem.comp;
3722
- this.v = initFrame;
3723
- this.pv = initFrame;
3724
- this._isFirstFrame = true;
3725
- this.getValue = processEffectsSequence;
3726
- this.setVValue = setVValue;
3727
- this.interpolateValue = interpolateValue;
3728
- this.effectsSequence = [getValueAtCurrentTime.bind(this)];
3729
- this.addEffect = addEffect;
3730
- }
3731
-
3732
- function KeyframedMultidimensionalProperty(elem, data, mult, container) {
3733
- this.propType = 'multidimensional';
3734
- var i;
3735
- var len = data.k.length;
3736
- var s;
3737
- var e;
3738
- var to;
3739
- var ti;
3740
-
3741
- for (i = 0; i < len - 1; i += 1) {
3742
- if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {
3743
- s = data.k[i].s;
3744
- e = data.k[i + 1].s;
3745
- to = data.k[i].to;
3746
- ti = data.k[i].ti;
3747
-
3748
- if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {
3749
- data.k[i].to = null;
3750
- data.k[i].ti = null;
3751
- }
3752
-
3753
- if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {
3754
- if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {
3755
- data.k[i].to = null;
3756
- data.k[i].ti = null;
3757
- }
3758
- }
3759
- }
3760
- }
3761
-
3762
- this.effectsSequence = [getValueAtCurrentTime.bind(this)];
3763
- this.data = data;
3764
- this.keyframes = data.k;
3765
- this.keyframesMetadata = [];
3766
- this.offsetTime = elem.data.st;
3767
- this.k = true;
3768
- this.kf = true;
3769
- this._isFirstFrame = true;
3770
- this.mult = mult || 1;
3771
- this.elem = elem;
3772
- this.container = container;
3773
- this.comp = elem.comp;
3774
- this.getValue = processEffectsSequence;
3775
- this.setVValue = setVValue;
3776
- this.interpolateValue = interpolateValue;
3777
- this.frameId = -1;
3778
- var arrLen = data.k[0].s.length;
3779
- this.v = createTypedArray('float32', arrLen);
3780
- this.pv = createTypedArray('float32', arrLen);
3781
-
3782
- for (i = 0; i < arrLen; i += 1) {
3783
- this.v[i] = initFrame;
3784
- this.pv[i] = initFrame;
3785
- }
3786
-
3787
- this._caching = {
3788
- lastFrame: initFrame,
3789
- lastIndex: 0,
3790
- value: createTypedArray('float32', arrLen)
3791
- };
3792
- this.addEffect = addEffect;
3793
- }
3794
-
3795
- function getProp(elem, data, type, mult, container) {
3796
- var p;
3797
-
3798
- if (!data.k.length) {
3799
- p = new ValueProperty(elem, data, mult, container);
3800
- } else if (typeof data.k[0] === 'number') {
3801
- p = new MultiDimensionalProperty(elem, data, mult, container);
3802
- } else {
3803
- switch (type) {
3804
- case 0:
3805
- p = new KeyframedValueProperty(elem, data, mult, container);
3806
- break;
3807
-
3808
- case 1:
3809
- p = new KeyframedMultidimensionalProperty(elem, data, mult, container);
3810
- break;
3811
-
3812
- default:
3813
- break;
3814
- }
3815
- }
3816
-
3817
- if (p.effectsSequence.length) {
3818
- container.addDynamicProperty(p);
3819
- }
3820
-
3821
- return p;
3822
- }
3823
-
3824
- var ob = {
3825
- getProp: getProp
3826
- };
3827
- return ob;
3828
- }();
3829
-
3830
- function DynamicPropertyContainer() { }
3831
-
3832
- DynamicPropertyContainer.prototype = {
3833
- addDynamicProperty: function addDynamicProperty(prop) {
3834
- if (this.dynamicProperties.indexOf(prop) === -1) {
3835
- this.dynamicProperties.push(prop);
3836
- this.container.addDynamicProperty(this);
3837
- this._isAnimated = true;
3838
- }
3839
- },
3840
- iterateDynamicProperties: function iterateDynamicProperties() {
3841
- this._mdf = false;
3842
- var i;
3843
- var len = this.dynamicProperties.length;
3844
-
3845
- for (i = 0; i < len; i += 1) {
3846
- this.dynamicProperties[i].getValue();
3847
-
3848
- if (this.dynamicProperties[i]._mdf) {
3849
- this._mdf = true;
3850
- }
3851
- }
3852
- },
3853
- initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {
3854
- this.container = container;
3855
- this.dynamicProperties = [];
3856
- this._mdf = false;
3857
- this._isAnimated = false;
3858
- }
3859
- };
3860
-
3861
- var pointPool = function () {
3862
- function create() {
3863
- return createTypedArray('float32', 2);
3864
- }
3865
-
3866
- return poolFactory(8, create);
3867
- }();
3868
-
3869
- function ShapePath() {
3870
- this.c = false;
3871
- this._length = 0;
3872
- this._maxLength = 8;
3873
- this.v = createSizedArray(this._maxLength);
3874
- this.o = createSizedArray(this._maxLength);
3875
- this.i = createSizedArray(this._maxLength);
3876
- }
3877
-
3878
- ShapePath.prototype.setPathData = function (closed, len) {
3879
- this.c = closed;
3880
- this.setLength(len);
3881
- var i = 0;
3882
-
3883
- while (i < len) {
3884
- this.v[i] = pointPool.newElement();
3885
- this.o[i] = pointPool.newElement();
3886
- this.i[i] = pointPool.newElement();
3887
- i += 1;
3888
- }
3889
- };
3890
-
3891
- ShapePath.prototype.setLength = function (len) {
3892
- while (this._maxLength < len) {
3893
- this.doubleArrayLength();
3894
- }
3895
-
3896
- this._length = len;
3897
- };
3898
-
3899
- ShapePath.prototype.doubleArrayLength = function () {
3900
- this.v = this.v.concat(createSizedArray(this._maxLength));
3901
- this.i = this.i.concat(createSizedArray(this._maxLength));
3902
- this.o = this.o.concat(createSizedArray(this._maxLength));
3903
- this._maxLength *= 2;
3904
- };
3905
-
3906
- ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {
3907
- var arr;
3908
- this._length = Math.max(this._length, pos + 1);
3909
-
3910
- if (this._length >= this._maxLength) {
3911
- this.doubleArrayLength();
3912
- }
3913
-
3914
- switch (type) {
3915
- case 'v':
3916
- arr = this.v;
3917
- break;
3918
-
3919
- case 'i':
3920
- arr = this.i;
3921
- break;
3922
-
3923
- case 'o':
3924
- arr = this.o;
3925
- break;
3926
-
3927
- default:
3928
- arr = [];
3929
- break;
3930
- }
3931
-
3932
- if (!arr[pos] || arr[pos] && !replace) {
3933
- arr[pos] = pointPool.newElement();
3934
- }
3935
-
3936
- arr[pos][0] = x;
3937
- arr[pos][1] = y;
3938
- };
3939
-
3940
- ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {
3941
- this.setXYAt(vX, vY, 'v', pos, replace);
3942
- this.setXYAt(oX, oY, 'o', pos, replace);
3943
- this.setXYAt(iX, iY, 'i', pos, replace);
3944
- };
3945
-
3946
- ShapePath.prototype.reverse = function () {
3947
- var newPath = new ShapePath();
3948
- newPath.setPathData(this.c, this._length);
3949
- var vertices = this.v;
3950
- var outPoints = this.o;
3951
- var inPoints = this.i;
3952
- var init = 0;
3953
-
3954
- if (this.c) {
3955
- newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);
3956
- init = 1;
3957
- }
3958
-
3959
- var cnt = this._length - 1;
3960
- var len = this._length;
3961
- var i;
3962
-
3963
- for (i = init; i < len; i += 1) {
3964
- newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);
3965
- cnt -= 1;
3966
- }
3967
-
3968
- return newPath;
3969
- };
3970
-
3971
- var shapePool = function () {
3972
- function create() {
3973
- return new ShapePath();
3974
- }
3975
-
3976
- function release(shapePath) {
3977
- var len = shapePath._length;
3978
- var i;
3979
-
3980
- for (i = 0; i < len; i += 1) {
3981
- pointPool.release(shapePath.v[i]);
3982
- pointPool.release(shapePath.i[i]);
3983
- pointPool.release(shapePath.o[i]);
3984
- shapePath.v[i] = null;
3985
- shapePath.i[i] = null;
3986
- shapePath.o[i] = null;
3987
- }
3988
-
3989
- shapePath._length = 0;
3990
- shapePath.c = false;
3991
- }
3992
-
3993
- function clone(shape) {
3994
- var cloned = factory.newElement();
3995
- var i;
3996
- var len = shape._length === undefined ? shape.v.length : shape._length;
3997
- cloned.setLength(len);
3998
- cloned.c = shape.c;
3999
-
4000
- for (i = 0; i < len; i += 1) {
4001
- cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);
4002
- }
4003
-
4004
- return cloned;
4005
- }
4006
-
4007
- var factory = poolFactory(4, create, release);
4008
- factory.clone = clone;
4009
- return factory;
4010
- }();
4011
-
4012
- function ShapeCollection() {
4013
- this._length = 0;
4014
- this._maxLength = 4;
4015
- this.shapes = createSizedArray(this._maxLength);
4016
- }
4017
-
4018
- ShapeCollection.prototype.addShape = function (shapeData) {
4019
- if (this._length === this._maxLength) {
4020
- this.shapes = this.shapes.concat(createSizedArray(this._maxLength));
4021
- this._maxLength *= 2;
4022
- }
4023
-
4024
- this.shapes[this._length] = shapeData;
4025
- this._length += 1;
4026
- };
4027
-
4028
- ShapeCollection.prototype.releaseShapes = function () {
4029
- var i;
4030
-
4031
- for (i = 0; i < this._length; i += 1) {
4032
- shapePool.release(this.shapes[i]);
4033
- }
4034
-
4035
- this._length = 0;
4036
- };
4037
-
4038
- var shapeCollectionPool = function () {
4039
- var ob = {
4040
- newShapeCollection: newShapeCollection,
4041
- release: release
4042
- };
4043
- var _length = 0;
4044
- var _maxLength = 4;
4045
- var pool = createSizedArray(_maxLength);
4046
-
4047
- function newShapeCollection() {
4048
- var shapeCollection;
4049
-
4050
- if (_length) {
4051
- _length -= 1;
4052
- shapeCollection = pool[_length];
4053
- } else {
4054
- shapeCollection = new ShapeCollection();
4055
- }
4056
-
4057
- return shapeCollection;
4058
- }
4059
-
4060
- function release(shapeCollection) {
4061
- var i;
4062
- var len = shapeCollection._length;
4063
-
4064
- for (i = 0; i < len; i += 1) {
4065
- shapePool.release(shapeCollection.shapes[i]);
4066
- }
4067
-
4068
- shapeCollection._length = 0;
4069
-
4070
- if (_length === _maxLength) {
4071
- pool = pooling["double"](pool);
4072
- _maxLength *= 2;
4073
- }
4074
-
4075
- pool[_length] = shapeCollection;
4076
- _length += 1;
4077
- }
4078
-
4079
- return ob;
4080
- }();
4081
-
4082
- var ShapePropertyFactory = function () {
4083
- var initFrame = -999999;
4084
-
4085
- function interpolateShape(frameNum, previousValue, caching) {
4086
- var iterationIndex = caching.lastIndex;
4087
- var keyPropS;
4088
- var keyPropE;
4089
- var isHold;
4090
- var j;
4091
- var k;
4092
- var jLen;
4093
- var kLen;
4094
- var perc;
4095
- var vertexValue;
4096
- var kf = this.keyframes;
4097
-
4098
- if (frameNum < kf[0].t - this.offsetTime) {
4099
- keyPropS = kf[0].s[0];
4100
- isHold = true;
4101
- iterationIndex = 0;
4102
- } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {
4103
- keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];
4104
- /* if(kf[kf.length - 1].s){
4105
- keyPropS = kf[kf.length - 1].s[0];
4106
- }else{
4107
- keyPropS = kf[kf.length - 2].e[0];
4108
- } */
4109
-
4110
- isHold = true;
4111
- } else {
4112
- var i = iterationIndex;
4113
- var len = kf.length - 1;
4114
- var flag = true;
4115
- var keyData;
4116
- var nextKeyData;
4117
- var keyframeMetadata;
4118
-
4119
- while (flag) {
4120
- keyData = kf[i];
4121
- nextKeyData = kf[i + 1];
4122
-
4123
- if (nextKeyData.t - this.offsetTime > frameNum) {
4124
- break;
4125
- }
4126
-
4127
- if (i < len - 1) {
4128
- i += 1;
4129
- } else {
4130
- flag = false;
4131
- }
4132
- }
4133
-
4134
- keyframeMetadata = this.keyframesMetadata[i] || {};
4135
- isHold = keyData.h === 1;
4136
- iterationIndex = i;
4137
-
4138
- if (!isHold) {
4139
- if (frameNum >= nextKeyData.t - this.offsetTime) {
4140
- perc = 1;
4141
- } else if (frameNum < keyData.t - this.offsetTime) {
4142
- perc = 0;
4143
- } else {
4144
- var fnc;
4145
-
4146
- if (keyframeMetadata.__fnct) {
4147
- fnc = keyframeMetadata.__fnct;
4148
- } else {
4149
- fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;
4150
- keyframeMetadata.__fnct = fnc;
4151
- }
4152
-
4153
- perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));
4154
- }
4155
-
4156
- keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];
4157
- }
4158
-
4159
- keyPropS = keyData.s[0];
4160
- }
4161
-
4162
- jLen = previousValue._length;
4163
- kLen = keyPropS.i[0].length;
4164
- caching.lastIndex = iterationIndex;
4165
-
4166
- for (j = 0; j < jLen; j += 1) {
4167
- for (k = 0; k < kLen; k += 1) {
4168
- vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;
4169
- previousValue.i[j][k] = vertexValue;
4170
- vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;
4171
- previousValue.o[j][k] = vertexValue;
4172
- vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;
4173
- previousValue.v[j][k] = vertexValue;
4174
- }
4175
- }
4176
- }
4177
-
4178
- function interpolateShapeCurrentTime() {
4179
- var frameNum = this.comp.renderedFrame - this.offsetTime;
4180
- var initTime = this.keyframes[0].t - this.offsetTime;
4181
- var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;
4182
- var lastFrame = this._caching.lastFrame;
4183
-
4184
- if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {
4185
- /// /
4186
- this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;
4187
- this.interpolateShape(frameNum, this.pv, this._caching); /// /
4188
- }
4189
-
4190
- this._caching.lastFrame = frameNum;
4191
- return this.pv;
4192
- }
4193
-
4194
- function resetShape() {
4195
- this.paths = this.localShapeCollection;
4196
- }
4197
-
4198
- function shapesEqual(shape1, shape2) {
4199
- if (shape1._length !== shape2._length || shape1.c !== shape2.c) {
4200
- return false;
4201
- }
4202
-
4203
- var i;
4204
- var len = shape1._length;
4205
-
4206
- for (i = 0; i < len; i += 1) {
4207
- if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {
4208
- return false;
4209
- }
4210
- }
4211
-
4212
- return true;
4213
- }
4214
-
4215
- function setVValue(newPath) {
4216
- if (!shapesEqual(this.v, newPath)) {
4217
- this.v = shapePool.clone(newPath);
4218
- this.localShapeCollection.releaseShapes();
4219
- this.localShapeCollection.addShape(this.v);
4220
- this._mdf = true;
4221
- this.paths = this.localShapeCollection;
4222
- }
4223
- }
4224
-
4225
- function processEffectsSequence() {
4226
- if (this.elem.globalData.frameId === this.frameId) {
4227
- return;
4228
- }
4229
-
4230
- if (!this.effectsSequence.length) {
4231
- this._mdf = false;
4232
- return;
4233
- }
4234
-
4235
- if (this.lock) {
4236
- this.setVValue(this.pv);
4237
- return;
4238
- }
4239
-
4240
- this.lock = true;
4241
- this._mdf = false;
4242
- var finalValue;
4243
-
4244
- if (this.kf) {
4245
- finalValue = this.pv;
4246
- } else if (this.data.ks) {
4247
- finalValue = this.data.ks.k;
4248
- } else {
4249
- finalValue = this.data.pt.k;
4250
- }
4251
-
4252
- var i;
4253
- var len = this.effectsSequence.length;
4254
-
4255
- for (i = 0; i < len; i += 1) {
4256
- finalValue = this.effectsSequence[i](finalValue);
4257
- }
4258
-
4259
- this.setVValue(finalValue);
4260
- this.lock = false;
4261
- this.frameId = this.elem.globalData.frameId;
4262
- }
4263
-
4264
- function ShapeProperty(elem, data, type) {
4265
- this.propType = 'shape';
4266
- this.comp = elem.comp;
4267
- this.container = elem;
4268
- this.elem = elem;
4269
- this.data = data;
4270
- this.k = false;
4271
- this.kf = false;
4272
- this._mdf = false;
4273
- var pathData = type === 3 ? data.pt.k : data.ks.k;
4274
- this.v = shapePool.clone(pathData);
4275
- this.pv = shapePool.clone(this.v);
4276
- this.localShapeCollection = shapeCollectionPool.newShapeCollection();
4277
- this.paths = this.localShapeCollection;
4278
- this.paths.addShape(this.v);
4279
- this.reset = resetShape;
4280
- this.effectsSequence = [];
4281
- }
4282
-
4283
- function addEffect(effectFunction) {
4284
- this.effectsSequence.push(effectFunction);
4285
- this.container.addDynamicProperty(this);
4286
- }
4287
-
4288
- ShapeProperty.prototype.interpolateShape = interpolateShape;
4289
- ShapeProperty.prototype.getValue = processEffectsSequence;
4290
- ShapeProperty.prototype.setVValue = setVValue;
4291
- ShapeProperty.prototype.addEffect = addEffect;
4292
-
4293
- function KeyframedShapeProperty(elem, data, type) {
4294
- this.propType = 'shape';
4295
- this.comp = elem.comp;
4296
- this.elem = elem;
4297
- this.container = elem;
4298
- this.offsetTime = elem.data.st;
4299
- this.keyframes = type === 3 ? data.pt.k : data.ks.k;
4300
- this.keyframesMetadata = [];
4301
- this.k = true;
4302
- this.kf = true;
4303
- var len = this.keyframes[0].s[0].i.length;
4304
- this.v = shapePool.newElement();
4305
- this.v.setPathData(this.keyframes[0].s[0].c, len);
4306
- this.pv = shapePool.clone(this.v);
4307
- this.localShapeCollection = shapeCollectionPool.newShapeCollection();
4308
- this.paths = this.localShapeCollection;
4309
- this.paths.addShape(this.v);
4310
- this.lastFrame = initFrame;
4311
- this.reset = resetShape;
4312
- this._caching = {
4313
- lastFrame: initFrame,
4314
- lastIndex: 0
4315
- };
4316
- this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];
4317
- }
4318
-
4319
- KeyframedShapeProperty.prototype.getValue = processEffectsSequence;
4320
- KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;
4321
- KeyframedShapeProperty.prototype.setVValue = setVValue;
4322
- KeyframedShapeProperty.prototype.addEffect = addEffect;
4323
-
4324
- var EllShapeProperty = function () {
4325
- var cPoint = roundCorner;
4326
-
4327
- function EllShapePropertyFactory(elem, data) {
4328
- this.v = shapePool.newElement();
4329
- this.v.setPathData(true, 4);
4330
- this.localShapeCollection = shapeCollectionPool.newShapeCollection();
4331
- this.paths = this.localShapeCollection;
4332
- this.localShapeCollection.addShape(this.v);
4333
- this.d = data.d;
4334
- this.elem = elem;
4335
- this.comp = elem.comp;
4336
- this.frameId = -1;
4337
- this.initDynamicPropertyContainer(elem);
4338
- this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);
4339
- this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);
4340
-
4341
- if (this.dynamicProperties.length) {
4342
- this.k = true;
4343
- } else {
4344
- this.k = false;
4345
- this.convertEllToPath();
4346
- }
4347
- }
4348
-
4349
- EllShapePropertyFactory.prototype = {
4350
- reset: resetShape,
4351
- getValue: function getValue() {
4352
- if (this.elem.globalData.frameId === this.frameId) {
4353
- return;
4354
- }
4355
-
4356
- this.frameId = this.elem.globalData.frameId;
4357
- this.iterateDynamicProperties();
4358
-
4359
- if (this._mdf) {
4360
- this.convertEllToPath();
4361
- }
4362
- },
4363
- convertEllToPath: function convertEllToPath() {
4364
- var p0 = this.p.v[0];
4365
- var p1 = this.p.v[1];
4366
- var s0 = this.s.v[0] / 2;
4367
- var s1 = this.s.v[1] / 2;
4368
-
4369
- var _cw = this.d !== 3;
4370
-
4371
- var _v = this.v;
4372
- _v.v[0][0] = p0;
4373
- _v.v[0][1] = p1 - s1;
4374
- _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;
4375
- _v.v[1][1] = p1;
4376
- _v.v[2][0] = p0;
4377
- _v.v[2][1] = p1 + s1;
4378
- _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;
4379
- _v.v[3][1] = p1;
4380
- _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;
4381
- _v.i[0][1] = p1 - s1;
4382
- _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;
4383
- _v.i[1][1] = p1 - s1 * cPoint;
4384
- _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;
4385
- _v.i[2][1] = p1 + s1;
4386
- _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;
4387
- _v.i[3][1] = p1 + s1 * cPoint;
4388
- _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;
4389
- _v.o[0][1] = p1 - s1;
4390
- _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;
4391
- _v.o[1][1] = p1 + s1 * cPoint;
4392
- _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;
4393
- _v.o[2][1] = p1 + s1;
4394
- _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;
4395
- _v.o[3][1] = p1 - s1 * cPoint;
4396
- }
4397
- };
4398
- extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);
4399
- return EllShapePropertyFactory;
4400
- }();
4401
-
4402
- var StarShapeProperty = function () {
4403
- function StarShapePropertyFactory(elem, data) {
4404
- this.v = shapePool.newElement();
4405
- this.v.setPathData(true, 0);
4406
- this.elem = elem;
4407
- this.comp = elem.comp;
4408
- this.data = data;
4409
- this.frameId = -1;
4410
- this.d = data.d;
4411
- this.initDynamicPropertyContainer(elem);
4412
-
4413
- if (data.sy === 1) {
4414
- this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);
4415
- this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);
4416
- this.convertToPath = this.convertStarToPath;
4417
- } else {
4418
- this.convertToPath = this.convertPolygonToPath;
4419
- }
4420
-
4421
- this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);
4422
- this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);
4423
- this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);
4424
- this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);
4425
- this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);
4426
- this.localShapeCollection = shapeCollectionPool.newShapeCollection();
4427
- this.localShapeCollection.addShape(this.v);
4428
- this.paths = this.localShapeCollection;
4429
-
4430
- if (this.dynamicProperties.length) {
4431
- this.k = true;
4432
- } else {
4433
- this.k = false;
4434
- this.convertToPath();
4435
- }
4436
- }
4437
-
4438
- StarShapePropertyFactory.prototype = {
4439
- reset: resetShape,
4440
- getValue: function getValue() {
4441
- if (this.elem.globalData.frameId === this.frameId) {
4442
- return;
4443
- }
4444
-
4445
- this.frameId = this.elem.globalData.frameId;
4446
- this.iterateDynamicProperties();
4447
-
4448
- if (this._mdf) {
4449
- this.convertToPath();
4450
- }
4451
- },
4452
- convertStarToPath: function convertStarToPath() {
4453
- var numPts = Math.floor(this.pt.v) * 2;
4454
- var angle = Math.PI * 2 / numPts;
4455
- /* this.v.v.length = numPts;
4456
- this.v.i.length = numPts;
4457
- this.v.o.length = numPts; */
4458
-
4459
- var longFlag = true;
4460
- var longRad = this.or.v;
4461
- var shortRad = this.ir.v;
4462
- var longRound = this.os.v;
4463
- var shortRound = this.is.v;
4464
- var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);
4465
- var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);
4466
- var i;
4467
- var rad;
4468
- var roundness;
4469
- var perimSegment;
4470
- var currentAng = -Math.PI / 2;
4471
- currentAng += this.r.v;
4472
- var dir = this.data.d === 3 ? -1 : 1;
4473
- this.v._length = 0;
4474
-
4475
- for (i = 0; i < numPts; i += 1) {
4476
- rad = longFlag ? longRad : shortRad;
4477
- roundness = longFlag ? longRound : shortRound;
4478
- perimSegment = longFlag ? longPerimSegment : shortPerimSegment;
4479
- var x = rad * Math.cos(currentAng);
4480
- var y = rad * Math.sin(currentAng);
4481
- var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);
4482
- var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);
4483
- x += +this.p.v[0];
4484
- y += +this.p.v[1];
4485
- this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);
4486
- /* this.v.v[i] = [x,y];
4487
- this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];
4488
- this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];
4489
- this.v._length = numPts; */
4490
-
4491
- longFlag = !longFlag;
4492
- currentAng += angle * dir;
4493
- }
4494
- },
4495
- convertPolygonToPath: function convertPolygonToPath() {
4496
- var numPts = Math.floor(this.pt.v);
4497
- var angle = Math.PI * 2 / numPts;
4498
- var rad = this.or.v;
4499
- var roundness = this.os.v;
4500
- var perimSegment = 2 * Math.PI * rad / (numPts * 4);
4501
- var i;
4502
- var currentAng = -Math.PI * 0.5;
4503
- var dir = this.data.d === 3 ? -1 : 1;
4504
- currentAng += this.r.v;
4505
- this.v._length = 0;
4506
-
4507
- for (i = 0; i < numPts; i += 1) {
4508
- var x = rad * Math.cos(currentAng);
4509
- var y = rad * Math.sin(currentAng);
4510
- var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);
4511
- var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);
4512
- x += +this.p.v[0];
4513
- y += +this.p.v[1];
4514
- this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);
4515
- currentAng += angle * dir;
4516
- }
4517
-
4518
- this.paths.length = 0;
4519
- this.paths[0] = this.v;
4520
- }
4521
- };
4522
- extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);
4523
- return StarShapePropertyFactory;
4524
- }();
4525
-
4526
- var RectShapeProperty = function () {
4527
- function RectShapePropertyFactory(elem, data) {
4528
- this.v = shapePool.newElement();
4529
- this.v.c = true;
4530
- this.localShapeCollection = shapeCollectionPool.newShapeCollection();
4531
- this.localShapeCollection.addShape(this.v);
4532
- this.paths = this.localShapeCollection;
4533
- this.elem = elem;
4534
- this.comp = elem.comp;
4535
- this.frameId = -1;
4536
- this.d = data.d;
4537
- this.initDynamicPropertyContainer(elem);
4538
- this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);
4539
- this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);
4540
- this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);
4541
-
4542
- if (this.dynamicProperties.length) {
4543
- this.k = true;
4544
- } else {
4545
- this.k = false;
4546
- this.convertRectToPath();
4547
- }
4548
- }
4549
-
4550
- RectShapePropertyFactory.prototype = {
4551
- convertRectToPath: function convertRectToPath() {
4552
- var p0 = this.p.v[0];
4553
- var p1 = this.p.v[1];
4554
- var v0 = this.s.v[0] / 2;
4555
- var v1 = this.s.v[1] / 2;
4556
- var round = bmMin(v0, v1, this.r.v);
4557
- var cPoint = round * (1 - roundCorner);
4558
- this.v._length = 0;
4559
-
4560
- if (this.d === 2 || this.d === 1) {
4561
- this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);
4562
- this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);
4563
-
4564
- if (round !== 0) {
4565
- this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);
4566
- this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);
4567
- this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);
4568
- this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);
4569
- this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);
4570
- this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);
4571
- } else {
4572
- this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);
4573
- this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);
4574
- }
4575
- } else {
4576
- this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);
4577
-
4578
- if (round !== 0) {
4579
- this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);
4580
- this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);
4581
- this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);
4582
- this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);
4583
- this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);
4584
- this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);
4585
- this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);
4586
- } else {
4587
- this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);
4588
- this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);
4589
- this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);
4590
- }
4591
- }
4592
- },
4593
- getValue: function getValue() {
4594
- if (this.elem.globalData.frameId === this.frameId) {
4595
- return;
4596
- }
4597
-
4598
- this.frameId = this.elem.globalData.frameId;
4599
- this.iterateDynamicProperties();
4600
-
4601
- if (this._mdf) {
4602
- this.convertRectToPath();
4603
- }
4604
- },
4605
- reset: resetShape
4606
- };
4607
- extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);
4608
- return RectShapePropertyFactory;
4609
- }();
4610
-
4611
- function getShapeProp(elem, data, type) {
4612
- var prop;
4613
-
4614
- if (type === 3 || type === 4) {
4615
- var dataProp = type === 3 ? data.pt : data.ks;
4616
- var keys = dataProp.k;
4617
-
4618
- if (keys.length) {
4619
- prop = new KeyframedShapeProperty(elem, data, type);
4620
- } else {
4621
- prop = new ShapeProperty(elem, data, type);
4622
- }
4623
- } else if (type === 5) {
4624
- prop = new RectShapeProperty(elem, data);
4625
- } else if (type === 6) {
4626
- prop = new EllShapeProperty(elem, data);
4627
- } else if (type === 7) {
4628
- prop = new StarShapeProperty(elem, data);
4629
- }
4630
-
4631
- if (prop.k) {
4632
- elem.addDynamicProperty(prop);
4633
- }
4634
-
4635
- return prop;
4636
- }
4637
-
4638
- function getConstructorFunction() {
4639
- return ShapeProperty;
4640
- }
4641
-
4642
- function getKeyframedConstructorFunction() {
4643
- return KeyframedShapeProperty;
4644
- }
4645
-
4646
- var ob = {};
4647
- ob.getShapeProp = getShapeProp;
4648
- ob.getConstructorFunction = getConstructorFunction;
4649
- ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;
4650
- return ob;
4651
- }();
4652
-
4653
- /*!
4654
- Transformation Matrix v2.0
4655
- (c) Epistemex 2014-2015
4656
- www.epistemex.com
4657
- By Ken Fyrstenberg
4658
- Contributions by leeoniya.
4659
- License: MIT, header required.
4660
- */
4661
-
4662
- /**
4663
- * 2D transformation matrix object initialized with identity matrix.
4664
- *
4665
- * The matrix can synchronize a canvas context by supplying the context
4666
- * as an argument, or later apply current absolute transform to an
4667
- * existing context.
4668
- *
4669
- * All values are handled as floating point values.
4670
- *
4671
- * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix
4672
- * @prop {number} a - scale x
4673
- * @prop {number} b - shear y
4674
- * @prop {number} c - shear x
4675
- * @prop {number} d - scale y
4676
- * @prop {number} e - translate x
4677
- * @prop {number} f - translate y
4678
- * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context
4679
- * @constructor
4680
- */
4681
-
4682
- var Matrix = function () {
4683
- var _cos = Math.cos;
4684
- var _sin = Math.sin;
4685
- var _tan = Math.tan;
4686
- var _rnd = Math.round;
4687
-
4688
- function reset() {
4689
- this.props[0] = 1;
4690
- this.props[1] = 0;
4691
- this.props[2] = 0;
4692
- this.props[3] = 0;
4693
- this.props[4] = 0;
4694
- this.props[5] = 1;
4695
- this.props[6] = 0;
4696
- this.props[7] = 0;
4697
- this.props[8] = 0;
4698
- this.props[9] = 0;
4699
- this.props[10] = 1;
4700
- this.props[11] = 0;
4701
- this.props[12] = 0;
4702
- this.props[13] = 0;
4703
- this.props[14] = 0;
4704
- this.props[15] = 1;
4705
- return this;
4706
- }
4707
-
4708
- function rotate(angle) {
4709
- if (angle === 0) {
4710
- return this;
4711
- }
4712
-
4713
- var mCos = _cos(angle);
4714
-
4715
- var mSin = _sin(angle);
4716
-
4717
- return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
4718
- }
4719
-
4720
- function rotateX(angle) {
4721
- if (angle === 0) {
4722
- return this;
4723
- }
4724
-
4725
- var mCos = _cos(angle);
4726
-
4727
- var mSin = _sin(angle);
4728
-
4729
- return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);
4730
- }
4731
-
4732
- function rotateY(angle) {
4733
- if (angle === 0) {
4734
- return this;
4735
- }
4736
-
4737
- var mCos = _cos(angle);
4738
-
4739
- var mSin = _sin(angle);
4740
-
4741
- return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);
4742
- }
4743
-
4744
- function rotateZ(angle) {
4745
- if (angle === 0) {
4746
- return this;
4747
- }
4748
-
4749
- var mCos = _cos(angle);
4750
-
4751
- var mSin = _sin(angle);
4752
-
4753
- return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
4754
- }
4755
-
4756
- function shear(sx, sy) {
4757
- return this._t(1, sy, sx, 1, 0, 0);
4758
- }
4759
-
4760
- function skew(ax, ay) {
4761
- return this.shear(_tan(ax), _tan(ay));
4762
- }
4763
-
4764
- function skewFromAxis(ax, angle) {
4765
- var mCos = _cos(angle);
4766
-
4767
- var mSin = _sin(angle);
4768
-
4769
- return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);
4770
- }
4771
-
4772
- function scale(sx, sy, sz) {
4773
- if (!sz && sz !== 0) {
4774
- sz = 1;
4775
- }
4776
-
4777
- if (sx === 1 && sy === 1 && sz === 1) {
4778
- return this;
4779
- }
4780
-
4781
- return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);
4782
- }
4783
-
4784
- function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {
4785
- this.props[0] = a;
4786
- this.props[1] = b;
4787
- this.props[2] = c;
4788
- this.props[3] = d;
4789
- this.props[4] = e;
4790
- this.props[5] = f;
4791
- this.props[6] = g;
4792
- this.props[7] = h;
4793
- this.props[8] = i;
4794
- this.props[9] = j;
4795
- this.props[10] = k;
4796
- this.props[11] = l;
4797
- this.props[12] = m;
4798
- this.props[13] = n;
4799
- this.props[14] = o;
4800
- this.props[15] = p;
4801
- return this;
4802
- }
4803
-
4804
- function translate(tx, ty, tz) {
4805
- tz = tz || 0;
4806
-
4807
- if (tx !== 0 || ty !== 0 || tz !== 0) {
4808
- return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);
4809
- }
4810
-
4811
- return this;
4812
- }
4813
-
4814
- function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {
4815
- var _p = this.props;
4816
-
4817
- if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {
4818
- // NOTE: commenting this condition because TurboFan deoptimizes code when present
4819
- // if(m2 !== 0 || n2 !== 0 || o2 !== 0){
4820
- _p[12] = _p[12] * a2 + _p[15] * m2;
4821
- _p[13] = _p[13] * f2 + _p[15] * n2;
4822
- _p[14] = _p[14] * k2 + _p[15] * o2;
4823
- _p[15] *= p2; // }
4824
-
4825
- this._identityCalculated = false;
4826
- return this;
4827
- }
4828
-
4829
- var a1 = _p[0];
4830
- var b1 = _p[1];
4831
- var c1 = _p[2];
4832
- var d1 = _p[3];
4833
- var e1 = _p[4];
4834
- var f1 = _p[5];
4835
- var g1 = _p[6];
4836
- var h1 = _p[7];
4837
- var i1 = _p[8];
4838
- var j1 = _p[9];
4839
- var k1 = _p[10];
4840
- var l1 = _p[11];
4841
- var m1 = _p[12];
4842
- var n1 = _p[13];
4843
- var o1 = _p[14];
4844
- var p1 = _p[15];
4845
- /* matrix order (canvas compatible):
4846
- * ace
4847
- * bdf
4848
- * 001
4849
- */
4850
-
4851
- _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;
4852
- _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;
4853
- _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;
4854
- _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;
4855
- _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;
4856
- _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;
4857
- _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;
4858
- _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;
4859
- _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;
4860
- _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;
4861
- _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;
4862
- _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;
4863
- _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;
4864
- _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;
4865
- _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;
4866
- _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;
4867
- this._identityCalculated = false;
4868
- return this;
4869
- }
4870
-
4871
- function isIdentity() {
4872
- if (!this._identityCalculated) {
4873
- this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);
4874
- this._identityCalculated = true;
4875
- }
4876
-
4877
- return this._identity;
4878
- }
4879
-
4880
- function equals(matr) {
4881
- var i = 0;
4882
-
4883
- while (i < 16) {
4884
- if (matr.props[i] !== this.props[i]) {
4885
- return false;
4886
- }
4887
-
4888
- i += 1;
4889
- }
4890
-
4891
- return true;
4892
- }
4893
-
4894
- function clone(matr) {
4895
- var i;
4896
-
4897
- for (i = 0; i < 16; i += 1) {
4898
- matr.props[i] = this.props[i];
4899
- }
4900
-
4901
- return matr;
4902
- }
4903
-
4904
- function cloneFromProps(props) {
4905
- var i;
4906
-
4907
- for (i = 0; i < 16; i += 1) {
4908
- this.props[i] = props[i];
4909
- }
4910
- }
4911
-
4912
- function applyToPoint(x, y, z) {
4913
- return {
4914
- x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],
4915
- y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],
4916
- z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]
4917
- };
4918
- /* return {
4919
- x: x * me.a + y * me.c + me.e,
4920
- y: x * me.b + y * me.d + me.f
4921
- }; */
4922
- }
4923
-
4924
- function applyToX(x, y, z) {
4925
- return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];
4926
- }
4927
-
4928
- function applyToY(x, y, z) {
4929
- return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];
4930
- }
4931
-
4932
- function applyToZ(x, y, z) {
4933
- return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];
4934
- }
4935
-
4936
- function getInverseMatrix() {
4937
- var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];
4938
- var a = this.props[5] / determinant;
4939
- var b = -this.props[1] / determinant;
4940
- var c = -this.props[4] / determinant;
4941
- var d = this.props[0] / determinant;
4942
- var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;
4943
- var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;
4944
- var inverseMatrix = new Matrix();
4945
- inverseMatrix.props[0] = a;
4946
- inverseMatrix.props[1] = b;
4947
- inverseMatrix.props[4] = c;
4948
- inverseMatrix.props[5] = d;
4949
- inverseMatrix.props[12] = e;
4950
- inverseMatrix.props[13] = f;
4951
- return inverseMatrix;
4952
- }
4953
-
4954
- function inversePoint(pt) {
4955
- var inverseMatrix = this.getInverseMatrix();
4956
- return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);
4957
- }
4958
-
4959
- function inversePoints(pts) {
4960
- var i;
4961
- var len = pts.length;
4962
- var retPts = [];
4963
-
4964
- for (i = 0; i < len; i += 1) {
4965
- retPts[i] = inversePoint(pts[i]);
4966
- }
4967
-
4968
- return retPts;
4969
- }
4970
-
4971
- function applyToTriplePoints(pt1, pt2, pt3) {
4972
- var arr = createTypedArray('float32', 6);
4973
-
4974
- if (this.isIdentity()) {
4975
- arr[0] = pt1[0];
4976
- arr[1] = pt1[1];
4977
- arr[2] = pt2[0];
4978
- arr[3] = pt2[1];
4979
- arr[4] = pt3[0];
4980
- arr[5] = pt3[1];
4981
- } else {
4982
- var p0 = this.props[0];
4983
- var p1 = this.props[1];
4984
- var p4 = this.props[4];
4985
- var p5 = this.props[5];
4986
- var p12 = this.props[12];
4987
- var p13 = this.props[13];
4988
- arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;
4989
- arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;
4990
- arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;
4991
- arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;
4992
- arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;
4993
- arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;
4994
- }
4995
-
4996
- return arr;
4997
- }
4998
-
4999
- function applyToPointArray(x, y, z) {
5000
- var arr;
5001
-
5002
- if (this.isIdentity()) {
5003
- arr = [x, y, z];
5004
- } else {
5005
- arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];
5006
- }
5007
-
5008
- return arr;
5009
- }
5010
-
5011
- function applyToPointStringified(x, y) {
5012
- if (this.isIdentity()) {
5013
- return x + ',' + y;
5014
- }
5015
-
5016
- var _p = this.props;
5017
- return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;
5018
- }
5019
-
5020
- function toCSS() {
5021
- // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.
5022
-
5023
- /* if(this.isIdentity()) {
5024
- return '';
5025
- } */
5026
- var i = 0;
5027
- var props = this.props;
5028
- var cssValue = 'matrix3d(';
5029
- var v = 10000;
5030
-
5031
- while (i < 16) {
5032
- cssValue += _rnd(props[i] * v) / v;
5033
- cssValue += i === 15 ? ')' : ',';
5034
- i += 1;
5035
- }
5036
-
5037
- return cssValue;
5038
- }
5039
-
5040
- function roundMatrixProperty(val) {
5041
- var v = 10000;
5042
-
5043
- if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {
5044
- return _rnd(val * v) / v;
5045
- }
5046
-
5047
- return val;
5048
- }
5049
-
5050
- function to2dCSS() {
5051
- // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.
5052
-
5053
- /* if(this.isIdentity()) {
5054
- return '';
5055
- } */
5056
- var props = this.props;
5057
-
5058
- var _a = roundMatrixProperty(props[0]);
5059
-
5060
- var _b = roundMatrixProperty(props[1]);
5061
-
5062
- var _c = roundMatrixProperty(props[4]);
5063
-
5064
- var _d = roundMatrixProperty(props[5]);
5065
-
5066
- var _e = roundMatrixProperty(props[12]);
5067
-
5068
- var _f = roundMatrixProperty(props[13]);
5069
-
5070
- return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';
5071
- }
5072
-
5073
- return function () {
5074
- this.reset = reset;
5075
- this.rotate = rotate;
5076
- this.rotateX = rotateX;
5077
- this.rotateY = rotateY;
5078
- this.rotateZ = rotateZ;
5079
- this.skew = skew;
5080
- this.skewFromAxis = skewFromAxis;
5081
- this.shear = shear;
5082
- this.scale = scale;
5083
- this.setTransform = setTransform;
5084
- this.translate = translate;
5085
- this.transform = transform;
5086
- this.applyToPoint = applyToPoint;
5087
- this.applyToX = applyToX;
5088
- this.applyToY = applyToY;
5089
- this.applyToZ = applyToZ;
5090
- this.applyToPointArray = applyToPointArray;
5091
- this.applyToTriplePoints = applyToTriplePoints;
5092
- this.applyToPointStringified = applyToPointStringified;
5093
- this.toCSS = toCSS;
5094
- this.to2dCSS = to2dCSS;
5095
- this.clone = clone;
5096
- this.cloneFromProps = cloneFromProps;
5097
- this.equals = equals;
5098
- this.inversePoints = inversePoints;
5099
- this.inversePoint = inversePoint;
5100
- this.getInverseMatrix = getInverseMatrix;
5101
- this._t = this.transform;
5102
- this.isIdentity = isIdentity;
5103
- this._identity = true;
5104
- this._identityCalculated = false;
5105
- this.props = createTypedArray('float32', 16);
5106
- this.reset();
5107
- };
5108
- }();
5109
-
5110
- function _typeof$3(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof$3(obj); }
5111
- var lottie = {};
5112
- var standalone = '__[STANDALONE]__';
5113
- var animationData = '__[ANIMATIONDATA]__';
5114
- var renderer = '';
5115
-
5116
- function setLocation(href) {
5117
- setLocationHref(href);
5118
- }
5119
-
5120
- function searchAnimations() {
5121
- if (standalone === true) {
5122
- animationManager.searchAnimations(animationData, standalone, renderer);
5123
- } else {
5124
- animationManager.searchAnimations();
5125
- }
5126
- }
5127
-
5128
- function setSubframeRendering(flag) {
5129
- setSubframeEnabled(flag);
5130
- }
5131
-
5132
- function setPrefix(prefix) {
5133
- setIdPrefix(prefix);
5134
- }
5135
-
5136
- function loadAnimation(params) {
5137
- if (standalone === true) {
5138
- params.animationData = JSON.parse(animationData);
5139
- }
5140
-
5141
- return animationManager.loadAnimation(params);
5142
- }
5143
-
5144
- function setQuality(value) {
5145
- if (typeof value === 'string') {
5146
- switch (value) {
5147
- case 'high':
5148
- setDefaultCurveSegments(200);
5149
- break;
5150
-
5151
- default:
5152
- case 'medium':
5153
- setDefaultCurveSegments(50);
5154
- break;
5155
-
5156
- case 'low':
5157
- setDefaultCurveSegments(10);
5158
- break;
5159
- }
5160
- } else if (!isNaN(value) && value > 1) {
5161
- setDefaultCurveSegments(value);
5162
- }
5163
-
5164
- if (getDefaultCurveSegments() >= 50) {
5165
- roundValues(false);
5166
- } else {
5167
- roundValues(true);
5168
- }
5169
- }
5170
-
5171
- function inBrowser() {
5172
- return typeof navigator !== 'undefined';
5173
- }
5174
-
5175
- function installPlugin(type, plugin) {
5176
- if (type === 'expressions') {
5177
- setExpressionsPlugin(plugin);
5178
- }
5179
- }
5180
-
5181
- function getFactory(name) {
5182
- switch (name) {
5183
- case 'propertyFactory':
5184
- return PropertyFactory;
5185
-
5186
- case 'shapePropertyFactory':
5187
- return ShapePropertyFactory;
5188
-
5189
- case 'matrix':
5190
- return Matrix;
5191
-
5192
- default:
5193
- return null;
5194
- }
5195
- }
5196
-
5197
- lottie.play = animationManager.play;
5198
- lottie.pause = animationManager.pause;
5199
- lottie.setLocationHref = setLocation;
5200
- lottie.togglePause = animationManager.togglePause;
5201
- lottie.setSpeed = animationManager.setSpeed;
5202
- lottie.setDirection = animationManager.setDirection;
5203
- lottie.stop = animationManager.stop;
5204
- lottie.searchAnimations = searchAnimations;
5205
- lottie.registerAnimation = animationManager.registerAnimation;
5206
- lottie.loadAnimation = loadAnimation;
5207
- lottie.setSubframeRendering = setSubframeRendering;
5208
- lottie.resize = animationManager.resize; // lottie.start = start;
5209
-
5210
- lottie.goToAndStop = animationManager.goToAndStop;
5211
- lottie.destroy = animationManager.destroy;
5212
- lottie.setQuality = setQuality;
5213
- lottie.inBrowser = inBrowser;
5214
- lottie.installPlugin = installPlugin;
5215
- lottie.freeze = animationManager.freeze;
5216
- lottie.unfreeze = animationManager.unfreeze;
5217
- lottie.setVolume = animationManager.setVolume;
5218
- lottie.mute = animationManager.mute;
5219
- lottie.unmute = animationManager.unmute;
5220
- lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;
5221
- lottie.useWebWorker = setWebWorker;
5222
- lottie.setIDPrefix = setPrefix;
5223
- lottie.__getFactory = getFactory;
5224
- lottie.version = '5.9.6';
5225
-
5226
- function checkReady() {
5227
- if (document.readyState === 'complete') {
5228
- clearInterval(readyStateCheckInterval);
5229
- searchAnimations();
5230
- }
5231
- }
5232
-
5233
- function getQueryVariable(variable) {
5234
- var vars = queryString.split('&');
5235
-
5236
- for (var i = 0; i < vars.length; i += 1) {
5237
- var pair = vars[i].split('=');
5238
-
5239
- if (decodeURIComponent(pair[0]) == variable) {
5240
- // eslint-disable-line eqeqeq
5241
- return decodeURIComponent(pair[1]);
5242
- }
5243
- }
5244
-
5245
- return null;
5246
- }
5247
-
5248
- var queryString = '';
5249
-
5250
- if (standalone) {
5251
- var scripts = document.getElementsByTagName('script');
5252
- var index = scripts.length - 1;
5253
- var myScript = scripts[index] || {
5254
- src: ''
5255
- };
5256
- queryString = myScript.src ? myScript.src.replace(/^[^\?]+\??/, '') : ''; // eslint-disable-line no-useless-escape
5257
-
5258
- renderer = getQueryVariable('renderer');
5259
- }
5260
-
5261
- var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility
5262
-
5263
- try {
5264
- if (!((typeof exports === "undefined" ? "undefined" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef
5265
- ) {
5266
- window.bodymovin = lottie;
5267
- }
5268
- } catch (err) {//
5269
- }
5270
-
5271
- var ShapeModifiers = function () {
5272
- var ob = {};
5273
- var modifiers = {};
5274
- ob.registerModifier = registerModifier;
5275
- ob.getModifier = getModifier;
5276
-
5277
- function registerModifier(nm, factory) {
5278
- if (!modifiers[nm]) {
5279
- modifiers[nm] = factory;
5280
- }
5281
- }
5282
-
5283
- function getModifier(nm, elem, data) {
5284
- return new modifiers[nm](elem, data);
5285
- }
5286
-
5287
- return ob;
5288
- }();
5289
-
5290
- function ShapeModifier() { }
5291
-
5292
- ShapeModifier.prototype.initModifierProperties = function () { };
5293
-
5294
- ShapeModifier.prototype.addShapeToModifier = function () { };
5295
-
5296
- ShapeModifier.prototype.addShape = function (data) {
5297
- if (!this.closed) {
5298
- // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.
5299
- data.sh.container.addDynamicProperty(data.sh);
5300
- var shapeData = {
5301
- shape: data.sh,
5302
- data: data,
5303
- localShapeCollection: shapeCollectionPool.newShapeCollection()
5304
- };
5305
- this.shapes.push(shapeData);
5306
- this.addShapeToModifier(shapeData);
5307
-
5308
- if (this._isAnimated) {
5309
- data.setAsAnimated();
5310
- }
5311
- }
5312
- };
5313
-
5314
- ShapeModifier.prototype.init = function (elem, data) {
5315
- this.shapes = [];
5316
- this.elem = elem;
5317
- this.initDynamicPropertyContainer(elem);
5318
- this.initModifierProperties(elem, data);
5319
- this.frameId = initialDefaultFrame;
5320
- this.closed = false;
5321
- this.k = false;
5322
-
5323
- if (this.dynamicProperties.length) {
5324
- this.k = true;
5325
- } else {
5326
- this.getValue(true);
5327
- }
5328
- };
5329
-
5330
- ShapeModifier.prototype.processKeys = function () {
5331
- if (this.elem.globalData.frameId === this.frameId) {
5332
- return;
5333
- }
5334
-
5335
- this.frameId = this.elem.globalData.frameId;
5336
- this.iterateDynamicProperties();
5337
- };
5338
-
5339
- extendPrototype([DynamicPropertyContainer], ShapeModifier);
5340
-
5341
- function TrimModifier() { }
5342
-
5343
- extendPrototype([ShapeModifier], TrimModifier);
5344
-
5345
- TrimModifier.prototype.initModifierProperties = function (elem, data) {
5346
- this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);
5347
- this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);
5348
- this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);
5349
- this.sValue = 0;
5350
- this.eValue = 0;
5351
- this.getValue = this.processKeys;
5352
- this.m = data.m;
5353
- this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;
5354
- };
5355
-
5356
- TrimModifier.prototype.addShapeToModifier = function (shapeData) {
5357
- shapeData.pathsData = [];
5358
- };
5359
-
5360
- TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {
5361
- var segments = [];
5362
-
5363
- if (e <= 1) {
5364
- segments.push({
5365
- s: s,
5366
- e: e
5367
- });
5368
- } else if (s >= 1) {
5369
- segments.push({
5370
- s: s - 1,
5371
- e: e - 1
5372
- });
5373
- } else {
5374
- segments.push({
5375
- s: s,
5376
- e: 1
5377
- });
5378
- segments.push({
5379
- s: 0,
5380
- e: e - 1
5381
- });
5382
- }
5383
-
5384
- var shapeSegments = [];
5385
- var i;
5386
- var len = segments.length;
5387
- var segmentOb;
5388
-
5389
- for (i = 0; i < len; i += 1) {
5390
- segmentOb = segments[i];
5391
-
5392
- if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {
5393
- var shapeS;
5394
- var shapeE;
5395
-
5396
- if (segmentOb.s * totalModifierLength <= addedLength) {
5397
- shapeS = 0;
5398
- } else {
5399
- shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;
5400
- }
5401
-
5402
- if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {
5403
- shapeE = 1;
5404
- } else {
5405
- shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;
5406
- }
5407
-
5408
- shapeSegments.push([shapeS, shapeE]);
5409
- }
5410
- }
5411
-
5412
- if (!shapeSegments.length) {
5413
- shapeSegments.push([0, 0]);
5414
- }
5415
-
5416
- return shapeSegments;
5417
- };
5418
-
5419
- TrimModifier.prototype.releasePathsData = function (pathsData) {
5420
- var i;
5421
- var len = pathsData.length;
5422
-
5423
- for (i = 0; i < len; i += 1) {
5424
- segmentsLengthPool.release(pathsData[i]);
5425
- }
5426
-
5427
- pathsData.length = 0;
5428
- return pathsData;
5429
- };
5430
-
5431
- TrimModifier.prototype.processShapes = function (_isFirstFrame) {
5432
- var s;
5433
- var e;
5434
-
5435
- if (this._mdf || _isFirstFrame) {
5436
- var o = this.o.v % 360 / 360;
5437
-
5438
- if (o < 0) {
5439
- o += 1;
5440
- }
5441
-
5442
- if (this.s.v > 1) {
5443
- s = 1 + o;
5444
- } else if (this.s.v < 0) {
5445
- s = 0 + o;
5446
- } else {
5447
- s = this.s.v + o;
5448
- }
5449
-
5450
- if (this.e.v > 1) {
5451
- e = 1 + o;
5452
- } else if (this.e.v < 0) {
5453
- e = 0 + o;
5454
- } else {
5455
- e = this.e.v + o;
5456
- }
5457
-
5458
- if (s > e) {
5459
- var _s = s;
5460
- s = e;
5461
- e = _s;
5462
- }
5463
-
5464
- s = Math.round(s * 10000) * 0.0001;
5465
- e = Math.round(e * 10000) * 0.0001;
5466
- this.sValue = s;
5467
- this.eValue = e;
5468
- } else {
5469
- s = this.sValue;
5470
- e = this.eValue;
5471
- }
5472
-
5473
- var shapePaths;
5474
- var i;
5475
- var len = this.shapes.length;
5476
- var j;
5477
- var jLen;
5478
- var pathsData;
5479
- var pathData;
5480
- var totalShapeLength;
5481
- var totalModifierLength = 0;
5482
-
5483
- if (e === s) {
5484
- for (i = 0; i < len; i += 1) {
5485
- this.shapes[i].localShapeCollection.releaseShapes();
5486
- this.shapes[i].shape._mdf = true;
5487
- this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;
5488
-
5489
- if (this._mdf) {
5490
- this.shapes[i].pathsData.length = 0;
5491
- }
5492
- }
5493
- } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {
5494
- var segments = [];
5495
- var shapeData;
5496
- var localShapeCollection;
5497
-
5498
- for (i = 0; i < len; i += 1) {
5499
- shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used
5500
-
5501
- if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {
5502
- shapeData.shape.paths = shapeData.localShapeCollection;
5503
- } else {
5504
- shapePaths = shapeData.shape.paths;
5505
- jLen = shapePaths._length;
5506
- totalShapeLength = 0;
5507
-
5508
- if (!shapeData.shape._mdf && shapeData.pathsData.length) {
5509
- totalShapeLength = shapeData.totalShapeLength;
5510
- } else {
5511
- pathsData = this.releasePathsData(shapeData.pathsData);
5512
-
5513
- for (j = 0; j < jLen; j += 1) {
5514
- pathData = bez.getSegmentsLength(shapePaths.shapes[j]);
5515
- pathsData.push(pathData);
5516
- totalShapeLength += pathData.totalLength;
5517
- }
5518
-
5519
- shapeData.totalShapeLength = totalShapeLength;
5520
- shapeData.pathsData = pathsData;
5521
- }
5522
-
5523
- totalModifierLength += totalShapeLength;
5524
- shapeData.shape._mdf = true;
5525
- }
5526
- }
5527
-
5528
- var shapeS = s;
5529
- var shapeE = e;
5530
- var addedLength = 0;
5531
- var edges;
5532
-
5533
- for (i = len - 1; i >= 0; i -= 1) {
5534
- shapeData = this.shapes[i];
5535
-
5536
- if (shapeData.shape._mdf) {
5537
- localShapeCollection = shapeData.localShapeCollection;
5538
- localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group
5539
-
5540
- if (this.m === 2 && len > 1) {
5541
- edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);
5542
- addedLength += shapeData.totalShapeLength;
5543
- } else {
5544
- edges = [[shapeS, shapeE]];
5545
- }
5546
-
5547
- jLen = edges.length;
5548
-
5549
- for (j = 0; j < jLen; j += 1) {
5550
- shapeS = edges[j][0];
5551
- shapeE = edges[j][1];
5552
- segments.length = 0;
5553
-
5554
- if (shapeE <= 1) {
5555
- segments.push({
5556
- s: shapeData.totalShapeLength * shapeS,
5557
- e: shapeData.totalShapeLength * shapeE
5558
- });
5559
- } else if (shapeS >= 1) {
5560
- segments.push({
5561
- s: shapeData.totalShapeLength * (shapeS - 1),
5562
- e: shapeData.totalShapeLength * (shapeE - 1)
5563
- });
5564
- } else {
5565
- segments.push({
5566
- s: shapeData.totalShapeLength * shapeS,
5567
- e: shapeData.totalShapeLength
5568
- });
5569
- segments.push({
5570
- s: 0,
5571
- e: shapeData.totalShapeLength * (shapeE - 1)
5572
- });
5573
- }
5574
-
5575
- var newShapesData = this.addShapes(shapeData, segments[0]);
5576
-
5577
- if (segments[0].s !== segments[0].e) {
5578
- if (segments.length > 1) {
5579
- var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];
5580
-
5581
- if (lastShapeInCollection.c) {
5582
- var lastShape = newShapesData.pop();
5583
- this.addPaths(newShapesData, localShapeCollection);
5584
- newShapesData = this.addShapes(shapeData, segments[1], lastShape);
5585
- } else {
5586
- this.addPaths(newShapesData, localShapeCollection);
5587
- newShapesData = this.addShapes(shapeData, segments[1]);
5588
- }
5589
- }
5590
-
5591
- this.addPaths(newShapesData, localShapeCollection);
5592
- }
5593
- }
5594
-
5595
- shapeData.shape.paths = localShapeCollection;
5596
- }
5597
- }
5598
- } else if (this._mdf) {
5599
- for (i = 0; i < len; i += 1) {
5600
- // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.
5601
- // Don't remove this even if it's losing cached info.
5602
- this.shapes[i].pathsData.length = 0;
5603
- this.shapes[i].shape._mdf = true;
5604
- }
5605
- }
5606
- };
5607
-
5608
- TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {
5609
- var i;
5610
- var len = newPaths.length;
5611
-
5612
- for (i = 0; i < len; i += 1) {
5613
- localShapeCollection.addShape(newPaths[i]);
5614
- }
5615
- };
5616
-
5617
- TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {
5618
- shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);
5619
- shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);
5620
-
5621
- if (newShape) {
5622
- shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);
5623
- }
5624
-
5625
- shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);
5626
- };
5627
-
5628
- TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {
5629
- shapePath.setXYAt(points[1], points[5], 'o', pos);
5630
- shapePath.setXYAt(points[2], points[6], 'i', pos + 1);
5631
-
5632
- if (newShape) {
5633
- shapePath.setXYAt(points[0], points[4], 'v', pos);
5634
- }
5635
-
5636
- shapePath.setXYAt(points[3], points[7], 'v', pos + 1);
5637
- };
5638
-
5639
- TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {
5640
- var pathsData = shapeData.pathsData;
5641
- var shapePaths = shapeData.shape.paths.shapes;
5642
- var i;
5643
- var len = shapeData.shape.paths._length;
5644
- var j;
5645
- var jLen;
5646
- var addedLength = 0;
5647
- var currentLengthData;
5648
- var segmentCount;
5649
- var lengths;
5650
- var segment;
5651
- var shapes = [];
5652
- var initPos;
5653
- var newShape = true;
5654
-
5655
- if (!shapePath) {
5656
- shapePath = shapePool.newElement();
5657
- segmentCount = 0;
5658
- initPos = 0;
5659
- } else {
5660
- segmentCount = shapePath._length;
5661
- initPos = shapePath._length;
5662
- }
5663
-
5664
- shapes.push(shapePath);
5665
-
5666
- for (i = 0; i < len; i += 1) {
5667
- lengths = pathsData[i].lengths;
5668
- shapePath.c = shapePaths[i].c;
5669
- jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;
5670
-
5671
- for (j = 1; j < jLen; j += 1) {
5672
- currentLengthData = lengths[j - 1];
5673
-
5674
- if (addedLength + currentLengthData.addedLength < shapeSegment.s) {
5675
- addedLength += currentLengthData.addedLength;
5676
- shapePath.c = false;
5677
- } else if (addedLength > shapeSegment.e) {
5678
- shapePath.c = false;
5679
- break;
5680
- } else {
5681
- if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {
5682
- this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);
5683
- newShape = false;
5684
- } else {
5685
- segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);
5686
- this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);
5687
-
5688
- newShape = false;
5689
- shapePath.c = false;
5690
- }
5691
-
5692
- addedLength += currentLengthData.addedLength;
5693
- segmentCount += 1;
5694
- }
5695
- }
5696
-
5697
- if (shapePaths[i].c && lengths.length) {
5698
- currentLengthData = lengths[j - 1];
5699
-
5700
- if (addedLength <= shapeSegment.e) {
5701
- var segmentLength = lengths[j - 1].addedLength;
5702
-
5703
- if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {
5704
- this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);
5705
- newShape = false;
5706
- } else {
5707
- segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);
5708
- this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);
5709
-
5710
- newShape = false;
5711
- shapePath.c = false;
5712
- }
5713
- } else {
5714
- shapePath.c = false;
5715
- }
5716
-
5717
- addedLength += currentLengthData.addedLength;
5718
- segmentCount += 1;
5719
- }
5720
-
5721
- if (shapePath._length) {
5722
- shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);
5723
- shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);
5724
- }
5725
-
5726
- if (addedLength > shapeSegment.e) {
5727
- break;
5728
- }
5729
-
5730
- if (i < len - 1) {
5731
- shapePath = shapePool.newElement();
5732
- newShape = true;
5733
- shapes.push(shapePath);
5734
- segmentCount = 0;
5735
- }
5736
- }
5737
-
5738
- return shapes;
5739
- };
5740
-
5741
- function PuckerAndBloatModifier() { }
5742
-
5743
- extendPrototype([ShapeModifier], PuckerAndBloatModifier);
5744
-
5745
- PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {
5746
- this.getValue = this.processKeys;
5747
- this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);
5748
- this._isAnimated = !!this.amount.effectsSequence.length;
5749
- };
5750
-
5751
- PuckerAndBloatModifier.prototype.processPath = function (path, amount) {
5752
- var percent = amount / 100;
5753
- var centerPoint = [0, 0];
5754
- var pathLength = path._length;
5755
- var i = 0;
5756
-
5757
- for (i = 0; i < pathLength; i += 1) {
5758
- centerPoint[0] += path.v[i][0];
5759
- centerPoint[1] += path.v[i][1];
5760
- }
5761
-
5762
- centerPoint[0] /= pathLength;
5763
- centerPoint[1] /= pathLength;
5764
- var clonedPath = shapePool.newElement();
5765
- clonedPath.c = path.c;
5766
- var vX;
5767
- var vY;
5768
- var oX;
5769
- var oY;
5770
- var iX;
5771
- var iY;
5772
-
5773
- for (i = 0; i < pathLength; i += 1) {
5774
- vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;
5775
- vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;
5776
- oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;
5777
- oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;
5778
- iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;
5779
- iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;
5780
- clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);
5781
- }
5782
-
5783
- return clonedPath;
5784
- };
5785
-
5786
- PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {
5787
- var shapePaths;
5788
- var i;
5789
- var len = this.shapes.length;
5790
- var j;
5791
- var jLen;
5792
- var amount = this.amount.v;
5793
-
5794
- if (amount !== 0) {
5795
- var shapeData;
5796
- var localShapeCollection;
5797
-
5798
- for (i = 0; i < len; i += 1) {
5799
- shapeData = this.shapes[i];
5800
- localShapeCollection = shapeData.localShapeCollection;
5801
-
5802
- if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {
5803
- localShapeCollection.releaseShapes();
5804
- shapeData.shape._mdf = true;
5805
- shapePaths = shapeData.shape.paths.shapes;
5806
- jLen = shapeData.shape.paths._length;
5807
-
5808
- for (j = 0; j < jLen; j += 1) {
5809
- localShapeCollection.addShape(this.processPath(shapePaths[j], amount));
5810
- }
5811
- }
5812
-
5813
- shapeData.shape.paths = shapeData.localShapeCollection;
5814
- }
5815
- }
5816
-
5817
- if (!this.dynamicProperties.length) {
5818
- this._mdf = false;
5819
- }
5820
- };
5821
-
5822
- var TransformPropertyFactory = function () {
5823
- var defaultVector = [0, 0];
5824
-
5825
- function applyToMatrix(mat) {
5826
- var _mdf = this._mdf;
5827
- this.iterateDynamicProperties();
5828
- this._mdf = this._mdf || _mdf;
5829
-
5830
- if (this.a) {
5831
- mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);
5832
- }
5833
-
5834
- if (this.s) {
5835
- mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);
5836
- }
5837
-
5838
- if (this.sk) {
5839
- mat.skewFromAxis(-this.sk.v, this.sa.v);
5840
- }
5841
-
5842
- if (this.r) {
5843
- mat.rotate(-this.r.v);
5844
- } else {
5845
- mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);
5846
- }
5847
-
5848
- if (this.data.p.s) {
5849
- if (this.data.p.z) {
5850
- mat.translate(this.px.v, this.py.v, -this.pz.v);
5851
- } else {
5852
- mat.translate(this.px.v, this.py.v, 0);
5853
- }
5854
- } else {
5855
- mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);
5856
- }
5857
- }
5858
-
5859
- function processKeys(forceRender) {
5860
- if (this.elem.globalData.frameId === this.frameId) {
5861
- return;
5862
- }
5863
-
5864
- if (this._isDirty) {
5865
- this.precalculateMatrix();
5866
- this._isDirty = false;
5867
- }
5868
-
5869
- this.iterateDynamicProperties();
5870
-
5871
- if (this._mdf || forceRender) {
5872
- var frameRate;
5873
- this.v.cloneFromProps(this.pre.props);
5874
-
5875
- if (this.appliedTransformations < 1) {
5876
- this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);
5877
- }
5878
-
5879
- if (this.appliedTransformations < 2) {
5880
- this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);
5881
- }
5882
-
5883
- if (this.sk && this.appliedTransformations < 3) {
5884
- this.v.skewFromAxis(-this.sk.v, this.sa.v);
5885
- }
5886
-
5887
- if (this.r && this.appliedTransformations < 4) {
5888
- this.v.rotate(-this.r.v);
5889
- } else if (!this.r && this.appliedTransformations < 4) {
5890
- this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);
5891
- }
5892
-
5893
- if (this.autoOriented) {
5894
- var v1;
5895
- var v2;
5896
- frameRate = this.elem.globalData.frameRate;
5897
-
5898
- if (this.p && this.p.keyframes && this.p.getValueAtTime) {
5899
- if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {
5900
- v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);
5901
- v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);
5902
- } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {
5903
- v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);
5904
- v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);
5905
- } else {
5906
- v1 = this.p.pv;
5907
- v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);
5908
- }
5909
- } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {
5910
- v1 = [];
5911
- v2 = [];
5912
- var px = this.px;
5913
- var py = this.py;
5914
-
5915
- if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {
5916
- v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);
5917
- v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);
5918
- v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);
5919
- v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);
5920
- } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {
5921
- v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);
5922
- v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);
5923
- v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);
5924
- v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);
5925
- } else {
5926
- v1 = [px.pv, py.pv];
5927
- v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);
5928
- v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);
5929
- }
5930
- } else {
5931
- v2 = defaultVector;
5932
- v1 = v2;
5933
- }
5934
-
5935
- this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));
5936
- }
5937
-
5938
- if (this.data.p && this.data.p.s) {
5939
- if (this.data.p.z) {
5940
- this.v.translate(this.px.v, this.py.v, -this.pz.v);
5941
- } else {
5942
- this.v.translate(this.px.v, this.py.v, 0);
5943
- }
5944
- } else {
5945
- this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);
5946
- }
5947
- }
5948
-
5949
- this.frameId = this.elem.globalData.frameId;
5950
- }
5951
-
5952
- function precalculateMatrix() {
5953
- if (!this.a.k) {
5954
- this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);
5955
- this.appliedTransformations = 1;
5956
- } else {
5957
- return;
5958
- }
5959
-
5960
- if (!this.s.effectsSequence.length) {
5961
- this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);
5962
- this.appliedTransformations = 2;
5963
- } else {
5964
- return;
5965
- }
5966
-
5967
- if (this.sk) {
5968
- if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {
5969
- this.pre.skewFromAxis(-this.sk.v, this.sa.v);
5970
- this.appliedTransformations = 3;
5971
- } else {
5972
- return;
5973
- }
5974
- }
5975
-
5976
- if (this.r) {
5977
- if (!this.r.effectsSequence.length) {
5978
- this.pre.rotate(-this.r.v);
5979
- this.appliedTransformations = 4;
5980
- }
5981
- } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {
5982
- this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);
5983
- this.appliedTransformations = 4;
5984
- }
5985
- }
5986
-
5987
- function autoOrient() {//
5988
- // var prevP = this.getValueAtTime();
5989
- }
5990
-
5991
- function addDynamicProperty(prop) {
5992
- this._addDynamicProperty(prop);
5993
-
5994
- this.elem.addDynamicProperty(prop);
5995
- this._isDirty = true;
5996
- }
5997
-
5998
- function TransformProperty(elem, data, container) {
5999
- this.elem = elem;
6000
- this.frameId = -1;
6001
- this.propType = 'transform';
6002
- this.data = data;
6003
- this.v = new Matrix(); // Precalculated matrix with non animated properties
6004
-
6005
- this.pre = new Matrix();
6006
- this.appliedTransformations = 0;
6007
- this.initDynamicPropertyContainer(container || elem);
6008
-
6009
- if (data.p && data.p.s) {
6010
- this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);
6011
- this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);
6012
-
6013
- if (data.p.z) {
6014
- this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);
6015
- }
6016
- } else {
6017
- this.p = PropertyFactory.getProp(elem, data.p || {
6018
- k: [0, 0, 0]
6019
- }, 1, 0, this);
6020
- }
6021
-
6022
- if (data.rx) {
6023
- this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);
6024
- this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);
6025
- this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);
6026
-
6027
- if (data.or.k[0].ti) {
6028
- var i;
6029
- var len = data.or.k.length;
6030
-
6031
- for (i = 0; i < len; i += 1) {
6032
- data.or.k[i].to = null;
6033
- data.or.k[i].ti = null;
6034
- }
6035
- }
6036
-
6037
- this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180
6038
-
6039
- this.or.sh = true;
6040
- } else {
6041
- this.r = PropertyFactory.getProp(elem, data.r || {
6042
- k: 0
6043
- }, 0, degToRads, this);
6044
- }
6045
-
6046
- if (data.sk) {
6047
- this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);
6048
- this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);
6049
- }
6050
-
6051
- this.a = PropertyFactory.getProp(elem, data.a || {
6052
- k: [0, 0, 0]
6053
- }, 1, 0, this);
6054
- this.s = PropertyFactory.getProp(elem, data.s || {
6055
- k: [100, 100, 100]
6056
- }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.
6057
-
6058
- if (data.o) {
6059
- this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);
6060
- } else {
6061
- this.o = {
6062
- _mdf: false,
6063
- v: 1
6064
- };
6065
- }
6066
-
6067
- this._isDirty = true;
6068
-
6069
- if (!this.dynamicProperties.length) {
6070
- this.getValue(true);
6071
- }
6072
- }
6073
-
6074
- TransformProperty.prototype = {
6075
- applyToMatrix: applyToMatrix,
6076
- getValue: processKeys,
6077
- precalculateMatrix: precalculateMatrix,
6078
- autoOrient: autoOrient
6079
- };
6080
- extendPrototype([DynamicPropertyContainer], TransformProperty);
6081
- TransformProperty.prototype.addDynamicProperty = addDynamicProperty;
6082
- TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;
6083
-
6084
- function getTransformProperty(elem, data, container) {
6085
- return new TransformProperty(elem, data, container);
6086
- }
6087
-
6088
- return {
6089
- getTransformProperty: getTransformProperty
6090
- };
6091
- }();
6092
-
6093
- function RepeaterModifier() { }
6094
-
6095
- extendPrototype([ShapeModifier], RepeaterModifier);
6096
-
6097
- RepeaterModifier.prototype.initModifierProperties = function (elem, data) {
6098
- this.getValue = this.processKeys;
6099
- this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);
6100
- this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);
6101
- this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);
6102
- this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);
6103
- this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);
6104
- this.data = data;
6105
-
6106
- if (!this.dynamicProperties.length) {
6107
- this.getValue(true);
6108
- }
6109
-
6110
- this._isAnimated = !!this.dynamicProperties.length;
6111
- this.pMatrix = new Matrix();
6112
- this.rMatrix = new Matrix();
6113
- this.sMatrix = new Matrix();
6114
- this.tMatrix = new Matrix();
6115
- this.matrix = new Matrix();
6116
- };
6117
-
6118
- RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {
6119
- var dir = inv ? -1 : 1;
6120
- var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);
6121
- var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);
6122
- pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);
6123
- rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);
6124
- rMatrix.rotate(-transform.r.v * dir * perc);
6125
- rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);
6126
- sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);
6127
- sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);
6128
- sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);
6129
- };
6130
-
6131
- RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {
6132
- this.elem = elem;
6133
- this.arr = arr;
6134
- this.pos = pos;
6135
- this.elemsData = elemsData;
6136
- this._currentCopies = 0;
6137
- this._elements = [];
6138
- this._groups = [];
6139
- this.frameId = -1;
6140
- this.initDynamicPropertyContainer(elem);
6141
- this.initModifierProperties(elem, arr[pos]);
6142
-
6143
- while (pos > 0) {
6144
- pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);
6145
-
6146
- this._elements.unshift(arr[pos]);
6147
- }
6148
-
6149
- if (this.dynamicProperties.length) {
6150
- this.k = true;
6151
- } else {
6152
- this.getValue(true);
6153
- }
6154
- };
6155
-
6156
- RepeaterModifier.prototype.resetElements = function (elements) {
6157
- var i;
6158
- var len = elements.length;
6159
-
6160
- for (i = 0; i < len; i += 1) {
6161
- elements[i]._processed = false;
6162
-
6163
- if (elements[i].ty === 'gr') {
6164
- this.resetElements(elements[i].it);
6165
- }
6166
- }
6167
- };
6168
-
6169
- RepeaterModifier.prototype.cloneElements = function (elements) {
6170
- var newElements = JSON.parse(JSON.stringify(elements));
6171
- this.resetElements(newElements);
6172
- return newElements;
6173
- };
6174
-
6175
- RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {
6176
- var i;
6177
- var len = elements.length;
6178
-
6179
- for (i = 0; i < len; i += 1) {
6180
- elements[i]._render = renderFlag;
6181
-
6182
- if (elements[i].ty === 'gr') {
6183
- this.changeGroupRender(elements[i].it, renderFlag);
6184
- }
6185
- }
6186
- };
6187
-
6188
- RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {
6189
- var items;
6190
- var itemsTransform;
6191
- var i;
6192
- var dir;
6193
- var cont;
6194
- var hasReloaded = false;
6195
-
6196
- if (this._mdf || _isFirstFrame) {
6197
- var copies = Math.ceil(this.c.v);
6198
-
6199
- if (this._groups.length < copies) {
6200
- while (this._groups.length < copies) {
6201
- var group = {
6202
- it: this.cloneElements(this._elements),
6203
- ty: 'gr'
6204
- };
6205
- group.it.push({
6206
- a: {
6207
- a: 0,
6208
- ix: 1,
6209
- k: [0, 0]
6210
- },
6211
- nm: 'Transform',
6212
- o: {
6213
- a: 0,
6214
- ix: 7,
6215
- k: 100
6216
- },
6217
- p: {
6218
- a: 0,
6219
- ix: 2,
6220
- k: [0, 0]
6221
- },
6222
- r: {
6223
- a: 1,
6224
- ix: 6,
6225
- k: [{
6226
- s: 0,
6227
- e: 0,
6228
- t: 0
6229
- }, {
6230
- s: 0,
6231
- e: 0,
6232
- t: 1
6233
- }]
6234
- },
6235
- s: {
6236
- a: 0,
6237
- ix: 3,
6238
- k: [100, 100]
6239
- },
6240
- sa: {
6241
- a: 0,
6242
- ix: 5,
6243
- k: 0
6244
- },
6245
- sk: {
6246
- a: 0,
6247
- ix: 4,
6248
- k: 0
6249
- },
6250
- ty: 'tr'
6251
- });
6252
- this.arr.splice(0, 0, group);
6253
-
6254
- this._groups.splice(0, 0, group);
6255
-
6256
- this._currentCopies += 1;
6257
- }
6258
-
6259
- this.elem.reloadShapes();
6260
- hasReloaded = true;
6261
- }
6262
-
6263
- cont = 0;
6264
- var renderFlag;
6265
-
6266
- for (i = 0; i <= this._groups.length - 1; i += 1) {
6267
- renderFlag = cont < copies;
6268
- this._groups[i]._render = renderFlag;
6269
- this.changeGroupRender(this._groups[i].it, renderFlag);
6270
-
6271
- if (!renderFlag) {
6272
- var elems = this.elemsData[i].it;
6273
- var transformData = elems[elems.length - 1];
6274
-
6275
- if (transformData.transform.op.v !== 0) {
6276
- transformData.transform.op._mdf = true;
6277
- transformData.transform.op.v = 0;
6278
- } else {
6279
- transformData.transform.op._mdf = false;
6280
- }
6281
- }
6282
-
6283
- cont += 1;
6284
- }
6285
-
6286
- this._currentCopies = copies; /// /
6287
-
6288
- var offset = this.o.v;
6289
- var offsetModulo = offset % 1;
6290
- var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);
6291
- var pProps = this.pMatrix.props;
6292
- var rProps = this.rMatrix.props;
6293
- var sProps = this.sMatrix.props;
6294
- this.pMatrix.reset();
6295
- this.rMatrix.reset();
6296
- this.sMatrix.reset();
6297
- this.tMatrix.reset();
6298
- this.matrix.reset();
6299
- var iteration = 0;
6300
-
6301
- if (offset > 0) {
6302
- while (iteration < roundOffset) {
6303
- this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);
6304
- iteration += 1;
6305
- }
6306
-
6307
- if (offsetModulo) {
6308
- this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);
6309
- iteration += offsetModulo;
6310
- }
6311
- } else if (offset < 0) {
6312
- while (iteration > roundOffset) {
6313
- this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);
6314
- iteration -= 1;
6315
- }
6316
-
6317
- if (offsetModulo) {
6318
- this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);
6319
- iteration -= offsetModulo;
6320
- }
6321
- }
6322
-
6323
- i = this.data.m === 1 ? 0 : this._currentCopies - 1;
6324
- dir = this.data.m === 1 ? 1 : -1;
6325
- cont = this._currentCopies;
6326
- var j;
6327
- var jLen;
6328
-
6329
- while (cont) {
6330
- items = this.elemsData[i].it;
6331
- itemsTransform = items[items.length - 1].transform.mProps.v.props;
6332
- jLen = itemsTransform.length;
6333
- items[items.length - 1].transform.mProps._mdf = true;
6334
- items[items.length - 1].transform.op._mdf = true;
6335
- items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));
6336
-
6337
- if (iteration !== 0) {
6338
- if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {
6339
- this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);
6340
- }
6341
-
6342
- this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);
6343
- this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);
6344
- this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);
6345
-
6346
- for (j = 0; j < jLen; j += 1) {
6347
- itemsTransform[j] = this.matrix.props[j];
6348
- }
6349
-
6350
- this.matrix.reset();
6351
- } else {
6352
- this.matrix.reset();
6353
-
6354
- for (j = 0; j < jLen; j += 1) {
6355
- itemsTransform[j] = this.matrix.props[j];
6356
- }
6357
- }
6358
-
6359
- iteration += 1;
6360
- cont -= 1;
6361
- i += dir;
6362
- }
6363
- } else {
6364
- cont = this._currentCopies;
6365
- i = 0;
6366
- dir = 1;
6367
-
6368
- while (cont) {
6369
- items = this.elemsData[i].it;
6370
- itemsTransform = items[items.length - 1].transform.mProps.v.props;
6371
- items[items.length - 1].transform.mProps._mdf = false;
6372
- items[items.length - 1].transform.op._mdf = false;
6373
- cont -= 1;
6374
- i += dir;
6375
- }
6376
- }
6377
-
6378
- return hasReloaded;
6379
- };
6380
-
6381
- RepeaterModifier.prototype.addShape = function () { };
6382
-
6383
- function RoundCornersModifier() { }
6384
-
6385
- extendPrototype([ShapeModifier], RoundCornersModifier);
6386
-
6387
- RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {
6388
- this.getValue = this.processKeys;
6389
- this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);
6390
- this._isAnimated = !!this.rd.effectsSequence.length;
6391
- };
6392
-
6393
- RoundCornersModifier.prototype.processPath = function (path, round) {
6394
- var clonedPath = shapePool.newElement();
6395
- clonedPath.c = path.c;
6396
- var i;
6397
- var len = path._length;
6398
- var currentV;
6399
- var currentI;
6400
- var currentO;
6401
- var closerV;
6402
- var distance;
6403
- var newPosPerc;
6404
- var index = 0;
6405
- var vX;
6406
- var vY;
6407
- var oX;
6408
- var oY;
6409
- var iX;
6410
- var iY;
6411
-
6412
- for (i = 0; i < len; i += 1) {
6413
- currentV = path.v[i];
6414
- currentO = path.o[i];
6415
- currentI = path.i[i];
6416
-
6417
- if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {
6418
- if ((i === 0 || i === len - 1) && !path.c) {
6419
- clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);
6420
- /* clonedPath.v[index] = currentV;
6421
- clonedPath.o[index] = currentO;
6422
- clonedPath.i[index] = currentI; */
6423
-
6424
- index += 1;
6425
- } else {
6426
- if (i === 0) {
6427
- closerV = path.v[len - 1];
6428
- } else {
6429
- closerV = path.v[i - 1];
6430
- }
6431
-
6432
- distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));
6433
- newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;
6434
- iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;
6435
- vX = iX;
6436
- iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;
6437
- vY = iY;
6438
- oX = vX - (vX - currentV[0]) * roundCorner;
6439
- oY = vY - (vY - currentV[1]) * roundCorner;
6440
- clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);
6441
- index += 1;
6442
-
6443
- if (i === len - 1) {
6444
- closerV = path.v[0];
6445
- } else {
6446
- closerV = path.v[i + 1];
6447
- }
6448
-
6449
- distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));
6450
- newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;
6451
- oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;
6452
- vX = oX;
6453
- oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;
6454
- vY = oY;
6455
- iX = vX - (vX - currentV[0]) * roundCorner;
6456
- iY = vY - (vY - currentV[1]) * roundCorner;
6457
- clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);
6458
- index += 1;
6459
- }
6460
- } else {
6461
- clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);
6462
- index += 1;
6463
- }
6464
- }
6465
-
6466
- return clonedPath;
6467
- };
6468
-
6469
- RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {
6470
- var shapePaths;
6471
- var i;
6472
- var len = this.shapes.length;
6473
- var j;
6474
- var jLen;
6475
- var rd = this.rd.v;
6476
-
6477
- if (rd !== 0) {
6478
- var shapeData;
6479
- var localShapeCollection;
6480
-
6481
- for (i = 0; i < len; i += 1) {
6482
- shapeData = this.shapes[i];
6483
- localShapeCollection = shapeData.localShapeCollection;
6484
-
6485
- if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {
6486
- localShapeCollection.releaseShapes();
6487
- shapeData.shape._mdf = true;
6488
- shapePaths = shapeData.shape.paths.shapes;
6489
- jLen = shapeData.shape.paths._length;
6490
-
6491
- for (j = 0; j < jLen; j += 1) {
6492
- localShapeCollection.addShape(this.processPath(shapePaths[j], rd));
6493
- }
6494
- }
6495
-
6496
- shapeData.shape.paths = shapeData.localShapeCollection;
6497
- }
6498
- }
6499
-
6500
- if (!this.dynamicProperties.length) {
6501
- this._mdf = false;
6502
- }
6503
- };
6504
-
6505
- function getFontProperties(fontData) {
6506
- var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];
6507
- var fWeight = 'normal';
6508
- var fStyle = 'normal';
6509
- var len = styles.length;
6510
- var styleName;
6511
-
6512
- for (var i = 0; i < len; i += 1) {
6513
- styleName = styles[i].toLowerCase();
6514
-
6515
- switch (styleName) {
6516
- case 'italic':
6517
- fStyle = 'italic';
6518
- break;
6519
-
6520
- case 'bold':
6521
- fWeight = '700';
6522
- break;
6523
-
6524
- case 'black':
6525
- fWeight = '900';
6526
- break;
6527
-
6528
- case 'medium':
6529
- fWeight = '500';
6530
- break;
6531
-
6532
- case 'regular':
6533
- case 'normal':
6534
- fWeight = '400';
6535
- break;
6536
-
6537
- case 'light':
6538
- case 'thin':
6539
- fWeight = '200';
6540
- break;
6541
-
6542
- default:
6543
- break;
6544
- }
6545
- }
6546
-
6547
- return {
6548
- style: fStyle,
6549
- weight: fontData.fWeight || fWeight
6550
- };
6551
- }
6552
-
6553
- var FontManager = function () {
6554
- var maxWaitingTime = 5000;
6555
- var emptyChar = {
6556
- w: 0,
6557
- size: 0,
6558
- shapes: [],
6559
- data: {
6560
- shapes: []
6561
- }
6562
- };
6563
- var combinedCharacters = []; // Hindi characters
6564
-
6565
- combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);
6566
- var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];
6567
- var zeroWidthJoiner = [65039, 8205];
6568
-
6569
- function trimFontOptions(font) {
6570
- var familyArray = font.split(',');
6571
- var i;
6572
- var len = familyArray.length;
6573
- var enabledFamilies = [];
6574
-
6575
- for (i = 0; i < len; i += 1) {
6576
- if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {
6577
- enabledFamilies.push(familyArray[i]);
6578
- }
6579
- }
6580
-
6581
- return enabledFamilies.join(',');
6582
- }
6583
-
6584
- function setUpNode(font, family) {
6585
- var parentNode = createTag('span'); // Node is invisible to screen readers.
6586
-
6587
- parentNode.setAttribute('aria-hidden', true);
6588
- parentNode.style.fontFamily = family;
6589
- var node = createTag('span'); // Characters that vary significantly among different fonts
6590
-
6591
- node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen
6592
-
6593
- parentNode.style.position = 'absolute';
6594
- parentNode.style.left = '-10000px';
6595
- parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious
6596
-
6597
- parentNode.style.fontSize = '300px'; // Reset any font properties
6598
-
6599
- parentNode.style.fontVariant = 'normal';
6600
- parentNode.style.fontStyle = 'normal';
6601
- parentNode.style.fontWeight = 'normal';
6602
- parentNode.style.letterSpacing = '0';
6603
- parentNode.appendChild(node);
6604
- document.body.appendChild(parentNode); // Remember width with no applied web font
6605
-
6606
- var width = node.offsetWidth;
6607
- node.style.fontFamily = trimFontOptions(font) + ', ' + family;
6608
- return {
6609
- node: node,
6610
- w: width,
6611
- parent: parentNode
6612
- };
6613
- }
6614
-
6615
- function checkLoadedFonts() {
6616
- var i;
6617
- var len = this.fonts.length;
6618
- var node;
6619
- var w;
6620
- var loadedCount = len;
6621
-
6622
- for (i = 0; i < len; i += 1) {
6623
- if (this.fonts[i].loaded) {
6624
- loadedCount -= 1;
6625
- } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {
6626
- this.fonts[i].loaded = true;
6627
- } else {
6628
- node = this.fonts[i].monoCase.node;
6629
- w = this.fonts[i].monoCase.w;
6630
-
6631
- if (node.offsetWidth !== w) {
6632
- loadedCount -= 1;
6633
- this.fonts[i].loaded = true;
6634
- } else {
6635
- node = this.fonts[i].sansCase.node;
6636
- w = this.fonts[i].sansCase.w;
6637
-
6638
- if (node.offsetWidth !== w) {
6639
- loadedCount -= 1;
6640
- this.fonts[i].loaded = true;
6641
- }
6642
- }
6643
-
6644
- if (this.fonts[i].loaded) {
6645
- this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);
6646
- this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);
6647
- }
6648
- }
6649
- }
6650
-
6651
- if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {
6652
- setTimeout(this.checkLoadedFontsBinded, 20);
6653
- } else {
6654
- setTimeout(this.setIsLoadedBinded, 10);
6655
- }
6656
- }
6657
-
6658
- function createHelper(fontData, def) {
6659
- var engine = document.body && def ? 'svg' : 'canvas';
6660
- var helper;
6661
- var fontProps = getFontProperties(fontData);
6662
-
6663
- if (engine === 'svg') {
6664
- var tHelper = createNS('text');
6665
- tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;
6666
-
6667
- tHelper.setAttribute('font-family', fontData.fFamily);
6668
- tHelper.setAttribute('font-style', fontProps.style);
6669
- tHelper.setAttribute('font-weight', fontProps.weight);
6670
- tHelper.textContent = '1';
6671
-
6672
- if (fontData.fClass) {
6673
- tHelper.style.fontFamily = 'inherit';
6674
- tHelper.setAttribute('class', fontData.fClass);
6675
- } else {
6676
- tHelper.style.fontFamily = fontData.fFamily;
6677
- }
6678
-
6679
- def.appendChild(tHelper);
6680
- helper = tHelper;
6681
- } else {
6682
- var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');
6683
- tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;
6684
- helper = tCanvasHelper;
6685
- }
6686
-
6687
- function measure(text) {
6688
- if (engine === 'svg') {
6689
- helper.textContent = text;
6690
- return helper.getComputedTextLength();
6691
- }
6692
-
6693
- return helper.measureText(text).width;
6694
- }
6695
-
6696
- return {
6697
- measureText: measure
6698
- };
6699
- }
6700
-
6701
- function addFonts(fontData, defs) {
6702
- if (!fontData) {
6703
- this.isLoaded = true;
6704
- return;
6705
- }
6706
-
6707
- if (this.chars) {
6708
- this.isLoaded = true;
6709
- this.fonts = fontData.list;
6710
- return;
6711
- }
6712
-
6713
- if (!document.body) {
6714
- this.isLoaded = true;
6715
- fontData.list.forEach(function (data) {
6716
- data.helper = createHelper(data);
6717
- data.cache = {};
6718
- });
6719
- this.fonts = fontData.list;
6720
- return;
6721
- }
6722
-
6723
- var fontArr = fontData.list;
6724
- var i;
6725
- var len = fontArr.length;
6726
- var _pendingFonts = len;
6727
-
6728
- for (i = 0; i < len; i += 1) {
6729
- var shouldLoadFont = true;
6730
- var loadedSelector;
6731
- var j;
6732
- fontArr[i].loaded = false;
6733
- fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');
6734
- fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');
6735
-
6736
- if (!fontArr[i].fPath) {
6737
- fontArr[i].loaded = true;
6738
- _pendingFonts -= 1;
6739
- } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {
6740
- loadedSelector = document.querySelectorAll('style[f-forigin="p"][f-family="' + fontArr[i].fFamily + '"], style[f-origin="3"][f-family="' + fontArr[i].fFamily + '"]');
6741
-
6742
- if (loadedSelector.length > 0) {
6743
- shouldLoadFont = false;
6744
- }
6745
-
6746
- if (shouldLoadFont) {
6747
- var s = createTag('style');
6748
- s.setAttribute('f-forigin', fontArr[i].fOrigin);
6749
- s.setAttribute('f-origin', fontArr[i].origin);
6750
- s.setAttribute('f-family', fontArr[i].fFamily);
6751
- s.type = 'text/css';
6752
- s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + "; font-style: normal; src: url('" + fontArr[i].fPath + "');}";
6753
- defs.appendChild(s);
6754
- }
6755
- } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {
6756
- loadedSelector = document.querySelectorAll('link[f-forigin="g"], link[f-origin="1"]');
6757
-
6758
- for (j = 0; j < loadedSelector.length; j += 1) {
6759
- if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {
6760
- // Font is already loaded
6761
- shouldLoadFont = false;
6762
- }
6763
- }
6764
-
6765
- if (shouldLoadFont) {
6766
- var l = createTag('link');
6767
- l.setAttribute('f-forigin', fontArr[i].fOrigin);
6768
- l.setAttribute('f-origin', fontArr[i].origin);
6769
- l.type = 'text/css';
6770
- l.rel = 'stylesheet';
6771
- l.href = fontArr[i].fPath;
6772
- document.body.appendChild(l);
6773
- }
6774
- } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {
6775
- loadedSelector = document.querySelectorAll('script[f-forigin="t"], script[f-origin="2"]');
6776
-
6777
- for (j = 0; j < loadedSelector.length; j += 1) {
6778
- if (fontArr[i].fPath === loadedSelector[j].src) {
6779
- // Font is already loaded
6780
- shouldLoadFont = false;
6781
- }
6782
- }
6783
-
6784
- if (shouldLoadFont) {
6785
- var sc = createTag('link');
6786
- sc.setAttribute('f-forigin', fontArr[i].fOrigin);
6787
- sc.setAttribute('f-origin', fontArr[i].origin);
6788
- sc.setAttribute('rel', 'stylesheet');
6789
- sc.setAttribute('href', fontArr[i].fPath);
6790
- defs.appendChild(sc);
6791
- }
6792
- }
6793
-
6794
- fontArr[i].helper = createHelper(fontArr[i], defs);
6795
- fontArr[i].cache = {};
6796
- this.fonts.push(fontArr[i]);
6797
- }
6798
-
6799
- if (_pendingFonts === 0) {
6800
- this.isLoaded = true;
6801
- } else {
6802
- // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.
6803
- // Adding this timeout seems to fix it
6804
- setTimeout(this.checkLoadedFonts.bind(this), 100);
6805
- }
6806
- }
6807
-
6808
- function addChars(chars) {
6809
- if (!chars) {
6810
- return;
6811
- }
6812
-
6813
- if (!this.chars) {
6814
- this.chars = [];
6815
- }
6816
-
6817
- var i;
6818
- var len = chars.length;
6819
- var j;
6820
- var jLen = this.chars.length;
6821
- var found;
6822
-
6823
- for (i = 0; i < len; i += 1) {
6824
- j = 0;
6825
- found = false;
6826
-
6827
- while (j < jLen) {
6828
- if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {
6829
- found = true;
6830
- }
6831
-
6832
- j += 1;
6833
- }
6834
-
6835
- if (!found) {
6836
- this.chars.push(chars[i]);
6837
- jLen += 1;
6838
- }
6839
- }
6840
- }
6841
-
6842
- function getCharData(_char, style, font) {
6843
- var i = 0;
6844
- var len = this.chars.length;
6845
-
6846
- while (i < len) {
6847
- if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {
6848
- return this.chars[i];
6849
- }
6850
-
6851
- i += 1;
6852
- }
6853
-
6854
- if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console
6855
- && !this._warned) {
6856
- this._warned = true;
6857
- // console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console
6858
- }
6859
-
6860
- return emptyChar;
6861
- }
6862
-
6863
- function measureText(_char2, fontName, size) {
6864
- var fontData = this.getFontByName(fontName);
6865
-
6866
- var index = _char2.charCodeAt(0);
6867
-
6868
- if (!fontData.cache[index + 1]) {
6869
- var tHelper = fontData.helper;
6870
-
6871
- if (_char2 === ' ') {
6872
- var doubleSize = tHelper.measureText('|' + _char2 + '|');
6873
- var singleSize = tHelper.measureText('||');
6874
- fontData.cache[index + 1] = (doubleSize - singleSize) / 100;
6875
- } else {
6876
- fontData.cache[index + 1] = tHelper.measureText(_char2) / 100;
6877
- }
6878
- }
6879
-
6880
- return fontData.cache[index + 1] * size;
6881
- }
6882
-
6883
- function getFontByName(name) {
6884
- var i = 0;
6885
- var len = this.fonts.length;
6886
-
6887
- while (i < len) {
6888
- if (this.fonts[i].fName === name) {
6889
- return this.fonts[i];
6890
- }
6891
-
6892
- i += 1;
6893
- }
6894
-
6895
- return this.fonts[0];
6896
- }
6897
-
6898
- function isModifier(firstCharCode, secondCharCode) {
6899
- var sum = firstCharCode.toString(16) + secondCharCode.toString(16);
6900
- return surrogateModifiers.indexOf(sum) !== -1;
6901
- }
6902
-
6903
- function isZeroWidthJoiner(firstCharCode, secondCharCode) {
6904
- if (!secondCharCode) {
6905
- return firstCharCode === zeroWidthJoiner[1];
6906
- }
6907
-
6908
- return firstCharCode === zeroWidthJoiner[0] && secondCharCode === zeroWidthJoiner[1];
6909
- }
6910
-
6911
- function isCombinedCharacter(_char3) {
6912
- return combinedCharacters.indexOf(_char3) !== -1;
6913
- }
6914
-
6915
- function setIsLoaded() {
6916
- this.isLoaded = true;
6917
- }
6918
-
6919
- var Font = function Font() {
6920
- this.fonts = [];
6921
- this.chars = null;
6922
- this.typekitLoaded = 0;
6923
- this.isLoaded = false;
6924
- this._warned = false;
6925
- this.initTime = Date.now();
6926
- this.setIsLoadedBinded = this.setIsLoaded.bind(this);
6927
- this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);
6928
- };
6929
-
6930
- Font.isModifier = isModifier;
6931
- Font.isZeroWidthJoiner = isZeroWidthJoiner;
6932
- Font.isCombinedCharacter = isCombinedCharacter;
6933
- var fontPrototype = {
6934
- addChars: addChars,
6935
- addFonts: addFonts,
6936
- getCharData: getCharData,
6937
- getFontByName: getFontByName,
6938
- measureText: measureText,
6939
- checkLoadedFonts: checkLoadedFonts,
6940
- setIsLoaded: setIsLoaded
6941
- };
6942
- Font.prototype = fontPrototype;
6943
- return Font;
6944
- }();
6945
-
6946
- function RenderableElement() { }
6947
-
6948
- RenderableElement.prototype = {
6949
- initRenderable: function initRenderable() {
6950
- // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange
6951
- this.isInRange = false; // layer's display state
6952
-
6953
- this.hidden = false; // If layer's transparency equals 0, it can be hidden
6954
-
6955
- this.isTransparent = false; // list of animated components
6956
-
6957
- this.renderableComponents = [];
6958
- },
6959
- addRenderableComponent: function addRenderableComponent(component) {
6960
- if (this.renderableComponents.indexOf(component) === -1) {
6961
- this.renderableComponents.push(component);
6962
- }
6963
- },
6964
- removeRenderableComponent: function removeRenderableComponent(component) {
6965
- if (this.renderableComponents.indexOf(component) !== -1) {
6966
- this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);
6967
- }
6968
- },
6969
- prepareRenderableFrame: function prepareRenderableFrame(num) {
6970
- this.checkLayerLimits(num);
6971
- },
6972
- checkTransparency: function checkTransparency() {
6973
- if (this.finalTransform.mProp.o.v <= 0) {
6974
- if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {
6975
- this.isTransparent = true;
6976
- this.hide();
6977
- }
6978
- } else if (this.isTransparent) {
6979
- this.isTransparent = false;
6980
- this.show();
6981
- }
6982
- },
6983
-
6984
- /**
6985
- * @function
6986
- * Initializes frame related properties.
6987
- *
6988
- * @param {number} num
6989
- * current frame number in Layer's time
6990
- *
6991
- */
6992
- checkLayerLimits: function checkLayerLimits(num) {
6993
- if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {
6994
- if (this.isInRange !== true) {
6995
- this.globalData._mdf = true;
6996
- this._mdf = true;
6997
- this.isInRange = true;
6998
- this.show();
6999
- }
7000
- } else if (this.isInRange !== false) {
7001
- this.globalData._mdf = true;
7002
- this.isInRange = false;
7003
- this.hide();
7004
- }
7005
- },
7006
- renderRenderable: function renderRenderable() {
7007
- var i;
7008
- var len = this.renderableComponents.length;
7009
-
7010
- for (i = 0; i < len; i += 1) {
7011
- this.renderableComponents[i].renderFrame(this._isFirstFrame);
7012
- }
7013
- /* this.maskManager.renderFrame(this.finalTransform.mat);
7014
- this.renderableEffectsManager.renderFrame(this._isFirstFrame); */
7015
-
7016
- },
7017
- sourceRectAtTime: function sourceRectAtTime() {
7018
- return {
7019
- top: 0,
7020
- left: 0,
7021
- width: 100,
7022
- height: 100
7023
- };
7024
- },
7025
- getLayerSize: function getLayerSize() {
7026
- if (this.data.ty === 5) {
7027
- return {
7028
- w: this.data.textData.width,
7029
- h: this.data.textData.height
7030
- };
7031
- }
7032
-
7033
- return {
7034
- w: this.data.width,
7035
- h: this.data.height
7036
- };
7037
- }
7038
- };
7039
-
7040
- var MaskManagerInterface = function () {
7041
- function MaskInterface(mask, data) {
7042
- this._mask = mask;
7043
- this._data = data;
7044
- }
7045
-
7046
- Object.defineProperty(MaskInterface.prototype, 'maskPath', {
7047
- get: function get() {
7048
- if (this._mask.prop.k) {
7049
- this._mask.prop.getValue();
7050
- }
7051
-
7052
- return this._mask.prop;
7053
- }
7054
- });
7055
- Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {
7056
- get: function get() {
7057
- if (this._mask.op.k) {
7058
- this._mask.op.getValue();
7059
- }
7060
-
7061
- return this._mask.op.v * 100;
7062
- }
7063
- });
7064
-
7065
- var MaskManager = function MaskManager(maskManager) {
7066
- var _masksInterfaces = createSizedArray(maskManager.viewData.length);
7067
-
7068
- var i;
7069
- var len = maskManager.viewData.length;
7070
-
7071
- for (i = 0; i < len; i += 1) {
7072
- _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);
7073
- }
7074
-
7075
- var maskFunction = function maskFunction(name) {
7076
- i = 0;
7077
-
7078
- while (i < len) {
7079
- if (maskManager.masksProperties[i].nm === name) {
7080
- return _masksInterfaces[i];
7081
- }
7082
-
7083
- i += 1;
7084
- }
7085
-
7086
- return null;
7087
- };
7088
-
7089
- return maskFunction;
7090
- };
7091
-
7092
- return MaskManager;
7093
- }();
7094
-
7095
- var ExpressionPropertyInterface = function () {
7096
- var defaultUnidimensionalValue = {
7097
- pv: 0,
7098
- v: 0,
7099
- mult: 1
7100
- };
7101
- var defaultMultidimensionalValue = {
7102
- pv: [0, 0, 0],
7103
- v: [0, 0, 0],
7104
- mult: 1
7105
- };
7106
-
7107
- function completeProperty(expressionValue, property, type) {
7108
- Object.defineProperty(expressionValue, 'velocity', {
7109
- get: function get() {
7110
- return property.getVelocityAtTime(property.comp.currentFrame);
7111
- }
7112
- });
7113
- expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;
7114
-
7115
- expressionValue.key = function (pos) {
7116
- if (!expressionValue.numKeys) {
7117
- return 0;
7118
- }
7119
-
7120
- var value = '';
7121
-
7122
- if ('s' in property.keyframes[pos - 1]) {
7123
- value = property.keyframes[pos - 1].s;
7124
- } else if ('e' in property.keyframes[pos - 2]) {
7125
- value = property.keyframes[pos - 2].e;
7126
- } else {
7127
- value = property.keyframes[pos - 2].s;
7128
- }
7129
-
7130
- var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers
7131
-
7132
- valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;
7133
- valueProp.value = type === 'unidimensional' ? value[0] : value;
7134
- return valueProp;
7135
- };
7136
-
7137
- expressionValue.valueAtTime = property.getValueAtTime;
7138
- expressionValue.speedAtTime = property.getSpeedAtTime;
7139
- expressionValue.velocityAtTime = property.getVelocityAtTime;
7140
- expressionValue.propertyGroup = property.propertyGroup;
7141
- }
7142
-
7143
- function UnidimensionalPropertyInterface(property) {
7144
- if (!property || !('pv' in property)) {
7145
- property = defaultUnidimensionalValue;
7146
- }
7147
-
7148
- var mult = 1 / property.mult;
7149
- var val = property.pv * mult;
7150
- var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers
7151
-
7152
- expressionValue.value = val;
7153
- completeProperty(expressionValue, property, 'unidimensional');
7154
- return function () {
7155
- if (property.k) {
7156
- property.getValue();
7157
- }
7158
-
7159
- val = property.v * mult;
7160
-
7161
- if (expressionValue.value !== val) {
7162
- expressionValue = new Number(val); // eslint-disable-line no-new-wrappers
7163
-
7164
- expressionValue.value = val;
7165
- completeProperty(expressionValue, property, 'unidimensional');
7166
- }
7167
-
7168
- return expressionValue;
7169
- };
7170
- }
7171
-
7172
- function MultidimensionalPropertyInterface(property) {
7173
- if (!property || !('pv' in property)) {
7174
- property = defaultMultidimensionalValue;
7175
- }
7176
-
7177
- var mult = 1 / property.mult;
7178
- var len = property.data && property.data.l || property.pv.length;
7179
- var expressionValue = createTypedArray('float32', len);
7180
- var arrValue = createTypedArray('float32', len);
7181
- expressionValue.value = arrValue;
7182
- completeProperty(expressionValue, property, 'multidimensional');
7183
- return function () {
7184
- if (property.k) {
7185
- property.getValue();
7186
- }
7187
-
7188
- for (var i = 0; i < len; i += 1) {
7189
- arrValue[i] = property.v[i] * mult;
7190
- expressionValue[i] = arrValue[i];
7191
- }
7192
-
7193
- return expressionValue;
7194
- };
7195
- } // TODO: try to avoid using this getter
7196
-
7197
-
7198
- function defaultGetter() {
7199
- return defaultUnidimensionalValue;
7200
- }
7201
-
7202
- return function (property) {
7203
- if (!property) {
7204
- return defaultGetter;
7205
- }
7206
-
7207
- if (property.propType === 'unidimensional') {
7208
- return UnidimensionalPropertyInterface(property);
7209
- }
7210
-
7211
- return MultidimensionalPropertyInterface(property);
7212
- };
7213
- }();
7214
-
7215
- var TransformExpressionInterface = function () {
7216
- return function (transform) {
7217
- function _thisFunction(name) {
7218
- switch (name) {
7219
- case 'scale':
7220
- case 'Scale':
7221
- case 'ADBE Scale':
7222
- case 6:
7223
- return _thisFunction.scale;
7224
-
7225
- case 'rotation':
7226
- case 'Rotation':
7227
- case 'ADBE Rotation':
7228
- case 'ADBE Rotate Z':
7229
- case 10:
7230
- return _thisFunction.rotation;
7231
-
7232
- case 'ADBE Rotate X':
7233
- return _thisFunction.xRotation;
7234
-
7235
- case 'ADBE Rotate Y':
7236
- return _thisFunction.yRotation;
7237
-
7238
- case 'position':
7239
- case 'Position':
7240
- case 'ADBE Position':
7241
- case 2:
7242
- return _thisFunction.position;
7243
-
7244
- case 'ADBE Position_0':
7245
- return _thisFunction.xPosition;
7246
-
7247
- case 'ADBE Position_1':
7248
- return _thisFunction.yPosition;
7249
-
7250
- case 'ADBE Position_2':
7251
- return _thisFunction.zPosition;
7252
-
7253
- case 'anchorPoint':
7254
- case 'AnchorPoint':
7255
- case 'Anchor Point':
7256
- case 'ADBE AnchorPoint':
7257
- case 1:
7258
- return _thisFunction.anchorPoint;
7259
-
7260
- case 'opacity':
7261
- case 'Opacity':
7262
- case 11:
7263
- return _thisFunction.opacity;
7264
-
7265
- default:
7266
- return null;
7267
- }
7268
- }
7269
-
7270
- Object.defineProperty(_thisFunction, 'rotation', {
7271
- get: ExpressionPropertyInterface(transform.r || transform.rz)
7272
- });
7273
- Object.defineProperty(_thisFunction, 'zRotation', {
7274
- get: ExpressionPropertyInterface(transform.rz || transform.r)
7275
- });
7276
- Object.defineProperty(_thisFunction, 'xRotation', {
7277
- get: ExpressionPropertyInterface(transform.rx)
7278
- });
7279
- Object.defineProperty(_thisFunction, 'yRotation', {
7280
- get: ExpressionPropertyInterface(transform.ry)
7281
- });
7282
- Object.defineProperty(_thisFunction, 'scale', {
7283
- get: ExpressionPropertyInterface(transform.s)
7284
- });
7285
-
7286
- var _px;
7287
-
7288
- var _py;
7289
-
7290
- var _pz;
7291
-
7292
- var _transformFactory;
7293
-
7294
- if (transform.p) {
7295
- _transformFactory = ExpressionPropertyInterface(transform.p);
7296
- } else {
7297
- _px = ExpressionPropertyInterface(transform.px);
7298
- _py = ExpressionPropertyInterface(transform.py);
7299
-
7300
- if (transform.pz) {
7301
- _pz = ExpressionPropertyInterface(transform.pz);
7302
- }
7303
- }
7304
-
7305
- Object.defineProperty(_thisFunction, 'position', {
7306
- get: function get() {
7307
- if (transform.p) {
7308
- return _transformFactory();
7309
- }
7310
-
7311
- return [_px(), _py(), _pz ? _pz() : 0];
7312
- }
7313
- });
7314
- Object.defineProperty(_thisFunction, 'xPosition', {
7315
- get: ExpressionPropertyInterface(transform.px)
7316
- });
7317
- Object.defineProperty(_thisFunction, 'yPosition', {
7318
- get: ExpressionPropertyInterface(transform.py)
7319
- });
7320
- Object.defineProperty(_thisFunction, 'zPosition', {
7321
- get: ExpressionPropertyInterface(transform.pz)
7322
- });
7323
- Object.defineProperty(_thisFunction, 'anchorPoint', {
7324
- get: ExpressionPropertyInterface(transform.a)
7325
- });
7326
- Object.defineProperty(_thisFunction, 'opacity', {
7327
- get: ExpressionPropertyInterface(transform.o)
7328
- });
7329
- Object.defineProperty(_thisFunction, 'skew', {
7330
- get: ExpressionPropertyInterface(transform.sk)
7331
- });
7332
- Object.defineProperty(_thisFunction, 'skewAxis', {
7333
- get: ExpressionPropertyInterface(transform.sa)
7334
- });
7335
- Object.defineProperty(_thisFunction, 'orientation', {
7336
- get: ExpressionPropertyInterface(transform.or)
7337
- });
7338
- return _thisFunction;
7339
- };
7340
- }();
7341
-
7342
- var LayerExpressionInterface = function () {
7343
- function getMatrix(time) {
7344
- var toWorldMat = new Matrix();
7345
-
7346
- if (time !== undefined) {
7347
- var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);
7348
-
7349
- propMatrix.clone(toWorldMat);
7350
- } else {
7351
- var transformMat = this._elem.finalTransform.mProp;
7352
- transformMat.applyToMatrix(toWorldMat);
7353
- }
7354
-
7355
- return toWorldMat;
7356
- }
7357
-
7358
- function toWorldVec(arr, time) {
7359
- var toWorldMat = this.getMatrix(time);
7360
- toWorldMat.props[12] = 0;
7361
- toWorldMat.props[13] = 0;
7362
- toWorldMat.props[14] = 0;
7363
- return this.applyPoint(toWorldMat, arr);
7364
- }
7365
-
7366
- function toWorld(arr, time) {
7367
- var toWorldMat = this.getMatrix(time);
7368
- return this.applyPoint(toWorldMat, arr);
7369
- }
7370
-
7371
- function fromWorldVec(arr, time) {
7372
- var toWorldMat = this.getMatrix(time);
7373
- toWorldMat.props[12] = 0;
7374
- toWorldMat.props[13] = 0;
7375
- toWorldMat.props[14] = 0;
7376
- return this.invertPoint(toWorldMat, arr);
7377
- }
7378
-
7379
- function fromWorld(arr, time) {
7380
- var toWorldMat = this.getMatrix(time);
7381
- return this.invertPoint(toWorldMat, arr);
7382
- }
7383
-
7384
- function applyPoint(matrix, arr) {
7385
- if (this._elem.hierarchy && this._elem.hierarchy.length) {
7386
- var i;
7387
- var len = this._elem.hierarchy.length;
7388
-
7389
- for (i = 0; i < len; i += 1) {
7390
- this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);
7391
- }
7392
- }
7393
-
7394
- return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);
7395
- }
7396
-
7397
- function invertPoint(matrix, arr) {
7398
- if (this._elem.hierarchy && this._elem.hierarchy.length) {
7399
- var i;
7400
- var len = this._elem.hierarchy.length;
7401
-
7402
- for (i = 0; i < len; i += 1) {
7403
- this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);
7404
- }
7405
- }
7406
-
7407
- return matrix.inversePoint(arr);
7408
- }
7409
-
7410
- function fromComp(arr) {
7411
- var toWorldMat = new Matrix();
7412
- toWorldMat.reset();
7413
-
7414
- this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);
7415
-
7416
- if (this._elem.hierarchy && this._elem.hierarchy.length) {
7417
- var i;
7418
- var len = this._elem.hierarchy.length;
7419
-
7420
- for (i = 0; i < len; i += 1) {
7421
- this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);
7422
- }
7423
-
7424
- return toWorldMat.inversePoint(arr);
7425
- }
7426
-
7427
- return toWorldMat.inversePoint(arr);
7428
- }
7429
-
7430
- function sampleImage() {
7431
- return [1, 1, 1, 1];
7432
- }
7433
-
7434
- return function (elem) {
7435
- var transformInterface;
7436
-
7437
- function _registerMaskInterface(maskManager) {
7438
- _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);
7439
- }
7440
-
7441
- function _registerEffectsInterface(effects) {
7442
- _thisLayerFunction.effect = effects;
7443
- }
7444
-
7445
- function _thisLayerFunction(name) {
7446
- switch (name) {
7447
- case 'ADBE Root Vectors Group':
7448
- case 'Contents':
7449
- case 2:
7450
- return _thisLayerFunction.shapeInterface;
7451
-
7452
- case 1:
7453
- case 6:
7454
- case 'Transform':
7455
- case 'transform':
7456
- case 'ADBE Transform Group':
7457
- return transformInterface;
7458
-
7459
- case 4:
7460
- case 'ADBE Effect Parade':
7461
- case 'effects':
7462
- case 'Effects':
7463
- return _thisLayerFunction.effect;
7464
-
7465
- case 'ADBE Text Properties':
7466
- return _thisLayerFunction.textInterface;
7467
-
7468
- default:
7469
- return null;
7470
- }
7471
- }
7472
-
7473
- _thisLayerFunction.getMatrix = getMatrix;
7474
- _thisLayerFunction.invertPoint = invertPoint;
7475
- _thisLayerFunction.applyPoint = applyPoint;
7476
- _thisLayerFunction.toWorld = toWorld;
7477
- _thisLayerFunction.toWorldVec = toWorldVec;
7478
- _thisLayerFunction.fromWorld = fromWorld;
7479
- _thisLayerFunction.fromWorldVec = fromWorldVec;
7480
- _thisLayerFunction.toComp = toWorld;
7481
- _thisLayerFunction.fromComp = fromComp;
7482
- _thisLayerFunction.sampleImage = sampleImage;
7483
- _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);
7484
- _thisLayerFunction._elem = elem;
7485
- transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);
7486
- var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');
7487
- Object.defineProperties(_thisLayerFunction, {
7488
- hasParent: {
7489
- get: function get() {
7490
- return elem.hierarchy.length;
7491
- }
7492
- },
7493
- parent: {
7494
- get: function get() {
7495
- return elem.hierarchy[0].layerInterface;
7496
- }
7497
- },
7498
- rotation: getDescriptor(transformInterface, 'rotation'),
7499
- scale: getDescriptor(transformInterface, 'scale'),
7500
- position: getDescriptor(transformInterface, 'position'),
7501
- opacity: getDescriptor(transformInterface, 'opacity'),
7502
- anchorPoint: anchorPointDescriptor,
7503
- anchor_point: anchorPointDescriptor,
7504
- transform: {
7505
- get: function get() {
7506
- return transformInterface;
7507
- }
7508
- },
7509
- active: {
7510
- get: function get() {
7511
- return elem.isInRange;
7512
- }
7513
- }
7514
- });
7515
- _thisLayerFunction.startTime = elem.data.st;
7516
- _thisLayerFunction.index = elem.data.ind;
7517
- _thisLayerFunction.source = elem.data.refId;
7518
- _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;
7519
- _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;
7520
- _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;
7521
- _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;
7522
- _thisLayerFunction._name = elem.data.nm;
7523
- _thisLayerFunction.registerMaskInterface = _registerMaskInterface;
7524
- _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;
7525
- return _thisLayerFunction;
7526
- };
7527
- }();
7528
-
7529
- var propertyGroupFactory = function () {
7530
- return function (interfaceFunction, parentPropertyGroup) {
7531
- return function (val) {
7532
- val = val === undefined ? 1 : val;
7533
-
7534
- if (val <= 0) {
7535
- return interfaceFunction;
7536
- }
7537
-
7538
- return parentPropertyGroup(val - 1);
7539
- };
7540
- };
7541
- }();
7542
-
7543
- var PropertyInterface = function () {
7544
- return function (propertyName, propertyGroup) {
7545
- var interfaceFunction = {
7546
- _name: propertyName
7547
- };
7548
-
7549
- function _propertyGroup(val) {
7550
- val = val === undefined ? 1 : val;
7551
-
7552
- if (val <= 0) {
7553
- return interfaceFunction;
7554
- }
7555
-
7556
- return propertyGroup(val - 1);
7557
- }
7558
-
7559
- return _propertyGroup;
7560
- };
7561
- }();
7562
-
7563
- var EffectsExpressionInterface = function () {
7564
- var ob = {
7565
- createEffectsInterface: createEffectsInterface
7566
- };
7567
-
7568
- function createEffectsInterface(elem, propertyGroup) {
7569
- if (elem.effectsManager) {
7570
- var effectElements = [];
7571
- var effectsData = elem.data.ef;
7572
- var i;
7573
- var len = elem.effectsManager.effectElements.length;
7574
-
7575
- for (i = 0; i < len; i += 1) {
7576
- effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));
7577
- }
7578
-
7579
- var effects = elem.data.ef || [];
7580
-
7581
- var groupInterface = function groupInterface(name) {
7582
- i = 0;
7583
- len = effects.length;
7584
-
7585
- while (i < len) {
7586
- if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {
7587
- return effectElements[i];
7588
- }
7589
-
7590
- i += 1;
7591
- }
7592
-
7593
- return null;
7594
- };
7595
-
7596
- Object.defineProperty(groupInterface, 'numProperties', {
7597
- get: function get() {
7598
- return effects.length;
7599
- }
7600
- });
7601
- return groupInterface;
7602
- }
7603
-
7604
- return null;
7605
- }
7606
-
7607
- function createGroupInterface(data, elements, propertyGroup, elem) {
7608
- function groupInterface(name) {
7609
- var effects = data.ef;
7610
- var i = 0;
7611
- var len = effects.length;
7612
-
7613
- while (i < len) {
7614
- if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {
7615
- if (effects[i].ty === 5) {
7616
- return effectElements[i];
7617
- }
7618
-
7619
- return effectElements[i]();
7620
- }
7621
-
7622
- i += 1;
7623
- }
7624
-
7625
- throw new Error();
7626
- }
7627
-
7628
- var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);
7629
-
7630
- var effectElements = [];
7631
- var i;
7632
- var len = data.ef.length;
7633
-
7634
- for (i = 0; i < len; i += 1) {
7635
- if (data.ef[i].ty === 5) {
7636
- effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));
7637
- } else {
7638
- effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));
7639
- }
7640
- }
7641
-
7642
- if (data.mn === 'ADBE Color Control') {
7643
- Object.defineProperty(groupInterface, 'color', {
7644
- get: function get() {
7645
- return effectElements[0]();
7646
- }
7647
- });
7648
- }
7649
-
7650
- Object.defineProperties(groupInterface, {
7651
- numProperties: {
7652
- get: function get() {
7653
- return data.np;
7654
- }
7655
- },
7656
- _name: {
7657
- value: data.nm
7658
- },
7659
- propertyGroup: {
7660
- value: _propertyGroup
7661
- }
7662
- });
7663
- groupInterface.enabled = data.en !== 0;
7664
- groupInterface.active = groupInterface.enabled;
7665
- return groupInterface;
7666
- }
7667
-
7668
- function createValueInterface(element, type, elem, propertyGroup) {
7669
- var expressionProperty = ExpressionPropertyInterface(element.p);
7670
-
7671
- function interfaceFunction() {
7672
- if (type === 10) {
7673
- return elem.comp.compInterface(element.p.v);
7674
- }
7675
-
7676
- return expressionProperty();
7677
- }
7678
-
7679
- if (element.p.setGroupProperty) {
7680
- element.p.setGroupProperty(PropertyInterface('', propertyGroup));
7681
- }
7682
-
7683
- return interfaceFunction;
7684
- }
7685
-
7686
- return ob;
7687
- }();
7688
-
7689
- var CompExpressionInterface = function () {
7690
- return function (comp) {
7691
- function _thisLayerFunction(name) {
7692
- var i = 0;
7693
- var len = comp.layers.length;
7694
-
7695
- while (i < len) {
7696
- if (comp.layers[i].nm === name || comp.layers[i].ind === name) {
7697
- return comp.elements[i].layerInterface;
7698
- }
7699
-
7700
- i += 1;
7701
- }
7702
-
7703
- return null; // return {active:false};
7704
- }
7705
-
7706
- Object.defineProperty(_thisLayerFunction, '_name', {
7707
- value: comp.data.nm
7708
- });
7709
- _thisLayerFunction.layer = _thisLayerFunction;
7710
- _thisLayerFunction.pixelAspect = 1;
7711
- _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;
7712
- _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;
7713
- _thisLayerFunction.pixelAspect = 1;
7714
- _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;
7715
- _thisLayerFunction.displayStartTime = 0;
7716
- _thisLayerFunction.numLayers = comp.layers.length;
7717
- return _thisLayerFunction;
7718
- };
7719
- }();
7720
-
7721
- var ShapePathInterface = function () {
7722
- return function pathInterfaceFactory(shape, view, propertyGroup) {
7723
- var prop = view.sh;
7724
-
7725
- function interfaceFunction(val) {
7726
- if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {
7727
- return interfaceFunction.path;
7728
- }
7729
-
7730
- return null;
7731
- }
7732
-
7733
- var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);
7734
-
7735
- prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));
7736
- Object.defineProperties(interfaceFunction, {
7737
- path: {
7738
- get: function get() {
7739
- if (prop.k) {
7740
- prop.getValue();
7741
- }
7742
-
7743
- return prop;
7744
- }
7745
- },
7746
- shape: {
7747
- get: function get() {
7748
- if (prop.k) {
7749
- prop.getValue();
7750
- }
7751
-
7752
- return prop;
7753
- }
7754
- },
7755
- _name: {
7756
- value: shape.nm
7757
- },
7758
- ix: {
7759
- value: shape.ix
7760
- },
7761
- propertyIndex: {
7762
- value: shape.ix
7763
- },
7764
- mn: {
7765
- value: shape.mn
7766
- },
7767
- propertyGroup: {
7768
- value: propertyGroup
7769
- }
7770
- });
7771
- return interfaceFunction;
7772
- };
7773
- }();
7774
-
7775
- var ShapeExpressionInterface = function () {
7776
- function iterateElements(shapes, view, propertyGroup) {
7777
- var arr = [];
7778
- var i;
7779
- var len = shapes ? shapes.length : 0;
7780
-
7781
- for (i = 0; i < len; i += 1) {
7782
- if (shapes[i].ty === 'gr') {
7783
- arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));
7784
- } else if (shapes[i].ty === 'fl') {
7785
- arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));
7786
- } else if (shapes[i].ty === 'st') {
7787
- arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));
7788
- } else if (shapes[i].ty === 'tm') {
7789
- arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));
7790
- } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));
7791
- } else if (shapes[i].ty === 'el') {
7792
- arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));
7793
- } else if (shapes[i].ty === 'sr') {
7794
- arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));
7795
- } else if (shapes[i].ty === 'sh') {
7796
- arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));
7797
- } else if (shapes[i].ty === 'rc') {
7798
- arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));
7799
- } else if (shapes[i].ty === 'rd') {
7800
- arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));
7801
- } else if (shapes[i].ty === 'rp') {
7802
- arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));
7803
- } else if (shapes[i].ty === 'gf') {
7804
- arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));
7805
- } else {
7806
- arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));
7807
- }
7808
- }
7809
-
7810
- return arr;
7811
- }
7812
-
7813
- function contentsInterfaceFactory(shape, view, propertyGroup) {
7814
- var interfaces;
7815
-
7816
- var interfaceFunction = function _interfaceFunction(value) {
7817
- var i = 0;
7818
- var len = interfaces.length;
7819
-
7820
- while (i < len) {
7821
- if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {
7822
- return interfaces[i];
7823
- }
7824
-
7825
- i += 1;
7826
- }
7827
-
7828
- if (typeof value === 'number') {
7829
- return interfaces[value - 1];
7830
- }
7831
-
7832
- return null;
7833
- };
7834
-
7835
- interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);
7836
- interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);
7837
- interfaceFunction.numProperties = interfaces.length;
7838
- var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);
7839
- interfaceFunction.transform = transformInterface;
7840
- interfaceFunction.propertyIndex = shape.cix;
7841
- interfaceFunction._name = shape.nm;
7842
- return interfaceFunction;
7843
- }
7844
-
7845
- function groupInterfaceFactory(shape, view, propertyGroup) {
7846
- var interfaceFunction = function _interfaceFunction(value) {
7847
- switch (value) {
7848
- case 'ADBE Vectors Group':
7849
- case 'Contents':
7850
- case 2:
7851
- return interfaceFunction.content;
7852
- // Not necessary for now. Keeping them here in case a new case appears
7853
- // case 'ADBE Vector Transform Group':
7854
- // case 3:
7855
-
7856
- default:
7857
- return interfaceFunction.transform;
7858
- }
7859
- };
7860
-
7861
- interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);
7862
- var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);
7863
- var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);
7864
- interfaceFunction.content = content;
7865
- interfaceFunction.transform = transformInterface;
7866
- Object.defineProperty(interfaceFunction, '_name', {
7867
- get: function get() {
7868
- return shape.nm;
7869
- }
7870
- }); // interfaceFunction.content = interfaceFunction;
7871
-
7872
- interfaceFunction.numProperties = shape.np;
7873
- interfaceFunction.propertyIndex = shape.ix;
7874
- interfaceFunction.nm = shape.nm;
7875
- interfaceFunction.mn = shape.mn;
7876
- return interfaceFunction;
7877
- }
7878
-
7879
- function fillInterfaceFactory(shape, view, propertyGroup) {
7880
- function interfaceFunction(val) {
7881
- if (val === 'Color' || val === 'color') {
7882
- return interfaceFunction.color;
7883
- }
7884
-
7885
- if (val === 'Opacity' || val === 'opacity') {
7886
- return interfaceFunction.opacity;
7887
- }
7888
-
7889
- return null;
7890
- }
7891
-
7892
- Object.defineProperties(interfaceFunction, {
7893
- color: {
7894
- get: ExpressionPropertyInterface(view.c)
7895
- },
7896
- opacity: {
7897
- get: ExpressionPropertyInterface(view.o)
7898
- },
7899
- _name: {
7900
- value: shape.nm
7901
- },
7902
- mn: {
7903
- value: shape.mn
7904
- }
7905
- });
7906
- view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));
7907
- view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));
7908
- return interfaceFunction;
7909
- }
7910
-
7911
- function gradientFillInterfaceFactory(shape, view, propertyGroup) {
7912
- function interfaceFunction(val) {
7913
- if (val === 'Start Point' || val === 'start point') {
7914
- return interfaceFunction.startPoint;
7915
- }
7916
-
7917
- if (val === 'End Point' || val === 'end point') {
7918
- return interfaceFunction.endPoint;
7919
- }
7920
-
7921
- if (val === 'Opacity' || val === 'opacity') {
7922
- return interfaceFunction.opacity;
7923
- }
7924
-
7925
- return null;
7926
- }
7927
-
7928
- Object.defineProperties(interfaceFunction, {
7929
- startPoint: {
7930
- get: ExpressionPropertyInterface(view.s)
7931
- },
7932
- endPoint: {
7933
- get: ExpressionPropertyInterface(view.e)
7934
- },
7935
- opacity: {
7936
- get: ExpressionPropertyInterface(view.o)
7937
- },
7938
- type: {
7939
- get: function get() {
7940
- return 'a';
7941
- }
7942
- },
7943
- _name: {
7944
- value: shape.nm
7945
- },
7946
- mn: {
7947
- value: shape.mn
7948
- }
7949
- });
7950
- view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));
7951
- view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));
7952
- view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));
7953
- return interfaceFunction;
7954
- }
7955
-
7956
- function defaultInterfaceFactory() {
7957
- function interfaceFunction() {
7958
- return null;
7959
- }
7960
-
7961
- return interfaceFunction;
7962
- }
7963
-
7964
- function strokeInterfaceFactory(shape, view, propertyGroup) {
7965
- var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);
7966
-
7967
- var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);
7968
-
7969
- function addPropertyToDashOb(i) {
7970
- Object.defineProperty(dashOb, shape.d[i].nm, {
7971
- get: ExpressionPropertyInterface(view.d.dataProps[i].p)
7972
- });
7973
- }
7974
-
7975
- var i;
7976
- var len = shape.d ? shape.d.length : 0;
7977
- var dashOb = {};
7978
-
7979
- for (i = 0; i < len; i += 1) {
7980
- addPropertyToDashOb(i);
7981
- view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);
7982
- }
7983
-
7984
- function interfaceFunction(val) {
7985
- if (val === 'Color' || val === 'color') {
7986
- return interfaceFunction.color;
7987
- }
7988
-
7989
- if (val === 'Opacity' || val === 'opacity') {
7990
- return interfaceFunction.opacity;
7991
- }
7992
-
7993
- if (val === 'Stroke Width' || val === 'stroke width') {
7994
- return interfaceFunction.strokeWidth;
7995
- }
7996
-
7997
- return null;
7998
- }
7999
-
8000
- Object.defineProperties(interfaceFunction, {
8001
- color: {
8002
- get: ExpressionPropertyInterface(view.c)
8003
- },
8004
- opacity: {
8005
- get: ExpressionPropertyInterface(view.o)
8006
- },
8007
- strokeWidth: {
8008
- get: ExpressionPropertyInterface(view.w)
8009
- },
8010
- dash: {
8011
- get: function get() {
8012
- return dashOb;
8013
- }
8014
- },
8015
- _name: {
8016
- value: shape.nm
8017
- },
8018
- mn: {
8019
- value: shape.mn
8020
- }
8021
- });
8022
- view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));
8023
- view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));
8024
- view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));
8025
- return interfaceFunction;
8026
- }
8027
-
8028
- function trimInterfaceFactory(shape, view, propertyGroup) {
8029
- function interfaceFunction(val) {
8030
- if (val === shape.e.ix || val === 'End' || val === 'end') {
8031
- return interfaceFunction.end;
8032
- }
8033
-
8034
- if (val === shape.s.ix) {
8035
- return interfaceFunction.start;
8036
- }
8037
-
8038
- if (val === shape.o.ix) {
8039
- return interfaceFunction.offset;
8040
- }
8041
-
8042
- return null;
8043
- }
8044
-
8045
- var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);
8046
-
8047
- interfaceFunction.propertyIndex = shape.ix;
8048
- view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));
8049
- view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));
8050
- view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));
8051
- interfaceFunction.propertyIndex = shape.ix;
8052
- interfaceFunction.propertyGroup = propertyGroup;
8053
- Object.defineProperties(interfaceFunction, {
8054
- start: {
8055
- get: ExpressionPropertyInterface(view.s)
8056
- },
8057
- end: {
8058
- get: ExpressionPropertyInterface(view.e)
8059
- },
8060
- offset: {
8061
- get: ExpressionPropertyInterface(view.o)
8062
- },
8063
- _name: {
8064
- value: shape.nm
8065
- }
8066
- });
8067
- interfaceFunction.mn = shape.mn;
8068
- return interfaceFunction;
8069
- }
8070
-
8071
- function transformInterfaceFactory(shape, view, propertyGroup) {
8072
- function interfaceFunction(value) {
8073
- if (shape.a.ix === value || value === 'Anchor Point') {
8074
- return interfaceFunction.anchorPoint;
8075
- }
8076
-
8077
- if (shape.o.ix === value || value === 'Opacity') {
8078
- return interfaceFunction.opacity;
8079
- }
8080
-
8081
- if (shape.p.ix === value || value === 'Position') {
8082
- return interfaceFunction.position;
8083
- }
8084
-
8085
- if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {
8086
- return interfaceFunction.rotation;
8087
- }
8088
-
8089
- if (shape.s.ix === value || value === 'Scale') {
8090
- return interfaceFunction.scale;
8091
- }
8092
-
8093
- if (shape.sk && shape.sk.ix === value || value === 'Skew') {
8094
- return interfaceFunction.skew;
8095
- }
8096
-
8097
- if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {
8098
- return interfaceFunction.skewAxis;
8099
- }
8100
-
8101
- return null;
8102
- }
8103
-
8104
- var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);
8105
-
8106
- view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));
8107
- view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));
8108
- view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));
8109
- view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));
8110
- view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));
8111
-
8112
- if (view.transform.mProps.sk) {
8113
- view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));
8114
- view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));
8115
- }
8116
-
8117
- view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));
8118
- Object.defineProperties(interfaceFunction, {
8119
- opacity: {
8120
- get: ExpressionPropertyInterface(view.transform.mProps.o)
8121
- },
8122
- position: {
8123
- get: ExpressionPropertyInterface(view.transform.mProps.p)
8124
- },
8125
- anchorPoint: {
8126
- get: ExpressionPropertyInterface(view.transform.mProps.a)
8127
- },
8128
- scale: {
8129
- get: ExpressionPropertyInterface(view.transform.mProps.s)
8130
- },
8131
- rotation: {
8132
- get: ExpressionPropertyInterface(view.transform.mProps.r)
8133
- },
8134
- skew: {
8135
- get: ExpressionPropertyInterface(view.transform.mProps.sk)
8136
- },
8137
- skewAxis: {
8138
- get: ExpressionPropertyInterface(view.transform.mProps.sa)
8139
- },
8140
- _name: {
8141
- value: shape.nm
8142
- }
8143
- });
8144
- interfaceFunction.ty = 'tr';
8145
- interfaceFunction.mn = shape.mn;
8146
- interfaceFunction.propertyGroup = propertyGroup;
8147
- return interfaceFunction;
8148
- }
8149
-
8150
- function ellipseInterfaceFactory(shape, view, propertyGroup) {
8151
- function interfaceFunction(value) {
8152
- if (shape.p.ix === value) {
8153
- return interfaceFunction.position;
8154
- }
8155
-
8156
- if (shape.s.ix === value) {
8157
- return interfaceFunction.size;
8158
- }
8159
-
8160
- return null;
8161
- }
8162
-
8163
- var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);
8164
-
8165
- interfaceFunction.propertyIndex = shape.ix;
8166
- var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;
8167
- prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));
8168
- prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));
8169
- Object.defineProperties(interfaceFunction, {
8170
- size: {
8171
- get: ExpressionPropertyInterface(prop.s)
8172
- },
8173
- position: {
8174
- get: ExpressionPropertyInterface(prop.p)
8175
- },
8176
- _name: {
8177
- value: shape.nm
8178
- }
8179
- });
8180
- interfaceFunction.mn = shape.mn;
8181
- return interfaceFunction;
8182
- }
8183
-
8184
- function starInterfaceFactory(shape, view, propertyGroup) {
8185
- function interfaceFunction(value) {
8186
- if (shape.p.ix === value) {
8187
- return interfaceFunction.position;
8188
- }
8189
-
8190
- if (shape.r.ix === value) {
8191
- return interfaceFunction.rotation;
8192
- }
8193
-
8194
- if (shape.pt.ix === value) {
8195
- return interfaceFunction.points;
8196
- }
8197
-
8198
- if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {
8199
- return interfaceFunction.outerRadius;
8200
- }
8201
-
8202
- if (shape.os.ix === value) {
8203
- return interfaceFunction.outerRoundness;
8204
- }
8205
-
8206
- if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {
8207
- return interfaceFunction.innerRadius;
8208
- }
8209
-
8210
- if (shape.is && shape.is.ix === value) {
8211
- return interfaceFunction.innerRoundness;
8212
- }
8213
-
8214
- return null;
8215
- }
8216
-
8217
- var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);
8218
-
8219
- var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;
8220
- interfaceFunction.propertyIndex = shape.ix;
8221
- prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));
8222
- prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));
8223
- prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));
8224
- prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));
8225
- prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));
8226
-
8227
- if (shape.ir) {
8228
- prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));
8229
- prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));
8230
- }
8231
-
8232
- Object.defineProperties(interfaceFunction, {
8233
- position: {
8234
- get: ExpressionPropertyInterface(prop.p)
8235
- },
8236
- rotation: {
8237
- get: ExpressionPropertyInterface(prop.r)
8238
- },
8239
- points: {
8240
- get: ExpressionPropertyInterface(prop.pt)
8241
- },
8242
- outerRadius: {
8243
- get: ExpressionPropertyInterface(prop.or)
8244
- },
8245
- outerRoundness: {
8246
- get: ExpressionPropertyInterface(prop.os)
8247
- },
8248
- innerRadius: {
8249
- get: ExpressionPropertyInterface(prop.ir)
8250
- },
8251
- innerRoundness: {
8252
- get: ExpressionPropertyInterface(prop.is)
8253
- },
8254
- _name: {
8255
- value: shape.nm
8256
- }
8257
- });
8258
- interfaceFunction.mn = shape.mn;
8259
- return interfaceFunction;
8260
- }
8261
-
8262
- function rectInterfaceFactory(shape, view, propertyGroup) {
8263
- function interfaceFunction(value) {
8264
- if (shape.p.ix === value) {
8265
- return interfaceFunction.position;
8266
- }
8267
-
8268
- if (shape.r.ix === value) {
8269
- return interfaceFunction.roundness;
8270
- }
8271
-
8272
- if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {
8273
- return interfaceFunction.size;
8274
- }
8275
-
8276
- return null;
8277
- }
8278
-
8279
- var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);
8280
-
8281
- var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;
8282
- interfaceFunction.propertyIndex = shape.ix;
8283
- prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));
8284
- prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));
8285
- prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));
8286
- Object.defineProperties(interfaceFunction, {
8287
- position: {
8288
- get: ExpressionPropertyInterface(prop.p)
8289
- },
8290
- roundness: {
8291
- get: ExpressionPropertyInterface(prop.r)
8292
- },
8293
- size: {
8294
- get: ExpressionPropertyInterface(prop.s)
8295
- },
8296
- _name: {
8297
- value: shape.nm
8298
- }
8299
- });
8300
- interfaceFunction.mn = shape.mn;
8301
- return interfaceFunction;
8302
- }
8303
-
8304
- function roundedInterfaceFactory(shape, view, propertyGroup) {
8305
- function interfaceFunction(value) {
8306
- if (shape.r.ix === value || value === 'Round Corners 1') {
8307
- return interfaceFunction.radius;
8308
- }
8309
-
8310
- return null;
8311
- }
8312
-
8313
- var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);
8314
-
8315
- var prop = view;
8316
- interfaceFunction.propertyIndex = shape.ix;
8317
- prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));
8318
- Object.defineProperties(interfaceFunction, {
8319
- radius: {
8320
- get: ExpressionPropertyInterface(prop.rd)
8321
- },
8322
- _name: {
8323
- value: shape.nm
8324
- }
8325
- });
8326
- interfaceFunction.mn = shape.mn;
8327
- return interfaceFunction;
8328
- }
8329
-
8330
- function repeaterInterfaceFactory(shape, view, propertyGroup) {
8331
- function interfaceFunction(value) {
8332
- if (shape.c.ix === value || value === 'Copies') {
8333
- return interfaceFunction.copies;
8334
- }
8335
-
8336
- if (shape.o.ix === value || value === 'Offset') {
8337
- return interfaceFunction.offset;
8338
- }
8339
-
8340
- return null;
8341
- }
8342
-
8343
- var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);
8344
-
8345
- var prop = view;
8346
- interfaceFunction.propertyIndex = shape.ix;
8347
- prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));
8348
- prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));
8349
- Object.defineProperties(interfaceFunction, {
8350
- copies: {
8351
- get: ExpressionPropertyInterface(prop.c)
8352
- },
8353
- offset: {
8354
- get: ExpressionPropertyInterface(prop.o)
8355
- },
8356
- _name: {
8357
- value: shape.nm
8358
- }
8359
- });
8360
- interfaceFunction.mn = shape.mn;
8361
- return interfaceFunction;
8362
- }
8363
-
8364
- return function (shapes, view, propertyGroup) {
8365
- var interfaces;
8366
-
8367
- function _interfaceFunction(value) {
8368
- if (typeof value === 'number') {
8369
- value = value === undefined ? 1 : value;
8370
-
8371
- if (value === 0) {
8372
- return propertyGroup;
8373
- }
8374
-
8375
- return interfaces[value - 1];
8376
- }
8377
-
8378
- var i = 0;
8379
- var len = interfaces.length;
8380
-
8381
- while (i < len) {
8382
- if (interfaces[i]._name === value) {
8383
- return interfaces[i];
8384
- }
8385
-
8386
- i += 1;
8387
- }
8388
-
8389
- return null;
8390
- }
8391
-
8392
- function parentGroupWrapper() {
8393
- return propertyGroup;
8394
- }
8395
-
8396
- _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);
8397
- interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);
8398
- _interfaceFunction.numProperties = interfaces.length;
8399
- _interfaceFunction._name = 'Contents';
8400
- return _interfaceFunction;
8401
- };
8402
- }();
8403
-
8404
- var TextExpressionInterface = function () {
8405
- return function (elem) {
8406
- var _prevValue;
8407
-
8408
- var _sourceText;
8409
-
8410
- function _thisLayerFunction(name) {
8411
- switch (name) {
8412
- case 'ADBE Text Document':
8413
- return _thisLayerFunction.sourceText;
8414
-
8415
- default:
8416
- return null;
8417
- }
8418
- }
8419
-
8420
- Object.defineProperty(_thisLayerFunction, 'sourceText', {
8421
- get: function get() {
8422
- elem.textProperty.getValue();
8423
- var stringValue = elem.textProperty.currentData.t;
8424
-
8425
- if (stringValue !== _prevValue) {
8426
- elem.textProperty.currentData.t = _prevValue;
8427
- _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers
8428
- // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive
8429
-
8430
- _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers
8431
- }
8432
-
8433
- return _sourceText;
8434
- }
8435
- });
8436
- return _thisLayerFunction;
8437
- };
8438
- }();
8439
-
8440
- var getBlendMode = function () {
8441
- var blendModeEnums = {
8442
- 0: 'source-over',
8443
- 1: 'multiply',
8444
- 2: 'screen',
8445
- 3: 'overlay',
8446
- 4: 'darken',
8447
- 5: 'lighten',
8448
- 6: 'color-dodge',
8449
- 7: 'color-burn',
8450
- 8: 'hard-light',
8451
- 9: 'soft-light',
8452
- 10: 'difference',
8453
- 11: 'exclusion',
8454
- 12: 'hue',
8455
- 13: 'saturation',
8456
- 14: 'color',
8457
- 15: 'luminosity'
8458
- };
8459
- return function (mode) {
8460
- return blendModeEnums[mode] || '';
8461
- };
8462
- }();
8463
-
8464
- function SliderEffect(data, elem, container) {
8465
- this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);
8466
- }
8467
-
8468
- function AngleEffect(data, elem, container) {
8469
- this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);
8470
- }
8471
-
8472
- function ColorEffect(data, elem, container) {
8473
- this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);
8474
- }
8475
-
8476
- function PointEffect(data, elem, container) {
8477
- this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);
8478
- }
8479
-
8480
- function LayerIndexEffect(data, elem, container) {
8481
- this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);
8482
- }
8483
-
8484
- function MaskIndexEffect(data, elem, container) {
8485
- this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);
8486
- }
8487
-
8488
- function CheckboxEffect(data, elem, container) {
8489
- this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);
8490
- }
8491
-
8492
- function NoValueEffect() {
8493
- this.p = {};
8494
- }
8495
-
8496
- function EffectsManager(data, element) {
8497
- var effects = data.ef || [];
8498
- this.effectElements = [];
8499
- var i;
8500
- var len = effects.length;
8501
- var effectItem;
8502
-
8503
- for (i = 0; i < len; i += 1) {
8504
- effectItem = new GroupEffect(effects[i], element);
8505
- this.effectElements.push(effectItem);
8506
- }
8507
- }
8508
-
8509
- function GroupEffect(data, element) {
8510
- this.init(data, element);
8511
- }
8512
-
8513
- extendPrototype([DynamicPropertyContainer], GroupEffect);
8514
- GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;
8515
-
8516
- GroupEffect.prototype.init = function (data, element) {
8517
- this.data = data;
8518
- this.effectElements = [];
8519
- this.initDynamicPropertyContainer(element);
8520
- var i;
8521
- var len = this.data.ef.length;
8522
- var eff;
8523
- var effects = this.data.ef;
8524
-
8525
- for (i = 0; i < len; i += 1) {
8526
- eff = null;
8527
-
8528
- switch (effects[i].ty) {
8529
- case 0:
8530
- eff = new SliderEffect(effects[i], element, this);
8531
- break;
8532
-
8533
- case 1:
8534
- eff = new AngleEffect(effects[i], element, this);
8535
- break;
8536
-
8537
- case 2:
8538
- eff = new ColorEffect(effects[i], element, this);
8539
- break;
8540
-
8541
- case 3:
8542
- eff = new PointEffect(effects[i], element, this);
8543
- break;
8544
-
8545
- case 4:
8546
- case 7:
8547
- eff = new CheckboxEffect(effects[i], element, this);
8548
- break;
8549
-
8550
- case 10:
8551
- eff = new LayerIndexEffect(effects[i], element, this);
8552
- break;
8553
-
8554
- case 11:
8555
- eff = new MaskIndexEffect(effects[i], element, this);
8556
- break;
8557
-
8558
- case 5:
8559
- eff = new EffectsManager(effects[i], element, this);
8560
- break;
8561
- // case 6:
8562
-
8563
- default:
8564
- eff = new NoValueEffect(effects[i], element, this);
8565
- break;
8566
- }
8567
-
8568
- if (eff) {
8569
- this.effectElements.push(eff);
8570
- }
8571
- }
8572
- };
8573
-
8574
- function BaseElement() { }
8575
-
8576
- BaseElement.prototype = {
8577
- checkMasks: function checkMasks() {
8578
- if (!this.data.hasMask) {
8579
- return false;
8580
- }
8581
-
8582
- var i = 0;
8583
- var len = this.data.masksProperties.length;
8584
-
8585
- while (i < len) {
8586
- if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {
8587
- return true;
8588
- }
8589
-
8590
- i += 1;
8591
- }
8592
-
8593
- return false;
8594
- },
8595
- initExpressions: function initExpressions() {
8596
- this.layerInterface = LayerExpressionInterface(this);
8597
-
8598
- if (this.data.hasMask && this.maskManager) {
8599
- this.layerInterface.registerMaskInterface(this.maskManager);
8600
- }
8601
-
8602
- var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);
8603
- this.layerInterface.registerEffectsInterface(effectsInterface);
8604
-
8605
- if (this.data.ty === 0 || this.data.xt) {
8606
- this.compInterface = CompExpressionInterface(this);
8607
- } else if (this.data.ty === 4) {
8608
- this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);
8609
- this.layerInterface.content = this.layerInterface.shapeInterface;
8610
- } else if (this.data.ty === 5) {
8611
- this.layerInterface.textInterface = TextExpressionInterface(this);
8612
- this.layerInterface.text = this.layerInterface.textInterface;
8613
- }
8614
- },
8615
- setBlendMode: function setBlendMode() {
8616
- var blendModeValue = getBlendMode(this.data.bm);
8617
- var elem = this.baseElement || this.layerElement;
8618
- elem.style['mix-blend-mode'] = blendModeValue;
8619
- },
8620
- initBaseData: function initBaseData(data, globalData, comp) {
8621
- this.globalData = globalData;
8622
- this.comp = comp;
8623
- this.data = data;
8624
- this.layerId = createElementID(); // Stretch factor for old animations missing this property.
8625
-
8626
- if (!this.data.sr) {
8627
- this.data.sr = 1;
8628
- } // effects manager
8629
-
8630
-
8631
- this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);
8632
- },
8633
- getType: function getType() {
8634
- return this.type;
8635
- },
8636
- sourceRectAtTime: function sourceRectAtTime() { }
8637
- };
8638
-
8639
- /**
8640
- * @file
8641
- * Handles element's layer frame update.
8642
- * Checks layer in point and out point
8643
- *
8644
- */
8645
- function FrameElement() { }
8646
-
8647
- FrameElement.prototype = {
8648
- /**
8649
- * @function
8650
- * Initializes frame related properties.
8651
- *
8652
- */
8653
- initFrame: function initFrame() {
8654
- // set to true when inpoint is rendered
8655
- this._isFirstFrame = false; // list of animated properties
8656
-
8657
- this.dynamicProperties = []; // If layer has been modified in current tick this will be true
8658
-
8659
- this._mdf = false;
8660
- },
8661
-
8662
- /**
8663
- * @function
8664
- * Calculates all dynamic values
8665
- *
8666
- * @param {number} num
8667
- * current frame number in Layer's time
8668
- * @param {boolean} isVisible
8669
- * if layers is currently in range
8670
- *
8671
- */
8672
- prepareProperties: function prepareProperties(num, isVisible) {
8673
- var i;
8674
- var len = this.dynamicProperties.length;
8675
-
8676
- for (i = 0; i < len; i += 1) {
8677
- if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {
8678
- this.dynamicProperties[i].getValue();
8679
-
8680
- if (this.dynamicProperties[i]._mdf) {
8681
- this.globalData._mdf = true;
8682
- this._mdf = true;
8683
- }
8684
- }
8685
- }
8686
- },
8687
- addDynamicProperty: function addDynamicProperty(prop) {
8688
- if (this.dynamicProperties.indexOf(prop) === -1) {
8689
- this.dynamicProperties.push(prop);
8690
- }
8691
- }
8692
- };
8693
-
8694
- function _typeof$2(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof$2(obj); }
8695
-
8696
- var FootageInterface = function () {
8697
- var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {
8698
- var currentPropertyName = '';
8699
- var currentProperty = elem.getFootageData();
8700
-
8701
- function init() {
8702
- currentPropertyName = '';
8703
- currentProperty = elem.getFootageData();
8704
- return searchProperty;
8705
- }
8706
-
8707
- function searchProperty(value) {
8708
- if (currentProperty[value]) {
8709
- currentPropertyName = value;
8710
- currentProperty = currentProperty[value];
8711
-
8712
- if (_typeof$2(currentProperty) === 'object') {
8713
- return searchProperty;
8714
- }
8715
-
8716
- return currentProperty;
8717
- }
8718
-
8719
- var propertyNameIndex = value.indexOf(currentPropertyName);
8720
-
8721
- if (propertyNameIndex !== -1) {
8722
- var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);
8723
- currentProperty = currentProperty[index];
8724
-
8725
- if (_typeof$2(currentProperty) === 'object') {
8726
- return searchProperty;
8727
- }
8728
-
8729
- return currentProperty;
8730
- }
8731
-
8732
- return '';
8733
- }
8734
-
8735
- return init;
8736
- };
8737
-
8738
- var dataInterfaceFactory = function dataInterfaceFactory(elem) {
8739
- function interfaceFunction(value) {
8740
- if (value === 'Outline') {
8741
- return interfaceFunction.outlineInterface();
8742
- }
8743
-
8744
- return null;
8745
- }
8746
-
8747
- interfaceFunction._name = 'Outline';
8748
- interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);
8749
- return interfaceFunction;
8750
- };
8751
-
8752
- return function (elem) {
8753
- function _interfaceFunction(value) {
8754
- if (value === 'Data') {
8755
- return _interfaceFunction.dataInterface;
8756
- }
8757
-
8758
- return null;
8759
- }
8760
-
8761
- _interfaceFunction._name = 'Data';
8762
- _interfaceFunction.dataInterface = dataInterfaceFactory(elem);
8763
- return _interfaceFunction;
8764
- };
8765
- }();
8766
-
8767
- function FootageElement(data, globalData, comp) {
8768
- this.initFrame();
8769
- this.initRenderable();
8770
- this.assetData = globalData.getAssetData(data.refId);
8771
- this.footageData = globalData.imageLoader.getAsset(this.assetData);
8772
- this.initBaseData(data, globalData, comp);
8773
- }
8774
-
8775
- FootageElement.prototype.prepareFrame = function () { };
8776
-
8777
- extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);
8778
-
8779
- FootageElement.prototype.getBaseElement = function () {
8780
- return null;
8781
- };
8782
-
8783
- FootageElement.prototype.renderFrame = function () { };
8784
-
8785
- FootageElement.prototype.destroy = function () { };
8786
-
8787
- FootageElement.prototype.initExpressions = function () {
8788
- this.layerInterface = FootageInterface(this);
8789
- };
8790
-
8791
- FootageElement.prototype.getFootageData = function () {
8792
- return this.footageData;
8793
- };
8794
-
8795
- function AudioElement(data, globalData, comp) {
8796
- this.initFrame();
8797
- this.initRenderable();
8798
- this.assetData = globalData.getAssetData(data.refId);
8799
- this.initBaseData(data, globalData, comp);
8800
- this._isPlaying = false;
8801
- this._canPlay = false;
8802
- var assetPath = this.globalData.getAssetsPath(this.assetData);
8803
- this.audio = this.globalData.audioController.createAudio(assetPath);
8804
- this._currentTime = 0;
8805
- this.globalData.audioController.addAudio(this);
8806
- this._volumeMultiplier = 1;
8807
- this._volume = 1;
8808
- this._previousVolume = null;
8809
- this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {
8810
- _placeholder: true
8811
- };
8812
- this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {
8813
- k: [100]
8814
- }, 1, 0.01, this);
8815
- }
8816
-
8817
- AudioElement.prototype.prepareFrame = function (num) {
8818
- this.prepareRenderableFrame(num, true);
8819
- this.prepareProperties(num, true);
8820
-
8821
- if (!this.tm._placeholder) {
8822
- var timeRemapped = this.tm.v;
8823
- this._currentTime = timeRemapped;
8824
- } else {
8825
- this._currentTime = num / this.data.sr;
8826
- }
8827
-
8828
- this._volume = this.lv.v[0];
8829
- var totalVolume = this._volume * this._volumeMultiplier;
8830
-
8831
- if (this._previousVolume !== totalVolume) {
8832
- this._previousVolume = totalVolume;
8833
- this.audio.volume(totalVolume);
8834
- }
8835
- };
8836
-
8837
- extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);
8838
-
8839
- AudioElement.prototype.renderFrame = function () {
8840
- if (this.isInRange && this._canPlay) {
8841
- if (!this._isPlaying) {
8842
- this.audio.play();
8843
- this.audio.seek(this._currentTime / this.globalData.frameRate);
8844
- this._isPlaying = true;
8845
- } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {
8846
- this.audio.seek(this._currentTime / this.globalData.frameRate);
8847
- }
8848
- }
8849
- };
8850
-
8851
- AudioElement.prototype.show = function () {// this.audio.play()
8852
- };
8853
-
8854
- AudioElement.prototype.hide = function () {
8855
- this.audio.pause();
8856
- this._isPlaying = false;
8857
- };
8858
-
8859
- AudioElement.prototype.pause = function () {
8860
- this.audio.pause();
8861
- this._isPlaying = false;
8862
- this._canPlay = false;
8863
- };
8864
-
8865
- AudioElement.prototype.resume = function () {
8866
- this._canPlay = true;
8867
- };
8868
-
8869
- AudioElement.prototype.setRate = function (rateValue) {
8870
- this.audio.rate(rateValue);
8871
- };
8872
-
8873
- AudioElement.prototype.volume = function (volumeValue) {
8874
- this._volumeMultiplier = volumeValue;
8875
- this._previousVolume = volumeValue * this._volume;
8876
- this.audio.volume(this._previousVolume);
8877
- };
8878
-
8879
- AudioElement.prototype.getBaseElement = function () {
8880
- return null;
8881
- };
8882
-
8883
- AudioElement.prototype.destroy = function () { };
8884
-
8885
- AudioElement.prototype.sourceRectAtTime = function () { };
8886
-
8887
- AudioElement.prototype.initExpressions = function () { };
8888
-
8889
- function BaseRenderer() { }
8890
-
8891
- BaseRenderer.prototype.checkLayers = function (num) {
8892
- var i;
8893
- var len = this.layers.length;
8894
- var data;
8895
- this.completeLayers = true;
8896
-
8897
- for (i = len - 1; i >= 0; i -= 1) {
8898
- if (!this.elements[i]) {
8899
- data = this.layers[i];
8900
-
8901
- if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {
8902
- this.buildItem(i);
8903
- }
8904
- }
8905
-
8906
- this.completeLayers = this.elements[i] ? this.completeLayers : false;
8907
- }
8908
-
8909
- this.checkPendingElements();
8910
- };
8911
-
8912
- BaseRenderer.prototype.createItem = function (layer) {
8913
- switch (layer.ty) {
8914
- case 2:
8915
- return this.createImage(layer);
8916
-
8917
- case 0:
8918
- return this.createComp(layer);
8919
-
8920
- case 1:
8921
- return this.createSolid(layer);
8922
-
8923
- case 3:
8924
- return this.createNull(layer);
8925
-
8926
- case 4:
8927
- return this.createShape(layer);
8928
-
8929
- case 5:
8930
- return this.createText(layer);
8931
-
8932
- case 6:
8933
- return this.createAudio(layer);
8934
-
8935
- case 13:
8936
- return this.createCamera(layer);
8937
-
8938
- case 15:
8939
- return this.createFootage(layer);
8940
-
8941
- default:
8942
- return this.createNull(layer);
8943
- }
8944
- };
8945
-
8946
- BaseRenderer.prototype.createCamera = function () {
8947
- throw new Error('You\'re using a 3d camera. Try the html renderer.');
8948
- };
8949
-
8950
- BaseRenderer.prototype.createAudio = function (data) {
8951
- return new AudioElement(data, this.globalData, this);
8952
- };
8953
-
8954
- BaseRenderer.prototype.createFootage = function (data) {
8955
- return new FootageElement(data, this.globalData, this);
8956
- };
8957
-
8958
- BaseRenderer.prototype.buildAllItems = function () {
8959
- var i;
8960
- var len = this.layers.length;
8961
-
8962
- for (i = 0; i < len; i += 1) {
8963
- this.buildItem(i);
8964
- }
8965
-
8966
- this.checkPendingElements();
8967
- };
8968
-
8969
- BaseRenderer.prototype.includeLayers = function (newLayers) {
8970
- this.completeLayers = false;
8971
- var i;
8972
- var len = newLayers.length;
8973
- var j;
8974
- var jLen = this.layers.length;
8975
-
8976
- for (i = 0; i < len; i += 1) {
8977
- j = 0;
8978
-
8979
- while (j < jLen) {
8980
- if (this.layers[j].id === newLayers[i].id) {
8981
- this.layers[j] = newLayers[i];
8982
- break;
8983
- }
8984
-
8985
- j += 1;
8986
- }
8987
- }
8988
- };
8989
-
8990
- BaseRenderer.prototype.setProjectInterface = function (pInterface) {
8991
- this.globalData.projectInterface = pInterface;
8992
- };
8993
-
8994
- BaseRenderer.prototype.initItems = function () {
8995
- if (!this.globalData.progressiveLoad) {
8996
- this.buildAllItems();
8997
- }
8998
- };
8999
-
9000
- BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {
9001
- var elements = this.elements;
9002
- var layers = this.layers;
9003
- var i = 0;
9004
- var len = layers.length;
9005
-
9006
- while (i < len) {
9007
- if (layers[i].ind == parentName) {
9008
- // eslint-disable-line eqeqeq
9009
- if (!elements[i] || elements[i] === true) {
9010
- this.buildItem(i);
9011
- this.addPendingElement(element);
9012
- } else {
9013
- hierarchy.push(elements[i]);
9014
- elements[i].setAsParent();
9015
-
9016
- if (layers[i].parent !== undefined) {
9017
- this.buildElementParenting(element, layers[i].parent, hierarchy);
9018
- } else {
9019
- element.setHierarchy(hierarchy);
9020
- }
9021
- }
9022
- }
9023
-
9024
- i += 1;
9025
- }
9026
- };
9027
-
9028
- BaseRenderer.prototype.addPendingElement = function (element) {
9029
- this.pendingElements.push(element);
9030
- };
9031
-
9032
- BaseRenderer.prototype.searchExtraCompositions = function (assets) {
9033
- var i;
9034
- var len = assets.length;
9035
-
9036
- for (i = 0; i < len; i += 1) {
9037
- if (assets[i].xt) {
9038
- var comp = this.createComp(assets[i]);
9039
- comp.initExpressions();
9040
- this.globalData.projectInterface.registerComposition(comp);
9041
- }
9042
- }
9043
- };
9044
-
9045
- BaseRenderer.prototype.getElementByPath = function (path) {
9046
- var pathValue = path.shift();
9047
- var element;
9048
-
9049
- if (typeof pathValue === 'number') {
9050
- element = this.elements[pathValue];
9051
- } else {
9052
- var i;
9053
- var len = this.elements.length;
9054
-
9055
- for (i = 0; i < len; i += 1) {
9056
- if (this.elements[i].data.nm === pathValue) {
9057
- element = this.elements[i];
9058
- break;
9059
- }
9060
- }
9061
- }
9062
-
9063
- if (path.length === 0) {
9064
- return element;
9065
- }
9066
-
9067
- return element.getElementByPath(path);
9068
- };
9069
-
9070
- BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {
9071
- this.globalData.fontManager = new FontManager();
9072
- this.globalData.fontManager.addChars(animData.chars);
9073
- this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);
9074
- this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);
9075
- this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);
9076
- this.globalData.imageLoader = this.animationItem.imagePreloader;
9077
- this.globalData.audioController = this.animationItem.audioController;
9078
- this.globalData.frameId = 0;
9079
- this.globalData.frameRate = animData.fr;
9080
- this.globalData.nm = animData.nm;
9081
- this.globalData.compSize = {
9082
- w: animData.w,
9083
- h: animData.h
9084
- };
9085
- };
9086
-
9087
- function TransformElement() { }
9088
-
9089
- TransformElement.prototype = {
9090
- initTransform: function initTransform() {
9091
- this.finalTransform = {
9092
- mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {
9093
- o: 0
9094
- },
9095
- _matMdf: false,
9096
- _opMdf: false,
9097
- mat: new Matrix()
9098
- };
9099
-
9100
- if (this.data.ao) {
9101
- this.finalTransform.mProp.autoOriented = true;
9102
- } // TODO: check TYPE 11: Guided elements
9103
-
9104
-
9105
- if (this.data.ty !== 11) {// this.createElements();
9106
- }
9107
- },
9108
- renderTransform: function renderTransform() {
9109
- this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;
9110
- this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;
9111
-
9112
- if (this.hierarchy) {
9113
- var mat;
9114
- var finalMat = this.finalTransform.mat;
9115
- var i = 0;
9116
- var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.
9117
-
9118
- if (!this.finalTransform._matMdf) {
9119
- while (i < len) {
9120
- if (this.hierarchy[i].finalTransform.mProp._mdf) {
9121
- this.finalTransform._matMdf = true;
9122
- break;
9123
- }
9124
-
9125
- i += 1;
9126
- }
9127
- }
9128
-
9129
- if (this.finalTransform._matMdf) {
9130
- mat = this.finalTransform.mProp.v.props;
9131
- finalMat.cloneFromProps(mat);
9132
-
9133
- for (i = 0; i < len; i += 1) {
9134
- mat = this.hierarchy[i].finalTransform.mProp.v.props;
9135
- finalMat.transform(mat[0], mat[1], mat[2], mat[3], mat[4], mat[5], mat[6], mat[7], mat[8], mat[9], mat[10], mat[11], mat[12], mat[13], mat[14], mat[15]);
9136
- }
9137
- }
9138
- }
9139
- },
9140
- globalToLocal: function globalToLocal(pt) {
9141
- var transforms = [];
9142
- transforms.push(this.finalTransform);
9143
- var flag = true;
9144
- var comp = this.comp;
9145
-
9146
- while (flag) {
9147
- if (comp.finalTransform) {
9148
- if (comp.data.hasMask) {
9149
- transforms.splice(0, 0, comp.finalTransform);
9150
- }
9151
-
9152
- comp = comp.comp;
9153
- } else {
9154
- flag = false;
9155
- }
9156
- }
9157
-
9158
- var i;
9159
- var len = transforms.length;
9160
- var ptNew;
9161
-
9162
- for (i = 0; i < len; i += 1) {
9163
- ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);
9164
-
9165
- pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];
9166
- }
9167
-
9168
- return pt;
9169
- },
9170
- mHelper: new Matrix()
9171
- };
9172
-
9173
- function MaskElement(data, element, globalData) {
9174
- this.data = data;
9175
- this.element = element;
9176
- this.globalData = globalData;
9177
- this.storedData = [];
9178
- this.masksProperties = this.data.masksProperties || [];
9179
- this.maskElement = null;
9180
- var defs = this.globalData.defs;
9181
- var i;
9182
- var len = this.masksProperties ? this.masksProperties.length : 0;
9183
- this.viewData = createSizedArray(len);
9184
- this.solidPath = '';
9185
- var path;
9186
- var properties = this.masksProperties;
9187
- var count = 0;
9188
- var currentMasks = [];
9189
- var j;
9190
- var jLen;
9191
- var layerId = createElementID();
9192
- var rect;
9193
- var expansor;
9194
- var feMorph;
9195
- var x;
9196
- var maskType = 'clipPath';
9197
- var maskRef = 'clip-path';
9198
-
9199
- for (i = 0; i < len; i += 1) {
9200
- if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {
9201
- maskType = 'mask';
9202
- maskRef = 'mask';
9203
- }
9204
-
9205
- if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {
9206
- rect = createNS('rect');
9207
- rect.setAttribute('fill', '#ffffff');
9208
- rect.setAttribute('width', this.element.comp.data.w || 0);
9209
- rect.setAttribute('height', this.element.comp.data.h || 0);
9210
- currentMasks.push(rect);
9211
- } else {
9212
- rect = null;
9213
- }
9214
-
9215
- path = createNS('path');
9216
-
9217
- if (properties[i].mode === 'n') {
9218
- // TODO move this to a factory or to a constructor
9219
- this.viewData[i] = {
9220
- op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),
9221
- prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),
9222
- elem: path,
9223
- lastPath: ''
9224
- };
9225
- defs.appendChild(path);
9226
- } else {
9227
- count += 1;
9228
- path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');
9229
- path.setAttribute('clip-rule', 'nonzero');
9230
- var filterID;
9231
-
9232
- if (properties[i].x.k !== 0) {
9233
- maskType = 'mask';
9234
- maskRef = 'mask';
9235
- x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);
9236
- filterID = createElementID();
9237
- expansor = createNS('filter');
9238
- expansor.setAttribute('id', filterID);
9239
- feMorph = createNS('feMorphology');
9240
- feMorph.setAttribute('operator', 'erode');
9241
- feMorph.setAttribute('in', 'SourceGraphic');
9242
- feMorph.setAttribute('radius', '0');
9243
- expansor.appendChild(feMorph);
9244
- defs.appendChild(expansor);
9245
- path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');
9246
- } else {
9247
- feMorph = null;
9248
- x = null;
9249
- } // TODO move this to a factory or to a constructor
9250
-
9251
-
9252
- this.storedData[i] = {
9253
- elem: path,
9254
- x: x,
9255
- expan: feMorph,
9256
- lastPath: '',
9257
- lastOperator: '',
9258
- filterId: filterID,
9259
- lastRadius: 0
9260
- };
9261
-
9262
- if (properties[i].mode === 'i') {
9263
- jLen = currentMasks.length;
9264
- var g = createNS('g');
9265
-
9266
- for (j = 0; j < jLen; j += 1) {
9267
- g.appendChild(currentMasks[j]);
9268
- }
9269
-
9270
- var mask = createNS('mask');
9271
- mask.setAttribute('mask-type', 'alpha');
9272
- mask.setAttribute('id', layerId + '_' + count);
9273
- mask.appendChild(path);
9274
- defs.appendChild(mask);
9275
- g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');
9276
- currentMasks.length = 0;
9277
- currentMasks.push(g);
9278
- } else {
9279
- currentMasks.push(path);
9280
- }
9281
-
9282
- if (properties[i].inv && !this.solidPath) {
9283
- this.solidPath = this.createLayerSolidPath();
9284
- } // TODO move this to a factory or to a constructor
9285
-
9286
-
9287
- this.viewData[i] = {
9288
- elem: path,
9289
- lastPath: '',
9290
- op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),
9291
- prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),
9292
- invRect: rect
9293
- };
9294
-
9295
- if (!this.viewData[i].prop.k) {
9296
- this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);
9297
- }
9298
- }
9299
- }
9300
-
9301
- this.maskElement = createNS(maskType);
9302
- len = currentMasks.length;
9303
-
9304
- for (i = 0; i < len; i += 1) {
9305
- this.maskElement.appendChild(currentMasks[i]);
9306
- }
9307
-
9308
- if (count > 0) {
9309
- this.maskElement.setAttribute('id', layerId);
9310
- this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');
9311
- defs.appendChild(this.maskElement);
9312
- }
9313
-
9314
- if (this.viewData.length) {
9315
- this.element.addRenderableComponent(this);
9316
- }
9317
- }
9318
-
9319
- MaskElement.prototype.getMaskProperty = function (pos) {
9320
- return this.viewData[pos].prop;
9321
- };
9322
-
9323
- MaskElement.prototype.renderFrame = function (isFirstFrame) {
9324
- var finalMat = this.element.finalTransform.mat;
9325
- var i;
9326
- var len = this.masksProperties.length;
9327
-
9328
- for (i = 0; i < len; i += 1) {
9329
- if (this.viewData[i].prop._mdf || isFirstFrame) {
9330
- this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);
9331
- }
9332
-
9333
- if (this.viewData[i].op._mdf || isFirstFrame) {
9334
- this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);
9335
- }
9336
-
9337
- if (this.masksProperties[i].mode !== 'n') {
9338
- if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {
9339
- this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());
9340
- }
9341
-
9342
- if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {
9343
- var feMorph = this.storedData[i].expan;
9344
-
9345
- if (this.storedData[i].x.v < 0) {
9346
- if (this.storedData[i].lastOperator !== 'erode') {
9347
- this.storedData[i].lastOperator = 'erode';
9348
- this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');
9349
- }
9350
-
9351
- feMorph.setAttribute('radius', -this.storedData[i].x.v);
9352
- } else {
9353
- if (this.storedData[i].lastOperator !== 'dilate') {
9354
- this.storedData[i].lastOperator = 'dilate';
9355
- this.storedData[i].elem.setAttribute('filter', null);
9356
- }
9357
-
9358
- this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);
9359
- }
9360
- }
9361
- }
9362
- }
9363
- };
9364
-
9365
- MaskElement.prototype.getMaskelement = function () {
9366
- return this.maskElement;
9367
- };
9368
-
9369
- MaskElement.prototype.createLayerSolidPath = function () {
9370
- var path = 'M0,0 ';
9371
- path += ' h' + this.globalData.compSize.w;
9372
- path += ' v' + this.globalData.compSize.h;
9373
- path += ' h-' + this.globalData.compSize.w;
9374
- path += ' v-' + this.globalData.compSize.h + ' ';
9375
- return path;
9376
- };
9377
-
9378
- MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {
9379
- var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];
9380
- var i;
9381
- var len;
9382
- len = pathNodes._length;
9383
-
9384
- for (i = 1; i < len; i += 1) {
9385
- // pathString += " C"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + " "+pathNodes.i[i][0]+','+pathNodes.i[i][1] + " "+pathNodes.v[i][0]+','+pathNodes.v[i][1];
9386
- pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];
9387
- } // pathString += " C"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + " "+pathNodes.i[0][0]+','+pathNodes.i[0][1] + " "+pathNodes.v[0][0]+','+pathNodes.v[0][1];
9388
-
9389
-
9390
- if (pathNodes.c && len > 1) {
9391
- pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];
9392
- } // pathNodes.__renderedString = pathString;
9393
-
9394
-
9395
- if (viewData.lastPath !== pathString) {
9396
- var pathShapeValue = '';
9397
-
9398
- if (viewData.elem) {
9399
- if (pathNodes.c) {
9400
- pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;
9401
- }
9402
-
9403
- viewData.elem.setAttribute('d', pathShapeValue);
9404
- }
9405
-
9406
- viewData.lastPath = pathString;
9407
- }
9408
- };
9409
-
9410
- MaskElement.prototype.destroy = function () {
9411
- this.element = null;
9412
- this.globalData = null;
9413
- this.maskElement = null;
9414
- this.data = null;
9415
- this.masksProperties = null;
9416
- };
9417
-
9418
- var filtersFactory = function () {
9419
- var ob = {};
9420
- ob.createFilter = createFilter;
9421
- ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;
9422
-
9423
- function createFilter(filId, skipCoordinates) {
9424
- var fil = createNS('filter');
9425
- fil.setAttribute('id', filId);
9426
-
9427
- if (skipCoordinates !== true) {
9428
- fil.setAttribute('filterUnits', 'objectBoundingBox');
9429
- fil.setAttribute('x', '0%');
9430
- fil.setAttribute('y', '0%');
9431
- fil.setAttribute('width', '100%');
9432
- fil.setAttribute('height', '100%');
9433
- }
9434
-
9435
- return fil;
9436
- }
9437
-
9438
- function createAlphaToLuminanceFilter() {
9439
- var feColorMatrix = createNS('feColorMatrix');
9440
- feColorMatrix.setAttribute('type', 'matrix');
9441
- feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');
9442
- feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');
9443
- return feColorMatrix;
9444
- }
9445
-
9446
- return ob;
9447
- }();
9448
-
9449
- var featureSupport = function () {
9450
- var ob = {
9451
- maskType: true
9452
- };
9453
-
9454
- if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\/\d./i.test(navigator.userAgent)) {
9455
- ob.maskType = false;
9456
- }
9457
-
9458
- return ob;
9459
- }();
9460
-
9461
- var registeredEffects = {};
9462
- var idPrefix = 'filter_result_';
9463
-
9464
- function SVGEffects(elem) {
9465
- var i;
9466
- var source = 'SourceGraphic';
9467
- var len = elem.data.ef ? elem.data.ef.length : 0;
9468
- var filId = createElementID();
9469
- var fil = filtersFactory.createFilter(filId, true);
9470
- var count = 0;
9471
- this.filters = [];
9472
- var filterManager;
9473
-
9474
- for (i = 0; i < len; i += 1) {
9475
- filterManager = null;
9476
- var type = elem.data.ef[i].ty;
9477
-
9478
- if (registeredEffects[type]) {
9479
- var Effect = registeredEffects[type].effect;
9480
- filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);
9481
- source = idPrefix + count;
9482
-
9483
- if (registeredEffects[type].countsAsEffect) {
9484
- count += 1;
9485
- }
9486
- }
9487
-
9488
- if (filterManager) {
9489
- this.filters.push(filterManager);
9490
- }
9491
- }
9492
-
9493
- if (count) {
9494
- elem.globalData.defs.appendChild(fil);
9495
- elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');
9496
- }
9497
-
9498
- if (this.filters.length) {
9499
- elem.addRenderableComponent(this);
9500
- }
9501
- }
9502
-
9503
- SVGEffects.prototype.renderFrame = function (_isFirstFrame) {
9504
- var i;
9505
- var len = this.filters.length;
9506
-
9507
- for (i = 0; i < len; i += 1) {
9508
- this.filters[i].renderFrame(_isFirstFrame);
9509
- }
9510
- };
9511
-
9512
- function registerEffect(id, effect, countsAsEffect) {
9513
- registeredEffects[id] = {
9514
- effect: effect,
9515
- countsAsEffect: countsAsEffect
9516
- };
9517
- }
9518
-
9519
- function SVGBaseElement() { }
9520
-
9521
- SVGBaseElement.prototype = {
9522
- initRendererElement: function initRendererElement() {
9523
- this.layerElement = createNS('g');
9524
- },
9525
- createContainerElements: function createContainerElements() {
9526
- this.matteElement = createNS('g');
9527
- this.transformedElement = this.layerElement;
9528
- this.maskedElement = this.layerElement;
9529
- this._sizeChanged = false;
9530
- var layerElementParent = null; // If this layer acts as a mask for the following layer
9531
-
9532
- var filId;
9533
- var fil;
9534
- var gg;
9535
-
9536
- if (this.data.td) {
9537
- if (this.data.td == 3 || this.data.td == 1) {
9538
- // eslint-disable-line eqeqeq
9539
- var masker = createNS('mask');
9540
- masker.setAttribute('id', this.layerId);
9541
- masker.setAttribute('mask-type', this.data.td == 3 ? 'luminance' : 'alpha'); // eslint-disable-line eqeqeq
9542
-
9543
- masker.appendChild(this.layerElement);
9544
- layerElementParent = masker;
9545
- this.globalData.defs.appendChild(masker); // This is only for IE and Edge when mask if of type alpha
9546
-
9547
- if (!featureSupport.maskType && this.data.td == 1) {
9548
- // eslint-disable-line eqeqeq
9549
- masker.setAttribute('mask-type', 'luminance');
9550
- filId = createElementID();
9551
- fil = filtersFactory.createFilter(filId);
9552
- this.globalData.defs.appendChild(fil);
9553
- fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());
9554
- gg = createNS('g');
9555
- gg.appendChild(this.layerElement);
9556
- layerElementParent = gg;
9557
- masker.appendChild(gg);
9558
- gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');
9559
- }
9560
- } else if (this.data.td == 2) {
9561
- // eslint-disable-line eqeqeq
9562
- var maskGroup = createNS('mask');
9563
- maskGroup.setAttribute('id', this.layerId);
9564
- maskGroup.setAttribute('mask-type', 'alpha');
9565
- var maskGrouper = createNS('g');
9566
- maskGroup.appendChild(maskGrouper);
9567
- filId = createElementID();
9568
- fil = filtersFactory.createFilter(filId); /// /
9569
- // This solution doesn't work on Android when meta tag with viewport attribute is set
9570
-
9571
- /* var feColorMatrix = createNS('feColorMatrix');
9572
- feColorMatrix.setAttribute('type', 'matrix');
9573
- feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');
9574
- feColorMatrix.setAttribute('values','1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 -1 1');
9575
- fil.appendChild(feColorMatrix); */
9576
- /// /
9577
-
9578
- var feCTr = createNS('feComponentTransfer');
9579
- feCTr.setAttribute('in', 'SourceGraphic');
9580
- fil.appendChild(feCTr);
9581
- var feFunc = createNS('feFuncA');
9582
- feFunc.setAttribute('type', 'table');
9583
- feFunc.setAttribute('tableValues', '1.0 0.0');
9584
- feCTr.appendChild(feFunc); /// /
9585
-
9586
- this.globalData.defs.appendChild(fil);
9587
- var alphaRect = createNS('rect');
9588
- alphaRect.setAttribute('width', this.comp.data.w);
9589
- alphaRect.setAttribute('height', this.comp.data.h);
9590
- alphaRect.setAttribute('x', '0');
9591
- alphaRect.setAttribute('y', '0');
9592
- alphaRect.setAttribute('fill', '#ffffff');
9593
- alphaRect.setAttribute('opacity', '0');
9594
- maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');
9595
- maskGrouper.appendChild(alphaRect);
9596
- maskGrouper.appendChild(this.layerElement);
9597
- layerElementParent = maskGrouper;
9598
-
9599
- if (!featureSupport.maskType) {
9600
- maskGroup.setAttribute('mask-type', 'luminance');
9601
- fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());
9602
- gg = createNS('g');
9603
- maskGrouper.appendChild(alphaRect);
9604
- gg.appendChild(this.layerElement);
9605
- layerElementParent = gg;
9606
- maskGrouper.appendChild(gg);
9607
- }
9608
-
9609
- this.globalData.defs.appendChild(maskGroup);
9610
- }
9611
- } else if (this.data.tt) {
9612
- this.matteElement.appendChild(this.layerElement);
9613
- layerElementParent = this.matteElement;
9614
- this.baseElement = this.matteElement;
9615
- } else {
9616
- this.baseElement = this.layerElement;
9617
- }
9618
-
9619
- if (this.data.ln) {
9620
- this.layerElement.setAttribute('id', this.data.ln);
9621
- }
9622
-
9623
- if (this.data.cl) {
9624
- this.layerElement.setAttribute('class', this.data.cl);
9625
- } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped
9626
-
9627
-
9628
- if (this.data.ty === 0 && !this.data.hd) {
9629
- var cp = createNS('clipPath');
9630
- var pt = createNS('path');
9631
- pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');
9632
- var clipId = createElementID();
9633
- cp.setAttribute('id', clipId);
9634
- cp.appendChild(pt);
9635
- this.globalData.defs.appendChild(cp);
9636
-
9637
- if (this.checkMasks()) {
9638
- var cpGroup = createNS('g');
9639
- cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');
9640
- cpGroup.appendChild(this.layerElement);
9641
- this.transformedElement = cpGroup;
9642
-
9643
- if (layerElementParent) {
9644
- layerElementParent.appendChild(this.transformedElement);
9645
- } else {
9646
- this.baseElement = this.transformedElement;
9647
- }
9648
- } else {
9649
- this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');
9650
- }
9651
- }
9652
-
9653
- if (this.data.bm !== 0) {
9654
- this.setBlendMode();
9655
- }
9656
- },
9657
- renderElement: function renderElement() {
9658
- if (this.finalTransform._matMdf) {
9659
- this.transformedElement.setAttribute('transform', this.finalTransform.mat.to2dCSS());
9660
- }
9661
-
9662
- if (this.finalTransform._opMdf) {
9663
- this.transformedElement.setAttribute('opacity', this.finalTransform.mProp.o.v);
9664
- }
9665
- },
9666
- destroyBaseElement: function destroyBaseElement() {
9667
- this.layerElement = null;
9668
- this.matteElement = null;
9669
- this.maskManager.destroy();
9670
- },
9671
- getBaseElement: function getBaseElement() {
9672
- if (this.data.hd) {
9673
- return null;
9674
- }
9675
-
9676
- return this.baseElement;
9677
- },
9678
- createRenderableComponents: function createRenderableComponents() {
9679
- this.maskManager = new MaskElement(this.data, this, this.globalData);
9680
- this.renderableEffectsManager = new SVGEffects(this);
9681
- },
9682
- setMatte: function setMatte(id) {
9683
- if (!this.matteElement) {
9684
- return;
9685
- }
9686
-
9687
- this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');
9688
- }
9689
- };
9690
-
9691
- /**
9692
- * @file
9693
- * Handles AE's layer parenting property.
9694
- *
9695
- */
9696
- function HierarchyElement() { }
9697
-
9698
- HierarchyElement.prototype = {
9699
- /**
9700
- * @function
9701
- * Initializes hierarchy properties
9702
- *
9703
- */
9704
- initHierarchy: function initHierarchy() {
9705
- // element's parent list
9706
- this.hierarchy = []; // if element is parent of another layer _isParent will be true
9707
-
9708
- this._isParent = false;
9709
- this.checkParenting();
9710
- },
9711
-
9712
- /**
9713
- * @function
9714
- * Sets layer's hierarchy.
9715
- * @param {array} hierarch
9716
- * layer's parent list
9717
- *
9718
- */
9719
- setHierarchy: function setHierarchy(hierarchy) {
9720
- this.hierarchy = hierarchy;
9721
- },
9722
-
9723
- /**
9724
- * @function
9725
- * Sets layer as parent.
9726
- *
9727
- */
9728
- setAsParent: function setAsParent() {
9729
- this._isParent = true;
9730
- },
9731
-
9732
- /**
9733
- * @function
9734
- * Searches layer's parenting chain
9735
- *
9736
- */
9737
- checkParenting: function checkParenting() {
9738
- if (this.data.parent !== undefined) {
9739
- this.comp.buildElementParenting(this, this.data.parent, []);
9740
- }
9741
- }
9742
- };
9743
-
9744
- function RenderableDOMElement() { }
9745
-
9746
- (function () {
9747
- var _prototype = {
9748
- initElement: function initElement(data, globalData, comp) {
9749
- this.initFrame();
9750
- this.initBaseData(data, globalData, comp);
9751
- this.initTransform(data, globalData, comp);
9752
- this.initHierarchy();
9753
- this.initRenderable();
9754
- this.initRendererElement();
9755
- this.createContainerElements();
9756
- this.createRenderableComponents();
9757
- this.createContent();
9758
- this.hide();
9759
- },
9760
- hide: function hide() {
9761
- // console.log('HIDE', this);
9762
- if (!this.hidden && (!this.isInRange || this.isTransparent)) {
9763
- var elem = this.baseElement || this.layerElement;
9764
- elem.style.display = 'none';
9765
- this.hidden = true;
9766
- }
9767
- },
9768
- show: function show() {
9769
- // console.log('SHOW', this);
9770
- if (this.isInRange && !this.isTransparent) {
9771
- if (!this.data.hd) {
9772
- var elem = this.baseElement || this.layerElement;
9773
- elem.style.display = 'block';
9774
- }
9775
-
9776
- this.hidden = false;
9777
- this._isFirstFrame = true;
9778
- }
9779
- },
9780
- renderFrame: function renderFrame() {
9781
- // If it is exported as hidden (data.hd === true) no need to render
9782
- // If it is not visible no need to render
9783
- if (this.data.hd || this.hidden) {
9784
- return;
9785
- }
9786
-
9787
- this.renderTransform();
9788
- this.renderRenderable();
9789
- this.renderElement();
9790
- this.renderInnerContent();
9791
-
9792
- if (this._isFirstFrame) {
9793
- this._isFirstFrame = false;
9794
- }
9795
- },
9796
- renderInnerContent: function renderInnerContent() { },
9797
- prepareFrame: function prepareFrame(num) {
9798
- this._mdf = false;
9799
- this.prepareRenderableFrame(num);
9800
- this.prepareProperties(num, this.isInRange);
9801
- this.checkTransparency();
9802
- },
9803
- destroy: function destroy() {
9804
- this.innerElem = null;
9805
- this.destroyBaseElement();
9806
- }
9807
- };
9808
- extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);
9809
- })();
9810
-
9811
- function IImageElement(data, globalData, comp) {
9812
- this.assetData = globalData.getAssetData(data.refId);
9813
- this.initElement(data, globalData, comp);
9814
- this.sourceRect = {
9815
- top: 0,
9816
- left: 0,
9817
- width: this.assetData.w,
9818
- height: this.assetData.h
9819
- };
9820
- }
9821
-
9822
- extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);
9823
-
9824
- IImageElement.prototype.createContent = function () {
9825
- var assetPath = this.globalData.getAssetsPath(this.assetData);
9826
- this.innerElem = createNS('image');
9827
- this.innerElem.setAttribute('width', this.assetData.w + 'px');
9828
- this.innerElem.setAttribute('height', this.assetData.h + 'px');
9829
- this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);
9830
- this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);
9831
- this.layerElement.appendChild(this.innerElem);
9832
- };
9833
-
9834
- IImageElement.prototype.sourceRectAtTime = function () {
9835
- return this.sourceRect;
9836
- };
9837
-
9838
- function ProcessedElement(element, position) {
9839
- this.elem = element;
9840
- this.pos = position;
9841
- }
9842
-
9843
- function IShapeElement() { }
9844
-
9845
- IShapeElement.prototype = {
9846
- addShapeToModifiers: function addShapeToModifiers(data) {
9847
- var i;
9848
- var len = this.shapeModifiers.length;
9849
-
9850
- for (i = 0; i < len; i += 1) {
9851
- this.shapeModifiers[i].addShape(data);
9852
- }
9853
- },
9854
- isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {
9855
- var i = 0;
9856
- var len = this.shapeModifiers.length;
9857
-
9858
- while (i < len) {
9859
- if (this.shapeModifiers[i].isAnimatedWithShape(data)) {
9860
- return true;
9861
- }
9862
- }
9863
-
9864
- return false;
9865
- },
9866
- renderModifiers: function renderModifiers() {
9867
- if (!this.shapeModifiers.length) {
9868
- return;
9869
- }
9870
-
9871
- var i;
9872
- var len = this.shapes.length;
9873
-
9874
- for (i = 0; i < len; i += 1) {
9875
- this.shapes[i].sh.reset();
9876
- }
9877
-
9878
- len = this.shapeModifiers.length;
9879
- var shouldBreakProcess;
9880
-
9881
- for (i = len - 1; i >= 0; i -= 1) {
9882
- shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice
9883
- // TODO: find a better solution for this
9884
-
9885
- if (shouldBreakProcess) {
9886
- break;
9887
- }
9888
- }
9889
- },
9890
- searchProcessedElement: function searchProcessedElement(elem) {
9891
- var elements = this.processedElements;
9892
- var i = 0;
9893
- var len = elements.length;
9894
-
9895
- while (i < len) {
9896
- if (elements[i].elem === elem) {
9897
- return elements[i].pos;
9898
- }
9899
-
9900
- i += 1;
9901
- }
9902
-
9903
- return 0;
9904
- },
9905
- addProcessedElement: function addProcessedElement(elem, pos) {
9906
- var elements = this.processedElements;
9907
- var i = elements.length;
9908
-
9909
- while (i) {
9910
- i -= 1;
9911
-
9912
- if (elements[i].elem === elem) {
9913
- elements[i].pos = pos;
9914
- return;
9915
- }
9916
- }
9917
-
9918
- elements.push(new ProcessedElement(elem, pos));
9919
- },
9920
- prepareFrame: function prepareFrame(num) {
9921
- this.prepareRenderableFrame(num);
9922
- this.prepareProperties(num, this.isInRange);
9923
- }
9924
- };
9925
-
9926
- var lineCapEnum = {
9927
- 1: 'butt',
9928
- 2: 'round',
9929
- 3: 'square'
9930
- };
9931
- var lineJoinEnum = {
9932
- 1: 'miter',
9933
- 2: 'round',
9934
- 3: 'bevel'
9935
- };
9936
-
9937
- function SVGShapeData(transformers, level, shape) {
9938
- this.caches = [];
9939
- this.styles = [];
9940
- this.transformers = transformers;
9941
- this.lStr = '';
9942
- this.sh = shape;
9943
- this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.
9944
- // For now, since shapes add up with other shapes. They have to be calculated every time.
9945
- // One way of finding out is checking if all styles associated to this shape depend only of this shape
9946
-
9947
- this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated
9948
-
9949
- var i = 0;
9950
- var len = transformers.length;
9951
-
9952
- while (i < len) {
9953
- if (transformers[i].mProps.dynamicProperties.length) {
9954
- this._isAnimated = true;
9955
- break;
9956
- }
9957
-
9958
- i += 1;
9959
- }
9960
- }
9961
-
9962
- SVGShapeData.prototype.setAsAnimated = function () {
9963
- this._isAnimated = true;
9964
- };
9965
-
9966
- function SVGStyleData(data, level) {
9967
- this.data = data;
9968
- this.type = data.ty;
9969
- this.d = '';
9970
- this.lvl = level;
9971
- this._mdf = false;
9972
- this.closed = data.hd === true;
9973
- this.pElem = createNS('path');
9974
- this.msElem = null;
9975
- }
9976
-
9977
- SVGStyleData.prototype.reset = function () {
9978
- this.d = '';
9979
- this._mdf = false;
9980
- };
9981
-
9982
- function DashProperty(elem, data, renderer, container) {
9983
- this.elem = elem;
9984
- this.frameId = -1;
9985
- this.dataProps = createSizedArray(data.length);
9986
- this.renderer = renderer;
9987
- this.k = false;
9988
- this.dashStr = '';
9989
- this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);
9990
- this.dashoffset = createTypedArray('float32', 1);
9991
- this.initDynamicPropertyContainer(container);
9992
- var i;
9993
- var len = data.length || 0;
9994
- var prop;
9995
-
9996
- for (i = 0; i < len; i += 1) {
9997
- prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);
9998
- this.k = prop.k || this.k;
9999
- this.dataProps[i] = {
10000
- n: data[i].n,
10001
- p: prop
10002
- };
10003
- }
10004
-
10005
- if (!this.k) {
10006
- this.getValue(true);
10007
- }
10008
-
10009
- this._isAnimated = this.k;
10010
- }
10011
-
10012
- DashProperty.prototype.getValue = function (forceRender) {
10013
- if (this.elem.globalData.frameId === this.frameId && !forceRender) {
10014
- return;
10015
- }
10016
-
10017
- this.frameId = this.elem.globalData.frameId;
10018
- this.iterateDynamicProperties();
10019
- this._mdf = this._mdf || forceRender;
10020
-
10021
- if (this._mdf) {
10022
- var i = 0;
10023
- var len = this.dataProps.length;
10024
-
10025
- if (this.renderer === 'svg') {
10026
- this.dashStr = '';
10027
- }
10028
-
10029
- for (i = 0; i < len; i += 1) {
10030
- if (this.dataProps[i].n !== 'o') {
10031
- if (this.renderer === 'svg') {
10032
- this.dashStr += ' ' + this.dataProps[i].p.v;
10033
- } else {
10034
- this.dashArray[i] = this.dataProps[i].p.v;
10035
- }
10036
- } else {
10037
- this.dashoffset[0] = this.dataProps[i].p.v;
10038
- }
10039
- }
10040
- }
10041
- };
10042
-
10043
- extendPrototype([DynamicPropertyContainer], DashProperty);
10044
-
10045
- function SVGStrokeStyleData(elem, data, styleOb) {
10046
- this.initDynamicPropertyContainer(elem);
10047
- this.getValue = this.iterateDynamicProperties;
10048
- this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);
10049
- this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);
10050
- this.d = new DashProperty(elem, data.d || {}, 'svg', this);
10051
- this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);
10052
- this.style = styleOb;
10053
- this._isAnimated = !!this._isAnimated;
10054
- }
10055
-
10056
- extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);
10057
-
10058
- function SVGFillStyleData(elem, data, styleOb) {
10059
- this.initDynamicPropertyContainer(elem);
10060
- this.getValue = this.iterateDynamicProperties;
10061
- this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);
10062
- this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);
10063
- this.style = styleOb;
10064
- }
10065
-
10066
- extendPrototype([DynamicPropertyContainer], SVGFillStyleData);
10067
-
10068
- function SVGNoStyleData(elem, data, styleOb) {
10069
- this.initDynamicPropertyContainer(elem);
10070
- this.getValue = this.iterateDynamicProperties;
10071
- this.style = styleOb;
10072
- }
10073
-
10074
- extendPrototype([DynamicPropertyContainer], SVGNoStyleData);
10075
-
10076
- function GradientProperty(elem, data, container) {
10077
- this.data = data;
10078
- this.c = createTypedArray('uint8c', data.p * 4);
10079
- var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;
10080
- this.o = createTypedArray('float32', cLength);
10081
- this._cmdf = false;
10082
- this._omdf = false;
10083
- this._collapsable = this.checkCollapsable();
10084
- this._hasOpacity = cLength;
10085
- this.initDynamicPropertyContainer(container);
10086
- this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);
10087
- this.k = this.prop.k;
10088
- this.getValue(true);
10089
- }
10090
-
10091
- GradientProperty.prototype.comparePoints = function (values, points) {
10092
- var i = 0;
10093
- var len = this.o.length / 2;
10094
- var diff;
10095
-
10096
- while (i < len) {
10097
- diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);
10098
-
10099
- if (diff > 0.01) {
10100
- return false;
10101
- }
10102
-
10103
- i += 1;
10104
- }
10105
-
10106
- return true;
10107
- };
10108
-
10109
- GradientProperty.prototype.checkCollapsable = function () {
10110
- if (this.o.length / 2 !== this.c.length / 4) {
10111
- return false;
10112
- }
10113
-
10114
- if (this.data.k.k[0].s) {
10115
- var i = 0;
10116
- var len = this.data.k.k.length;
10117
-
10118
- while (i < len) {
10119
- if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {
10120
- return false;
10121
- }
10122
-
10123
- i += 1;
10124
- }
10125
- } else if (!this.comparePoints(this.data.k.k, this.data.p)) {
10126
- return false;
10127
- }
10128
-
10129
- return true;
10130
- };
10131
-
10132
- GradientProperty.prototype.getValue = function (forceRender) {
10133
- this.prop.getValue();
10134
- this._mdf = false;
10135
- this._cmdf = false;
10136
- this._omdf = false;
10137
-
10138
- if (this.prop._mdf || forceRender) {
10139
- var i;
10140
- var len = this.data.p * 4;
10141
- var mult;
10142
- var val;
10143
-
10144
- for (i = 0; i < len; i += 1) {
10145
- mult = i % 4 === 0 ? 100 : 255;
10146
- val = Math.round(this.prop.v[i] * mult);
10147
-
10148
- if (this.c[i] !== val) {
10149
- this.c[i] = val;
10150
- this._cmdf = !forceRender;
10151
- }
10152
- }
10153
-
10154
- if (this.o.length) {
10155
- len = this.prop.v.length;
10156
-
10157
- for (i = this.data.p * 4; i < len; i += 1) {
10158
- mult = i % 2 === 0 ? 100 : 1;
10159
- val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];
10160
-
10161
- if (this.o[i - this.data.p * 4] !== val) {
10162
- this.o[i - this.data.p * 4] = val;
10163
- this._omdf = !forceRender;
10164
- }
10165
- }
10166
- }
10167
-
10168
- this._mdf = !forceRender;
10169
- }
10170
- };
10171
-
10172
- extendPrototype([DynamicPropertyContainer], GradientProperty);
10173
-
10174
- function SVGGradientFillStyleData(elem, data, styleOb) {
10175
- this.initDynamicPropertyContainer(elem);
10176
- this.getValue = this.iterateDynamicProperties;
10177
- this.initGradientData(elem, data, styleOb);
10178
- }
10179
-
10180
- SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {
10181
- this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);
10182
- this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);
10183
- this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);
10184
- this.h = PropertyFactory.getProp(elem, data.h || {
10185
- k: 0
10186
- }, 0, 0.01, this);
10187
- this.a = PropertyFactory.getProp(elem, data.a || {
10188
- k: 0
10189
- }, 0, degToRads, this);
10190
- this.g = new GradientProperty(elem, data.g, this);
10191
- this.style = styleOb;
10192
- this.stops = [];
10193
- this.setGradientData(styleOb.pElem, data);
10194
- this.setGradientOpacity(data, styleOb);
10195
- this._isAnimated = !!this._isAnimated;
10196
- };
10197
-
10198
- SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {
10199
- var gradientId = createElementID();
10200
- var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');
10201
- gfill.setAttribute('id', gradientId);
10202
- gfill.setAttribute('spreadMethod', 'pad');
10203
- gfill.setAttribute('gradientUnits', 'userSpaceOnUse');
10204
- var stops = [];
10205
- var stop;
10206
- var j;
10207
- var jLen;
10208
- jLen = data.g.p * 4;
10209
-
10210
- for (j = 0; j < jLen; j += 4) {
10211
- stop = createNS('stop');
10212
- gfill.appendChild(stop);
10213
- stops.push(stop);
10214
- }
10215
-
10216
- pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');
10217
- this.gf = gfill;
10218
- this.cst = stops;
10219
- };
10220
-
10221
- SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {
10222
- if (this.g._hasOpacity && !this.g._collapsable) {
10223
- var stop;
10224
- var j;
10225
- var jLen;
10226
- var mask = createNS('mask');
10227
- var maskElement = createNS('path');
10228
- mask.appendChild(maskElement);
10229
- var opacityId = createElementID();
10230
- var maskId = createElementID();
10231
- mask.setAttribute('id', maskId);
10232
- var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');
10233
- opFill.setAttribute('id', opacityId);
10234
- opFill.setAttribute('spreadMethod', 'pad');
10235
- opFill.setAttribute('gradientUnits', 'userSpaceOnUse');
10236
- jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;
10237
- var stops = this.stops;
10238
-
10239
- for (j = data.g.p * 4; j < jLen; j += 2) {
10240
- stop = createNS('stop');
10241
- stop.setAttribute('stop-color', 'rgb(255,255,255)');
10242
- opFill.appendChild(stop);
10243
- stops.push(stop);
10244
- }
10245
-
10246
- maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');
10247
-
10248
- if (data.ty === 'gs') {
10249
- maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);
10250
- maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);
10251
-
10252
- if (data.lj === 1) {
10253
- maskElement.setAttribute('stroke-miterlimit', data.ml);
10254
- }
10255
- }
10256
-
10257
- this.of = opFill;
10258
- this.ms = mask;
10259
- this.ost = stops;
10260
- this.maskId = maskId;
10261
- styleOb.msElem = maskElement;
10262
- }
10263
- };
10264
-
10265
- extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);
10266
-
10267
- function SVGGradientStrokeStyleData(elem, data, styleOb) {
10268
- this.initDynamicPropertyContainer(elem);
10269
- this.getValue = this.iterateDynamicProperties;
10270
- this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);
10271
- this.d = new DashProperty(elem, data.d || {}, 'svg', this);
10272
- this.initGradientData(elem, data, styleOb);
10273
- this._isAnimated = !!this._isAnimated;
10274
- }
10275
-
10276
- extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);
10277
-
10278
- function ShapeGroupData() {
10279
- this.it = [];
10280
- this.prevViewData = [];
10281
- this.gr = createNS('g');
10282
- }
10283
-
10284
- function SVGTransformData(mProps, op, container) {
10285
- this.transform = {
10286
- mProps: mProps,
10287
- op: op,
10288
- container: container
10289
- };
10290
- this.elements = [];
10291
- this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;
10292
- }
10293
-
10294
- var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {
10295
- if (length === 0) {
10296
- return '';
10297
- }
10298
-
10299
- var _o = pathNodes.o;
10300
- var _i = pathNodes.i;
10301
- var _v = pathNodes.v;
10302
- var i;
10303
- var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);
10304
-
10305
- for (i = 1; i < length; i += 1) {
10306
- shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);
10307
- }
10308
-
10309
- if (closed && length) {
10310
- shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);
10311
- shapeString += 'z';
10312
- }
10313
-
10314
- return shapeString;
10315
- };
10316
-
10317
- var SVGElementsRenderer = function () {
10318
- var _identityMatrix = new Matrix();
10319
-
10320
- var _matrixHelper = new Matrix();
10321
-
10322
- var ob = {
10323
- createRenderFunction: createRenderFunction
10324
- };
10325
-
10326
- function createRenderFunction(data) {
10327
- switch (data.ty) {
10328
- case 'fl':
10329
- return renderFill;
10330
-
10331
- case 'gf':
10332
- return renderGradient;
10333
-
10334
- case 'gs':
10335
- return renderGradientStroke;
10336
-
10337
- case 'st':
10338
- return renderStroke;
10339
-
10340
- case 'sh':
10341
- case 'el':
10342
- case 'rc':
10343
- case 'sr':
10344
- return renderPath;
10345
-
10346
- case 'tr':
10347
- return renderContentTransform;
10348
-
10349
- case 'no':
10350
- return renderNoop;
10351
-
10352
- default:
10353
- return null;
10354
- }
10355
- }
10356
-
10357
- function renderContentTransform(styleData, itemData, isFirstFrame) {
10358
- if (isFirstFrame || itemData.transform.op._mdf) {
10359
- itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);
10360
- }
10361
-
10362
- if (isFirstFrame || itemData.transform.mProps._mdf) {
10363
- itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());
10364
- }
10365
- }
10366
-
10367
- function renderNoop() { }
10368
-
10369
- function renderPath(styleData, itemData, isFirstFrame) {
10370
- var j;
10371
- var jLen;
10372
- var pathStringTransformed;
10373
- var redraw;
10374
- var pathNodes;
10375
- var l;
10376
- var lLen = itemData.styles.length;
10377
- var lvl = itemData.lvl;
10378
- var paths;
10379
- var mat;
10380
- var props;
10381
- var iterations;
10382
- var k;
10383
-
10384
- for (l = 0; l < lLen; l += 1) {
10385
- redraw = itemData.sh._mdf || isFirstFrame;
10386
-
10387
- if (itemData.styles[l].lvl < lvl) {
10388
- mat = _matrixHelper.reset();
10389
- iterations = lvl - itemData.styles[l].lvl;
10390
- k = itemData.transformers.length - 1;
10391
-
10392
- while (!redraw && iterations > 0) {
10393
- redraw = itemData.transformers[k].mProps._mdf || redraw;
10394
- iterations -= 1;
10395
- k -= 1;
10396
- }
10397
-
10398
- if (redraw) {
10399
- iterations = lvl - itemData.styles[l].lvl;
10400
- k = itemData.transformers.length - 1;
10401
-
10402
- while (iterations > 0) {
10403
- props = itemData.transformers[k].mProps.v.props;
10404
- mat.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);
10405
- iterations -= 1;
10406
- k -= 1;
10407
- }
10408
- }
10409
- } else {
10410
- mat = _identityMatrix;
10411
- }
10412
-
10413
- paths = itemData.sh.paths;
10414
- jLen = paths._length;
10415
-
10416
- if (redraw) {
10417
- pathStringTransformed = '';
10418
-
10419
- for (j = 0; j < jLen; j += 1) {
10420
- pathNodes = paths.shapes[j];
10421
-
10422
- if (pathNodes && pathNodes._length) {
10423
- pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);
10424
- }
10425
- }
10426
-
10427
- itemData.caches[l] = pathStringTransformed;
10428
- } else {
10429
- pathStringTransformed = itemData.caches[l];
10430
- }
10431
-
10432
- itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;
10433
- itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;
10434
- }
10435
- }
10436
-
10437
- function renderFill(styleData, itemData, isFirstFrame) {
10438
- var styleElem = itemData.style;
10439
-
10440
- if (itemData.c._mdf || isFirstFrame) {
10441
- styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');
10442
- }
10443
-
10444
- if (itemData.o._mdf || isFirstFrame) {
10445
- styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);
10446
- }
10447
- }
10448
-
10449
- function renderGradientStroke(styleData, itemData, isFirstFrame) {
10450
- renderGradient(styleData, itemData, isFirstFrame);
10451
- renderStroke(styleData, itemData, isFirstFrame);
10452
- }
10453
-
10454
- function renderGradient(styleData, itemData, isFirstFrame) {
10455
- var gfill = itemData.gf;
10456
- var hasOpacity = itemData.g._hasOpacity;
10457
- var pt1 = itemData.s.v;
10458
- var pt2 = itemData.e.v;
10459
-
10460
- if (itemData.o._mdf || isFirstFrame) {
10461
- var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';
10462
- itemData.style.pElem.setAttribute(attr, itemData.o.v);
10463
- }
10464
-
10465
- if (itemData.s._mdf || isFirstFrame) {
10466
- var attr1 = styleData.t === 1 ? 'x1' : 'cx';
10467
- var attr2 = attr1 === 'x1' ? 'y1' : 'cy';
10468
- gfill.setAttribute(attr1, pt1[0]);
10469
- gfill.setAttribute(attr2, pt1[1]);
10470
-
10471
- if (hasOpacity && !itemData.g._collapsable) {
10472
- itemData.of.setAttribute(attr1, pt1[0]);
10473
- itemData.of.setAttribute(attr2, pt1[1]);
10474
- }
10475
- }
10476
-
10477
- var stops;
10478
- var i;
10479
- var len;
10480
- var stop;
10481
-
10482
- if (itemData.g._cmdf || isFirstFrame) {
10483
- stops = itemData.cst;
10484
- var cValues = itemData.g.c;
10485
- len = stops.length;
10486
-
10487
- for (i = 0; i < len; i += 1) {
10488
- stop = stops[i];
10489
- stop.setAttribute('offset', cValues[i * 4] + '%');
10490
- stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');
10491
- }
10492
- }
10493
-
10494
- if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {
10495
- var oValues = itemData.g.o;
10496
-
10497
- if (itemData.g._collapsable) {
10498
- stops = itemData.cst;
10499
- } else {
10500
- stops = itemData.ost;
10501
- }
10502
-
10503
- len = stops.length;
10504
-
10505
- for (i = 0; i < len; i += 1) {
10506
- stop = stops[i];
10507
-
10508
- if (!itemData.g._collapsable) {
10509
- stop.setAttribute('offset', oValues[i * 2] + '%');
10510
- }
10511
-
10512
- stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);
10513
- }
10514
- }
10515
-
10516
- if (styleData.t === 1) {
10517
- if (itemData.e._mdf || isFirstFrame) {
10518
- gfill.setAttribute('x2', pt2[0]);
10519
- gfill.setAttribute('y2', pt2[1]);
10520
-
10521
- if (hasOpacity && !itemData.g._collapsable) {
10522
- itemData.of.setAttribute('x2', pt2[0]);
10523
- itemData.of.setAttribute('y2', pt2[1]);
10524
- }
10525
- }
10526
- } else {
10527
- var rad;
10528
-
10529
- if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {
10530
- rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));
10531
- gfill.setAttribute('r', rad);
10532
-
10533
- if (hasOpacity && !itemData.g._collapsable) {
10534
- itemData.of.setAttribute('r', rad);
10535
- }
10536
- }
10537
-
10538
- if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {
10539
- if (!rad) {
10540
- rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));
10541
- }
10542
-
10543
- var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);
10544
- var percent = itemData.h.v;
10545
-
10546
- if (percent >= 1) {
10547
- percent = 0.99;
10548
- } else if (percent <= -1) {
10549
- percent = -0.99;
10550
- }
10551
-
10552
- var dist = rad * percent;
10553
- var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];
10554
- var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];
10555
- gfill.setAttribute('fx', x);
10556
- gfill.setAttribute('fy', y);
10557
-
10558
- if (hasOpacity && !itemData.g._collapsable) {
10559
- itemData.of.setAttribute('fx', x);
10560
- itemData.of.setAttribute('fy', y);
10561
- }
10562
- } // gfill.setAttribute('fy','200');
10563
-
10564
- }
10565
- }
10566
-
10567
- function renderStroke(styleData, itemData, isFirstFrame) {
10568
- var styleElem = itemData.style;
10569
- var d = itemData.d;
10570
-
10571
- if (d && (d._mdf || isFirstFrame) && d.dashStr) {
10572
- styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);
10573
- styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);
10574
- }
10575
-
10576
- if (itemData.c && (itemData.c._mdf || isFirstFrame)) {
10577
- styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');
10578
- }
10579
-
10580
- if (itemData.o._mdf || isFirstFrame) {
10581
- styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);
10582
- }
10583
-
10584
- if (itemData.w._mdf || isFirstFrame) {
10585
- styleElem.pElem.setAttribute('stroke-width', itemData.w.v);
10586
-
10587
- if (styleElem.msElem) {
10588
- styleElem.msElem.setAttribute('stroke-width', itemData.w.v);
10589
- }
10590
- }
10591
- }
10592
-
10593
- return ob;
10594
- }();
10595
-
10596
- function SVGShapeElement(data, globalData, comp) {
10597
- // List of drawable elements
10598
- this.shapes = []; // Full shape data
10599
-
10600
- this.shapesData = data.shapes; // List of styles that will be applied to shapes
10601
-
10602
- this.stylesList = []; // List of modifiers that will be applied to shapes
10603
-
10604
- this.shapeModifiers = []; // List of items in shape tree
10605
-
10606
- this.itemsData = []; // List of items in previous shape tree
10607
-
10608
- this.processedElements = []; // List of animated components
10609
-
10610
- this.animatedContents = [];
10611
- this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.
10612
- // List of elements that have been created
10613
-
10614
- this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.
10615
- }
10616
-
10617
- extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);
10618
-
10619
- SVGShapeElement.prototype.initSecondaryElement = function () { };
10620
-
10621
- SVGShapeElement.prototype.identityMatrix = new Matrix();
10622
-
10623
- SVGShapeElement.prototype.buildExpressionInterface = function () { };
10624
-
10625
- SVGShapeElement.prototype.createContent = function () {
10626
- this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);
10627
- this.filterUniqueShapes();
10628
- };
10629
- /*
10630
- This method searches for multiple shapes that affect a single element and one of them is animated
10631
- */
10632
-
10633
-
10634
- SVGShapeElement.prototype.filterUniqueShapes = function () {
10635
- var i;
10636
- var len = this.shapes.length;
10637
- var shape;
10638
- var j;
10639
- var jLen = this.stylesList.length;
10640
- var style;
10641
- var tempShapes = [];
10642
- var areAnimated = false;
10643
-
10644
- for (j = 0; j < jLen; j += 1) {
10645
- style = this.stylesList[j];
10646
- areAnimated = false;
10647
- tempShapes.length = 0;
10648
-
10649
- for (i = 0; i < len; i += 1) {
10650
- shape = this.shapes[i];
10651
-
10652
- if (shape.styles.indexOf(style) !== -1) {
10653
- tempShapes.push(shape);
10654
- areAnimated = shape._isAnimated || areAnimated;
10655
- }
10656
- }
10657
-
10658
- if (tempShapes.length > 1 && areAnimated) {
10659
- this.setShapesAsAnimated(tempShapes);
10660
- }
10661
- }
10662
- };
10663
-
10664
- SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {
10665
- var i;
10666
- var len = shapes.length;
10667
-
10668
- for (i = 0; i < len; i += 1) {
10669
- shapes[i].setAsAnimated();
10670
- }
10671
- };
10672
-
10673
- SVGShapeElement.prototype.createStyleElement = function (data, level) {
10674
- // TODO: prevent drawing of hidden styles
10675
- var elementData;
10676
- var styleOb = new SVGStyleData(data, level);
10677
- var pathElement = styleOb.pElem;
10678
-
10679
- if (data.ty === 'st') {
10680
- elementData = new SVGStrokeStyleData(this, data, styleOb);
10681
- } else if (data.ty === 'fl') {
10682
- elementData = new SVGFillStyleData(this, data, styleOb);
10683
- } else if (data.ty === 'gf' || data.ty === 'gs') {
10684
- var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;
10685
- elementData = new GradientConstructor(this, data, styleOb);
10686
- this.globalData.defs.appendChild(elementData.gf);
10687
-
10688
- if (elementData.maskId) {
10689
- this.globalData.defs.appendChild(elementData.ms);
10690
- this.globalData.defs.appendChild(elementData.of);
10691
- pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');
10692
- }
10693
- } else if (data.ty === 'no') {
10694
- elementData = new SVGNoStyleData(this, data, styleOb);
10695
- }
10696
-
10697
- if (data.ty === 'st' || data.ty === 'gs') {
10698
- pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);
10699
- pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);
10700
- pathElement.setAttribute('fill-opacity', '0');
10701
-
10702
- if (data.lj === 1) {
10703
- pathElement.setAttribute('stroke-miterlimit', data.ml);
10704
- }
10705
- }
10706
-
10707
- if (data.r === 2) {
10708
- pathElement.setAttribute('fill-rule', 'evenodd');
10709
- }
10710
-
10711
- if (data.ln) {
10712
- pathElement.setAttribute('id', data.ln);
10713
- }
10714
-
10715
- if (data.cl) {
10716
- pathElement.setAttribute('class', data.cl);
10717
- }
10718
-
10719
- if (data.bm) {
10720
- pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);
10721
- }
10722
-
10723
- this.stylesList.push(styleOb);
10724
- this.addToAnimatedContents(data, elementData);
10725
- return elementData;
10726
- };
10727
-
10728
- SVGShapeElement.prototype.createGroupElement = function (data) {
10729
- var elementData = new ShapeGroupData();
10730
-
10731
- if (data.ln) {
10732
- elementData.gr.setAttribute('id', data.ln);
10733
- }
10734
-
10735
- if (data.cl) {
10736
- elementData.gr.setAttribute('class', data.cl);
10737
- }
10738
-
10739
- if (data.bm) {
10740
- elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);
10741
- }
10742
-
10743
- return elementData;
10744
- };
10745
-
10746
- SVGShapeElement.prototype.createTransformElement = function (data, container) {
10747
- var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);
10748
- var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);
10749
- this.addToAnimatedContents(data, elementData);
10750
- return elementData;
10751
- };
10752
-
10753
- SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {
10754
- var ty = 4;
10755
-
10756
- if (data.ty === 'rc') {
10757
- ty = 5;
10758
- } else if (data.ty === 'el') {
10759
- ty = 6;
10760
- } else if (data.ty === 'sr') {
10761
- ty = 7;
10762
- }
10763
-
10764
- var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);
10765
- var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);
10766
- this.shapes.push(elementData);
10767
- this.addShapeToModifiers(elementData);
10768
- this.addToAnimatedContents(data, elementData);
10769
- return elementData;
10770
- };
10771
-
10772
- SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {
10773
- var i = 0;
10774
- var len = this.animatedContents.length;
10775
-
10776
- while (i < len) {
10777
- if (this.animatedContents[i].element === element) {
10778
- return;
10779
- }
10780
-
10781
- i += 1;
10782
- }
10783
-
10784
- this.animatedContents.push({
10785
- fn: SVGElementsRenderer.createRenderFunction(data),
10786
- element: element,
10787
- data: data
10788
- });
10789
- };
10790
-
10791
- SVGShapeElement.prototype.setElementStyles = function (elementData) {
10792
- var arr = elementData.styles;
10793
- var j;
10794
- var jLen = this.stylesList.length;
10795
-
10796
- for (j = 0; j < jLen; j += 1) {
10797
- if (!this.stylesList[j].closed) {
10798
- arr.push(this.stylesList[j]);
10799
- }
10800
- }
10801
- };
10802
-
10803
- SVGShapeElement.prototype.reloadShapes = function () {
10804
- this._isFirstFrame = true;
10805
- var i;
10806
- var len = this.itemsData.length;
10807
-
10808
- for (i = 0; i < len; i += 1) {
10809
- this.prevViewData[i] = this.itemsData[i];
10810
- }
10811
-
10812
- this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);
10813
- this.filterUniqueShapes();
10814
- len = this.dynamicProperties.length;
10815
-
10816
- for (i = 0; i < len; i += 1) {
10817
- this.dynamicProperties[i].getValue();
10818
- }
10819
-
10820
- this.renderModifiers();
10821
- };
10822
-
10823
- SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {
10824
- var ownTransformers = [].concat(transformers);
10825
- var i;
10826
- var len = arr.length - 1;
10827
- var j;
10828
- var jLen;
10829
- var ownStyles = [];
10830
- var ownModifiers = [];
10831
- var currentTransform;
10832
- var modifier;
10833
- var processedPos;
10834
-
10835
- for (i = len; i >= 0; i -= 1) {
10836
- processedPos = this.searchProcessedElement(arr[i]);
10837
-
10838
- if (!processedPos) {
10839
- arr[i]._render = render;
10840
- } else {
10841
- itemsData[i] = prevViewData[processedPos - 1];
10842
- }
10843
-
10844
- if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {
10845
- if (!processedPos) {
10846
- itemsData[i] = this.createStyleElement(arr[i], level);
10847
- } else {
10848
- itemsData[i].style.closed = false;
10849
- }
10850
-
10851
- if (arr[i]._render) {
10852
- if (itemsData[i].style.pElem.parentNode !== container) {
10853
- container.appendChild(itemsData[i].style.pElem);
10854
- }
10855
- }
10856
-
10857
- ownStyles.push(itemsData[i].style);
10858
- } else if (arr[i].ty === 'gr') {
10859
- if (!processedPos) {
10860
- itemsData[i] = this.createGroupElement(arr[i]);
10861
- } else {
10862
- jLen = itemsData[i].it.length;
10863
-
10864
- for (j = 0; j < jLen; j += 1) {
10865
- itemsData[i].prevViewData[j] = itemsData[i].it[j];
10866
- }
10867
- }
10868
-
10869
- this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);
10870
-
10871
- if (arr[i]._render) {
10872
- if (itemsData[i].gr.parentNode !== container) {
10873
- container.appendChild(itemsData[i].gr);
10874
- }
10875
- }
10876
- } else if (arr[i].ty === 'tr') {
10877
- if (!processedPos) {
10878
- itemsData[i] = this.createTransformElement(arr[i], container);
10879
- }
10880
-
10881
- currentTransform = itemsData[i].transform;
10882
- ownTransformers.push(currentTransform);
10883
- } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {
10884
- if (!processedPos) {
10885
- itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);
10886
- }
10887
-
10888
- this.setElementStyles(itemsData[i]);
10889
- } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb') {
10890
- if (!processedPos) {
10891
- modifier = ShapeModifiers.getModifier(arr[i].ty);
10892
- modifier.init(this, arr[i]);
10893
- itemsData[i] = modifier;
10894
- this.shapeModifiers.push(modifier);
10895
- } else {
10896
- modifier = itemsData[i];
10897
- modifier.closed = false;
10898
- }
10899
-
10900
- ownModifiers.push(modifier);
10901
- } else if (arr[i].ty === 'rp') {
10902
- if (!processedPos) {
10903
- modifier = ShapeModifiers.getModifier(arr[i].ty);
10904
- itemsData[i] = modifier;
10905
- modifier.init(this, arr, i, itemsData);
10906
- this.shapeModifiers.push(modifier);
10907
- render = false;
10908
- } else {
10909
- modifier = itemsData[i];
10910
- modifier.closed = true;
10911
- }
10912
-
10913
- ownModifiers.push(modifier);
10914
- }
10915
-
10916
- this.addProcessedElement(arr[i], i + 1);
10917
- }
10918
-
10919
- len = ownStyles.length;
10920
-
10921
- for (i = 0; i < len; i += 1) {
10922
- ownStyles[i].closed = true;
10923
- }
10924
-
10925
- len = ownModifiers.length;
10926
-
10927
- for (i = 0; i < len; i += 1) {
10928
- ownModifiers[i].closed = true;
10929
- }
10930
- };
10931
-
10932
- SVGShapeElement.prototype.renderInnerContent = function () {
10933
- this.renderModifiers();
10934
- var i;
10935
- var len = this.stylesList.length;
10936
-
10937
- for (i = 0; i < len; i += 1) {
10938
- this.stylesList[i].reset();
10939
- }
10940
-
10941
- this.renderShape();
10942
-
10943
- for (i = 0; i < len; i += 1) {
10944
- if (this.stylesList[i]._mdf || this._isFirstFrame) {
10945
- if (this.stylesList[i].msElem) {
10946
- this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers
10947
-
10948
- this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;
10949
- }
10950
-
10951
- this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');
10952
- }
10953
- }
10954
- };
10955
-
10956
- SVGShapeElement.prototype.renderShape = function () {
10957
- var i;
10958
- var len = this.animatedContents.length;
10959
- var animatedContent;
10960
-
10961
- for (i = 0; i < len; i += 1) {
10962
- animatedContent = this.animatedContents[i];
10963
-
10964
- if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {
10965
- animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);
10966
- }
10967
- }
10968
- };
10969
-
10970
- SVGShapeElement.prototype.destroy = function () {
10971
- this.destroyBaseElement();
10972
- this.shapesData = null;
10973
- this.itemsData = null;
10974
- };
10975
-
10976
- function LetterProps(o, sw, sc, fc, m, p) {
10977
- this.o = o;
10978
- this.sw = sw;
10979
- this.sc = sc;
10980
- this.fc = fc;
10981
- this.m = m;
10982
- this.p = p;
10983
- this._mdf = {
10984
- o: true,
10985
- sw: !!sw,
10986
- sc: !!sc,
10987
- fc: !!fc,
10988
- m: true,
10989
- p: true
10990
- };
10991
- }
10992
-
10993
- LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {
10994
- this._mdf.o = false;
10995
- this._mdf.sw = false;
10996
- this._mdf.sc = false;
10997
- this._mdf.fc = false;
10998
- this._mdf.m = false;
10999
- this._mdf.p = false;
11000
- var updated = false;
11001
-
11002
- if (this.o !== o) {
11003
- this.o = o;
11004
- this._mdf.o = true;
11005
- updated = true;
11006
- }
11007
-
11008
- if (this.sw !== sw) {
11009
- this.sw = sw;
11010
- this._mdf.sw = true;
11011
- updated = true;
11012
- }
11013
-
11014
- if (this.sc !== sc) {
11015
- this.sc = sc;
11016
- this._mdf.sc = true;
11017
- updated = true;
11018
- }
11019
-
11020
- if (this.fc !== fc) {
11021
- this.fc = fc;
11022
- this._mdf.fc = true;
11023
- updated = true;
11024
- }
11025
-
11026
- if (this.m !== m) {
11027
- this.m = m;
11028
- this._mdf.m = true;
11029
- updated = true;
11030
- }
11031
-
11032
- if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {
11033
- this.p = p;
11034
- this._mdf.p = true;
11035
- updated = true;
11036
- }
11037
-
11038
- return updated;
11039
- };
11040
-
11041
- function TextProperty(elem, data) {
11042
- this._frameId = initialDefaultFrame;
11043
- this.pv = '';
11044
- this.v = '';
11045
- this.kf = false;
11046
- this._isFirstFrame = true;
11047
- this._mdf = false;
11048
- this.data = data;
11049
- this.elem = elem;
11050
- this.comp = this.elem.comp;
11051
- this.keysIndex = 0;
11052
- this.canResize = false;
11053
- this.minimumFontSize = 1;
11054
- this.effectsSequence = [];
11055
- this.currentData = {
11056
- ascent: 0,
11057
- boxWidth: this.defaultBoxWidth,
11058
- f: '',
11059
- fStyle: '',
11060
- fWeight: '',
11061
- fc: '',
11062
- j: '',
11063
- justifyOffset: '',
11064
- l: [],
11065
- lh: 0,
11066
- lineWidths: [],
11067
- ls: '',
11068
- of: '',
11069
- s: '',
11070
- sc: '',
11071
- sw: 0,
11072
- t: 0,
11073
- tr: 0,
11074
- sz: 0,
11075
- ps: null,
11076
- fillColorAnim: false,
11077
- strokeColorAnim: false,
11078
- strokeWidthAnim: false,
11079
- yOffset: 0,
11080
- finalSize: 0,
11081
- finalText: [],
11082
- finalLineHeight: 0,
11083
- __complete: false
11084
- };
11085
- this.copyData(this.currentData, this.data.d.k[0].s);
11086
-
11087
- if (!this.searchProperty()) {
11088
- this.completeTextData(this.currentData);
11089
- }
11090
- }
11091
-
11092
- TextProperty.prototype.defaultBoxWidth = [0, 0];
11093
-
11094
- TextProperty.prototype.copyData = function (obj, data) {
11095
- for (var s in data) {
11096
- if (Object.prototype.hasOwnProperty.call(data, s)) {
11097
- obj[s] = data[s];
11098
- }
11099
- }
11100
-
11101
- return obj;
11102
- };
11103
-
11104
- TextProperty.prototype.setCurrentData = function (data) {
11105
- if (!data.__complete) {
11106
- this.completeTextData(data);
11107
- }
11108
-
11109
- this.currentData = data;
11110
- this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;
11111
- this._mdf = true;
11112
- };
11113
-
11114
- TextProperty.prototype.searchProperty = function () {
11115
- return this.searchKeyframes();
11116
- };
11117
-
11118
- TextProperty.prototype.searchKeyframes = function () {
11119
- this.kf = this.data.d.k.length > 1;
11120
-
11121
- if (this.kf) {
11122
- this.addEffect(this.getKeyframeValue.bind(this));
11123
- }
11124
-
11125
- return this.kf;
11126
- };
11127
-
11128
- TextProperty.prototype.addEffect = function (effectFunction) {
11129
- this.effectsSequence.push(effectFunction);
11130
- this.elem.addDynamicProperty(this);
11131
- };
11132
-
11133
- TextProperty.prototype.getValue = function (_finalValue) {
11134
- if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {
11135
- return;
11136
- }
11137
-
11138
- this.currentData.t = this.data.d.k[this.keysIndex].s.t;
11139
- var currentValue = this.currentData;
11140
- var currentIndex = this.keysIndex;
11141
-
11142
- if (this.lock) {
11143
- this.setCurrentData(this.currentData);
11144
- return;
11145
- }
11146
-
11147
- this.lock = true;
11148
- this._mdf = false;
11149
- var i;
11150
- var len = this.effectsSequence.length;
11151
- var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;
11152
-
11153
- for (i = 0; i < len; i += 1) {
11154
- // Checking if index changed to prevent creating a new object every time the expression updates.
11155
- if (currentIndex !== this.keysIndex) {
11156
- finalValue = this.effectsSequence[i](finalValue, finalValue.t);
11157
- } else {
11158
- finalValue = this.effectsSequence[i](this.currentData, finalValue.t);
11159
- }
11160
- }
11161
-
11162
- if (currentValue !== finalValue) {
11163
- this.setCurrentData(finalValue);
11164
- }
11165
-
11166
- this.v = this.currentData;
11167
- this.pv = this.v;
11168
- this.lock = false;
11169
- this.frameId = this.elem.globalData.frameId;
11170
- };
11171
-
11172
- TextProperty.prototype.getKeyframeValue = function () {
11173
- var textKeys = this.data.d.k;
11174
- var frameNum = this.elem.comp.renderedFrame;
11175
- var i = 0;
11176
- var len = textKeys.length;
11177
-
11178
- while (i <= len - 1) {
11179
- if (i === len - 1 || textKeys[i + 1].t > frameNum) {
11180
- break;
11181
- }
11182
-
11183
- i += 1;
11184
- }
11185
-
11186
- if (this.keysIndex !== i) {
11187
- this.keysIndex = i;
11188
- }
11189
-
11190
- return this.data.d.k[this.keysIndex].s;
11191
- };
11192
-
11193
- TextProperty.prototype.buildFinalText = function (text) {
11194
- var charactersArray = [];
11195
- var i = 0;
11196
- var len = text.length;
11197
- var charCode;
11198
- var secondCharCode;
11199
- var shouldCombine = false;
11200
-
11201
- while (i < len) {
11202
- charCode = text.charCodeAt(i);
11203
-
11204
- if (FontManager.isCombinedCharacter(charCode)) {
11205
- charactersArray[charactersArray.length - 1] += text.charAt(i);
11206
- } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {
11207
- secondCharCode = text.charCodeAt(i + 1);
11208
-
11209
- if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {
11210
- if (shouldCombine || FontManager.isModifier(charCode, secondCharCode)) {
11211
- charactersArray[charactersArray.length - 1] += text.substr(i, 2);
11212
- shouldCombine = false;
11213
- } else {
11214
- charactersArray.push(text.substr(i, 2));
11215
- }
11216
-
11217
- i += 1;
11218
- } else {
11219
- charactersArray.push(text.charAt(i));
11220
- }
11221
- } else if (charCode > 0xDBFF) {
11222
- secondCharCode = text.charCodeAt(i + 1);
11223
-
11224
- if (FontManager.isZeroWidthJoiner(charCode, secondCharCode)) {
11225
- shouldCombine = true;
11226
- charactersArray[charactersArray.length - 1] += text.substr(i, 2);
11227
- i += 1;
11228
- } else {
11229
- charactersArray.push(text.charAt(i));
11230
- }
11231
- } else if (FontManager.isZeroWidthJoiner(charCode)) {
11232
- charactersArray[charactersArray.length - 1] += text.charAt(i);
11233
- shouldCombine = true;
11234
- } else {
11235
- charactersArray.push(text.charAt(i));
11236
- }
11237
-
11238
- i += 1;
11239
- }
11240
-
11241
- return charactersArray;
11242
- };
11243
-
11244
- TextProperty.prototype.completeTextData = function (documentData) {
11245
- documentData.__complete = true;
11246
- var fontManager = this.elem.globalData.fontManager;
11247
- var data = this.data;
11248
- var letters = [];
11249
- var i;
11250
- var len;
11251
- var newLineFlag;
11252
- var index = 0;
11253
- var val;
11254
- var anchorGrouping = data.m.g;
11255
- var currentSize = 0;
11256
- var currentPos = 0;
11257
- var currentLine = 0;
11258
- var lineWidths = [];
11259
- var lineWidth = 0;
11260
- var maxLineWidth = 0;
11261
- var j;
11262
- var jLen;
11263
- var fontData = fontManager.getFontByName(documentData.f);
11264
- var charData;
11265
- var cLength = 0;
11266
- var fontProps = getFontProperties(fontData);
11267
- documentData.fWeight = fontProps.weight;
11268
- documentData.fStyle = fontProps.style;
11269
- documentData.finalSize = documentData.s;
11270
- documentData.finalText = this.buildFinalText(documentData.t);
11271
- len = documentData.finalText.length;
11272
- documentData.finalLineHeight = documentData.lh;
11273
- var trackingOffset = documentData.tr / 1000 * documentData.finalSize;
11274
- var charCode;
11275
-
11276
- if (documentData.sz) {
11277
- var flag = true;
11278
- var boxWidth = documentData.sz[0];
11279
- var boxHeight = documentData.sz[1];
11280
- var currentHeight;
11281
- var finalText;
11282
-
11283
- while (flag) {
11284
- finalText = this.buildFinalText(documentData.t);
11285
- currentHeight = 0;
11286
- lineWidth = 0;
11287
- len = finalText.length;
11288
- trackingOffset = documentData.tr / 1000 * documentData.finalSize;
11289
- var lastSpaceIndex = -1;
11290
-
11291
- for (i = 0; i < len; i += 1) {
11292
- charCode = finalText[i].charCodeAt(0);
11293
- newLineFlag = false;
11294
-
11295
- if (finalText[i] === ' ') {
11296
- lastSpaceIndex = i;
11297
- } else if (charCode === 13 || charCode === 3) {
11298
- lineWidth = 0;
11299
- newLineFlag = true;
11300
- currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;
11301
- }
11302
-
11303
- if (fontManager.chars) {
11304
- charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);
11305
- cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;
11306
- } else {
11307
- // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;
11308
- cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);
11309
- }
11310
-
11311
- if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {
11312
- if (lastSpaceIndex === -1) {
11313
- len += 1;
11314
- } else {
11315
- i = lastSpaceIndex;
11316
- }
11317
-
11318
- currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;
11319
- finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\r'); // finalText = finalText.substr(0,i) + "\r" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);
11320
-
11321
- lastSpaceIndex = -1;
11322
- lineWidth = 0;
11323
- } else {
11324
- lineWidth += cLength;
11325
- lineWidth += trackingOffset;
11326
- }
11327
- }
11328
-
11329
- currentHeight += fontData.ascent * documentData.finalSize / 100;
11330
-
11331
- if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {
11332
- documentData.finalSize -= 1;
11333
- documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;
11334
- } else {
11335
- documentData.finalText = finalText;
11336
- len = documentData.finalText.length;
11337
- flag = false;
11338
- }
11339
- }
11340
- }
11341
-
11342
- lineWidth = -trackingOffset;
11343
- cLength = 0;
11344
- var uncollapsedSpaces = 0;
11345
- var currentChar;
11346
-
11347
- for (i = 0; i < len; i += 1) {
11348
- newLineFlag = false;
11349
- currentChar = documentData.finalText[i];
11350
- charCode = currentChar.charCodeAt(0);
11351
-
11352
- if (charCode === 13 || charCode === 3) {
11353
- uncollapsedSpaces = 0;
11354
- lineWidths.push(lineWidth);
11355
- maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;
11356
- lineWidth = -2 * trackingOffset;
11357
- val = '';
11358
- newLineFlag = true;
11359
- currentLine += 1;
11360
- } else {
11361
- val = currentChar;
11362
- }
11363
-
11364
- if (fontManager.chars) {
11365
- charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);
11366
- cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;
11367
- } else {
11368
- // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);
11369
- // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;
11370
- cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);
11371
- } //
11372
-
11373
-
11374
- if (currentChar === ' ') {
11375
- uncollapsedSpaces += cLength + trackingOffset;
11376
- } else {
11377
- lineWidth += cLength + trackingOffset + uncollapsedSpaces;
11378
- uncollapsedSpaces = 0;
11379
- }
11380
-
11381
- letters.push({
11382
- l: cLength,
11383
- an: cLength,
11384
- add: currentSize,
11385
- n: newLineFlag,
11386
- anIndexes: [],
11387
- val: val,
11388
- line: currentLine,
11389
- animatorJustifyOffset: 0
11390
- });
11391
-
11392
- if (anchorGrouping == 2) {
11393
- // eslint-disable-line eqeqeq
11394
- currentSize += cLength;
11395
-
11396
- if (val === '' || val === ' ' || i === len - 1) {
11397
- if (val === '' || val === ' ') {
11398
- currentSize -= cLength;
11399
- }
11400
-
11401
- while (currentPos <= i) {
11402
- letters[currentPos].an = currentSize;
11403
- letters[currentPos].ind = index;
11404
- letters[currentPos].extra = cLength;
11405
- currentPos += 1;
11406
- }
11407
-
11408
- index += 1;
11409
- currentSize = 0;
11410
- }
11411
- } else if (anchorGrouping == 3) {
11412
- // eslint-disable-line eqeqeq
11413
- currentSize += cLength;
11414
-
11415
- if (val === '' || i === len - 1) {
11416
- if (val === '') {
11417
- currentSize -= cLength;
11418
- }
11419
-
11420
- while (currentPos <= i) {
11421
- letters[currentPos].an = currentSize;
11422
- letters[currentPos].ind = index;
11423
- letters[currentPos].extra = cLength;
11424
- currentPos += 1;
11425
- }
11426
-
11427
- currentSize = 0;
11428
- index += 1;
11429
- }
11430
- } else {
11431
- letters[index].ind = index;
11432
- letters[index].extra = 0;
11433
- index += 1;
11434
- }
11435
- }
11436
-
11437
- documentData.l = letters;
11438
- maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;
11439
- lineWidths.push(lineWidth);
11440
-
11441
- if (documentData.sz) {
11442
- documentData.boxWidth = documentData.sz[0];
11443
- documentData.justifyOffset = 0;
11444
- } else {
11445
- documentData.boxWidth = maxLineWidth;
11446
-
11447
- switch (documentData.j) {
11448
- case 1:
11449
- documentData.justifyOffset = -documentData.boxWidth;
11450
- break;
11451
-
11452
- case 2:
11453
- documentData.justifyOffset = -documentData.boxWidth / 2;
11454
- break;
11455
-
11456
- default:
11457
- documentData.justifyOffset = 0;
11458
- }
11459
- }
11460
-
11461
- documentData.lineWidths = lineWidths;
11462
- var animators = data.a;
11463
- var animatorData;
11464
- var letterData;
11465
- jLen = animators.length;
11466
- var based;
11467
- var ind;
11468
- var indexes = [];
11469
-
11470
- for (j = 0; j < jLen; j += 1) {
11471
- animatorData = animators[j];
11472
-
11473
- if (animatorData.a.sc) {
11474
- documentData.strokeColorAnim = true;
11475
- }
11476
-
11477
- if (animatorData.a.sw) {
11478
- documentData.strokeWidthAnim = true;
11479
- }
11480
-
11481
- if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {
11482
- documentData.fillColorAnim = true;
11483
- }
11484
-
11485
- ind = 0;
11486
- based = animatorData.s.b;
11487
-
11488
- for (i = 0; i < len; i += 1) {
11489
- letterData = letters[i];
11490
- letterData.anIndexes[j] = ind;
11491
-
11492
- if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {
11493
- // eslint-disable-line eqeqeq
11494
- if (animatorData.s.rn === 1) {
11495
- indexes.push(ind);
11496
- }
11497
-
11498
- ind += 1;
11499
- }
11500
- }
11501
-
11502
- data.a[j].s.totalChars = ind;
11503
- var currentInd = -1;
11504
- var newInd;
11505
-
11506
- if (animatorData.s.rn === 1) {
11507
- for (i = 0; i < len; i += 1) {
11508
- letterData = letters[i];
11509
-
11510
- if (currentInd != letterData.anIndexes[j]) {
11511
- // eslint-disable-line eqeqeq
11512
- currentInd = letterData.anIndexes[j];
11513
- newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];
11514
- }
11515
-
11516
- letterData.anIndexes[j] = newInd;
11517
- }
11518
- }
11519
- }
11520
-
11521
- documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;
11522
- documentData.ls = documentData.ls || 0;
11523
- documentData.ascent = fontData.ascent * documentData.finalSize / 100;
11524
- };
11525
-
11526
- TextProperty.prototype.updateDocumentData = function (newData, index) {
11527
- index = index === undefined ? this.keysIndex : index;
11528
- var dData = this.copyData({}, this.data.d.k[index].s);
11529
- dData = this.copyData(dData, newData);
11530
- this.data.d.k[index].s = dData;
11531
- this.recalculate(index);
11532
- this.elem.addDynamicProperty(this);
11533
- };
11534
-
11535
- TextProperty.prototype.recalculate = function (index) {
11536
- var dData = this.data.d.k[index].s;
11537
- dData.__complete = false;
11538
- this.keysIndex = 0;
11539
- this._isFirstFrame = true;
11540
- this.getValue(dData);
11541
- };
11542
-
11543
- TextProperty.prototype.canResizeFont = function (_canResize) {
11544
- this.canResize = _canResize;
11545
- this.recalculate(this.keysIndex);
11546
- this.elem.addDynamicProperty(this);
11547
- };
11548
-
11549
- TextProperty.prototype.setMinimumFontSize = function (_fontValue) {
11550
- this.minimumFontSize = Math.floor(_fontValue) || 1;
11551
- this.recalculate(this.keysIndex);
11552
- this.elem.addDynamicProperty(this);
11553
- };
11554
-
11555
- var TextSelectorProp = function () {
11556
- var max = Math.max;
11557
- var min = Math.min;
11558
- var floor = Math.floor;
11559
-
11560
- function TextSelectorPropFactory(elem, data) {
11561
- this._currentTextLength = -1;
11562
- this.k = false;
11563
- this.data = data;
11564
- this.elem = elem;
11565
- this.comp = elem.comp;
11566
- this.finalS = 0;
11567
- this.finalE = 0;
11568
- this.initDynamicPropertyContainer(elem);
11569
- this.s = PropertyFactory.getProp(elem, data.s || {
11570
- k: 0
11571
- }, 0, 0, this);
11572
-
11573
- if ('e' in data) {
11574
- this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);
11575
- } else {
11576
- this.e = {
11577
- v: 100
11578
- };
11579
- }
11580
-
11581
- this.o = PropertyFactory.getProp(elem, data.o || {
11582
- k: 0
11583
- }, 0, 0, this);
11584
- this.xe = PropertyFactory.getProp(elem, data.xe || {
11585
- k: 0
11586
- }, 0, 0, this);
11587
- this.ne = PropertyFactory.getProp(elem, data.ne || {
11588
- k: 0
11589
- }, 0, 0, this);
11590
- this.sm = PropertyFactory.getProp(elem, data.sm || {
11591
- k: 100
11592
- }, 0, 0, this);
11593
- this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);
11594
-
11595
- if (!this.dynamicProperties.length) {
11596
- this.getValue();
11597
- }
11598
- }
11599
-
11600
- TextSelectorPropFactory.prototype = {
11601
- getMult: function getMult(ind) {
11602
- if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {
11603
- this.getValue();
11604
- }
11605
-
11606
- var x1 = 0;
11607
- var y1 = 0;
11608
- var x2 = 1;
11609
- var y2 = 1;
11610
-
11611
- if (this.ne.v > 0) {
11612
- x1 = this.ne.v / 100.0;
11613
- } else {
11614
- y1 = -this.ne.v / 100.0;
11615
- }
11616
-
11617
- if (this.xe.v > 0) {
11618
- x2 = 1.0 - this.xe.v / 100.0;
11619
- } else {
11620
- y2 = 1.0 + this.xe.v / 100.0;
11621
- }
11622
-
11623
- var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;
11624
- var mult = 0;
11625
- var s = this.finalS;
11626
- var e = this.finalE;
11627
- var type = this.data.sh;
11628
-
11629
- if (type === 2) {
11630
- if (e === s) {
11631
- mult = ind >= e ? 1 : 0;
11632
- } else {
11633
- mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));
11634
- }
11635
-
11636
- mult = easer(mult);
11637
- } else if (type === 3) {
11638
- if (e === s) {
11639
- mult = ind >= e ? 0 : 1;
11640
- } else {
11641
- mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));
11642
- }
11643
-
11644
- mult = easer(mult);
11645
- } else if (type === 4) {
11646
- if (e === s) {
11647
- mult = 0;
11648
- } else {
11649
- mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));
11650
-
11651
- if (mult < 0.5) {
11652
- mult *= 2;
11653
- } else {
11654
- mult = 1 - 2 * (mult - 0.5);
11655
- }
11656
- }
11657
-
11658
- mult = easer(mult);
11659
- } else if (type === 5) {
11660
- if (e === s) {
11661
- mult = 0;
11662
- } else {
11663
- var tot = e - s;
11664
- /* ind += 0.5;
11665
- mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */
11666
-
11667
- ind = min(max(0, ind + 0.5 - s), e - s);
11668
- var x = -tot / 2 + ind;
11669
- var a = tot / 2;
11670
- mult = Math.sqrt(1 - x * x / (a * a));
11671
- }
11672
-
11673
- mult = easer(mult);
11674
- } else if (type === 6) {
11675
- if (e === s) {
11676
- mult = 0;
11677
- } else {
11678
- ind = min(max(0, ind + 0.5 - s), e - s);
11679
- mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line
11680
- }
11681
-
11682
- mult = easer(mult);
11683
- } else {
11684
- if (ind >= floor(s)) {
11685
- if (ind - s < 0) {
11686
- mult = max(0, min(min(e, 1) - (s - ind), 1));
11687
- } else {
11688
- mult = max(0, min(e - ind, 1));
11689
- }
11690
- }
11691
-
11692
- mult = easer(mult);
11693
- } // Smoothness implementation.
11694
- // The smoothness represents a reduced range of the original [0; 1] range.
11695
- // if smoothness is 25%, the new range will be [0.375; 0.625]
11696
- // Steps are:
11697
- // - find the lower value of the new range (threshold)
11698
- // - if multiplier is smaller than that value, floor it to 0
11699
- // - if it is larger,
11700
- // - subtract the threshold
11701
- // - divide it by the smoothness (this will return the range to [0; 1])
11702
- // Note: If it doesn't work on some scenarios, consider applying it before the easer.
11703
-
11704
-
11705
- if (this.sm.v !== 100) {
11706
- var smoothness = this.sm.v * 0.01;
11707
-
11708
- if (smoothness === 0) {
11709
- smoothness = 0.00000001;
11710
- }
11711
-
11712
- var threshold = 0.5 - smoothness * 0.5;
11713
-
11714
- if (mult < threshold) {
11715
- mult = 0;
11716
- } else {
11717
- mult = (mult - threshold) / smoothness;
11718
-
11719
- if (mult > 1) {
11720
- mult = 1;
11721
- }
11722
- }
11723
- }
11724
-
11725
- return mult * this.a.v;
11726
- },
11727
- getValue: function getValue(newCharsFlag) {
11728
- this.iterateDynamicProperties();
11729
- this._mdf = newCharsFlag || this._mdf;
11730
- this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;
11731
-
11732
- if (newCharsFlag && this.data.r === 2) {
11733
- this.e.v = this._currentTextLength;
11734
- }
11735
-
11736
- var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;
11737
- var o = this.o.v / divisor;
11738
- var s = this.s.v / divisor + o;
11739
- var e = this.e.v / divisor + o;
11740
-
11741
- if (s > e) {
11742
- var _s = s;
11743
- s = e;
11744
- e = _s;
11745
- }
11746
-
11747
- this.finalS = s;
11748
- this.finalE = e;
11749
- }
11750
- };
11751
- extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);
11752
-
11753
- function getTextSelectorProp(elem, data, arr) {
11754
- return new TextSelectorPropFactory(elem, data, arr);
11755
- }
11756
-
11757
- return {
11758
- getTextSelectorProp: getTextSelectorProp
11759
- };
11760
- }();
11761
-
11762
- function TextAnimatorDataProperty(elem, animatorProps, container) {
11763
- var defaultData = {
11764
- propType: false
11765
- };
11766
- var getProp = PropertyFactory.getProp;
11767
- var textAnimatorAnimatables = animatorProps.a;
11768
- this.a = {
11769
- r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,
11770
- rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,
11771
- ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,
11772
- sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,
11773
- sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,
11774
- s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,
11775
- a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,
11776
- o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,
11777
- p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,
11778
- sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,
11779
- sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,
11780
- fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,
11781
- fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,
11782
- fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,
11783
- fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,
11784
- t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData
11785
- };
11786
- this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);
11787
- this.s.t = animatorProps.s.t;
11788
- }
11789
-
11790
- function TextAnimatorProperty(textData, renderType, elem) {
11791
- this._isFirstFrame = true;
11792
- this._hasMaskedPath = false;
11793
- this._frameId = -1;
11794
- this._textData = textData;
11795
- this._renderType = renderType;
11796
- this._elem = elem;
11797
- this._animatorsData = createSizedArray(this._textData.a.length);
11798
- this._pathData = {};
11799
- this._moreOptions = {
11800
- alignment: {}
11801
- };
11802
- this.renderedLetters = [];
11803
- this.lettersChangedFlag = false;
11804
- this.initDynamicPropertyContainer(elem);
11805
- }
11806
-
11807
- TextAnimatorProperty.prototype.searchProperties = function () {
11808
- var i;
11809
- var len = this._textData.a.length;
11810
- var animatorProps;
11811
- var getProp = PropertyFactory.getProp;
11812
-
11813
- for (i = 0; i < len; i += 1) {
11814
- animatorProps = this._textData.a[i];
11815
- this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);
11816
- }
11817
-
11818
- if (this._textData.p && 'm' in this._textData.p) {
11819
- this._pathData = {
11820
- a: getProp(this._elem, this._textData.p.a, 0, 0, this),
11821
- f: getProp(this._elem, this._textData.p.f, 0, 0, this),
11822
- l: getProp(this._elem, this._textData.p.l, 0, 0, this),
11823
- r: getProp(this._elem, this._textData.p.r, 0, 0, this),
11824
- p: getProp(this._elem, this._textData.p.p, 0, 0, this),
11825
- m: this._elem.maskManager.getMaskProperty(this._textData.p.m)
11826
- };
11827
- this._hasMaskedPath = true;
11828
- } else {
11829
- this._hasMaskedPath = false;
11830
- }
11831
-
11832
- this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);
11833
- };
11834
-
11835
- TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {
11836
- this.lettersChangedFlag = lettersChangedFlag;
11837
-
11838
- if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {
11839
- return;
11840
- }
11841
-
11842
- this._isFirstFrame = false;
11843
- var alignment = this._moreOptions.alignment.v;
11844
- var animators = this._animatorsData;
11845
- var textData = this._textData;
11846
- var matrixHelper = this.mHelper;
11847
- var renderType = this._renderType;
11848
- var renderedLettersCount = this.renderedLetters.length;
11849
- var xPos;
11850
- var yPos;
11851
- var i;
11852
- var len;
11853
- var letters = documentData.l;
11854
- var pathInfo;
11855
- var currentLength;
11856
- var currentPoint;
11857
- var segmentLength;
11858
- var flag;
11859
- var pointInd;
11860
- var segmentInd;
11861
- var prevPoint;
11862
- var points;
11863
- var segments;
11864
- var partialLength;
11865
- var totalLength;
11866
- var perc;
11867
- var tanAngle;
11868
- var mask;
11869
-
11870
- if (this._hasMaskedPath) {
11871
- mask = this._pathData.m;
11872
-
11873
- if (!this._pathData.n || this._pathData._mdf) {
11874
- var paths = mask.v;
11875
-
11876
- if (this._pathData.r.v) {
11877
- paths = paths.reverse();
11878
- } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi
11879
-
11880
-
11881
- pathInfo = {
11882
- tLength: 0,
11883
- segments: []
11884
- };
11885
- len = paths._length - 1;
11886
- var bezierData;
11887
- totalLength = 0;
11888
-
11889
- for (i = 0; i < len; i += 1) {
11890
- bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);
11891
- pathInfo.tLength += bezierData.segmentLength;
11892
- pathInfo.segments.push(bezierData);
11893
- totalLength += bezierData.segmentLength;
11894
- }
11895
-
11896
- i = len;
11897
-
11898
- if (mask.v.c) {
11899
- bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);
11900
- pathInfo.tLength += bezierData.segmentLength;
11901
- pathInfo.segments.push(bezierData);
11902
- totalLength += bezierData.segmentLength;
11903
- }
11904
-
11905
- this._pathData.pi = pathInfo;
11906
- }
11907
-
11908
- pathInfo = this._pathData.pi;
11909
- currentLength = this._pathData.f.v;
11910
- segmentInd = 0;
11911
- pointInd = 1;
11912
- segmentLength = 0;
11913
- flag = true;
11914
- segments = pathInfo.segments;
11915
-
11916
- if (currentLength < 0 && mask.v.c) {
11917
- if (pathInfo.tLength < Math.abs(currentLength)) {
11918
- currentLength = -Math.abs(currentLength) % pathInfo.tLength;
11919
- }
11920
-
11921
- segmentInd = segments.length - 1;
11922
- points = segments[segmentInd].points;
11923
- pointInd = points.length - 1;
11924
-
11925
- while (currentLength < 0) {
11926
- currentLength += points[pointInd].partialLength;
11927
- pointInd -= 1;
11928
-
11929
- if (pointInd < 0) {
11930
- segmentInd -= 1;
11931
- points = segments[segmentInd].points;
11932
- pointInd = points.length - 1;
11933
- }
11934
- }
11935
- }
11936
-
11937
- points = segments[segmentInd].points;
11938
- prevPoint = points[pointInd - 1];
11939
- currentPoint = points[pointInd];
11940
- partialLength = currentPoint.partialLength;
11941
- }
11942
-
11943
- len = letters.length;
11944
- xPos = 0;
11945
- yPos = 0;
11946
- var yOff = documentData.finalSize * 1.2 * 0.714;
11947
- var firstLine = true;
11948
- var animatorProps;
11949
- var animatorSelector;
11950
- var j;
11951
- var jLen;
11952
- var letterValue;
11953
- jLen = animators.length;
11954
- var mult;
11955
- var ind = -1;
11956
- var offf;
11957
- var xPathPos;
11958
- var yPathPos;
11959
- var initPathPos = currentLength;
11960
- var initSegmentInd = segmentInd;
11961
- var initPointInd = pointInd;
11962
- var currentLine = -1;
11963
- var elemOpacity;
11964
- var sc;
11965
- var sw;
11966
- var fc;
11967
- var k;
11968
- var letterSw;
11969
- var letterSc;
11970
- var letterFc;
11971
- var letterM = '';
11972
- var letterP = this.defaultPropsArray;
11973
- var letterO; //
11974
-
11975
- if (documentData.j === 2 || documentData.j === 1) {
11976
- var animatorJustifyOffset = 0;
11977
- var animatorFirstCharOffset = 0;
11978
- var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;
11979
- var lastIndex = 0;
11980
- var isNewLine = true;
11981
-
11982
- for (i = 0; i < len; i += 1) {
11983
- if (letters[i].n) {
11984
- if (animatorJustifyOffset) {
11985
- animatorJustifyOffset += animatorFirstCharOffset;
11986
- }
11987
-
11988
- while (lastIndex < i) {
11989
- letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;
11990
- lastIndex += 1;
11991
- }
11992
-
11993
- animatorJustifyOffset = 0;
11994
- isNewLine = true;
11995
- } else {
11996
- for (j = 0; j < jLen; j += 1) {
11997
- animatorProps = animators[j].a;
11998
-
11999
- if (animatorProps.t.propType) {
12000
- if (isNewLine && documentData.j === 2) {
12001
- animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;
12002
- }
12003
-
12004
- animatorSelector = animators[j].s;
12005
- mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);
12006
-
12007
- if (mult.length) {
12008
- animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;
12009
- } else {
12010
- animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;
12011
- }
12012
- }
12013
- }
12014
-
12015
- isNewLine = false;
12016
- }
12017
- }
12018
-
12019
- if (animatorJustifyOffset) {
12020
- animatorJustifyOffset += animatorFirstCharOffset;
12021
- }
12022
-
12023
- while (lastIndex < i) {
12024
- letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;
12025
- lastIndex += 1;
12026
- }
12027
- } //
12028
-
12029
-
12030
- for (i = 0; i < len; i += 1) {
12031
- matrixHelper.reset();
12032
- elemOpacity = 1;
12033
-
12034
- if (letters[i].n) {
12035
- xPos = 0;
12036
- yPos += documentData.yOffset;
12037
- yPos += firstLine ? 1 : 0;
12038
- currentLength = initPathPos;
12039
- firstLine = false;
12040
-
12041
- if (this._hasMaskedPath) {
12042
- segmentInd = initSegmentInd;
12043
- pointInd = initPointInd;
12044
- points = segments[segmentInd].points;
12045
- prevPoint = points[pointInd - 1];
12046
- currentPoint = points[pointInd];
12047
- partialLength = currentPoint.partialLength;
12048
- segmentLength = 0;
12049
- }
12050
-
12051
- letterM = '';
12052
- letterFc = '';
12053
- letterSw = '';
12054
- letterO = '';
12055
- letterP = this.defaultPropsArray;
12056
- } else {
12057
- if (this._hasMaskedPath) {
12058
- if (currentLine !== letters[i].line) {
12059
- switch (documentData.j) {
12060
- case 1:
12061
- currentLength += totalLength - documentData.lineWidths[letters[i].line];
12062
- break;
12063
-
12064
- case 2:
12065
- currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;
12066
- break;
12067
-
12068
- default:
12069
- break;
12070
- }
12071
-
12072
- currentLine = letters[i].line;
12073
- }
12074
-
12075
- if (ind !== letters[i].ind) {
12076
- if (letters[ind]) {
12077
- currentLength += letters[ind].extra;
12078
- }
12079
-
12080
- currentLength += letters[i].an / 2;
12081
- ind = letters[i].ind;
12082
- }
12083
-
12084
- currentLength += alignment[0] * letters[i].an * 0.005;
12085
- var animatorOffset = 0;
12086
-
12087
- for (j = 0; j < jLen; j += 1) {
12088
- animatorProps = animators[j].a;
12089
-
12090
- if (animatorProps.p.propType) {
12091
- animatorSelector = animators[j].s;
12092
- mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);
12093
-
12094
- if (mult.length) {
12095
- animatorOffset += animatorProps.p.v[0] * mult[0];
12096
- } else {
12097
- animatorOffset += animatorProps.p.v[0] * mult;
12098
- }
12099
- }
12100
-
12101
- if (animatorProps.a.propType) {
12102
- animatorSelector = animators[j].s;
12103
- mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);
12104
-
12105
- if (mult.length) {
12106
- animatorOffset += animatorProps.a.v[0] * mult[0];
12107
- } else {
12108
- animatorOffset += animatorProps.a.v[0] * mult;
12109
- }
12110
- }
12111
- }
12112
-
12113
- flag = true; // Force alignment only works with a single line for now
12114
-
12115
- if (this._pathData.a.v) {
12116
- currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);
12117
- currentLength += this._pathData.f.v;
12118
- }
12119
-
12120
- while (flag) {
12121
- if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {
12122
- perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;
12123
- xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;
12124
- yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;
12125
- matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);
12126
- flag = false;
12127
- } else if (points) {
12128
- segmentLength += currentPoint.partialLength;
12129
- pointInd += 1;
12130
-
12131
- if (pointInd >= points.length) {
12132
- pointInd = 0;
12133
- segmentInd += 1;
12134
-
12135
- if (!segments[segmentInd]) {
12136
- if (mask.v.c) {
12137
- pointInd = 0;
12138
- segmentInd = 0;
12139
- points = segments[segmentInd].points;
12140
- } else {
12141
- segmentLength -= currentPoint.partialLength;
12142
- points = null;
12143
- }
12144
- } else {
12145
- points = segments[segmentInd].points;
12146
- }
12147
- }
12148
-
12149
- if (points) {
12150
- prevPoint = currentPoint;
12151
- currentPoint = points[pointInd];
12152
- partialLength = currentPoint.partialLength;
12153
- }
12154
- }
12155
- }
12156
-
12157
- offf = letters[i].an / 2 - letters[i].add;
12158
- matrixHelper.translate(-offf, 0, 0);
12159
- } else {
12160
- offf = letters[i].an / 2 - letters[i].add;
12161
- matrixHelper.translate(-offf, 0, 0); // Grouping alignment
12162
-
12163
- matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);
12164
- }
12165
-
12166
- for (j = 0; j < jLen; j += 1) {
12167
- animatorProps = animators[j].a;
12168
-
12169
- if (animatorProps.t.propType) {
12170
- animatorSelector = animators[j].s;
12171
- mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean "isNewLine"
12172
-
12173
- if (xPos !== 0 || documentData.j !== 0) {
12174
- if (this._hasMaskedPath) {
12175
- if (mult.length) {
12176
- currentLength += animatorProps.t.v * mult[0];
12177
- } else {
12178
- currentLength += animatorProps.t.v * mult;
12179
- }
12180
- } else if (mult.length) {
12181
- xPos += animatorProps.t.v * mult[0];
12182
- } else {
12183
- xPos += animatorProps.t.v * mult;
12184
- }
12185
- }
12186
- }
12187
- }
12188
-
12189
- if (documentData.strokeWidthAnim) {
12190
- sw = documentData.sw || 0;
12191
- }
12192
-
12193
- if (documentData.strokeColorAnim) {
12194
- if (documentData.sc) {
12195
- sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];
12196
- } else {
12197
- sc = [0, 0, 0];
12198
- }
12199
- }
12200
-
12201
- if (documentData.fillColorAnim && documentData.fc) {
12202
- fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];
12203
- }
12204
-
12205
- for (j = 0; j < jLen; j += 1) {
12206
- animatorProps = animators[j].a;
12207
-
12208
- if (animatorProps.a.propType) {
12209
- animatorSelector = animators[j].s;
12210
- mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);
12211
-
12212
- if (mult.length) {
12213
- matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);
12214
- } else {
12215
- matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);
12216
- }
12217
- }
12218
- }
12219
-
12220
- for (j = 0; j < jLen; j += 1) {
12221
- animatorProps = animators[j].a;
12222
-
12223
- if (animatorProps.s.propType) {
12224
- animatorSelector = animators[j].s;
12225
- mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);
12226
-
12227
- if (mult.length) {
12228
- matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);
12229
- } else {
12230
- matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);
12231
- }
12232
- }
12233
- }
12234
-
12235
- for (j = 0; j < jLen; j += 1) {
12236
- animatorProps = animators[j].a;
12237
- animatorSelector = animators[j].s;
12238
- mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);
12239
-
12240
- if (animatorProps.sk.propType) {
12241
- if (mult.length) {
12242
- matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);
12243
- } else {
12244
- matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);
12245
- }
12246
- }
12247
-
12248
- if (animatorProps.r.propType) {
12249
- if (mult.length) {
12250
- matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);
12251
- } else {
12252
- matrixHelper.rotateZ(-animatorProps.r.v * mult);
12253
- }
12254
- }
12255
-
12256
- if (animatorProps.ry.propType) {
12257
- if (mult.length) {
12258
- matrixHelper.rotateY(animatorProps.ry.v * mult[1]);
12259
- } else {
12260
- matrixHelper.rotateY(animatorProps.ry.v * mult);
12261
- }
12262
- }
12263
-
12264
- if (animatorProps.rx.propType) {
12265
- if (mult.length) {
12266
- matrixHelper.rotateX(animatorProps.rx.v * mult[0]);
12267
- } else {
12268
- matrixHelper.rotateX(animatorProps.rx.v * mult);
12269
- }
12270
- }
12271
-
12272
- if (animatorProps.o.propType) {
12273
- if (mult.length) {
12274
- elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];
12275
- } else {
12276
- elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;
12277
- }
12278
- }
12279
-
12280
- if (documentData.strokeWidthAnim && animatorProps.sw.propType) {
12281
- if (mult.length) {
12282
- sw += animatorProps.sw.v * mult[0];
12283
- } else {
12284
- sw += animatorProps.sw.v * mult;
12285
- }
12286
- }
12287
-
12288
- if (documentData.strokeColorAnim && animatorProps.sc.propType) {
12289
- for (k = 0; k < 3; k += 1) {
12290
- if (mult.length) {
12291
- sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];
12292
- } else {
12293
- sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;
12294
- }
12295
- }
12296
- }
12297
-
12298
- if (documentData.fillColorAnim && documentData.fc) {
12299
- if (animatorProps.fc.propType) {
12300
- for (k = 0; k < 3; k += 1) {
12301
- if (mult.length) {
12302
- fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];
12303
- } else {
12304
- fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;
12305
- }
12306
- }
12307
- }
12308
-
12309
- if (animatorProps.fh.propType) {
12310
- if (mult.length) {
12311
- fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);
12312
- } else {
12313
- fc = addHueToRGB(fc, animatorProps.fh.v * mult);
12314
- }
12315
- }
12316
-
12317
- if (animatorProps.fs.propType) {
12318
- if (mult.length) {
12319
- fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);
12320
- } else {
12321
- fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);
12322
- }
12323
- }
12324
-
12325
- if (animatorProps.fb.propType) {
12326
- if (mult.length) {
12327
- fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);
12328
- } else {
12329
- fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);
12330
- }
12331
- }
12332
- }
12333
- }
12334
-
12335
- for (j = 0; j < jLen; j += 1) {
12336
- animatorProps = animators[j].a;
12337
-
12338
- if (animatorProps.p.propType) {
12339
- animatorSelector = animators[j].s;
12340
- mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);
12341
-
12342
- if (this._hasMaskedPath) {
12343
- if (mult.length) {
12344
- matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);
12345
- } else {
12346
- matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);
12347
- }
12348
- } else if (mult.length) {
12349
- matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);
12350
- } else {
12351
- matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);
12352
- }
12353
- }
12354
- }
12355
-
12356
- if (documentData.strokeWidthAnim) {
12357
- letterSw = sw < 0 ? 0 : sw;
12358
- }
12359
-
12360
- if (documentData.strokeColorAnim) {
12361
- letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';
12362
- }
12363
-
12364
- if (documentData.fillColorAnim && documentData.fc) {
12365
- letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';
12366
- }
12367
-
12368
- if (this._hasMaskedPath) {
12369
- matrixHelper.translate(0, -documentData.ls);
12370
- matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);
12371
-
12372
- if (this._pathData.p.v) {
12373
- tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);
12374
- var rot = Math.atan(tanAngle) * 180 / Math.PI;
12375
-
12376
- if (currentPoint.point[0] < prevPoint.point[0]) {
12377
- rot += 180;
12378
- }
12379
-
12380
- matrixHelper.rotate(-rot * Math.PI / 180);
12381
- }
12382
-
12383
- matrixHelper.translate(xPathPos, yPathPos, 0);
12384
- currentLength -= alignment[0] * letters[i].an * 0.005;
12385
-
12386
- if (letters[i + 1] && ind !== letters[i + 1].ind) {
12387
- currentLength += letters[i].an / 2;
12388
- currentLength += documentData.tr * 0.001 * documentData.finalSize;
12389
- }
12390
- } else {
12391
- matrixHelper.translate(xPos, yPos, 0);
12392
-
12393
- if (documentData.ps) {
12394
- // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);
12395
- matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);
12396
- }
12397
-
12398
- switch (documentData.j) {
12399
- case 1:
12400
- matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);
12401
- break;
12402
-
12403
- case 2:
12404
- matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);
12405
- break;
12406
-
12407
- default:
12408
- break;
12409
- }
12410
-
12411
- matrixHelper.translate(0, -documentData.ls);
12412
- matrixHelper.translate(offf, 0, 0);
12413
- matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);
12414
- xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;
12415
- }
12416
-
12417
- if (renderType === 'html') {
12418
- letterM = matrixHelper.toCSS();
12419
- } else if (renderType === 'svg') {
12420
- letterM = matrixHelper.to2dCSS();
12421
- } else {
12422
- letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];
12423
- }
12424
-
12425
- letterO = elemOpacity;
12426
- }
12427
-
12428
- if (renderedLettersCount <= i) {
12429
- letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);
12430
- this.renderedLetters.push(letterValue);
12431
- renderedLettersCount += 1;
12432
- this.lettersChangedFlag = true;
12433
- } else {
12434
- letterValue = this.renderedLetters[i];
12435
- this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;
12436
- }
12437
- }
12438
- };
12439
-
12440
- TextAnimatorProperty.prototype.getValue = function () {
12441
- if (this._elem.globalData.frameId === this._frameId) {
12442
- return;
12443
- }
12444
-
12445
- this._frameId = this._elem.globalData.frameId;
12446
- this.iterateDynamicProperties();
12447
- };
12448
-
12449
- TextAnimatorProperty.prototype.mHelper = new Matrix();
12450
- TextAnimatorProperty.prototype.defaultPropsArray = [];
12451
- extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);
12452
-
12453
- function ITextElement() { }
12454
-
12455
- ITextElement.prototype.initElement = function (data, globalData, comp) {
12456
- this.lettersChangedFlag = true;
12457
- this.initFrame();
12458
- this.initBaseData(data, globalData, comp);
12459
- this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);
12460
- this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);
12461
- this.initTransform(data, globalData, comp);
12462
- this.initHierarchy();
12463
- this.initRenderable();
12464
- this.initRendererElement();
12465
- this.createContainerElements();
12466
- this.createRenderableComponents();
12467
- this.createContent();
12468
- this.hide();
12469
- this.textAnimator.searchProperties(this.dynamicProperties);
12470
- };
12471
-
12472
- ITextElement.prototype.prepareFrame = function (num) {
12473
- this._mdf = false;
12474
- this.prepareRenderableFrame(num);
12475
- this.prepareProperties(num, this.isInRange);
12476
-
12477
- if (this.textProperty._mdf || this.textProperty._isFirstFrame) {
12478
- this.buildNewText();
12479
- this.textProperty._isFirstFrame = false;
12480
- this.textProperty._mdf = false;
12481
- }
12482
- };
12483
-
12484
- ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {
12485
- var j;
12486
- var jLen = shapes.length;
12487
- var pathNodes;
12488
- var shapeStr = '';
12489
-
12490
- for (j = 0; j < jLen; j += 1) {
12491
- if (shapes[j].ty === 'sh') {
12492
- pathNodes = shapes[j].ks.k;
12493
- shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);
12494
- }
12495
- }
12496
-
12497
- return shapeStr;
12498
- };
12499
-
12500
- ITextElement.prototype.updateDocumentData = function (newData, index) {
12501
- this.textProperty.updateDocumentData(newData, index);
12502
- };
12503
-
12504
- ITextElement.prototype.canResizeFont = function (_canResize) {
12505
- this.textProperty.canResizeFont(_canResize);
12506
- };
12507
-
12508
- ITextElement.prototype.setMinimumFontSize = function (_fontSize) {
12509
- this.textProperty.setMinimumFontSize(_fontSize);
12510
- };
12511
-
12512
- ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {
12513
- if (documentData.ps) {
12514
- matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);
12515
- }
12516
-
12517
- matrixHelper.translate(0, -documentData.ls, 0);
12518
-
12519
- switch (documentData.j) {
12520
- case 1:
12521
- matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);
12522
- break;
12523
-
12524
- case 2:
12525
- matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);
12526
- break;
12527
-
12528
- default:
12529
- break;
12530
- }
12531
-
12532
- matrixHelper.translate(xPos, yPos, 0);
12533
- };
12534
-
12535
- ITextElement.prototype.buildColor = function (colorData) {
12536
- return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';
12537
- };
12538
-
12539
- ITextElement.prototype.emptyProp = new LetterProps();
12540
-
12541
- ITextElement.prototype.destroy = function () { };
12542
-
12543
- var emptyShapeData = {
12544
- shapes: []
12545
- };
12546
-
12547
- function SVGTextLottieElement(data, globalData, comp) {
12548
- this.textSpans = [];
12549
- this.renderType = 'svg';
12550
- this.initElement(data, globalData, comp);
12551
- }
12552
-
12553
- extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);
12554
-
12555
- SVGTextLottieElement.prototype.createContent = function () {
12556
- if (this.data.singleShape && !this.globalData.fontManager.chars) {
12557
- this.textContainer = createNS('text');
12558
- }
12559
- };
12560
-
12561
- SVGTextLottieElement.prototype.buildTextContents = function (textArray) {
12562
- var i = 0;
12563
- var len = textArray.length;
12564
- var textContents = [];
12565
- var currentTextContent = '';
12566
-
12567
- while (i < len) {
12568
- if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {
12569
- textContents.push(currentTextContent);
12570
- currentTextContent = '';
12571
- } else {
12572
- currentTextContent += textArray[i];
12573
- }
12574
-
12575
- i += 1;
12576
- }
12577
-
12578
- textContents.push(currentTextContent);
12579
- return textContents;
12580
- };
12581
-
12582
- SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {
12583
- // data should probably be cloned to apply scale separately to each instance of a text on different layers
12584
- // but since text internal content gets only rendered once and then it's never rerendered,
12585
- // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.
12586
- // Avoiding cloning is preferred since cloning each character shape data is expensive
12587
- if (data.shapes && data.shapes.length) {
12588
- var shape = data.shapes[0];
12589
-
12590
- if (shape.it) {
12591
- var shapeItem = shape.it[shape.it.length - 1];
12592
-
12593
- if (shapeItem.s) {
12594
- shapeItem.s.k[0] = scale;
12595
- shapeItem.s.k[1] = scale;
12596
- }
12597
- }
12598
- }
12599
-
12600
- return data;
12601
- };
12602
-
12603
- SVGTextLottieElement.prototype.buildNewText = function () {
12604
- this.addDynamicProperty(this);
12605
- var i;
12606
- var len;
12607
- var documentData = this.textProperty.currentData;
12608
- this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);
12609
-
12610
- if (documentData.fc) {
12611
- this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));
12612
- } else {
12613
- this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');
12614
- }
12615
-
12616
- if (documentData.sc) {
12617
- this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));
12618
- this.layerElement.setAttribute('stroke-width', documentData.sw);
12619
- }
12620
-
12621
- this.layerElement.setAttribute('font-size', documentData.finalSize);
12622
- var fontData = this.globalData.fontManager.getFontByName(documentData.f);
12623
-
12624
- if (fontData.fClass) {
12625
- this.layerElement.setAttribute('class', fontData.fClass);
12626
- } else {
12627
- this.layerElement.setAttribute('font-family', fontData.fFamily);
12628
- var fWeight = documentData.fWeight;
12629
- var fStyle = documentData.fStyle;
12630
- this.layerElement.setAttribute('font-style', fStyle);
12631
- this.layerElement.setAttribute('font-weight', fWeight);
12632
- }
12633
-
12634
- this.layerElement.setAttribute('aria-label', documentData.t);
12635
- var letters = documentData.l || [];
12636
- var usesGlyphs = !!this.globalData.fontManager.chars;
12637
- len = letters.length;
12638
- var tSpan;
12639
- var matrixHelper = this.mHelper;
12640
- var shapeStr = '';
12641
- var singleShape = this.data.singleShape;
12642
- var xPos = 0;
12643
- var yPos = 0;
12644
- var firstLine = true;
12645
- var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;
12646
-
12647
- if (singleShape && !usesGlyphs && !documentData.sz) {
12648
- var tElement = this.textContainer;
12649
- var justify = 'start';
12650
-
12651
- switch (documentData.j) {
12652
- case 1:
12653
- justify = 'end';
12654
- break;
12655
-
12656
- case 2:
12657
- justify = 'middle';
12658
- break;
12659
-
12660
- default:
12661
- justify = 'start';
12662
- break;
12663
- }
12664
-
12665
- tElement.setAttribute('text-anchor', justify);
12666
- tElement.setAttribute('letter-spacing', trackingOffset);
12667
- var textContent = this.buildTextContents(documentData.finalText);
12668
- len = textContent.length;
12669
- yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;
12670
-
12671
- for (i = 0; i < len; i += 1) {
12672
- tSpan = this.textSpans[i].span || createNS('tspan');
12673
- tSpan.textContent = textContent[i];
12674
- tSpan.setAttribute('x', 0);
12675
- tSpan.setAttribute('y', yPos);
12676
- tSpan.style.display = 'inherit';
12677
- tElement.appendChild(tSpan);
12678
-
12679
- if (!this.textSpans[i]) {
12680
- this.textSpans[i] = {
12681
- span: null,
12682
- glyph: null
12683
- };
12684
- }
12685
-
12686
- this.textSpans[i].span = tSpan;
12687
- yPos += documentData.finalLineHeight;
12688
- }
12689
-
12690
- this.layerElement.appendChild(tElement);
12691
- } else {
12692
- var cachedSpansLength = this.textSpans.length;
12693
- var charData;
12694
-
12695
- for (i = 0; i < len; i += 1) {
12696
- if (!this.textSpans[i]) {
12697
- this.textSpans[i] = {
12698
- span: null,
12699
- childSpan: null,
12700
- glyph: null
12701
- };
12702
- }
12703
-
12704
- if (!usesGlyphs || !singleShape || i === 0) {
12705
- tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');
12706
-
12707
- if (cachedSpansLength <= i) {
12708
- tSpan.setAttribute('stroke-linecap', 'butt');
12709
- tSpan.setAttribute('stroke-linejoin', 'round');
12710
- tSpan.setAttribute('stroke-miterlimit', '4');
12711
- this.textSpans[i].span = tSpan;
12712
-
12713
- if (usesGlyphs) {
12714
- var childSpan = createNS('g');
12715
- tSpan.appendChild(childSpan);
12716
- this.textSpans[i].childSpan = childSpan;
12717
- }
12718
-
12719
- this.textSpans[i].span = tSpan;
12720
- this.layerElement.appendChild(tSpan);
12721
- }
12722
-
12723
- tSpan.style.display = 'inherit';
12724
- }
12725
-
12726
- matrixHelper.reset();
12727
-
12728
- if (singleShape) {
12729
- if (letters[i].n) {
12730
- xPos = -trackingOffset;
12731
- yPos += documentData.yOffset;
12732
- yPos += firstLine ? 1 : 0;
12733
- firstLine = false;
12734
- }
12735
-
12736
- this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);
12737
- xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;
12738
-
12739
- xPos += trackingOffset;
12740
- }
12741
-
12742
- if (usesGlyphs) {
12743
- charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);
12744
- var glyphElement; // t === 1 means the character has been replaced with an animated shaped
12745
-
12746
- if (charData.t === 1) {
12747
- glyphElement = new SVGCompElement(charData.data, this.globalData, this);
12748
- } else {
12749
- var data = emptyShapeData;
12750
-
12751
- if (charData.data && charData.data.shapes) {
12752
- data = this.buildShapeData(charData.data, documentData.finalSize);
12753
- }
12754
-
12755
- glyphElement = new SVGShapeElement(data, this.globalData, this);
12756
- }
12757
-
12758
- if (this.textSpans[i].glyph) {
12759
- var glyph = this.textSpans[i].glyph;
12760
- this.textSpans[i].childSpan.removeChild(glyph.layerElement);
12761
- glyph.destroy();
12762
- }
12763
-
12764
- this.textSpans[i].glyph = glyphElement;
12765
- glyphElement._debug = true;
12766
- glyphElement.prepareFrame(0);
12767
- glyphElement.renderFrame();
12768
- this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale
12769
- // this might have issues with strokes and might need a different solution
12770
-
12771
- if (charData.t === 1) {
12772
- this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');
12773
- }
12774
- } else {
12775
- if (singleShape) {
12776
- tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');
12777
- }
12778
-
12779
- tSpan.textContent = letters[i].val;
12780
- tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');
12781
- } //
12782
-
12783
- }
12784
-
12785
- if (singleShape && tSpan) {
12786
- tSpan.setAttribute('d', shapeStr);
12787
- }
12788
- }
12789
-
12790
- while (i < this.textSpans.length) {
12791
- this.textSpans[i].span.style.display = 'none';
12792
- i += 1;
12793
- }
12794
-
12795
- this._sizeChanged = true;
12796
- };
12797
-
12798
- SVGTextLottieElement.prototype.sourceRectAtTime = function () {
12799
- this.prepareFrame(this.comp.renderedFrame - this.data.st);
12800
- this.renderInnerContent();
12801
-
12802
- if (this._sizeChanged) {
12803
- this._sizeChanged = false;
12804
- var textBox = this.layerElement.getBBox();
12805
- this.bbox = {
12806
- top: textBox.y,
12807
- left: textBox.x,
12808
- width: textBox.width,
12809
- height: textBox.height
12810
- };
12811
- }
12812
-
12813
- return this.bbox;
12814
- };
12815
-
12816
- SVGTextLottieElement.prototype.getValue = function () {
12817
- var i;
12818
- var len = this.textSpans.length;
12819
- var glyphElement;
12820
- this.renderedFrame = this.comp.renderedFrame;
12821
-
12822
- for (i = 0; i < len; i += 1) {
12823
- glyphElement = this.textSpans[i].glyph;
12824
-
12825
- if (glyphElement) {
12826
- glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);
12827
-
12828
- if (glyphElement._mdf) {
12829
- this._mdf = true;
12830
- }
12831
- }
12832
- }
12833
- };
12834
-
12835
- SVGTextLottieElement.prototype.renderInnerContent = function () {
12836
- if (!this.data.singleShape || this._mdf) {
12837
- this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);
12838
-
12839
- if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {
12840
- this._sizeChanged = true;
12841
- var i;
12842
- var len;
12843
- var renderedLetters = this.textAnimator.renderedLetters;
12844
- var letters = this.textProperty.currentData.l;
12845
- len = letters.length;
12846
- var renderedLetter;
12847
- var textSpan;
12848
- var glyphElement;
12849
-
12850
- for (i = 0; i < len; i += 1) {
12851
- if (!letters[i].n) {
12852
- renderedLetter = renderedLetters[i];
12853
- textSpan = this.textSpans[i].span;
12854
- glyphElement = this.textSpans[i].glyph;
12855
-
12856
- if (glyphElement) {
12857
- glyphElement.renderFrame();
12858
- }
12859
-
12860
- if (renderedLetter._mdf.m) {
12861
- textSpan.setAttribute('transform', renderedLetter.m);
12862
- }
12863
-
12864
- if (renderedLetter._mdf.o) {
12865
- textSpan.setAttribute('opacity', renderedLetter.o);
12866
- }
12867
-
12868
- if (renderedLetter._mdf.sw) {
12869
- textSpan.setAttribute('stroke-width', renderedLetter.sw);
12870
- }
12871
-
12872
- if (renderedLetter._mdf.sc) {
12873
- textSpan.setAttribute('stroke', renderedLetter.sc);
12874
- }
12875
-
12876
- if (renderedLetter._mdf.fc) {
12877
- textSpan.setAttribute('fill', renderedLetter.fc);
12878
- }
12879
- }
12880
- }
12881
- }
12882
- }
12883
- };
12884
-
12885
- function ISolidElement(data, globalData, comp) {
12886
- this.initElement(data, globalData, comp);
12887
- }
12888
-
12889
- extendPrototype([IImageElement], ISolidElement);
12890
-
12891
- ISolidElement.prototype.createContent = function () {
12892
- var rect = createNS('rect'); /// /rect.style.width = this.data.sw;
12893
- /// /rect.style.height = this.data.sh;
12894
- /// /rect.style.fill = this.data.sc;
12895
-
12896
- rect.setAttribute('width', this.data.sw);
12897
- rect.setAttribute('height', this.data.sh);
12898
- rect.setAttribute('fill', this.data.sc);
12899
- this.layerElement.appendChild(rect);
12900
- };
12901
-
12902
- function NullElement(data, globalData, comp) {
12903
- this.initFrame();
12904
- this.initBaseData(data, globalData, comp);
12905
- this.initFrame();
12906
- this.initTransform(data, globalData, comp);
12907
- this.initHierarchy();
12908
- }
12909
-
12910
- NullElement.prototype.prepareFrame = function (num) {
12911
- this.prepareProperties(num, true);
12912
- };
12913
-
12914
- NullElement.prototype.renderFrame = function () { };
12915
-
12916
- NullElement.prototype.getBaseElement = function () {
12917
- return null;
12918
- };
12919
-
12920
- NullElement.prototype.destroy = function () { };
12921
-
12922
- NullElement.prototype.sourceRectAtTime = function () { };
12923
-
12924
- NullElement.prototype.hide = function () { };
12925
-
12926
- extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);
12927
-
12928
- function SVGRendererBase() { }
12929
-
12930
- extendPrototype([BaseRenderer], SVGRendererBase);
12931
-
12932
- SVGRendererBase.prototype.createNull = function (data) {
12933
- return new NullElement(data, this.globalData, this);
12934
- };
12935
-
12936
- SVGRendererBase.prototype.createShape = function (data) {
12937
- return new SVGShapeElement(data, this.globalData, this);
12938
- };
12939
-
12940
- SVGRendererBase.prototype.createText = function (data) {
12941
- return new SVGTextLottieElement(data, this.globalData, this);
12942
- };
12943
-
12944
- SVGRendererBase.prototype.createImage = function (data) {
12945
- return new IImageElement(data, this.globalData, this);
12946
- };
12947
-
12948
- SVGRendererBase.prototype.createSolid = function (data) {
12949
- return new ISolidElement(data, this.globalData, this);
12950
- };
12951
-
12952
- SVGRendererBase.prototype.configAnimation = function (animData) {
12953
- this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');
12954
-
12955
- if (this.renderConfig.viewBoxSize) {
12956
- this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);
12957
- } else {
12958
- this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);
12959
- }
12960
-
12961
- if (!this.renderConfig.viewBoxOnly) {
12962
- this.svgElement.setAttribute('width', animData.w);
12963
- this.svgElement.setAttribute('height', animData.h);
12964
- // this.svgElement.style.width = '100%';
12965
- // this.svgElement.style.height = '100%';
12966
- // this.svgElement.style.transform = 'translate3d(0,0,0)';
12967
- this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;
12968
- }
12969
-
12970
- if (this.renderConfig.width) {
12971
- this.svgElement.setAttribute('width', this.renderConfig.width);
12972
- }
12973
-
12974
- if (this.renderConfig.height) {
12975
- this.svgElement.setAttribute('height', this.renderConfig.height);
12976
- }
12977
-
12978
- if (this.renderConfig.className) {
12979
- this.svgElement.setAttribute('class', this.renderConfig.className);
12980
- }
12981
-
12982
- if (this.renderConfig.id) {
12983
- this.svgElement.setAttribute('id', this.renderConfig.id);
12984
- }
12985
-
12986
- if (this.renderConfig.focusable !== undefined) {
12987
- this.svgElement.setAttribute('focusable', this.renderConfig.focusable);
12988
- }
12989
-
12990
- this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';
12991
- // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = "0px 0px 0px";
12992
-
12993
- this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation
12994
-
12995
- var defs = this.globalData.defs;
12996
- this.setupGlobalData(animData, defs);
12997
- this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;
12998
- this.data = animData;
12999
- var maskElement = createNS('clipPath');
13000
- var rect = createNS('rect');
13001
- rect.setAttribute('width', animData.w);
13002
- rect.setAttribute('height', animData.h);
13003
- rect.setAttribute('x', 0);
13004
- rect.setAttribute('y', 0);
13005
- var maskId = createElementID();
13006
- maskElement.setAttribute('id', maskId);
13007
- maskElement.appendChild(rect);
13008
- this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');
13009
- defs.appendChild(maskElement);
13010
- this.layers = animData.layers;
13011
- this.elements = createSizedArray(animData.layers.length);
13012
- };
13013
-
13014
- SVGRendererBase.prototype.destroy = function () {
13015
- if (this.animationItem.wrapper) {
13016
- this.animationItem.wrapper.innerText = '';
13017
- }
13018
-
13019
- this.layerElement = null;
13020
- this.globalData.defs = null;
13021
- var i;
13022
- var len = this.layers ? this.layers.length : 0;
13023
-
13024
- for (i = 0; i < len; i += 1) {
13025
- if (this.elements[i]) {
13026
- this.elements[i].destroy();
13027
- }
13028
- }
13029
-
13030
- this.elements.length = 0;
13031
- this.destroyed = true;
13032
- this.animationItem = null;
13033
- };
13034
-
13035
- SVGRendererBase.prototype.updateContainerSize = function () { };
13036
-
13037
- SVGRendererBase.prototype.buildItem = function (pos) {
13038
- var elements = this.elements;
13039
-
13040
- if (elements[pos] || this.layers[pos].ty === 99) {
13041
- return;
13042
- }
13043
-
13044
- elements[pos] = true;
13045
- var element = this.createItem(this.layers[pos]);
13046
- elements[pos] = element;
13047
-
13048
- if (getExpressionsPlugin()) {
13049
- if (this.layers[pos].ty === 0) {
13050
- this.globalData.projectInterface.registerComposition(element);
13051
- }
13052
-
13053
- element.initExpressions();
13054
- }
13055
-
13056
- this.appendElementInPos(element, pos);
13057
-
13058
- if (this.layers[pos].tt) {
13059
- if (!this.elements[pos - 1] || this.elements[pos - 1] === true) {
13060
- this.buildItem(pos - 1);
13061
- this.addPendingElement(element);
13062
- } else {
13063
- element.setMatte(elements[pos - 1].layerId);
13064
- }
13065
- }
13066
- };
13067
-
13068
- SVGRendererBase.prototype.checkPendingElements = function () {
13069
- while (this.pendingElements.length) {
13070
- var element = this.pendingElements.pop();
13071
- element.checkParenting();
13072
-
13073
- if (element.data.tt) {
13074
- var i = 0;
13075
- var len = this.elements.length;
13076
-
13077
- while (i < len) {
13078
- if (this.elements[i] === element) {
13079
- element.setMatte(this.elements[i - 1].layerId);
13080
- break;
13081
- }
13082
-
13083
- i += 1;
13084
- }
13085
- }
13086
- }
13087
- };
13088
-
13089
- SVGRendererBase.prototype.renderFrame = function (num) {
13090
- if (this.renderedFrame === num || this.destroyed) {
13091
- return;
13092
- }
13093
-
13094
- if (num === null) {
13095
- num = this.renderedFrame;
13096
- } else {
13097
- this.renderedFrame = num;
13098
- } // console.log('-------');
13099
- // console.log('FRAME ',num);
13100
-
13101
-
13102
- this.globalData.frameNum = num;
13103
- this.globalData.frameId += 1;
13104
- this.globalData.projectInterface.currentFrame = num;
13105
- this.globalData._mdf = false;
13106
- var i;
13107
- var len = this.layers.length;
13108
-
13109
- if (!this.completeLayers) {
13110
- this.checkLayers(num);
13111
- }
13112
-
13113
- for (i = len - 1; i >= 0; i -= 1) {
13114
- if (this.completeLayers || this.elements[i]) {
13115
- this.elements[i].prepareFrame(num - this.layers[i].st);
13116
- }
13117
- }
13118
-
13119
- if (this.globalData._mdf) {
13120
- for (i = 0; i < len; i += 1) {
13121
- if (this.completeLayers || this.elements[i]) {
13122
- this.elements[i].renderFrame();
13123
- }
13124
- }
13125
- }
13126
- };
13127
-
13128
- SVGRendererBase.prototype.appendElementInPos = function (element, pos) {
13129
- var newElement = element.getBaseElement();
13130
-
13131
- if (!newElement) {
13132
- return;
13133
- }
13134
-
13135
- var i = 0;
13136
- var nextElement;
13137
-
13138
- while (i < pos) {
13139
- if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {
13140
- nextElement = this.elements[i].getBaseElement();
13141
- }
13142
-
13143
- i += 1;
13144
- }
13145
-
13146
- if (nextElement) {
13147
- this.layerElement.insertBefore(newElement, nextElement);
13148
- } else {
13149
- this.layerElement.appendChild(newElement);
13150
- }
13151
- };
13152
-
13153
- SVGRendererBase.prototype.hide = function () {
13154
- this.layerElement.style.display = 'none';
13155
- };
13156
-
13157
- SVGRendererBase.prototype.show = function () {
13158
- this.layerElement.style.display = 'block';
13159
- };
13160
-
13161
- function ICompElement() { }
13162
-
13163
- extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);
13164
-
13165
- ICompElement.prototype.initElement = function (data, globalData, comp) {
13166
- this.initFrame();
13167
- this.initBaseData(data, globalData, comp);
13168
- this.initTransform(data, globalData, comp);
13169
- this.initRenderable();
13170
- this.initHierarchy();
13171
- this.initRendererElement();
13172
- this.createContainerElements();
13173
- this.createRenderableComponents();
13174
-
13175
- if (this.data.xt || !globalData.progressiveLoad) {
13176
- this.buildAllItems();
13177
- }
13178
-
13179
- this.hide();
13180
- };
13181
- /* ICompElement.prototype.hide = function(){
13182
- if(!this.hidden){
13183
- this.hideElement();
13184
- var i,len = this.elements.length;
13185
- for( i = 0; i < len; i+=1 ){
13186
- if(this.elements[i]){
13187
- this.elements[i].hide();
13188
- }
13189
- }
13190
- }
13191
- }; */
13192
-
13193
-
13194
- ICompElement.prototype.prepareFrame = function (num) {
13195
- this._mdf = false;
13196
- this.prepareRenderableFrame(num);
13197
- this.prepareProperties(num, this.isInRange);
13198
-
13199
- if (!this.isInRange && !this.data.xt) {
13200
- return;
13201
- }
13202
-
13203
- if (!this.tm._placeholder) {
13204
- var timeRemapped = this.tm.v;
13205
-
13206
- if (timeRemapped === this.data.op) {
13207
- timeRemapped = this.data.op - 1;
13208
- }
13209
-
13210
- this.renderedFrame = timeRemapped;
13211
- } else {
13212
- this.renderedFrame = num / this.data.sr;
13213
- }
13214
-
13215
- var i;
13216
- var len = this.elements.length;
13217
-
13218
- if (!this.completeLayers) {
13219
- this.checkLayers(this.renderedFrame);
13220
- } // This iteration needs to be backwards because of how expressions connect between each other
13221
-
13222
-
13223
- for (i = len - 1; i >= 0; i -= 1) {
13224
- if (this.completeLayers || this.elements[i]) {
13225
- this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);
13226
-
13227
- if (this.elements[i]._mdf) {
13228
- this._mdf = true;
13229
- }
13230
- }
13231
- }
13232
- };
13233
-
13234
- ICompElement.prototype.renderInnerContent = function () {
13235
- var i;
13236
- var len = this.layers.length;
13237
-
13238
- for (i = 0; i < len; i += 1) {
13239
- if (this.completeLayers || this.elements[i]) {
13240
- this.elements[i].renderFrame();
13241
- }
13242
- }
13243
- };
13244
-
13245
- ICompElement.prototype.setElements = function (elems) {
13246
- this.elements = elems;
13247
- };
13248
-
13249
- ICompElement.prototype.getElements = function () {
13250
- return this.elements;
13251
- };
13252
-
13253
- ICompElement.prototype.destroyElements = function () {
13254
- var i;
13255
- var len = this.layers.length;
13256
-
13257
- for (i = 0; i < len; i += 1) {
13258
- if (this.elements[i]) {
13259
- this.elements[i].destroy();
13260
- }
13261
- }
13262
- };
13263
-
13264
- ICompElement.prototype.destroy = function () {
13265
- this.destroyElements();
13266
- this.destroyBaseElement();
13267
- };
13268
-
13269
- function SVGCompElement(data, globalData, comp) {
13270
- this.layers = data.layers;
13271
- this.supports3d = true;
13272
- this.completeLayers = false;
13273
- this.pendingElements = [];
13274
- this.elements = this.layers ? createSizedArray(this.layers.length) : [];
13275
- this.initElement(data, globalData, comp);
13276
- this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {
13277
- _placeholder: true
13278
- };
13279
- }
13280
-
13281
- extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);
13282
-
13283
- SVGCompElement.prototype.createComp = function (data) {
13284
- return new SVGCompElement(data, this.globalData, this);
13285
- };
13286
-
13287
- function SVGRenderer(animationItem, config) {
13288
- this.animationItem = animationItem;
13289
- this.layers = null;
13290
- this.renderedFrame = -1;
13291
- this.svgElement = createNS('svg');
13292
- var ariaLabel = '';
13293
-
13294
- if (config && config.title) {
13295
- var titleElement = createNS('title');
13296
- var titleId = createElementID();
13297
- titleElement.setAttribute('id', titleId);
13298
- titleElement.textContent = config.title;
13299
- this.svgElement.appendChild(titleElement);
13300
- ariaLabel += titleId;
13301
- }
13302
-
13303
- if (config && config.description) {
13304
- var descElement = createNS('desc');
13305
- var descId = createElementID();
13306
- descElement.setAttribute('id', descId);
13307
- descElement.textContent = config.description;
13308
- this.svgElement.appendChild(descElement);
13309
- ariaLabel += ' ' + descId;
13310
- }
13311
-
13312
- if (ariaLabel) {
13313
- this.svgElement.setAttribute('aria-labelledby', ariaLabel);
13314
- }
13315
-
13316
- var defs = createNS('defs');
13317
- this.svgElement.appendChild(defs);
13318
- var maskElement = createNS('g');
13319
- this.svgElement.appendChild(maskElement);
13320
- this.layerElement = maskElement;
13321
- this.renderConfig = {
13322
- preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',
13323
- imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',
13324
- contentVisibility: config && config.contentVisibility || 'visible',
13325
- progressiveLoad: config && config.progressiveLoad || false,
13326
- hideOnTransparent: !(config && config.hideOnTransparent === false),
13327
- viewBoxOnly: config && config.viewBoxOnly || false,
13328
- viewBoxSize: config && config.viewBoxSize || false,
13329
- className: config && config.className || '',
13330
- id: config && config.id || '',
13331
- focusable: config && config.focusable,
13332
- filterSize: {
13333
- width: config && config.filterSize && config.filterSize.width || '100%',
13334
- height: config && config.filterSize && config.filterSize.height || '100%',
13335
- x: config && config.filterSize && config.filterSize.x || '0%',
13336
- y: config && config.filterSize && config.filterSize.y || '0%'
13337
- },
13338
- width: config && config.width,
13339
- height: config && config.height
13340
- };
13341
- this.globalData = {
13342
- _mdf: false,
13343
- frameNum: -1,
13344
- defs: defs,
13345
- renderConfig: this.renderConfig
13346
- };
13347
- this.elements = [];
13348
- this.pendingElements = [];
13349
- this.destroyed = false;
13350
- this.rendererType = 'svg';
13351
- }
13352
-
13353
- extendPrototype([SVGRendererBase], SVGRenderer);
13354
-
13355
- SVGRenderer.prototype.createComp = function (data) {
13356
- return new SVGCompElement(data, this.globalData, this);
13357
- };
13358
-
13359
- function CVContextData() {
13360
- this.saved = [];
13361
- this.cArrPos = 0;
13362
- this.cTr = new Matrix();
13363
- this.cO = 1;
13364
- var i;
13365
- var len = 15;
13366
- this.savedOp = createTypedArray('float32', len);
13367
-
13368
- for (i = 0; i < len; i += 1) {
13369
- this.saved[i] = createTypedArray('float32', 16);
13370
- }
13371
-
13372
- this._length = len;
13373
- }
13374
-
13375
- CVContextData.prototype.duplicate = function () {
13376
- var newLength = this._length * 2;
13377
- var currentSavedOp = this.savedOp;
13378
- this.savedOp = createTypedArray('float32', newLength);
13379
- this.savedOp.set(currentSavedOp);
13380
- var i = 0;
13381
-
13382
- for (i = this._length; i < newLength; i += 1) {
13383
- this.saved[i] = createTypedArray('float32', 16);
13384
- }
13385
-
13386
- this._length = newLength;
13387
- };
13388
-
13389
- CVContextData.prototype.reset = function () {
13390
- this.cArrPos = 0;
13391
- this.cTr.reset();
13392
- this.cO = 1;
13393
- };
13394
-
13395
- function ShapeTransformManager() {
13396
- this.sequences = {};
13397
- this.sequenceList = [];
13398
- this.transform_key_count = 0;
13399
- }
13400
-
13401
- ShapeTransformManager.prototype = {
13402
- addTransformSequence: function addTransformSequence(transforms) {
13403
- var i;
13404
- var len = transforms.length;
13405
- var key = '_';
13406
-
13407
- for (i = 0; i < len; i += 1) {
13408
- key += transforms[i].transform.key + '_';
13409
- }
13410
-
13411
- var sequence = this.sequences[key];
13412
-
13413
- if (!sequence) {
13414
- sequence = {
13415
- transforms: [].concat(transforms),
13416
- finalTransform: new Matrix(),
13417
- _mdf: false
13418
- };
13419
- this.sequences[key] = sequence;
13420
- this.sequenceList.push(sequence);
13421
- }
13422
-
13423
- return sequence;
13424
- },
13425
- processSequence: function processSequence(sequence, isFirstFrame) {
13426
- var i = 0;
13427
- var len = sequence.transforms.length;
13428
- var _mdf = isFirstFrame;
13429
-
13430
- while (i < len && !isFirstFrame) {
13431
- if (sequence.transforms[i].transform.mProps._mdf) {
13432
- _mdf = true;
13433
- break;
13434
- }
13435
-
13436
- i += 1;
13437
- }
13438
-
13439
- if (_mdf) {
13440
- var props;
13441
- sequence.finalTransform.reset();
13442
-
13443
- for (i = len - 1; i >= 0; i -= 1) {
13444
- props = sequence.transforms[i].transform.mProps.v.props;
13445
- sequence.finalTransform.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);
13446
- }
13447
- }
13448
-
13449
- sequence._mdf = _mdf;
13450
- },
13451
- processSequences: function processSequences(isFirstFrame) {
13452
- var i;
13453
- var len = this.sequenceList.length;
13454
-
13455
- for (i = 0; i < len; i += 1) {
13456
- this.processSequence(this.sequenceList[i], isFirstFrame);
13457
- }
13458
- },
13459
- getNewKey: function getNewKey() {
13460
- this.transform_key_count += 1;
13461
- return '_' + this.transform_key_count;
13462
- }
13463
- };
13464
-
13465
- function CVEffects() { }
13466
-
13467
- CVEffects.prototype.renderFrame = function () { };
13468
-
13469
- function CVMaskElement(data, element) {
13470
- this.data = data;
13471
- this.element = element;
13472
- this.masksProperties = this.data.masksProperties || [];
13473
- this.viewData = createSizedArray(this.masksProperties.length);
13474
- var i;
13475
- var len = this.masksProperties.length;
13476
- var hasMasks = false;
13477
-
13478
- for (i = 0; i < len; i += 1) {
13479
- if (this.masksProperties[i].mode !== 'n') {
13480
- hasMasks = true;
13481
- }
13482
-
13483
- this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);
13484
- }
13485
-
13486
- this.hasMasks = hasMasks;
13487
-
13488
- if (hasMasks) {
13489
- this.element.addRenderableComponent(this);
13490
- }
13491
- }
13492
-
13493
- CVMaskElement.prototype.renderFrame = function () {
13494
- if (!this.hasMasks) {
13495
- return;
13496
- }
13497
-
13498
- var transform = this.element.finalTransform.mat;
13499
- var ctx = this.element.canvasContext;
13500
- var i;
13501
- var len = this.masksProperties.length;
13502
- var pt;
13503
- var pts;
13504
- var data;
13505
- ctx.beginPath();
13506
-
13507
- for (i = 0; i < len; i += 1) {
13508
- if (this.masksProperties[i].mode !== 'n') {
13509
- if (this.masksProperties[i].inv) {
13510
- ctx.moveTo(0, 0);
13511
- ctx.lineTo(this.element.globalData.compSize.w, 0);
13512
- ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);
13513
- ctx.lineTo(0, this.element.globalData.compSize.h);
13514
- ctx.lineTo(0, 0);
13515
- }
13516
-
13517
- data = this.viewData[i].v;
13518
- pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);
13519
- ctx.moveTo(pt[0], pt[1]);
13520
- var j;
13521
- var jLen = data._length;
13522
-
13523
- for (j = 1; j < jLen; j += 1) {
13524
- pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);
13525
- ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);
13526
- }
13527
-
13528
- pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);
13529
- ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);
13530
- }
13531
- }
13532
-
13533
- this.element.globalData.renderer.save(true);
13534
- ctx.clip();
13535
- };
13536
-
13537
- CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;
13538
-
13539
- CVMaskElement.prototype.destroy = function () {
13540
- this.element = null;
13541
- };
13542
-
13543
- function CVBaseElement() { }
13544
-
13545
- CVBaseElement.prototype = {
13546
- createElements: function createElements() { },
13547
- initRendererElement: function initRendererElement() { },
13548
- createContainerElements: function createContainerElements() {
13549
- this.canvasContext = this.globalData.canvasContext;
13550
- this.renderableEffectsManager = new CVEffects(this);
13551
- },
13552
- createContent: function createContent() { },
13553
- setBlendMode: function setBlendMode() {
13554
- var globalData = this.globalData;
13555
-
13556
- if (globalData.blendMode !== this.data.bm) {
13557
- globalData.blendMode = this.data.bm;
13558
- var blendModeValue = getBlendMode(this.data.bm);
13559
- globalData.canvasContext.globalCompositeOperation = blendModeValue;
13560
- }
13561
- },
13562
- createRenderableComponents: function createRenderableComponents() {
13563
- this.maskManager = new CVMaskElement(this.data, this);
13564
- },
13565
- hideElement: function hideElement() {
13566
- if (!this.hidden && (!this.isInRange || this.isTransparent)) {
13567
- this.hidden = true;
13568
- }
13569
- },
13570
- showElement: function showElement() {
13571
- if (this.isInRange && !this.isTransparent) {
13572
- this.hidden = false;
13573
- this._isFirstFrame = true;
13574
- this.maskManager._isFirstFrame = true;
13575
- }
13576
- },
13577
- renderFrame: function renderFrame() {
13578
- if (this.hidden || this.data.hd) {
13579
- return;
13580
- }
13581
-
13582
- this.renderTransform();
13583
- this.renderRenderable();
13584
- this.setBlendMode();
13585
- var forceRealStack = this.data.ty === 0;
13586
- this.globalData.renderer.save(forceRealStack);
13587
- this.globalData.renderer.ctxTransform(this.finalTransform.mat.props);
13588
- this.globalData.renderer.ctxOpacity(this.finalTransform.mProp.o.v);
13589
- this.renderInnerContent();
13590
- this.globalData.renderer.restore(forceRealStack);
13591
-
13592
- if (this.maskManager.hasMasks) {
13593
- this.globalData.renderer.restore(true);
13594
- }
13595
-
13596
- if (this._isFirstFrame) {
13597
- this._isFirstFrame = false;
13598
- }
13599
- },
13600
- destroy: function destroy() {
13601
- this.canvasContext = null;
13602
- this.data = null;
13603
- this.globalData = null;
13604
- this.maskManager.destroy();
13605
- },
13606
- mHelper: new Matrix()
13607
- };
13608
- CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;
13609
- CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;
13610
-
13611
- function CVShapeData(element, data, styles, transformsManager) {
13612
- this.styledShapes = [];
13613
- this.tr = [0, 0, 0, 0, 0, 0];
13614
- var ty = 4;
13615
-
13616
- if (data.ty === 'rc') {
13617
- ty = 5;
13618
- } else if (data.ty === 'el') {
13619
- ty = 6;
13620
- } else if (data.ty === 'sr') {
13621
- ty = 7;
13622
- }
13623
-
13624
- this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);
13625
- var i;
13626
- var len = styles.length;
13627
- var styledShape;
13628
-
13629
- for (i = 0; i < len; i += 1) {
13630
- if (!styles[i].closed) {
13631
- styledShape = {
13632
- transforms: transformsManager.addTransformSequence(styles[i].transforms),
13633
- trNodes: []
13634
- };
13635
- this.styledShapes.push(styledShape);
13636
- styles[i].elements.push(styledShape);
13637
- }
13638
- }
13639
- }
13640
-
13641
- CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;
13642
-
13643
- function CVShapeElement(data, globalData, comp) {
13644
- this.shapes = [];
13645
- this.shapesData = data.shapes;
13646
- this.stylesList = [];
13647
- this.itemsData = [];
13648
- this.prevViewData = [];
13649
- this.shapeModifiers = [];
13650
- this.processedElements = [];
13651
- this.transformsManager = new ShapeTransformManager();
13652
- this.initElement(data, globalData, comp);
13653
- }
13654
-
13655
- extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);
13656
- CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;
13657
- CVShapeElement.prototype.transformHelper = {
13658
- opacity: 1,
13659
- _opMdf: false
13660
- };
13661
- CVShapeElement.prototype.dashResetter = [];
13662
-
13663
- CVShapeElement.prototype.createContent = function () {
13664
- this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);
13665
- };
13666
-
13667
- CVShapeElement.prototype.createStyleElement = function (data, transforms) {
13668
- var styleElem = {
13669
- data: data,
13670
- type: data.ty,
13671
- preTransforms: this.transformsManager.addTransformSequence(transforms),
13672
- transforms: [],
13673
- elements: [],
13674
- closed: data.hd === true
13675
- };
13676
- var elementData = {};
13677
-
13678
- if (data.ty === 'fl' || data.ty === 'st') {
13679
- elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);
13680
-
13681
- if (!elementData.c.k) {
13682
- styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';
13683
- }
13684
- } else if (data.ty === 'gf' || data.ty === 'gs') {
13685
- elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);
13686
- elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);
13687
- elementData.h = PropertyFactory.getProp(this, data.h || {
13688
- k: 0
13689
- }, 0, 0.01, this);
13690
- elementData.a = PropertyFactory.getProp(this, data.a || {
13691
- k: 0
13692
- }, 0, degToRads, this);
13693
- elementData.g = new GradientProperty(this, data.g, this);
13694
- }
13695
-
13696
- elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);
13697
-
13698
- if (data.ty === 'st' || data.ty === 'gs') {
13699
- styleElem.lc = lineCapEnum[data.lc || 2];
13700
- styleElem.lj = lineJoinEnum[data.lj || 2];
13701
-
13702
- if (data.lj == 1) {
13703
- // eslint-disable-line eqeqeq
13704
- styleElem.ml = data.ml;
13705
- }
13706
-
13707
- elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);
13708
-
13709
- if (!elementData.w.k) {
13710
- styleElem.wi = elementData.w.v;
13711
- }
13712
-
13713
- if (data.d) {
13714
- var d = new DashProperty(this, data.d, 'canvas', this);
13715
- elementData.d = d;
13716
-
13717
- if (!elementData.d.k) {
13718
- styleElem.da = elementData.d.dashArray;
13719
- styleElem["do"] = elementData.d.dashoffset[0];
13720
- }
13721
- }
13722
- } else {
13723
- styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';
13724
- }
13725
-
13726
- this.stylesList.push(styleElem);
13727
- elementData.style = styleElem;
13728
- return elementData;
13729
- };
13730
-
13731
- CVShapeElement.prototype.createGroupElement = function () {
13732
- var elementData = {
13733
- it: [],
13734
- prevViewData: []
13735
- };
13736
- return elementData;
13737
- };
13738
-
13739
- CVShapeElement.prototype.createTransformElement = function (data) {
13740
- var elementData = {
13741
- transform: {
13742
- opacity: 1,
13743
- _opMdf: false,
13744
- key: this.transformsManager.getNewKey(),
13745
- op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),
13746
- mProps: TransformPropertyFactory.getTransformProperty(this, data, this)
13747
- }
13748
- };
13749
- return elementData;
13750
- };
13751
-
13752
- CVShapeElement.prototype.createShapeElement = function (data) {
13753
- var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);
13754
- this.shapes.push(elementData);
13755
- this.addShapeToModifiers(elementData);
13756
- return elementData;
13757
- };
13758
-
13759
- CVShapeElement.prototype.reloadShapes = function () {
13760
- this._isFirstFrame = true;
13761
- var i;
13762
- var len = this.itemsData.length;
13763
-
13764
- for (i = 0; i < len; i += 1) {
13765
- this.prevViewData[i] = this.itemsData[i];
13766
- }
13767
-
13768
- this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);
13769
- len = this.dynamicProperties.length;
13770
-
13771
- for (i = 0; i < len; i += 1) {
13772
- this.dynamicProperties[i].getValue();
13773
- }
13774
-
13775
- this.renderModifiers();
13776
- this.transformsManager.processSequences(this._isFirstFrame);
13777
- };
13778
-
13779
- CVShapeElement.prototype.addTransformToStyleList = function (transform) {
13780
- var i;
13781
- var len = this.stylesList.length;
13782
-
13783
- for (i = 0; i < len; i += 1) {
13784
- if (!this.stylesList[i].closed) {
13785
- this.stylesList[i].transforms.push(transform);
13786
- }
13787
- }
13788
- };
13789
-
13790
- CVShapeElement.prototype.removeTransformFromStyleList = function () {
13791
- var i;
13792
- var len = this.stylesList.length;
13793
-
13794
- for (i = 0; i < len; i += 1) {
13795
- if (!this.stylesList[i].closed) {
13796
- this.stylesList[i].transforms.pop();
13797
- }
13798
- }
13799
- };
13800
-
13801
- CVShapeElement.prototype.closeStyles = function (styles) {
13802
- var i;
13803
- var len = styles.length;
13804
-
13805
- for (i = 0; i < len; i += 1) {
13806
- styles[i].closed = true;
13807
- }
13808
- };
13809
-
13810
- CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {
13811
- var i;
13812
- var len = arr.length - 1;
13813
- var j;
13814
- var jLen;
13815
- var ownStyles = [];
13816
- var ownModifiers = [];
13817
- var processedPos;
13818
- var modifier;
13819
- var currentTransform;
13820
- var ownTransforms = [].concat(transforms);
13821
-
13822
- for (i = len; i >= 0; i -= 1) {
13823
- processedPos = this.searchProcessedElement(arr[i]);
13824
-
13825
- if (!processedPos) {
13826
- arr[i]._shouldRender = shouldRender;
13827
- } else {
13828
- itemsData[i] = prevViewData[processedPos - 1];
13829
- }
13830
-
13831
- if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {
13832
- if (!processedPos) {
13833
- itemsData[i] = this.createStyleElement(arr[i], ownTransforms);
13834
- } else {
13835
- itemsData[i].style.closed = false;
13836
- }
13837
-
13838
- ownStyles.push(itemsData[i].style);
13839
- } else if (arr[i].ty === 'gr') {
13840
- if (!processedPos) {
13841
- itemsData[i] = this.createGroupElement(arr[i]);
13842
- } else {
13843
- jLen = itemsData[i].it.length;
13844
-
13845
- for (j = 0; j < jLen; j += 1) {
13846
- itemsData[i].prevViewData[j] = itemsData[i].it[j];
13847
- }
13848
- }
13849
-
13850
- this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);
13851
- } else if (arr[i].ty === 'tr') {
13852
- if (!processedPos) {
13853
- currentTransform = this.createTransformElement(arr[i]);
13854
- itemsData[i] = currentTransform;
13855
- }
13856
-
13857
- ownTransforms.push(itemsData[i]);
13858
- this.addTransformToStyleList(itemsData[i]);
13859
- } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {
13860
- if (!processedPos) {
13861
- itemsData[i] = this.createShapeElement(arr[i]);
13862
- }
13863
- } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb') {
13864
- if (!processedPos) {
13865
- modifier = ShapeModifiers.getModifier(arr[i].ty);
13866
- modifier.init(this, arr[i]);
13867
- itemsData[i] = modifier;
13868
- this.shapeModifiers.push(modifier);
13869
- } else {
13870
- modifier = itemsData[i];
13871
- modifier.closed = false;
13872
- }
13873
-
13874
- ownModifiers.push(modifier);
13875
- } else if (arr[i].ty === 'rp') {
13876
- if (!processedPos) {
13877
- modifier = ShapeModifiers.getModifier(arr[i].ty);
13878
- itemsData[i] = modifier;
13879
- modifier.init(this, arr, i, itemsData);
13880
- this.shapeModifiers.push(modifier);
13881
- shouldRender = false;
13882
- } else {
13883
- modifier = itemsData[i];
13884
- modifier.closed = true;
13885
- }
13886
-
13887
- ownModifiers.push(modifier);
13888
- }
13889
-
13890
- this.addProcessedElement(arr[i], i + 1);
13891
- }
13892
-
13893
- this.removeTransformFromStyleList();
13894
- this.closeStyles(ownStyles);
13895
- len = ownModifiers.length;
13896
-
13897
- for (i = 0; i < len; i += 1) {
13898
- ownModifiers[i].closed = true;
13899
- }
13900
- };
13901
-
13902
- CVShapeElement.prototype.renderInnerContent = function () {
13903
- this.transformHelper.opacity = 1;
13904
- this.transformHelper._opMdf = false;
13905
- this.renderModifiers();
13906
- this.transformsManager.processSequences(this._isFirstFrame);
13907
- this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);
13908
- };
13909
-
13910
- CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {
13911
- if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {
13912
- groupTransform.opacity = parentTransform.opacity;
13913
- groupTransform.opacity *= groupTransform.op.v;
13914
- groupTransform._opMdf = true;
13915
- }
13916
- };
13917
-
13918
- CVShapeElement.prototype.drawLayer = function () {
13919
- var i;
13920
- var len = this.stylesList.length;
13921
- var j;
13922
- var jLen;
13923
- var k;
13924
- var kLen;
13925
- var elems;
13926
- var nodes;
13927
- var renderer = this.globalData.renderer;
13928
- var ctx = this.globalData.canvasContext;
13929
- var type;
13930
- var currentStyle;
13931
-
13932
- for (i = 0; i < len; i += 1) {
13933
- currentStyle = this.stylesList[i];
13934
- type = currentStyle.type; // Skipping style when
13935
- // Stroke width equals 0
13936
- // style should not be rendered (extra unused repeaters)
13937
- // current opacity equals 0
13938
- // global opacity equals 0
13939
-
13940
- if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {
13941
- renderer.save();
13942
- elems = currentStyle.elements;
13943
-
13944
- if (type === 'st' || type === 'gs') {
13945
- ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;
13946
- ctx.lineWidth = currentStyle.wi;
13947
- ctx.lineCap = currentStyle.lc;
13948
- ctx.lineJoin = currentStyle.lj;
13949
- ctx.miterLimit = currentStyle.ml || 0;
13950
- } else {
13951
- ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;
13952
- }
13953
-
13954
- renderer.ctxOpacity(currentStyle.coOp);
13955
-
13956
- if (type !== 'st' && type !== 'gs') {
13957
- ctx.beginPath();
13958
- }
13959
-
13960
- renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);
13961
- jLen = elems.length;
13962
-
13963
- for (j = 0; j < jLen; j += 1) {
13964
- if (type === 'st' || type === 'gs') {
13965
- ctx.beginPath();
13966
-
13967
- if (currentStyle.da) {
13968
- ctx.setLineDash(currentStyle.da);
13969
- ctx.lineDashOffset = currentStyle["do"];
13970
- }
13971
- }
13972
-
13973
- nodes = elems[j].trNodes;
13974
- kLen = nodes.length;
13975
-
13976
- for (k = 0; k < kLen; k += 1) {
13977
- if (nodes[k].t === 'm') {
13978
- ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);
13979
- } else if (nodes[k].t === 'c') {
13980
- ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);
13981
- } else {
13982
- ctx.closePath();
13983
- }
13984
- }
13985
-
13986
- if (type === 'st' || type === 'gs') {
13987
- ctx.stroke();
13988
-
13989
- if (currentStyle.da) {
13990
- ctx.setLineDash(this.dashResetter);
13991
- }
13992
- }
13993
- }
13994
-
13995
- if (type !== 'st' && type !== 'gs') {
13996
- ctx.fill(currentStyle.r);
13997
- }
13998
-
13999
- renderer.restore();
14000
- }
14001
- }
14002
- };
14003
-
14004
- CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {
14005
- var i;
14006
- var len = items.length - 1;
14007
- var groupTransform;
14008
- groupTransform = parentTransform;
14009
-
14010
- for (i = len; i >= 0; i -= 1) {
14011
- if (items[i].ty === 'tr') {
14012
- groupTransform = data[i].transform;
14013
- this.renderShapeTransform(parentTransform, groupTransform);
14014
- } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {
14015
- this.renderPath(items[i], data[i]);
14016
- } else if (items[i].ty === 'fl') {
14017
- this.renderFill(items[i], data[i], groupTransform);
14018
- } else if (items[i].ty === 'st') {
14019
- this.renderStroke(items[i], data[i], groupTransform);
14020
- } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {
14021
- this.renderGradientFill(items[i], data[i], groupTransform);
14022
- } else if (items[i].ty === 'gr') {
14023
- this.renderShape(groupTransform, items[i].it, data[i].it);
14024
- } else if (items[i].ty === 'tm') {//
14025
- }
14026
- }
14027
-
14028
- if (isMain) {
14029
- this.drawLayer();
14030
- }
14031
- };
14032
-
14033
- CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {
14034
- if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {
14035
- var shapeNodes = styledShape.trNodes;
14036
- var paths = shape.paths;
14037
- var i;
14038
- var len;
14039
- var j;
14040
- var jLen = paths._length;
14041
- shapeNodes.length = 0;
14042
- var groupTransformMat = styledShape.transforms.finalTransform;
14043
-
14044
- for (j = 0; j < jLen; j += 1) {
14045
- var pathNodes = paths.shapes[j];
14046
-
14047
- if (pathNodes && pathNodes.v) {
14048
- len = pathNodes._length;
14049
-
14050
- for (i = 1; i < len; i += 1) {
14051
- if (i === 1) {
14052
- shapeNodes.push({
14053
- t: 'm',
14054
- p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)
14055
- });
14056
- }
14057
-
14058
- shapeNodes.push({
14059
- t: 'c',
14060
- pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])
14061
- });
14062
- }
14063
-
14064
- if (len === 1) {
14065
- shapeNodes.push({
14066
- t: 'm',
14067
- p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)
14068
- });
14069
- }
14070
-
14071
- if (pathNodes.c && len) {
14072
- shapeNodes.push({
14073
- t: 'c',
14074
- pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])
14075
- });
14076
- shapeNodes.push({
14077
- t: 'z'
14078
- });
14079
- }
14080
- }
14081
- }
14082
-
14083
- styledShape.trNodes = shapeNodes;
14084
- }
14085
- };
14086
-
14087
- CVShapeElement.prototype.renderPath = function (pathData, itemData) {
14088
- if (pathData.hd !== true && pathData._shouldRender) {
14089
- var i;
14090
- var len = itemData.styledShapes.length;
14091
-
14092
- for (i = 0; i < len; i += 1) {
14093
- this.renderStyledShape(itemData.style