@optionfactory/ful 0.61.0 → 0.62.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.
- package/dist/ful.iife.js +39 -34
- package/dist/ful.iife.js.map +1 -1
- package/dist/ful.iife.min.js +1 -1
- package/dist/ful.iife.min.js.map +1 -1
- package/dist/ful.min.mjs +1 -1
- package/dist/ful.min.mjs.map +1 -1
- package/dist/ful.mjs +39 -34
- package/dist/ful.mjs.map +1 -1
- package/package.json +1 -1
package/dist/ful.mjs
CHANGED
|
@@ -707,6 +707,19 @@ class Nodes {
|
|
|
707
707
|
}
|
|
708
708
|
}
|
|
709
709
|
|
|
710
|
+
class Events$1 {
|
|
711
|
+
static dispatchChange(el, value){
|
|
712
|
+
return el.dispatchEvent(new CustomEvent("change", {
|
|
713
|
+
bubbles: true,
|
|
714
|
+
cancelable: true,
|
|
715
|
+
detail: {
|
|
716
|
+
target: el,
|
|
717
|
+
value: value
|
|
718
|
+
}
|
|
719
|
+
}));
|
|
720
|
+
}
|
|
721
|
+
}
|
|
722
|
+
|
|
710
723
|
class TemplatesRegistry {
|
|
711
724
|
#idToFragment = {};
|
|
712
725
|
#idToTemplate = {};
|
|
@@ -1104,7 +1117,12 @@ const makeInputFragment = (el, template, slots) => {
|
|
|
1104
1117
|
return el;
|
|
1105
1118
|
})();
|
|
1106
1119
|
input.setAttribute('ful-validation-target', '');
|
|
1107
|
-
input.addEventListener('change', (evt) =>
|
|
1120
|
+
input.addEventListener('change', (evt) => {
|
|
1121
|
+
evt.stopPropagation();
|
|
1122
|
+
if(!Events$1.dispatchChange(el, undefined.value)){
|
|
1123
|
+
evt.preventDefault();
|
|
1124
|
+
}
|
|
1125
|
+
});
|
|
1108
1126
|
const id = input.getAttribute('id') || el.getAttribute('input-id') || Attributes.uid('ful-input');
|
|
1109
1127
|
Attributes.forward('input-', el, slots.input);
|
|
1110
1128
|
Attributes.defaultValue(slots.input, "id", id);
|
|
@@ -1127,15 +1145,7 @@ class Input extends ParsedElement({
|
|
|
1127
1145
|
return this.input.value;
|
|
1128
1146
|
}
|
|
1129
1147
|
set value(value) {
|
|
1130
|
-
|
|
1131
|
-
bubbles: true,
|
|
1132
|
-
cancelable: true,
|
|
1133
|
-
detail: {
|
|
1134
|
-
target: this,
|
|
1135
|
-
value: value
|
|
1136
|
-
}
|
|
1137
|
-
}));
|
|
1138
|
-
if(!success){
|
|
1148
|
+
if(!Events$1.dispatchChange(el, value)){
|
|
1139
1149
|
return;
|
|
1140
1150
|
}
|
|
1141
1151
|
this.input.value = value;
|
|
@@ -1224,7 +1234,9 @@ class Select extends ParsedElement({
|
|
|
1224
1234
|
shouldLoad: (query) => this.shouldLoad ? this.shouldLoad(query) : true
|
|
1225
1235
|
} : {}, tsDefaultConfig, this.tsConfig));
|
|
1226
1236
|
//we remove the input to move it
|
|
1227
|
-
input.addEventListener('change', (evt) =>
|
|
1237
|
+
input.addEventListener('change', (evt) => {
|
|
1238
|
+
evt.stopPropagation();
|
|
1239
|
+
});
|
|
1228
1240
|
input.remove();
|
|
1229
1241
|
template.renderTo(this, { id, tsId, name, input, slots });
|
|
1230
1242
|
}
|
|
@@ -1236,16 +1248,12 @@ class Select extends ParsedElement({
|
|
|
1236
1248
|
this.value = this.getAttribute("value");
|
|
1237
1249
|
}
|
|
1238
1250
|
}
|
|
1251
|
+
get value() {
|
|
1252
|
+
const v = this.ts.getValue();
|
|
1253
|
+
return v === '' ? null : v;
|
|
1254
|
+
}
|
|
1239
1255
|
set value(value) {
|
|
1240
|
-
|
|
1241
|
-
bubbles: true,
|
|
1242
|
-
cancelable: true,
|
|
1243
|
-
detail: {
|
|
1244
|
-
target: this,
|
|
1245
|
-
value: value
|
|
1246
|
-
}
|
|
1247
|
-
}));
|
|
1248
|
-
if(!success){
|
|
1256
|
+
if(!Events.dispatchChange(this, value)){
|
|
1249
1257
|
return;
|
|
1250
1258
|
}
|
|
1251
1259
|
(async () => {
|
|
@@ -1255,10 +1263,6 @@ class Select extends ParsedElement({
|
|
|
1255
1263
|
this.ts.setValue(value);
|
|
1256
1264
|
})();
|
|
1257
1265
|
}
|
|
1258
|
-
get value() {
|
|
1259
|
-
const v = this.ts.getValue();
|
|
1260
|
-
return v === '' ? null : v;
|
|
1261
|
-
}
|
|
1262
1266
|
}
|
|
1263
1267
|
|
|
1264
1268
|
class RadioGroup extends ParsedElement({
|
|
@@ -1298,10 +1302,19 @@ class RadioGroup extends ParsedElement({
|
|
|
1298
1302
|
input.setAttribute('name', `${name}-ignore`);
|
|
1299
1303
|
input.setAttribute('ful-validation-target', '');
|
|
1300
1304
|
input.dataset['fulBindInclude'] = 'never';
|
|
1305
|
+
input.addEventListener('change', (evt) => {
|
|
1306
|
+
evt.stopPropagation();
|
|
1307
|
+
console.log("stopped");
|
|
1308
|
+
});
|
|
1309
|
+
input.addEventListener('click', (evt) => {
|
|
1310
|
+
if(!Events.dispatchChange(this, this.value)){
|
|
1311
|
+
evt.preventDefault();
|
|
1312
|
+
}
|
|
1313
|
+
});
|
|
1301
1314
|
const label = Fragments.fromChildNodes(el);
|
|
1302
1315
|
return [input, label];
|
|
1303
1316
|
});
|
|
1304
|
-
|
|
1317
|
+
|
|
1305
1318
|
radioEls.forEach(el => el.remove());
|
|
1306
1319
|
template.renderTo(this, {name, slots, inputsAndLabels});
|
|
1307
1320
|
}
|
|
@@ -1310,15 +1323,7 @@ class RadioGroup extends ParsedElement({
|
|
|
1310
1323
|
return checked ? checked.value : null;
|
|
1311
1324
|
}
|
|
1312
1325
|
set value(value) {
|
|
1313
|
-
|
|
1314
|
-
bubbles: true,
|
|
1315
|
-
cancelable: true,
|
|
1316
|
-
detail: {
|
|
1317
|
-
target: this,
|
|
1318
|
-
value: value
|
|
1319
|
-
}
|
|
1320
|
-
}));
|
|
1321
|
-
if(!success){
|
|
1326
|
+
if(!Events.dispatchChange(this, value)){
|
|
1322
1327
|
return;
|
|
1323
1328
|
}
|
|
1324
1329
|
this.querySelector(`input[type=radio][value=${CSS.escape(value)}]`).checked = true;
|