unpoly-rails 3.10.0.rc1 → 3.10.0
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 +47 -49
- data/assets/unpoly/unpoly.es6.min.js +1 -1
- data/assets/unpoly/unpoly.js +44 -48
- data/assets/unpoly/unpoly.min.js +1 -1
- data/lib/unpoly/rails/change/field_definition.rb +12 -4
- data/lib/unpoly/rails/change.rb +26 -11
- data/lib/unpoly/rails/util.rb +8 -0
- data/lib/unpoly/rails/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 70b475102f62b95687296c3218604fecef3c49e38b4bfdf376dbecf7c90d76f5
|
4
|
+
data.tar.gz: c0bbad9322300f46e3142bacaa227cb580a787c7156565eceed738a8df446c16
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e8d2f624fdb7462162f90df5e98131c7f4941fa7911be886775dfd3fb56efe68ae7c0d590af9c7eb3bdeabc6ae95f387570bb98250423d5d7e9ce58a4f966acd
|
7
|
+
data.tar.gz: 6c403420b54d7044f6bf30fdf4b0bbd9ff5de9a8bb1b6c668bfda25a94eb64ad0553af0c0114ce4dbcd83cfdad7c29fe3558150f7ed0f42720d4f7f09582b3dc
|
data/assets/unpoly/unpoly.es6.js
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
/***/ (() => {
|
6
6
|
|
7
7
|
window.up = {
|
8
|
-
version: '3.10.0
|
8
|
+
version: '3.10.0'
|
9
9
|
};
|
10
10
|
|
11
11
|
|
@@ -2230,18 +2230,16 @@ up.RenderJob = (_a = class RenderJob {
|
|
2230
2230
|
});
|
2231
2231
|
}
|
2232
2232
|
_getChange() {
|
2233
|
-
|
2234
|
-
|
2235
|
-
|
2233
|
+
let handleAbort = u.memoize((request) => this._handleAbortOption(request));
|
2234
|
+
let renderOptions = Object.assign(Object.assign({}, this.options), { handleAbort });
|
2235
|
+
if (renderOptions.url) {
|
2236
|
+
return new up.Change.FromURL(renderOptions);
|
2237
|
+
}
|
2238
|
+
else if (renderOptions.response) {
|
2239
|
+
return new up.Change.FromResponse(renderOptions);
|
2236
2240
|
}
|
2237
2241
|
else {
|
2238
|
-
|
2239
|
-
if (this.options.response) {
|
2240
|
-
return new up.Change.FromResponse(Object.assign(Object.assign({}, this.options), { onRender }));
|
2241
|
-
}
|
2242
|
-
else {
|
2243
|
-
return new up.Change.FromContent(Object.assign(Object.assign({}, this.options), { onRender }));
|
2244
|
-
}
|
2242
|
+
return new up.Change.FromContent(renderOptions);
|
2245
2243
|
}
|
2246
2244
|
}
|
2247
2245
|
_emitGuardEvent() {
|
@@ -2955,6 +2953,7 @@ var _a;
|
|
2955
2953
|
const u = up.util;
|
2956
2954
|
up.Change.FromURL = (_a = class FromURL extends up.Change {
|
2957
2955
|
execute() {
|
2956
|
+
var _b, _c, _d, _e;
|
2958
2957
|
return __awaiter(this, void 0, void 0, function* () {
|
2959
2958
|
let newPageReason = this._newPageReason();
|
2960
2959
|
if (newPageReason) {
|
@@ -2962,19 +2961,15 @@ up.Change.FromURL = (_a = class FromURL extends up.Change {
|
|
2962
2961
|
up.network.loadPage(this.options);
|
2963
2962
|
return u.unresolvablePromise();
|
2964
2963
|
}
|
2965
|
-
this.request = up.request(this._getRequestAttrs());
|
2966
|
-
|
2967
|
-
|
2968
|
-
|
2969
|
-
this.
|
2970
|
-
|
2964
|
+
let request = this.request = up.request(this._getRequestAttrs());
|
2965
|
+
(_c = (_b = this.options).onRequestKnown) === null || _c === void 0 ? void 0 : _c.call(_b, request);
|
2966
|
+
if (this.options.preload)
|
2967
|
+
return request;
|
2968
|
+
(_e = (_d = this.options).handleAbort) === null || _e === void 0 ? void 0 : _e.call(_d, request);
|
2969
|
+
request.runPreviews(this.options);
|
2970
|
+
return yield u.always(request, responseOrError => this._onRequestSettled(responseOrError));
|
2971
2971
|
});
|
2972
2972
|
}
|
2973
|
-
_onRequestProcessed() {
|
2974
|
-
var _b, _c;
|
2975
|
-
(_c = (_b = this.options).onRequestProcessed) === null || _c === void 0 ? void 0 : _c.call(_b, this.request);
|
2976
|
-
this.request.runPreviews(this.options);
|
2977
|
-
}
|
2978
2973
|
_newPageReason() {
|
2979
2974
|
if (u.isCrossOrigin(this.options.url)) {
|
2980
2975
|
return 'Loading cross-origin content in new page';
|
@@ -2986,7 +2981,7 @@ up.Change.FromURL = (_a = class FromURL extends up.Change {
|
|
2986
2981
|
_getRequestAttrs() {
|
2987
2982
|
const successAttrs = this._preflightPropsForRenderOptions(this.options);
|
2988
2983
|
const failAttrs = this._preflightPropsForRenderOptions(this.deriveFailOptions(), { optional: true });
|
2989
|
-
return Object.assign(Object.assign(Object.assign(
|
2984
|
+
return Object.assign(Object.assign(Object.assign({}, this.options), successAttrs), u.withRenamedKeys(failAttrs, up.fragment.failKey));
|
2990
2985
|
}
|
2991
2986
|
getPreflightProps() {
|
2992
2987
|
return this._getRequestAttrs();
|
@@ -3233,7 +3228,7 @@ up.Change.FromContent = (_a = class FromContent extends up.Change {
|
|
3233
3228
|
if (assets) {
|
3234
3229
|
up.script.assertAssetsOK(assets, plan.options);
|
3235
3230
|
}
|
3236
|
-
(_c = (_b = this.options).
|
3231
|
+
(_c = (_b = this.options).handleAbort) === null || _c === void 0 ? void 0 : _c.call(_b, null);
|
3237
3232
|
}
|
3238
3233
|
_getResponseDoc() {
|
3239
3234
|
var _b, _c;
|
@@ -5634,12 +5629,13 @@ up.LinkFollowIntent = class LinkFollowIntent {
|
|
5634
5629
|
constructor(link, callback) {
|
5635
5630
|
this._link = link;
|
5636
5631
|
this._callback = callback;
|
5632
|
+
this._lastRequest = null;
|
5637
5633
|
this._on('mouseenter mousedown touchstart', (event) => this._scheduleCallback(event));
|
5638
5634
|
this._on('mouseleave', () => this._unscheduleCallback());
|
5639
5635
|
up.fragment.onAborted(this._link, () => this._unscheduleCallback());
|
5640
5636
|
}
|
5641
|
-
_on(eventType,
|
5642
|
-
up.on(this._link, eventType, { passive: true },
|
5637
|
+
_on(eventType, fn) {
|
5638
|
+
up.on(this._link, eventType, { passive: true }, fn);
|
5643
5639
|
}
|
5644
5640
|
_scheduleCallback(event) {
|
5645
5641
|
if (!up.link.shouldFollowEvent(event, this._link))
|
@@ -5655,8 +5651,11 @@ up.LinkFollowIntent = class LinkFollowIntent {
|
|
5655
5651
|
}
|
5656
5652
|
}
|
5657
5653
|
_unscheduleCallback() {
|
5654
|
+
var _a;
|
5658
5655
|
clearTimeout(this._timer);
|
5659
|
-
|
5656
|
+
if ((_a = this._lastRequest) === null || _a === void 0 ? void 0 : _a.background)
|
5657
|
+
this._lastRequest.abort();
|
5658
|
+
this._lastRequest = null;
|
5660
5659
|
}
|
5661
5660
|
_parseDelay() {
|
5662
5661
|
var _a;
|
@@ -5664,7 +5663,7 @@ up.LinkFollowIntent = class LinkFollowIntent {
|
|
5664
5663
|
}
|
5665
5664
|
_runCallback(event) {
|
5666
5665
|
up.log.putsEvent(event);
|
5667
|
-
|
5666
|
+
this._callback({ onRequestKnown: (request) => this._lastRequest = request });
|
5668
5667
|
}
|
5669
5668
|
};
|
5670
5669
|
|
@@ -5794,17 +5793,15 @@ up.NonceableCallback = class NonceableCallback {
|
|
5794
5793
|
return new this(match[3], match[2]);
|
5795
5794
|
}
|
5796
5795
|
toFunction(...argNames) {
|
5797
|
-
let
|
5798
|
-
if (!/\b(;|return|throw)\b/.test(scriptExpression))
|
5799
|
-
scriptExpression = `return ${scriptExpression}`;
|
5796
|
+
let script = this.script;
|
5800
5797
|
if (this.nonce) {
|
5801
5798
|
let callbackThis = this;
|
5802
5799
|
return function (...args) {
|
5803
|
-
return callbackThis._runAsNoncedFunction(
|
5800
|
+
return callbackThis._runAsNoncedFunction(script, this, argNames, args);
|
5804
5801
|
};
|
5805
5802
|
}
|
5806
5803
|
else {
|
5807
|
-
return new Function(...argNames,
|
5804
|
+
return new Function(...argNames, script);
|
5808
5805
|
}
|
5809
5806
|
}
|
5810
5807
|
toString() {
|
@@ -8203,7 +8200,10 @@ up.protocol = (function () {
|
|
8203
8200
|
return u.normalizeMethod(up.browser.popCookie('_up_method'));
|
8204
8201
|
});
|
8205
8202
|
function locationFromXHR(xhr) {
|
8206
|
-
|
8203
|
+
let location = extractHeader(xhr, 'location') || xhr.responseURL;
|
8204
|
+
if (location) {
|
8205
|
+
return u.normalizeURL(location);
|
8206
|
+
}
|
8207
8207
|
}
|
8208
8208
|
const config = new up.Config(() => ({
|
8209
8209
|
methodParam: '_method',
|
@@ -8378,7 +8378,6 @@ up.script = (function () {
|
|
8378
8378
|
'up-on-finished',
|
8379
8379
|
'up-on-error',
|
8380
8380
|
'up-on-offline',
|
8381
|
-
'up-placeholder',
|
8382
8381
|
],
|
8383
8382
|
scriptSelectors: [
|
8384
8383
|
'script:not([type])',
|
@@ -9150,7 +9149,7 @@ up.fragment = (function () {
|
|
9150
9149
|
continue;
|
9151
9150
|
let placement = defaultPlacement;
|
9152
9151
|
let maybe = defaultMaybe;
|
9153
|
-
selector = selector.replace(/\b::?(before|after)\b/, (_match, customPlacement) => {
|
9152
|
+
selector = selector.replace(/\b::?(before|after|content)\b/, (_match, customPlacement) => {
|
9154
9153
|
placement = customPlacement;
|
9155
9154
|
return '';
|
9156
9155
|
});
|
@@ -9610,7 +9609,7 @@ up.viewport = (function () {
|
|
9610
9609
|
function firstHashTarget(hash, options = {}) {
|
9611
9610
|
if (hash = pureHash(hash)) {
|
9612
9611
|
const selector = [
|
9613
|
-
e.
|
9612
|
+
e.idSelector(hash),
|
9614
9613
|
'a' + e.attrSelector('name', hash)
|
9615
9614
|
].join();
|
9616
9615
|
return f.get(selector, options);
|
@@ -10633,7 +10632,7 @@ up.link = (function () {
|
|
10633
10632
|
return follow(link, forcedOptions, { defaults });
|
10634
10633
|
}
|
10635
10634
|
up.attribute('up-defer', { defaultValue: 'insert' }, function (link, condition) {
|
10636
|
-
let doLoad = () => up.error.muteUncriticalRejection(loadDeferred(link));
|
10635
|
+
let doLoad = (options) => up.error.muteUncriticalRejection(loadDeferred(link, options));
|
10637
10636
|
onLoadCondition(condition, link, doLoad);
|
10638
10637
|
});
|
10639
10638
|
up.on('up:click', config.selectorFn('followSelectors'), function (event, link) {
|
@@ -10653,7 +10652,7 @@ up.link = (function () {
|
|
10653
10652
|
});
|
10654
10653
|
up.compiler(config.selectorFn('preloadSelectors'), function (link) {
|
10655
10654
|
if (!isPreloadDisabled(link)) {
|
10656
|
-
let doPreload = () => up.error.muteUncriticalRejection(preload(link));
|
10655
|
+
let doPreload = (options) => up.error.muteUncriticalRejection(preload(link, options));
|
10657
10656
|
let condition = e.booleanOrStringAttr(link, 'up-preload');
|
10658
10657
|
if (condition === true || u.isUndefined(condition))
|
10659
10658
|
condition = 'hover';
|
@@ -10790,16 +10789,10 @@ up.form = (function () {
|
|
10790
10789
|
else {
|
10791
10790
|
control.disabled = true;
|
10792
10791
|
}
|
10793
|
-
return () => {
|
10794
|
-
control.disabled = false;
|
10795
|
-
if (focusFallback && document.activeElement === focusFallback && control.isConnected) {
|
10796
|
-
up.focus(control, { preventScroll: true });
|
10797
|
-
}
|
10798
|
-
};
|
10792
|
+
return () => { control.disabled = false; };
|
10799
10793
|
}
|
10800
10794
|
function getDisableContainers(disable, origin) {
|
10801
|
-
let
|
10802
|
-
let originScope = () => getScope(givenOrigin());
|
10795
|
+
let originScope = () => getScope(origin);
|
10803
10796
|
if (disable === true) {
|
10804
10797
|
return [originScope()];
|
10805
10798
|
}
|
@@ -10990,8 +10983,13 @@ up.form = (function () {
|
|
10990
10983
|
const element = up.fragment.get(elementOrSelector, options);
|
10991
10984
|
return element.form || element.closest('form');
|
10992
10985
|
}
|
10993
|
-
function getScope(
|
10994
|
-
|
10986
|
+
function getScope(origin, options) {
|
10987
|
+
if (origin) {
|
10988
|
+
return getForm(origin, options) || up.layer.get(origin).element;
|
10989
|
+
}
|
10990
|
+
else {
|
10991
|
+
return up.layer.current.element;
|
10992
|
+
}
|
10995
10993
|
}
|
10996
10994
|
function focusedField() {
|
10997
10995
|
return u.presence(document.activeElement, isField);
|