marko 6.0.146 → 6.0.148
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/debug/dom.js +160 -127
- package/dist/debug/dom.mjs +160 -127
- package/dist/dom/controllable.d.ts +5 -1
- package/dist/dom.d.ts +1 -1
- package/dist/dom.js +94 -81
- package/dist/dom.mjs +94 -81
- package/dist/translator/index.js +29 -11
- package/package.json +1 -1
package/dist/dom.js
CHANGED
|
@@ -26,22 +26,29 @@ __export(dom_exports, {
|
|
|
26
26
|
_attr_class_items: () => _attr_class_items,
|
|
27
27
|
_attr_content: () => _attr_content,
|
|
28
28
|
_attr_details_open: () => _attr_details_or_dialog_open,
|
|
29
|
+
_attr_details_open_default: () => _attr_details_or_dialog_open_default,
|
|
29
30
|
_attr_details_open_script: () => _attr_details_or_dialog_open_script,
|
|
30
31
|
_attr_dialog_open: () => _attr_details_or_dialog_open,
|
|
32
|
+
_attr_dialog_open_default: () => _attr_details_or_dialog_open_default,
|
|
31
33
|
_attr_dialog_open_script: () => _attr_details_or_dialog_open_script,
|
|
32
34
|
_attr_input_checked: () => _attr_input_checked,
|
|
33
35
|
_attr_input_checkedValue: () => _attr_input_checkedValue,
|
|
36
|
+
_attr_input_checkedValue_default: () => _attr_input_checkedValue_default,
|
|
34
37
|
_attr_input_checkedValue_script: () => _attr_input_checkedValue_script,
|
|
38
|
+
_attr_input_checked_default: () => _attr_input_checked_default,
|
|
35
39
|
_attr_input_checked_script: () => _attr_input_checked_script,
|
|
36
40
|
_attr_input_value: () => _attr_input_value,
|
|
41
|
+
_attr_input_value_default: () => _attr_input_value_default,
|
|
37
42
|
_attr_input_value_script: () => _attr_input_value_script,
|
|
38
43
|
_attr_nonce: () => _attr_nonce,
|
|
39
44
|
_attr_select_value: () => _attr_select_value,
|
|
45
|
+
_attr_select_value_default: () => _attr_select_value_default,
|
|
40
46
|
_attr_select_value_script: () => _attr_select_value_script,
|
|
41
47
|
_attr_style: () => _attr_style,
|
|
42
48
|
_attr_style_item: () => _attr_style_item,
|
|
43
49
|
_attr_style_items: () => _attr_style_items,
|
|
44
50
|
_attr_textarea_value: () => _attr_input_value,
|
|
51
|
+
_attr_textarea_value_default: () => _attr_input_value_default,
|
|
45
52
|
_attr_textarea_value_script: () => _attr_input_value_script,
|
|
46
53
|
_attrs: () => _attrs,
|
|
47
54
|
_attrs_content: () => _attrs_content,
|
|
@@ -641,18 +648,21 @@ function _el(id, accessor) {
|
|
|
641
648
|
}
|
|
642
649
|
|
|
643
650
|
// src/dom/controllable.ts
|
|
651
|
+
var inputType = "", controllableDelegate = createDelegator();
|
|
652
|
+
function _attr_input_checked_default(scope, nodeAccessor, checked) {
|
|
653
|
+
let el = scope[nodeAccessor], normalizedChecked = normalizeBoolProp(checked);
|
|
654
|
+
if (el.defaultChecked !== normalizedChecked) {
|
|
655
|
+
let restoreValue = scope.H ? normalizedChecked : el.checked;
|
|
656
|
+
el.defaultChecked = normalizedChecked, restoreValue !== normalizedChecked && (el.checked = restoreValue);
|
|
657
|
+
}
|
|
658
|
+
}
|
|
644
659
|
function _attr_input_checked(scope, nodeAccessor, checked, checkedChange) {
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
nodeAccessor,
|
|
648
|
-
0 /* InputChecked */,
|
|
649
|
-
normalizeBoolProp(checked),
|
|
650
|
-
checkedChange
|
|
651
|
-
);
|
|
660
|
+
let el = scope[nodeAccessor], normalizedChecked = normalizeBoolProp(checked);
|
|
661
|
+
scope["E" /* ControlledHandler */ + nodeAccessor] = checkedChange, scope["F" /* ControlledType */ + nodeAccessor] = checkedChange ? 0 /* InputChecked */ : 5 /* None */, checkedChange && !scope.H ? el.checked = normalizedChecked : _attr_input_checked_default(scope, nodeAccessor, normalizedChecked);
|
|
652
662
|
}
|
|
653
663
|
function _attr_input_checked_script(scope, nodeAccessor) {
|
|
654
664
|
let el = scope[nodeAccessor];
|
|
655
|
-
|
|
665
|
+
syncControllableFormInput(el, hasCheckboxChanged, () => {
|
|
656
666
|
let checkedChange = scope["E" /* ControlledHandler */ + nodeAccessor];
|
|
657
667
|
if (checkedChange) {
|
|
658
668
|
let newValue = el.checked;
|
|
@@ -660,21 +670,28 @@ function _attr_input_checked_script(scope, nodeAccessor) {
|
|
|
660
670
|
}
|
|
661
671
|
});
|
|
662
672
|
}
|
|
663
|
-
function
|
|
673
|
+
function _attr_input_checkedValue_default(scope, nodeAccessor, checkedValue, value) {
|
|
664
674
|
let multiple = Array.isArray(checkedValue), normalizedValue = normalizeStrProp(value), normalizedCheckedValue = multiple ? checkedValue.map(normalizeStrProp) : normalizeStrProp(checkedValue);
|
|
665
|
-
|
|
675
|
+
_attr(scope[nodeAccessor], "value", normalizedValue), _attr_input_checked_default(
|
|
666
676
|
scope,
|
|
667
677
|
nodeAccessor,
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
678
|
+
multiple ? normalizedCheckedValue.includes(normalizedValue) : normalizedValue === normalizedCheckedValue
|
|
679
|
+
);
|
|
680
|
+
}
|
|
681
|
+
function _attr_input_checkedValue(scope, nodeAccessor, checkedValue, checkedValueChange, value) {
|
|
682
|
+
let el = scope[nodeAccessor], multiple = Array.isArray(checkedValue), normalizedValue = normalizeStrProp(value), normalizedCheckedValue = scope["G" /* ControlledValue */ + nodeAccessor] = multiple ? checkedValue.map(normalizeStrProp) : normalizeStrProp(checkedValue);
|
|
683
|
+
_attr(el, "value", normalizedValue), scope["E" /* ControlledHandler */ + nodeAccessor] = checkedValueChange, scope["F" /* ControlledType */ + nodeAccessor] = checkedValueChange ? 1 /* InputCheckedValue */ : 5 /* None */, checkedValueChange && !scope.H ? el.checked = multiple ? normalizedCheckedValue.includes(normalizedValue) : normalizedValue === normalizedCheckedValue : _attr_input_checkedValue_default(
|
|
684
|
+
scope,
|
|
685
|
+
nodeAccessor,
|
|
686
|
+
normalizedCheckedValue,
|
|
687
|
+
normalizedValue
|
|
671
688
|
);
|
|
672
689
|
}
|
|
673
690
|
function _attr_input_checkedValue_script(scope, nodeAccessor) {
|
|
674
691
|
let el = scope[nodeAccessor];
|
|
675
692
|
isResuming && el.defaultChecked && (scope["G" /* ControlledValue */ + nodeAccessor] ? scope["G" /* ControlledValue */ + nodeAccessor].push(
|
|
676
693
|
el.value
|
|
677
|
-
) : scope["G" /* ControlledValue */ + nodeAccessor] = el.value),
|
|
694
|
+
) : scope["G" /* ControlledValue */ + nodeAccessor] = el.value), syncControllableFormInput(el, hasCheckboxChanged, () => {
|
|
678
695
|
let checkedValueChange = scope["E" /* ControlledHandler */ + nodeAccessor];
|
|
679
696
|
if (checkedValueChange) {
|
|
680
697
|
let oldValue = scope["G" /* ControlledValue */ + nodeAccessor], newValue = Array.isArray(oldValue) ? updateList(oldValue, el.value, el.checked) : el.checked ? el.value : void 0;
|
|
@@ -689,37 +706,58 @@ function _attr_input_checkedValue_script(scope, nodeAccessor) {
|
|
|
689
706
|
}
|
|
690
707
|
});
|
|
691
708
|
}
|
|
709
|
+
function _attr_input_value_default(scope, nodeAccessor, value) {
|
|
710
|
+
let el = scope[nodeAccessor], normalizedValue = normalizeStrProp(value);
|
|
711
|
+
if (el.defaultValue !== normalizedValue) {
|
|
712
|
+
let restoreValue = scope.H ? normalizedValue : el.value;
|
|
713
|
+
el.defaultValue = normalizedValue, setInputValue(el, restoreValue);
|
|
714
|
+
}
|
|
715
|
+
}
|
|
692
716
|
function _attr_input_value(scope, nodeAccessor, value, valueChange) {
|
|
693
717
|
let el = scope[nodeAccessor], normalizedValue = normalizeStrProp(value);
|
|
694
|
-
scope["E" /* ControlledHandler */ + nodeAccessor] = valueChange,
|
|
718
|
+
scope["E" /* ControlledHandler */ + nodeAccessor] = valueChange, scope["G" /* ControlledValue */ + nodeAccessor] = normalizedValue, scope["F" /* ControlledType */ + nodeAccessor] = valueChange ? 2 /* InputValue */ : 5 /* None */, valueChange && !scope.H ? setInputValue(el, normalizedValue) : _attr_input_value_default(scope, nodeAccessor, normalizedValue);
|
|
695
719
|
}
|
|
696
720
|
function _attr_input_value_script(scope, nodeAccessor) {
|
|
697
721
|
let el = scope[nodeAccessor];
|
|
698
|
-
isResuming && (scope["G" /* ControlledValue */ + nodeAccessor] = el.defaultValue),
|
|
722
|
+
isResuming && (scope["G" /* ControlledValue */ + nodeAccessor] = el.defaultValue), syncControllableFormInput(el, hasValueChanged, (ev) => {
|
|
699
723
|
let valueChange = scope["E" /* ControlledHandler */ + nodeAccessor];
|
|
700
|
-
valueChange && (inputType = ev?.inputType, valueChange(el.value), run(),
|
|
701
|
-
el,
|
|
702
|
-
scope["G" /* ControlledValue */ + nodeAccessor]
|
|
703
|
-
), inputType = "");
|
|
724
|
+
valueChange && (inputType = ev?.inputType, valueChange(el.value), run(), setInputValue(el, scope["G" /* ControlledValue */ + nodeAccessor]), inputType = "");
|
|
704
725
|
});
|
|
705
726
|
}
|
|
727
|
+
function setInputValue(el, value) {
|
|
728
|
+
if (el.value !== value) {
|
|
729
|
+
let updatedPosition = resolveCursorPosition(
|
|
730
|
+
inputType,
|
|
731
|
+
el.getRootNode().activeElement === el && el.selectionStart,
|
|
732
|
+
el.value,
|
|
733
|
+
el.value = value
|
|
734
|
+
);
|
|
735
|
+
~updatedPosition && el.setSelectionRange(updatedPosition, updatedPosition);
|
|
736
|
+
}
|
|
737
|
+
}
|
|
738
|
+
function _attr_select_value_default(scope, nodeAccessor, value) {
|
|
739
|
+
let restoreValue, el = scope[nodeAccessor], existing = !scope.H, multiple = Array.isArray(value), normalizedValue = multiple ? value.map(normalizeStrProp) : normalizeStrProp(value);
|
|
740
|
+
pendingEffects.unshift(() => {
|
|
741
|
+
for (let opt of el.options) {
|
|
742
|
+
let selected = multiple ? normalizedValue.includes(opt.value) : opt.value === normalizedValue;
|
|
743
|
+
opt.defaultSelected !== selected && (existing && (restoreValue ??= getSelectValue(el, multiple)), opt.defaultSelected = selected);
|
|
744
|
+
}
|
|
745
|
+
restoreValue !== void 0 && setSelectValue(el, restoreValue, multiple);
|
|
746
|
+
}, scope);
|
|
747
|
+
}
|
|
706
748
|
function _attr_select_value(scope, nodeAccessor, value, valueChange) {
|
|
707
|
-
let
|
|
708
|
-
scope["E" /* ControlledHandler */ + nodeAccessor] = valueChange,
|
|
709
|
-
() =>
|
|
710
|
-
scope[nodeAccessor],
|
|
711
|
-
normalizedValue,
|
|
712
|
-
valueChange
|
|
713
|
-
),
|
|
749
|
+
let el = scope[nodeAccessor], existing = !scope.H, multiple = Array.isArray(value), normalizedValue = scope["G" /* ControlledValue */ + nodeAccessor] = multiple ? value.map(normalizeStrProp) : normalizeStrProp(value);
|
|
750
|
+
scope["E" /* ControlledHandler */ + nodeAccessor] = valueChange, scope["F" /* ControlledType */ + nodeAccessor] = valueChange ? 3 /* SelectValue */ : 5 /* None */, valueChange && existing ? pendingEffects.unshift(
|
|
751
|
+
() => setSelectValue(el, normalizedValue, multiple),
|
|
714
752
|
scope
|
|
715
|
-
);
|
|
753
|
+
) : _attr_select_value_default(scope, nodeAccessor, normalizedValue);
|
|
716
754
|
}
|
|
717
755
|
function _attr_select_value_script(scope, nodeAccessor) {
|
|
718
756
|
let el = scope[nodeAccessor], onChange = () => {
|
|
719
757
|
let valueChange = scope["E" /* ControlledHandler */ + nodeAccessor];
|
|
720
758
|
if (valueChange) {
|
|
721
|
-
let oldValue = scope["G" /* ControlledValue */ + nodeAccessor],
|
|
722
|
-
|
|
759
|
+
let oldValue = scope["G" /* ControlledValue */ + nodeAccessor], multiple = Array.isArray(oldValue), newValue = getSelectValue(el, multiple);
|
|
760
|
+
setSelectValue(el, oldValue, multiple), valueChange(newValue), run();
|
|
723
761
|
}
|
|
724
762
|
};
|
|
725
763
|
if (isResuming)
|
|
@@ -735,62 +773,40 @@ function _attr_select_value_script(scope, nodeAccessor) {
|
|
|
735
773
|
break;
|
|
736
774
|
}
|
|
737
775
|
}
|
|
738
|
-
el
|
|
776
|
+
syncControllableFormInput(el, hasSelectChanged, onChange), new MutationObserver(() => {
|
|
739
777
|
let value = scope["G" /* ControlledValue */ + nodeAccessor];
|
|
740
778
|
(Array.isArray(value) ? value.length !== el.selectedOptions.length || value.some((value2, i) => value2 != el.selectedOptions[i].value) : el.value !== value) && onChange();
|
|
741
|
-
}).observe(el, {
|
|
742
|
-
childList: !0,
|
|
743
|
-
subtree: !0
|
|
744
|
-
}), syncControllable(el, "input", hasSelectChanged, onChange);
|
|
779
|
+
}).observe(el, { childList: !0, subtree: !0 });
|
|
745
780
|
}
|
|
746
|
-
function
|
|
747
|
-
if (
|
|
748
|
-
for (let opt of el.options) {
|
|
749
|
-
let selected = value.includes(opt.value);
|
|
750
|
-
valueChange ? opt.selected = selected : opt.defaultSelected = selected;
|
|
751
|
-
}
|
|
752
|
-
else if (valueChange)
|
|
753
|
-
el.value = value;
|
|
754
|
-
else
|
|
781
|
+
function setSelectValue(el, value, multiple) {
|
|
782
|
+
if (multiple)
|
|
755
783
|
for (let opt of el.options)
|
|
756
|
-
opt.
|
|
784
|
+
opt.selected = value.includes(opt.value);
|
|
785
|
+
else
|
|
786
|
+
el.value = value;
|
|
787
|
+
}
|
|
788
|
+
function getSelectValue(el, multiple) {
|
|
789
|
+
return multiple ? Array.from(el.selectedOptions, (opt) => opt.value) : el.value;
|
|
790
|
+
}
|
|
791
|
+
function _attr_details_or_dialog_open_default(scope, nodeAccessor, open) {
|
|
792
|
+
scope.H && (scope[nodeAccessor].open = normalizeBoolProp(open));
|
|
757
793
|
}
|
|
758
794
|
function _attr_details_or_dialog_open(scope, nodeAccessor, open, openChange) {
|
|
759
|
-
|
|
795
|
+
let normalizedOpen = scope["G" /* ControlledValue */ + nodeAccessor] = normalizeBoolProp(open);
|
|
796
|
+
scope["E" /* ControlledHandler */ + nodeAccessor] = openChange, scope["F" /* ControlledType */ + nodeAccessor] = openChange ? 4 /* DetailsOrDialogOpen */ : 5 /* None */, openChange && !scope.H ? scope[nodeAccessor].open = normalizedOpen : _attr_details_or_dialog_open_default(scope, nodeAccessor, normalizedOpen);
|
|
760
797
|
}
|
|
761
798
|
function _attr_details_or_dialog_open_script(scope, nodeAccessor) {
|
|
762
|
-
let el = scope[nodeAccessor]
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
el.
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
let openChange = scope["E" /* ControlledHandler */ + nodeAccessor];
|
|
769
|
-
if (openChange && hasChanged()) {
|
|
770
|
-
let newValue = el.open;
|
|
771
|
-
el.open = !newValue, openChange(newValue), run();
|
|
772
|
-
}
|
|
799
|
+
let el = scope[nodeAccessor];
|
|
800
|
+
new MutationObserver(() => {
|
|
801
|
+
let openChange = scope["E" /* ControlledHandler */ + nodeAccessor];
|
|
802
|
+
if (openChange && el.open === !scope["G" /* ControlledValue */ + nodeAccessor]) {
|
|
803
|
+
let newValue = el.open;
|
|
804
|
+
el.open = !newValue, openChange(newValue), run();
|
|
773
805
|
}
|
|
774
|
-
);
|
|
806
|
+
}).observe(el, { attributes: !0, attributeFilter: ["open"] });
|
|
775
807
|
}
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
if (el.value !== value) {
|
|
779
|
-
let updatedPosition = resolveCursorPosition(
|
|
780
|
-
inputType,
|
|
781
|
-
el.getRootNode().activeElement === el && el.selectionStart,
|
|
782
|
-
el.value,
|
|
783
|
-
el.value = value
|
|
784
|
-
);
|
|
785
|
-
~updatedPosition && el.setSelectionRange(updatedPosition, updatedPosition);
|
|
786
|
-
}
|
|
787
|
-
}
|
|
788
|
-
function setCheckboxValue(scope, nodeAccessor, type, checked, checkedChange) {
|
|
789
|
-
scope["E" /* ControlledHandler */ + nodeAccessor] = checkedChange, checkedChange ? (scope["F" /* ControlledType */ + nodeAccessor] = type, scope[nodeAccessor].checked = checked) : (scope["F" /* ControlledType */ + nodeAccessor] = 5 /* None */, scope[nodeAccessor].defaultChecked = checked);
|
|
790
|
-
}
|
|
791
|
-
var controllableDelegate = createDelegator();
|
|
792
|
-
function syncControllable(el, event, hasChanged, onChange) {
|
|
793
|
-
el._ || (controllableDelegate(el, event, handleChange), el.form && controllableDelegate(el.form, "reset", handleFormReset), isResuming && hasChanged(el) && queueMicrotask(onChange)), el._ = onChange;
|
|
808
|
+
function syncControllableFormInput(el, hasChanged, onChange) {
|
|
809
|
+
el._ = onChange, controllableDelegate(el, "input", handleChange), el.form && controllableDelegate(el.form, "reset", handleFormReset), isResuming && hasChanged(el) && queueMicrotask(onChange);
|
|
794
810
|
}
|
|
795
811
|
function handleChange(ev) {
|
|
796
812
|
ev.target._?.(ev);
|
|
@@ -829,9 +845,6 @@ function updateList(arr, val, push2) {
|
|
|
829
845
|
let index = arr.indexOf(val);
|
|
830
846
|
return (push2 ? !~index && [...arr, val] : ~index && arr.slice(0, index).concat(arr.slice(index + 1))) || arr;
|
|
831
847
|
}
|
|
832
|
-
function toValueProp(it) {
|
|
833
|
-
return it.value;
|
|
834
|
-
}
|
|
835
848
|
|
|
836
849
|
// src/dom/dom.ts
|
|
837
850
|
function _to_text(value) {
|
|
@@ -861,7 +874,7 @@ function _attr_style_items(element, items) {
|
|
|
861
874
|
_attr_style_item(element, key, items[key]);
|
|
862
875
|
}
|
|
863
876
|
function _attr_style_item(element, name, value) {
|
|
864
|
-
element.style.setProperty(name, value
|
|
877
|
+
element.style.setProperty(name, _to_text(value));
|
|
865
878
|
}
|
|
866
879
|
function _attr_nonce(scope, nodeAccessor) {
|
|
867
880
|
_attr(scope[nodeAccessor], "nonce", scope.$.cspNonce);
|
|
@@ -1007,7 +1020,7 @@ function _attrs_script(scope, nodeAccessor) {
|
|
|
1007
1020
|
}
|
|
1008
1021
|
function _html(scope, value, accessor) {
|
|
1009
1022
|
let firstChild = scope[accessor], parentNode = firstChild.parentNode, lastChild = scope["H" /* DynamicHTMLLastChild */ + accessor] || firstChild, newContent = parseHTML(
|
|
1010
|
-
value
|
|
1023
|
+
_to_text(value),
|
|
1011
1024
|
parentNode.namespaceURI
|
|
1012
1025
|
);
|
|
1013
1026
|
insertChildNodes(
|
package/dist/dom.mjs
CHANGED
|
@@ -537,18 +537,21 @@ function _el(id, accessor) {
|
|
|
537
537
|
}
|
|
538
538
|
|
|
539
539
|
// src/dom/controllable.ts
|
|
540
|
+
var inputType = "", controllableDelegate = createDelegator();
|
|
541
|
+
function _attr_input_checked_default(scope, nodeAccessor, checked) {
|
|
542
|
+
let el = scope[nodeAccessor], normalizedChecked = normalizeBoolProp(checked);
|
|
543
|
+
if (el.defaultChecked !== normalizedChecked) {
|
|
544
|
+
let restoreValue = scope.H ? normalizedChecked : el.checked;
|
|
545
|
+
el.defaultChecked = normalizedChecked, restoreValue !== normalizedChecked && (el.checked = restoreValue);
|
|
546
|
+
}
|
|
547
|
+
}
|
|
540
548
|
function _attr_input_checked(scope, nodeAccessor, checked, checkedChange) {
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
nodeAccessor,
|
|
544
|
-
0 /* InputChecked */,
|
|
545
|
-
normalizeBoolProp(checked),
|
|
546
|
-
checkedChange
|
|
547
|
-
);
|
|
549
|
+
let el = scope[nodeAccessor], normalizedChecked = normalizeBoolProp(checked);
|
|
550
|
+
scope["E" /* ControlledHandler */ + nodeAccessor] = checkedChange, scope["F" /* ControlledType */ + nodeAccessor] = checkedChange ? 0 /* InputChecked */ : 5 /* None */, checkedChange && !scope.H ? el.checked = normalizedChecked : _attr_input_checked_default(scope, nodeAccessor, normalizedChecked);
|
|
548
551
|
}
|
|
549
552
|
function _attr_input_checked_script(scope, nodeAccessor) {
|
|
550
553
|
let el = scope[nodeAccessor];
|
|
551
|
-
|
|
554
|
+
syncControllableFormInput(el, hasCheckboxChanged, () => {
|
|
552
555
|
let checkedChange = scope["E" /* ControlledHandler */ + nodeAccessor];
|
|
553
556
|
if (checkedChange) {
|
|
554
557
|
let newValue = el.checked;
|
|
@@ -556,21 +559,28 @@ function _attr_input_checked_script(scope, nodeAccessor) {
|
|
|
556
559
|
}
|
|
557
560
|
});
|
|
558
561
|
}
|
|
559
|
-
function
|
|
562
|
+
function _attr_input_checkedValue_default(scope, nodeAccessor, checkedValue, value) {
|
|
560
563
|
let multiple = Array.isArray(checkedValue), normalizedValue = normalizeStrProp(value), normalizedCheckedValue = multiple ? checkedValue.map(normalizeStrProp) : normalizeStrProp(checkedValue);
|
|
561
|
-
|
|
564
|
+
_attr(scope[nodeAccessor], "value", normalizedValue), _attr_input_checked_default(
|
|
562
565
|
scope,
|
|
563
566
|
nodeAccessor,
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
+
multiple ? normalizedCheckedValue.includes(normalizedValue) : normalizedValue === normalizedCheckedValue
|
|
568
|
+
);
|
|
569
|
+
}
|
|
570
|
+
function _attr_input_checkedValue(scope, nodeAccessor, checkedValue, checkedValueChange, value) {
|
|
571
|
+
let el = scope[nodeAccessor], multiple = Array.isArray(checkedValue), normalizedValue = normalizeStrProp(value), normalizedCheckedValue = scope["G" /* ControlledValue */ + nodeAccessor] = multiple ? checkedValue.map(normalizeStrProp) : normalizeStrProp(checkedValue);
|
|
572
|
+
_attr(el, "value", normalizedValue), scope["E" /* ControlledHandler */ + nodeAccessor] = checkedValueChange, scope["F" /* ControlledType */ + nodeAccessor] = checkedValueChange ? 1 /* InputCheckedValue */ : 5 /* None */, checkedValueChange && !scope.H ? el.checked = multiple ? normalizedCheckedValue.includes(normalizedValue) : normalizedValue === normalizedCheckedValue : _attr_input_checkedValue_default(
|
|
573
|
+
scope,
|
|
574
|
+
nodeAccessor,
|
|
575
|
+
normalizedCheckedValue,
|
|
576
|
+
normalizedValue
|
|
567
577
|
);
|
|
568
578
|
}
|
|
569
579
|
function _attr_input_checkedValue_script(scope, nodeAccessor) {
|
|
570
580
|
let el = scope[nodeAccessor];
|
|
571
581
|
isResuming && el.defaultChecked && (scope["G" /* ControlledValue */ + nodeAccessor] ? scope["G" /* ControlledValue */ + nodeAccessor].push(
|
|
572
582
|
el.value
|
|
573
|
-
) : scope["G" /* ControlledValue */ + nodeAccessor] = el.value),
|
|
583
|
+
) : scope["G" /* ControlledValue */ + nodeAccessor] = el.value), syncControllableFormInput(el, hasCheckboxChanged, () => {
|
|
574
584
|
let checkedValueChange = scope["E" /* ControlledHandler */ + nodeAccessor];
|
|
575
585
|
if (checkedValueChange) {
|
|
576
586
|
let oldValue = scope["G" /* ControlledValue */ + nodeAccessor], newValue = Array.isArray(oldValue) ? updateList(oldValue, el.value, el.checked) : el.checked ? el.value : void 0;
|
|
@@ -585,37 +595,58 @@ function _attr_input_checkedValue_script(scope, nodeAccessor) {
|
|
|
585
595
|
}
|
|
586
596
|
});
|
|
587
597
|
}
|
|
598
|
+
function _attr_input_value_default(scope, nodeAccessor, value) {
|
|
599
|
+
let el = scope[nodeAccessor], normalizedValue = normalizeStrProp(value);
|
|
600
|
+
if (el.defaultValue !== normalizedValue) {
|
|
601
|
+
let restoreValue = scope.H ? normalizedValue : el.value;
|
|
602
|
+
el.defaultValue = normalizedValue, setInputValue(el, restoreValue);
|
|
603
|
+
}
|
|
604
|
+
}
|
|
588
605
|
function _attr_input_value(scope, nodeAccessor, value, valueChange) {
|
|
589
606
|
let el = scope[nodeAccessor], normalizedValue = normalizeStrProp(value);
|
|
590
|
-
scope["E" /* ControlledHandler */ + nodeAccessor] = valueChange,
|
|
607
|
+
scope["E" /* ControlledHandler */ + nodeAccessor] = valueChange, scope["G" /* ControlledValue */ + nodeAccessor] = normalizedValue, scope["F" /* ControlledType */ + nodeAccessor] = valueChange ? 2 /* InputValue */ : 5 /* None */, valueChange && !scope.H ? setInputValue(el, normalizedValue) : _attr_input_value_default(scope, nodeAccessor, normalizedValue);
|
|
591
608
|
}
|
|
592
609
|
function _attr_input_value_script(scope, nodeAccessor) {
|
|
593
610
|
let el = scope[nodeAccessor];
|
|
594
|
-
isResuming && (scope["G" /* ControlledValue */ + nodeAccessor] = el.defaultValue),
|
|
611
|
+
isResuming && (scope["G" /* ControlledValue */ + nodeAccessor] = el.defaultValue), syncControllableFormInput(el, hasValueChanged, (ev) => {
|
|
595
612
|
let valueChange = scope["E" /* ControlledHandler */ + nodeAccessor];
|
|
596
|
-
valueChange && (inputType = ev?.inputType, valueChange(el.value), run(),
|
|
597
|
-
el,
|
|
598
|
-
scope["G" /* ControlledValue */ + nodeAccessor]
|
|
599
|
-
), inputType = "");
|
|
613
|
+
valueChange && (inputType = ev?.inputType, valueChange(el.value), run(), setInputValue(el, scope["G" /* ControlledValue */ + nodeAccessor]), inputType = "");
|
|
600
614
|
});
|
|
601
615
|
}
|
|
616
|
+
function setInputValue(el, value) {
|
|
617
|
+
if (el.value !== value) {
|
|
618
|
+
let updatedPosition = resolveCursorPosition(
|
|
619
|
+
inputType,
|
|
620
|
+
el.getRootNode().activeElement === el && el.selectionStart,
|
|
621
|
+
el.value,
|
|
622
|
+
el.value = value
|
|
623
|
+
);
|
|
624
|
+
~updatedPosition && el.setSelectionRange(updatedPosition, updatedPosition);
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
function _attr_select_value_default(scope, nodeAccessor, value) {
|
|
628
|
+
let restoreValue, el = scope[nodeAccessor], existing = !scope.H, multiple = Array.isArray(value), normalizedValue = multiple ? value.map(normalizeStrProp) : normalizeStrProp(value);
|
|
629
|
+
pendingEffects.unshift(() => {
|
|
630
|
+
for (let opt of el.options) {
|
|
631
|
+
let selected = multiple ? normalizedValue.includes(opt.value) : opt.value === normalizedValue;
|
|
632
|
+
opt.defaultSelected !== selected && (existing && (restoreValue ??= getSelectValue(el, multiple)), opt.defaultSelected = selected);
|
|
633
|
+
}
|
|
634
|
+
restoreValue !== void 0 && setSelectValue(el, restoreValue, multiple);
|
|
635
|
+
}, scope);
|
|
636
|
+
}
|
|
602
637
|
function _attr_select_value(scope, nodeAccessor, value, valueChange) {
|
|
603
|
-
let
|
|
604
|
-
scope["E" /* ControlledHandler */ + nodeAccessor] = valueChange,
|
|
605
|
-
() =>
|
|
606
|
-
scope[nodeAccessor],
|
|
607
|
-
normalizedValue,
|
|
608
|
-
valueChange
|
|
609
|
-
),
|
|
638
|
+
let el = scope[nodeAccessor], existing = !scope.H, multiple = Array.isArray(value), normalizedValue = scope["G" /* ControlledValue */ + nodeAccessor] = multiple ? value.map(normalizeStrProp) : normalizeStrProp(value);
|
|
639
|
+
scope["E" /* ControlledHandler */ + nodeAccessor] = valueChange, scope["F" /* ControlledType */ + nodeAccessor] = valueChange ? 3 /* SelectValue */ : 5 /* None */, valueChange && existing ? pendingEffects.unshift(
|
|
640
|
+
() => setSelectValue(el, normalizedValue, multiple),
|
|
610
641
|
scope
|
|
611
|
-
);
|
|
642
|
+
) : _attr_select_value_default(scope, nodeAccessor, normalizedValue);
|
|
612
643
|
}
|
|
613
644
|
function _attr_select_value_script(scope, nodeAccessor) {
|
|
614
645
|
let el = scope[nodeAccessor], onChange = () => {
|
|
615
646
|
let valueChange = scope["E" /* ControlledHandler */ + nodeAccessor];
|
|
616
647
|
if (valueChange) {
|
|
617
|
-
let oldValue = scope["G" /* ControlledValue */ + nodeAccessor],
|
|
618
|
-
|
|
648
|
+
let oldValue = scope["G" /* ControlledValue */ + nodeAccessor], multiple = Array.isArray(oldValue), newValue = getSelectValue(el, multiple);
|
|
649
|
+
setSelectValue(el, oldValue, multiple), valueChange(newValue), run();
|
|
619
650
|
}
|
|
620
651
|
};
|
|
621
652
|
if (isResuming)
|
|
@@ -631,62 +662,40 @@ function _attr_select_value_script(scope, nodeAccessor) {
|
|
|
631
662
|
break;
|
|
632
663
|
}
|
|
633
664
|
}
|
|
634
|
-
el
|
|
665
|
+
syncControllableFormInput(el, hasSelectChanged, onChange), new MutationObserver(() => {
|
|
635
666
|
let value = scope["G" /* ControlledValue */ + nodeAccessor];
|
|
636
667
|
(Array.isArray(value) ? value.length !== el.selectedOptions.length || value.some((value2, i) => value2 != el.selectedOptions[i].value) : el.value !== value) && onChange();
|
|
637
|
-
}).observe(el, {
|
|
638
|
-
childList: !0,
|
|
639
|
-
subtree: !0
|
|
640
|
-
}), syncControllable(el, "input", hasSelectChanged, onChange);
|
|
668
|
+
}).observe(el, { childList: !0, subtree: !0 });
|
|
641
669
|
}
|
|
642
|
-
function
|
|
643
|
-
if (
|
|
644
|
-
for (let opt of el.options) {
|
|
645
|
-
let selected = value.includes(opt.value);
|
|
646
|
-
valueChange ? opt.selected = selected : opt.defaultSelected = selected;
|
|
647
|
-
}
|
|
648
|
-
else if (valueChange)
|
|
649
|
-
el.value = value;
|
|
650
|
-
else
|
|
670
|
+
function setSelectValue(el, value, multiple) {
|
|
671
|
+
if (multiple)
|
|
651
672
|
for (let opt of el.options)
|
|
652
|
-
opt.
|
|
673
|
+
opt.selected = value.includes(opt.value);
|
|
674
|
+
else
|
|
675
|
+
el.value = value;
|
|
676
|
+
}
|
|
677
|
+
function getSelectValue(el, multiple) {
|
|
678
|
+
return multiple ? Array.from(el.selectedOptions, (opt) => opt.value) : el.value;
|
|
679
|
+
}
|
|
680
|
+
function _attr_details_or_dialog_open_default(scope, nodeAccessor, open) {
|
|
681
|
+
scope.H && (scope[nodeAccessor].open = normalizeBoolProp(open));
|
|
653
682
|
}
|
|
654
683
|
function _attr_details_or_dialog_open(scope, nodeAccessor, open, openChange) {
|
|
655
|
-
|
|
684
|
+
let normalizedOpen = scope["G" /* ControlledValue */ + nodeAccessor] = normalizeBoolProp(open);
|
|
685
|
+
scope["E" /* ControlledHandler */ + nodeAccessor] = openChange, scope["F" /* ControlledType */ + nodeAccessor] = openChange ? 4 /* DetailsOrDialogOpen */ : 5 /* None */, openChange && !scope.H ? scope[nodeAccessor].open = normalizedOpen : _attr_details_or_dialog_open_default(scope, nodeAccessor, normalizedOpen);
|
|
656
686
|
}
|
|
657
687
|
function _attr_details_or_dialog_open_script(scope, nodeAccessor) {
|
|
658
|
-
let el = scope[nodeAccessor]
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
el.
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
let openChange = scope["E" /* ControlledHandler */ + nodeAccessor];
|
|
665
|
-
if (openChange && hasChanged()) {
|
|
666
|
-
let newValue = el.open;
|
|
667
|
-
el.open = !newValue, openChange(newValue), run();
|
|
668
|
-
}
|
|
688
|
+
let el = scope[nodeAccessor];
|
|
689
|
+
new MutationObserver(() => {
|
|
690
|
+
let openChange = scope["E" /* ControlledHandler */ + nodeAccessor];
|
|
691
|
+
if (openChange && el.open === !scope["G" /* ControlledValue */ + nodeAccessor]) {
|
|
692
|
+
let newValue = el.open;
|
|
693
|
+
el.open = !newValue, openChange(newValue), run();
|
|
669
694
|
}
|
|
670
|
-
);
|
|
695
|
+
}).observe(el, { attributes: !0, attributeFilter: ["open"] });
|
|
671
696
|
}
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
if (el.value !== value) {
|
|
675
|
-
let updatedPosition = resolveCursorPosition(
|
|
676
|
-
inputType,
|
|
677
|
-
el.getRootNode().activeElement === el && el.selectionStart,
|
|
678
|
-
el.value,
|
|
679
|
-
el.value = value
|
|
680
|
-
);
|
|
681
|
-
~updatedPosition && el.setSelectionRange(updatedPosition, updatedPosition);
|
|
682
|
-
}
|
|
683
|
-
}
|
|
684
|
-
function setCheckboxValue(scope, nodeAccessor, type, checked, checkedChange) {
|
|
685
|
-
scope["E" /* ControlledHandler */ + nodeAccessor] = checkedChange, checkedChange ? (scope["F" /* ControlledType */ + nodeAccessor] = type, scope[nodeAccessor].checked = checked) : (scope["F" /* ControlledType */ + nodeAccessor] = 5 /* None */, scope[nodeAccessor].defaultChecked = checked);
|
|
686
|
-
}
|
|
687
|
-
var controllableDelegate = createDelegator();
|
|
688
|
-
function syncControllable(el, event, hasChanged, onChange) {
|
|
689
|
-
el._ || (controllableDelegate(el, event, handleChange), el.form && controllableDelegate(el.form, "reset", handleFormReset), isResuming && hasChanged(el) && queueMicrotask(onChange)), el._ = onChange;
|
|
697
|
+
function syncControllableFormInput(el, hasChanged, onChange) {
|
|
698
|
+
el._ = onChange, controllableDelegate(el, "input", handleChange), el.form && controllableDelegate(el.form, "reset", handleFormReset), isResuming && hasChanged(el) && queueMicrotask(onChange);
|
|
690
699
|
}
|
|
691
700
|
function handleChange(ev) {
|
|
692
701
|
ev.target._?.(ev);
|
|
@@ -725,9 +734,6 @@ function updateList(arr, val, push2) {
|
|
|
725
734
|
let index = arr.indexOf(val);
|
|
726
735
|
return (push2 ? !~index && [...arr, val] : ~index && arr.slice(0, index).concat(arr.slice(index + 1))) || arr;
|
|
727
736
|
}
|
|
728
|
-
function toValueProp(it) {
|
|
729
|
-
return it.value;
|
|
730
|
-
}
|
|
731
737
|
|
|
732
738
|
// src/dom/dom.ts
|
|
733
739
|
function _to_text(value) {
|
|
@@ -757,7 +763,7 @@ function _attr_style_items(element, items) {
|
|
|
757
763
|
_attr_style_item(element, key, items[key]);
|
|
758
764
|
}
|
|
759
765
|
function _attr_style_item(element, name, value) {
|
|
760
|
-
element.style.setProperty(name, value
|
|
766
|
+
element.style.setProperty(name, _to_text(value));
|
|
761
767
|
}
|
|
762
768
|
function _attr_nonce(scope, nodeAccessor) {
|
|
763
769
|
_attr(scope[nodeAccessor], "nonce", scope.$.cspNonce);
|
|
@@ -903,7 +909,7 @@ function _attrs_script(scope, nodeAccessor) {
|
|
|
903
909
|
}
|
|
904
910
|
function _html(scope, value, accessor) {
|
|
905
911
|
let firstChild = scope[accessor], parentNode = firstChild.parentNode, lastChild = scope["H" /* DynamicHTMLLastChild */ + accessor] || firstChild, newContent = parseHTML(
|
|
906
|
-
value
|
|
912
|
+
_to_text(value),
|
|
907
913
|
parentNode.namespaceURI
|
|
908
914
|
);
|
|
909
915
|
insertChildNodes(
|
|
@@ -1571,22 +1577,29 @@ export {
|
|
|
1571
1577
|
_attr_class_items,
|
|
1572
1578
|
_attr_content,
|
|
1573
1579
|
_attr_details_or_dialog_open as _attr_details_open,
|
|
1580
|
+
_attr_details_or_dialog_open_default as _attr_details_open_default,
|
|
1574
1581
|
_attr_details_or_dialog_open_script as _attr_details_open_script,
|
|
1575
1582
|
_attr_details_or_dialog_open as _attr_dialog_open,
|
|
1583
|
+
_attr_details_or_dialog_open_default as _attr_dialog_open_default,
|
|
1576
1584
|
_attr_details_or_dialog_open_script as _attr_dialog_open_script,
|
|
1577
1585
|
_attr_input_checked,
|
|
1578
1586
|
_attr_input_checkedValue,
|
|
1587
|
+
_attr_input_checkedValue_default,
|
|
1579
1588
|
_attr_input_checkedValue_script,
|
|
1589
|
+
_attr_input_checked_default,
|
|
1580
1590
|
_attr_input_checked_script,
|
|
1581
1591
|
_attr_input_value,
|
|
1592
|
+
_attr_input_value_default,
|
|
1582
1593
|
_attr_input_value_script,
|
|
1583
1594
|
_attr_nonce,
|
|
1584
1595
|
_attr_select_value,
|
|
1596
|
+
_attr_select_value_default,
|
|
1585
1597
|
_attr_select_value_script,
|
|
1586
1598
|
_attr_style,
|
|
1587
1599
|
_attr_style_item,
|
|
1588
1600
|
_attr_style_items,
|
|
1589
1601
|
_attr_input_value as _attr_textarea_value,
|
|
1602
|
+
_attr_input_value_default as _attr_textarea_value_default,
|
|
1590
1603
|
_attr_input_value_script as _attr_textarea_value_script,
|
|
1591
1604
|
_attrs,
|
|
1592
1605
|
_attrs_content,
|