autocomplete.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. import { extend } from '../../shared/utils.js';
  2. import Autocomplete from './autocomplete-class.js';
  3. import ConstructorMethods from '../../shared/constructor-methods.js';
  4. export default {
  5. name: 'autocomplete',
  6. params: {
  7. autocomplete: {
  8. openerEl: undefined,
  9. inputEl: undefined,
  10. view: undefined,
  11. // DropDown
  12. dropdownContainerEl: undefined,
  13. dropdownPlaceholderText: undefined,
  14. typeahead: false,
  15. highlightMatches: true,
  16. expandInput: false,
  17. updateInputValueOnSelect: true,
  18. inputEvents: 'input',
  19. value: undefined,
  20. multiple: false,
  21. source: undefined,
  22. limit: undefined,
  23. valueProperty: 'id',
  24. textProperty: 'text',
  25. openIn: 'page',
  26. // or 'popup' or 'dropdown'
  27. pageBackLinkText: 'Back',
  28. popupCloseLinkText: 'Close',
  29. pageTitle: undefined,
  30. searchbarPlaceholder: 'Search...',
  31. searchbarDisableText: 'Cancel',
  32. searchbarDisableButton: undefined,
  33. searchbarSpellcheck: false,
  34. popupPush: false,
  35. popupSwipeToClose: undefined,
  36. animate: true,
  37. autoFocus: false,
  38. closeOnSelect: false,
  39. notFoundText: 'Nothing found',
  40. requestSourceOnOpen: false,
  41. // Preloader
  42. preloaderColor: undefined,
  43. preloader: false,
  44. // Colors
  45. formColorTheme: undefined,
  46. navbarColorTheme: undefined,
  47. // Routing
  48. routableModals: false,
  49. url: 'select/',
  50. // Custom render functions
  51. renderDropdown: undefined,
  52. renderPage: undefined,
  53. renderPopup: undefined,
  54. renderItem: undefined,
  55. renderSearchbar: undefined,
  56. renderNavbar: undefined
  57. }
  58. },
  59. static: {
  60. Autocomplete
  61. },
  62. create() {
  63. const app = this;
  64. app.autocomplete = extend(ConstructorMethods({
  65. defaultSelector: undefined,
  66. constructor: Autocomplete,
  67. app,
  68. domProp: 'f7Autocomplete'
  69. }), {
  70. open(autocompleteEl) {
  71. const ac = app.autocomplete.get(autocompleteEl);
  72. if (ac && ac.open) return ac.open();
  73. return undefined;
  74. },
  75. close(autocompleteEl) {
  76. const ac = app.autocomplete.get(autocompleteEl);
  77. if (ac && ac.close) return ac.close();
  78. return undefined;
  79. }
  80. });
  81. }
  82. };