foundation-rails 6.3.1.0 → 6.4.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bower.json +3 -3
- data/lib/foundation/rails/version.rb +1 -1
- data/lib/generators/foundation/install_generator.rb +1 -1
- data/lib/generators/foundation/templates/_settings.scss +291 -48
- data/vendor/assets/js/entries/foundation-plugins.js +25 -0
- data/vendor/assets/js/entries/foundation.js +101 -0
- data/vendor/assets/js/entries/plugins/foundation.abide.js +4 -0
- data/vendor/assets/js/entries/plugins/foundation.accordion.js +4 -0
- data/vendor/assets/js/entries/plugins/foundation.accordionMenu.js +5 -0
- data/vendor/assets/js/entries/plugins/foundation.core.js +21 -0
- data/vendor/assets/js/entries/plugins/foundation.drilldown.js +4 -0
- data/vendor/assets/js/entries/plugins/foundation.dropdown.js +5 -0
- data/vendor/assets/js/entries/plugins/foundation.dropdownMenu.js +4 -0
- data/vendor/assets/js/entries/plugins/foundation.equalizer.js +4 -0
- data/vendor/assets/js/entries/plugins/foundation.interchange.js +4 -0
- data/vendor/assets/js/entries/plugins/foundation.magellan.js +4 -0
- data/vendor/assets/js/entries/plugins/foundation.offcanvas.js +4 -0
- data/vendor/assets/js/entries/plugins/foundation.orbit.js +5 -0
- data/vendor/assets/js/entries/plugins/foundation.responsiveAccordionTabs.js +5 -0
- data/vendor/assets/js/entries/plugins/foundation.responsiveMenu.js +5 -0
- data/vendor/assets/js/entries/plugins/foundation.responsiveToggle.js +5 -0
- data/vendor/assets/js/entries/plugins/foundation.reveal.js +4 -0
- data/vendor/assets/js/entries/plugins/foundation.slider.js +5 -0
- data/vendor/assets/js/entries/plugins/foundation.smoothScroll.js +5 -0
- data/vendor/assets/js/entries/plugins/foundation.sticky.js +5 -0
- data/vendor/assets/js/entries/plugins/foundation.tabs.js +5 -0
- data/vendor/assets/js/entries/plugins/foundation.toggler.js +5 -0
- data/vendor/assets/js/entries/plugins/foundation.tooltip.js +4 -0
- data/vendor/assets/js/entries/plugins/foundation.util.box.js +4 -0
- data/vendor/assets/js/entries/plugins/foundation.util.imageLoader.js +5 -0
- data/vendor/assets/js/entries/plugins/foundation.util.keyboard.js +4 -0
- data/vendor/assets/js/entries/plugins/foundation.util.mediaQuery.js +4 -0
- data/vendor/assets/js/entries/plugins/foundation.util.motion.js +5 -0
- data/vendor/assets/js/entries/plugins/foundation.util.nest.js +5 -0
- data/vendor/assets/js/entries/plugins/foundation.util.timer.js +5 -0
- data/vendor/assets/js/entries/plugins/foundation.util.touch.js +7 -0
- data/vendor/assets/js/entries/plugins/foundation.util.triggers.js +5 -0
- data/vendor/assets/js/foundation.abide.js.es6 +18 -15
- data/vendor/assets/js/foundation.accordion.js.es6 +37 -23
- data/vendor/assets/js/foundation.accordionMenu.js.es6 +96 -51
- data/vendor/assets/js/foundation.core.js.es6 +46 -87
- data/vendor/assets/js/foundation.drilldown.js.es6 +47 -29
- data/vendor/assets/js/foundation.dropdown.js.es6 +84 -122
- data/vendor/assets/js/foundation.dropdownMenu.js.es6 +44 -28
- data/vendor/assets/js/foundation.equalizer.js.es6 +18 -17
- data/vendor/assets/js/foundation.interchange.js.es6 +26 -19
- data/vendor/assets/js/foundation.js.es6 +8 -3
- data/vendor/assets/js/foundation.magellan.js.es6 +36 -30
- data/vendor/assets/js/foundation.offcanvas.js.es6 +148 -36
- data/vendor/assets/js/foundation.orbit.js.es6 +26 -18
- data/vendor/assets/js/foundation.plugin.js.es6 +54 -0
- data/vendor/assets/js/foundation.positionable.js.es6 +206 -0
- data/vendor/assets/js/{foundation.zf.responsiveAccordionTabs.js.es6 → foundation.responsiveAccordionTabs.js.es6} +33 -30
- data/vendor/assets/js/foundation.responsiveMenu.js.es6 +37 -29
- data/vendor/assets/js/foundation.responsiveToggle.js.es6 +17 -16
- data/vendor/assets/js/foundation.reveal.js.es6 +61 -79
- data/vendor/assets/js/foundation.slider.js.es6 +33 -18
- data/vendor/assets/js/foundation.smoothScroll.js.es6 +135 -0
- data/vendor/assets/js/foundation.sticky.js.es6 +25 -17
- data/vendor/assets/js/foundation.tabs.js.es6 +35 -27
- data/vendor/assets/js/foundation.toggler.js.es6 +15 -13
- data/vendor/assets/js/foundation.tooltip.js.es6 +100 -108
- data/vendor/assets/js/foundation.util.box.js.es6 +114 -78
- data/vendor/assets/js/foundation.util.core.js.es6 +52 -0
- data/vendor/assets/js/foundation.util.imageLoader.js.es6 +45 -0
- data/vendor/assets/js/foundation.util.keyboard.js.es6 +41 -31
- data/vendor/assets/js/foundation.util.mediaQuery.js.es6 +59 -55
- data/vendor/assets/js/foundation.util.motion.js.es6 +4 -5
- data/vendor/assets/js/foundation.util.nest.js.es6 +9 -23
- data/vendor/assets/js/{foundation.util.timerAndImageLoader.js.es6 → foundation.util.timer.js.es6} +2 -42
- data/vendor/assets/js/foundation.util.touch.js.es6 +91 -294
- data/vendor/assets/js/foundation.util.triggers.js.es6 +199 -141
- data/vendor/assets/scss/_global.scss +29 -1
- data/vendor/assets/scss/components/_accordion-menu.scss +148 -13
- data/vendor/assets/scss/components/_accordion.scss +5 -0
- data/vendor/assets/scss/components/_breadcrumbs.scss +26 -9
- data/vendor/assets/scss/components/_button-group.scss +4 -4
- data/vendor/assets/scss/components/_button.scss +59 -12
- data/vendor/assets/scss/components/_card.scss +10 -2
- data/vendor/assets/scss/components/_drilldown.scss +90 -41
- data/vendor/assets/scss/components/_dropdown-menu.scss +52 -6
- data/vendor/assets/scss/components/_dropdown.scss +8 -1
- data/vendor/assets/scss/components/_flex.scss +85 -2
- data/vendor/assets/scss/components/_menu.scss +267 -162
- data/vendor/assets/scss/components/_off-canvas.scss +159 -45
- data/vendor/assets/scss/components/_pagination.scss +1 -1
- data/vendor/assets/scss/components/_reveal.scss +13 -11
- data/vendor/assets/scss/components/_slider.scss +0 -1
- data/vendor/assets/scss/components/_sticky.scss +1 -0
- data/vendor/assets/scss/components/_table.scss +7 -6
- data/vendor/assets/scss/components/_tabs.scss +1 -1
- data/vendor/assets/scss/components/_title-bar.scss +1 -1
- data/vendor/assets/scss/components/_tooltip.scss +74 -21
- data/vendor/assets/scss/components/_top-bar.scss +2 -0
- data/vendor/assets/scss/forms/_fieldset.scss +0 -1
- data/vendor/assets/scss/forms/_meter.scss +7 -1
- data/vendor/assets/scss/forms/_select.scss +4 -3
- data/vendor/assets/scss/forms/_text.scss +11 -2
- data/vendor/assets/scss/foundation.scss +17 -3
- data/vendor/assets/scss/grid/_flex-grid.scss +3 -52
- data/vendor/assets/scss/prototype/_arrow.scss +36 -0
- data/vendor/assets/scss/prototype/_border-box.scss +35 -0
- data/vendor/assets/scss/prototype/_border-none.scss +35 -0
- data/vendor/assets/scss/prototype/_bordered.scss +54 -0
- data/vendor/assets/scss/prototype/_box.scss +23 -0
- data/vendor/assets/scss/prototype/_display.scss +50 -0
- data/vendor/assets/scss/prototype/_font-styling.scss +95 -0
- data/vendor/assets/scss/prototype/_list-style-type.scss +95 -0
- data/vendor/assets/scss/prototype/_overflow.scss +72 -0
- data/vendor/assets/scss/prototype/_position.scss +114 -0
- data/vendor/assets/scss/prototype/_prototype.scss +91 -0
- data/vendor/assets/scss/prototype/_relation.scss +157 -0
- data/vendor/assets/scss/prototype/_rotate.scss +31 -0
- data/vendor/assets/scss/prototype/_rounded.scss +54 -0
- data/vendor/assets/scss/prototype/_separator.scss +96 -0
- data/vendor/assets/scss/prototype/_shadow.scss +43 -0
- data/vendor/assets/scss/prototype/_sizing.scss +73 -0
- data/vendor/assets/scss/prototype/_spacing.scss +204 -0
- data/vendor/assets/scss/prototype/_text-decoration.scss +48 -0
- data/vendor/assets/scss/prototype/_text-transformation.scss +48 -0
- data/vendor/assets/scss/prototype/_text-utilities.scss +88 -0
- data/vendor/assets/scss/prototype/_typescale.scss +20 -0
- data/vendor/assets/scss/settings/_settings.scss +291 -48
- data/vendor/assets/scss/typography/_base.scss +2 -2
- data/vendor/assets/scss/typography/_helpers.scss +6 -4
- data/vendor/assets/scss/util/_breakpoint.scss +60 -1
- data/vendor/assets/scss/util/_color.scss +8 -5
- data/vendor/assets/scss/util/_mixins.scss +45 -5
- data/vendor/assets/scss/xy-grid/_cell.scss +179 -0
- data/vendor/assets/scss/xy-grid/_classes.scss +455 -0
- data/vendor/assets/scss/xy-grid/_collapse.scss +54 -0
- data/vendor/assets/scss/xy-grid/_frame.scss +54 -0
- data/vendor/assets/scss/xy-grid/_grid.scss +56 -0
- data/vendor/assets/scss/xy-grid/_gutters.scss +45 -0
- data/vendor/assets/scss/xy-grid/_layout.scss +33 -0
- data/vendor/assets/scss/xy-grid/_position.scss +28 -0
- data/vendor/assets/scss/xy-grid/_xy-grid.scss +52 -0
- metadata +73 -4
@@ -1,6 +1,7 @@
|
|
1
1
|
'use strict';
|
2
2
|
|
3
|
-
|
3
|
+
import $ from 'jquery';
|
4
|
+
import { Motion } from './foundation.util.motion';
|
4
5
|
|
5
6
|
const MutationObserver = (function () {
|
6
7
|
var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];
|
@@ -17,70 +18,120 @@ const triggers = (el, type) => {
|
|
17
18
|
$(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);
|
18
19
|
});
|
19
20
|
};
|
21
|
+
|
22
|
+
var Triggers = {
|
23
|
+
Listeners: {
|
24
|
+
Basic: {},
|
25
|
+
Global: {}
|
26
|
+
},
|
27
|
+
Initializers: {}
|
28
|
+
}
|
29
|
+
|
30
|
+
Triggers.Listeners.Basic = {
|
31
|
+
openListener: function() {
|
32
|
+
triggers($(this), 'open');
|
33
|
+
},
|
34
|
+
closeListener: function() {
|
35
|
+
let id = $(this).data('close');
|
36
|
+
if (id) {
|
37
|
+
triggers($(this), 'close');
|
38
|
+
}
|
39
|
+
else {
|
40
|
+
$(this).trigger('close.zf.trigger');
|
41
|
+
}
|
42
|
+
},
|
43
|
+
toggleListener: function() {
|
44
|
+
let id = $(this).data('toggle');
|
45
|
+
if (id) {
|
46
|
+
triggers($(this), 'toggle');
|
47
|
+
} else {
|
48
|
+
$(this).trigger('toggle.zf.trigger');
|
49
|
+
}
|
50
|
+
},
|
51
|
+
closeableListener: function(e) {
|
52
|
+
e.stopPropagation();
|
53
|
+
let animation = $(this).data('closable');
|
54
|
+
|
55
|
+
if(animation !== ''){
|
56
|
+
Motion.animateOut($(this), animation, function() {
|
57
|
+
$(this).trigger('closed.zf');
|
58
|
+
});
|
59
|
+
}else{
|
60
|
+
$(this).fadeOut().trigger('closed.zf');
|
61
|
+
}
|
62
|
+
},
|
63
|
+
toggleFocusListener: function() {
|
64
|
+
let id = $(this).data('toggle-focus');
|
65
|
+
$(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);
|
66
|
+
}
|
67
|
+
};
|
68
|
+
|
20
69
|
// Elements with [data-open] will reveal a plugin that supports it when clicked.
|
21
|
-
|
22
|
-
|
23
|
-
|
70
|
+
Triggers.Initializers.addOpenListener = ($elem) => {
|
71
|
+
$elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);
|
72
|
+
$elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);
|
73
|
+
}
|
24
74
|
|
25
75
|
// Elements with [data-close] will close a plugin that supports it when clicked.
|
26
76
|
// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
}
|
32
|
-
else {
|
33
|
-
$(this).trigger('close.zf.trigger');
|
34
|
-
}
|
35
|
-
});
|
77
|
+
Triggers.Initializers.addCloseListener = ($elem) => {
|
78
|
+
$elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);
|
79
|
+
$elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);
|
80
|
+
}
|
36
81
|
|
37
82
|
// Elements with [data-toggle] will toggle a plugin that supports it when clicked.
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
} else {
|
43
|
-
$(this).trigger('toggle.zf.trigger');
|
44
|
-
}
|
45
|
-
});
|
83
|
+
Triggers.Initializers.addToggleListener = ($elem) => {
|
84
|
+
$elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);
|
85
|
+
$elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);
|
86
|
+
}
|
46
87
|
|
47
88
|
// Elements with [data-closable] will respond to close.zf.trigger events.
|
48
|
-
|
49
|
-
|
50
|
-
|
89
|
+
Triggers.Initializers.addCloseableListener = ($elem) => {
|
90
|
+
$elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);
|
91
|
+
$elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);
|
92
|
+
}
|
93
|
+
|
94
|
+
// Elements with [data-toggle-focus] will respond to coming in and out of focus
|
95
|
+
Triggers.Initializers.addToggleFocusListener = ($elem) => {
|
96
|
+
$elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);
|
97
|
+
$elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);
|
98
|
+
}
|
99
|
+
|
100
|
+
|
101
|
+
|
102
|
+
// More Global/complex listeners and triggers
|
103
|
+
Triggers.Listeners.Global = {
|
104
|
+
resizeListener: function($nodes) {
|
105
|
+
if(!MutationObserver){//fallback for IE 9
|
106
|
+
$nodes.each(function(){
|
107
|
+
$(this).triggerHandler('resizeme.zf.trigger');
|
108
|
+
});
|
109
|
+
}
|
110
|
+
//trigger all listening elements and signal a resize event
|
111
|
+
$nodes.attr('data-events', "resize");
|
112
|
+
},
|
113
|
+
scrollListener: function($nodes) {
|
114
|
+
if(!MutationObserver){//fallback for IE 9
|
115
|
+
$nodes.each(function(){
|
116
|
+
$(this).triggerHandler('scrollme.zf.trigger');
|
117
|
+
});
|
118
|
+
}
|
119
|
+
//trigger all listening elements and signal a scroll event
|
120
|
+
$nodes.attr('data-events', "scroll");
|
121
|
+
},
|
122
|
+
closeMeListener: function(e, pluginId){
|
123
|
+
let plugin = e.namespace.split('.')[0];
|
124
|
+
let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box="${pluginId}"]`);
|
51
125
|
|
52
|
-
|
53
|
-
|
54
|
-
|
126
|
+
plugins.each(function(){
|
127
|
+
let _this = $(this);
|
128
|
+
_this.triggerHandler('close.zf.trigger', [_this]);
|
55
129
|
});
|
56
|
-
}else{
|
57
|
-
$(this).fadeOut().trigger('closed.zf');
|
58
130
|
}
|
59
|
-
});
|
60
|
-
|
61
|
-
$(document).on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', function() {
|
62
|
-
let id = $(this).data('toggle-focus');
|
63
|
-
$(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);
|
64
|
-
});
|
65
|
-
|
66
|
-
/**
|
67
|
-
* Fires once after all other scripts have loaded
|
68
|
-
* @function
|
69
|
-
* @private
|
70
|
-
*/
|
71
|
-
$(window).on('load', () => {
|
72
|
-
checkListeners();
|
73
|
-
});
|
74
|
-
|
75
|
-
function checkListeners() {
|
76
|
-
eventsListener();
|
77
|
-
resizeListener();
|
78
|
-
scrollListener();
|
79
|
-
closemeListener();
|
80
131
|
}
|
81
132
|
|
82
|
-
|
83
|
-
function
|
133
|
+
// Global, parses whole document.
|
134
|
+
Triggers.Initializers.addClosemeListener = function(pluginName) {
|
84
135
|
var yetiBoxes = $('[data-yeti-box]'),
|
85
136
|
plugNames = ['dropdown', 'tooltip', 'reveal'];
|
86
137
|
|
@@ -98,113 +149,120 @@ function closemeListener(pluginName) {
|
|
98
149
|
return `closeme.zf.${name}`;
|
99
150
|
}).join(' ');
|
100
151
|
|
101
|
-
$(window).off(listeners).on(listeners,
|
102
|
-
|
103
|
-
|
152
|
+
$(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);
|
153
|
+
}
|
154
|
+
}
|
104
155
|
|
105
|
-
|
106
|
-
|
156
|
+
function debounceGlobalListener(debounce, trigger, listener) {
|
157
|
+
let timer, args = Array.prototype.slice.call(arguments, 3);
|
158
|
+
$(window).off(trigger).on(trigger, function(e) {
|
159
|
+
if (timer) { clearTimeout(timer); }
|
160
|
+
timer = setTimeout(function(){
|
161
|
+
listener.apply(null, args);
|
162
|
+
}, debounce || 10);//default time to emit scroll event
|
163
|
+
});
|
164
|
+
}
|
107
165
|
|
108
|
-
|
109
|
-
|
110
|
-
|
166
|
+
Triggers.Initializers.addResizeListener = function(debounce){
|
167
|
+
let $nodes = $('[data-resize]');
|
168
|
+
if($nodes.length){
|
169
|
+
debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);
|
111
170
|
}
|
112
171
|
}
|
113
172
|
|
114
|
-
function
|
115
|
-
let
|
116
|
-
$nodes = $('[data-resize]');
|
173
|
+
Triggers.Initializers.addScrollListener = function(debounce){
|
174
|
+
let $nodes = $('[data-scroll]');
|
117
175
|
if($nodes.length){
|
118
|
-
|
119
|
-
|
120
|
-
|
176
|
+
debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);
|
177
|
+
}
|
178
|
+
}
|
179
|
+
|
180
|
+
Triggers.Initializers.addMutationEventsListener = function($elem) {
|
181
|
+
if(!MutationObserver){ return false; }
|
182
|
+
let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');
|
121
183
|
|
122
|
-
|
184
|
+
//element callback
|
185
|
+
var listeningElementsMutation = function (mutationRecordsList) {
|
186
|
+
var $target = $(mutationRecordsList[0].target);
|
123
187
|
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
188
|
+
//trigger the event handler for the element depending on type
|
189
|
+
switch (mutationRecordsList[0].type) {
|
190
|
+
case "attributes":
|
191
|
+
if ($target.attr("data-events") === "scroll" && mutationRecordsList[0].attributeName === "data-events") {
|
192
|
+
$target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);
|
128
193
|
}
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
194
|
+
if ($target.attr("data-events") === "resize" && mutationRecordsList[0].attributeName === "data-events") {
|
195
|
+
$target.triggerHandler('resizeme.zf.trigger', [$target]);
|
196
|
+
}
|
197
|
+
if (mutationRecordsList[0].attributeName === "style") {
|
198
|
+
$target.closest("[data-mutate]").attr("data-events","mutate");
|
199
|
+
$target.closest("[data-mutate]").triggerHandler('mutateme.zf.trigger', [$target.closest("[data-mutate]")]);
|
200
|
+
}
|
201
|
+
break;
|
202
|
+
|
203
|
+
case "childList":
|
204
|
+
$target.closest("[data-mutate]").attr("data-events","mutate");
|
205
|
+
$target.closest("[data-mutate]").triggerHandler('mutateme.zf.trigger', [$target.closest("[data-mutate]")]);
|
206
|
+
break;
|
207
|
+
|
208
|
+
default:
|
209
|
+
return false;
|
210
|
+
//nothing
|
211
|
+
}
|
212
|
+
};
|
213
|
+
|
214
|
+
if ($nodes.length) {
|
215
|
+
//for each element that needs to listen for resizing, scrolling, or mutation add a single observer
|
216
|
+
for (var i = 0; i <= $nodes.length - 1; i++) {
|
217
|
+
var elementObserver = new MutationObserver(listeningElementsMutation);
|
218
|
+
elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: ["data-events", "style"] });
|
219
|
+
}
|
133
220
|
}
|
134
221
|
}
|
135
222
|
|
136
|
-
function
|
137
|
-
let
|
138
|
-
$nodes = $('[data-scroll]');
|
139
|
-
if($nodes.length){
|
140
|
-
$(window).off('scroll.zf.trigger')
|
141
|
-
.on('scroll.zf.trigger', function(e){
|
142
|
-
if(timer){ clearTimeout(timer); }
|
223
|
+
Triggers.Initializers.addSimpleListeners = function() {
|
224
|
+
let $document = $(document);
|
143
225
|
|
144
|
-
|
226
|
+
Triggers.Initializers.addOpenListener($document);
|
227
|
+
Triggers.Initializers.addCloseListener($document);
|
228
|
+
Triggers.Initializers.addToggleListener($document);
|
229
|
+
Triggers.Initializers.addCloseableListener($document);
|
230
|
+
Triggers.Initializers.addToggleFocusListener($document);
|
145
231
|
|
146
|
-
if(!MutationObserver){//fallback for IE 9
|
147
|
-
$nodes.each(function(){
|
148
|
-
$(this).triggerHandler('scrollme.zf.trigger');
|
149
|
-
});
|
150
|
-
}
|
151
|
-
//trigger all listening elements and signal a scroll event
|
152
|
-
$nodes.attr('data-events', "scroll");
|
153
|
-
}, debounce || 10);//default time to emit scroll event
|
154
|
-
});
|
155
|
-
}
|
156
232
|
}
|
157
233
|
|
158
|
-
function
|
159
|
-
|
160
|
-
|
234
|
+
Triggers.Initializers.addGlobalListeners = function() {
|
235
|
+
let $document = $(document);
|
236
|
+
Triggers.Initializers.addMutationEventsListener($document);
|
237
|
+
Triggers.Initializers.addResizeListener();
|
238
|
+
Triggers.Initializers.addScrollListener();
|
239
|
+
Triggers.Initializers.addClosemeListener();
|
240
|
+
}
|
161
241
|
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
}
|
176
|
-
if (mutationRecordsList[0].attributeName === "style") {
|
177
|
-
$target.closest("[data-mutate]").attr("data-events","mutate");
|
178
|
-
$target.closest("[data-mutate]").triggerHandler('mutateme.zf.trigger', [$target.closest("[data-mutate]")]);
|
179
|
-
}
|
180
|
-
break;
|
181
|
-
|
182
|
-
case "childList":
|
183
|
-
$target.closest("[data-mutate]").attr("data-events","mutate");
|
184
|
-
$target.closest("[data-mutate]").triggerHandler('mutateme.zf.trigger', [$target.closest("[data-mutate]")]);
|
185
|
-
break;
|
186
|
-
|
187
|
-
default:
|
188
|
-
return false;
|
189
|
-
//nothing
|
190
|
-
}
|
191
|
-
};
|
192
|
-
|
193
|
-
if (nodes.length) {
|
194
|
-
//for each element that needs to listen for resizing, scrolling, or mutation add a single observer
|
195
|
-
for (var i = 0; i <= nodes.length - 1; i++) {
|
196
|
-
var elementObserver = new MutationObserver(listeningElementsMutation);
|
197
|
-
elementObserver.observe(nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: ["data-events", "style"] });
|
198
|
-
}
|
242
|
+
|
243
|
+
Triggers.init = function($, Foundation) {
|
244
|
+
if (typeof($.triggersInitialized) === 'undefined') {
|
245
|
+
let $document = $(document);
|
246
|
+
|
247
|
+
if(document.readyState === "complete") {
|
248
|
+
Triggers.Initializers.addSimpleListeners();
|
249
|
+
Triggers.Initializers.addGlobalListeners();
|
250
|
+
} else {
|
251
|
+
$(window).on('load', () => {
|
252
|
+
Triggers.Initializers.addSimpleListeners();
|
253
|
+
Triggers.Initializers.addGlobalListeners();
|
254
|
+
});
|
199
255
|
}
|
200
|
-
}
|
201
256
|
|
202
|
-
// ------------------------------------
|
203
257
|
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
258
|
+
$.triggersInitialized = true;
|
259
|
+
}
|
260
|
+
|
261
|
+
if(Foundation) {
|
262
|
+
Foundation.Triggers = Triggers;
|
263
|
+
// Legacy included to be backwards compatible for now.
|
264
|
+
Foundation.IHearYou = Triggers.Initializers.addGlobalListeners
|
265
|
+
}
|
266
|
+
}
|
209
267
|
|
210
|
-
}
|
268
|
+
export {Triggers};
|
@@ -74,6 +74,10 @@ $global-margin: 1rem !default;
|
|
74
74
|
/// @type Number
|
75
75
|
$global-padding: 1rem !default;
|
76
76
|
|
77
|
+
/// Global value used for positioning on components.
|
78
|
+
/// @type Number
|
79
|
+
$global-position: 1rem !default;
|
80
|
+
|
77
81
|
/// Global font weight used for normal type.
|
78
82
|
/// @type Keyword | Number
|
79
83
|
$global-weight-normal: normal !default;
|
@@ -86,13 +90,24 @@ $global-weight-bold: bold !default;
|
|
86
90
|
/// @type Number
|
87
91
|
$global-radius: 0 !default;
|
88
92
|
|
93
|
+
/// Global value used for all menu styles. Can be overwritten at individual menu component level.
|
94
|
+
/// @type Number
|
95
|
+
$global-menu-padding: 0.7rem 1rem !default;
|
96
|
+
|
97
|
+
/// Global value used for all menu styles. Nested margin for submenu.
|
98
|
+
$global-menu-nested-margin: 1rem !default;
|
99
|
+
|
89
100
|
/// Sets the text direction of the CSS. Can be either `ltr` or `rtl`.
|
90
101
|
/// @type Keyword
|
91
102
|
$global-text-direction: ltr !default;
|
92
103
|
|
93
104
|
/// Enables flexbox for components that support it.
|
94
105
|
/// @type Boolean
|
95
|
-
$global-flexbox:
|
106
|
+
$global-flexbox: true !default;
|
107
|
+
|
108
|
+
/// Enabled responsive breakpoints for prototypes if applicable
|
109
|
+
/// @type Boolean
|
110
|
+
$global-prototype-breakpoints: false !default;
|
96
111
|
|
97
112
|
@if not map-has-key($foundation-palette, primary) {
|
98
113
|
@error 'In $foundation-palette, you must have a color named "primary".';
|
@@ -102,6 +117,10 @@ $global-flexbox: false !default;
|
|
102
117
|
$global-left: if($global-text-direction == rtl, right, left);
|
103
118
|
$global-right: if($global-text-direction == rtl, left, right);
|
104
119
|
|
120
|
+
/// Global tolerance for color pick contrast.
|
121
|
+
/// @type Number
|
122
|
+
$global-color-pick-contrast-tolerance: 0 !default;
|
123
|
+
|
105
124
|
// Internal variables used for colors
|
106
125
|
$primary-color: get-color(primary);
|
107
126
|
$secondary-color: get-color(secondary);
|
@@ -202,6 +221,15 @@ $alert-color: get-color(alert);
|
|
202
221
|
overflow: auto;
|
203
222
|
}
|
204
223
|
|
224
|
+
// Make reset inherit font-family instead of settings sans-serif
|
225
|
+
button,
|
226
|
+
input,
|
227
|
+
optgroup,
|
228
|
+
select,
|
229
|
+
textarea {
|
230
|
+
font-family: inherit;
|
231
|
+
}
|
232
|
+
|
205
233
|
// Internal classes to show/hide elements in JavaScript
|
206
234
|
.is-visible {
|
207
235
|
display: block !important;
|