select /ã³ã³ãããã¯ã¹ã®APIããWebã³ã³ããŒãã³ãã®äžçã§ã©ã®ããã«èŠãããã調æ»ããå¿ èŠããããŸãã
éžæãŸãã¯ã³ã³ãããã¯ã¹ã¯åãã³ã³ããŒãã³ãã§ããå¯èœæ§ããããŸãããããããåå²ãããå ŽåããããŸãã ããã¯ãŸã éåžžã«æªå®ã§ãã
ããŸããŸãªã³ã³ããŒãã³ãã©ã€ãã©ãª/èšèšã·ã¹ãã ã®ã¢ãããŒããã³ã³ãããã¯ã¹/éžæã³ã³ããŒãã³ããšæ¯èŒããæ©èœããAPIææ¡ãèãåºããŸãã
ããã€ãã®æœåšçãªãªãœãŒã¹ïŒ
ãªãã·ã§ã³ã®ä»®æ³åã¯å¿
é ã§ããããšã«æ³šæããŠãã ããã ããã¯ãWebã³ã³ããŒãã³ãã¬ã€ã€ãŒã§åŠçããå¿
èŠããããã®ã§ããããããšãæ¶è²»è
ãæœåšçãªãã¬ãŒã ã¯ãŒã¯ã¬ã€ã€ãŒã§åŠçãããã®ã§ããã
ãªãã·ã§ã³ã®ä»®æ³ã¹ã¯ããŒã«ã䜿çšããAngularã»ããã¢ããã§ãäžèšã®Webã³ã³ããŒãã³ãã®1ã€ã䜿çšããŠãã¹ãããã³èª¿æ»ããŸãã
Webã³ã³ããŒãã³ãã§ãreactãšä»®æ³åã䜿çšããŠã¿ãŠãã ããã
ãããèªåã§åŠçããããšã«ããå Žåãäœæããããªãã·ã§ã³ã®ã³ã³ããã¹ããèšå®ãããã³ãã¬ãŒãã¡ã«ããºã ãæ§ç¯ããããšã¯ãç§ãã¡ãè¡ãå¿ èŠãããããšã§ãã
ãã®ãããªããšãéæããæ¹æ³ã«é¢ããããã€ãã®ãªãœãŒã¹ã¯ã microsoft-graph-toolkitãããããŸãã
ãã®åé¡ã®çµæã¯ãåé²ããæ¹æ³ã«ã€ããŠååãªæ å ±ã«åºã¥ãã決å®ãäžããããã«ããªãã·ã§ã³ãšé·æ/çæã®æŠèŠã§ããå¿ èŠããããŸãã
ã³ã³ãããã¯ã¹ã®APIã®ã¢ã€ãã¢ã«ã€ããŠ@heartdiseaseãšåæããŸãã 圌ã¯Angularã®çŸåšã®å®éšããŒãžã§ã³ãæ¹åããŠããŸã
microsoft-graph-toolkit TemplateHelperããã¹ãããŠãã¹ãããã§æäŸãããç¹å®ã®ã³ã³ããã¹ããšãã³ãã¬ãŒãã䜿çšããŠã³ã³ãããã¯ã¹ã¢ã€ãã ãçæããŸããã ããã¯ããã³ãã¬ãŒãå
ã®ãã¹ããããèŠçŽ ã§ããæåŸ
ã©ããã«æ©èœããŸãã
ãã®ãªããžããªã«ãã¹ããã¢ããããŒãããŸãã
ãããã£ãŠãã¢ã€ãã ã®ãªã¹ããšïŒãªãã·ã§ã³ã§ïŒãã³ãã¬ãŒããã³ã³ãããã¯ã¹ã«æž¡ããã¹ã¯ããŒã«äœçœ®ãšé«ãã«å¿ããŠãå®éã«ã¢ã€ãã ãã¬ã³ããªã³ã°ããåã«ä»®æ³åããè¿œå ãããŠãxåã®ã¢ã€ãã ã®ã¿ãã¬ã³ããªã³ã°ããããšããå§ãããŸãããªãŒããŒã¬ã€ã³ã³ããã
çŸåšã TemplateHelper.renderTemplate()
ã¡ãœããã¯ãHTMLElementãã«ãŒãããŒãããã³ãã¬ãŒããããã³ã³ã³ããã¹ãïŒããã³ãªãã·ã§ã³ã®è¿œå ã³ã³ããã¹ãïŒãšããŠåãå
¥ããŸãã æå®ããããã³ãã¬ãŒãã«åŸã£ãŠãã¹ãŠã®ããŒããäœæããããããã«ãŒãããŒãã«æ¥ç¶ããŸãã
ãã®åäœãå€æŽããã¡ãœããããã³ãã¬ãŒããšã³ã³ããã¹ãã®ã¿ãåãå
¥ããã³ã³ãã€ã«ããããã³ãã¬ãŒããè¿ãããã«ããŠãè¿ãããHTMLãã³ã³ããŒãã³ãã®lit-templateã«çŽæ¥åºåã§ããããã«ããæ¹ãããå ŽåããããŸãã
ã©ãæããŸããïŒ
ToDo
èªã¿èŸŒã¿ã¹ãããŒã¯ã©ãã«è¡šç€ºããå¿
èŠããããŸããïŒãã©ãŒã«ã¹ãããŠããå Žåã Enter
ã ArrowUp
ãŸãã¯ArrowDown
ããŒãæŒããããŠãŒã¶ãŒãå
¥åãã£ãŒã«ãã«ãã£ã«ã¿ãŒãå
¥åãå§ãããšãã³ã³ãããã¯ã¹ãéããŸãã
éããŠãããšãããŠãŒã¶ãŒã¯ArrowUp
/ ArrowDown
ããŒã䜿çšããŠæ¢åã®ãªãã·ã§ã³ããéžæã§ããå¿
èŠããããŸãã ãã£ã«ã¿ãå
¥åããããã®ãã©ãŒã«ã¹ã¯å
¥åãã£ãŒã«ãã«ãšã©ãŸãå¿
èŠãããããªãã·ã§ã³ã¯ã¿ãå¯èœã§ãã£ãŠã¯ãªããŸããã ãªãã·ã§ã³ã®éžæç¶æ
ã¯ã aria-selected
å±æ§ã䜿çšããŠç€ºãå¿
èŠããããŸãã
éžæã¯Enter
ããŒã䜿çšããŠéä¿¡ããå¿
èŠããããŸãã
Tab
ãŸãã¯Escape
ããŒãæŒããšããªãŒããŒã¬ã€ãéããéžæããã¢ã€ãã ã¯å€æŽãããŸããã
ãã£ã«ã¿ãå ¥åããŠããå ¥åãã£ãŒã«ãããã¿ãã¢ãŠããããšããã£ã«ã¿ããªã»ããããã以åã«éžæããé ç®ã衚瀺ãããŸãã
ãŠãŒã¶ãŒã¯ããã³ãã¬ãŒãããŒãã®éå§æååãšçµäºæååãæäŸããå¿ èŠããããŸãã ããã¯ãã°ããŒãã«ã¬ãã«ãŸãã¯ã³ã³ããŒãã³ãããšã®ã¬ãã«ã§å¯èœã§ããå¿ èŠããããŸãïŒãŸã 決å®ãããŠããŸããïŒã
ããã©ã«ãã¯{{
ããã³}}
ã§ãã
_WIP_
ComboBoxã¯ãã¡ã€ã³ã®FluidComboBox
ã³ã³ããŒãã³ãã FluidComboBoxOptionsList
ã³ã³ããŒãã³ããããã³FluidComboBoxOption
ã³ã³ããŒãã³ãã«åå²ããå¿
èŠããããŸãã
FluidComboBoxOptionsList
ãå«ãŸãã次ã«FluidComboBoxOption
ãå«ãŸããŸãã
ãªãŒããŒã¬ã€ã®ééãšãªãŒããŒã¬ã€ã®é
眮ãåŠçããŸãã
ããŒã¹HTMLElement
ãåãå
¥ããåèŠçŽ ãšããŠãã³ãã¬ãŒããåãå
¥ããŸãã
ãã³ãã¬ãŒããæäŸãããšãã¯ããã³ãã¬ãŒãã®ãã€ã³ãã«äœ¿çšãããéå§æååãšçµäºæååãèšå®ããå¿ èŠããããŸãã
| åå| äºå®| ã¿ã€ã| ããã©ã«ã| 説æ|
| -------------- | ----------- | -------- | ------- | -------------------------------------------------- ------------------------------ |
| ãªãã·ã§ã³| MVP | ã¢ã¬ã€| [] | FluidComboBoxOptionsList
ã«è¡šç€ºãããªãã·ã§ã³ã®é
å|
| filterFn | MVP | (option: T) => boolean
| null
| ãªãã·ã§ã³ã®ãã£ã«ã¿ãªã³ã°ã«äœ¿çšãããé¢æ°|
| renderOptionFn | MVP | (option: T) => string
| null
| ãªãŒãã³ã³ããªãŒãããã«ã®ã¬ã³ããªã³ã°ãªãã·ã§ã³ã«äœ¿çšãããé¢æ°|
| ãã¬ãŒã¹ãã«ããŒ| MVP | æåå| '' | ãªãã·ã§ã³ãéžæãããŠããªãå Žåã«å
¥åãã£ãŒã«ãã«è¡šç€ºãããã¬ãŒã¹ãã«ããŒ|
| ç¡å¹| MVP | ããŒã«å€| false | ã³ã³ãããã¯ã¹ãç¡å¹ã«ãªã£ãŠãããã©ãããå€æããããŒã«å€|
| èªã¿èŸŒã¿äž| MVP | ããŒã«å€| false | è² è·ã€ã³ãžã±ãŒã¿ã衚瀺ãããã©ããã決å®ããããŒã«å€|
| éžææžã¿| MVP | ä»»æ| null | äºåéžæããã¢ã€ãã |
| multiSelect | v2 | ããŒã«å€| false | è€æ°ã®ãªãã·ã§ã³ãåæã«éžæã§ãããã©ããã決å®ããããŒã«å€|
| åå| äºå®| ã¿ã€ã| 説æ|
| ---------------- | ----------- | --------------------------------- | -------------------------------------------------- ---- |
| å€æŽ| MVP | FluidComboBoxChangeEvent | å€ãå€æŽããããšãã«çºçããã€ãã³ã|
| ãã£ã«ã¿å€æŽ| MVP | FluidComboBoxFilterChangeEvent | ãŠãŒã¶ãŒããã£ã«ã¿ãªã³ã°ã®å€ãå
¥åãããšãã«çºçããã€ãã³ã|
| éžæ-å€æŽ| MVP | FluidComboBoxSelectionChangeEvent | éžæãããªãã·ã§ã³ãå€æŽããããšãã«çºçããã€ãã³ã|
FluidComboBoxã®åææ¡ä»¶ãšããŠãæåã«åå©çšå¯èœãªããŒãã£ã³ã°ã¹ãããŒã³ã³ããŒãã³ããå®è£
ããå¿
èŠããããŸãã
ToDo
æ°ããããŒãã£ã³ã°ã¹ãããŒã®LïŒFã«ã€ããŠïŒãŸãã¯å€ããã¶ã€ã³ãåå©çšã§ãããã©ããïŒUXã«è³ªåããŸãã
FluidComboBoxã®åææ¡ä»¶ãšããŠãä»®æ³ã¹ã¯ããŒã«ãå®è£
ããåå©çšå¯èœãªã³ã³ããŒãã³ããå®è£
ããå¿
èŠããããŸã
ã³ã³ãããã¯ã¹ãå€æ°ã®ã¢ã€ãã ã§äœ¿çšã§ããããã«ããããã
åç
§ïŒ
https://github.com/WICG/virtual-scroller/blob/master/README.md
https://www.sitepen.com/blog/next-generation-virtual-scrolling/
https://dev.to/adamklein/build-your-own-virtual-scroll-part-i-11ib
https://blog.logrocket.com/virtual-scrolling-core-principles-and-basic-implementation-in-react/
FluidComboBoxã®åææ¡ä»¶ãšããŠãé
眮å¯èœãªåå©çšå¯èœãªããããªãŒããŒã³ã³ããŒãã³ããå®è£
ããå¿
èŠããããŸã
ã³ã³ãããã¯ã¹ã®å
¥åèŠçŽ ã®äžã«å®å
šã«ãããŸãã
ãã®ã©ã€ãã©ãªã¯ããã®ã³ã³ããŒãã³ããå®è£
ããããã«äœ¿çšããå¿
èŠããããŸãã
https://popper.js.org/docs/v2/
ãã³ãã¬ãŒãã«é¢ããŠã¯ãéçºè ãããã¹ãã®çœ®æã®ã¿ãè¡ãããšã¯ããŸãæè»ã§åºç¯ã§ã¯ãªããããããã€ãã®æžå¿µããããŸãã é¢æ°ãŸãã¯ifã®ãããªåçŽãªæ¡ä»¶ã«ããããã¹ãå€æã«ã€ããŠèããŠã¿ãŠãã ãããããã¯äžå¯èœã§ãããå¿ èŠã ãšæããŸãã
ç§ã®ã¢ãããŒãã¯ãè¿œå ã§ããDocumentFragmentã«å ¥ããããšãã§ããHTMLæååãè¿ãé¢æ°ãæžãããšã§ãã
é¢æ°ãæžãããšã§ãå€æãæ¡ä»¶ã®å®å
šãªæè»æ§ãåŸãããšãã§ããŸãã
ãã®ããã®åçŽãªã¢ãŠãã¬ãããæäŸããããã«ãæååã«ã¬ã³ããªã³ã°ã§ããJSX htmã«äŒŒããã®ãå©çšã§ãããããã³ã³ãã€ã«ã¯å¿
èŠãããŸããã ãŸããçŽ700ãã€ãã«ã€ããŠè©±ããŠãããããããªã³ãã¯ãããããã§ãã
ãã®åŸã次ã®ããã«äœ¿çšã§ããŸãã
<script type="text/template">
html`
<span>${text}</span>
{count > 0
<span>occurrences ${count}</span>
}
</div>
`;
</script>
import { render } from "preact-render-to-string";
const template = document.createElement('template');
template.innerHTML = render(option); // option is the script that can be passed via slot or input
const fragment = temp.content;
ãŸãã¯ãã¿ã°ä»ããã³ãã¬ãŒãhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#Tagged_templatesã䜿çšããããšãã§ã
ããã¯ããããããæå°éã®è§£æ±ºçã§ãããã
ç§ã¯ããã€ãã®ãã¹ããè¡ããŸããããæ®å¿µãªããAngularã¯ãã¹ãŠã®ã¹ã¯ãªããã¿ã°ããã³ãã¬ãŒãããåé€ããŸããã ãã³ãã¬ãŒãå ã§ã®ã¹ã¯ãªããã®å®£èšã«é¢ããç§ã®2ã»ã³ãã
ãã¶ããé¢æ°åªå ã®ã¢ãããŒãã䜿ã£ãŠãã³ã³ãããã¯ã¹ã«å ¥åãããããã³ãã¬ãŒãã®ã¬ã³ããªã³ã°æ¹æ³ã«é¢ããé¢æ°ãæäŸã§ããããã«ããŸãããã
LitElementsã«ããããã£ãšããŠé¢æ°ãæäŸããããšã¯å¯èœã§ããïŒ ãããããç§ã¯ã¬ã³ããªã³ã°ãã³ã³ã·ã¥ãŒããŒã«æž¡ããŸããã³ã³ã·ã¥ãŒããŒã¯ããã®é¢æ°ã§javascriptã®ãã¹ãŠã®æè»æ§ãåããŠããŸãã é¢æ°ã¯ãã©ã¡ãŒã¿ãŒïŒãã³ãã¬ãŒãã®å ¥åïŒã宣èšããŠãããæååãè¿ãå¿ èŠããããŸãã
ããã©ã«ãã®å®è£ ã¯æ¬¡ã®ããã«å®è¡ã§ããŸãã
_defaultTemplate<T>(display: string, value: T): string {
return `<option>${display}</option>`
}
ïŒ1513ã§èª¬æããããã«ãããããªãŒããŒãé©åã«åŠçããå¿ èŠããããŸãã
ãããã³ã³ãããã¯ã¹ã³ã³ããŒãã³ãã®äžéšã§ããå ¥åã«ã€ããŠè°è«ããã®ã«é©åãªå Žæãã©ããã¯ããããŸããããå ¥åã¯ãã©ãŒã«ã¹ã«çŠç¹ãåãããŠæé·ãããããå ¥åã³ã³ããŒãã³ãã®ããã¯ã¹ãæ¡åŒµããŠæ倧ã®ç¶æ ã®ã¹ããŒã¹ãåãã®ã¯çã«ããªã£ãŠãããšæããŸããã£ãŠããã
çŸåšãå ¥åã¯ãã©ãŒã«ã¹ããããšå¹ ã16px倧ãããªããŸãã ãããã£ãŠãã©ãã«+å ¥åã8ã®ããã£ã³ã°ã§ç§»åããããšããå§ãããŸããããã¯ãè€æ°ã®ã³ã³ãããŒã«ïŒinputãselectã...ïŒãåçŽåœ¢åŒã®ã¬ã€ã¢ãŠãã§ããå Žåããã¹ãŠã®ã³ã³ãããŒã«ã®ãã¹ãŠã®ã©ãã«ãæŽåã ãããããã©ãã«ãšå ¥åã®ééãçµ±äžããããã®ãã©ãŒã ã³ã³ãããŒã«ãçã«ããªã£ãŠããŸãã
çŸåšéžæãããŠãããªãã·ã§ã³ã®è¡šç€ºæååãã¬ã³ããªã³ã°ããããã®æ°ããå ¥åãè¿œå ããŠãææ¡ãä¿®æ£ããããšæããŸãã
| åå| äºå®| ã¿ã€ã| ããã©ã«ã| 説æ|
| -------------- | ----------- | -------- | ------- | -------------------------------------------------- ------------------------------ |
| displayNameFn | MVP | (option: T) => string
| ïŒãªãã·ã§ã³ïŒ=> `$ {option}` | æå®ããããªãã·ã§ã³ã®è¡šç€ºæååïŒHTMLã¯èš±å¯ãããŠããŸããïŒãè¿ãé¢æ°ã |
ããã¯ããã®åé¡ã®ç°¡åãªè§£æ±ºçã«ããªããŸãïŒïŒ1527
éèŠã ãšæãå°ããªããšïŒçŸåšã®DtComboboxã¯ããªãã·ã§ã³ã®value
ãããã©ã«ãã®ãéžæããããªãã·ã§ã³ãã®è¡šç€ºããã¹ããšããŠäœ¿çšããŸãã ãªãã·ã§ã³ã®textContent
ã䜿çšããæ¹ãã¯ããã«çã«ããªã£ãŠãããšæããŸãã
1ïŒ textContent
ã¯åžžã«UIã«é©ããå€ã§ãïŒ value
ã¯UIã«é©ããå€ã§ããå ŽåããããŸãïŒ
2ïŒ textContent
ã䜿çšããããšã¯ãæšæºã®select
è¡ãããšã§ã
Webã³ã³ããŒãã³ãã¯ãå°æ¥çã«ã³ã³ããŒãã³ããäœæããæ¹æ³ã§ã¯ãªãããããã®åé¡ã解決ããŸããããã¯ãããŒã å ã®åªå é äœã®å€æŽã«é¢é£ããŠããŸãã
æãåèã«ãªãã³ã¡ã³ã
èŠä»¶
次ã®ã¹ãããã®èŠä»¶
ToDo
èªã¿èŸŒã¿ã¹ãããŒã¯ã©ãã«è¡šç€ºããå¿ èŠããããŸããïŒã¢ã¯ã»ã·ããªãã£
ãã©ãŒã«ã¹ãããŠããå Žåã
Enter
ãArrowUp
ãŸãã¯ArrowDown
ããŒãæŒããããŠãŒã¶ãŒãå ¥åãã£ãŒã«ãã«ãã£ã«ã¿ãŒãå ¥åãå§ãããšãã³ã³ãããã¯ã¹ãéããŸããéããŠãããšãããŠãŒã¶ãŒã¯
ArrowUp
/ArrowDown
ããŒã䜿çšããŠæ¢åã®ãªãã·ã§ã³ããéžæã§ããå¿ èŠããããŸãã ãã£ã«ã¿ãå ¥åããããã®ãã©ãŒã«ã¹ã¯å ¥åãã£ãŒã«ãã«ãšã©ãŸãå¿ èŠãããããªãã·ã§ã³ã¯ã¿ãå¯èœã§ãã£ãŠã¯ãªããŸããã ãªãã·ã§ã³ã®éžæç¶æ ã¯ãaria-selected
å±æ§ã䜿çšããŠç€ºãå¿ èŠããããŸããéžæã¯
Enter
ããŒã䜿çšããŠéä¿¡ããå¿ èŠããããŸããTab
ãŸãã¯Escape
ããŒãæŒããšããªãŒããŒã¬ã€ãéããéžæããã¢ã€ãã ã¯å€æŽãããŸããããã£ã«ã¿ãå ¥åããŠããå ¥åãã£ãŒã«ãããã¿ãã¢ãŠããããšããã£ã«ã¿ããªã»ããããã以åã«éžæããé ç®ã衚瀺ãããŸãã
ã«ã¹ã¿ã ãã³ãã¬ãŒãæ§æ
ãŠãŒã¶ãŒã¯ããã³ãã¬ãŒãããŒãã®éå§æååãšçµäºæååãæäŸããå¿ èŠããããŸãã ããã¯ãã°ããŒãã«ã¬ãã«ãŸãã¯ã³ã³ããŒãã³ãããšã®ã¬ãã«ã§å¯èœã§ããå¿ èŠããããŸãïŒãŸã 決å®ãããŠããŸããïŒã
ããã©ã«ãã¯
{{
ããã³}}
ã§ããAPIææ¡
_WIP_
ComboBoxã¯ãã¡ã€ã³ã®
FluidComboBox
ã³ã³ããŒãã³ããFluidComboBoxOptionsList
ã³ã³ããŒãã³ããããã³FluidComboBoxOption
ã³ã³ããŒãã³ãã«åå²ããå¿ èŠããããŸããFluidComboBox
FluidComboBoxOptionsList
ãå«ãŸãã次ã«FluidComboBoxOption
ãå«ãŸããŸãããªãŒããŒã¬ã€ã®ééãšãªãŒããŒã¬ã€ã®é 眮ãåŠçããŸãã
ããŒã¹
HTMLElement
ãåãå ¥ããåèŠçŽ ãšããŠãã³ãã¬ãŒããåãå ¥ããŸãããã³ãã¬ãŒããæäŸãããšãã¯ããã³ãã¬ãŒãã®ãã€ã³ãã«äœ¿çšãããéå§æååãšçµäºæååãèšå®ããå¿ èŠããããŸãã
å ¥å
| åå| äºå®| ã¿ã€ã| ããã©ã«ã| 説æ|
| -------------- | ----------- | -------- | ------- | -------------------------------------------------- ------------------------------ |
| ãªãã·ã§ã³| MVP | ã¢ã¬ã€| [] |
FluidComboBoxOptionsList
ã«è¡šç€ºãããªãã·ã§ã³ã®é å|| filterFn | MVP |
(option: T) => boolean
|null
| ãªãã·ã§ã³ã®ãã£ã«ã¿ãªã³ã°ã«äœ¿çšãããé¢æ°|| renderOptionFn | MVP |
(option: T) => string
|null
| ãªãŒãã³ã³ããªãŒãããã«ã®ã¬ã³ããªã³ã°ãªãã·ã§ã³ã«äœ¿çšãããé¢æ°|| ãã¬ãŒã¹ãã«ããŒ| MVP | æåå| '' | ãªãã·ã§ã³ãéžæãããŠããªãå Žåã«å ¥åãã£ãŒã«ãã«è¡šç€ºãããã¬ãŒã¹ãã«ããŒ|
| ç¡å¹| MVP | ããŒã«å€| false | ã³ã³ãããã¯ã¹ãç¡å¹ã«ãªã£ãŠãããã©ãããå€æããããŒã«å€|
| èªã¿èŸŒã¿äž| MVP | ããŒã«å€| false | è² è·ã€ã³ãžã±ãŒã¿ã衚瀺ãããã©ããã決å®ããããŒã«å€|
| éžææžã¿| MVP | ä»»æ| null | äºåéžæããã¢ã€ãã |
| multiSelect | v2 | ããŒã«å€| false | è€æ°ã®ãªãã·ã§ã³ãåæã«éžæã§ãããã©ããã決å®ããããŒã«å€|
åºå
| åå| äºå®| ã¿ã€ã| 説æ|
| ---------------- | ----------- | --------------------------------- | -------------------------------------------------- ---- |
| å€æŽ| MVP | FluidComboBoxChangeEvent | å€ãå€æŽããããšãã«çºçããã€ãã³ã|
| ãã£ã«ã¿å€æŽ| MVP | FluidComboBoxFilterChangeEvent | ãŠãŒã¶ãŒããã£ã«ã¿ãªã³ã°ã®å€ãå ¥åãããšãã«çºçããã€ãã³ã|
| éžæ-å€æŽ| MVP | FluidComboBoxSelectionChangeEvent | éžæãããªãã·ã§ã³ãå€æŽããããšãã«çºçããã€ãã³ã|
FluidLoadingSpinner
FluidComboBoxã®åææ¡ä»¶ãšããŠãæåã«åå©çšå¯èœãªããŒãã£ã³ã°ã¹ãããŒã³ã³ããŒãã³ããå®è£ ããå¿ èŠããããŸãã
ToDo
æ°ããããŒãã£ã³ã°ã¹ãããŒã®LïŒFã«ã€ããŠïŒãŸãã¯å€ããã¶ã€ã³ãåå©çšã§ãããã©ããïŒUXã«è³ªåããŸããFluidVirtualScroller
FluidComboBoxã®åææ¡ä»¶ãšããŠãä»®æ³ã¹ã¯ããŒã«ãå®è£ ããåå©çšå¯èœãªã³ã³ããŒãã³ããå®è£ ããå¿ èŠããããŸã
ã³ã³ãããã¯ã¹ãå€æ°ã®ã¢ã€ãã ã§äœ¿çšã§ããããã«ããããã
åç §ïŒ
https://github.com/WICG/virtual-scroller/blob/master/README.md
https://www.sitepen.com/blog/next-generation-virtual-scrolling/
https://dev.to/adamklein/build-your-own-virtual-scroll-part-i-11ib
https://blog.logrocket.com/virtual-scrolling-core-principles-and-basic-implementation-in-react/
FluidPopover
FluidComboBoxã®åææ¡ä»¶ãšããŠãé 眮å¯èœãªåå©çšå¯èœãªããããªãŒããŒã³ã³ããŒãã³ããå®è£ ããå¿ èŠããããŸã
ã³ã³ãããã¯ã¹ã®å ¥åèŠçŽ ã®äžã«å®å šã«ãããŸãã
ãã®ã©ã€ãã©ãªã¯ããã®ã³ã³ããŒãã³ããå®è£ ããããã«äœ¿çšããå¿ èŠããããŸãã
https://popper.js.org/docs/v2/