Shortcodes and extra features for Phlox theme - Version 2.8.0

Version Description

Download this release

Release Info

Developer averta
Plugin Icon 128x128 Shortcodes and extra features for Phlox theme
Version 2.8.0
Comparing to
See all releases

Code changes from version 2.7.14 to 2.8.0

Files changed (37) hide show
  1. README.txt +9 -4
  2. admin/assets/images/welcome/dzs-zoomsounds-plugin.png +0 -0
  3. admin/assets/js/plugins.js +635 -634
  4. admin/assets/js/plugins.min.js +1 -1
  5. admin/assets/js/solo/global.js +1 -1
  6. admin/assets/js/solo/visualselect.js +20 -1
  7. admin/includes/index.php +0 -4
  8. auxin-elements.php +2 -2
  9. includes/classes/class-auxels-archive-menu-links.php +5 -5
  10. includes/classes/class-auxin-walker-nav-menu-back.php +38 -38
  11. includes/classes/class-auxin-welcome.php +7 -3
  12. includes/compatibility/wp-rocket/wp-rocket.php +18 -0
  13. {admin/includes → includes}/compatibility/wpml/integration-classes/accordion-items.php +0 -0
  14. {admin/includes → includes}/compatibility/wpml/integration-classes/flexible-list.php +0 -0
  15. {admin/includes → includes}/compatibility/wpml/integration-classes/tabs.php +0 -0
  16. {admin/includes → includes}/compatibility/wpml/translate.php +1 -10
  17. includes/define.php +1 -1
  18. includes/elementor/controls/icon-select.php +2 -2
  19. includes/elementor/modules/dynamic-tags/login-url.php +74 -0
  20. includes/elementor/modules/settings/base/manager.php +99 -0
  21. includes/elementor/modules/settings/general/manager.php +0 -2
  22. includes/elementor/modules/templates-types-manager.php +6 -0
  23. includes/elementor/widgets/carousel-navigation.php +1 -1
  24. includes/elements/before-after.php +2 -2
  25. includes/elements/image.php +3 -3
  26. includes/elements/latest-items.php +3 -3
  27. includes/elements/text.php +5 -5
  28. includes/general-functions.php +6 -2
  29. includes/general-hooks.php +16 -1
  30. includes/general-shortcodes.php +1 -1
  31. includes/index.php +7 -0
  32. languages/auxin-elements-fa_IR.po +307 -289
  33. languages/auxin-elements.pot +288 -273
  34. package-lock.json +9648 -18
  35. public/assets/js/plugins.js +1 -1
  36. public/assets/js/scripts.js +1 -0
  37. public/includes/frontend-ajax.php +17 -4
README.txt CHANGED
@@ -6,8 +6,8 @@ License URI: http://www.gnu.org/licenses/gpl.html
6
  Tags: phlox, gallery, elementor, siteorigin, auxin, averta, auxin-elements, framework, widget, fullwidth, masonry, timeline, parallax
7
  Requires PHP: 5.4
8
  Requires at least: 4.6
9
- Tested up to: 5.7.0
10
- Stable tag: 2.7.14
11
  License: GPLv3
12
  License URI: http://www.gnu.org/licenses/gpl.html
13
 
@@ -155,6 +155,11 @@ Bugs can be reported in our [support forums](https://docs.phlox.pro).
155
 
156
  == Changelog ==
157
 
 
 
 
 
 
158
  = Version 2.7.10 / (15.03.2021) =
159
  - [Fix]: An issue with importing icons fixed in demo importer.
160
  - [Improvement]: Improvements for shopping cart applied.
@@ -444,5 +449,5 @@ Bugs can be reported in our [support forums](https://docs.phlox.pro).
444
 
445
  == Upgrade Notice ==
446
 
447
- = 2.6.14 =
448
- - Minor bugs fixed.
6
  Tags: phlox, gallery, elementor, siteorigin, auxin, averta, auxin-elements, framework, widget, fullwidth, masonry, timeline, parallax
7
  Requires PHP: 5.4
8
  Requires at least: 4.6
9
+ Tested up to: 5.7.2
10
+ Stable tag: 2.8.0
11
  License: GPLv3
12
  License URI: http://www.gnu.org/licenses/gpl.html
13
 
155
 
156
  == Changelog ==
157
 
158
+ = Version 2.8.0 / (28.06.2021) =
159
+ - [New]: Integrating "Ti Wishlist plugin" for better wishlist features in shops.
160
+ - [New]: Integrating Elementor global colors in customizer for faster preview and customization experience.
161
+ - [New]: Adding dynamic tag for URL controller for linking to "Login" and "Singup" pages
162
+
163
  = Version 2.7.10 / (15.03.2021) =
164
  - [Fix]: An issue with importing icons fixed in demo importer.
165
  - [Improvement]: Improvements for shopping cart applied.
449
 
450
  == Upgrade Notice ==
451
 
452
+ = 2.8.0 =
453
+ - [New]: Integrating "Ti Wishlist plugin" for better wishlist features in shops.
admin/assets/images/welcome/dzs-zoomsounds-plugin.png ADDED
Binary file
admin/assets/js/plugins.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! Phlox Core Plugin - v2.7.14 (2021-05)
2
  * All required javascript plugins for admin
3
  * http://phlox.pro/
4
  * Place any jQuery/helper plugins in here, instead of separate, slower script files!
@@ -359,7 +359,7 @@ if( typeof Object.create !== 'function' ){ Object.create = function (obj){ funct
359
  */
360
  chainCallbacks: function(chain) {
361
  for (var name in chain) {
362
- this[name] = $.proxy(chain[name], this, $.proxy(this[name], this));
363
  }
364
  }
365
  };
@@ -643,632 +643,6 @@ if( typeof Object.create !== 'function' ){ Object.create = function (obj){ funct
643
  }(jQuery));
644
 
645
 
646
- /*!
647
- * ================== admin/assets/js/libs/jquery.blockUI.js ===================
648
- **/
649
-
650
- /*!
651
- * jQuery blockUI plugin
652
- * Version 2.70.0-2014.11.23
653
- * Requires jQuery v1.7 or later
654
- *
655
- * Examples at: http://malsup.com/jquery/block/
656
- * Copyright (c) 2007-2013 M. Alsup
657
- * Dual licensed under the MIT and GPL licenses:
658
- * http://www.opensource.org/licenses/mit-license.php
659
- * http://www.gnu.org/licenses/gpl.html
660
- *
661
- * Thanks to Amir-Hossein Sobhi for some excellent contributions!
662
- */
663
-
664
- ;(function() {
665
- /*jshint eqeqeq:false curly:false latedef:false */
666
- "use strict";
667
-
668
- function setup($) {
669
- $.fn._fadeIn = $.fn.fadeIn;
670
-
671
- var noOp = $.noop || function() {};
672
-
673
- // this bit is to ensure we don't call setExpression when we shouldn't (with extra muscle to handle
674
- // confusing userAgent strings on Vista)
675
- var msie = /MSIE/.test(navigator.userAgent);
676
- var ie6 = /MSIE 6.0/.test(navigator.userAgent) && ! /MSIE 8.0/.test(navigator.userAgent);
677
- var mode = document.documentMode || 0;
678
- var setExpr = $.isFunction( document.createElement('div').style.setExpression );
679
-
680
- // global $ methods for blocking/unblocking the entire page
681
- $.blockUI = function(opts) { install(window, opts); };
682
- $.unblockUI = function(opts) { remove(window, opts); };
683
-
684
- // convenience method for quick growl-like notifications (http://www.google.com/search?q=growl)
685
- $.growlUI = function(title, message, timeout, onClose) {
686
- var $m = $('<div class="growlUI"></div>');
687
- if (title) $m.append('<h1>'+title+'</h1>');
688
- if (message) $m.append('<h2>'+message+'</h2>');
689
- if (timeout === undefined) timeout = 3000;
690
-
691
- // Added by konapun: Set timeout to 30 seconds if this growl is moused over, like normal toast notifications
692
- var callBlock = function(opts) {
693
- opts = opts || {};
694
-
695
- $.blockUI({
696
- message: $m,
697
- fadeIn : typeof opts.fadeIn !== 'undefined' ? opts.fadeIn : 700,
698
- fadeOut: typeof opts.fadeOut !== 'undefined' ? opts.fadeOut : 1000,
699
- timeout: typeof opts.timeout !== 'undefined' ? opts.timeout : timeout,
700
- centerY: false,
701
- showOverlay: false,
702
- onUnblock: onClose,
703
- css: $.blockUI.defaults.growlCSS
704
- });
705
- };
706
-
707
- callBlock();
708
- var nonmousedOpacity = $m.css('opacity');
709
- $m.mouseover(function() {
710
- callBlock({
711
- fadeIn: 0,
712
- timeout: 30000
713
- });
714
-
715
- var displayBlock = $('.blockMsg');
716
- displayBlock.stop(); // cancel fadeout if it has started
717
- displayBlock.fadeTo(300, 1); // make it easier to read the message by removing transparency
718
- }).mouseout(function() {
719
- $('.blockMsg').fadeOut(1000);
720
- });
721
- // End konapun additions
722
- };
723
-
724
- // plugin method for blocking element content
725
- $.fn.block = function(opts) {
726
- if ( this[0] === window ) {
727
- $.blockUI( opts );
728
- return this;
729
- }
730
- var fullOpts = $.extend({}, $.blockUI.defaults, opts || {});
731
- this.each(function() {
732
- var $el = $(this);
733
- if (fullOpts.ignoreIfBlocked && $el.data('blockUI.isBlocked'))
734
- return;
735
- $el.unblock({ fadeOut: 0 });
736
- });
737
-
738
- return this.each(function() {
739
- if ($.css(this,'position') == 'static') {
740
- this.style.position = 'relative';
741
- $(this).data('blockUI.static', true);
742
- }
743
- this.style.zoom = 1; // force 'hasLayout' in ie
744
- install(this, opts);
745
- });
746
- };
747
-
748
- // plugin method for unblocking element content
749
- $.fn.unblock = function(opts) {
750
- if ( this[0] === window ) {
751
- $.unblockUI( opts );
752
- return this;
753
- }
754
- return this.each(function() {
755
- remove(this, opts);
756
- });
757
- };
758
-
759
- $.blockUI.version = 2.70; // 2nd generation blocking at no extra cost!
760
-
761
- // override these in your code to change the default behavior and style
762
- $.blockUI.defaults = {
763
- // message displayed when blocking (use null for no message)
764
- message: '<h1>Please wait...</h1>',
765
-
766
- title: null, // title string; only used when theme == true
767
- draggable: true, // only used when theme == true (requires jquery-ui.js to be loaded)
768
-
769
- theme: false, // set to true to use with jQuery UI themes
770
-
771
- // styles for the message when blocking; if you wish to disable
772
- // these and use an external stylesheet then do this in your code:
773
- // $.blockUI.defaults.css = {};
774
- css: {
775
- padding: 0,
776
- margin: 0,
777
- width: '30%',
778
- top: '40%',
779
- left: '35%',
780
- textAlign: 'center',
781
- color: '#000',
782
- border: '3px solid #aaa',
783
- backgroundColor:'#fff',
784
- cursor: 'wait'
785
- },
786
-
787
- // minimal style set used when themes are used
788
- themedCSS: {
789
- width: '30%',
790
- top: '40%',
791
- left: '35%'
792
- },
793
-
794
- // styles for the overlay
795
- overlayCSS: {
796
- backgroundColor: '#000',
797
- opacity: 0.6,
798
- cursor: 'wait'
799
- },
800
-
801
- // style to replace wait cursor before unblocking to correct issue
802
- // of lingering wait cursor
803
- cursorReset: 'default',
804
-
805
- // styles applied when using $.growlUI
806
- growlCSS: {
807
- width: '350px',
808
- top: '10px',
809
- left: '',
810
- right: '10px',
811
- border: 'none',
812
- padding: '5px',
813
- opacity: 0.6,
814
- cursor: 'default',
815
- color: '#fff',
816
- backgroundColor: '#000',
817
- '-webkit-border-radius':'10px',
818
- '-moz-border-radius': '10px',
819
- 'border-radius': '10px'
820
- },
821
-
822
- // IE issues: 'about:blank' fails on HTTPS and javascript:false is s-l-o-w
823
- // (hat tip to Jorge H. N. de Vasconcelos)
824
- /*jshint scripturl:true */
825
- iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank',
826
-
827
- // force usage of iframe in non-IE browsers (handy for blocking applets)
828
- forceIframe: false,
829
-
830
- // z-index for the blocking overlay
831
- baseZ: 1000,
832
-
833
- // set these to true to have the message automatically centered
834
- centerX: true, // <-- only effects element blocking (page block controlled via css above)
835
- centerY: true,
836
-
837
- // allow body element to be stetched in ie6; this makes blocking look better
838
- // on "short" pages. disable if you wish to prevent changes to the body height
839
- allowBodyStretch: true,
840
-
841
- // enable if you want key and mouse events to be disabled for content that is blocked
842
- bindEvents: true,
843
-
844
- // be default blockUI will supress tab navigation from leaving blocking content
845
- // (if bindEvents is true)
846
- constrainTabKey: true,
847
-
848
- // fadeIn time in millis; set to 0 to disable fadeIn on block
849
- fadeIn: 200,
850
-
851
- // fadeOut time in millis; set to 0 to disable fadeOut on unblock
852
- fadeOut: 400,
853
-
854
- // time in millis to wait before auto-unblocking; set to 0 to disable auto-unblock
855
- timeout: 0,
856
-
857
- // disable if you don't want to show the overlay
858
- showOverlay: true,
859
-
860
- // if true, focus will be placed in the first available input field when
861
- // page blocking
862
- focusInput: true,
863
-
864
- // elements that can receive focus
865
- focusableElements: ':input:enabled:visible',
866
-
867
- // suppresses the use of overlay styles on FF/Linux (due to performance issues with opacity)
868
- // no longer needed in 2012
869
- // applyPlatformOpacityRules: true,
870
-
871
- // callback method invoked when fadeIn has completed and blocking message is visible
872
- onBlock: null,
873
-
874
- // callback method invoked when unblocking has completed; the callback is
875
- // passed the element that has been unblocked (which is the window object for page
876
- // blocks) and the options that were passed to the unblock call:
877
- // onUnblock(element, options)
878
- onUnblock: null,
879
-
880
- // callback method invoked when the overlay area is clicked.
881
- // setting this will turn the cursor to a pointer, otherwise cursor defined in overlayCss will be used.
882
- onOverlayClick: null,
883
-
884
- // don't ask; if you really must know: http://groups.google.com/group/jquery-en/browse_thread/thread/36640a8730503595/2f6a79a77a78e493#2f6a79a77a78e493
885
- quirksmodeOffsetHack: 4,
886
-
887
- // class name of the message block
888
- blockMsgClass: 'blockMsg',
889
-
890
- // if it is already blocked, then ignore it (don't unblock and reblock)
891
- ignoreIfBlocked: false
892
- };
893
-
894
- // private data and functions follow...
895
-
896
- var pageBlock = null;
897
- var pageBlockEls = [];
898
-
899
- function install(el, opts) {
900
- var css, themedCSS;
901
- var full = (el == window);
902
- var msg = (opts && opts.message !== undefined ? opts.message : undefined);
903
- opts = $.extend({}, $.blockUI.defaults, opts || {});
904
-
905
- if (opts.ignoreIfBlocked && $(el).data('blockUI.isBlocked'))
906
- return;
907
-
908
- opts.overlayCSS = $.extend({}, $.blockUI.defaults.overlayCSS, opts.overlayCSS || {});
909
- css = $.extend({}, $.blockUI.defaults.css, opts.css || {});
910
- if (opts.onOverlayClick)
911
- opts.overlayCSS.cursor = 'pointer';
912
-
913
- themedCSS = $.extend({}, $.blockUI.defaults.themedCSS, opts.themedCSS || {});
914
- msg = msg === undefined ? opts.message : msg;
915
-
916
- // remove the current block (if there is one)
917
- if (full && pageBlock)
918
- remove(window, {fadeOut:0});
919
-
920
- // if an existing element is being used as the blocking content then we capture
921
- // its current place in the DOM (and current display style) so we can restore
922
- // it when we unblock
923
- if (msg && typeof msg != 'string' && (msg.parentNode || msg.jquery)) {
924
- var node = msg.jquery ? msg[0] : msg;
925
- var data = {};
926
- $(el).data('blockUI.history', data);
927
- data.el = node;
928
- data.parent = node.parentNode;
929
- data.display = node.style.display;
930
- data.position = node.style.position;
931
- if (data.parent)
932
- data.parent.removeChild(node);
933
- }
934
-
935
- $(el).data('blockUI.onUnblock', opts.onUnblock);
936
- var z = opts.baseZ;
937
-
938
- // blockUI uses 3 layers for blocking, for simplicity they are all used on every platform;
939
- // layer1 is the iframe layer which is used to supress bleed through of underlying content
940
- // layer2 is the overlay layer which has opacity and a wait cursor (by default)
941
- // layer3 is the message content that is displayed while blocking
942
- var lyr1, lyr2, lyr3, s;
943
- if (msie || opts.forceIframe)
944
- lyr1 = $('<iframe class="blockUI" style="z-index:'+ (z++) +';display:none;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="'+opts.iframeSrc+'"></iframe>');
945
- else
946
- lyr1 = $('<div class="blockUI" style="display:none"></div>');
947
-
948
- if (opts.theme)
949
- lyr2 = $('<div class="blockUI blockOverlay ui-widget-overlay" style="z-index:'+ (z++) +';display:none"></div>');
950
- else
951
- lyr2 = $('<div class="blockUI blockOverlay" style="z-index:'+ (z++) +';display:none;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>');
952
-
953
- if (opts.theme && full) {
954
- s = '<div class="blockUI ' + opts.blockMsgClass + ' blockPage ui-dialog ui-widget ui-corner-all" style="z-index:'+(z+10)+';display:none;position:fixed">';
955
- if ( opts.title ) {
956
- s += '<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(opts.title || '&nbsp;')+'</div>';
957
- }
958
- s += '<div class="ui-widget-content ui-dialog-content"></div>';
959
- s += '</div>';
960
- }
961
- else if (opts.theme) {
962
- s = '<div class="blockUI ' + opts.blockMsgClass + ' blockElement ui-dialog ui-widget ui-corner-all" style="z-index:'+(z+10)+';display:none;position:absolute">';
963
- if ( opts.title ) {
964
- s += '<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(opts.title || '&nbsp;')+'</div>';
965
- }
966
- s += '<div class="ui-widget-content ui-dialog-content"></div>';
967
- s += '</div>';
968
- }
969
- else if (full) {
970
- s = '<div class="blockUI ' + opts.blockMsgClass + ' blockPage" style="z-index:'+(z+10)+';display:none;position:fixed"></div>';
971
- }
972
- else {
973
- s = '<div class="blockUI ' + opts.blockMsgClass + ' blockElement" style="z-index:'+(z+10)+';display:none;position:absolute"></div>';
974
- }
975
- lyr3 = $(s);
976
-
977
- // if we have a message, style it
978
- if (msg) {
979
- if (opts.theme) {
980
- lyr3.css(themedCSS);
981
- lyr3.addClass('ui-widget-content');
982
- }
983
- else
984
- lyr3.css(css);
985
- }
986
-
987
- // style the overlay
988
- if (!opts.theme /*&& (!opts.applyPlatformOpacityRules)*/)
989
- lyr2.css(opts.overlayCSS);
990
- lyr2.css('position', full ? 'fixed' : 'absolute');
991
-
992
- // make iframe layer transparent in IE
993
- if (msie || opts.forceIframe)
994
- lyr1.css('opacity',0.0);
995
-
996
- //$([lyr1[0],lyr2[0],lyr3[0]]).appendTo(full ? 'body' : el);
997
- var layers = [lyr1,lyr2,lyr3], $par = full ? $('body') : $(el);
998
- $.each(layers, function() {
999
- this.appendTo($par);
1000
- });
1001
-
1002
- if (opts.theme && opts.draggable && $.fn.draggable) {
1003
- lyr3.draggable({
1004
- handle: '.ui-dialog-titlebar',
1005
- cancel: 'li'
1006
- });
1007
- }
1008
-
1009
- // ie7 must use absolute positioning in quirks mode and to account for activex issues (when scrolling)
1010
- var expr = setExpr && (!$.support.boxModel || $('object,embed', full ? null : el).length > 0);
1011
- if (ie6 || expr) {
1012
- // give body 100% height
1013
- if (full && opts.allowBodyStretch && $.support.boxModel)
1014
- $('html,body').css('height','100%');
1015
-
1016
- // fix ie6 issue when blocked element has a border width
1017
- if ((ie6 || !$.support.boxModel) && !full) {
1018
- var t = sz(el,'borderTopWidth'), l = sz(el,'borderLeftWidth');
1019
- var fixT = t ? '(0 - '+t+')' : 0;
1020
- var fixL = l ? '(0 - '+l+')' : 0;
1021
- }
1022
-
1023
- // simulate fixed position
1024
- $.each(layers, function(i,o) {
1025
- var s = o[0].style;
1026
- s.position = 'absolute';
1027
- if (i < 2) {
1028
- if (full)
1029
- s.setExpression('height','Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.support.boxModel?0:'+opts.quirksmodeOffsetHack+') + "px"');
1030
- else
1031
- s.setExpression('height','this.parentNode.offsetHeight + "px"');
1032
- if (full)
1033
- s.setExpression('width','jQuery.support.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"');
1034
- else
1035
- s.setExpression('width','this.parentNode.offsetWidth + "px"');
1036
- if (fixL) s.setExpression('left', fixL);
1037
- if (fixT) s.setExpression('top', fixT);
1038
- }
1039
- else if (opts.centerY) {
1040
- if (full) s.setExpression('top','(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"');
1041
- s.marginTop = 0;
1042
- }
1043
- else if (!opts.centerY && full) {
1044
- var top = (opts.css && opts.css.top) ? parseInt(opts.css.top, 10) : 0;
1045
- var expression = '((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + '+top+') + "px"';
1046
- s.setExpression('top',expression);
1047
- }
1048
- });
1049
- }
1050
-
1051
- // show the message
1052
- if (msg) {
1053
- if (opts.theme)
1054
- lyr3.find('.ui-widget-content').append(msg);
1055
- else
1056
- lyr3.append(msg);
1057
- if (msg.jquery || msg.nodeType)
1058
- $(msg).show();
1059
- }
1060
-
1061
- if ((msie || opts.forceIframe) && opts.showOverlay)
1062
- lyr1.show(); // opacity is zero
1063
- if (opts.fadeIn) {
1064
- var cb = opts.onBlock ? opts.onBlock : noOp;
1065
- var cb1 = (opts.showOverlay && !msg) ? cb : noOp;
1066
- var cb2 = msg ? cb : noOp;
1067
- if (opts.showOverlay)
1068
- lyr2._fadeIn(opts.fadeIn, cb1);
1069
- if (msg)
1070
- lyr3._fadeIn(opts.fadeIn, cb2);
1071
- }
1072
- else {
1073
- if (opts.showOverlay)
1074
- lyr2.show();
1075
- if (msg)
1076
- lyr3.show();
1077
- if (opts.onBlock)
1078
- opts.onBlock.bind(lyr3)();
1079
- }
1080
-
1081
- // bind key and mouse events
1082
- bind(1, el, opts);
1083
-
1084
- if (full) {
1085
- pageBlock = lyr3[0];
1086
- pageBlockEls = $(opts.focusableElements,pageBlock);
1087
- if (opts.focusInput)
1088
- setTimeout(focus, 20);
1089
- }
1090
- else
1091
- center(lyr3[0], opts.centerX, opts.centerY);
1092
-
1093
- if (opts.timeout) {
1094
- // auto-unblock
1095
- var to = setTimeout(function() {
1096
- if (full)
1097
- $.unblockUI(opts);
1098
- else
1099
- $(el).unblock(opts);
1100
- }, opts.timeout);
1101
- $(el).data('blockUI.timeout', to);
1102
- }
1103
- }
1104
-
1105
- // remove the block
1106
- function remove(el, opts) {
1107
- var count;
1108
- var full = (el == window);
1109
- var $el = $(el);
1110
- var data = $el.data('blockUI.history');
1111
- var to = $el.data('blockUI.timeout');
1112
- if (to) {
1113
- clearTimeout(to);
1114
- $el.removeData('blockUI.timeout');
1115
- }
1116
- opts = $.extend({}, $.blockUI.defaults, opts || {});
1117
- bind(0, el, opts); // unbind events
1118
-
1119
- if (opts.onUnblock === null) {
1120
- opts.onUnblock = $el.data('blockUI.onUnblock');
1121
- $el.removeData('blockUI.onUnblock');
1122
- }
1123
-
1124
- var els;
1125
- if (full) // crazy selector to handle odd field errors in ie6/7
1126
- els = $('body').children().filter('.blockUI').add('body > .blockUI');
1127
- else
1128
- els = $el.find('>.blockUI');
1129
-
1130
- // fix cursor issue
1131
- if ( opts.cursorReset ) {
1132
- if ( els.length > 1 )
1133
- els[1].style.cursor = opts.cursorReset;
1134
- if ( els.length > 2 )
1135
- els[2].style.cursor = opts.cursorReset;
1136
- }
1137
-
1138
- if (full)
1139
- pageBlock = pageBlockEls = null;
1140
-
1141
- if (opts.fadeOut) {
1142
- count = els.length;
1143
- els.stop().fadeOut(opts.fadeOut, function() {
1144
- if ( --count === 0)
1145
- reset(els,data,opts,el);
1146
- });
1147
- }
1148
- else
1149
- reset(els, data, opts, el);
1150
- }
1151
-
1152
- // move blocking element back into the DOM where it started
1153
- function reset(els,data,opts,el) {
1154
- var $el = $(el);
1155
- if ( $el.data('blockUI.isBlocked') )
1156
- return;
1157
-
1158
- els.each(function(i,o) {
1159
- // remove via DOM calls so we don't lose event handlers
1160
- if (this.parentNode)
1161
- this.parentNode.removeChild(this);
1162
- });
1163
-
1164
- if (data && data.el) {
1165
- data.el.style.display = data.display;
1166
- data.el.style.position = data.position;
1167
- data.el.style.cursor = 'default'; // #59
1168
- if (data.parent)
1169
- data.parent.appendChild(data.el);
1170
- $el.removeData('blockUI.history');
1171
- }
1172
-
1173
- if ($el.data('blockUI.static')) {
1174
- $el.css('position', 'static'); // #22
1175
- }
1176
-
1177
- if (typeof opts.onUnblock == 'function')
1178
- opts.onUnblock(el,opts);
1179
-
1180
- // fix issue in Safari 6 where block artifacts remain until reflow
1181
- var body = $(document.body), w = body.width(), cssW = body[0].style.width;
1182
- body.width(w-1).width(w);
1183
- body[0].style.width = cssW;
1184
- }
1185
-
1186
- // bind/unbind the handler
1187
- function bind(b, el, opts) {
1188
- var full = el == window, $el = $(el);
1189
-
1190
- // don't bother unbinding if there is nothing to unbind
1191
- if (!b && (full && !pageBlock || !full && !$el.data('blockUI.isBlocked')))
1192
- return;
1193
-
1194
- $el.data('blockUI.isBlocked', b);
1195
-
1196
- // don't bind events when overlay is not in use or if bindEvents is false
1197
- if (!full || !opts.bindEvents || (b && !opts.showOverlay))
1198
- return;
1199
-
1200
- // bind anchors and inputs for mouse and key events
1201
- var events = 'mousedown mouseup keydown keypress keyup touchstart touchend touchmove';
1202
- if (b)
1203
- $(document).bind(events, opts, handler);
1204
- else
1205
- $(document).unbind(events, handler);
1206
-
1207
- // former impl...
1208
- // var $e = $('a,:input');
1209
- // b ? $e.bind(events, opts, handler) : $e.unbind(events, handler);
1210
- }
1211
-
1212
- // event handler to suppress keyboard/mouse events when blocking
1213
- function handler(e) {
1214
- // allow tab navigation (conditionally)
1215
- if (e.type === 'keydown' && e.keyCode && e.keyCode == 9) {
1216
- if (pageBlock && e.data.constrainTabKey) {
1217
- var els = pageBlockEls;
1218
- var fwd = !e.shiftKey && e.target === els[els.length-1];
1219
- var back = e.shiftKey && e.target === els[0];
1220
- if (fwd || back) {
1221
- setTimeout(function(){focus(back);},10);
1222
- return false;
1223
- }
1224
- }
1225
- }
1226
- var opts = e.data;
1227
- var target = $(e.target);
1228
- if (target.hasClass('blockOverlay') && opts.onOverlayClick)
1229
- opts.onOverlayClick(e);
1230
-
1231
- // allow events within the message content
1232
- if (target.parents('div.' + opts.blockMsgClass).length > 0)
1233
- return true;
1234
-
1235
- // allow events for content that is not being blocked
1236
- return target.parents().children().filter('div.blockUI').length === 0;
1237
- }
1238
-
1239
- function focus(back) {
1240
- if (!pageBlockEls)
1241
- return;
1242
- var e = pageBlockEls[back===true ? pageBlockEls.length-1 : 0];
1243
- if (e)
1244
- e.focus();
1245
- }
1246
-
1247
- function center(el, x, y) {
1248
- var p = el.parentNode, s = el.style;
1249
- var l = ((p.offsetWidth - el.offsetWidth)/2) - sz(p,'borderLeftWidth');
1250
- var t = ((p.offsetHeight - el.offsetHeight)/2) - sz(p,'borderTopWidth');
1251
- if (x) s.left = l > 0 ? (l+'px') : '0';
1252
- if (y) s.top = t > 0 ? (t+'px') : '0';
1253
- }
1254
-
1255
- function sz(el, p) {
1256
- return parseInt($.css(el,p),10)||0;
1257
- }
1258
-
1259
- }
1260
-
1261
-
1262
- /*global define:true */
1263
- if (typeof define === 'function' && define.amd && define.amd.jQuery) {
1264
- define(['jquery'], setup);
1265
- } else {
1266
- setup(jQuery);
1267
- }
1268
-
1269
- })();
1270
-
1271
-
1272
  /*!
1273
  * ================== admin/assets/js/libs/jquery.scrollTo.js ===================
1274
  **/
@@ -1297,6 +671,8 @@ if( typeof Object.create !== 'function' ){ Object.create = function (obj){ funct
1297
  })(function($) {
1298
  'use strict';
1299
 
 
 
1300
  var $scrollTo = $.scrollTo = function(target, duration, settings) {
1301
  return $(window).scrollTo(target, duration, settings);
1302
  };
@@ -1310,7 +686,7 @@ if( typeof Object.create !== 'function' ){ Object.create = function (obj){ funct
1310
  function isWin(elem) {
1311
  return !elem.nodeName ||
1312
  $.inArray(elem.nodeName.toLowerCase(), ['iframe','#document','html','body']) !== -1;
1313
- }
1314
 
1315
  $.fn.scrollTo = function(target, duration, settings) {
1316
  if (typeof duration === 'object') {
@@ -1343,7 +719,7 @@ if( typeof Object.create !== 'function' ){ Object.create = function (obj){ funct
1343
  var win = isWin(this),
1344
  elem = win ? this.contentWindow || window : this,
1345
  $elem = $(elem),
1346
- targ = target,
1347
  attr = {},
1348
  toff;
1349
 
@@ -1368,7 +744,7 @@ if( typeof Object.create !== 'function' ){ Object.create = function (obj){ funct
1368
  }
1369
  }
1370
 
1371
- var offset = $.isFunction(settings.offset) && settings.offset(elem, targ) || settings.offset;
1372
 
1373
  $.each(settings.axis.split(''), function(i, axis) {
1374
  var Pos = axis === 'x' ? 'Left' : 'Top',
@@ -1455,11 +831,11 @@ if( typeof Object.create !== 'function' ){ Object.create = function (obj){ funct
1455
  };
1456
 
1457
  function both(val) {
1458
- return $.isFunction(val) || $.isPlainObject(val) ? val : { top:val, left:val };
1459
  }
1460
 
1461
  // Add special hooks so that window scroll properties can be animated
1462
- $.Tween.propHooks.scrollLeft =
1463
  $.Tween.propHooks.scrollTop = {
1464
  get: function(t) {
1465
  return $(t.elem)[t.prop]();
@@ -1485,6 +861,631 @@ if( typeof Object.create !== 'function' ){ Object.create = function (obj){ funct
1485
  });
1486
 
1487
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1488
  /*!
1489
  * ================== admin/assets/js/libs/wizard.js ===================
1490
  **/
@@ -2542,7 +2543,7 @@ if( typeof Object.create !== 'function' ){ Object.create = function (obj){ funct
2542
  .closest(".aux-table-row")
2543
  .removeClass("is-checked");
2544
  }
2545
- $(this).click(function() {
2546
  if ($(this).is(":checked")) {
2547
  $(this)
2548
  .closest(".aux-table-row")
1
+ /*! Phlox Core Plugin - v2.8.0 (2021-06)
2
  * All required javascript plugins for admin
3
  * http://phlox.pro/
4
  * Place any jQuery/helper plugins in here, instead of separate, slower script files!
359
  */
360
  chainCallbacks: function(chain) {
361
  for (var name in chain) {
362
+ this[name] = chain[name].bind(this, this[name].bind(this));
363
  }
364
  }
365
  };
643
  }(jQuery));
644
 
645
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
646
  /*!
647
  * ================== admin/assets/js/libs/jquery.scrollTo.js ===================
648
  **/
671
  })(function($) {
672
  'use strict';
673
 
674
+ var isFunction = function(value) {return typeof value === 'function';}
675
+
676
  var $scrollTo = $.scrollTo = function(target, duration, settings) {
677
  return $(window).scrollTo(target, duration, settings);
678
  };
686
  function isWin(elem) {
687
  return !elem.nodeName ||
688
  $.inArray(elem.nodeName.toLowerCase(), ['iframe','#document','html','body']) !== -1;
689
+ }
690
 
691
  $.fn.scrollTo = function(target, duration, settings) {
692
  if (typeof duration === 'object') {
719
  var win = isWin(this),
720
  elem = win ? this.contentWindow || window : this,
721
  $elem = $(elem),
722
+ targ = target,
723
  attr = {},
724
  toff;
725
 
744
  }
745
  }
746
 
747
+ var offset = isFunction(settings.offset) && settings.offset(elem, targ) || settings.offset;
748
 
749
  $.each(settings.axis.split(''), function(i, axis) {
750
  var Pos = axis === 'x' ? 'Left' : 'Top',
831
  };
832
 
833
  function both(val) {
834
+ return isFunction(val) || $.isPlainObject(val) ? val : { top:val, left:val };
835
  }
836
 
837
  // Add special hooks so that window scroll properties can be animated
838
+ $.Tween.propHooks.scrollLeft =
839
  $.Tween.propHooks.scrollTop = {
840
  get: function(t) {
841
  return $(t.elem)[t.prop]();
861
  });
862
 
863
 
864
+ /*!
865
+ * ================== admin/assets/js/libs/jqurey.blockUI.js ===================
866
+ **/
867
+
868
+ /*!
869
+ * jQuery blockUI plugin
870
+ * Version 2.70.0-2014.11.23
871
+ * Requires jQuery v1.7 or later
872
+ *
873
+ * Examples at: http://malsup.com/jquery/block/
874
+ * Copyright (c) 2007-2013 M. Alsup
875
+ * Dual licensed under the MIT and GPL licenses:
876
+ * http://www.opensource.org/licenses/mit-license.php
877
+ * http://www.gnu.org/licenses/gpl.html
878
+ *
879
+ * Thanks to Amir-Hossein Sobhi for some excellent contributions!
880
+ */
881
+ ;(function() {
882
+ /*jshint eqeqeq:false curly:false latedef:false */
883
+ "use strict";
884
+
885
+ function setup($) {
886
+ $.fn._fadeIn = $.fn.fadeIn;
887
+
888
+ var noOp = $.noop || function() {};
889
+
890
+ // this bit is to ensure we don't call setExpression when we shouldn't (with extra muscle to handle
891
+ // confusing userAgent strings on Vista)
892
+ var msie = /MSIE/.test(navigator.userAgent);
893
+ var ie6 = /MSIE 6.0/.test(navigator.userAgent) && ! /MSIE 8.0/.test(navigator.userAgent);
894
+ var mode = document.documentMode || 0;
895
+ var setExpr = 'function' === typeof document.createElement('div').style.setExpression ? document.createElement('div').style.setExpression : false;
896
+
897
+ // global $ methods for blocking/unblocking the entire page
898
+ $.blockUI = function(opts) { install(window, opts); };
899
+ $.unblockUI = function(opts) { remove(window, opts); };
900
+
901
+ // convenience method for quick growl-like notifications (http://www.google.com/search?q=growl)
902
+ $.growlUI = function(title, message, timeout, onClose) {
903
+ var $m = $('<div class="growlUI"></div>');
904
+ if (title) $m.append('<h1>'+title+'</h1>');
905
+ if (message) $m.append('<h2>'+message+'</h2>');
906
+ if (timeout === undefined) timeout = 3000;
907
+
908
+ // Added by konapun: Set timeout to 30 seconds if this growl is moused over, like normal toast notifications
909
+ var callBlock = function(opts) {
910
+ opts = opts || {};
911
+
912
+ $.blockUI({
913
+ message: $m,
914
+ fadeIn : typeof opts.fadeIn !== 'undefined' ? opts.fadeIn : 700,
915
+ fadeOut: typeof opts.fadeOut !== 'undefined' ? opts.fadeOut : 1000,
916
+ timeout: typeof opts.timeout !== 'undefined' ? opts.timeout : timeout,
917
+ centerY: false,
918
+ showOverlay: false,
919
+ onUnblock: onClose,
920
+ css: $.blockUI.defaults.growlCSS
921
+ });
922
+ };
923
+
924
+ callBlock();
925
+ var nonmousedOpacity = $m.css('opacity');
926
+ $m.on( 'mouseover', function() {
927
+ callBlock({
928
+ fadeIn: 0,
929
+ timeout: 30000
930
+ });
931
+
932
+ var displayBlock = $('.blockMsg');
933
+ displayBlock.stop(); // cancel fadeout if it has started
934
+ displayBlock.fadeTo(300, 1); // make it easier to read the message by removing transparency
935
+ }).on( 'mouseout', function() {
936
+ $('.blockMsg').fadeOut(1000);
937
+ });
938
+ // End konapun additions
939
+ };
940
+
941
+ // plugin method for blocking element content
942
+ $.fn.block = function(opts) {
943
+ if ( this[0] === window ) {
944
+ $.blockUI( opts );
945
+ return this;
946
+ }
947
+ var fullOpts = $.extend({}, $.blockUI.defaults, opts || {});
948
+ this.each(function() {
949
+ var $el = $(this);
950
+ if (fullOpts.ignoreIfBlocked && $el.data('blockUI.isBlocked'))
951
+ return;
952
+ $el.unblock({ fadeOut: 0 });
953
+ });
954
+
955
+ return this.each(function() {
956
+ if ($.css(this,'position') == 'static') {
957
+ this.style.position = 'relative';
958
+ $(this).data('blockUI.static', true);
959
+ }
960
+ this.style.zoom = 1; // force 'hasLayout' in ie
961
+ install(this, opts);
962
+ });
963
+ };
964
+
965
+ // plugin method for unblocking element content
966
+ $.fn.unblock = function(opts) {
967
+ if ( this[0] === window ) {
968
+ $.unblockUI( opts );
969
+ return this;
970
+ }
971
+ return this.each(function() {
972
+ remove(this, opts);
973
+ });
974
+ };
975
+
976
+ $.blockUI.version = 2.70; // 2nd generation blocking at no extra cost!
977
+
978
+ // override these in your code to change the default behavior and style
979
+ $.blockUI.defaults = {
980
+ // message displayed when blocking (use null for no message)
981
+ message: '<h1>Please wait...</h1>',
982
+
983
+ title: null, // title string; only used when theme == true
984
+ draggable: true, // only used when theme == true (requires jquery-ui.js to be loaded)
985
+
986
+ theme: false, // set to true to use with jQuery UI themes
987
+
988
+ // styles for the message when blocking; if you wish to disable
989
+ // these and use an external stylesheet then do this in your code:
990
+ // $.blockUI.defaults.css = {};
991
+ css: {
992
+ padding: 0,
993
+ margin: 0,
994
+ width: '30%',
995
+ top: '40%',
996
+ left: '35%',
997
+ textAlign: 'center',
998
+ color: '#000',
999
+ border: '3px solid #aaa',
1000
+ backgroundColor:'#fff',
1001
+ cursor: 'wait'
1002
+ },
1003
+
1004
+ // minimal style set used when themes are used
1005
+ themedCSS: {
1006
+ width: '30%',
1007
+ top: '40%',
1008
+ left: '35%'
1009
+ },
1010
+
1011
+ // styles for the overlay
1012
+ overlayCSS: {
1013
+ backgroundColor: '#000',
1014
+ opacity: 0.6,
1015
+ cursor: 'wait'
1016
+ },
1017
+
1018
+ // style to replace wait cursor before unblocking to correct issue
1019
+ // of lingering wait cursor
1020
+ cursorReset: 'default',
1021
+
1022
+ // styles applied when using $.growlUI
1023
+ growlCSS: {
1024
+ width: '350px',
1025
+ top: '10px',
1026
+ left: '',
1027
+ right: '10px',
1028
+ border: 'none',
1029
+ padding: '5px',
1030
+ opacity: 0.6,
1031
+ cursor: 'default',
1032
+ color: '#fff',
1033
+ backgroundColor: '#000',
1034
+ '-webkit-border-radius':'10px',
1035
+ '-moz-border-radius': '10px',
1036
+ 'border-radius': '10px'
1037
+ },
1038
+
1039
+ // IE issues: 'about:blank' fails on HTTPS and javascript:false is s-l-o-w
1040
+ // (hat tip to Jorge H. N. de Vasconcelos)
1041
+ /*jshint scripturl:true */
1042
+ iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank',
1043
+
1044
+ // force usage of iframe in non-IE browsers (handy for blocking applets)
1045
+ forceIframe: false,
1046
+
1047
+ // z-index for the blocking overlay
1048
+ baseZ: 1000,
1049
+
1050
+ // set these to true to have the message automatically centered
1051
+ centerX: true, // <-- only effects element blocking (page block controlled via css above)
1052
+ centerY: true,
1053
+
1054
+ // allow body element to be stetched in ie6; this makes blocking look better
1055
+ // on "short" pages. disable if you wish to prevent changes to the body height
1056
+ allowBodyStretch: true,
1057
+
1058
+ // enable if you want key and mouse events to be disabled for content that is blocked
1059
+ bindEvents: true,
1060
+
1061
+ // be default blockUI will supress tab navigation from leaving blocking content
1062
+ // (if bindEvents is true)
1063
+ constrainTabKey: true,
1064
+
1065
+ // fadeIn time in millis; set to 0 to disable fadeIn on block
1066
+ fadeIn: 200,
1067
+
1068
+ // fadeOut time in millis; set to 0 to disable fadeOut on unblock
1069
+ fadeOut: 400,
1070
+
1071
+ // time in millis to wait before auto-unblocking; set to 0 to disable auto-unblock
1072
+ timeout: 0,
1073
+
1074
+ // disable if you don't want to show the overlay
1075
+ showOverlay: true,
1076
+
1077
+ // if true, focus will be placed in the first available input field when
1078
+ // page blocking
1079
+ focusInput: true,
1080
+
1081
+ // elements that can receive focus
1082
+ focusableElements: ':input:enabled:visible',
1083
+
1084
+ // suppresses the use of overlay styles on FF/Linux (due to performance issues with opacity)
1085
+ // no longer needed in 2012
1086
+ // applyPlatformOpacityRules: true,
1087
+
1088
+ // callback method invoked when fadeIn has completed and blocking message is visible
1089
+ onBlock: null,
1090
+
1091
+ // callback method invoked when unblocking has completed; the callback is
1092
+ // passed the element that has been unblocked (which is the window object for page
1093
+ // blocks) and the options that were passed to the unblock call:
1094
+ // onUnblock(element, options)
1095
+ onUnblock: null,
1096
+
1097
+ // callback method invoked when the overlay area is clicked.
1098
+ // setting this will turn the cursor to a pointer, otherwise cursor defined in overlayCss will be used.
1099
+ onOverlayClick: null,
1100
+
1101
+ // don't ask; if you really must know: http://groups.google.com/group/jquery-en/browse_thread/thread/36640a8730503595/2f6a79a77a78e493#2f6a79a77a78e493
1102
+ quirksmodeOffsetHack: 4,
1103
+
1104
+ // class name of the message block
1105
+ blockMsgClass: 'blockMsg',
1106
+
1107
+ // if it is already blocked, then ignore it (don't unblock and reblock)
1108
+ ignoreIfBlocked: false
1109
+ };
1110
+
1111
+ // private data and functions follow...
1112
+
1113
+ var pageBlock = null;
1114
+ var pageBlockEls = [];
1115
+
1116
+ function install(el, opts) {
1117
+ var css, themedCSS;
1118
+ var full = (el == window);
1119
+ var msg = (opts && opts.message !== undefined ? opts.message : undefined);
1120
+ opts = $.extend({}, $.blockUI.defaults, opts || {});
1121
+
1122
+ if (opts.ignoreIfBlocked && $(el).data('blockUI.isBlocked'))
1123
+ return;
1124
+
1125
+ opts.overlayCSS = $.extend({}, $.blockUI.defaults.overlayCSS, opts.overlayCSS || {});
1126
+ css = $.extend({}, $.blockUI.defaults.css, opts.css || {});
1127
+ if (opts.onOverlayClick)
1128
+ opts.overlayCSS.cursor = 'pointer';
1129
+
1130
+ themedCSS = $.extend({}, $.blockUI.defaults.themedCSS, opts.themedCSS || {});
1131
+ msg = msg === undefined ? opts.message : msg;
1132
+
1133
+ // remove the current block (if there is one)
1134
+ if (full && pageBlock)
1135
+ remove(window, {fadeOut:0});
1136
+
1137
+ // if an existing element is being used as the blocking content then we capture
1138
+ // its current place in the DOM (and current display style) so we can restore
1139
+ // it when we unblock
1140
+ if (msg && typeof msg != 'string' && (msg.parentNode || msg.jquery)) {
1141
+ var node = msg.jquery ? msg[0] : msg;
1142
+ var data = {};
1143
+ $(el).data('blockUI.history', data);
1144
+ data.el = node;
1145
+ data.parent = node.parentNode;
1146
+ data.display = node.style.display;
1147
+ data.position = node.style.position;
1148
+ if (data.parent)
1149
+ data.parent.removeChild(node);
1150
+ }
1151
+
1152
+ $(el).data('blockUI.onUnblock', opts.onUnblock);
1153
+ var z = opts.baseZ;
1154
+
1155
+ // blockUI uses 3 layers for blocking, for simplicity they are all used on every platform;
1156
+ // layer1 is the iframe layer which is used to supress bleed through of underlying content
1157
+ // layer2 is the overlay layer which has opacity and a wait cursor (by default)
1158
+ // layer3 is the message content that is displayed while blocking
1159
+ var lyr1, lyr2, lyr3, s;
1160
+ if (msie || opts.forceIframe)
1161
+ lyr1 = $('<iframe class="blockUI" style="z-index:'+ (z++) +';display:none;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="'+opts.iframeSrc+'"></iframe>');
1162
+ else
1163
+ lyr1 = $('<div class="blockUI" style="display:none"></div>');
1164
+
1165
+ if (opts.theme)
1166
+ lyr2 = $('<div class="blockUI blockOverlay ui-widget-overlay" style="z-index:'+ (z++) +';display:none"></div>');
1167
+ else
1168
+ lyr2 = $('<div class="blockUI blockOverlay" style="z-index:'+ (z++) +';display:none;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>');
1169
+
1170
+ if (opts.theme && full) {
1171
+ s = '<div class="blockUI ' + opts.blockMsgClass + ' blockPage ui-dialog ui-widget ui-corner-all" style="z-index:'+(z+10)+';display:none;position:fixed">';
1172
+ if ( opts.title ) {
1173
+ s += '<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(opts.title || '&nbsp;')+'</div>';
1174
+ }
1175
+ s += '<div class="ui-widget-content ui-dialog-content"></div>';
1176
+ s += '</div>';
1177
+ }
1178
+ else if (opts.theme) {
1179
+ s = '<div class="blockUI ' + opts.blockMsgClass + ' blockElement ui-dialog ui-widget ui-corner-all" style="z-index:'+(z+10)+';display:none;position:absolute">';
1180
+ if ( opts.title ) {
1181
+ s += '<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(opts.title || '&nbsp;')+'</div>';
1182
+ }
1183
+ s += '<div class="ui-widget-content ui-dialog-content"></div>';
1184
+ s += '</div>';
1185
+ }
1186
+ else if (full) {
1187
+ s = '<div class="blockUI ' + opts.blockMsgClass + ' blockPage" style="z-index:'+(z+10)+';display:none;position:fixed"></div>';
1188
+ }
1189
+ else {
1190
+ s = '<div class="blockUI ' + opts.blockMsgClass + ' blockElement" style="z-index:'+(z+10)+';display:none;position:absolute"></div>';
1191
+ }
1192
+ lyr3 = $(s);
1193
+
1194
+ // if we have a message, style it
1195
+ if (msg) {
1196
+ if (opts.theme) {
1197
+ lyr3.css(themedCSS);
1198
+ lyr3.addClass('ui-widget-content');
1199
+ }
1200
+ else
1201
+ lyr3.css(css);
1202
+ }
1203
+
1204
+ // style the overlay
1205
+ if (!opts.theme /*&& (!opts.applyPlatformOpacityRules)*/)
1206
+ lyr2.css(opts.overlayCSS);
1207
+ lyr2.css('position', full ? 'fixed' : 'absolute');
1208
+
1209
+ // make iframe layer transparent in IE
1210
+ if (msie || opts.forceIframe)
1211
+ lyr1.css('opacity',0.0);
1212
+
1213
+ //$([lyr1[0],lyr2[0],lyr3[0]]).appendTo(full ? 'body' : el);
1214
+ var layers = [lyr1,lyr2,lyr3], $par = full ? $('body') : $(el);
1215
+ $.each(layers, function() {
1216
+ this.appendTo($par);
1217
+ });
1218
+
1219
+ if (opts.theme && opts.draggable && $.fn.draggable) {
1220
+ lyr3.draggable({
1221
+ handle: '.ui-dialog-titlebar',
1222
+ cancel: 'li'
1223
+ });
1224
+ }
1225
+
1226
+ // ie7 must use absolute positioning in quirks mode and to account for activex issues (when scrolling)
1227
+ var expr = setExpr && (!$.support.boxModel || $('object,embed', full ? null : el).length > 0);
1228
+ if (ie6 || expr) {
1229
+ // give body 100% height
1230
+ if (full && opts.allowBodyStretch && $.support.boxModel)
1231
+ $('html,body').css('height','100%');
1232
+
1233
+ // fix ie6 issue when blocked element has a border width
1234
+ if ((ie6 || !$.support.boxModel) && !full) {
1235
+ var t = sz(el,'borderTopWidth'), l = sz(el,'borderLeftWidth');
1236
+ var fixT = t ? '(0 - '+t+')' : 0;
1237
+ var fixL = l ? '(0 - '+l+')' : 0;
1238
+ }
1239
+
1240
+ // simulate fixed position
1241
+ $.each(layers, function(i,o) {
1242
+ var s = o[0].style;
1243
+ s.position = 'absolute';
1244
+ if (i < 2) {
1245
+ if (full)
1246
+ s.setExpression('height','Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.support.boxModel?0:'+opts.quirksmodeOffsetHack+') + "px"');
1247
+ else
1248
+ s.setExpression('height','this.parentNode.offsetHeight + "px"');
1249
+ if (full)
1250
+ s.setExpression('width','jQuery.support.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"');
1251
+ else
1252
+ s.setExpression('width','this.parentNode.offsetWidth + "px"');
1253
+ if (fixL) s.setExpression('left', fixL);
1254
+ if (fixT) s.setExpression('top', fixT);
1255
+ }
1256
+ else if (opts.centerY) {
1257
+ if (full) s.setExpression('top','(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"');
1258
+ s.marginTop = 0;
1259
+ }
1260
+ else if (!opts.centerY && full) {
1261
+ var top = (opts.css && opts.css.top) ? parseInt(opts.css.top, 10) : 0;
1262
+ var expression = '((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + '+top+') + "px"';
1263
+ s.setExpression('top',expression);
1264
+ }
1265
+ });
1266
+ }
1267
+
1268
+ // show the message
1269
+ if (msg) {
1270
+ if (opts.theme)
1271
+ lyr3.find('.ui-widget-content').append(msg);
1272
+ else
1273
+ lyr3.append(msg);
1274
+ if (msg.jquery || msg.nodeType)
1275
+ $(msg).show();
1276
+ }
1277
+
1278
+ if ((msie || opts.forceIframe) && opts.showOverlay)
1279
+ lyr1.show(); // opacity is zero
1280
+ if (opts.fadeIn) {
1281
+ var cb = opts.onBlock ? opts.onBlock : noOp;
1282
+ var cb1 = (opts.showOverlay && !msg) ? cb : noOp;
1283
+ var cb2 = msg ? cb : noOp;
1284
+ if (opts.showOverlay)
1285
+ lyr2._fadeIn(opts.fadeIn, cb1);
1286
+ if (msg)
1287
+ lyr3._fadeIn(opts.fadeIn, cb2);
1288
+ }
1289
+ else {
1290
+ if (opts.showOverlay)
1291
+ lyr2.show();
1292
+ if (msg)
1293
+ lyr3.show();
1294
+ if (opts.onBlock)
1295
+ opts.onBlock.bind(lyr3)();
1296
+ }
1297
+
1298
+ // bind key and mouse events
1299
+ bind(1, el, opts);
1300
+
1301
+ if (full) {
1302
+ pageBlock = lyr3[0];
1303
+ pageBlockEls = $(opts.focusableElements,pageBlock);
1304
+ if (opts.focusInput)
1305
+ setTimeout(focus, 20);
1306
+ }
1307
+ else
1308
+ center(lyr3[0], opts.centerX, opts.centerY);
1309
+
1310
+ if (opts.timeout) {
1311
+ // auto-unblock
1312
+ var to = setTimeout(function() {
1313
+ if (full)
1314
+ $.unblockUI(opts);
1315
+ else
1316
+ $(el).unblock(opts);
1317
+ }, opts.timeout);
1318
+ $(el).data('blockUI.timeout', to);
1319
+ }
1320
+ }
1321
+
1322
+ // remove the block
1323
+ function remove(el, opts) {
1324
+ var count;
1325
+ var full = (el == window);
1326
+ var $el = $(el);
1327
+ var data = $el.data('blockUI.history');
1328
+ var to = $el.data('blockUI.timeout');
1329
+ if (to) {
1330
+ clearTimeout(to);
1331
+ $el.removeData('blockUI.timeout');
1332
+ }
1333
+ opts = $.extend({}, $.blockUI.defaults, opts || {});
1334
+ bind(0, el, opts); // unbind events
1335
+
1336
+ if (opts.onUnblock === null) {
1337
+ opts.onUnblock = $el.data('blockUI.onUnblock');
1338
+ $el.removeData('blockUI.onUnblock');
1339
+ }
1340
+
1341
+ var els;
1342
+ if (full) // crazy selector to handle odd field errors in ie6/7
1343
+ els = $(document.body).children().filter('.blockUI').add('body > .blockUI');
1344
+ else
1345
+ els = $el.find('>.blockUI');
1346
+
1347
+ // fix cursor issue
1348
+ if ( opts.cursorReset ) {
1349
+ if ( els.length > 1 )
1350
+ els[1].style.cursor = opts.cursorReset;
1351
+ if ( els.length > 2 )
1352
+ els[2].style.cursor = opts.cursorReset;
1353
+ }
1354
+
1355
+ if (full)
1356
+ pageBlock = pageBlockEls = null;
1357
+
1358
+ if (opts.fadeOut) {
1359
+ count = els.length;
1360
+ els.stop().fadeOut(opts.fadeOut, function() {
1361
+ if ( --count === 0)
1362
+ reset(els,data,opts,el);
1363
+ });
1364
+ }
1365
+ else
1366
+ reset(els, data, opts, el);
1367
+ }
1368
+
1369
+ // move blocking element back into the DOM where it started
1370
+ function reset(els,data,opts,el) {
1371
+ var $el = $(el);
1372
+ if ( $el.data('blockUI.isBlocked') )
1373
+ return;
1374
+
1375
+ els.each(function(i,o) {
1376
+ // remove via DOM calls so we don't lose event handlers
1377
+ if (this.parentNode)
1378
+ this.parentNode.removeChild(this);
1379
+ });
1380
+
1381
+ if (data && data.el) {
1382
+ data.el.style.display = data.display;
1383
+ data.el.style.position = data.position;
1384
+ data.el.style.cursor = 'default'; // #59
1385
+ if (data.parent)
1386
+ data.parent.appendChild(data.el);
1387
+ $el.removeData('blockUI.history');
1388
+ }
1389
+
1390
+ if ($el.data('blockUI.static')) {
1391
+ $el.css('position', 'static'); // #22
1392
+ }
1393
+
1394
+ if (typeof opts.onUnblock == 'function')
1395
+ opts.onUnblock(el,opts);
1396
+
1397
+ // fix issue in Safari 6 where block artifacts remain until reflow
1398
+ var body = $(document.body), w = body.width(), cssW = body[0].style.width;
1399
+ body.width(w-1).width(w);
1400
+ body[0].style.width = cssW;
1401
+ }
1402
+
1403
+ // bind/unbind the handler
1404
+ function bind(b, el, opts) {
1405
+ var full = el == window, $el = $(el);
1406
+
1407
+ // don't bother unbinding if there is nothing to unbind
1408
+ if (!b && (full && !pageBlock || !full && !$el.data('blockUI.isBlocked')))
1409
+ return;
1410
+
1411
+ $el.data('blockUI.isBlocked', b);
1412
+
1413
+ // don't bind events when overlay is not in use or if bindEvents is false
1414
+ if (!full || !opts.bindEvents || (b && !opts.showOverlay))
1415
+ return;
1416
+
1417
+ // bind anchors and inputs for mouse and key events
1418
+ var events = 'mousedown mouseup keydown keypress keyup touchstart touchend touchmove';
1419
+ if (b)
1420
+ $(document).on(events, opts, handler);
1421
+ else
1422
+ $(document).off(events, handler);
1423
+
1424
+ // former impl...
1425
+ // var $e = $('a,:input');
1426
+ // b ? $e.bind(events, opts, handler) : $e.unbind(events, handler);
1427
+ }
1428
+
1429
+ // event handler to suppress keyboard/mouse events when blocking
1430
+ function handler(e) {
1431
+ // allow tab navigation (conditionally)
1432
+ if (e.type === 'keydown' && e.keyCode && e.keyCode == 9) {
1433
+ if (pageBlock && e.data.constrainTabKey) {
1434
+ var els = pageBlockEls;
1435
+ var fwd = !e.shiftKey && e.target === els[els.length-1];
1436
+ var back = e.shiftKey && e.target === els[0];
1437
+ if (fwd || back) {
1438
+ setTimeout(function(){focus(back);},10);
1439
+ return false;
1440
+ }
1441
+ }
1442
+ }
1443
+ var opts = e.data;
1444
+ var target = $(e.target);
1445
+ if (target.hasClass('blockOverlay') && opts.onOverlayClick)
1446
+ opts.onOverlayClick(e);
1447
+
1448
+ // allow events within the message content
1449
+ if (target.parents('div.' + opts.blockMsgClass).length > 0)
1450
+ return true;
1451
+
1452
+ // allow events for content that is not being blocked
1453
+ return target.parents().children().filter('div.blockUI').length === 0;
1454
+ }
1455
+
1456
+ function focus(back) {
1457
+ if (!pageBlockEls)
1458
+ return;
1459
+ var e = pageBlockEls[back===true ? pageBlockEls.length-1 : 0];
1460
+ if (e)
1461
+ e.trigger( 'focus' );
1462
+ }
1463
+
1464
+ function center(el, x, y) {
1465
+ var p = el.parentNode, s = el.style;
1466
+ var l = ((p.offsetWidth - el.offsetWidth)/2) - sz(p,'borderLeftWidth');
1467
+ var t = ((p.offsetHeight - el.offsetHeight)/2) - sz(p,'borderTopWidth');
1468
+ if (x) s.left = l > 0 ? (l+'px') : '0';
1469
+ if (y) s.top = t > 0 ? (t+'px') : '0';
1470
+ }
1471
+
1472
+ function sz(el, p) {
1473
+ return parseInt($.css(el,p),10)||0;
1474
+ }
1475
+
1476
+ }
1477
+
1478
+
1479
+ /*global define:true */
1480
+ if (typeof define === 'function' && define.amd && define.amd.jQuery) {
1481
+ define(['jquery'], setup);
1482
+ } else {
1483
+ setup(jQuery);
1484
+ }
1485
+
1486
+ })();
1487
+
1488
+
1489
  /*!
1490
  * ================== admin/assets/js/libs/wizard.js ===================
1491
  **/
2543
  .closest(".aux-table-row")
2544
  .removeClass("is-checked");
2545
  }
2546
+ $(this).on( 'click', function() {
2547
  if ($(this).is(":checked")) {
25