@appbaseio/reactivesearch-vue 3.3.0 → 3.3.1
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/@appbaseio/reactivesearch-vue.umd.js +440 -696
- package/dist/@appbaseio/reactivesearch-vue.umd.js.map +1 -1
- package/dist/@appbaseio/reactivesearch-vue.umd.min.js +4 -4
- package/dist/@appbaseio/reactivesearch-vue.umd.min.js.map +1 -1
- package/dist/cjs/{Button-f96a0570.js → Button-7aee17e3.js} +1 -1
- package/dist/cjs/{DropDown-ebe20e81.js → CancelSvg-6094cd37.js} +1 -292
- package/dist/cjs/{Card-63968d94.js → Card-abff695e.js} +2 -2
- package/dist/cjs/{ComponentWrapper-0334c14b.js → ComponentWrapper-3bedbe57.js} +2 -2
- package/dist/cjs/{Container-29f049b2.js → Container-1c05785a.js} +1 -1
- package/dist/cjs/DropDown-815d458e.js +299 -0
- package/dist/cjs/DynamicRangeSlider.js +6 -6
- package/dist/cjs/{Flex-ddde6d26.js → Flex-f7af0673.js} +1 -1
- package/dist/cjs/{FormControlList-fadd792f.js → FormControlList-2c10e01a.js} +1 -1
- package/dist/cjs/{Input-cee51a53.js → Input-55fbd8e1.js} +1 -1
- package/dist/cjs/{ListItem-7a682970.js → ListItem-f272f502.js} +2 -2
- package/dist/cjs/MultiDropdownList.js +11 -10
- package/dist/cjs/MultiList.js +9 -9
- package/dist/cjs/MultiRange.js +7 -7
- package/dist/cjs/{Pagination-c53a18ab.js → Pagination-accd2fbf.js} +1 -1
- package/dist/cjs/{PreferencesConsumer-7bee3c57.js → PreferencesConsumer-37cab7a0.js} +2 -2
- package/dist/cjs/RangeInput.js +9 -9
- package/dist/cjs/RangeSlider.js +7 -7
- package/dist/cjs/ReactiveBase.js +2 -2
- package/dist/cjs/ReactiveComponent.js +4 -4
- package/dist/cjs/ReactiveGoogleMap.js +8 -8
- package/dist/cjs/ReactiveList.js +10 -10
- package/dist/cjs/ResultCard.js +3 -3
- package/dist/cjs/ResultList.js +3 -3
- package/dist/cjs/{install-c61d8b86.js → SearchBox-4dff47b4.js} +39 -1681
- package/dist/cjs/SearchBox.js +38 -0
- package/dist/cjs/SelectedFilters.js +5 -5
- package/dist/cjs/SingleDropdownList.js +11 -10
- package/dist/cjs/SingleList.js +9 -9
- package/dist/cjs/SingleRange.js +7 -7
- package/dist/cjs/StateProvider.js +2 -2
- package/dist/cjs/{Title-8802a218.js → Title-d513ac26.js} +1 -1
- package/dist/cjs/ToggleButton.js +7 -7
- package/dist/cjs/{_rollupPluginBabelHelpers-f8b843f8.js → _rollupPluginBabelHelpers-1a877b17.js} +14 -14
- package/dist/cjs/{index-1f41363f.js → index-7ca9570e.js} +1 -1
- package/dist/cjs/index.js +21 -19
- package/dist/cjs/install-246c0dab.js +1683 -0
- package/dist/cjs/install.js +19 -17
- package/dist/cjs/{ssr-8dd13d43.js → ssr-15d936a0.js} +1 -1
- package/dist/cjs/{utils-c9bd5628.js → utils-a3db8765.js} +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/es/{Button-5c2cf399.js → Button-8178e39a.js} +1 -1
- package/dist/es/{DropDown-36fa9ac5.js → CancelSvg-5b82ad4f.js} +3 -293
- package/dist/es/{Card-54b9e7a0.js → Card-3a81ac7b.js} +2 -2
- package/dist/es/{ComponentWrapper-46d04344.js → ComponentWrapper-90d42a29.js} +2 -2
- package/dist/es/{Container-d00219f7.js → Container-e2261542.js} +1 -1
- package/dist/es/DropDown-f8049812.js +295 -0
- package/dist/es/DynamicRangeSlider.js +6 -6
- package/dist/es/{Flex-25792bc3.js → Flex-5d11362e.js} +1 -1
- package/dist/es/{FormControlList-fe6eaee4.js → FormControlList-968ff972.js} +1 -1
- package/dist/es/{Input-437ae439.js → Input-cda7f4ad.js} +1 -1
- package/dist/es/{ListItem-e3c6acf4.js → ListItem-beea18db.js} +2 -2
- package/dist/es/MultiDropdownList.js +11 -10
- package/dist/es/MultiList.js +9 -9
- package/dist/es/MultiRange.js +7 -7
- package/dist/es/{Pagination-591fdb79.js → Pagination-b2160aac.js} +1 -1
- package/dist/es/{PreferencesConsumer-0856ed43.js → PreferencesConsumer-a2bd59db.js} +2 -2
- package/dist/es/RangeInput.js +9 -9
- package/dist/es/RangeSlider.js +7 -7
- package/dist/es/ReactiveBase.js +2 -2
- package/dist/es/ReactiveComponent.js +4 -4
- package/dist/es/ReactiveGoogleMap.js +8 -8
- package/dist/es/ReactiveList.js +10 -10
- package/dist/es/ResultCard.js +3 -3
- package/dist/es/ResultList.js +3 -3
- package/dist/es/{install-4fe6038c.js → SearchBox-57e3a0ff.js} +14 -1668
- package/dist/es/SearchBox.js +29 -0
- package/dist/es/SelectedFilters.js +5 -5
- package/dist/es/SingleDropdownList.js +11 -10
- package/dist/es/SingleList.js +9 -9
- package/dist/es/SingleRange.js +7 -7
- package/dist/es/StateProvider.js +2 -2
- package/dist/es/{Title-863dfa42.js → Title-100fe896.js} +1 -1
- package/dist/es/ToggleButton.js +7 -7
- package/dist/es/{_rollupPluginBabelHelpers-ded08042.js → _rollupPluginBabelHelpers-5e8399d7.js} +14 -14
- package/dist/es/{index-104f1dfb.js → index-3af85a74.js} +1 -1
- package/dist/es/index.js +21 -19
- package/dist/es/install-74125db1.js +1676 -0
- package/dist/es/install.js +19 -17
- package/dist/es/{ssr-c630ccb9.js → ssr-40133887.js} +1 -1
- package/dist/es/{utils-d7dd4f4e.js → utils-badbb2a8.js} +1 -1
- package/dist/es/version.js +1 -1
- package/package.json +3 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-
|
|
3
|
+
var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-1a877b17.js');
|
|
4
4
|
var helper = require('@appbaseio/reactivecore/lib/utils/helper');
|
|
5
5
|
var vueEmotion = require('@appbaseio/vue-emotion');
|
|
6
6
|
var css = require('@emotion/css');
|
|
@@ -2,17 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
|
4
4
|
|
|
5
|
-
var
|
|
6
|
-
var _transformOn = _interopDefault(require('@vue/babel-helper-vue-transform-on'));
|
|
7
|
-
var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-f8b843f8.js');
|
|
5
|
+
var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-1a877b17.js');
|
|
8
6
|
var vue = require('vue');
|
|
9
|
-
var VueTypes = _interopDefault(require('vue-types'));
|
|
10
7
|
var vueEmotion = require('@appbaseio/vue-emotion');
|
|
11
|
-
var vueTypes = require('./vueTypes-289a891a.js');
|
|
12
|
-
var index = require('./index-1f41363f.js');
|
|
13
|
-
var Input = require('./Input-cee51a53.js');
|
|
14
8
|
var computeScrollIntoView = _interopDefault(require('compute-scroll-into-view'));
|
|
15
|
-
var suggestions = require('@appbaseio/reactivecore/lib/utils/suggestions');
|
|
16
9
|
|
|
17
10
|
var _templateObject;
|
|
18
11
|
var InputWrapper = vueEmotion.styled('span')(_templateObject || (_templateObject = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\tflex: 1;\n\tposition: relative;\n\theight: 42px;\n"])));
|
|
@@ -356,7 +349,6 @@ var Downshift = {
|
|
|
356
349
|
// TODO: implement isMouseDown
|
|
357
350
|
// this.reset()
|
|
358
351
|
},
|
|
359
|
-
|
|
360
352
|
click: onClick
|
|
361
353
|
};
|
|
362
354
|
},
|
|
@@ -419,292 +411,9 @@ var CancelSvg = (function () {
|
|
|
419
411
|
}, null)]);
|
|
420
412
|
});
|
|
421
413
|
|
|
422
|
-
var _templateObject$3, _templateObject2$1;
|
|
423
|
-
var small = "\n\tmin-height: 0;\n\theight: 30px;\n\tborder: 0;\n\tbox-shadow: rgba(0, 0, 0, 0.3) 0px 1px 4px -1px;\n\tborder-radius: 2px;\n";
|
|
424
|
-
var dark = function dark(_ref) {
|
|
425
|
-
var theme = _ref.theme;
|
|
426
|
-
return "\n\tbackground-color: " + (theme.colors ? theme.colors.backgroundColor : '') + ";\n\tborder-color: " + (theme.colors ? theme.colors.borderColor : '') + ";\n\tcolor: " + (theme.colors ? theme.colors.textColor : '') + ";\n\n\t&:hover,\n\t&:focus {\n\t\tbackground-color: " + (theme.colors ? theme.colors.backgroundColor : '') + ";\n\t}\n";
|
|
427
|
-
};
|
|
428
|
-
var Select = vueEmotion.styled('button')(_templateObject$3 || (_templateObject$3 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\twidth: 100%;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tmin-height: 42px;\n\tborder-radius: 0;\n\toutline: none;\n\tpadding: 5px 12px;\n\tfont-size: 0.9rem;\n\tline-height: 1.2rem;\n\tbackground-color: #fff;\n\tborder: 1px solid #ccc;\n\tcolor: #424242;\n\tcursor: pointer;\n\tuser-select: none;\n\ttransition: all 0.3s ease;\n\n\t", ";\n\n\t& > div {\n\t\twidth: calc(100% - 24px);\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\ttext-align: left;\n\t}\n\n\t&:hover,\n\t&:focus {\n\t\tbackground-color: #fcfcfc;\n\t}\n\n\t", ";\n"])), function (props) {
|
|
429
|
-
return props.small ? small : null;
|
|
430
|
-
}, function (_ref2) {
|
|
431
|
-
var themePreset = _ref2.themePreset;
|
|
432
|
-
return themePreset === 'dark' && dark;
|
|
433
|
-
});
|
|
434
|
-
var Tick = vueEmotion.styled('span')(_templateObject2$1 || (_templateObject2$1 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\twidth: 16px;\n\theight: 16px;\n\tdisplay: inline-block;\n\tposition: relative;\n\tuser-select: none;\n\talign-items: center;\n\n\t&::after {\n\t\tbox-sizing: content-box;\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\tbackground-color: transparent;\n\t\ttop: 50%;\n\t\tleft: 0;\n\t\twidth: 8px;\n\t\theight: 4px;\n\t\tmargin-top: -4px;\n\t\tborder-style: solid;\n\t\tborder-color: ", ";\n\t\tborder-width: 0 0 2px 2px;\n\t\tborder-radius: 0;\n\t\tborder-image: none;\n\t\ttransform: rotate(-45deg) scale(1);\n\t\ttransition: all 200ms ease-out;\n\t}\n"])), function (_ref3) {
|
|
435
|
-
var theme = _ref3.theme;
|
|
436
|
-
return theme.colors.primaryColor;
|
|
437
|
-
});
|
|
438
|
-
|
|
439
|
-
var _templateObject$4;
|
|
440
|
-
var open = "\n\ttop: 0.55em;\n\ttransform: rotate(-45deg);\n";
|
|
441
|
-
var Chevron = vueEmotion.styled('span')(_templateObject$4 || (_templateObject$4 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\t&::before {\n\t\tcontent: '';\n\t\tborder-style: solid;\n\t\tborder-width: 0.15em 0.15em 0 0;\n\t\tdisplay: inline-block;\n\t\theight: 0.45em;\n\t\tposition: relative;\n\t\ttop: 0.35em;\n\t\tleft: 0;\n\t\ttransform: rotate(135deg);\n\t\tvertical-align: top;\n\t\twidth: 0.45em;\n\n\t\t", ";\n\t}\n"])), function (props) {
|
|
442
|
-
return props.open ? open : null;
|
|
443
|
-
});
|
|
444
|
-
|
|
445
|
-
var getClassName = reactivecore.helper.getClassName;
|
|
446
|
-
var Dropdown = {
|
|
447
|
-
data: function data() {
|
|
448
|
-
this.__state = {
|
|
449
|
-
isOpen: false,
|
|
450
|
-
searchTerm: ''
|
|
451
|
-
};
|
|
452
|
-
return this.__state;
|
|
453
|
-
},
|
|
454
|
-
inject: {
|
|
455
|
-
theme: {
|
|
456
|
-
from: 'theme_reactivesearch'
|
|
457
|
-
}
|
|
458
|
-
},
|
|
459
|
-
props: {
|
|
460
|
-
innerClass: vueTypes.types.style,
|
|
461
|
-
items: vueTypes.types.data,
|
|
462
|
-
keyField: VueTypes.string.def('key'),
|
|
463
|
-
labelField: VueTypes.string.def('label'),
|
|
464
|
-
multi: VueTypes.bool,
|
|
465
|
-
// change event
|
|
466
|
-
placeholder: vueTypes.types.string,
|
|
467
|
-
returnsObject: VueTypes.bool,
|
|
468
|
-
customLabelRenderer: vueTypes.types.func,
|
|
469
|
-
hasCustomRenderer: VueTypes.bool,
|
|
470
|
-
customRenderer: vueTypes.types.func,
|
|
471
|
-
renderItem: vueTypes.types.func,
|
|
472
|
-
renderNoResults: VueTypes.any,
|
|
473
|
-
handleChange: vueTypes.types.func,
|
|
474
|
-
transformData: vueTypes.types.func,
|
|
475
|
-
selectedItem: vueTypes.types.selectedValue,
|
|
476
|
-
showCount: VueTypes.bool,
|
|
477
|
-
single: VueTypes.bool,
|
|
478
|
-
small: VueTypes.bool.def(false),
|
|
479
|
-
themePreset: vueTypes.types.themePreset,
|
|
480
|
-
showSearch: VueTypes.bool,
|
|
481
|
-
showClear: VueTypes.bool,
|
|
482
|
-
searchPlaceholder: VueTypes.string.def('Type here to search...')
|
|
483
|
-
},
|
|
484
|
-
render: function render() {
|
|
485
|
-
var _this = this;
|
|
486
|
-
var _this$$props = this.$props,
|
|
487
|
-
items = _this$$props.items,
|
|
488
|
-
selectedItem = _this$$props.selectedItem,
|
|
489
|
-
placeholder = _this$$props.placeholder,
|
|
490
|
-
labelField = _this$$props.labelField,
|
|
491
|
-
keyField = _this$$props.keyField,
|
|
492
|
-
themePreset = _this$$props.themePreset,
|
|
493
|
-
renderItem = _this$$props.renderItem,
|
|
494
|
-
transformData = _this$$props.transformData,
|
|
495
|
-
footer = _this$$props.footer,
|
|
496
|
-
customLabelRenderer = _this$$props.customLabelRenderer,
|
|
497
|
-
hasCustomRenderer = _this$$props.hasCustomRenderer,
|
|
498
|
-
customRenderer = _this$$props.customRenderer;
|
|
499
|
-
var itemsToRender = items;
|
|
500
|
-
if (transformData) {
|
|
501
|
-
itemsToRender = transformData(itemsToRender);
|
|
502
|
-
}
|
|
503
|
-
var filteredItemsToRender = itemsToRender.filter(function (item) {
|
|
504
|
-
if (String(item[labelField]).length) {
|
|
505
|
-
if (_this.$props.showSearch && _this.$data.searchTerm) {
|
|
506
|
-
return suggestions.replaceDiacritics(String(item[labelField])).toLowerCase().includes(suggestions.replaceDiacritics(_this.$data.searchTerm.toLowerCase()));
|
|
507
|
-
}
|
|
508
|
-
return true;
|
|
509
|
-
}
|
|
510
|
-
return false;
|
|
511
|
-
});
|
|
512
|
-
return vue.createVNode(Downshift, {
|
|
513
|
-
"isOpen": this.$data.isOpen,
|
|
514
|
-
"selectedItem": selectedItem,
|
|
515
|
-
"handleChange": this.onChange,
|
|
516
|
-
"handleMouseup": this.handleStateChange
|
|
517
|
-
}, {
|
|
518
|
-
"default": function _default(_ref) {
|
|
519
|
-
var getItemProps = _ref.getItemProps,
|
|
520
|
-
isOpen = _ref.isOpen,
|
|
521
|
-
highlightedIndex = _ref.highlightedIndex,
|
|
522
|
-
getButtonProps = _ref.getButtonProps,
|
|
523
|
-
getItemEvents = _ref.getItemEvents,
|
|
524
|
-
getInputEvents = _ref.getInputEvents;
|
|
525
|
-
return vue.createVNode("div", {
|
|
526
|
-
"class": Input.suggestionsContainer
|
|
527
|
-
}, [vue.createVNode(Select, vue.mergeProps(_transformOn(getButtonProps({
|
|
528
|
-
onClick: _this.toggle
|
|
529
|
-
})), {
|
|
530
|
-
"class": getClassName(_this.$props.innerClass, 'select') || '',
|
|
531
|
-
"title": selectedItem ? _this.renderToString(selectedItem) : placeholder,
|
|
532
|
-
"small": _this.$props.small,
|
|
533
|
-
"themePreset": _this.$props.themePreset
|
|
534
|
-
}), {
|
|
535
|
-
"default": function _default() {
|
|
536
|
-
return [customLabelRenderer ? customLabelRenderer(selectedItem) : vue.createVNode("div", null, [selectedItem ? _this.renderToString(selectedItem) : placeholder]), vue.createVNode(Chevron, {
|
|
537
|
-
"open": isOpen
|
|
538
|
-
}, null)];
|
|
539
|
-
}
|
|
540
|
-
}), hasCustomRenderer ? customRenderer(itemsToRender, {
|
|
541
|
-
getItemProps: getItemProps,
|
|
542
|
-
isOpen: isOpen,
|
|
543
|
-
highlightedIndex: highlightedIndex,
|
|
544
|
-
getButtonProps: getButtonProps,
|
|
545
|
-
getItemEvents: getItemEvents
|
|
546
|
-
}) : isOpen && itemsToRender.length ? vue.createVNode("ul", {
|
|
547
|
-
"class": Input.suggestions(themePreset, _this.theme) + " " + (_this.$props.small ? 'small' : '') + " " + getClassName(_this.$props.innerClass, 'list')
|
|
548
|
-
}, [_this.$props.showSearch ? _this.renderSearchbox({
|
|
549
|
-
on: {
|
|
550
|
-
input: getInputEvents({
|
|
551
|
-
onInput: _this.handleInputChange
|
|
552
|
-
}).input
|
|
553
|
-
}
|
|
554
|
-
}) : null, !hasCustomRenderer && filteredItemsToRender.length === 0 ? _this.renderNoResult() : filteredItemsToRender.map(function (item, index) {
|
|
555
|
-
var selected = _this.$props.multi // MultiDropdownList
|
|
556
|
-
&& (selectedItem && !!selectedItem[item[keyField]] // MultiDropdownRange
|
|
557
|
-
|| Array.isArray(selectedItem) && selectedItem.find(function (value) {
|
|
558
|
-
return value[labelField] === item[labelField];
|
|
559
|
-
}));
|
|
560
|
-
if (!_this.$props.multi) selected = item.key === selectedItem;
|
|
561
|
-
return vue.createVNode("li", vue.mergeProps(getItemProps({
|
|
562
|
-
item: item
|
|
563
|
-
}), _transformOn(getItemEvents({
|
|
564
|
-
item: item
|
|
565
|
-
})), {
|
|
566
|
-
"key": item[keyField],
|
|
567
|
-
"class": "" + (selected ? 'active' : ''),
|
|
568
|
-
"style": {
|
|
569
|
-
backgroundColor: _this.getBackgroundColor(highlightedIndex === index, selected)
|
|
570
|
-
}
|
|
571
|
-
}), [renderItem ? renderItem({
|
|
572
|
-
label: item[labelField],
|
|
573
|
-
count: item.doc_count,
|
|
574
|
-
isChecked: selected && _this.$props.multi
|
|
575
|
-
}) : vue.createVNode("div", null, [typeof item[labelField] === 'string' ? vue.createVNode("span", {
|
|
576
|
-
"innerHTML": item[labelField]
|
|
577
|
-
}, null) : item[labelField], _this.$props.showCount && item.doc_count && vue.createVNode("span", {
|
|
578
|
-
"class": getClassName(_this.$props.innerClass, 'count') || ''
|
|
579
|
-
}, [vue.createTextVNode("\xA0("), item.doc_count, vue.createTextVNode(")")])]), selected && _this.$props.multi ? vue.createVNode(Tick, {
|
|
580
|
-
"class": getClassName(_this.$props.innerClass, 'icon') || ''
|
|
581
|
-
}, null) : null]);
|
|
582
|
-
}), footer]) : null]);
|
|
583
|
-
}
|
|
584
|
-
});
|
|
585
|
-
},
|
|
586
|
-
methods: {
|
|
587
|
-
toggle: function toggle() {
|
|
588
|
-
this.isOpen = !this.$data.isOpen;
|
|
589
|
-
},
|
|
590
|
-
close: function close() {
|
|
591
|
-
this.isOpen = false;
|
|
592
|
-
},
|
|
593
|
-
onChange: function onChange(item) {
|
|
594
|
-
if (this.$props.returnsObject) {
|
|
595
|
-
this.$props.handleChange(item);
|
|
596
|
-
} else {
|
|
597
|
-
this.$props.handleChange(item[this.$props.keyField]);
|
|
598
|
-
}
|
|
599
|
-
if (!this.$props.multi) {
|
|
600
|
-
this.isOpen = false;
|
|
601
|
-
this.searchTerm = '';
|
|
602
|
-
}
|
|
603
|
-
},
|
|
604
|
-
handleStateChange: function handleStateChange(_ref2) {
|
|
605
|
-
var isOpen = _ref2.isOpen;
|
|
606
|
-
this.isOpen = isOpen;
|
|
607
|
-
},
|
|
608
|
-
getBackgroundColor: function getBackgroundColor(highlighted, selected) {
|
|
609
|
-
var isDark = this.$props.themePreset === 'dark';
|
|
610
|
-
if (highlighted) {
|
|
611
|
-
return isDark ? '#555' : '#eee';
|
|
612
|
-
}
|
|
613
|
-
if (selected) {
|
|
614
|
-
return isDark ? '#686868' : '#fafafa';
|
|
615
|
-
}
|
|
616
|
-
return isDark ? '#424242' : '#fff';
|
|
617
|
-
},
|
|
618
|
-
handleInputChange: function handleInputChange(e) {
|
|
619
|
-
var value = e.target.value;
|
|
620
|
-
this.searchTerm = value;
|
|
621
|
-
},
|
|
622
|
-
clearSearchTerm: function clearSearchTerm() {
|
|
623
|
-
this.searchTerm = '';
|
|
624
|
-
},
|
|
625
|
-
renderToString: function renderToString(value) {
|
|
626
|
-
var _this2 = this;
|
|
627
|
-
var customLabelRenderer = this.$props.customLabelRenderer;
|
|
628
|
-
if (customLabelRenderer) {
|
|
629
|
-
var customLabel = customLabelRenderer(value);
|
|
630
|
-
if (typeof customLabel === 'string') {
|
|
631
|
-
return customLabel;
|
|
632
|
-
}
|
|
633
|
-
}
|
|
634
|
-
if (Array.isArray(value) && value.length) {
|
|
635
|
-
var arrayToRender = value.map(function (item) {
|
|
636
|
-
return _this2.renderToString(item);
|
|
637
|
-
});
|
|
638
|
-
return arrayToRender.join(', ');
|
|
639
|
-
}
|
|
640
|
-
if (value && typeof value === 'object') {
|
|
641
|
-
if (value[this.$props.labelField]) {
|
|
642
|
-
return value[this.$props.labelField];
|
|
643
|
-
}
|
|
644
|
-
if (Object.keys(value).length) {
|
|
645
|
-
return this.renderToString(Object.keys(value));
|
|
646
|
-
}
|
|
647
|
-
return this.$props.placeholder;
|
|
648
|
-
}
|
|
649
|
-
return value;
|
|
650
|
-
},
|
|
651
|
-
renderNoResult: function renderNoResult() {
|
|
652
|
-
var renderNoResults = this.$slots.renderNoResults || this.$props.renderNoResults;
|
|
653
|
-
return vue.createVNode("p", {
|
|
654
|
-
"class": getClassName(this.$props.innerClass, 'noResults') || null
|
|
655
|
-
}, [index.isFunction(renderNoResults) ? renderNoResults() : renderNoResults]);
|
|
656
|
-
},
|
|
657
|
-
renderSearchbox: function renderSearchbox(eventObject) {
|
|
658
|
-
var _this3 = this;
|
|
659
|
-
var _this$$props2 = this.$props,
|
|
660
|
-
componentId = _this$$props2.componentId,
|
|
661
|
-
searchPlaceholder = _this$$props2.searchPlaceholder,
|
|
662
|
-
showClear = _this$$props2.showClear,
|
|
663
|
-
themePreset = _this$$props2.themePreset,
|
|
664
|
-
innerClass = _this$$props2.innerClass;
|
|
665
|
-
var InputComponent = vue.createVNode(Input.Input, vue.mergeProps({
|
|
666
|
-
"id": componentId + "-input",
|
|
667
|
-
"style": {
|
|
668
|
-
border: 0,
|
|
669
|
-
borderBottom: '1px solid #ddd'
|
|
670
|
-
},
|
|
671
|
-
"showIcon": false,
|
|
672
|
-
"showClear": showClear,
|
|
673
|
-
"class": getClassName(innerClass, 'input'),
|
|
674
|
-
"placeholder": searchPlaceholder,
|
|
675
|
-
"value": this.$data.searchTerm,
|
|
676
|
-
"themePreset": themePreset
|
|
677
|
-
}, eventObject), null);
|
|
678
|
-
if (showClear) {
|
|
679
|
-
return vue.createVNode(InputWrapper, null, {
|
|
680
|
-
"default": function _default() {
|
|
681
|
-
return [InputComponent, _this3.searchTerm && vue.createVNode(IconGroup, {
|
|
682
|
-
"groupPosition": "right",
|
|
683
|
-
"positionType": "absolute"
|
|
684
|
-
}, {
|
|
685
|
-
"default": function _default() {
|
|
686
|
-
return [vue.createVNode(IconWrapper, {
|
|
687
|
-
"onClick": _this3.clearSearchTerm,
|
|
688
|
-
"isClearIcon": true
|
|
689
|
-
}, {
|
|
690
|
-
"default": function _default() {
|
|
691
|
-
return [vue.createVNode(CancelSvg, null, null)];
|
|
692
|
-
}
|
|
693
|
-
})];
|
|
694
|
-
}
|
|
695
|
-
})];
|
|
696
|
-
}
|
|
697
|
-
});
|
|
698
|
-
}
|
|
699
|
-
return InputComponent;
|
|
700
|
-
}
|
|
701
|
-
}
|
|
702
|
-
};
|
|
703
|
-
|
|
704
414
|
exports.ButtonIconWrapper = ButtonIconWrapper;
|
|
705
415
|
exports.CancelSvg = CancelSvg;
|
|
706
416
|
exports.Downshift = Downshift;
|
|
707
|
-
exports.Dropdown = Dropdown;
|
|
708
417
|
exports.IconGroup = IconGroup;
|
|
709
418
|
exports.IconWrapper = IconWrapper;
|
|
710
419
|
exports.InputWrapper = InputWrapper;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-
|
|
3
|
+
var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-1a877b17.js');
|
|
4
4
|
var vueEmotion = require('@appbaseio/vue-emotion');
|
|
5
5
|
var css = require('@emotion/css');
|
|
6
6
|
var polished = require('polished');
|
|
7
|
-
require('./Title-
|
|
7
|
+
require('./Title-d513ac26.js');
|
|
8
8
|
|
|
9
9
|
var _templateObject, _templateObject2, _templateObject3;
|
|
10
10
|
var container = css.css(_templateObject || (_templateObject = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\tdisplay: flex;\n\tflex-direction: row;\n\tjustify-content: center;\n\tflex-wrap: wrap;\n\tmargin: 0 -8px;\n\n\t@media (max-width: 420px) {\n\t\tmargin: 0;\n\t}\n"])));
|
|
@@ -4,11 +4,11 @@ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'defau
|
|
|
4
4
|
|
|
5
5
|
var reactivecore = require('@appbaseio/reactivecore');
|
|
6
6
|
var constants = require('@appbaseio/reactivecore/lib/utils/constants');
|
|
7
|
-
var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-
|
|
7
|
+
var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-1a877b17.js');
|
|
8
8
|
var vue = require('vue');
|
|
9
9
|
var VueTypes = _interopDefault(require('vue-types'));
|
|
10
10
|
var transform = require('@appbaseio/reactivecore/lib/utils/transform');
|
|
11
|
-
var index = require('./index-
|
|
11
|
+
var index = require('./index-7ca9570e.js');
|
|
12
12
|
|
|
13
13
|
var addComponent = reactivecore.Actions.addComponent,
|
|
14
14
|
removeComponent = reactivecore.Actions.removeComponent,
|
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
|
4
|
+
|
|
5
|
+
var reactivecore = require('@appbaseio/reactivecore');
|
|
6
|
+
var _transformOn = _interopDefault(require('@vue/babel-helper-vue-transform-on'));
|
|
7
|
+
var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-1a877b17.js');
|
|
8
|
+
var vue = require('vue');
|
|
9
|
+
var VueTypes = _interopDefault(require('vue-types'));
|
|
10
|
+
var vueEmotion = require('@appbaseio/vue-emotion');
|
|
11
|
+
var vueTypes = require('./vueTypes-289a891a.js');
|
|
12
|
+
var index = require('./index-7ca9570e.js');
|
|
13
|
+
var CancelSvg = require('./CancelSvg-6094cd37.js');
|
|
14
|
+
var Input = require('./Input-55fbd8e1.js');
|
|
15
|
+
var suggestions = require('@appbaseio/reactivecore/lib/utils/suggestions');
|
|
16
|
+
|
|
17
|
+
var _templateObject, _templateObject2;
|
|
18
|
+
var small = "\n\tmin-height: 0;\n\theight: 30px;\n\tborder: 0;\n\tbox-shadow: rgba(0, 0, 0, 0.3) 0px 1px 4px -1px;\n\tborder-radius: 2px;\n";
|
|
19
|
+
var dark = function dark(_ref) {
|
|
20
|
+
var theme = _ref.theme;
|
|
21
|
+
return "\n\tbackground-color: " + (theme.colors ? theme.colors.backgroundColor : '') + ";\n\tborder-color: " + (theme.colors ? theme.colors.borderColor : '') + ";\n\tcolor: " + (theme.colors ? theme.colors.textColor : '') + ";\n\n\t&:hover,\n\t&:focus {\n\t\tbackground-color: " + (theme.colors ? theme.colors.backgroundColor : '') + ";\n\t}\n";
|
|
22
|
+
};
|
|
23
|
+
var Select = vueEmotion.styled('button')(_templateObject || (_templateObject = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\twidth: 100%;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tmin-height: 42px;\n\tborder-radius: 0;\n\toutline: none;\n\tpadding: 5px 12px;\n\tfont-size: 0.9rem;\n\tline-height: 1.2rem;\n\tbackground-color: #fff;\n\tborder: 1px solid #ccc;\n\tcolor: #424242;\n\tcursor: pointer;\n\tuser-select: none;\n\ttransition: all 0.3s ease;\n\n\t", ";\n\n\t& > div {\n\t\twidth: calc(100% - 24px);\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\ttext-align: left;\n\t}\n\n\t&:hover,\n\t&:focus {\n\t\tbackground-color: #fcfcfc;\n\t}\n\n\t", ";\n"])), function (props) {
|
|
24
|
+
return props.small ? small : null;
|
|
25
|
+
}, function (_ref2) {
|
|
26
|
+
var themePreset = _ref2.themePreset;
|
|
27
|
+
return themePreset === 'dark' && dark;
|
|
28
|
+
});
|
|
29
|
+
var Tick = vueEmotion.styled('span')(_templateObject2 || (_templateObject2 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\twidth: 16px;\n\theight: 16px;\n\tdisplay: inline-block;\n\tposition: relative;\n\tuser-select: none;\n\talign-items: center;\n\n\t&::after {\n\t\tbox-sizing: content-box;\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\tbackground-color: transparent;\n\t\ttop: 50%;\n\t\tleft: 0;\n\t\twidth: 8px;\n\t\theight: 4px;\n\t\tmargin-top: -4px;\n\t\tborder-style: solid;\n\t\tborder-color: ", ";\n\t\tborder-width: 0 0 2px 2px;\n\t\tborder-radius: 0;\n\t\tborder-image: none;\n\t\ttransform: rotate(-45deg) scale(1);\n\t\ttransition: all 200ms ease-out;\n\t}\n"])), function (_ref3) {
|
|
30
|
+
var theme = _ref3.theme;
|
|
31
|
+
return theme.colors.primaryColor;
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
var _templateObject$1;
|
|
35
|
+
var open = "\n\ttop: 0.55em;\n\ttransform: rotate(-45deg);\n";
|
|
36
|
+
var Chevron = vueEmotion.styled('span')(_templateObject$1 || (_templateObject$1 = _rollupPluginBabelHelpers._taggedTemplateLiteralLoose(["\n\t&::before {\n\t\tcontent: '';\n\t\tborder-style: solid;\n\t\tborder-width: 0.15em 0.15em 0 0;\n\t\tdisplay: inline-block;\n\t\theight: 0.45em;\n\t\tposition: relative;\n\t\ttop: 0.35em;\n\t\tleft: 0;\n\t\ttransform: rotate(135deg);\n\t\tvertical-align: top;\n\t\twidth: 0.45em;\n\n\t\t", ";\n\t}\n"])), function (props) {
|
|
37
|
+
return props.open ? open : null;
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
var getClassName = reactivecore.helper.getClassName;
|
|
41
|
+
var Dropdown = {
|
|
42
|
+
data: function data() {
|
|
43
|
+
this.__state = {
|
|
44
|
+
isOpen: false,
|
|
45
|
+
searchTerm: ''
|
|
46
|
+
};
|
|
47
|
+
return this.__state;
|
|
48
|
+
},
|
|
49
|
+
inject: {
|
|
50
|
+
theme: {
|
|
51
|
+
from: 'theme_reactivesearch'
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
props: {
|
|
55
|
+
innerClass: vueTypes.types.style,
|
|
56
|
+
items: vueTypes.types.data,
|
|
57
|
+
keyField: VueTypes.string.def('key'),
|
|
58
|
+
labelField: VueTypes.string.def('label'),
|
|
59
|
+
multi: VueTypes.bool,
|
|
60
|
+
// change event
|
|
61
|
+
placeholder: vueTypes.types.string,
|
|
62
|
+
returnsObject: VueTypes.bool,
|
|
63
|
+
customLabelRenderer: vueTypes.types.func,
|
|
64
|
+
hasCustomRenderer: VueTypes.bool,
|
|
65
|
+
customRenderer: vueTypes.types.func,
|
|
66
|
+
renderItem: vueTypes.types.func,
|
|
67
|
+
renderNoResults: VueTypes.any,
|
|
68
|
+
handleChange: vueTypes.types.func,
|
|
69
|
+
transformData: vueTypes.types.func,
|
|
70
|
+
selectedItem: vueTypes.types.selectedValue,
|
|
71
|
+
showCount: VueTypes.bool,
|
|
72
|
+
single: VueTypes.bool,
|
|
73
|
+
small: VueTypes.bool.def(false),
|
|
74
|
+
themePreset: vueTypes.types.themePreset,
|
|
75
|
+
showSearch: VueTypes.bool,
|
|
76
|
+
showClear: VueTypes.bool,
|
|
77
|
+
searchPlaceholder: VueTypes.string.def('Type here to search...')
|
|
78
|
+
},
|
|
79
|
+
render: function render() {
|
|
80
|
+
var _this = this;
|
|
81
|
+
var _this$$props = this.$props,
|
|
82
|
+
items = _this$$props.items,
|
|
83
|
+
selectedItem = _this$$props.selectedItem,
|
|
84
|
+
placeholder = _this$$props.placeholder,
|
|
85
|
+
labelField = _this$$props.labelField,
|
|
86
|
+
keyField = _this$$props.keyField,
|
|
87
|
+
themePreset = _this$$props.themePreset,
|
|
88
|
+
renderItem = _this$$props.renderItem,
|
|
89
|
+
transformData = _this$$props.transformData,
|
|
90
|
+
footer = _this$$props.footer,
|
|
91
|
+
customLabelRenderer = _this$$props.customLabelRenderer,
|
|
92
|
+
hasCustomRenderer = _this$$props.hasCustomRenderer,
|
|
93
|
+
customRenderer = _this$$props.customRenderer;
|
|
94
|
+
var itemsToRender = items;
|
|
95
|
+
if (transformData) {
|
|
96
|
+
itemsToRender = transformData(itemsToRender);
|
|
97
|
+
}
|
|
98
|
+
var filteredItemsToRender = itemsToRender.filter(function (item) {
|
|
99
|
+
if (String(item[labelField]).length) {
|
|
100
|
+
if (_this.$props.showSearch && _this.$data.searchTerm) {
|
|
101
|
+
return suggestions.replaceDiacritics(String(item[labelField])).toLowerCase().includes(suggestions.replaceDiacritics(_this.$data.searchTerm.toLowerCase()));
|
|
102
|
+
}
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
return false;
|
|
106
|
+
});
|
|
107
|
+
return vue.createVNode(CancelSvg.Downshift, {
|
|
108
|
+
"isOpen": this.$data.isOpen,
|
|
109
|
+
"selectedItem": selectedItem,
|
|
110
|
+
"handleChange": this.onChange,
|
|
111
|
+
"handleMouseup": this.handleStateChange
|
|
112
|
+
}, {
|
|
113
|
+
"default": function _default(_ref) {
|
|
114
|
+
var getItemProps = _ref.getItemProps,
|
|
115
|
+
isOpen = _ref.isOpen,
|
|
116
|
+
highlightedIndex = _ref.highlightedIndex,
|
|
117
|
+
getButtonProps = _ref.getButtonProps,
|
|
118
|
+
getItemEvents = _ref.getItemEvents,
|
|
119
|
+
getInputEvents = _ref.getInputEvents;
|
|
120
|
+
return vue.createVNode("div", {
|
|
121
|
+
"class": Input.suggestionsContainer
|
|
122
|
+
}, [vue.createVNode(Select, vue.mergeProps(_transformOn(getButtonProps({
|
|
123
|
+
onClick: _this.toggle
|
|
124
|
+
})), {
|
|
125
|
+
"class": getClassName(_this.$props.innerClass, 'select') || '',
|
|
126
|
+
"title": selectedItem ? _this.renderToString(selectedItem) : placeholder,
|
|
127
|
+
"small": _this.$props.small,
|
|
128
|
+
"themePreset": _this.$props.themePreset
|
|
129
|
+
}), {
|
|
130
|
+
"default": function _default() {
|
|
131
|
+
return [customLabelRenderer ? customLabelRenderer(selectedItem) : vue.createVNode("div", null, [selectedItem ? _this.renderToString(selectedItem) : placeholder]), vue.createVNode(Chevron, {
|
|
132
|
+
"open": isOpen
|
|
133
|
+
}, null)];
|
|
134
|
+
}
|
|
135
|
+
}), hasCustomRenderer ? customRenderer(itemsToRender, {
|
|
136
|
+
getItemProps: getItemProps,
|
|
137
|
+
isOpen: isOpen,
|
|
138
|
+
highlightedIndex: highlightedIndex,
|
|
139
|
+
getButtonProps: getButtonProps,
|
|
140
|
+
getItemEvents: getItemEvents
|
|
141
|
+
}) : isOpen && itemsToRender.length ? vue.createVNode("ul", {
|
|
142
|
+
"class": Input.suggestions(themePreset, _this.theme) + " " + (_this.$props.small ? 'small' : '') + " " + getClassName(_this.$props.innerClass, 'list')
|
|
143
|
+
}, [_this.$props.showSearch ? _this.renderSearchbox({
|
|
144
|
+
on: {
|
|
145
|
+
input: getInputEvents({
|
|
146
|
+
onInput: _this.handleInputChange
|
|
147
|
+
}).input
|
|
148
|
+
}
|
|
149
|
+
}) : null, !hasCustomRenderer && filteredItemsToRender.length === 0 ? _this.renderNoResult() : filteredItemsToRender.map(function (item, index) {
|
|
150
|
+
var selected = _this.$props.multi // MultiDropdownList
|
|
151
|
+
&& (selectedItem && !!selectedItem[item[keyField]] // MultiDropdownRange
|
|
152
|
+
|| Array.isArray(selectedItem) && selectedItem.find(function (value) {
|
|
153
|
+
return value[labelField] === item[labelField];
|
|
154
|
+
}));
|
|
155
|
+
if (!_this.$props.multi) selected = item.key === selectedItem;
|
|
156
|
+
return vue.createVNode("li", vue.mergeProps(getItemProps({
|
|
157
|
+
item: item
|
|
158
|
+
}), _transformOn(getItemEvents({
|
|
159
|
+
item: item
|
|
160
|
+
})), {
|
|
161
|
+
"key": item[keyField],
|
|
162
|
+
"class": "" + (selected ? 'active' : ''),
|
|
163
|
+
"style": {
|
|
164
|
+
backgroundColor: _this.getBackgroundColor(highlightedIndex === index, selected)
|
|
165
|
+
}
|
|
166
|
+
}), [renderItem ? renderItem({
|
|
167
|
+
label: item[labelField],
|
|
168
|
+
count: item.doc_count,
|
|
169
|
+
isChecked: selected && _this.$props.multi
|
|
170
|
+
}) : vue.createVNode("div", null, [typeof item[labelField] === 'string' ? vue.createVNode("span", {
|
|
171
|
+
"innerHTML": item[labelField]
|
|
172
|
+
}, null) : item[labelField], _this.$props.showCount && item.doc_count && vue.createVNode("span", {
|
|
173
|
+
"class": getClassName(_this.$props.innerClass, 'count') || ''
|
|
174
|
+
}, [vue.createTextVNode("\xA0("), item.doc_count, vue.createTextVNode(")")])]), selected && _this.$props.multi ? vue.createVNode(Tick, {
|
|
175
|
+
"class": getClassName(_this.$props.innerClass, 'icon') || ''
|
|
176
|
+
}, null) : null]);
|
|
177
|
+
}), footer]) : null]);
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
},
|
|
181
|
+
methods: {
|
|
182
|
+
toggle: function toggle() {
|
|
183
|
+
this.isOpen = !this.$data.isOpen;
|
|
184
|
+
},
|
|
185
|
+
close: function close() {
|
|
186
|
+
this.isOpen = false;
|
|
187
|
+
},
|
|
188
|
+
onChange: function onChange(item) {
|
|
189
|
+
if (this.$props.returnsObject) {
|
|
190
|
+
this.$props.handleChange(item);
|
|
191
|
+
} else {
|
|
192
|
+
this.$props.handleChange(item[this.$props.keyField]);
|
|
193
|
+
}
|
|
194
|
+
if (!this.$props.multi) {
|
|
195
|
+
this.isOpen = false;
|
|
196
|
+
this.searchTerm = '';
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
handleStateChange: function handleStateChange(_ref2) {
|
|
200
|
+
var isOpen = _ref2.isOpen;
|
|
201
|
+
this.isOpen = isOpen;
|
|
202
|
+
},
|
|
203
|
+
getBackgroundColor: function getBackgroundColor(highlighted, selected) {
|
|
204
|
+
var isDark = this.$props.themePreset === 'dark';
|
|
205
|
+
if (highlighted) {
|
|
206
|
+
return isDark ? '#555' : '#eee';
|
|
207
|
+
}
|
|
208
|
+
if (selected) {
|
|
209
|
+
return isDark ? '#686868' : '#fafafa';
|
|
210
|
+
}
|
|
211
|
+
return isDark ? '#424242' : '#fff';
|
|
212
|
+
},
|
|
213
|
+
handleInputChange: function handleInputChange(e) {
|
|
214
|
+
var value = e.target.value;
|
|
215
|
+
this.searchTerm = value;
|
|
216
|
+
},
|
|
217
|
+
clearSearchTerm: function clearSearchTerm() {
|
|
218
|
+
this.searchTerm = '';
|
|
219
|
+
},
|
|
220
|
+
renderToString: function renderToString(value) {
|
|
221
|
+
var _this2 = this;
|
|
222
|
+
var customLabelRenderer = this.$props.customLabelRenderer;
|
|
223
|
+
if (customLabelRenderer) {
|
|
224
|
+
var customLabel = customLabelRenderer(value);
|
|
225
|
+
if (typeof customLabel === 'string') {
|
|
226
|
+
return customLabel;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
if (Array.isArray(value) && value.length) {
|
|
230
|
+
var arrayToRender = value.map(function (item) {
|
|
231
|
+
return _this2.renderToString(item);
|
|
232
|
+
});
|
|
233
|
+
return arrayToRender.join(', ');
|
|
234
|
+
}
|
|
235
|
+
if (value && typeof value === 'object') {
|
|
236
|
+
if (value[this.$props.labelField]) {
|
|
237
|
+
return value[this.$props.labelField];
|
|
238
|
+
}
|
|
239
|
+
if (Object.keys(value).length) {
|
|
240
|
+
return this.renderToString(Object.keys(value));
|
|
241
|
+
}
|
|
242
|
+
return this.$props.placeholder;
|
|
243
|
+
}
|
|
244
|
+
return value;
|
|
245
|
+
},
|
|
246
|
+
renderNoResult: function renderNoResult() {
|
|
247
|
+
var renderNoResults = this.$slots.renderNoResults || this.$props.renderNoResults;
|
|
248
|
+
return vue.createVNode("p", {
|
|
249
|
+
"class": getClassName(this.$props.innerClass, 'noResults') || null
|
|
250
|
+
}, [index.isFunction(renderNoResults) ? renderNoResults() : renderNoResults]);
|
|
251
|
+
},
|
|
252
|
+
renderSearchbox: function renderSearchbox(eventObject) {
|
|
253
|
+
var _this3 = this;
|
|
254
|
+
var _this$$props2 = this.$props,
|
|
255
|
+
componentId = _this$$props2.componentId,
|
|
256
|
+
searchPlaceholder = _this$$props2.searchPlaceholder,
|
|
257
|
+
showClear = _this$$props2.showClear,
|
|
258
|
+
themePreset = _this$$props2.themePreset,
|
|
259
|
+
innerClass = _this$$props2.innerClass;
|
|
260
|
+
var InputComponent = vue.createVNode(Input.Input, vue.mergeProps({
|
|
261
|
+
"id": componentId + "-input",
|
|
262
|
+
"style": {
|
|
263
|
+
border: 0,
|
|
264
|
+
borderBottom: '1px solid #ddd'
|
|
265
|
+
},
|
|
266
|
+
"showIcon": false,
|
|
267
|
+
"showClear": showClear,
|
|
268
|
+
"class": getClassName(innerClass, 'input'),
|
|
269
|
+
"placeholder": searchPlaceholder,
|
|
270
|
+
"value": this.$data.searchTerm,
|
|
271
|
+
"themePreset": themePreset
|
|
272
|
+
}, eventObject), null);
|
|
273
|
+
if (showClear) {
|
|
274
|
+
return vue.createVNode(CancelSvg.InputWrapper, null, {
|
|
275
|
+
"default": function _default() {
|
|
276
|
+
return [InputComponent, _this3.searchTerm && vue.createVNode(CancelSvg.IconGroup, {
|
|
277
|
+
"groupPosition": "right",
|
|
278
|
+
"positionType": "absolute"
|
|
279
|
+
}, {
|
|
280
|
+
"default": function _default() {
|
|
281
|
+
return [vue.createVNode(CancelSvg.IconWrapper, {
|
|
282
|
+
"onClick": _this3.clearSearchTerm,
|
|
283
|
+
"isClearIcon": true
|
|
284
|
+
}, {
|
|
285
|
+
"default": function _default() {
|
|
286
|
+
return [vue.createVNode(CancelSvg.CancelSvg, null, null)];
|
|
287
|
+
}
|
|
288
|
+
})];
|
|
289
|
+
}
|
|
290
|
+
})];
|
|
291
|
+
}
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
return InputComponent;
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
};
|
|
298
|
+
|
|
299
|
+
exports.Dropdown = Dropdown;
|