awesomplete
Advanced tools
Comparing version 1.1.1 to 1.1.2
@@ -15,2 +15,4 @@ /** | ||
this.isOpened = false; | ||
this.input = $(input); | ||
@@ -28,3 +30,3 @@ this.input.setAttribute("autocomplete", "off"); | ||
filter: _.FILTER_CONTAINS, | ||
sort: _.SORT_BYLENGTH, | ||
sort: o.sort === false ? false : _.SORT_BYLENGTH, | ||
item: _.ITEM, | ||
@@ -58,44 +60,52 @@ replace: _.REPLACE | ||
$.bind(this.input, { | ||
"input": this.evaluate.bind(this), | ||
"blur": this.close.bind(this, { reason: "blur" }), | ||
"keydown": function(evt) { | ||
var c = evt.keyCode; | ||
this._events = { | ||
input: { | ||
"input": this.evaluate.bind(this), | ||
"blur": this.close.bind(this, { reason: "blur" }), | ||
"keydown": function(evt) { | ||
var c = evt.keyCode; | ||
// If the dropdown `ul` is in view, then act on keydown for the following keys: | ||
// Enter / Esc / Up / Down | ||
if(me.opened) { | ||
if (c === 13 && me.selected) { // Enter | ||
evt.preventDefault(); | ||
me.select(); | ||
// If the dropdown `ul` is in view, then act on keydown for the following keys: | ||
// Enter / Esc / Up / Down | ||
if(me.opened) { | ||
if (c === 13 && me.selected) { // Enter | ||
evt.preventDefault(); | ||
me.select(); | ||
} | ||
else if (c === 27) { // Esc | ||
me.close({ reason: "esc" }); | ||
} | ||
else if (c === 38 || c === 40) { // Down/Up arrow | ||
evt.preventDefault(); | ||
me[c === 38? "previous" : "next"](); | ||
} | ||
} | ||
else if (c === 27) { // Esc | ||
me.close({ reason: "esc" }); | ||
} | ||
else if (c === 38 || c === 40) { // Down/Up arrow | ||
evt.preventDefault(); | ||
me[c === 38? "previous" : "next"](); | ||
} | ||
} | ||
} | ||
}); | ||
}, | ||
form: { | ||
"submit": this.close.bind(this, { reason: "submit" }) | ||
}, | ||
ul: { | ||
"mousedown": function(evt) { | ||
var li = evt.target; | ||
$.bind(this.input.form, {"submit": this.close.bind(this, { reason: "submit" })}); | ||
if (li !== this) { | ||
$.bind(this.ul, {"mousedown": function(evt) { | ||
var li = evt.target; | ||
while (li && !/li/i.test(li.nodeName)) { | ||
li = li.parentNode; | ||
} | ||
if (li !== this) { | ||
while (li && !/li/i.test(li.nodeName)) { | ||
li = li.parentNode; | ||
if (li && evt.button === 0) { // Only select on left click | ||
evt.preventDefault(); | ||
me.select(li, evt.target); | ||
} | ||
} | ||
} | ||
if (li && evt.button === 0) { // Only select on left click | ||
evt.preventDefault(); | ||
me.select(li, evt.target); | ||
} | ||
} | ||
}}); | ||
}; | ||
$.bind(this.input, this._events.input); | ||
$.bind(this.input.form, this._events.form); | ||
$.bind(this.ul, this._events.ul); | ||
if (this.input.hasAttribute("list")) { | ||
@@ -149,3 +159,3 @@ this.list = "#" + this.input.getAttribute("list"); | ||
get opened() { | ||
return !this.ul.hasAttribute("hidden"); | ||
return this.isOpened; | ||
}, | ||
@@ -159,2 +169,3 @@ | ||
this.ul.setAttribute("hidden", ""); | ||
this.isOpened = false; | ||
this.index = -1; | ||
@@ -167,2 +178,3 @@ | ||
this.ul.removeAttribute("hidden"); | ||
this.isOpened = true; | ||
@@ -176,6 +188,28 @@ if (this.autoFirst && this.index === -1) { | ||
destroy: function() { | ||
//remove events from the input and its form | ||
$.unbind(this.input, this._events.input); | ||
$.unbind(this.input.form, this._events.form); | ||
//move the input out of the awesomplete container and remove the container and its children | ||
var parentNode = this.container.parentNode; | ||
parentNode.insertBefore(this.input, this.container); | ||
parentNode.removeChild(this.container); | ||
//remove autocomplete and aria-autocomplete attributes | ||
this.input.removeAttribute("autocomplete"); | ||
this.input.removeAttribute("aria-autocomplete"); | ||
//remove this awesomeplete instance from the global array of instances | ||
var indexOfAwesomplete = _.all.indexOf(this); | ||
if (indexOfAwesomplete !== -1) { | ||
_.all.splice(indexOfAwesomplete, 1); | ||
} | ||
}, | ||
next: function () { | ||
var count = this.ul.children.length; | ||
this.goto(this.index < count - 1? this.index + 1 : -1); | ||
this.goto(this.index < count - 1 ? this.index + 1 : (count ? 0 : -1) ); | ||
}, | ||
@@ -185,4 +219,5 @@ | ||
var count = this.ul.children.length; | ||
var pos = this.index - 1; | ||
this.goto(this.selected? this.index - 1 : count - 1); | ||
this.goto(this.selected && pos !== -1 ? pos : count - 1); | ||
}, | ||
@@ -204,2 +239,5 @@ | ||
// scroll to highlighted element in case parent's height is fixed | ||
this.ul.scrollTop = lis[i].offsetTop - this.ul.clientHeight + lis[i].clientHeight; | ||
$.fire(this.input, "awesomplete-highlight", { | ||
@@ -251,6 +289,10 @@ text: this.suggestions[this.index] | ||
return me.filter(item, value); | ||
}) | ||
.sort(this.sort) | ||
.slice(0, this.maxItems); | ||
}); | ||
if (this.sort !== false) { | ||
this.suggestions = this.suggestions.sort(this.sort); | ||
} | ||
this.suggestions = this.suggestions.slice(0, this.maxItems); | ||
this.suggestions.forEach(function(text) { | ||
@@ -293,3 +335,3 @@ me.ul.appendChild(me.item(text, value)); | ||
_.ITEM = function (text, input) { | ||
var html = input === '' ? text : text.replace(RegExp($.regExpEscape(input.trim()), "gi"), "<mark>$&</mark>"); | ||
var html = input.trim() === "" ? text : text.replace(RegExp($.regExpEscape(input.trim()), "gi"), "<mark>$&</mark>"); | ||
return $.create("li", { | ||
@@ -397,2 +439,14 @@ innerHTML: html, | ||
$.unbind = function(element, o) { | ||
if (element) { | ||
for (var event in o) { | ||
var callback = o[event]; | ||
event.split(/\s+/).forEach(function(event) { | ||
element.removeEventListener(event, callback); | ||
}); | ||
} | ||
} | ||
}; | ||
$.fire = function(target, type, properties) { | ||
@@ -399,0 +453,0 @@ var evt = document.createEvent("HTMLEvents"); |
// Awesomplete - Lea Verou - MIT license | ||
(function(){function h(a){a=Array.isArray(a)?{label:a[0],value:a[1]}:"object"===typeof a&&"label"in a&&"value"in a?a:{label:a,value:a};this.label=a.label||a.value;this.value=a.value}function n(a,b,d){for(var g in b){var f=b[g],c=a.input.getAttribute("data-"+g.toLowerCase());a[g]="number"===typeof f?parseInt(c):!1===f?null!==c:f instanceof Function?null:c;a[g]||0===a[g]||(a[g]=g in d?d[g]:f)}}function c(a,b){return"string"===typeof a?(b||document).querySelector(a):a||null}function k(a,b){return l.call((b|| | ||
document).querySelectorAll(a))}function m(){k("input.awesomplete").forEach(function(a){new e(a)})}var e=function(a,b){var d=this;this.input=c(a);this.input.setAttribute("autocomplete","off");this.input.setAttribute("aria-autocomplete","list");b=b||{};n(this,{minChars:2,maxItems:10,autoFirst:!1,data:e.DATA,filter:e.FILTER_CONTAINS,sort:e.SORT_BYLENGTH,item:e.ITEM,replace:e.REPLACE},b);this.index=-1;this.container=c.create("div",{className:"awesomplete",around:a});this.ul=c.create("ul",{hidden:"hidden", | ||
inside:this.container});this.status=c.create("span",{className:"visually-hidden",role:"status","aria-live":"assertive","aria-relevant":"additions",inside:this.container});c.bind(this.input,{input:this.evaluate.bind(this),blur:this.close.bind(this),keydown:function(a){var b=a.keyCode;if(d.opened)if(13===b&&d.selected)a.preventDefault(),d.select();else if(27===b)d.close();else if(38===b||40===b)a.preventDefault(),d[38===b?"previous":"next"]()}});c.bind(this.input.form,{submit:this.close.bind(this)}); | ||
c.bind(this.ul,{mousedown:function(a){var b=a.target;if(b!==this){for(;b&&!/li/i.test(b.nodeName);)b=b.parentNode;b&&0===a.button&&(a.preventDefault(),d.select(b,a.target))}}});this.input.hasAttribute("list")?(this.list="#"+this.input.getAttribute("list"),this.input.removeAttribute("list")):this.list=this.input.getAttribute("data-list")||b.list||[];e.all.push(this)};e.prototype={set list(a){if(Array.isArray(a))this._list=a;else if("string"===typeof a&&-1<a.indexOf(","))this._list=a.split(/\s*,\s*/); | ||
else if((a=c(a))&&a.children){var b=[];l.apply(a.children).forEach(function(a){if(!a.disabled){var c=a.textContent.trim(),f=a.value||c;a=a.label||c;""!==f&&b.push({label:a,value:f})}});this._list=b}document.activeElement===this.input&&this.evaluate()},get selected(){return-1<this.index},get opened(){return!this.ul.hasAttribute("hidden")},close:function(){this.ul.setAttribute("hidden","");this.index=-1;c.fire(this.input,"awesomplete-close")},open:function(){this.ul.removeAttribute("hidden");this.autoFirst&& | ||
-1===this.index&&this["goto"](0);c.fire(this.input,"awesomplete-open")},next:function(){this["goto"](this.index<this.ul.children.length-1?this.index+1:-1)},previous:function(){var a=this.ul.children.length;this["goto"](this.selected?this.index-1:a-1)},"goto":function(a){var b=this.ul.children;this.selected&&b[this.index].setAttribute("aria-selected","false");this.index=a;-1<a&&0<b.length&&(b[a].setAttribute("aria-selected","true"),this.status.textContent=b[a].textContent,c.fire(this.input,"awesomplete-highlight", | ||
{text:this.suggestions[this.index]}))},select:function(a,b){a?this.index=c.siblingIndex(a):a=this.ul.children[this.index];if(a){var d=this.suggestions[this.index];c.fire(this.input,"awesomplete-select",{text:d,origin:b||a})&&(this.replace(d),this.close(),c.fire(this.input,"awesomplete-selectcomplete",{text:d}))}},evaluate:function(){var a=this,b=this.input.value;b.length>=this.minChars&&0<this._list.length?(this.index=-1,this.ul.innerHTML="",this.suggestions=this._list.map(function(d){return new h(a.data(d, | ||
b))}).filter(function(d){return a.filter(d,b)}).sort(this.sort).slice(0,this.maxItems),this.suggestions.forEach(function(d){a.ul.appendChild(a.item(d,b))}),0===this.ul.children.length?this.close():this.open()):this.close()}};e.all=[];e.FILTER_CONTAINS=function(a,b){return RegExp(c.regExpEscape(b.trim()),"i").test(a)};e.FILTER_STARTSWITH=function(a,b){return RegExp("^"+c.regExpEscape(b.trim()),"i").test(a)};e.SORT_BYLENGTH=function(a,b){return a.length!==b.length?a.length-b.length:a<b?-1:1};e.ITEM= | ||
function(a,b){var d=""===b?a:a.replace(RegExp(c.regExpEscape(b.trim()),"gi"),"<mark>$&</mark>");return c.create("li",{innerHTML:d,"aria-selected":"false"})};e.REPLACE=function(a){this.input.value=a.value};e.DATA=function(a){return a};Object.defineProperty(h.prototype=Object.create(String.prototype),"length",{get:function(){return this.label.length}});h.prototype.toString=h.prototype.valueOf=function(){return""+this.label};var l=Array.prototype.slice;c.create=function(a,b){var d=document.createElement(a), | ||
g;for(g in b){var f=b[g];"inside"===g?c(f).appendChild(d):"around"===g?(f=c(f),f.parentNode.insertBefore(d,f),d.appendChild(f)):g in d?d[g]=f:d.setAttribute(g,f)}return d};c.bind=function(a,b){if(a)for(var d in b){var c=b[d];d.split(/\s+/).forEach(function(b){a.addEventListener(b,c)})}};c.fire=function(a,b,c){var e=document.createEvent("HTMLEvents");e.initEvent(b,!0,!0);for(var f in c)e[f]=c[f];return a.dispatchEvent(e)};c.regExpEscape=function(a){return a.replace(/[-\\^$*+?.()|[\]{}]/g,"\\$&")}; | ||
c.siblingIndex=function(a){for(var b=0;a=a.previousElementSibling;b++);return b};"undefined"!==typeof Document&&("loading"!==document.readyState?m():document.addEventListener("DOMContentLoaded",m));e.$=c;e.$$=k;"undefined"!==typeof self&&(self.Awesomplete=e);"object"===typeof module&&module.exports&&(module.exports=e);return e})(); | ||
!function(){function t(t){var e=Array.isArray(t)?{label:t[0],value:t[1]}:"object"==typeof t&&"label"in t&&"value"in t?t:{label:t,value:t};this.label=e.label||e.value,this.value=e.value}function e(t,e,i){for(var n in e){var s=e[n],r=t.input.getAttribute("data-"+n.toLowerCase());"number"==typeof s?t[n]=parseInt(r):!1===s?t[n]=null!==r:s instanceof Function?t[n]=null:t[n]=r,t[n]||0===t[n]||(t[n]=n in i?i[n]:s)}}function i(t,e){return"string"==typeof t?(e||document).querySelector(t):t||null}function n(t,e){return o.call((e||document).querySelectorAll(t))}function s(){n("input.awesomplete").forEach(function(t){new r(t)})}var r=function(t,n){var s=this;this.isOpened=!1,this.input=i(t),this.input.setAttribute("autocomplete","off"),this.input.setAttribute("aria-autocomplete","list"),n=n||{},e(this,{minChars:2,maxItems:10,autoFirst:!1,data:r.DATA,filter:r.FILTER_CONTAINS,sort:!1!==n.sort&&r.SORT_BYLENGTH,item:r.ITEM,replace:r.REPLACE},n),this.index=-1,this.container=i.create("div",{className:"awesomplete",around:t}),this.ul=i.create("ul",{hidden:"hidden",inside:this.container}),this.status=i.create("span",{className:"visually-hidden",role:"status","aria-live":"assertive","aria-relevant":"additions",inside:this.container}),this._events={input:{input:this.evaluate.bind(this),blur:this.close.bind(this,{reason:"blur"}),keydown:function(t){var e=t.keyCode;s.opened&&(13===e&&s.selected?(t.preventDefault(),s.select()):27===e?s.close({reason:"esc"}):38!==e&&40!==e||(t.preventDefault(),s[38===e?"previous":"next"]()))}},form:{submit:this.close.bind(this,{reason:"submit"})},ul:{mousedown:function(t){var e=t.target;if(e!==this){for(;e&&!/li/i.test(e.nodeName);)e=e.parentNode;e&&0===t.button&&(t.preventDefault(),s.select(e,t.target))}}}},i.bind(this.input,this._events.input),i.bind(this.input.form,this._events.form),i.bind(this.ul,this._events.ul),this.input.hasAttribute("list")?(this.list="#"+this.input.getAttribute("list"),this.input.removeAttribute("list")):this.list=this.input.getAttribute("data-list")||n.list||[],r.all.push(this)};r.prototype={set list(t){if(Array.isArray(t))this._list=t;else if("string"==typeof t&&t.indexOf(",")>-1)this._list=t.split(/\s*,\s*/);else if((t=i(t))&&t.children){var e=[];o.apply(t.children).forEach(function(t){if(!t.disabled){var i=t.textContent.trim(),n=t.value||i,s=t.label||i;""!==n&&e.push({label:s,value:n})}}),this._list=e}document.activeElement===this.input&&this.evaluate()},get selected(){return this.index>-1},get opened(){return this.isOpened},close:function(t){this.opened&&(this.ul.setAttribute("hidden",""),this.isOpened=!1,this.index=-1,i.fire(this.input,"awesomplete-close",t||{}))},open:function(){this.ul.removeAttribute("hidden"),this.isOpened=!0,this.autoFirst&&-1===this.index&&this.goto(0),i.fire(this.input,"awesomplete-open")},destroy:function(){i.unbind(this.input,this._events.input),i.unbind(this.input.form,this._events.form);var t=this.container.parentNode;t.insertBefore(this.input,this.container),t.removeChild(this.container),this.input.removeAttribute("autocomplete"),this.input.removeAttribute("aria-autocomplete");var e=r.all.indexOf(this);-1!==e&&r.all.splice(e,1)},next:function(){var t=this.ul.children.length;this.goto(this.index<t-1?this.index+1:t?0:-1)},previous:function(){var t=this.ul.children.length,e=this.index-1;this.goto(this.selected&&-1!==e?e:t-1)},goto:function(t){var e=this.ul.children;this.selected&&e[this.index].setAttribute("aria-selected","false"),this.index=t,t>-1&&e.length>0&&(e[t].setAttribute("aria-selected","true"),this.status.textContent=e[t].textContent,this.ul.scrollTop=e[t].offsetTop-this.ul.clientHeight+e[t].clientHeight,i.fire(this.input,"awesomplete-highlight",{text:this.suggestions[this.index]}))},select:function(t,e){if(t?this.index=i.siblingIndex(t):t=this.ul.children[this.index],t){var n=this.suggestions[this.index];i.fire(this.input,"awesomplete-select",{text:n,origin:e||t})&&(this.replace(n),this.close({reason:"select"}),i.fire(this.input,"awesomplete-selectcomplete",{text:n}))}},evaluate:function(){var e=this,i=this.input.value;i.length>=this.minChars&&this._list.length>0?(this.index=-1,this.ul.innerHTML="",this.suggestions=this._list.map(function(n){return new t(e.data(n,i))}).filter(function(t){return e.filter(t,i)}),!1!==this.sort&&(this.suggestions=this.suggestions.sort(this.sort)),this.suggestions=this.suggestions.slice(0,this.maxItems),this.suggestions.forEach(function(t){e.ul.appendChild(e.item(t,i))}),0===this.ul.children.length?this.close({reason:"nomatches"}):this.open()):this.close({reason:"nomatches"})}},r.all=[],r.FILTER_CONTAINS=function(t,e){return RegExp(i.regExpEscape(e.trim()),"i").test(t)},r.FILTER_STARTSWITH=function(t,e){return RegExp("^"+i.regExpEscape(e.trim()),"i").test(t)},r.SORT_BYLENGTH=function(t,e){return t.length!==e.length?t.length-e.length:t<e?-1:1},r.ITEM=function(t,e){return i.create("li",{innerHTML:""===e.trim()?t:t.replace(RegExp(i.regExpEscape(e.trim()),"gi"),"<mark>$&</mark>"),"aria-selected":"false"})},r.REPLACE=function(t){this.input.value=t.value},r.DATA=function(t){return t},Object.defineProperty(t.prototype=Object.create(String.prototype),"length",{get:function(){return this.label.length}}),t.prototype.toString=t.prototype.valueOf=function(){return""+this.label};var o=Array.prototype.slice;i.create=function(t,e){var n=document.createElement(t);for(var s in e){var r=e[s];if("inside"===s)i(r).appendChild(n);else if("around"===s){var o=i(r);o.parentNode.insertBefore(n,o),n.appendChild(o)}else s in n?n[s]=r:n.setAttribute(s,r)}return n},i.bind=function(t,e){if(t)for(var i in e){var n=e[i];i.split(/\s+/).forEach(function(e){t.addEventListener(e,n)})}},i.unbind=function(t,e){if(t)for(var i in e){var n=e[i];i.split(/\s+/).forEach(function(e){t.removeEventListener(e,n)})}},i.fire=function(t,e,i){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0);for(var s in i)n[s]=i[s];return t.dispatchEvent(n)},i.regExpEscape=function(t){return t.replace(/[-\\^$*+?.()|[\]{}]/g,"\\$&")},i.siblingIndex=function(t){for(var e=0;t=t.previousElementSibling;e++);return e},"undefined"!=typeof Document&&("loading"!==document.readyState?s():document.addEventListener("DOMContentLoaded",s)),r.$=i,r.$$=n,"undefined"!=typeof self&&(self.Awesomplete=r),"object"==typeof module&&module.exports&&(module.exports=r)}(); | ||
//# sourceMappingURL=awesomplete.min.js.map |
@@ -48,6 +48,13 @@ ##Contributing | ||
**Build minified version** | ||
**Build** | ||
Run the build with the following command: | ||
``` | ||
gulp | ||
``` | ||
The build will: | ||
1. Minify `awesomplete.js` and generate `awesomplete.min.js`. | ||
2. Merge `awesomplete.base.css` and `awesomplete.theme.css` and generate `awesomplete.css`. |
var gulp = require('gulp'); | ||
var closure = require('gulp-closure-compiler-service'); | ||
var uglify = require('gulp-uglify'); | ||
var rename = require('gulp-rename'); | ||
var header = require('gulp-header'); | ||
var concat = require('gulp-concat'); | ||
var sourcemaps = require('gulp-sourcemaps'); | ||
@@ -10,11 +12,21 @@ var banner = "// Awesomplete - Lea Verou - MIT license\n"; | ||
return gulp.src(['awesomplete.js']) | ||
.pipe(closure({ | ||
compilation_level: 'SIMPLE_OPTIMIZATIONS', | ||
language: 'ECMASCRIPT5' | ||
})) | ||
.pipe(sourcemaps.init()) | ||
.pipe(uglify()) | ||
.pipe(rename({ suffix: '.min' })) | ||
.pipe(header(banner)) | ||
.pipe(sourcemaps.write('.')) | ||
.pipe(gulp.dest('.')); | ||
}); | ||
gulp.task('default', ['minify']); | ||
gulp.task('concat', function() { | ||
return gulp.src(['awesomplete.base.css', 'awesomplete.theme.css']) | ||
.pipe(sourcemaps.init()) | ||
.pipe(concat('awesomplete.css')) | ||
.pipe(sourcemaps.write('.')) | ||
.pipe(gulp.dest('.')); | ||
}); | ||
gulp.task('default', ['minify', 'concat']); |
{ | ||
"name": "awesomplete", | ||
"version": "1.1.1", | ||
"version": "1.1.2", | ||
"description": "http://leaverou.github.io/awesomplete/", | ||
@@ -18,5 +18,7 @@ "main": "awesomplete.js", | ||
"gulp": "^3.9.0", | ||
"gulp-closure-compiler-service": "^0.5.0", | ||
"gulp-concat": "^2.6.0", | ||
"gulp-header": "^1.7.1", | ||
"gulp-rename": "^1.2.2", | ||
"gulp-sourcemaps": "^1.6.0", | ||
"gulp-uglify": "^2.0.0", | ||
"jasmine-core": "^2.4.1", | ||
@@ -23,0 +25,0 @@ "karma": "^0.13.19", |
@@ -49,6 +49,6 @@ describe("awesomplete.next", function () { | ||
it("selects no item after reaching the end", function () { | ||
it("selects the first item after reaching the end", function () { | ||
this.subject.goto(this.lastIndex); | ||
this.subject.next(); | ||
expect(this.subject.index).toBe(-1); | ||
expect(this.subject.index).toBe(0); | ||
}); | ||
@@ -55,0 +55,0 @@ }); |
@@ -49,6 +49,6 @@ describe("awesomplete.previous", function () { | ||
it("selects no item after reaching the start", function () { | ||
it("selects the last item after reaching the start", function () { | ||
this.subject.goto(0); | ||
this.subject.previous(); | ||
expect(this.subject.index).toBe(-1); | ||
expect(this.subject.index).toBe(this.lastIndex); | ||
}); | ||
@@ -55,0 +55,0 @@ }); |
@@ -9,3 +9,3 @@ describe("Awesomplete.$.bind", function () { | ||
describe("whith invalid element", function () { | ||
describe("with invalid element", function () { | ||
it("does nothing if element is undefined", function () { | ||
@@ -12,0 +12,0 @@ this.element = undefined; |
@@ -50,2 +50,10 @@ describe("Awesomplete.ITEM", function () { | ||
}); | ||
describe("with space input", function () { | ||
def("input", " "); | ||
it("does not mark anything", function () { | ||
expect(this.element.innerHTML).toBe("JavaScript"); | ||
}); | ||
}); | ||
}); |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
148975
59
2549
14