unpoly-rails 3.7.1 → 3.7.2
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.
- checksums.yaml +4 -4
- data/assets/unpoly/unpoly.es6.js +30 -46
- data/assets/unpoly/unpoly.es6.min.js +1 -1
- data/assets/unpoly/unpoly.js +29 -44
- data/assets/unpoly/unpoly.min.js +1 -1
- data/lib/unpoly/rails/version.rb +1 -1
- metadata +2 -2
data/assets/unpoly/unpoly.js
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
/***/ (() => {
|
6
6
|
|
7
7
|
window.up = {
|
8
|
-
version: '3.7.
|
8
|
+
version: '3.7.2'
|
9
9
|
};
|
10
10
|
|
11
11
|
|
@@ -1989,9 +1989,6 @@ up.RenderJob = (_a = class RenderJob {
|
|
1989
1989
|
this._rendered = this._executePromise();
|
1990
1990
|
return this;
|
1991
1991
|
}
|
1992
|
-
getPreflightFragments() {
|
1993
|
-
return this._getChange().getPreflightProps().fragments;
|
1994
|
-
}
|
1995
1992
|
async _executePromise() {
|
1996
1993
|
try {
|
1997
1994
|
this._guardRender();
|
@@ -3668,9 +3665,7 @@ up.FieldWatcher = class FieldWatcher {
|
|
3668
3665
|
if (target !== this._root)
|
3669
3666
|
this._watchFieldsWithin(target);
|
3670
3667
|
});
|
3671
|
-
|
3672
|
-
this._unbindFns.push(up.fragment.onAborted(abortableElement, () => this._abort()));
|
3673
|
-
}
|
3668
|
+
this._unbindFns.push(up.fragment.onAborted(this._scope, () => this._abort()));
|
3674
3669
|
this._unbindFns.push(up.on(this._scope, 'reset', () => this._onFormReset()));
|
3675
3670
|
}
|
3676
3671
|
stop() {
|
@@ -3682,14 +3677,6 @@ up.FieldWatcher = class FieldWatcher {
|
|
3682
3677
|
let rootOptions = u.copy(this._options);
|
3683
3678
|
return up.form.watchOptions(field, rootOptions, { defaults: { event: 'input' } });
|
3684
3679
|
}
|
3685
|
-
_abortableElements() {
|
3686
|
-
if (this._abortable === false) {
|
3687
|
-
return [];
|
3688
|
-
}
|
3689
|
-
else {
|
3690
|
-
return u.wrapList(this._abortable ?? this._scope);
|
3691
|
-
}
|
3692
|
-
}
|
3693
3680
|
_watchFieldsWithin(container) {
|
3694
3681
|
for (let field of up.form.fields(container)) {
|
3695
3682
|
this._watchField(field);
|
@@ -3796,10 +3783,14 @@ up.FormValidator = class FormValidator {
|
|
3796
3783
|
this._honorAbort();
|
3797
3784
|
}
|
3798
3785
|
_honorAbort() {
|
3799
|
-
up.fragment.onAborted(this._form,
|
3786
|
+
up.fragment.onAborted(this._form, (event) => this._onAborted(event));
|
3800
3787
|
}
|
3801
|
-
|
3802
|
-
|
3788
|
+
_onAborted(event) {
|
3789
|
+
if (this._dirtySolutions.length) {
|
3790
|
+
this._dirtySolutions = [];
|
3791
|
+
this._nextRenderPromise.reject(new up.Aborted(event.reason));
|
3792
|
+
this._resetNextRenderPromise();
|
3793
|
+
}
|
3803
3794
|
}
|
3804
3795
|
_resetNextRenderPromise() {
|
3805
3796
|
this._nextRenderPromise = u.newDeferred();
|
@@ -3880,20 +3871,22 @@ up.FormValidator = class FormValidator {
|
|
3880
3871
|
_scheduleNextRender() {
|
3881
3872
|
let solutionDelays = this._dirtySolutions.map((solution) => solution.renderOptions.delay);
|
3882
3873
|
let shortestDelay = Math.min(...solutionDelays) || 0;
|
3883
|
-
this._unscheduleNextRender();
|
3884
|
-
this._nextRenderTimer = u.timer(shortestDelay, () => this._renderDirtySolutions());
|
3885
|
-
}
|
3886
|
-
_unscheduleNextRender() {
|
3887
3874
|
clearTimeout(this._nextRenderTimer);
|
3875
|
+
this._nextRenderTimer = u.timer(shortestDelay, () => {
|
3876
|
+
this._nextRenderTimer = null;
|
3877
|
+
this._renderDirtySolutions();
|
3878
|
+
});
|
3888
3879
|
}
|
3889
3880
|
_renderDirtySolutions() {
|
3890
3881
|
up.error.muteUncriticalRejection(this._doRenderDirtySolutions());
|
3891
3882
|
}
|
3892
3883
|
async _doRenderDirtySolutions() {
|
3893
|
-
|
3894
|
-
|
3884
|
+
if (!this._dirtySolutions.length)
|
3885
|
+
return;
|
3886
|
+
if (this._rendering)
|
3887
|
+
return;
|
3888
|
+
if (this._nextRenderTimer)
|
3895
3889
|
return;
|
3896
|
-
}
|
3897
3890
|
let dirtySolutions = this._dirtySolutions;
|
3898
3891
|
this._dirtySolutions = [];
|
3899
3892
|
let dirtyOrigins = u.map(dirtySolutions, 'origin');
|
@@ -3907,6 +3900,7 @@ up.FormValidator = class FormValidator {
|
|
3907
3900
|
options.origin = this._form;
|
3908
3901
|
options.focus ??= 'keep';
|
3909
3902
|
options.failOptions = false;
|
3903
|
+
options.defaultMaybe = true;
|
3910
3904
|
options.params = up.Params.merge(options.params, ...u.map(dirtyRenderOptionsList, 'params'));
|
3911
3905
|
options.headers = u.merge(...u.map(dirtyRenderOptionsList, 'headers'));
|
3912
3906
|
this._addValidateHeader(options.headers, dirtyNames);
|
@@ -8544,13 +8538,14 @@ up.fragment = (function () {
|
|
8544
8538
|
}
|
8545
8539
|
function parseTargetSteps(target, options = {}) {
|
8546
8540
|
let defaultPlacement = options.defaultPlacement || 'swap';
|
8541
|
+
let defaultMaybe = options.defaultMaybe ?? false;
|
8547
8542
|
let steps = [];
|
8548
8543
|
let simpleSelectors = splitTarget(target);
|
8549
8544
|
for (let selector of simpleSelectors) {
|
8550
8545
|
if (selector === ':none')
|
8551
8546
|
continue;
|
8552
8547
|
let placement = defaultPlacement;
|
8553
|
-
let maybe =
|
8548
|
+
let maybe = defaultMaybe;
|
8554
8549
|
selector = selector.replace(/\b::?(before|after)\b/, (_match, customPlacement) => {
|
8555
8550
|
placement = customPlacement;
|
8556
8551
|
return '';
|
@@ -8594,8 +8589,8 @@ up.fragment = (function () {
|
|
8594
8589
|
return request.fromCache && u.evalAutoOption(options.revalidate, config.autoRevalidate, response);
|
8595
8590
|
}
|
8596
8591
|
function targetForSteps(steps) {
|
8597
|
-
let
|
8598
|
-
let selectors = u.map(
|
8592
|
+
let bestSteps = steps.filter((step) => !step.maybe || step.oldElement?.isConnected);
|
8593
|
+
let selectors = u.map(bestSteps, 'selector');
|
8599
8594
|
return selectors.join(', ') || ':none';
|
8600
8595
|
}
|
8601
8596
|
function isContainedByRivalStep(steps, candidateStep) {
|
@@ -8631,13 +8626,11 @@ up.fragment = (function () {
|
|
8631
8626
|
let testFnWithAbortable = (request) => request.abortable && testFn(request);
|
8632
8627
|
up.network.abort(testFnWithAbortable, { ...options, reason });
|
8633
8628
|
for (let element of elements) {
|
8634
|
-
up.emit(element, 'up:fragment:aborted', { newLayer, log: false });
|
8629
|
+
up.emit(element, 'up:fragment:aborted', { reason, newLayer, log: false });
|
8635
8630
|
}
|
8636
8631
|
}
|
8637
|
-
function onAborted(fragment,
|
8638
|
-
let
|
8639
|
-
let options = u.extractOptions(args);
|
8640
|
-
let guard = (event) => event.target.contains(fragment) || (options.around && fragment.contains(event.target));
|
8632
|
+
function onAborted(fragment, callback) {
|
8633
|
+
let guard = (event) => event.target.contains(fragment);
|
8641
8634
|
let unsubscribe = up.on('up:fragment:aborted', { guard }, callback);
|
8642
8635
|
up.destructor(fragment, unsubscribe);
|
8643
8636
|
return unsubscribe;
|
@@ -10046,11 +10039,8 @@ up.form = (function () {
|
|
10046
10039
|
return config.selector('submitButtonSelectors');
|
10047
10040
|
}
|
10048
10041
|
const submit = up.mockable((form, options) => {
|
10049
|
-
return
|
10042
|
+
return up.render(submitOptions(form, options));
|
10050
10043
|
});
|
10051
|
-
function buildSubmitJob(form, options) {
|
10052
|
-
return new up.RenderJob(submitOptions(form, options));
|
10053
|
-
}
|
10054
10044
|
function submitOptions(form, options, parserOptions) {
|
10055
10045
|
form = getForm(form);
|
10056
10046
|
options = u.options(options);
|
@@ -10067,9 +10057,6 @@ up.form = (function () {
|
|
10067
10057
|
parser.include(up.link.followOptions);
|
10068
10058
|
return options;
|
10069
10059
|
}
|
10070
|
-
function getPreflightFragments(form) {
|
10071
|
-
return buildSubmitJob(form).getPreflightFragments();
|
10072
|
-
}
|
10073
10060
|
function watchOptions(field, options, parserOptions = {}) {
|
10074
10061
|
options = u.options(options);
|
10075
10062
|
let parser = new up.OptionsParser(field, options, { ...parserOptions, closest: true, attrPrefix: 'up-watch-' });
|
@@ -10193,10 +10180,8 @@ up.form = (function () {
|
|
10193
10180
|
}
|
10194
10181
|
}
|
10195
10182
|
function autosubmit(target, options = {}) {
|
10196
|
-
const
|
10197
|
-
options
|
10198
|
-
const onChange = (_value, _name, renderOptions) => submit(target, renderOptions);
|
10199
|
-
return watch(target, options, onChange);
|
10183
|
+
const onChange = (_diff, renderOptions) => submit(target, renderOptions);
|
10184
|
+
return watch(target, { options, batch: true }, onChange);
|
10200
10185
|
}
|
10201
10186
|
function getGroupSelectors() {
|
10202
10187
|
return up.migrate.migratedFormGroupSelectors?.() || config.groupSelectors;
|