fomantic-ui 2.10.0-beta.8 → 2.10.0-beta.81
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/.eslintrc.js +6 -23
- package/.github/workflows/ci.yml +9 -9
- package/.github/workflows/depsreview.yml +1 -1
- package/.github/workflows/nightly.yml +7 -5
- package/.github/workflows/release.yml +2 -2
- package/.stylelintrc.js +1 -15
- package/CHANGELOG.md +5289 -2325
- package/README.md +8 -4
- package/changelog-setup.js +32 -10
- package/changelog-template.hbs +256 -251
- package/dist/components/accordion.css +1 -1
- package/dist/components/accordion.js +62 -73
- package/dist/components/accordion.min.css +1 -1
- package/dist/components/accordion.min.js +3 -3
- package/dist/components/ad.css +1 -1
- package/dist/components/ad.min.css +1 -1
- package/dist/components/api.js +101 -161
- package/dist/components/api.min.js +3 -3
- package/dist/components/breadcrumb.css +1 -1
- package/dist/components/breadcrumb.min.css +1 -1
- package/dist/components/button.css +5 -6
- package/dist/components/button.min.css +2 -2
- package/dist/components/calendar.css +3 -3
- package/dist/components/calendar.js +283 -332
- package/dist/components/calendar.min.css +2 -2
- package/dist/components/calendar.min.js +3 -3
- package/dist/components/card.css +1 -1
- package/dist/components/card.min.css +1 -1
- package/dist/components/checkbox.css +1 -1
- package/dist/components/checkbox.js +58 -79
- package/dist/components/checkbox.min.css +1 -1
- package/dist/components/checkbox.min.js +3 -3
- package/dist/components/comment.css +1 -1
- package/dist/components/comment.min.css +1 -1
- package/dist/components/container.css +1 -1
- package/dist/components/container.min.css +1 -1
- package/dist/components/dimmer.css +2 -2
- package/dist/components/dimmer.js +39 -52
- package/dist/components/dimmer.min.css +2 -2
- package/dist/components/dimmer.min.js +3 -3
- package/dist/components/divider.css +1 -1
- package/dist/components/divider.min.css +1 -1
- package/dist/components/dropdown.css +21 -35
- package/dist/components/dropdown.js +435 -531
- package/dist/components/dropdown.min.css +2 -2
- package/dist/components/dropdown.min.js +3 -3
- package/dist/components/embed.css +1 -1
- package/dist/components/embed.js +55 -68
- package/dist/components/embed.min.css +1 -1
- package/dist/components/embed.min.js +3 -3
- 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 +1 -1
- package/dist/components/flyout.js +149 -168
- package/dist/components/flyout.min.css +1 -1
- package/dist/components/flyout.min.js +3 -3
- package/dist/components/form.css +3 -5
- package/dist/components/form.js +249 -269
- package/dist/components/form.min.css +2 -2
- package/dist/components/form.min.js +3 -3
- package/dist/components/grid.css +2 -2
- package/dist/components/grid.min.css +2 -2
- package/dist/components/header.css +6 -6
- package/dist/components/header.min.css +2 -2
- package/dist/components/icon.css +10 -37
- 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 +284 -12
- 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 +6 -14
- package/dist/components/label.min.css +2 -2
- package/dist/components/list.css +3 -3
- package/dist/components/list.min.css +2 -2
- package/dist/components/loader.css +53 -53
- package/dist/components/loader.min.css +2 -2
- package/dist/components/menu.css +45 -60
- package/dist/components/menu.min.css +2 -2
- package/dist/components/message.css +2 -2
- package/dist/components/message.min.css +2 -2
- package/dist/components/modal.css +5 -5
- package/dist/components/modal.js +161 -170
- package/dist/components/modal.min.css +2 -2
- package/dist/components/modal.min.js +3 -3
- package/dist/components/nag.css +1 -1
- package/dist/components/nag.js +74 -88
- package/dist/components/nag.min.css +1 -1
- package/dist/components/nag.min.js +3 -3
- package/dist/components/placeholder.css +2 -2
- package/dist/components/placeholder.min.css +2 -2
- package/dist/components/popup.css +19 -73
- package/dist/components/popup.js +105 -138
- package/dist/components/popup.min.css +2 -2
- package/dist/components/popup.min.js +3 -3
- package/dist/components/progress.css +4 -13
- package/dist/components/progress.js +75 -97
- package/dist/components/progress.min.css +2 -2
- package/dist/components/progress.min.js +3 -3
- 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 +49 -61
- package/dist/components/rating.min.css +1 -1
- package/dist/components/rating.min.js +3 -3
- package/dist/components/reset.css +48 -208
- package/dist/components/reset.min.css +2 -2
- package/dist/components/reveal.css +2 -5
- package/dist/components/reveal.min.css +2 -2
- package/dist/components/search.css +2 -3
- package/dist/components/search.js +178 -198
- package/dist/components/search.min.css +2 -2
- package/dist/components/search.min.js +3 -3
- package/dist/components/segment.css +6 -6
- package/dist/components/segment.min.css +2 -2
- package/dist/components/shape.css +1 -1
- package/dist/components/shape.js +59 -69
- package/dist/components/shape.min.css +1 -1
- package/dist/components/shape.min.js +3 -3
- package/dist/components/sidebar.css +1 -1
- package/dist/components/sidebar.js +81 -101
- package/dist/components/sidebar.min.css +1 -1
- package/dist/components/sidebar.min.js +3 -3
- package/dist/components/site.css +1 -1
- package/dist/components/site.js +37 -58
- package/dist/components/site.min.css +1 -1
- package/dist/components/site.min.js +3 -3
- package/dist/components/slider.css +1 -1
- package/dist/components/slider.js +169 -183
- package/dist/components/slider.min.css +1 -1
- package/dist/components/slider.min.js +3 -3
- package/dist/components/state.js +45 -59
- package/dist/components/state.min.js +3 -3
- package/dist/components/statistic.css +1 -1
- package/dist/components/statistic.min.css +1 -1
- package/dist/components/step.css +4 -4
- package/dist/components/step.min.css +2 -2
- package/dist/components/sticky.css +1 -1
- package/dist/components/sticky.js +95 -117
- package/dist/components/sticky.min.css +1 -1
- package/dist/components/sticky.min.js +3 -3
- package/dist/components/tab.css +1 -1
- package/dist/components/tab.js +83 -115
- package/dist/components/tab.min.css +1 -1
- package/dist/components/tab.min.js +3 -3
- package/dist/components/table.css +8 -8
- 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 -1
- package/dist/components/toast.js +64 -74
- package/dist/components/toast.min.css +1 -1
- package/dist/components/toast.min.js +3 -3
- package/dist/components/transition.css +1 -1
- package/dist/components/transition.js +61 -85
- package/dist/components/transition.min.css +1 -1
- package/dist/components/transition.min.js +3 -3
- package/dist/components/visibility.js +120 -140
- package/dist/components/visibility.min.js +3 -3
- package/dist/semantic.css +4480 -8222
- package/dist/semantic.js +2886 -3485
- package/dist/semantic.min.css +3 -3
- package/dist/semantic.min.js +3 -3
- package/examples/attached.html +1 -1
- package/examples/components/menu.html +1 -1
- package/package.json +8 -5
- package/scripts/nightly-version.js +4 -4
- package/src/definitions/behaviors/api.js +100 -160
- package/src/definitions/behaviors/form.js +248 -268
- package/src/definitions/behaviors/state.js +44 -58
- package/src/definitions/behaviors/visibility.js +119 -139
- package/src/definitions/collections/breadcrumb.less +0 -1
- package/src/definitions/collections/form.less +3 -9
- package/src/definitions/collections/grid.less +1 -2
- package/src/definitions/collections/menu.less +106 -117
- package/src/definitions/collections/message.less +1 -2
- package/src/definitions/collections/table.less +7 -8
- package/src/definitions/elements/button.less +4 -6
- package/src/definitions/elements/container.less +0 -1
- package/src/definitions/elements/divider.less +1 -2
- package/src/definitions/elements/emoji.less +1 -1
- package/src/definitions/elements/flag.less +1 -1
- package/src/definitions/elements/header.less +4 -5
- package/src/definitions/elements/icon.less +10 -37
- package/src/definitions/elements/image.less +0 -1
- package/src/definitions/elements/input.less +4 -7
- package/src/definitions/elements/label.less +5 -14
- package/src/definitions/elements/list.less +2 -3
- package/src/definitions/elements/loader.less +10 -11
- package/src/definitions/elements/placeholder.less +1 -2
- package/src/definitions/elements/rail.less +0 -1
- package/src/definitions/elements/reveal.less +1 -5
- package/src/definitions/elements/segment.less +5 -6
- package/src/definitions/elements/step.less +3 -4
- package/src/definitions/elements/text.less +0 -1
- package/src/definitions/globals/reset.less +0 -1
- package/src/definitions/globals/site.js +36 -57
- package/src/definitions/globals/site.less +0 -1
- package/src/definitions/modules/accordion.js +61 -72
- package/src/definitions/modules/accordion.less +0 -1
- package/src/definitions/modules/calendar.js +282 -331
- package/src/definitions/modules/calendar.less +2 -3
- package/src/definitions/modules/checkbox.js +57 -78
- package/src/definitions/modules/checkbox.less +0 -1
- package/src/definitions/modules/dimmer.js +38 -51
- package/src/definitions/modules/dimmer.less +1 -2
- package/src/definitions/modules/dropdown.js +434 -530
- package/src/definitions/modules/dropdown.less +27 -38
- package/src/definitions/modules/embed.js +54 -67
- package/src/definitions/modules/embed.less +0 -1
- package/src/definitions/modules/flyout.js +148 -167
- package/src/definitions/modules/flyout.less +0 -1
- package/src/definitions/modules/modal.js +160 -169
- package/src/definitions/modules/modal.less +3 -4
- package/src/definitions/modules/nag.js +73 -87
- package/src/definitions/modules/nag.less +0 -1
- package/src/definitions/modules/popup.js +104 -137
- package/src/definitions/modules/popup.less +18 -73
- package/src/definitions/modules/progress.js +74 -96
- package/src/definitions/modules/progress.less +3 -13
- package/src/definitions/modules/rating.js +48 -60
- package/src/definitions/modules/rating.less +0 -1
- package/src/definitions/modules/search.js +177 -197
- package/src/definitions/modules/search.less +2 -4
- package/src/definitions/modules/shape.js +58 -68
- package/src/definitions/modules/shape.less +0 -1
- package/src/definitions/modules/sidebar.js +80 -100
- package/src/definitions/modules/sidebar.less +0 -1
- package/src/definitions/modules/slider.js +168 -182
- package/src/definitions/modules/slider.less +0 -1
- package/src/definitions/modules/sticky.js +94 -116
- package/src/definitions/modules/sticky.less +0 -1
- package/src/definitions/modules/tab.js +82 -114
- package/src/definitions/modules/tab.less +0 -1
- package/src/definitions/modules/toast.js +63 -73
- package/src/definitions/modules/toast.less +0 -1
- package/src/definitions/modules/transition.js +60 -84
- package/src/definitions/modules/transition.less +1 -2
- package/src/definitions/views/ad.less +0 -1
- package/src/definitions/views/card.less +0 -1
- package/src/definitions/views/comment.less +0 -1
- package/src/definitions/views/feed.less +0 -1
- package/src/definitions/views/item.less +0 -1
- package/src/definitions/views/statistic.less +0 -1
- package/src/semantic.less +1 -1
- package/src/themes/amazon/elements/button.overrides +1 -1
- package/src/themes/amazon/elements/button.variables +5 -6
- package/src/themes/amazon/globals/site.variables +2 -3
- package/src/themes/bookish/elements/header.variables +2 -2
- package/src/themes/bootstrap3/elements/button.variables +4 -5
- package/src/themes/chubby/collections/menu.variables +1 -1
- package/src/themes/chubby/elements/button.overrides +4 -4
- package/src/themes/chubby/modules/accordion.overrides +1 -1
- package/src/themes/chubby/views/comment.overrides +2 -2
- package/src/themes/chubby/views/comment.variables +2 -2
- package/src/themes/classic/collections/table.variables +2 -2
- package/src/themes/classic/elements/button.variables +11 -11
- package/src/themes/classic/modules/progress.variables +2 -2
- package/src/themes/classic/views/card.variables +2 -2
- package/src/themes/default/collections/form.variables +2 -3
- package/src/themes/default/collections/menu.variables +28 -28
- package/src/themes/default/collections/message.variables +1 -1
- package/src/themes/default/collections/table.variables +4 -4
- package/src/themes/default/elements/button.variables +9 -10
- package/src/themes/default/elements/divider.variables +1 -1
- package/src/themes/default/elements/icon.variables +2 -2
- package/src/themes/default/elements/image.variables +1 -1
- package/src/themes/default/elements/input.variables +2 -2
- package/src/themes/default/elements/label.variables +4 -4
- package/src/themes/default/elements/list.variables +1 -1
- package/src/themes/default/elements/placeholder.variables +6 -6
- package/src/themes/default/elements/segment.variables +8 -8
- package/src/themes/default/globals/reset.overrides +45 -201
- package/src/themes/default/globals/site.variables +50 -50
- package/src/themes/default/globals/variation.variables +3 -2
- package/src/themes/default/modules/accordion.variables +0 -1
- package/src/themes/default/modules/checkbox.variables +1 -1
- package/src/themes/default/modules/dimmer.variables +12 -12
- package/src/themes/default/modules/dropdown.variables +17 -16
- package/src/themes/default/modules/embed.variables +2 -2
- package/src/themes/default/modules/flyout.variables +3 -3
- package/src/themes/default/modules/modal.variables +14 -14
- package/src/themes/default/modules/nag.variables +1 -1
- package/src/themes/default/modules/rating.variables +1 -1
- package/src/themes/default/modules/search.variables +1 -1
- package/src/themes/default/modules/shape.variables +1 -1
- package/src/themes/default/modules/sidebar.variables +2 -2
- package/src/themes/default/modules/toast.variables +4 -4
- package/src/themes/default/views/card.variables +6 -7
- package/src/themes/default/views/feed.variables +4 -4
- package/src/themes/default/views/item.variables +2 -3
- package/src/themes/flat/collections/form.variables +1 -1
- package/src/themes/flat/globals/site.variables +9 -9
- package/src/themes/github/collections/form.overrides +3 -3
- package/src/themes/github/collections/form.variables +3 -3
- package/src/themes/github/collections/menu.overrides +1 -1
- package/src/themes/github/collections/menu.variables +10 -10
- package/src/themes/github/collections/message.variables +6 -6
- package/src/themes/github/elements/button.variables +17 -17
- package/src/themes/github/elements/input.variables +3 -3
- package/src/themes/github/elements/segment.variables +2 -2
- package/src/themes/github/elements/step.overrides +4 -4
- package/src/themes/github/elements/step.variables +3 -3
- package/src/themes/github/globals/site.variables +2 -2
- package/src/themes/github/modules/dropdown.variables +1 -3
- package/src/themes/gmail/collections/message.variables +2 -2
- package/src/themes/material/collections/menu.variables +1 -1
- package/src/themes/material/elements/button.overrides +4 -4
- package/src/themes/material/elements/button.variables +5 -5
- package/src/themes/material/modules/dropdown.variables +1 -1
- package/src/themes/material/modules/modal.variables +1 -1
- package/src/themes/raised/elements/button.variables +1 -1
- package/src/themes/round/elements/button.variables +12 -12
- package/src/themes/striped/modules/progress.overrides +3 -3
- package/src/themes/timeline/views/feed.variables +2 -2
- package/src/themes/twitter/elements/button.overrides +1 -1
- package/src/themes/twitter/elements/button.variables +4 -5
- package/tasks/admin/components/create.js +12 -15
- package/tasks/admin/components/init.js +11 -12
- package/tasks/admin/components/update.js +19 -20
- package/tasks/admin/distributions/create.js +30 -51
- package/tasks/admin/distributions/init.js +11 -12
- package/tasks/admin/distributions/update.js +18 -19
- package/tasks/admin/register.js +7 -7
- package/tasks/build/assets.js +1 -1
- package/tasks/build/css.js +5 -5
- package/tasks/build/javascript.js +1 -1
- package/tasks/config/admin/github.js +1 -1
- package/tasks/config/admin/templates/css-package.js +1 -1
- package/tasks/config/admin/templates/less-package.js +1 -1
- package/tasks/config/project/config.js +10 -10
- package/tasks/config/project/install.js +12 -12
- package/tasks/config/project/release.js +6 -12
- package/tasks/config/tasks.js +15 -11
- package/tasks/config/user.js +1 -4
- package/tasks/docs/metadata.js +18 -20
- package/tasks/install.js +14 -12
- package/test/meteor/assets.js +4 -4
- package/test/meteor/fonts.js +10 -11
- package/test/modules/module.spec.js +18 -18
package/examples/attached.html
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fomantic-ui",
|
|
3
|
-
"version": "2.10.0-beta.
|
|
3
|
+
"version": "2.10.0-beta.81+4f706c2",
|
|
4
4
|
"description": "Fomantic empowers designers and developers by creating a shared vocabulary for UI.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"fomantic-ui",
|
|
@@ -75,25 +75,28 @@
|
|
|
75
75
|
"@internal/eslint-plugin": "file:.eslint",
|
|
76
76
|
"@typescript-eslint/eslint-plugin": "^8.25.0",
|
|
77
77
|
"@typescript-eslint/parser": "^8.25.0",
|
|
78
|
-
"all-contributors-cli": "^6.7.0",
|
|
79
78
|
"auto-changelog": "^2.4.0",
|
|
80
79
|
"eslint": "^8.29.0",
|
|
81
80
|
"eslint-config-airbnb-base": "15",
|
|
82
81
|
"eslint-plugin-import": "^2.26.0",
|
|
83
82
|
"eslint-plugin-jest": "26.9.0",
|
|
84
|
-
"eslint-plugin-unicorn": "
|
|
83
|
+
"eslint-plugin-unicorn": "56",
|
|
85
84
|
"node-fetch": "^2.6.0",
|
|
86
85
|
"postcss": "^8.4.19",
|
|
87
86
|
"postcss-less": "^6.0.0",
|
|
88
87
|
"semver": "^7.3.5",
|
|
89
|
-
"stylelint": "^
|
|
90
|
-
"stylelint-config-standard": "^
|
|
88
|
+
"stylelint": "^15.11.0",
|
|
89
|
+
"stylelint-config-standard-less": "^2.0.0",
|
|
91
90
|
"typescript": "~5.7.3"
|
|
92
91
|
},
|
|
93
92
|
"engines": {
|
|
94
93
|
"node": ">=18.18",
|
|
95
94
|
"npm": ">=10"
|
|
96
95
|
},
|
|
96
|
+
"resolutions": {
|
|
97
|
+
"brace-expansion": "^2.0.2",
|
|
98
|
+
"glob": "^10.5.0"
|
|
99
|
+
},
|
|
97
100
|
"title": "Fomantic UI",
|
|
98
101
|
"style": "dist/semantic.css"
|
|
99
102
|
}
|
|
@@ -25,7 +25,7 @@ const currentRev = childProcess // get the current rev from the repo
|
|
|
25
25
|
const getNextVersion = async function () {
|
|
26
26
|
const versions = await fetch(`${ghBase}/repos/${repoUrlPath}/milestones`)
|
|
27
27
|
.then((r) => r.json())
|
|
28
|
-
.then((milestones) => milestones.filter((m) => m.title.
|
|
28
|
+
.then((milestones) => milestones.filter((m) => !m.title.includes('x'))) // remove all versions with `x` in it
|
|
29
29
|
.then((versions) => versions.map((m) => m.title)) // create array of versions
|
|
30
30
|
.then((versions) => semver.sort(versions));
|
|
31
31
|
|
|
@@ -40,9 +40,9 @@ const getPublishedVersion = async function () {
|
|
|
40
40
|
await fetch(`${npmBase}/${npmPackage}`)
|
|
41
41
|
.then((r) => r.json())
|
|
42
42
|
.then((p) => {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
const nightly = p['dist-tags'].nightly ?? '';
|
|
44
|
+
const versionInfo = p.versions[nightly] ?? {};
|
|
45
|
+
const buildCommit = !nightly.includes('+') && versionInfo.gitHead
|
|
46
46
|
? '+' + (versionInfo.gitHead ?? '').slice(0, 7)
|
|
47
47
|
: '';
|
|
48
48
|
|
|
@@ -23,20 +23,20 @@
|
|
|
23
23
|
? window
|
|
24
24
|
: globalThis;
|
|
25
25
|
|
|
26
|
-
$.fn.api = function (
|
|
26
|
+
$.fn.api = function (...args) {
|
|
27
27
|
// use window context if none specified
|
|
28
|
-
|
|
28
|
+
const $allModules = isFunction(this)
|
|
29
29
|
? $(window)
|
|
30
30
|
: $(this);
|
|
31
31
|
let time = Date.now();
|
|
32
32
|
let performance = [];
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
const parameters = args[0];
|
|
35
|
+
const methodInvoked = typeof parameters === 'string';
|
|
36
|
+
const queryArguments = args.slice(1);
|
|
37
|
+
const contextCheck = function (context, win) {
|
|
38
38
|
let $context;
|
|
39
|
-
if ([window, document].
|
|
39
|
+
if ([window, document].includes(context)) {
|
|
40
40
|
$context = $(context);
|
|
41
41
|
} else {
|
|
42
42
|
$context = $(win.document).find(context);
|
|
@@ -50,28 +50,28 @@
|
|
|
50
50
|
let returnedValue;
|
|
51
51
|
|
|
52
52
|
$allModules.each(function () {
|
|
53
|
-
|
|
53
|
+
const settings = $.isPlainObject(parameters)
|
|
54
54
|
? $.extend(true, {}, $.fn.api.settings, parameters)
|
|
55
55
|
: $.extend({}, $.fn.api.settings);
|
|
56
56
|
|
|
57
57
|
// internal aliases
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
58
|
+
const regExp = settings.regExp;
|
|
59
|
+
const namespace = settings.namespace;
|
|
60
|
+
const metadata = settings.metadata;
|
|
61
|
+
const selector = settings.selector;
|
|
62
|
+
const error = settings.error;
|
|
63
|
+
const className = settings.className;
|
|
64
64
|
|
|
65
65
|
// define namespaces for modules
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
const eventNamespace = '.' + namespace;
|
|
67
|
+
const moduleNamespace = 'module-' + namespace;
|
|
68
68
|
|
|
69
69
|
// element that creates request
|
|
70
|
-
|
|
71
|
-
|
|
70
|
+
const $module = $(this);
|
|
71
|
+
const $form = $module.closest(selector.form);
|
|
72
72
|
|
|
73
73
|
// context used for state
|
|
74
|
-
|
|
74
|
+
const $context = settings.stateContext ? contextCheck(settings.stateContext, window) : $module;
|
|
75
75
|
|
|
76
76
|
// request details
|
|
77
77
|
let ajaxSettings;
|
|
@@ -82,12 +82,11 @@
|
|
|
82
82
|
let originalData;
|
|
83
83
|
|
|
84
84
|
// standard module
|
|
85
|
-
|
|
86
|
-
|
|
85
|
+
const element = this;
|
|
86
|
+
const context = $context[0];
|
|
87
87
|
let instance = $module.data(moduleNamespace);
|
|
88
|
-
let module;
|
|
89
88
|
|
|
90
|
-
module = {
|
|
89
|
+
const module = {
|
|
91
90
|
|
|
92
91
|
initialize: function () {
|
|
93
92
|
if (!methodInvoked) {
|
|
@@ -113,7 +112,7 @@
|
|
|
113
112
|
|
|
114
113
|
bind: {
|
|
115
114
|
events: function () {
|
|
116
|
-
|
|
115
|
+
const triggerEvent = module.get.event();
|
|
117
116
|
if (triggerEvent) {
|
|
118
117
|
module.verbose('Attaching API events to element', triggerEvent);
|
|
119
118
|
$module
|
|
@@ -130,7 +129,7 @@
|
|
|
130
129
|
if (response !== undefined && typeof response === 'string') {
|
|
131
130
|
try {
|
|
132
131
|
response = JSON.parse(response);
|
|
133
|
-
} catch
|
|
132
|
+
} catch {
|
|
134
133
|
// isn't json string
|
|
135
134
|
}
|
|
136
135
|
}
|
|
@@ -141,13 +140,7 @@
|
|
|
141
140
|
|
|
142
141
|
read: {
|
|
143
142
|
cachedResponse: function (url) {
|
|
144
|
-
let response;
|
|
145
|
-
if (window.Storage === undefined) {
|
|
146
|
-
module.error(error.noStorage);
|
|
147
|
-
|
|
148
|
-
return;
|
|
149
|
-
}
|
|
150
|
-
response = sessionStorage.getItem(url + module.get.normalizedData());
|
|
143
|
+
let response = window.sessionStorage.getItem(url + module.get.normalizedData());
|
|
151
144
|
module.debug('Using cached response', url, settings.data, response);
|
|
152
145
|
response = module.decode.json(response);
|
|
153
146
|
|
|
@@ -156,15 +149,10 @@
|
|
|
156
149
|
},
|
|
157
150
|
write: {
|
|
158
151
|
cachedResponse: function (url, response) {
|
|
159
|
-
if (window.Storage === undefined) {
|
|
160
|
-
module.error(error.noStorage);
|
|
161
|
-
|
|
162
|
-
return;
|
|
163
|
-
}
|
|
164
152
|
if ($.isPlainObject(response)) {
|
|
165
153
|
response = JSON.stringify(response);
|
|
166
154
|
}
|
|
167
|
-
sessionStorage.setItem(url + module.get.normalizedData(), response);
|
|
155
|
+
window.sessionStorage.setItem(url + module.get.normalizedData(), response);
|
|
168
156
|
module.verbose('Storing cached response for url', url, settings.data, response);
|
|
169
157
|
},
|
|
170
158
|
},
|
|
@@ -252,22 +240,20 @@
|
|
|
252
240
|
if (!settings.throttle) {
|
|
253
241
|
module.debug('Sending request', data, ajaxSettings.method);
|
|
254
242
|
module.send.request();
|
|
243
|
+
} else if (!settings.throttleFirstRequest && !module.timer) {
|
|
244
|
+
module.debug('Sending request', data, ajaxSettings.method);
|
|
245
|
+
module.send.request();
|
|
246
|
+
module.timer = setTimeout(function () {}, settings.throttle);
|
|
255
247
|
} else {
|
|
256
|
-
|
|
257
|
-
|
|
248
|
+
module.debug('Throttling request', settings.throttle);
|
|
249
|
+
clearTimeout(module.timer);
|
|
250
|
+
module.timer = setTimeout(function () {
|
|
251
|
+
if (module.timer) {
|
|
252
|
+
delete module.timer;
|
|
253
|
+
}
|
|
254
|
+
module.debug('Sending throttled request', data, ajaxSettings.method);
|
|
258
255
|
module.send.request();
|
|
259
|
-
|
|
260
|
-
} else {
|
|
261
|
-
module.debug('Throttling request', settings.throttle);
|
|
262
|
-
clearTimeout(module.timer);
|
|
263
|
-
module.timer = setTimeout(function () {
|
|
264
|
-
if (module.timer) {
|
|
265
|
-
delete module.timer;
|
|
266
|
-
}
|
|
267
|
-
module.debug('Sending throttled request', data, ajaxSettings.method);
|
|
268
|
-
module.send.request();
|
|
269
|
-
}, settings.throttle);
|
|
270
|
-
}
|
|
256
|
+
}, settings.throttle);
|
|
271
257
|
}
|
|
272
258
|
},
|
|
273
259
|
|
|
@@ -344,20 +330,16 @@
|
|
|
344
330
|
},
|
|
345
331
|
|
|
346
332
|
add: {
|
|
347
|
-
urlData: function (url, urlData) {
|
|
333
|
+
urlData: function (url, urlData = settings.urlData) {
|
|
348
334
|
let requiredVariables;
|
|
349
335
|
let optionalVariables;
|
|
350
336
|
if (url) {
|
|
351
337
|
requiredVariables = url.match(regExp.required);
|
|
352
338
|
optionalVariables = url.match(regExp.optional);
|
|
353
|
-
urlData = urlData || settings.urlData;
|
|
354
339
|
if (requiredVariables) {
|
|
355
340
|
module.debug('Looking for required URL variables', requiredVariables);
|
|
356
341
|
$.each(requiredVariables, function (index, templatedString) {
|
|
357
|
-
|
|
358
|
-
let variable = templatedString.indexOf('$') !== -1
|
|
359
|
-
? templatedString.slice(2, -1)
|
|
360
|
-
: templatedString.slice(1, -1);
|
|
342
|
+
const variable = templatedString.slice(1, -1);
|
|
361
343
|
let value = $.isPlainObject(urlData) && urlData[variable] !== undefined
|
|
362
344
|
? urlData[variable]
|
|
363
345
|
: ($module.data(variable) !== undefined
|
|
@@ -383,11 +365,8 @@
|
|
|
383
365
|
if (optionalVariables) {
|
|
384
366
|
module.debug('Looking for optional URL variables', requiredVariables);
|
|
385
367
|
$.each(optionalVariables, function (index, templatedString) {
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
? templatedString.slice(3, -1)
|
|
389
|
-
: templatedString.slice(2, -1);
|
|
390
|
-
let value = $.isPlainObject(urlData) && urlData[variable] !== undefined
|
|
368
|
+
const variable = templatedString.slice(2, -1);
|
|
369
|
+
const value = $.isPlainObject(urlData) && urlData[variable] !== undefined
|
|
391
370
|
? urlData[variable]
|
|
392
371
|
: ($module.data(variable) !== undefined
|
|
393
372
|
? $module.data(variable)
|
|
@@ -401,7 +380,7 @@
|
|
|
401
380
|
} else {
|
|
402
381
|
module.verbose('Optional variable not found', variable);
|
|
403
382
|
// remove preceding slash if set
|
|
404
|
-
url = url.
|
|
383
|
+
url = url.includes('/' + templatedString)
|
|
405
384
|
? url.replace('/' + templatedString, '')
|
|
406
385
|
: url.replace(templatedString, '');
|
|
407
386
|
}
|
|
@@ -411,22 +390,20 @@
|
|
|
411
390
|
|
|
412
391
|
return url;
|
|
413
392
|
},
|
|
414
|
-
formData: function (data) {
|
|
393
|
+
formData: function (data = originalData || settings.data) {
|
|
415
394
|
let formData = {};
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
data = data || originalData || settings.data;
|
|
419
|
-
hasOtherData = $.isPlainObject(data);
|
|
395
|
+
const useFormDataApi = settings.serializeForm === 'formdata';
|
|
396
|
+
const hasOtherData = $.isPlainObject(data);
|
|
420
397
|
|
|
421
398
|
if (useFormDataApi) {
|
|
422
399
|
formData = new FormData($form[0]);
|
|
423
400
|
settings.processData = settings.processData !== undefined ? settings.processData : false;
|
|
424
401
|
settings.contentType = settings.contentType !== undefined ? settings.contentType : false;
|
|
425
402
|
} else {
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
403
|
+
const formArray = $form.serializeArray();
|
|
404
|
+
const pushes = {};
|
|
405
|
+
const pushValues = {};
|
|
406
|
+
const build = function (base, key, value) {
|
|
430
407
|
base[key] = value;
|
|
431
408
|
|
|
432
409
|
return base;
|
|
@@ -441,15 +418,15 @@
|
|
|
441
418
|
if (!regExp.validate.test(el.name)) {
|
|
442
419
|
return;
|
|
443
420
|
}
|
|
444
|
-
|
|
445
|
-
|
|
421
|
+
const isCheckbox = $('[name="' + CSS.escape(el.name) + '"]', $form).attr('type') === 'checkbox';
|
|
422
|
+
const floatValue = Number.parseFloat(el.value);
|
|
446
423
|
let value = (isCheckbox && el.value === 'on')
|
|
447
424
|
|| el.value === 'true'
|
|
448
425
|
|| (String(floatValue) === el.value
|
|
449
426
|
? floatValue
|
|
450
427
|
: (el.value === 'false' ? false : el.value));
|
|
451
|
-
|
|
452
|
-
|
|
428
|
+
const nameKeys = el.name.match(regExp.key) || [];
|
|
429
|
+
const pushKey = el.name.replace(/\[]$/, '');
|
|
453
430
|
if (!(pushKey in pushes)) {
|
|
454
431
|
pushes[pushKey] = 0;
|
|
455
432
|
pushValues[pushKey] = value;
|
|
@@ -458,12 +435,12 @@
|
|
|
458
435
|
} else {
|
|
459
436
|
pushValues[pushKey] = [pushValues[pushKey], value];
|
|
460
437
|
}
|
|
461
|
-
if (pushKey.
|
|
438
|
+
if (!pushKey.includes('[]')) {
|
|
462
439
|
value = pushValues[pushKey];
|
|
463
440
|
}
|
|
464
441
|
|
|
465
442
|
while (nameKeys.length > 0) {
|
|
466
|
-
|
|
443
|
+
const k = nameKeys.pop();
|
|
467
444
|
|
|
468
445
|
if (k === '' && !Array.isArray(value)) { // foo[]
|
|
469
446
|
value = build([], pushes[pushKey]++, value);
|
|
@@ -521,17 +498,15 @@
|
|
|
521
498
|
// nothing special
|
|
522
499
|
},
|
|
523
500
|
done: function (response, textStatus, xhr) {
|
|
524
|
-
|
|
525
|
-
|
|
501
|
+
const context = this;
|
|
502
|
+
const elapsedTime = Date.now() - requestStartTime;
|
|
526
503
|
let timeLeft = settings.loadingDuration - elapsedTime;
|
|
527
|
-
|
|
504
|
+
const translatedResponse = isFunction(settings.onResponse)
|
|
528
505
|
? (module.is.expectingJSON() && !settings.rawResponse
|
|
529
506
|
? settings.onResponse.call(context, $.extend(true, {}, response))
|
|
530
507
|
: settings.onResponse.call(context, response))
|
|
531
508
|
: false;
|
|
532
|
-
timeLeft = timeLeft
|
|
533
|
-
? timeLeft
|
|
534
|
-
: 0;
|
|
509
|
+
timeLeft = Math.max(timeLeft, 0);
|
|
535
510
|
if (translatedResponse) {
|
|
536
511
|
module.debug('Modified API response in onResponse callback', settings.onResponse, translatedResponse, response);
|
|
537
512
|
response = translatedResponse;
|
|
@@ -548,12 +523,10 @@
|
|
|
548
523
|
}, timeLeft);
|
|
549
524
|
},
|
|
550
525
|
fail: function (xhr, status, httpMessage) {
|
|
551
|
-
|
|
552
|
-
|
|
526
|
+
const context = this;
|
|
527
|
+
const elapsedTime = Date.now() - requestStartTime;
|
|
553
528
|
let timeLeft = settings.loadingDuration - elapsedTime;
|
|
554
|
-
timeLeft = timeLeft
|
|
555
|
-
? timeLeft
|
|
556
|
-
: 0;
|
|
529
|
+
timeLeft = Math.max(timeLeft, 0);
|
|
557
530
|
if (timeLeft > 0) {
|
|
558
531
|
module.debug('Response completed early delaying state change by', timeLeft);
|
|
559
532
|
}
|
|
@@ -591,8 +564,8 @@
|
|
|
591
564
|
},
|
|
592
565
|
fail: function (xhr, status, httpMessage) {
|
|
593
566
|
// pull response from xhr if available
|
|
594
|
-
|
|
595
|
-
|
|
567
|
+
const response = module.get.responseFromXHR(xhr);
|
|
568
|
+
const errorMessage = module.get.errorFromRequest(response, status, httpMessage);
|
|
596
569
|
if (status === 'aborted') {
|
|
597
570
|
module.debug('XHR Aborted (Most likely caused by page navigation or CORS Policy)', status, httpMessage);
|
|
598
571
|
settings.onAbort.call(context, status, $module, xhr);
|
|
@@ -601,15 +574,13 @@
|
|
|
601
574
|
}
|
|
602
575
|
if (status === 'invalid') {
|
|
603
576
|
module.debug('JSON did not pass success test. A server-side error has most likely occurred', response);
|
|
604
|
-
} else if (status === 'error') {
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
module.error(error.statusMessage + httpMessage, ajaxSettings.url);
|
|
610
|
-
}
|
|
611
|
-
settings.onError.call(context, errorMessage, $module, xhr);
|
|
577
|
+
} else if (status === 'error' && xhr !== undefined) {
|
|
578
|
+
module.debug('XHR produced a server error', status, httpMessage);
|
|
579
|
+
// make sure we have an error to display to console
|
|
580
|
+
if ((xhr.status < 200 || xhr.status >= 300) && httpMessage !== undefined && httpMessage !== '') {
|
|
581
|
+
module.error(error.statusMessage + httpMessage, ajaxSettings.url);
|
|
612
582
|
}
|
|
583
|
+
settings.onError.call(context, errorMessage, $module, xhr);
|
|
613
584
|
}
|
|
614
585
|
|
|
615
586
|
if (settings.errorDuration && status !== 'aborted') {
|
|
@@ -639,16 +610,15 @@
|
|
|
639
610
|
|
|
640
611
|
mockedXHR: function () {
|
|
641
612
|
// xhr does not simulate these properties of xhr but must return them
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
613
|
+
const textStatus = false;
|
|
614
|
+
const status = false;
|
|
615
|
+
const httpMessage = false;
|
|
616
|
+
const responder = settings.mockResponse || settings.response;
|
|
617
|
+
const asyncResponder = settings.mockResponseAsync || settings.responseAsync;
|
|
647
618
|
let asyncCallback;
|
|
648
619
|
let response;
|
|
649
|
-
let mockedXHR;
|
|
650
620
|
|
|
651
|
-
mockedXHR = $.Deferred()
|
|
621
|
+
const mockedXHR = $.Deferred()
|
|
652
622
|
.always(module.event.xhr.complete)
|
|
653
623
|
.done(module.event.xhr.done)
|
|
654
624
|
.fail(module.event.xhr.fail);
|
|
@@ -681,9 +651,8 @@
|
|
|
681
651
|
},
|
|
682
652
|
|
|
683
653
|
xhr: function () {
|
|
684
|
-
let xhr;
|
|
685
654
|
// ajax request promise
|
|
686
|
-
xhr = $.ajax(ajaxSettings)
|
|
655
|
+
const xhr = $.ajax(ajaxSettings)
|
|
687
656
|
.always(module.event.xhr.always)
|
|
688
657
|
.done(module.event.xhr.done)
|
|
689
658
|
.fail(module.event.xhr.fail);
|
|
@@ -741,25 +710,7 @@
|
|
|
741
710
|
return module.xhr || false;
|
|
742
711
|
},
|
|
743
712
|
settings: function () {
|
|
744
|
-
|
|
745
|
-
runSettings = settings.beforeSend.call($module, settings);
|
|
746
|
-
if (runSettings) {
|
|
747
|
-
if (runSettings.success !== undefined) {
|
|
748
|
-
module.debug('Legacy success callback detected', runSettings);
|
|
749
|
-
module.error(error.legacyParameters, runSettings.success);
|
|
750
|
-
runSettings.onSuccess = runSettings.success;
|
|
751
|
-
}
|
|
752
|
-
if (runSettings.failure !== undefined) {
|
|
753
|
-
module.debug('Legacy failure callback detected', runSettings);
|
|
754
|
-
module.error(error.legacyParameters, runSettings.failure);
|
|
755
|
-
runSettings.onFailure = runSettings.failure;
|
|
756
|
-
}
|
|
757
|
-
if (runSettings.complete !== undefined) {
|
|
758
|
-
module.debug('Legacy complete callback detected', runSettings);
|
|
759
|
-
module.error(error.legacyParameters, runSettings.complete);
|
|
760
|
-
runSettings.onComplete = runSettings.complete;
|
|
761
|
-
}
|
|
762
|
-
}
|
|
713
|
+
const runSettings = settings.beforeSend.call(element, settings);
|
|
763
714
|
if (runSettings === undefined) {
|
|
764
715
|
module.error(error.noReturnedValue);
|
|
765
716
|
}
|
|
@@ -772,9 +723,9 @@
|
|
|
772
723
|
: $.extend(true, {}, settings);
|
|
773
724
|
},
|
|
774
725
|
urlEncodedValue: function (value) {
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
726
|
+
const decodedValue = window.decodeURIComponent(value);
|
|
727
|
+
const encodedValue = window.encodeURIComponent(value);
|
|
728
|
+
const alreadyEncoded = decodedValue !== value;
|
|
778
729
|
if (alreadyEncoded) {
|
|
779
730
|
module.debug('URL value is already encoded, avoiding double encoding', value);
|
|
780
731
|
|
|
@@ -785,7 +736,7 @@
|
|
|
785
736
|
return encodedValue;
|
|
786
737
|
},
|
|
787
738
|
defaultData: function () {
|
|
788
|
-
|
|
739
|
+
const data = {};
|
|
789
740
|
if (!isWindow(element)) {
|
|
790
741
|
if (module.is.input()) {
|
|
791
742
|
data.value = $module.val();
|
|
@@ -819,8 +770,7 @@
|
|
|
819
770
|
|
|
820
771
|
return settings.on;
|
|
821
772
|
},
|
|
822
|
-
templatedURL: function (action) {
|
|
823
|
-
action = action || settings.action || $module.data(metadata.action) || false;
|
|
773
|
+
templatedURL: function (action = settings.action || $module.data(metadata.action) || false) {
|
|
824
774
|
url = settings.url || $module.data(metadata.url) || false;
|
|
825
775
|
if (url) {
|
|
826
776
|
module.debug('Using specified url', url);
|
|
@@ -845,7 +795,7 @@
|
|
|
845
795
|
},
|
|
846
796
|
|
|
847
797
|
abort: function () {
|
|
848
|
-
|
|
798
|
+
const xhr = module.get.xhr();
|
|
849
799
|
if (xhr && xhr.state() !== 'resolved') {
|
|
850
800
|
module.debug('Cancelling API request');
|
|
851
801
|
xhr.abort();
|
|
@@ -881,30 +831,30 @@
|
|
|
881
831
|
return module[name];
|
|
882
832
|
}
|
|
883
833
|
},
|
|
884
|
-
debug: function () {
|
|
834
|
+
debug: function (...args) {
|
|
885
835
|
if (!settings.silent && settings.debug) {
|
|
886
836
|
if (settings.performance) {
|
|
887
|
-
module.performance.log(
|
|
837
|
+
module.performance.log(args);
|
|
888
838
|
} else {
|
|
889
839
|
module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
|
|
890
|
-
module.debug.apply(console,
|
|
840
|
+
module.debug.apply(console, args);
|
|
891
841
|
}
|
|
892
842
|
}
|
|
893
843
|
},
|
|
894
|
-
verbose: function () {
|
|
844
|
+
verbose: function (...args) {
|
|
895
845
|
if (!settings.silent && settings.verbose && settings.debug) {
|
|
896
846
|
if (settings.performance) {
|
|
897
|
-
module.performance.log(
|
|
847
|
+
module.performance.log(args);
|
|
898
848
|
} else {
|
|
899
849
|
module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
|
|
900
|
-
module.verbose.apply(console,
|
|
850
|
+
module.verbose.apply(console, args);
|
|
901
851
|
}
|
|
902
852
|
}
|
|
903
853
|
},
|
|
904
|
-
error: function () {
|
|
854
|
+
error: function (...args) {
|
|
905
855
|
if (!settings.silent) {
|
|
906
856
|
module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
|
|
907
|
-
module.error.apply(console,
|
|
857
|
+
module.error.apply(console, args);
|
|
908
858
|
}
|
|
909
859
|
},
|
|
910
860
|
performance: {
|
|
@@ -919,7 +869,7 @@
|
|
|
919
869
|
time = currentTime;
|
|
920
870
|
performance.push({
|
|
921
871
|
Name: message[0],
|
|
922
|
-
Arguments:
|
|
872
|
+
Arguments: message.slice(1),
|
|
923
873
|
// 'Element' : element,
|
|
924
874
|
'Execution Time': executionTime,
|
|
925
875
|
});
|
|
@@ -940,30 +890,22 @@
|
|
|
940
890
|
title += ' ' + totalTime + 'ms';
|
|
941
891
|
if (performance.length > 0) {
|
|
942
892
|
console.groupCollapsed(title);
|
|
943
|
-
|
|
944
|
-
console.table(performance);
|
|
945
|
-
} else {
|
|
946
|
-
$.each(performance, function (index, data) {
|
|
947
|
-
console.log(data.Name + ': ' + data['Execution Time'] + 'ms');
|
|
948
|
-
});
|
|
949
|
-
}
|
|
893
|
+
console.table(performance);
|
|
950
894
|
console.groupEnd();
|
|
951
895
|
}
|
|
952
896
|
performance = [];
|
|
953
897
|
},
|
|
954
898
|
},
|
|
955
|
-
invoke: function (query, passedArguments, context) {
|
|
899
|
+
invoke: function (query, passedArguments = queryArguments, context = element) {
|
|
956
900
|
let object = instance;
|
|
957
901
|
let maxDepth;
|
|
958
902
|
let found;
|
|
959
903
|
let response;
|
|
960
|
-
passedArguments = passedArguments || queryArguments;
|
|
961
|
-
context = context || element;
|
|
962
904
|
if (typeof query === 'string' && object !== undefined) {
|
|
963
905
|
query = query.split(/[ .]/);
|
|
964
906
|
maxDepth = query.length - 1;
|
|
965
907
|
$.each(query, function (depth, value) {
|
|
966
|
-
|
|
908
|
+
const camelCaseValue = depth !== maxDepth
|
|
967
909
|
? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
|
|
968
910
|
: query;
|
|
969
911
|
if ($.isPlainObject(object[camelCaseValue]) && (depth !== maxDepth)) {
|
|
@@ -1006,7 +948,7 @@
|
|
|
1006
948
|
if (instance === undefined) {
|
|
1007
949
|
module.initialize();
|
|
1008
950
|
}
|
|
1009
|
-
module.invoke(
|
|
951
|
+
module.invoke(parameters);
|
|
1010
952
|
} else {
|
|
1011
953
|
if (instance !== undefined) {
|
|
1012
954
|
instance.invoke('destroy');
|
|
@@ -1132,12 +1074,10 @@
|
|
|
1132
1074
|
error: 'There was an error with your request',
|
|
1133
1075
|
exitConditions: 'API Request Aborted. Exit conditions met',
|
|
1134
1076
|
JSONParse: 'JSON could not be parsed during error handling',
|
|
1135
|
-
legacyParameters: 'You are using legacy API success callback names',
|
|
1136
1077
|
method: 'The method you called is not defined',
|
|
1137
1078
|
missingAction: 'API action used but no url was defined',
|
|
1138
1079
|
missingURL: 'No URL specified for api event',
|
|
1139
1080
|
noReturnedValue: 'The beforeSend callback must return a settings object, beforeSend ignored.',
|
|
1140
|
-
noStorage: 'Caching responses locally requires session storage',
|
|
1141
1081
|
parseError: 'There was an error parsing your request',
|
|
1142
1082
|
requiredParameter: 'Missing a required URL parameter: ',
|
|
1143
1083
|
statusMessage: 'Server gave an error: ',
|
|
@@ -1145,8 +1085,8 @@
|
|
|
1145
1085
|
},
|
|
1146
1086
|
|
|
1147
1087
|
regExp: {
|
|
1148
|
-
required: /{
|
|
1149
|
-
optional: /{
|
|
1088
|
+
required: /{[\da-z]+}/gi,
|
|
1089
|
+
optional: /{\/[\da-z]+}/gi,
|
|
1150
1090
|
validate: /^[_a-z][\w-]*(?:\[[\w-]*])*$/i,
|
|
1151
1091
|
key: /[\w-]+|(?=\[])/gi,
|
|
1152
1092
|
push: /^$/,
|