fomantic-ui 2.10.0-beta.0 → 2.10.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.all-contributorsrc +9 -0
- package/.eslintrc.js +0 -10
- package/.github/workflows/ci.yml +3 -3
- package/CONTRIBUTING.md +4 -1
- package/CONTRIBUTORS.md +1 -0
- package/FAQ.md +7 -2
- package/README.md +5 -9
- package/ROADMAP.md +4 -4
- package/SECURITY.md +8 -7
- package/changelog-setup.js +64 -70
- package/dist/components/accordion.css +1 -1
- package/dist/components/accordion.js +103 -142
- package/dist/components/accordion.min.css +1 -1
- package/dist/components/accordion.min.js +2 -2
- package/dist/components/ad.css +1 -1
- package/dist/components/ad.min.css +1 -1
- package/dist/components/api.js +157 -210
- package/dist/components/api.min.js +2 -2
- package/dist/components/breadcrumb.css +1 -1
- package/dist/components/breadcrumb.min.css +1 -1
- package/dist/components/button.css +1 -2
- package/dist/components/button.min.css +2 -2
- package/dist/components/calendar.css +1 -2
- package/dist/components/calendar.js +314 -352
- package/dist/components/calendar.min.css +2 -2
- package/dist/components/calendar.min.js +2 -2
- package/dist/components/card.css +1 -1
- package/dist/components/card.min.css +1 -1
- package/dist/components/checkbox.css +1 -2
- package/dist/components/checkbox.js +85 -135
- package/dist/components/checkbox.min.css +2 -2
- package/dist/components/checkbox.min.js +2 -2
- package/dist/components/comment.css +1 -1
- package/dist/components/comment.min.css +1 -1
- package/dist/components/container.css +2 -4
- package/dist/components/container.min.css +2 -2
- package/dist/components/dimmer.css +1 -11
- package/dist/components/dimmer.js +61 -94
- package/dist/components/dimmer.min.css +2 -2
- package/dist/components/dimmer.min.js +2 -2
- package/dist/components/divider.css +1 -2
- package/dist/components/divider.min.css +2 -2
- package/dist/components/dropdown.css +30 -51
- package/dist/components/dropdown.js +736 -1055
- package/dist/components/dropdown.min.css +2 -2
- package/dist/components/dropdown.min.js +2 -2
- package/dist/components/embed.css +1 -1
- package/dist/components/embed.js +85 -114
- package/dist/components/embed.min.css +1 -1
- package/dist/components/embed.min.js +2 -2
- package/dist/components/emoji.css +3809 -7617
- package/dist/components/emoji.min.css +2 -2
- package/dist/components/feed.css +1 -1
- package/dist/components/feed.min.css +1 -1
- package/dist/components/flag.css +1 -1
- package/dist/components/flag.min.css +1 -1
- package/dist/components/flyout.css +2 -3
- package/dist/components/flyout.js +226 -355
- package/dist/components/flyout.min.css +2 -2
- package/dist/components/flyout.min.js +2 -2
- package/dist/components/form.css +5 -95
- package/dist/components/form.js +335 -444
- package/dist/components/form.min.css +2 -2
- package/dist/components/form.min.js +2 -2
- package/dist/components/grid.css +2 -58
- package/dist/components/grid.min.css +2 -2
- package/dist/components/header.css +1 -1
- package/dist/components/header.min.css +1 -1
- package/dist/components/icon.css +4 -4
- package/dist/components/icon.min.css +2 -2
- package/dist/components/image.css +1 -1
- package/dist/components/image.min.css +1 -1
- package/dist/components/input.css +1 -536
- package/dist/components/input.min.css +2 -2
- package/dist/components/item.css +1 -1
- package/dist/components/item.min.css +1 -1
- package/dist/components/label.css +1 -1
- package/dist/components/label.min.css +1 -1
- package/dist/components/list.css +1 -3
- package/dist/components/list.min.css +2 -2
- package/dist/components/loader.css +1 -1
- package/dist/components/loader.min.css +1 -1
- package/dist/components/menu.css +1 -9
- package/dist/components/menu.min.css +2 -2
- package/dist/components/message.css +1 -1
- package/dist/components/message.min.css +1 -1
- package/dist/components/modal.css +5 -9
- package/dist/components/modal.js +261 -384
- package/dist/components/modal.min.css +2 -2
- package/dist/components/modal.min.js +2 -2
- package/dist/components/nag.css +1 -1
- package/dist/components/nag.js +68 -98
- package/dist/components/nag.min.css +1 -1
- package/dist/components/nag.min.js +2 -2
- package/dist/components/placeholder.css +1 -1
- package/dist/components/placeholder.min.css +1 -1
- package/dist/components/popup.css +1 -2
- package/dist/components/popup.js +198 -271
- package/dist/components/popup.min.css +2 -2
- package/dist/components/popup.min.js +2 -2
- package/dist/components/progress.css +1 -1
- package/dist/components/progress.js +109 -144
- package/dist/components/progress.min.css +1 -1
- package/dist/components/progress.min.js +2 -2
- package/dist/components/rail.css +1 -1
- package/dist/components/rail.min.css +1 -1
- package/dist/components/rating.css +1 -1
- package/dist/components/rating.js +91 -123
- package/dist/components/rating.min.css +1 -1
- package/dist/components/rating.min.js +2 -2
- package/dist/components/reset.css +1 -1
- package/dist/components/reset.min.css +1 -1
- package/dist/components/reveal.css +1 -1
- package/dist/components/reveal.min.css +1 -1
- package/dist/components/search.css +2 -9
- package/dist/components/search.js +277 -379
- package/dist/components/search.min.css +2 -2
- package/dist/components/search.min.js +2 -2
- package/dist/components/segment.css +2 -7
- package/dist/components/segment.min.css +2 -2
- package/dist/components/shape.css +1 -2
- package/dist/components/shape.js +158 -224
- package/dist/components/shape.min.css +2 -2
- package/dist/components/shape.min.js +2 -2
- package/dist/components/sidebar.css +2 -3
- package/dist/components/sidebar.js +124 -206
- package/dist/components/sidebar.min.css +2 -2
- package/dist/components/sidebar.min.js +2 -2
- package/dist/components/site.css +9 -25
- package/dist/components/site.js +38 -57
- package/dist/components/site.min.css +2 -2
- package/dist/components/site.min.js +2 -2
- package/dist/components/slider.css +1 -1
- package/dist/components/slider.js +246 -329
- package/dist/components/slider.min.css +1 -1
- package/dist/components/slider.min.js +2 -2
- package/dist/components/state.js +70 -100
- package/dist/components/state.min.js +2 -2
- package/dist/components/statistic.css +1 -1
- package/dist/components/statistic.min.css +1 -1
- package/dist/components/step.css +1 -1
- package/dist/components/step.min.css +1 -1
- package/dist/components/sticky.css +1 -1
- package/dist/components/sticky.js +135 -180
- package/dist/components/sticky.min.css +1 -1
- package/dist/components/sticky.min.js +2 -2
- package/dist/components/tab.css +1 -1
- package/dist/components/tab.js +176 -244
- package/dist/components/tab.min.css +1 -1
- package/dist/components/tab.min.js +2 -2
- package/dist/components/table.css +3 -37
- package/dist/components/table.min.css +2 -2
- package/dist/components/text.css +1 -1
- package/dist/components/text.min.css +1 -1
- package/dist/components/toast.css +1 -3
- package/dist/components/toast.js +109 -147
- package/dist/components/toast.min.css +1 -1
- package/dist/components/toast.min.js +2 -2
- package/dist/components/transition.css +1 -1
- package/dist/components/transition.js +91 -146
- package/dist/components/transition.min.css +1 -1
- package/dist/components/transition.min.js +2 -2
- package/dist/components/visibility.js +146 -224
- package/dist/components/visibility.min.js +2 -2
- package/dist/semantic.css +3906 -8720
- package/dist/semantic.js +4397 -6155
- package/dist/semantic.min.css +2 -2
- package/dist/semantic.min.js +2 -2
- package/examples/assets/show-examples.js +2 -4
- package/gulpfile.js +5 -7
- package/package.json +20 -16
- package/scripts/nightly-version.js +7 -10
- package/src/README.md +3 -3
- package/src/definitions/behaviors/api.js +156 -209
- package/src/definitions/behaviors/form.js +334 -443
- package/src/definitions/behaviors/state.js +69 -99
- package/src/definitions/behaviors/visibility.js +145 -223
- package/src/definitions/collections/form.less +1 -13
- package/src/definitions/collections/grid.less +1 -61
- package/src/definitions/collections/menu.less +0 -11
- package/src/definitions/collections/table.less +1 -35
- package/src/definitions/elements/input.less +1 -61
- package/src/definitions/elements/segment.less +0 -6
- package/src/definitions/globals/site.js +37 -56
- package/src/definitions/globals/site.less +2 -18
- package/src/definitions/modules/accordion.js +102 -141
- package/src/definitions/modules/calendar.js +313 -351
- package/src/definitions/modules/checkbox.js +84 -134
- package/src/definitions/modules/dimmer.js +60 -93
- package/src/definitions/modules/dimmer.less +0 -9
- package/src/definitions/modules/dropdown.js +735 -1054
- package/src/definitions/modules/dropdown.less +31 -47
- package/src/definitions/modules/embed.js +84 -113
- package/src/definitions/modules/flyout.js +225 -354
- package/src/definitions/modules/modal.js +260 -383
- package/src/definitions/modules/modal.less +1 -1
- package/src/definitions/modules/nag.js +67 -97
- package/src/definitions/modules/popup.js +197 -270
- package/src/definitions/modules/progress.js +108 -143
- package/src/definitions/modules/rating.js +90 -122
- package/src/definitions/modules/search.js +276 -378
- package/src/definitions/modules/search.less +0 -3
- package/src/definitions/modules/shape.js +157 -223
- package/src/definitions/modules/sidebar.js +123 -205
- package/src/definitions/modules/slider.js +245 -328
- package/src/definitions/modules/slider.less +1 -1
- package/src/definitions/modules/sticky.js +134 -179
- package/src/definitions/modules/tab.js +175 -243
- package/src/definitions/modules/toast.js +108 -146
- package/src/definitions/modules/toast.less +1 -1
- package/src/definitions/modules/transition.js +90 -145
- package/src/theme.less +0 -13
- package/src/themes/basic/elements/icon.variables +1 -1
- package/src/themes/default/collections/grid.variables +0 -30
- package/src/themes/default/collections/table.variables +1 -5
- package/src/themes/default/elements/icon.variables +3 -3
- package/src/themes/default/globals/site.variables +8 -15
- package/src/themes/default/globals/variation.variables +1 -2
- package/src/themes/default/modules/dropdown.variables +1 -0
- package/src/themes/default/modules/slider.variables +1 -1
- package/src/themes/github/elements/icon.variables +1 -1
- package/src/themes/material/elements/icon.variables +1 -1
- package/tasks/README.md +1 -1
- package/tasks/admin/components/create.js +89 -122
- package/tasks/admin/components/init.js +34 -65
- package/tasks/admin/components/update.js +50 -61
- package/tasks/admin/distributions/create.js +71 -111
- package/tasks/admin/distributions/init.js +32 -63
- package/tasks/admin/distributions/update.js +49 -57
- package/tasks/admin/publish.js +1 -1
- package/tasks/admin/register.js +14 -19
- package/tasks/admin/release.js +2 -2
- package/tasks/build/assets.js +14 -18
- package/tasks/build/css.js +59 -68
- package/tasks/build/javascript.js +48 -56
- package/tasks/build.js +4 -6
- package/tasks/check-install.js +5 -8
- package/tasks/clean.js +5 -7
- package/tasks/collections/admin.js +14 -16
- package/tasks/collections/build.js +6 -8
- package/tasks/collections/docs.js +4 -6
- package/tasks/collections/install.js +2 -4
- package/tasks/collections/rtl.js +2 -4
- package/tasks/collections/various.js +2 -4
- package/tasks/config/admin/github.js +9 -19
- package/tasks/config/admin/templates/README.md +2 -2
- package/tasks/config/admin/templates/bower.json +2 -4
- package/tasks/config/admin/templates/composer.json +1 -1
- package/tasks/config/admin/templates/css-package.js +1 -4
- package/tasks/config/admin/templates/less-package.js +1 -3
- package/tasks/config/defaults.js +0 -1
- package/tasks/config/npm/gulpfile.js +4 -6
- package/tasks/config/project/config.js +27 -35
- package/tasks/config/project/install.js +64 -82
- package/tasks/config/project/release.js +7 -9
- package/tasks/config/tasks.js +16 -30
- package/tasks/config/user.js +14 -20
- package/tasks/docs/build.js +26 -31
- package/tasks/docs/metadata.js +30 -39
- package/tasks/docs/serve.js +23 -27
- package/tasks/install.js +94 -128
- package/tasks/rtl/build.js +2 -4
- package/tasks/rtl/watch.js +3 -5
- package/tasks/watch.js +13 -13
- package/test/meteor/fonts.js +1 -2
- package/test/modules/module.spec.js +16 -18
- package/types/fomantic-ui-calendar.d.ts +1 -1
- package/types/fomantic-ui-dropdown.d.ts +45 -1
- package/types/fomantic-ui-embed.d.ts +1 -1
- package/types/fomantic-ui-flyout.d.ts +1 -1
- package/types/fomantic-ui-form.d.ts +0 -7
- package/types/fomantic-ui-modal.d.ts +1 -1
- package/types/fomantic-ui-search.d.ts +12 -6
- package/types/fomantic-ui-toast.d.ts +1 -1
- package/src/themes/basic/assets/fonts/icons.woff +0 -0
- package/src/themes/default/assets/fonts/Lato-Bold.woff +0 -0
- package/src/themes/default/assets/fonts/Lato-BoldItalic.woff +0 -0
- package/src/themes/default/assets/fonts/Lato-Italic.woff +0 -0
- package/src/themes/default/assets/fonts/Lato-Regular.woff +0 -0
- package/src/themes/default/assets/fonts/LatoLatin-Bold.woff +0 -0
- package/src/themes/default/assets/fonts/LatoLatin-BoldItalic.woff +0 -0
- package/src/themes/default/assets/fonts/LatoLatin-Italic.woff +0 -0
- package/src/themes/default/assets/fonts/LatoLatin-Regular.woff +0 -0
- package/src/themes/default/assets/fonts/brand-icons.woff +0 -0
- package/src/themes/default/assets/fonts/icons.woff +0 -0
- package/src/themes/default/assets/fonts/outline-icons.woff +0 -0
- package/src/themes/github/assets/fonts/octicons.woff +0 -0
- package/src/themes/material/assets/fonts/icons.woff +0 -0
package/dist/components/api.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* # Fomantic-UI 2.10.0-beta.
|
2
|
+
* # Fomantic-UI 2.10.0-beta.10+3ca268e - API
|
3
3
|
* https://github.com/fomantic/Fomantic-UI/
|
4
4
|
*
|
5
5
|
*
|
@@ -24,72 +24,68 @@
|
|
24
24
|
: globalThis;
|
25
25
|
|
26
26
|
$.fn.api = function (parameters) {
|
27
|
-
|
28
|
-
|
29
|
-
$
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
$context = win.frameElement ? contextCheck(context, win.parent) : window;
|
46
|
-
}
|
27
|
+
// use window context if none specified
|
28
|
+
let $allModules = isFunction(this)
|
29
|
+
? $(window)
|
30
|
+
: $(this);
|
31
|
+
let time = Date.now();
|
32
|
+
let performance = [];
|
33
|
+
|
34
|
+
let query = arguments[0];
|
35
|
+
let methodInvoked = typeof query === 'string';
|
36
|
+
let queryArguments = [].slice.call(arguments, 1);
|
37
|
+
let contextCheck = function (context, win) {
|
38
|
+
let $context;
|
39
|
+
if ([window, document].indexOf(context) >= 0) {
|
40
|
+
$context = $(context);
|
41
|
+
} else {
|
42
|
+
$context = $(win.document).find(context);
|
43
|
+
if ($context.length === 0) {
|
44
|
+
$context = win.frameElement ? contextCheck(context, win.parent) : window;
|
47
45
|
}
|
46
|
+
}
|
48
47
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
;
|
48
|
+
return $context;
|
49
|
+
};
|
50
|
+
let returnedValue;
|
53
51
|
|
54
52
|
$allModules.each(function () {
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
module
|
92
|
-
;
|
53
|
+
let settings = $.isPlainObject(parameters)
|
54
|
+
? $.extend(true, {}, $.fn.api.settings, parameters)
|
55
|
+
: $.extend({}, $.fn.api.settings);
|
56
|
+
|
57
|
+
// internal aliases
|
58
|
+
let regExp = settings.regExp;
|
59
|
+
let namespace = settings.namespace;
|
60
|
+
let metadata = settings.metadata;
|
61
|
+
let selector = settings.selector;
|
62
|
+
let error = settings.error;
|
63
|
+
let className = settings.className;
|
64
|
+
|
65
|
+
// define namespaces for modules
|
66
|
+
let eventNamespace = '.' + namespace;
|
67
|
+
let moduleNamespace = 'module-' + namespace;
|
68
|
+
|
69
|
+
// element that creates request
|
70
|
+
let $module = $(this);
|
71
|
+
let $form = $module.closest(selector.form);
|
72
|
+
|
73
|
+
// context used for state
|
74
|
+
let $context = settings.stateContext ? contextCheck(settings.stateContext, window) : $module;
|
75
|
+
|
76
|
+
// request details
|
77
|
+
let ajaxSettings;
|
78
|
+
let requestSettings;
|
79
|
+
let url;
|
80
|
+
let data;
|
81
|
+
let requestStartTime;
|
82
|
+
let originalData;
|
83
|
+
|
84
|
+
// standard module
|
85
|
+
let element = this;
|
86
|
+
let context = $context[0];
|
87
|
+
let instance = $module.data(moduleNamespace);
|
88
|
+
let module;
|
93
89
|
|
94
90
|
module = {
|
95
91
|
|
@@ -105,28 +101,23 @@
|
|
105
101
|
module.verbose('Storing instance of module', module);
|
106
102
|
instance = module;
|
107
103
|
$module
|
108
|
-
.data(moduleNamespace, instance)
|
109
|
-
;
|
104
|
+
.data(moduleNamespace, instance);
|
110
105
|
},
|
111
106
|
|
112
107
|
destroy: function () {
|
113
108
|
module.verbose('Destroying previous module for', element);
|
114
109
|
$module
|
115
110
|
.removeData(moduleNamespace)
|
116
|
-
.off(eventNamespace)
|
117
|
-
;
|
111
|
+
.off(eventNamespace);
|
118
112
|
},
|
119
113
|
|
120
114
|
bind: {
|
121
115
|
events: function () {
|
122
|
-
|
123
|
-
triggerEvent = module.get.event()
|
124
|
-
;
|
116
|
+
let triggerEvent = module.get.event();
|
125
117
|
if (triggerEvent) {
|
126
118
|
module.verbose('Attaching API events to element', triggerEvent);
|
127
119
|
$module
|
128
|
-
.on(triggerEvent + eventNamespace, module.event.trigger)
|
129
|
-
;
|
120
|
+
.on(triggerEvent + eventNamespace, module.event.trigger);
|
130
121
|
} else if (settings.on === 'now') {
|
131
122
|
module.debug('Querying API endpoint immediately');
|
132
123
|
module.query();
|
@@ -150,9 +141,7 @@
|
|
150
141
|
|
151
142
|
read: {
|
152
143
|
cachedResponse: function (url) {
|
153
|
-
|
154
|
-
response
|
155
|
-
;
|
144
|
+
let response;
|
156
145
|
if (window.Storage === undefined) {
|
157
146
|
module.error(error.noStorage);
|
158
147
|
|
@@ -211,7 +200,7 @@
|
|
211
200
|
// call beforesend and get any settings changes
|
212
201
|
requestSettings = module.get.settings();
|
213
202
|
|
214
|
-
// check if before send
|
203
|
+
// check if before send canceled request
|
215
204
|
if (requestSettings === false) {
|
216
205
|
module.cancelled = true;
|
217
206
|
module.error(error.beforeSend);
|
@@ -356,10 +345,8 @@
|
|
356
345
|
|
357
346
|
add: {
|
358
347
|
urlData: function (url, urlData) {
|
359
|
-
|
360
|
-
|
361
|
-
optionalVariables
|
362
|
-
;
|
348
|
+
let requiredVariables;
|
349
|
+
let optionalVariables;
|
363
350
|
if (url) {
|
364
351
|
requiredVariables = url.match(regExp.required);
|
365
352
|
optionalVariables = url.match(regExp.optional);
|
@@ -367,19 +354,17 @@
|
|
367
354
|
if (requiredVariables) {
|
368
355
|
module.debug('Looking for required URL variables', requiredVariables);
|
369
356
|
$.each(requiredVariables, function (index, templatedString) {
|
370
|
-
var
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
: urlData[variable]))
|
382
|
-
;
|
357
|
+
// allow legacy {$var} style
|
358
|
+
let variable = templatedString.indexOf('$') !== -1
|
359
|
+
? templatedString.slice(2, -1)
|
360
|
+
: templatedString.slice(1, -1);
|
361
|
+
let value = $.isPlainObject(urlData) && urlData[variable] !== undefined
|
362
|
+
? urlData[variable]
|
363
|
+
: ($module.data(variable) !== undefined
|
364
|
+
? $module.data(variable)
|
365
|
+
: ($context.data(variable) !== undefined // eslint-disable-line unicorn/no-nested-ternary
|
366
|
+
? $context.data(variable)
|
367
|
+
: urlData[variable]));
|
383
368
|
// remove value
|
384
369
|
if (value === undefined) {
|
385
370
|
module.error(error.requiredParameter, variable, url);
|
@@ -398,19 +383,17 @@
|
|
398
383
|
if (optionalVariables) {
|
399
384
|
module.debug('Looking for optional URL variables', requiredVariables);
|
400
385
|
$.each(optionalVariables, function (index, templatedString) {
|
401
|
-
var
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
: urlData[variable]))
|
413
|
-
;
|
386
|
+
// allow legacy {/$var} style
|
387
|
+
let variable = templatedString.indexOf('$') !== -1
|
388
|
+
? templatedString.slice(3, -1)
|
389
|
+
: templatedString.slice(2, -1);
|
390
|
+
let value = $.isPlainObject(urlData) && urlData[variable] !== undefined
|
391
|
+
? urlData[variable]
|
392
|
+
: ($module.data(variable) !== undefined
|
393
|
+
? $module.data(variable)
|
394
|
+
: ($context.data(variable) !== undefined // eslint-disable-line unicorn/no-nested-ternary
|
395
|
+
? $context.data(variable)
|
396
|
+
: urlData[variable]));
|
414
397
|
// optional replacement
|
415
398
|
if (value !== undefined) {
|
416
399
|
module.verbose('Optional variable Found', variable, value);
|
@@ -429,11 +412,9 @@
|
|
429
412
|
return url;
|
430
413
|
},
|
431
414
|
formData: function (data) {
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
useFormDataApi = settings.serializeForm === 'formdata'
|
436
|
-
;
|
415
|
+
let formData = {};
|
416
|
+
let hasOtherData;
|
417
|
+
let useFormDataApi = settings.serializeForm === 'formdata';
|
437
418
|
data = data || originalData || settings.data;
|
438
419
|
hasOtherData = $.isPlainObject(data);
|
439
420
|
|
@@ -442,16 +423,14 @@
|
|
442
423
|
settings.processData = settings.processData !== undefined ? settings.processData : false;
|
443
424
|
settings.contentType = settings.contentType !== undefined ? settings.contentType : false;
|
444
425
|
} else {
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
}
|
454
|
-
;
|
426
|
+
let formArray = $form.serializeArray();
|
427
|
+
let pushes = {};
|
428
|
+
let pushValues = {};
|
429
|
+
let build = function (base, key, value) {
|
430
|
+
base[key] = value;
|
431
|
+
|
432
|
+
return base;
|
433
|
+
};
|
455
434
|
// add files
|
456
435
|
$.each($('input[type="file"]', $form), function (i, tag) {
|
457
436
|
$.each($(tag)[0].files, function (j, file) {
|
@@ -462,17 +441,15 @@
|
|
462
441
|
if (!regExp.validate.test(el.name)) {
|
463
442
|
return;
|
464
443
|
}
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
value = (isCheckbox && el.value === 'on')
|
444
|
+
let isCheckbox = $('[name="' + CSS.escape(el.name) + '"]', $form).attr('type') === 'checkbox';
|
445
|
+
let floatValue = parseFloat(el.value);
|
446
|
+
let value = (isCheckbox && el.value === 'on')
|
469
447
|
|| el.value === 'true'
|
470
448
|
|| (String(floatValue) === el.value
|
471
449
|
? floatValue
|
472
|
-
: (el.value === 'false' ? false : el.value))
|
473
|
-
|
474
|
-
|
475
|
-
;
|
450
|
+
: (el.value === 'false' ? false : el.value));
|
451
|
+
let nameKeys = el.name.match(regExp.key) || [];
|
452
|
+
let pushKey = el.name.replace(/\[]$/, '');
|
476
453
|
if (!(pushKey in pushes)) {
|
477
454
|
pushes[pushKey] = 0;
|
478
455
|
pushValues[pushKey] = value;
|
@@ -486,7 +463,7 @@
|
|
486
463
|
}
|
487
464
|
|
488
465
|
while (nameKeys.length > 0) {
|
489
|
-
|
466
|
+
let k = nameKeys.pop();
|
490
467
|
|
491
468
|
if (k === '' && !Array.isArray(value)) { // foo[]
|
492
469
|
value = build([], pushes[pushKey]++, value);
|
@@ -544,16 +521,14 @@
|
|
544
521
|
// nothing special
|
545
522
|
},
|
546
523
|
done: function (response, textStatus, xhr) {
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
?
|
553
|
-
|
554
|
-
|
555
|
-
: false
|
556
|
-
;
|
524
|
+
let context = this;
|
525
|
+
let elapsedTime = Date.now() - requestStartTime;
|
526
|
+
let timeLeft = settings.loadingDuration - elapsedTime;
|
527
|
+
let translatedResponse = isFunction(settings.onResponse)
|
528
|
+
? (module.is.expectingJSON() && !settings.rawResponse
|
529
|
+
? settings.onResponse.call(context, $.extend(true, {}, response))
|
530
|
+
: settings.onResponse.call(context, response))
|
531
|
+
: false;
|
557
532
|
timeLeft = timeLeft > 0
|
558
533
|
? timeLeft
|
559
534
|
: 0;
|
@@ -573,11 +548,9 @@
|
|
573
548
|
}, timeLeft);
|
574
549
|
},
|
575
550
|
fail: function (xhr, status, httpMessage) {
|
576
|
-
|
577
|
-
|
578
|
-
|
579
|
-
timeLeft = settings.loadingDuration - elapsedTime
|
580
|
-
;
|
551
|
+
let context = this;
|
552
|
+
let elapsedTime = Date.now() - requestStartTime;
|
553
|
+
let timeLeft = settings.loadingDuration - elapsedTime;
|
581
554
|
timeLeft = timeLeft > 0
|
582
555
|
? timeLeft
|
583
556
|
: 0;
|
@@ -603,10 +576,8 @@
|
|
603
576
|
settings.onSuccess.call(context, response, $module, xhr);
|
604
577
|
},
|
605
578
|
complete: function (firstParameter, secondParameter) {
|
606
|
-
|
607
|
-
|
608
|
-
response
|
609
|
-
;
|
579
|
+
let xhr;
|
580
|
+
let response;
|
610
581
|
// have to guess callback parameters based on request success
|
611
582
|
if (module.was.successful()) {
|
612
583
|
response = firstParameter;
|
@@ -619,11 +590,9 @@
|
|
619
590
|
settings.onComplete.call(context, response, $module, xhr);
|
620
591
|
},
|
621
592
|
fail: function (xhr, status, httpMessage) {
|
622
|
-
|
623
|
-
|
624
|
-
|
625
|
-
errorMessage = module.get.errorFromRequest(response, status, httpMessage)
|
626
|
-
;
|
593
|
+
// pull response from xhr if available
|
594
|
+
let response = module.get.responseFromXHR(xhr);
|
595
|
+
let errorMessage = module.get.errorFromRequest(response, status, httpMessage);
|
627
596
|
if (status === 'aborted') {
|
628
597
|
module.debug('XHR Aborted (Most likely caused by page navigation or CORS Policy)', status, httpMessage);
|
629
598
|
settings.onAbort.call(context, status, $module, xhr);
|
@@ -665,28 +634,24 @@
|
|
665
634
|
return $.Deferred()
|
666
635
|
.always(module.event.request.complete)
|
667
636
|
.done(module.event.request.done)
|
668
|
-
.fail(module.event.request.fail)
|
669
|
-
;
|
637
|
+
.fail(module.event.request.fail);
|
670
638
|
},
|
671
639
|
|
672
640
|
mockedXHR: function () {
|
673
|
-
|
674
|
-
|
675
|
-
|
676
|
-
|
677
|
-
|
678
|
-
|
679
|
-
|
680
|
-
|
681
|
-
|
682
|
-
mockedXHR
|
683
|
-
;
|
641
|
+
// xhr does not simulate these properties of xhr but must return them
|
642
|
+
let textStatus = false;
|
643
|
+
let status = false;
|
644
|
+
let httpMessage = false;
|
645
|
+
let responder = settings.mockResponse || settings.response;
|
646
|
+
let asyncResponder = settings.mockResponseAsync || settings.responseAsync;
|
647
|
+
let asyncCallback;
|
648
|
+
let response;
|
649
|
+
let mockedXHR;
|
684
650
|
|
685
651
|
mockedXHR = $.Deferred()
|
686
652
|
.always(module.event.xhr.complete)
|
687
653
|
.done(module.event.xhr.done)
|
688
|
-
.fail(module.event.xhr.fail)
|
689
|
-
;
|
654
|
+
.fail(module.event.xhr.fail);
|
690
655
|
|
691
656
|
if (responder) {
|
692
657
|
if (isFunction(responder)) {
|
@@ -716,15 +681,12 @@
|
|
716
681
|
},
|
717
682
|
|
718
683
|
xhr: function () {
|
719
|
-
|
720
|
-
xhr
|
721
|
-
;
|
684
|
+
let xhr;
|
722
685
|
// ajax request promise
|
723
686
|
xhr = $.ajax(ajaxSettings)
|
724
687
|
.always(module.event.xhr.always)
|
725
688
|
.done(module.event.xhr.done)
|
726
|
-
.fail(module.event.xhr.fail)
|
727
|
-
;
|
689
|
+
.fail(module.event.xhr.fail);
|
728
690
|
module.verbose('Created server request', xhr, ajaxSettings);
|
729
691
|
|
730
692
|
return xhr;
|
@@ -767,8 +729,8 @@
|
|
767
729
|
},
|
768
730
|
errorFromRequest: function (response, status, httpMessage) {
|
769
731
|
return $.isPlainObject(response) && response.error !== undefined
|
770
|
-
? response.error // use
|
771
|
-
: (settings.error[status] !== undefined // use server error message
|
732
|
+
? response.error // use JSON error message
|
733
|
+
: (settings.error[status] !== undefined // use the server error message
|
772
734
|
? settings.error[status]
|
773
735
|
: httpMessage);
|
774
736
|
},
|
@@ -779,9 +741,7 @@
|
|
779
741
|
return module.xhr || false;
|
780
742
|
},
|
781
743
|
settings: function () {
|
782
|
-
|
783
|
-
runSettings
|
784
|
-
;
|
744
|
+
let runSettings;
|
785
745
|
runSettings = settings.beforeSend.call($module, settings);
|
786
746
|
if (runSettings) {
|
787
747
|
if (runSettings.success !== undefined) {
|
@@ -812,11 +772,9 @@
|
|
812
772
|
: $.extend(true, {}, settings);
|
813
773
|
},
|
814
774
|
urlEncodedValue: function (value) {
|
815
|
-
|
816
|
-
|
817
|
-
|
818
|
-
alreadyEncoded = decodedValue !== value
|
819
|
-
;
|
775
|
+
let decodedValue = window.decodeURIComponent(value);
|
776
|
+
let encodedValue = window.encodeURIComponent(value);
|
777
|
+
let alreadyEncoded = decodedValue !== value;
|
820
778
|
if (alreadyEncoded) {
|
821
779
|
module.debug('URL value is already encoded, avoiding double encoding', value);
|
822
780
|
|
@@ -827,9 +785,7 @@
|
|
827
785
|
return encodedValue;
|
828
786
|
},
|
829
787
|
defaultData: function () {
|
830
|
-
|
831
|
-
data = {}
|
832
|
-
;
|
788
|
+
let data = {};
|
833
789
|
if (!isWindow(element)) {
|
834
790
|
if (module.is.input()) {
|
835
791
|
data.value = $module.val();
|
@@ -889,9 +845,7 @@
|
|
889
845
|
},
|
890
846
|
|
891
847
|
abort: function () {
|
892
|
-
|
893
|
-
xhr = module.get.xhr()
|
894
|
-
;
|
848
|
+
let xhr = module.get.xhr();
|
895
849
|
if (xhr && xhr.state() !== 'resolved') {
|
896
850
|
module.debug('Cancelling API request');
|
897
851
|
xhr.abort();
|
@@ -955,11 +909,9 @@
|
|
955
909
|
},
|
956
910
|
performance: {
|
957
911
|
log: function (message) {
|
958
|
-
|
959
|
-
|
960
|
-
|
961
|
-
previousTime
|
962
|
-
;
|
912
|
+
let currentTime;
|
913
|
+
let executionTime;
|
914
|
+
let previousTime;
|
963
915
|
if (settings.performance) {
|
964
916
|
currentTime = Date.now();
|
965
917
|
previousTime = time || currentTime;
|
@@ -978,10 +930,8 @@
|
|
978
930
|
}, 500);
|
979
931
|
},
|
980
932
|
display: function () {
|
981
|
-
|
982
|
-
|
983
|
-
totalTime = 0
|
984
|
-
;
|
933
|
+
let title = settings.name + ':';
|
934
|
+
let totalTime = 0;
|
985
935
|
time = false;
|
986
936
|
clearTimeout(module.performance.timer);
|
987
937
|
$.each(performance, function (index, data) {
|
@@ -1003,22 +953,19 @@
|
|
1003
953
|
},
|
1004
954
|
},
|
1005
955
|
invoke: function (query, passedArguments, context) {
|
1006
|
-
|
1007
|
-
|
1008
|
-
|
1009
|
-
|
1010
|
-
response
|
1011
|
-
;
|
956
|
+
let object = instance;
|
957
|
+
let maxDepth;
|
958
|
+
let found;
|
959
|
+
let response;
|
1012
960
|
passedArguments = passedArguments || queryArguments;
|
1013
961
|
context = context || element;
|
1014
962
|
if (typeof query === 'string' && object !== undefined) {
|
1015
963
|
query = query.split(/[ .]/);
|
1016
964
|
maxDepth = query.length - 1;
|
1017
965
|
$.each(query, function (depth, value) {
|
1018
|
-
|
966
|
+
let camelCaseValue = depth !== maxDepth
|
1019
967
|
? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
|
1020
|
-
: query
|
1021
|
-
;
|
968
|
+
: query;
|
1022
969
|
if ($.isPlainObject(object[camelCaseValue]) && (depth !== maxDepth)) {
|
1023
970
|
object = object[camelCaseValue];
|
1024
971
|
} else if (object[camelCaseValue] !== undefined) {
|
@@ -1125,7 +1072,7 @@
|
|
1125
1072
|
// whether to add default data to url data
|
1126
1073
|
defaultData: true,
|
1127
1074
|
|
1128
|
-
// whether to serialize closest form
|
1075
|
+
// whether to serialize the closest form
|
1129
1076
|
// use true to convert complex named keys like a[b][1][c][] into a nested object
|
1130
1077
|
// use 'formdata' for formdata web api
|
1131
1078
|
serializeForm: false,
|
@@ -1162,7 +1109,7 @@
|
|
1162
1109
|
// after request
|
1163
1110
|
onResponse: false, // function(response) { },
|
1164
1111
|
|
1165
|
-
// response was successful
|
1112
|
+
// response was successful if JSON passed validation
|
1166
1113
|
onSuccess: function (response, $module) {},
|
1167
1114
|
|
1168
1115
|
// request finished without aborting
|