Skip to content

Commit 485fd7d

Browse files
committed
v10.2.2 => Release Notes for details #254
1 parent 60c0cbe commit 485fd7d

23 files changed

+191
-213
lines changed

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,13 @@ autoComplete.js is a simple, pure vanilla Javascript library progressively desig
5151
`JS`
5252

5353
```html
54-
<script src="https://cdn.jsdelivr.net/npm/@tarekraafat/[email protected].1/dist/autoComplete.min.js"></script>
54+
<script src="https://cdn.jsdelivr.net/npm/@tarekraafat/[email protected].2/dist/autoComplete.min.js"></script>
5555
```
5656

5757
`CSS`
5858

5959
```html
60-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tarekraafat/[email protected].1/dist/css/autoComplete.min.css">
60+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tarekraafat/[email protected].2/dist/css/autoComplete.min.css">
6161
```
6262
#### Package Manager
6363

dist/autoComplete.js

+48-65
Original file line numberDiff line numberDiff line change
@@ -163,31 +163,8 @@
163163
};
164164
}
165165

166-
var configure = (function (ctx) {
167-
var id = ctx.id,
168-
name = ctx.name,
169-
options = ctx.options,
170-
resultsList = ctx.resultsList,
171-
resultItem = ctx.resultItem;
172-
for (var option in options) {
173-
if (_typeof(options[option]) === "object") {
174-
if (!ctx[option]) ctx[option] = {};
175-
for (var subOption in options[option]) {
176-
ctx[option][subOption] = options[option][subOption];
177-
}
178-
} else {
179-
ctx[option] = options[option];
180-
}
181-
}
182-
ctx.selector = ctx.selector || "#" + name;
183-
resultsList.destination = resultsList.destination || ctx.selector;
184-
resultsList.id = resultsList.id || name + "_list_" + id;
185-
resultItem.id = resultItem.id || name + "_result";
186-
ctx.input = typeof ctx.selector === "string" ? document.querySelector(ctx.selector) : ctx.selector();
187-
});
188-
189166
var select$1 = function select(element) {
190-
return typeof element === "string" ? document.querySelector(element) : element;
167+
return typeof element === "string" ? document.querySelector(element) : element();
191168
};
192169
var create = function create(tag, options) {
193170
var el = typeof tag === "string" ? document.createElement(tag) : tag;
@@ -198,7 +175,7 @@
198175
} else if (key === "dest") {
199176
select$1(val[0]).insertAdjacentElement(val[1], el);
200177
} else if (key === "around") {
201-
var ref = select$1(val);
178+
var ref = val;
202179
ref.parentNode.insertBefore(el, ref);
203180
el.append(ref);
204181
if (ref.getAttribute("autofocus") != null) ref.focus();
@@ -237,6 +214,28 @@
237214
})).outerHTML;
238215
};
239216

217+
var configure = (function (ctx) {
218+
var name = ctx.name,
219+
options = ctx.options,
220+
resultsList = ctx.resultsList,
221+
resultItem = ctx.resultItem;
222+
for (var option in options) {
223+
if (_typeof(options[option]) === "object") {
224+
if (!ctx[option]) ctx[option] = {};
225+
for (var subOption in options[option]) {
226+
ctx[option][subOption] = options[option][subOption];
227+
}
228+
} else {
229+
ctx[option] = options[option];
230+
}
231+
}
232+
ctx.selector = ctx.selector || "#" + name;
233+
resultsList.destination = resultsList.destination || ctx.selector;
234+
resultsList.id = resultsList.id || name + "_list_" + ctx.id;
235+
resultItem.id = resultItem.id || name + "_result";
236+
ctx.input = select$1(ctx.selector);
237+
});
238+
240239
var eventEmitter = (function (name, ctx) {
241240
ctx.input.dispatchEvent(new CustomEvent(name, {
242241
bubbles: true,
@@ -301,18 +300,15 @@
301300
};
302301
var findMatches = function findMatches(query, ctx) {
303302
var data = ctx.data,
304-
searchEngine = ctx.searchEngine,
305-
diacritics = ctx.diacritics,
306-
resultsList = ctx.resultsList,
307-
resultItem = ctx.resultItem;
303+
searchEngine = ctx.searchEngine;
308304
var matches = [];
309305
data.store.forEach(function (value, index) {
310306
var find = function find(key) {
311307
var record = key ? value[key] : value;
312308
var match = typeof searchEngine === "function" ? searchEngine(query, record) : search(query, record, {
313309
mode: searchEngine,
314-
diacritics: diacritics,
315-
highlight: resultItem.highlight
310+
diacritics: ctx.diacritics,
311+
highlight: ctx.resultItem.highlight
316312
});
317313
if (!match) return;
318314
var result = {
@@ -340,7 +336,7 @@
340336
}
341337
});
342338
if (data.filter) matches = data.filter(matches);
343-
var results = matches.slice(0, resultsList.maxResults);
339+
var results = matches.slice(0, ctx.resultsList.maxResults);
344340
ctx.feedback = {
345341
query: query,
346342
matches: matches,
@@ -362,13 +358,12 @@
362358
list = ctx.list,
363359
resultItem = ctx.resultItem,
364360
feedback = ctx.feedback;
365-
feedback.query;
366-
var matches = feedback.matches,
361+
var matches = feedback.matches,
367362
results = feedback.results;
368363
ctx.cursor = -1;
369364
list.innerHTML = "";
370365
if (matches.length || resultsList.noResults) {
371-
var fragment = document.createDocumentFragment();
366+
var fragment = new DocumentFragment();
372367
results.forEach(function (result, index) {
373368
var element = create(resultItem.tag, _objectSpread2({
374369
id: "".concat(resultItem.id, "_").concat(index),
@@ -403,9 +398,8 @@
403398
eventEmitter("close", ctx);
404399
};
405400
var goTo = function goTo(index, ctx) {
406-
var list = ctx.list,
407-
resultItem = ctx.resultItem;
408-
var results = list.getElementsByTagName(resultItem.tag);
401+
var resultItem = ctx.resultItem;
402+
var results = ctx.list.getElementsByTagName(resultItem.tag);
409403
var cls = resultItem.selected ? resultItem.selected.split(" ") : false;
410404
if (ctx.isOpen && results.length) {
411405
var _results$index$classL;
@@ -421,7 +415,7 @@
421415
results[index].setAttribute(Selected, true);
422416
if (cls) (_results$index$classL = results[index].classList).add.apply(_results$index$classL, _toConsumableArray(cls));
423417
ctx.input.setAttribute(Active, results[ctx.cursor].id);
424-
list.scrollTop = results[index].offsetTop - list.clientHeight + results[index].clientHeight + 5;
418+
ctx.list.scrollTop = results[index].offsetTop - ctx.list.clientHeight + results[index].clientHeight + 5;
425419
ctx.feedback.cursor = ctx.cursor;
426420
feedback(ctx, index);
427421
eventEmitter("navigate", ctx);
@@ -476,21 +470,16 @@
476470
function start (ctx, q) {
477471
var _this = this;
478472
return new Promise(function ($return, $error) {
479-
var input, query, trigger, threshold, resultsList, queryVal, condition;
480-
input = ctx.input;
481-
query = ctx.query;
482-
trigger = ctx.trigger;
483-
threshold = ctx.threshold;
484-
resultsList = ctx.resultsList;
485-
queryVal = q || getQuery(input);
486-
queryVal = query ? query(queryVal) : queryVal;
487-
condition = checkTrigger(queryVal, trigger, threshold);
473+
var queryVal, condition;
474+
queryVal = q || getQuery(ctx.input);
475+
queryVal = ctx.query ? query(queryVal) : queryVal;
476+
condition = checkTrigger(queryVal, ctx.trigger, ctx.threshold);
488477
if (condition) {
489478
return getData(ctx).then(function ($await_2) {
490479
try {
491480
if (ctx.feedback instanceof Error) return $return();
492481
findMatches(queryVal, ctx);
493-
if (resultsList) render(ctx);
482+
if (ctx.resultsList) render(ctx);
494483
return $If_1.call(_this);
495484
} catch ($boundEx) {
496485
return $error($boundEx);
@@ -515,15 +504,12 @@
515504
};
516505
var addEvents = function addEvents(ctx) {
517506
var events = ctx.events;
518-
ctx.trigger;
519-
var timer = ctx.debounce,
520-
resultsList = ctx.resultsList;
521507
var run = debounce(function () {
522508
return start(ctx);
523-
}, timer);
509+
}, ctx.debounce);
524510
var publicEvents = ctx.events = _objectSpread2({
525511
input: _objectSpread2({}, events && events.input)
526-
}, resultsList && {
512+
}, ctx.resultsList && {
527513
list: events ? _objectSpread2({}, events.list) : {}
528514
});
529515
var privateEvents = {
@@ -548,7 +534,7 @@
548534
}
549535
};
550536
eventsManager(privateEvents, function (element, event) {
551-
if (!resultsList && event !== "input") return;
537+
if (!ctx.resultsList && event !== "input") return;
552538
if (publicEvents[element][event]) return;
553539
publicEvents[element][event] = privateEvents[element][event];
554540
});
@@ -565,37 +551,34 @@
565551
function init (ctx) {
566552
var _this = this;
567553
return new Promise(function ($return, $error) {
568-
var name, input, placeHolder, resultsList, data, parentAttrs;
569-
name = ctx.name;
570-
input = ctx.input;
554+
var placeHolder, resultsList, parentAttrs;
571555
placeHolder = ctx.placeHolder;
572556
resultsList = ctx.resultsList;
573-
data = ctx.data;
574557
parentAttrs = {
575558
role: "combobox",
576559
"aria-owns": resultsList.id,
577560
"aria-haspopup": true,
578561
"aria-expanded": false
579562
};
580-
create(input, _objectSpread2(_objectSpread2({
563+
create(ctx.input, _objectSpread2(_objectSpread2({
581564
"aria-controls": resultsList.id,
582565
"aria-autocomplete": "both"
583566
}, placeHolder && {
584567
placeholder: placeHolder
585568
}), !ctx.wrapper && _objectSpread2({}, parentAttrs)));
586569
if (ctx.wrapper) ctx.wrapper = create("div", _objectSpread2({
587-
around: input,
588-
"class": name + "_wrapper"
570+
around: ctx.input,
571+
"class": ctx.name + "_wrapper"
589572
}, parentAttrs));
590573
if (resultsList) ctx.list = create(resultsList.tag, _objectSpread2({
591-
dest: [typeof resultsList.destination === "string" ? document.querySelector(resultsList.destination) : resultsList.destination(), resultsList.position],
574+
dest: [resultsList.destination, resultsList.position],
592575
id: resultsList.id,
593576
role: "listbox",
594577
hidden: "hidden"
595578
}, resultsList["class"] && {
596579
"class": resultsList["class"]
597580
}));
598-
if (data.cache) {
581+
if (ctx.data.cache) {
599582
return getData(ctx).then(function ($await_2) {
600583
try {
601584
return $If_1.call(_this);
@@ -648,7 +631,7 @@
648631
select(this, null, index);
649632
};
650633
autoComplete.search = prototype.search = function (query, record, options) {
651-
search(query, record, options);
634+
return search(query, record, options);
652635
};
653636
}
654637

dist/autoComplete.js.gz

-86 Bytes
Binary file not shown.

dist/autoComplete.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/autoComplete.min.js.gz

-67 Bytes
Binary file not shown.

docs/demo/index.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272
<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
7373
<meta name="theme-color" content="#ffffff">
7474
<link rel="stylesheet" type="text/css" media="screen"
75-
href="https://cdn.jsdelivr.net/npm/@tarekraafat/[email protected].1/dist/css/autoComplete.min.css">
75+
href="https://cdn.jsdelivr.net/npm/@tarekraafat/[email protected].2/dist/css/autoComplete.min.css">
7676
<!-- <link rel="stylesheet" type="text/css" media="screen" href="./css/autoComplete.css"> -->
7777
<link rel="stylesheet" type="text/css" media="screen" href="./css/main.css">
7878
<link href="https://fonts.googleapis.com/css?family=PT+Sans" rel="stylesheet">
@@ -150,7 +150,7 @@ <h4>mode</h4>
150150
</div>
151151
</footer>
152152
</div>
153-
<script src="https://cdn.jsdelivr.net/npm/@tarekraafat/[email protected].1/dist/autoComplete.min.js"></script>
153+
<script src="https://cdn.jsdelivr.net/npm/@tarekraafat/[email protected].2/dist/autoComplete.min.js"></script>
154154
<!-- <script src="./js/autoComplete.js"></script> -->
155155
<script src="./js/index.js"></script>
156156
</body>

0 commit comments

Comments
 (0)