@cahyo-dimas/freeday 1.14.0 → 1.16.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/CHANGELOG.md +37 -0
- package/README.id.md +1 -1
- package/README.md +1 -1
- package/adapters/blazor/CflTypes.cs +11 -0
- package/adapters/blazor/FdyAutocomplete.razor +19 -0
- package/adapters/blazor/FdyAutocomplete.razor.cs +40 -0
- package/adapters/blazor/FdyCascade.razor +33 -0
- package/adapters/blazor/FdyCascade.razor.cs +38 -0
- package/adapters/blazor/FdyCascadeNode.cs +8 -0
- package/adapters/blazor/FdyCfl.razor +93 -0
- package/adapters/blazor/FdyCfl.razor.cs +146 -0
- package/adapters/blazor/FdyChart.razor +25 -0
- package/adapters/blazor/FdyChart.razor.cs +90 -0
- package/adapters/blazor/FdyChartSeries.cs +10 -0
- package/adapters/blazor/FdyCombo.razor +28 -0
- package/adapters/blazor/FdyCombo.razor.cs +86 -0
- package/adapters/blazor/FdyComboOption.cs +7 -0
- package/adapters/blazor/FdyDateRange.razor +16 -0
- package/adapters/blazor/FdyDateRange.razor.cs +58 -0
- package/adapters/blazor/FdyDatepicker.razor +13 -0
- package/adapters/blazor/FdyDatepicker.razor.cs +39 -0
- package/adapters/blazor/FdyDrawer.razor +36 -0
- package/adapters/blazor/FdyDrawer.razor.cs +88 -0
- package/adapters/blazor/FdyModal.razor +36 -0
- package/adapters/blazor/FdyModal.razor.cs +88 -0
- package/adapters/blazor/FdyTable.razor +140 -0
- package/adapters/blazor/FdyTable.razor.cs +200 -0
- package/adapters/blazor/FdyTableFilter.razor +77 -0
- package/adapters/blazor/FdyTableFilter.razor.cs +117 -0
- package/adapters/blazor/Freeday.Blazor.csproj +27 -0
- package/adapters/blazor/FreedayComponentBase.cs +73 -0
- package/adapters/blazor/TableModel.cs +196 -0
- package/adapters/blazor/TableTypes.cs +69 -0
- package/adapters/blazor/_Imports.razor +5 -0
- package/adapters/blazor/freeday-blazor.js +101 -3
- package/dist/asset.d.ts +6 -0
- package/dist/freeday-select.js +32 -8
- package/dist/freeday.d.ts +24 -0
- package/dist/freeday.js +32 -8
- package/package.json +14 -8
- package/src/freeday-select.js +32 -8
- package/tokens/breakpoints.d.ts +8 -0
package/src/freeday-select.js
CHANGED
|
@@ -91,7 +91,11 @@
|
|
|
91
91
|
setHighlight(-1);
|
|
92
92
|
if (openClose === close) openClose = null;
|
|
93
93
|
}
|
|
94
|
-
|
|
94
|
+
// Mark an option selected + reflect it in the button. `silent` skips the change
|
|
95
|
+
// event, close, and focus — used by the programmatic setValue() below so a host
|
|
96
|
+
// (e.g. a Blazor/framework wrapper) can push a value in without echoing an event
|
|
97
|
+
// back to itself or stealing focus. User-driven picks go through choose() (loud).
|
|
98
|
+
function select(opt, silent) {
|
|
95
99
|
options.forEach(function (other) {
|
|
96
100
|
var on = other === opt;
|
|
97
101
|
other.setAttribute('aria-selected', on ? 'true' : 'false');
|
|
@@ -101,12 +105,24 @@
|
|
|
101
105
|
root.setAttribute('data-value', opt.getAttribute('data-value') || '');
|
|
102
106
|
valueEl.textContent = optionLabel(opt);
|
|
103
107
|
valueEl.classList.remove('fdy-combo__value--placeholder');
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
108
|
+
if (!silent) {
|
|
109
|
+
root.dispatchEvent(new CustomEvent('fdy-change', {
|
|
110
|
+
bubbles: true,
|
|
111
|
+
detail: { value: opt.getAttribute('data-value') }
|
|
112
|
+
}));
|
|
113
|
+
close();
|
|
114
|
+
button.focus();
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
function choose(opt) { select(opt, false); }
|
|
118
|
+
// Programmatic set (no event, no focus change). No-op if no option matches.
|
|
119
|
+
function setValue(value) {
|
|
120
|
+
for (var i = 0; i < options.length; i++) {
|
|
121
|
+
if ((options[i].getAttribute('data-value') || '') === String(value)) {
|
|
122
|
+
select(options[i], true);
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
110
126
|
}
|
|
111
127
|
|
|
112
128
|
button.addEventListener('click', function () {
|
|
@@ -167,6 +183,9 @@
|
|
|
167
183
|
root.addEventListener('focusout', function (e) {
|
|
168
184
|
if (!root.contains(e.relatedTarget)) close();
|
|
169
185
|
});
|
|
186
|
+
|
|
187
|
+
// Per-instance API for programmatic control (host wrappers / two-way binding).
|
|
188
|
+
root._fdyCombo = { setValue: setValue };
|
|
170
189
|
}
|
|
171
190
|
|
|
172
191
|
function initAll(context) {
|
|
@@ -190,5 +209,10 @@
|
|
|
190
209
|
initAll();
|
|
191
210
|
}
|
|
192
211
|
|
|
193
|
-
|
|
212
|
+
// Programmatic set on an already-initialised combo root (no fdy-change dispatched).
|
|
213
|
+
function setValue(root, value) {
|
|
214
|
+
if (root && root._fdyCombo) root._fdyCombo.setValue(value);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
window.FreedayCombo = { init: initCombo, initAll: initAll, setValue: setValue };
|
|
194
218
|
})();
|