@optionfactory/ful 0.60.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 -32
- 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 -32
- 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
|
-
|
|
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,6 +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
|
|
1237
|
+
input.addEventListener('change', (evt) => {
|
|
1238
|
+
evt.stopPropagation();
|
|
1239
|
+
});
|
|
1227
1240
|
input.remove();
|
|
1228
1241
|
template.renderTo(this, { id, tsId, name, input, slots });
|
|
1229
1242
|
}
|
|
@@ -1235,16 +1248,12 @@ class Select extends ParsedElement({
|
|
|
1235
1248
|
this.value = this.getAttribute("value");
|
|
1236
1249
|
}
|
|
1237
1250
|
}
|
|
1251
|
+
get value() {
|
|
1252
|
+
const v = this.ts.getValue();
|
|
1253
|
+
return v === '' ? null : v;
|
|
1254
|
+
}
|
|
1238
1255
|
set value(value) {
|
|
1239
|
-
|
|
1240
|
-
bubbles: true,
|
|
1241
|
-
cancelable: true,
|
|
1242
|
-
detail: {
|
|
1243
|
-
target: this,
|
|
1244
|
-
value: value
|
|
1245
|
-
}
|
|
1246
|
-
}));
|
|
1247
|
-
if(!success){
|
|
1256
|
+
if(!Events.dispatchChange(this, value)){
|
|
1248
1257
|
return;
|
|
1249
1258
|
}
|
|
1250
1259
|
(async () => {
|
|
@@ -1254,10 +1263,6 @@ class Select extends ParsedElement({
|
|
|
1254
1263
|
this.ts.setValue(value);
|
|
1255
1264
|
})();
|
|
1256
1265
|
}
|
|
1257
|
-
get value() {
|
|
1258
|
-
const v = this.ts.getValue();
|
|
1259
|
-
return v === '' ? null : v;
|
|
1260
|
-
}
|
|
1261
1266
|
}
|
|
1262
1267
|
|
|
1263
1268
|
class RadioGroup extends ParsedElement({
|
|
@@ -1297,9 +1302,19 @@ class RadioGroup extends ParsedElement({
|
|
|
1297
1302
|
input.setAttribute('name', `${name}-ignore`);
|
|
1298
1303
|
input.setAttribute('ful-validation-target', '');
|
|
1299
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
|
+
});
|
|
1300
1314
|
const label = Fragments.fromChildNodes(el);
|
|
1301
1315
|
return [input, label];
|
|
1302
1316
|
});
|
|
1317
|
+
|
|
1303
1318
|
radioEls.forEach(el => el.remove());
|
|
1304
1319
|
template.renderTo(this, {name, slots, inputsAndLabels});
|
|
1305
1320
|
}
|
|
@@ -1308,15 +1323,7 @@ class RadioGroup extends ParsedElement({
|
|
|
1308
1323
|
return checked ? checked.value : null;
|
|
1309
1324
|
}
|
|
1310
1325
|
set value(value) {
|
|
1311
|
-
|
|
1312
|
-
bubbles: true,
|
|
1313
|
-
cancelable: true,
|
|
1314
|
-
detail: {
|
|
1315
|
-
target: this,
|
|
1316
|
-
value: value
|
|
1317
|
-
}
|
|
1318
|
-
}));
|
|
1319
|
-
if(!success){
|
|
1326
|
+
if(!Events.dispatchChange(this, value)){
|
|
1320
1327
|
return;
|
|
1321
1328
|
}
|
|
1322
1329
|
this.querySelector(`input[type=radio][value=${CSS.escape(value)}]`).checked = true;
|