tao_popover 0.2.0 → 0.2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 554c3b29117ef8069442fde3706417468b6a3827
4
- data.tar.gz: 53a73092496cbeb0839d9105283bf4bae744d6cd
3
+ metadata.gz: 11910f354c5a3281102d2c6793bdc6aa995b5ce2
4
+ data.tar.gz: 502d748e06c6f3e97dd2c139b9003487800a429c
5
5
  SHA512:
6
- metadata.gz: 3f46e09af0971b3652f76f38cd70500ff452b19b01810fded3a159e9f820b7a0c954adb503915e761ddd9ef4ed20ba85ae0329421cb7a3876810af079d7459a5
7
- data.tar.gz: 85889283a6ee2ff9eb1eb36ad6235baffe1b4dce86ceb91f132b98d5715d0b49bb68129c62ef95aba04437a3567242689bb757d7b5eac6f00dbed02d829853a2
6
+ metadata.gz: b4c1c238f6bc82b6926054ebb0bf9618b522bb31cce132c3775d821e7e13f1c1eb1db68529644cbddc593c7d85619992d00c13398378afb922c8c04de28d1452
7
+ data.tar.gz: 185b7c3e8e969e045e4a255abb770d860603646cafdcdf235c17f62f214789ee4b1e98054d49bff5091516a95e0bfd239fe7ba010980756609523cf6c70f7abc
data/dist/tao.js CHANGED
@@ -5,9 +5,8 @@ Copyright © 2016 Basecamp, LLC
5
5
 
6
6
  (function(){(function(){(function(){this.Turbolinks={supported:function(){return null!=window.history.pushState&&null!=window.requestAnimationFrame}(),visit:function(e,r){return t.controller.visit(e,r)},clearCache:function(){return t.controller.clearCache()}}}).call(this)}).call(this);var t=this.Turbolinks;(function(){(function(){var e,r;t.copyObject=function(t){var e,r,n;r={};for(e in t)n=t[e],r[e]=n;return r},t.closest=function(t,r){return e.call(t,r)},e=function(){var t,e;return t=document.documentElement,null!=(e=t.closest)?e:function(t){var e;for(e=this;e;){if(e.nodeType===Node.ELEMENT_NODE&&r.call(e,t))return e;e=e.parentNode}}}(),t.defer=function(t){return setTimeout(t,1)},t.dispatch=function(t,e){var r,n,o,i,s;return i=null!=e?e:{},s=i.target,r=i.cancelable,n=i.data,o=document.createEvent("Events"),o.initEvent(t,!0,r===!0),o.data=null!=n?n:{},(null!=s?s:document).dispatchEvent(o),o},t.match=function(t,e){return r.call(t,e)},r=function(){var t,e,r,n;return t=document.documentElement,null!=(e=null!=(r=null!=(n=t.matchesSelector)?n:t.webkitMatchesSelector)?r:t.msMatchesSelector)?e:t.mozMatchesSelector}(),t.uuid=function(){var t,e,r;for(r="",t=e=1;36>=e;t=++e)r+=9===t||14===t||19===t||24===t?"-":15===t?"4":20===t?(Math.floor(4*Math.random())+8).toString(16):Math.floor(15*Math.random()).toString(16);return r}}).call(this),function(){t.Location=function(){function t(t){var e,r;null==t&&(t=""),r=document.createElement("a"),r.href=t.toString(),this.absoluteURL=r.href,e=r.hash.length,2>e?this.requestURL=this.absoluteURL:(this.requestURL=this.absoluteURL.slice(0,-e),this.anchor=r.hash.slice(1))}var e,r,n,o;return t.wrap=function(t){return t instanceof this?t:new this(t)},t.prototype.getOrigin=function(){return this.absoluteURL.split("/",3).join("/")},t.prototype.getPath=function(){var t,e;return null!=(t=null!=(e=this.absoluteURL.match(/\/\/[^\/]*(\/[^?;]*)/))?e[1]:void 0)?t:"/"},t.prototype.getPathComponents=function(){return this.getPath().split("/").slice(1)},t.prototype.getLastPathComponent=function(){return this.getPathComponents().slice(-1)[0]},t.prototype.getExtension=function(){var t,e;return null!=(t=null!=(e=this.getLastPathComponent().match(/\.[^.]*$/))?e[0]:void 0)?t:""},t.prototype.isHTML=function(){return this.getExtension().match(/^(?:|\.(?:htm|html|xhtml))$/)},t.prototype.isPrefixedBy=function(t){var e;return e=r(t),this.isEqualTo(t)||o(this.absoluteURL,e)},t.prototype.isEqualTo=function(t){return this.absoluteURL===(null!=t?t.absoluteURL:void 0)},t.prototype.toCacheKey=function(){return this.requestURL},t.prototype.toJSON=function(){return this.absoluteURL},t.prototype.toString=function(){return this.absoluteURL},t.prototype.valueOf=function(){return this.absoluteURL},r=function(t){return e(t.getOrigin()+t.getPath())},e=function(t){return n(t,"/")?t:t+"/"},o=function(t,e){return t.slice(0,e.length)===e},n=function(t,e){return t.slice(-e.length)===e},t}()}.call(this),function(){var e=function(t,e){return function(){return t.apply(e,arguments)}};t.HttpRequest=function(){function r(r,n,o){this.delegate=r,this.requestCanceled=e(this.requestCanceled,this),this.requestTimedOut=e(this.requestTimedOut,this),this.requestFailed=e(this.requestFailed,this),this.requestLoaded=e(this.requestLoaded,this),this.requestProgressed=e(this.requestProgressed,this),this.url=t.Location.wrap(n).requestURL,this.referrer=t.Location.wrap(o).absoluteURL,this.createXHR()}return r.NETWORK_FAILURE=0,r.TIMEOUT_FAILURE=-1,r.timeout=60,r.prototype.send=function(){var t;return this.xhr&&!this.sent?(this.notifyApplicationBeforeRequestStart(),this.setProgress(0),this.xhr.send(),this.sent=!0,"function"==typeof(t=this.delegate).requestStarted?t.requestStarted():void 0):void 0},r.prototype.cancel=function(){return this.xhr&&this.sent?this.xhr.abort():void 0},r.prototype.requestProgressed=function(t){return t.lengthComputable?this.setProgress(t.loaded/t.total):void 0},r.prototype.requestLoaded=function(){return this.endRequest(function(t){return function(){var e;return 200<=(e=t.xhr.status)&&300>e?t.delegate.requestCompletedWithResponse(t.xhr.responseText,t.xhr.getResponseHeader("Turbolinks-Location")):(t.failed=!0,t.delegate.requestFailedWithStatusCode(t.xhr.status,t.xhr.responseText))}}(this))},r.prototype.requestFailed=function(){return this.endRequest(function(t){return function(){return t.failed=!0,t.delegate.requestFailedWithStatusCode(t.constructor.NETWORK_FAILURE)}}(this))},r.prototype.requestTimedOut=function(){return this.endRequest(function(t){return function(){return t.failed=!0,t.delegate.requestFailedWithStatusCode(t.constructor.TIMEOUT_FAILURE)}}(this))},r.prototype.requestCanceled=function(){return this.endRequest()},r.prototype.notifyApplicationBeforeRequestStart=function(){return t.dispatch("turbolinks:request-start",{data:{url:this.url,xhr:this.xhr}})},r.prototype.notifyApplicationAfterRequestEnd=function(){return t.dispatch("turbolinks:request-end",{data:{url:this.url,xhr:this.xhr}})},r.prototype.createXHR=function(){return this.xhr=new XMLHttpRequest,this.xhr.open("GET",this.url,!0),this.xhr.timeout=1e3*this.constructor.timeout,this.xhr.setRequestHeader("Accept","text/html, application/xhtml+xml"),this.xhr.setRequestHeader("Turbolinks-Referrer",this.referrer),this.xhr.onprogress=this.requestProgressed,this.xhr.onload=this.requestLoaded,this.xhr.onerror=this.requestFailed,this.xhr.ontimeout=this.requestTimedOut,this.xhr.onabort=this.requestCanceled},r.prototype.endRequest=function(t){return this.xhr?(this.notifyApplicationAfterRequestEnd(),null!=t&&t.call(this),this.destroy()):void 0},r.prototype.setProgress=function(t){var e;return this.progress=t,"function"==typeof(e=this.delegate).requestProgressed?e.requestProgressed(this.progress):void 0},r.prototype.destroy=function(){var t;return this.setProgress(1),"function"==typeof(t=this.delegate).requestFinished&&t.requestFinished(),this.delegate=null,this.xhr=null},r}()}.call(this),function(){var e=function(t,e){return function(){return t.apply(e,arguments)}};t.ProgressBar=function(){function t(){this.trickle=e(this.trickle,this),this.stylesheetElement=this.createStylesheetElement(),this.progressElement=this.createProgressElement()}var r;return r=300,t.defaultCSS=".turbolinks-progress-bar {\n position: fixed;\n display: block;\n top: 0;\n left: 0;\n height: 3px;\n background: #0076ff;\n z-index: 9999;\n transition: width "+r+"ms ease-out, opacity "+r/2+"ms "+r/2+"ms ease-in;\n transform: translate3d(0, 0, 0);\n}",t.prototype.show=function(){return this.visible?void 0:(this.visible=!0,this.installStylesheetElement(),this.installProgressElement(),this.startTrickling())},t.prototype.hide=function(){return this.visible&&!this.hiding?(this.hiding=!0,this.fadeProgressElement(function(t){return function(){return t.uninstallProgressElement(),t.stopTrickling(),t.visible=!1,t.hiding=!1}}(this))):void 0},t.prototype.setValue=function(t){return this.value=t,this.refresh()},t.prototype.installStylesheetElement=function(){return document.head.insertBefore(this.stylesheetElement,document.head.firstChild)},t.prototype.installProgressElement=function(){return this.progressElement.style.width=0,this.progressElement.style.opacity=1,document.documentElement.insertBefore(this.progressElement,document.body),this.refresh()},t.prototype.fadeProgressElement=function(t){return this.progressElement.style.opacity=0,setTimeout(t,1.5*r)},t.prototype.uninstallProgressElement=function(){return this.progressElement.parentNode?document.documentElement.removeChild(this.progressElement):void 0},t.prototype.startTrickling=function(){return null!=this.trickleInterval?this.trickleInterval:this.trickleInterval=setInterval(this.trickle,r)},t.prototype.stopTrickling=function(){return clearInterval(this.trickleInterval),this.trickleInterval=null},t.prototype.trickle=function(){return this.setValue(this.value+Math.random()/100)},t.prototype.refresh=function(){return requestAnimationFrame(function(t){return function(){return t.progressElement.style.width=10+90*t.value+"%"}}(this))},t.prototype.createStylesheetElement=function(){var t;return t=document.createElement("style"),t.type="text/css",t.textContent=this.constructor.defaultCSS,t},t.prototype.createProgressElement=function(){var t;return t=document.createElement("div"),t.className="turbolinks-progress-bar",t},t}()}.call(this),function(){var e=function(t,e){return function(){return t.apply(e,arguments)}};t.BrowserAdapter=function(){function r(r){this.controller=r,this.showProgressBar=e(this.showProgressBar,this),this.progressBar=new t.ProgressBar}var n,o,i,s;return s=t.HttpRequest,n=s.NETWORK_FAILURE,i=s.TIMEOUT_FAILURE,o=500,r.prototype.visitProposedToLocationWithAction=function(t,e){return this.controller.startVisitToLocationWithAction(t,e)},r.prototype.visitStarted=function(t){return t.issueRequest(),t.changeHistory(),t.loadCachedSnapshot()},r.prototype.visitRequestStarted=function(t){return this.progressBar.setValue(0),t.hasCachedSnapshot()||"restore"!==t.action?this.showProgressBarAfterDelay():this.showProgressBar()},r.prototype.visitRequestProgressed=function(t){return this.progressBar.setValue(t.progress)},r.prototype.visitRequestCompleted=function(t){return t.loadResponse()},r.prototype.visitRequestFailedWithStatusCode=function(t,e){switch(e){case n:case i:return this.reload();default:return t.loadResponse()}},r.prototype.visitRequestFinished=function(t){return this.hideProgressBar()},r.prototype.visitCompleted=function(t){return t.followRedirect()},r.prototype.pageInvalidated=function(){return this.reload()},r.prototype.showProgressBarAfterDelay=function(){return this.progressBarTimeout=setTimeout(this.showProgressBar,o)},r.prototype.showProgressBar=function(){return this.progressBar.show()},r.prototype.hideProgressBar=function(){return this.progressBar.hide(),clearTimeout(this.progressBarTimeout)},r.prototype.reload=function(){return window.location.reload()},r}()}.call(this),function(){var e,r=function(t,e){return function(){return t.apply(e,arguments)}};e=!1,addEventListener("load",function(){return t.defer(function(){return e=!0})},!1),t.History=function(){function n(t){this.delegate=t,this.onPopState=r(this.onPopState,this)}return n.prototype.start=function(){return this.started?void 0:(addEventListener("popstate",this.onPopState,!1),this.started=!0)},n.prototype.stop=function(){return this.started?(removeEventListener("popstate",this.onPopState,!1),this.started=!1):void 0},n.prototype.push=function(e,r){return e=t.Location.wrap(e),this.update("push",e,r)},n.prototype.replace=function(e,r){return e=t.Location.wrap(e),this.update("replace",e,r)},n.prototype.onPopState=function(e){var r,n,o,i;return this.shouldHandlePopState()&&(i=null!=(n=e.state)?n.turbolinks:void 0)?(r=t.Location.wrap(window.location),o=i.restorationIdentifier,this.delegate.historyPoppedToLocationWithRestorationIdentifier(r,o)):void 0},n.prototype.shouldHandlePopState=function(){return e===!0},n.prototype.update=function(t,e,r){var n;return n={turbolinks:{restorationIdentifier:r}},history[t+"State"](n,null,e)},n}()}.call(this),function(){t.Snapshot=function(){function e(t){var e,r;r=t.head,e=t.body,this.head=null!=r?r:document.createElement("head"),this.body=null!=e?e:document.createElement("body")}return e.wrap=function(t){return t instanceof this?t:this.fromHTML(t)},e.fromHTML=function(t){var e;return e=document.createElement("html"),e.innerHTML=t,this.fromElement(e)},e.fromElement=function(t){return new this({head:t.querySelector("head"),body:t.querySelector("body")})},e.prototype.clone=function(){return new e({head:this.head.cloneNode(!0),body:this.body.cloneNode(!0)})},e.prototype.getRootLocation=function(){var e,r;return r=null!=(e=this.getSetting("root"))?e:"/",new t.Location(r)},e.prototype.getCacheControlValue=function(){return this.getSetting("cache-control")},e.prototype.hasAnchor=function(t){try{return null!=this.body.querySelector("[id='"+t+"']")}catch(e){}},e.prototype.isPreviewable=function(){return"no-preview"!==this.getCacheControlValue()},e.prototype.isCacheable=function(){return"no-cache"!==this.getCacheControlValue()},e.prototype.getSetting=function(t){var e,r;return r=this.head.querySelectorAll("meta[name='turbolinks-"+t+"']"),e=r[r.length-1],null!=e?e.getAttribute("content"):void 0},e}()}.call(this),function(){var e=[].slice;t.Renderer=function(){function t(){}var r;return t.render=function(){var t,r,n,o;return n=arguments[0],r=arguments[1],t=3<=arguments.length?e.call(arguments,2):[],o=function(t,e,r){r.prototype=t.prototype;var n=new r,o=t.apply(n,e);return Object(o)===o?o:n}(this,t,function(){}),o.delegate=n,o.render(r),o},t.prototype.renderView=function(t){return this.delegate.viewWillRender(this.newBody),t(),this.delegate.viewRendered(this.newBody)},t.prototype.invalidateView=function(){return this.delegate.viewInvalidated()},t.prototype.createScriptElement=function(t){var e;return"false"===t.getAttribute("data-turbolinks-eval")?t:(e=document.createElement("script"),e.textContent=t.textContent,r(e,t),e)},r=function(t,e){var r,n,o,i,s,a,u;for(i=e.attributes,a=[],r=0,n=i.length;n>r;r++)s=i[r],o=s.name,u=s.value,a.push(t.setAttribute(o,u));return a},t}()}.call(this),function(){t.HeadDetails=function(){function t(t){var e,r,i,s,a,u,c;for(this.element=t,this.elements={},c=this.element.childNodes,s=0,u=c.length;u>s;s++)i=c[s],i.nodeType===Node.ELEMENT_NODE&&(a=i.outerHTML,r=null!=(e=this.elements)[a]?e[a]:e[a]={type:o(i),tracked:n(i),elements:[]},r.elements.push(i))}var e,r,n,o;return t.prototype.hasElementWithKey=function(t){return t in this.elements},t.prototype.getTrackedElementSignature=function(){var t,e;return function(){var r,n;r=this.elements,n=[];for(t in r)e=r[t].tracked,e&&n.push(t);return n}.call(this).join("")},t.prototype.getScriptElementsNotInDetails=function(t){return this.getElementsMatchingTypeNotInDetails("script",t)},t.prototype.getStylesheetElementsNotInDetails=function(t){return this.getElementsMatchingTypeNotInDetails("stylesheet",t)},t.prototype.getElementsMatchingTypeNotInDetails=function(t,e){var r,n,o,i,s,a;o=this.elements,s=[];for(n in o)i=o[n],a=i.type,r=i.elements,a!==t||e.hasElementWithKey(n)||s.push(r[0]);return s},t.prototype.getProvisionalElements=function(){var t,e,r,n,o,i,s;r=[],n=this.elements;for(e in n)o=n[e],s=o.type,i=o.tracked,t=o.elements,null!=s||i?t.length>1&&r.push.apply(r,t.slice(1)):r.push.apply(r,t);return r},o=function(t){return e(t)?"script":r(t)?"stylesheet":void 0},n=function(t){return"reload"===t.getAttribute("data-turbolinks-track")},e=function(t){var e;return e=t.tagName.toLowerCase(),"script"===e},r=function(t){var e;return e=t.tagName.toLowerCase(),"style"===e||"link"===e&&"stylesheet"===t.getAttribute("rel")},t}()}.call(this),function(){var e=function(t,e){function n(){this.constructor=t}for(var o in e)r.call(e,o)&&(t[o]=e[o]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},r={}.hasOwnProperty;t.SnapshotRenderer=function(r){function n(e,r){this.currentSnapshot=e,this.newSnapshot=r,this.currentHeadDetails=new t.HeadDetails(this.currentSnapshot.head),this.newHeadDetails=new t.HeadDetails(this.newSnapshot.head),this.newBody=this.newSnapshot.body}return e(n,r),n.prototype.render=function(t){return this.trackedElementsAreIdentical()?(this.mergeHead(),this.renderView(function(e){return function(){return e.replaceBody(),e.focusFirstAutofocusableElement(),t()}}(this))):this.invalidateView()},n.prototype.mergeHead=function(){return this.copyNewHeadStylesheetElements(),this.copyNewHeadScriptElements(),this.removeCurrentHeadProvisionalElements(),this.copyNewHeadProvisionalElements()},n.prototype.replaceBody=function(){return this.activateBodyScriptElements(),this.importBodyPermanentElements(),this.assignNewBody()},n.prototype.trackedElementsAreIdentical=function(){return this.currentHeadDetails.getTrackedElementSignature()===this.newHeadDetails.getTrackedElementSignature()},n.prototype.copyNewHeadStylesheetElements=function(){var t,e,r,n,o;for(n=this.getNewHeadStylesheetElements(),o=[],e=0,r=n.length;r>e;e++)t=n[e],o.push(document.head.appendChild(t));return o},n.prototype.copyNewHeadScriptElements=function(){var t,e,r,n,o;for(n=this.getNewHeadScriptElements(),o=[],e=0,r=n.length;r>e;e++)t=n[e],o.push(document.head.appendChild(this.createScriptElement(t)));return o},n.prototype.removeCurrentHeadProvisionalElements=function(){var t,e,r,n,o;for(n=this.getCurrentHeadProvisionalElements(),o=[],e=0,r=n.length;r>e;e++)t=n[e],o.push(document.head.removeChild(t));return o},n.prototype.copyNewHeadProvisionalElements=function(){var t,e,r,n,o;for(n=this.getNewHeadProvisionalElements(),o=[],e=0,r=n.length;r>e;e++)t=n[e],o.push(document.head.appendChild(t));return o},n.prototype.importBodyPermanentElements=function(){var t,e,r,n,o,i;for(n=this.getNewBodyPermanentElements(),i=[],e=0,r=n.length;r>e;e++)o=n[e],(t=this.findCurrentBodyPermanentElement(o))?i.push(o.parentNode.replaceChild(t,o)):i.push(void 0);return i},n.prototype.activateBodyScriptElements=function(){var t,e,r,n,o,i;for(n=this.getNewBodyScriptElements(),i=[],e=0,r=n.length;r>e;e++)o=n[e],t=this.createScriptElement(o),i.push(o.parentNode.replaceChild(t,o));return i},n.prototype.assignNewBody=function(){return document.body=this.newBody},n.prototype.focusFirstAutofocusableElement=function(){var t;return null!=(t=this.findFirstAutofocusableElement())?t.focus():void 0},n.prototype.getNewHeadStylesheetElements=function(){return this.newHeadDetails.getStylesheetElementsNotInDetails(this.currentHeadDetails)},n.prototype.getNewHeadScriptElements=function(){return this.newHeadDetails.getScriptElementsNotInDetails(this.currentHeadDetails)},n.prototype.getCurrentHeadProvisionalElements=function(){return this.currentHeadDetails.getProvisionalElements()},n.prototype.getNewHeadProvisionalElements=function(){return this.newHeadDetails.getProvisionalElements()},n.prototype.getNewBodyPermanentElements=function(){return this.newBody.querySelectorAll("[id][data-turbolinks-permanent]")},n.prototype.findCurrentBodyPermanentElement=function(t){return document.body.querySelector("#"+t.id+"[data-turbolinks-permanent]")},n.prototype.getNewBodyScriptElements=function(){return this.newBody.querySelectorAll("script")},n.prototype.findFirstAutofocusableElement=function(){return document.body.querySelector("[autofocus]")},n}(t.Renderer)}.call(this),function(){var e=function(t,e){function n(){this.constructor=t}for(var o in e)r.call(e,o)&&(t[o]=e[o]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},r={}.hasOwnProperty;t.ErrorRenderer=function(t){function r(t){this.html=t}return e(r,t),r.prototype.render=function(t){return this.renderView(function(e){return function(){return e.replaceDocumentHTML(),e.activateBodyScriptElements(),t()}}(this))},r.prototype.replaceDocumentHTML=function(){return document.documentElement.innerHTML=this.html},r.prototype.activateBodyScriptElements=function(){var t,e,r,n,o,i;for(n=this.getScriptElements(),i=[],e=0,r=n.length;r>e;e++)o=n[e],t=this.createScriptElement(o),i.push(o.parentNode.replaceChild(t,o));return i},r.prototype.getScriptElements=function(){return document.documentElement.querySelectorAll("script")},r}(t.Renderer)}.call(this),function(){t.View=function(){function e(t){this.delegate=t,this.element=document.documentElement}return e.prototype.getRootLocation=function(){return this.getSnapshot().getRootLocation()},e.prototype.getSnapshot=function(){return t.Snapshot.fromElement(this.element)},e.prototype.render=function(t,e){var r,n,o;return o=t.snapshot,r=t.error,n=t.isPreview,this.markAsPreview(n),null!=o?this.renderSnapshot(o,e):this.renderError(r,e)},e.prototype.markAsPreview=function(t){return t?this.element.setAttribute("data-turbolinks-preview",""):this.element.removeAttribute("data-turbolinks-preview")},e.prototype.renderSnapshot=function(e,r){return t.SnapshotRenderer.render(this.delegate,r,this.getSnapshot(),t.Snapshot.wrap(e))},e.prototype.renderError=function(e,r){return t.ErrorRenderer.render(this.delegate,r,e)},e}()}.call(this),function(){var e=function(t,e){return function(){return t.apply(e,arguments)}};t.ScrollManager=function(){function t(t){this.delegate=t,this.onScroll=e(this.onScroll,this)}return t.prototype.start=function(){return this.started?void 0:(addEventListener("scroll",this.onScroll,!1),this.onScroll(),this.started=!0)},t.prototype.stop=function(){return this.started?(removeEventListener("scroll",this.onScroll,!1),this.started=!1):void 0},t.prototype.scrollToElement=function(t){return t.scrollIntoView()},t.prototype.scrollToPosition=function(t){var e,r;return e=t.x,r=t.y,window.scrollTo(e,r)},t.prototype.onScroll=function(t){return this.updatePosition({x:window.pageXOffset,y:window.pageYOffset})},t.prototype.updatePosition=function(t){var e;return this.position=t,null!=(e=this.delegate)?e.scrollPositionChanged(this.position):void 0},t}()}.call(this),function(){t.SnapshotCache=function(){function e(t){this.size=t,this.keys=[],this.snapshots={}}var r;return e.prototype.has=function(t){var e;return e=r(t),e in this.snapshots},e.prototype.get=function(t){var e;if(this.has(t))return e=this.read(t),this.touch(t),e},e.prototype.put=function(t,e){return this.write(t,e),this.touch(t),e},e.prototype.read=function(t){var e;return e=r(t),this.snapshots[e]},e.prototype.write=function(t,e){var n;return n=r(t),this.snapshots[n]=e},e.prototype.touch=function(t){var e,n;return n=r(t),e=this.keys.indexOf(n),e>-1&&this.keys.splice(e,1),this.keys.unshift(n),this.trim()},e.prototype.trim=function(){var t,e,r,n,o;for(n=this.keys.splice(this.size),o=[],t=0,r=n.length;r>t;t++)e=n[t],o.push(delete this.snapshots[e]);return o},r=function(e){return t.Location.wrap(e).toCacheKey()},e}()}.call(this),function(){var e=function(t,e){return function(){return t.apply(e,arguments)}};t.Visit=function(){function r(r,n,o){this.controller=r,this.action=o,this.performScroll=e(this.performScroll,this),this.identifier=t.uuid(),this.location=t.Location.wrap(n),this.adapter=this.controller.adapter,this.state="initialized",this.timingMetrics={}}var n;return r.prototype.start=function(){return"initialized"===this.state?(this.recordTimingMetric("visitStart"),this.state="started",this.adapter.visitStarted(this)):void 0},r.prototype.cancel=function(){var t;return"started"===this.state?(null!=(t=this.request)&&t.cancel(),this.cancelRender(),this.state="canceled"):void 0},r.prototype.complete=function(){var t;return"started"===this.state?(this.recordTimingMetric("visitEnd"),this.state="completed","function"==typeof(t=this.adapter).visitCompleted&&t.visitCompleted(this),this.controller.visitCompleted(this)):void 0},r.prototype.fail=function(){var t;return"started"===this.state?(this.state="failed","function"==typeof(t=this.adapter).visitFailed?t.visitFailed(this):void 0):void 0},r.prototype.changeHistory=function(){var t,e;return this.historyChanged?void 0:(t=this.location.isEqualTo(this.referrer)?"replace":this.action,e=n(t),this.controller[e](this.location,this.restorationIdentifier),this.historyChanged=!0)},r.prototype.issueRequest=function(){return this.shouldIssueRequest()&&null==this.request?(this.progress=0,this.request=new t.HttpRequest(this,this.location,this.referrer),this.request.send()):void 0},r.prototype.getCachedSnapshot=function(){var t;return!(t=this.controller.getCachedSnapshotForLocation(this.location))||null!=this.location.anchor&&!t.hasAnchor(this.location.anchor)||"restore"!==this.action&&!t.isPreviewable()?void 0:t},r.prototype.hasCachedSnapshot=function(){return null!=this.getCachedSnapshot()},r.prototype.loadCachedSnapshot=function(){var t,e;return(e=this.getCachedSnapshot())?(t=this.shouldIssueRequest(),this.render(function(){var r;return this.cacheSnapshot(),this.controller.render({snapshot:e,isPreview:t},this.performScroll),"function"==typeof(r=this.adapter).visitRendered&&r.visitRendered(this),t?void 0:this.complete()})):void 0},r.prototype.loadResponse=function(){return null!=this.response?this.render(function(){var t,e;return this.cacheSnapshot(),this.request.failed?(this.controller.render({error:this.response},this.performScroll),"function"==typeof(t=this.adapter).visitRendered&&t.visitRendered(this),this.fail()):(this.controller.render({snapshot:this.response},this.performScroll),"function"==typeof(e=this.adapter).visitRendered&&e.visitRendered(this),this.complete())}):void 0},r.prototype.followRedirect=function(){return this.redirectedToLocation&&!this.followedRedirect?(this.location=this.redirectedToLocation,this.controller.replaceHistoryWithLocationAndRestorationIdentifier(this.redirectedToLocation,this.restorationIdentifier),this.followedRedirect=!0):void 0},r.prototype.requestStarted=function(){var t;return this.recordTimingMetric("requestStart"),"function"==typeof(t=this.adapter).visitRequestStarted?t.visitRequestStarted(this):void 0},r.prototype.requestProgressed=function(t){var e;return this.progress=t,"function"==typeof(e=this.adapter).visitRequestProgressed?e.visitRequestProgressed(this):void 0},r.prototype.requestCompletedWithResponse=function(e,r){return this.response=e,null!=r&&(this.redirectedToLocation=t.Location.wrap(r)),this.adapter.visitRequestCompleted(this)},r.prototype.requestFailedWithStatusCode=function(t,e){return this.response=e,this.adapter.visitRequestFailedWithStatusCode(this,t)},r.prototype.requestFinished=function(){var t;return this.recordTimingMetric("requestEnd"),"function"==typeof(t=this.adapter).visitRequestFinished?t.visitRequestFinished(this):void 0},r.prototype.performScroll=function(){return this.scrolled?void 0:("restore"===this.action?this.scrollToRestoredPosition()||this.scrollToTop():this.scrollToAnchor()||this.scrollToTop(),this.scrolled=!0)},r.prototype.scrollToRestoredPosition=function(){var t,e;return t=null!=(e=this.restorationData)?e.scrollPosition:void 0,null!=t?(this.controller.scrollToPosition(t),!0):void 0},r.prototype.scrollToAnchor=function(){return null!=this.location.anchor?(this.controller.scrollToAnchor(this.location.anchor),!0):void 0},r.prototype.scrollToTop=function(){return this.controller.scrollToPosition({x:0,y:0})},r.prototype.recordTimingMetric=function(t){var e;return null!=(e=this.timingMetrics)[t]?e[t]:e[t]=(new Date).getTime()},r.prototype.getTimingMetrics=function(){return t.copyObject(this.timingMetrics)},n=function(t){switch(t){case"replace":return"replaceHistoryWithLocationAndRestorationIdentifier";case"advance":case"restore":return"pushHistoryWithLocationAndRestorationIdentifier"}},r.prototype.shouldIssueRequest=function(){return"restore"===this.action?!this.hasCachedSnapshot():!0},r.prototype.cacheSnapshot=function(){return this.snapshotCached?void 0:(this.controller.cacheSnapshot(),this.snapshotCached=!0)},r.prototype.render=function(t){return this.cancelRender(),this.frame=requestAnimationFrame(function(e){return function(){return e.frame=null,t.call(e)}}(this))},r.prototype.cancelRender=function(){return this.frame?cancelAnimationFrame(this.frame):void 0},r}()}.call(this),function(){var e=function(t,e){return function(){return t.apply(e,arguments)}};t.Controller=function(){function r(){this.clickBubbled=e(this.clickBubbled,this),this.clickCaptured=e(this.clickCaptured,this),this.pageLoaded=e(this.pageLoaded,this),this.history=new t.History(this),this.view=new t.View(this),this.scrollManager=new t.ScrollManager(this),this.restorationData={},this.clearCache()}return r.prototype.start=function(){return t.supported&&!this.started?(addEventListener("click",this.clickCaptured,!0),addEventListener("DOMContentLoaded",this.pageLoaded,!1),this.scrollManager.start(),this.startHistory(),this.started=!0,this.enabled=!0):void 0},r.prototype.disable=function(){return this.enabled=!1},r.prototype.stop=function(){return this.started?(removeEventListener("click",this.clickCaptured,!0),removeEventListener("DOMContentLoaded",this.pageLoaded,!1),this.scrollManager.stop(),this.stopHistory(),this.started=!1):void 0},r.prototype.clearCache=function(){return this.cache=new t.SnapshotCache(10)},r.prototype.visit=function(e,r){var n,o;return null==r&&(r={}),e=t.Location.wrap(e),this.applicationAllowsVisitingLocation(e)?this.locationIsVisitable(e)?(n=null!=(o=r.action)?o:"advance",this.adapter.visitProposedToLocationWithAction(e,n)):window.location=e:void 0},r.prototype.startVisitToLocationWithAction=function(e,r,n){var o;return t.supported?(o=this.getRestorationDataForIdentifier(n),this.startVisit(e,r,{restorationData:o})):window.location=e},r.prototype.startHistory=function(){return this.location=t.Location.wrap(window.location),this.restorationIdentifier=t.uuid(),this.history.start(),this.history.replace(this.location,this.restorationIdentifier)},r.prototype.stopHistory=function(){return this.history.stop()},r.prototype.pushHistoryWithLocationAndRestorationIdentifier=function(e,r){return this.restorationIdentifier=r,this.location=t.Location.wrap(e),this.history.push(this.location,this.restorationIdentifier)},r.prototype.replaceHistoryWithLocationAndRestorationIdentifier=function(e,r){return this.restorationIdentifier=r,this.location=t.Location.wrap(e),this.history.replace(this.location,this.restorationIdentifier)},r.prototype.historyPoppedToLocationWithRestorationIdentifier=function(e,r){var n;return this.restorationIdentifier=r,this.enabled?(n=this.getRestorationDataForIdentifier(this.restorationIdentifier),this.startVisit(e,"restore",{restorationIdentifier:this.restorationIdentifier,restorationData:n,historyChanged:!0}),this.location=t.Location.wrap(e)):this.adapter.pageInvalidated()},r.prototype.getCachedSnapshotForLocation=function(t){var e;return e=this.cache.get(t),e?e.clone():void 0},r.prototype.shouldCacheSnapshot=function(){return this.view.getSnapshot().isCacheable()},r.prototype.cacheSnapshot=function(){var t;return this.shouldCacheSnapshot()?(this.notifyApplicationBeforeCachingSnapshot(),t=this.view.getSnapshot(),this.cache.put(this.lastRenderedLocation,t.clone())):void 0},r.prototype.scrollToAnchor=function(t){var e;return(e=document.getElementById(t))?this.scrollToElement(e):this.scrollToPosition({x:0,y:0})},r.prototype.scrollToElement=function(t){return this.scrollManager.scrollToElement(t)},r.prototype.scrollToPosition=function(t){return this.scrollManager.scrollToPosition(t)},r.prototype.scrollPositionChanged=function(t){var e;return e=this.getCurrentRestorationData(),e.scrollPosition=t},r.prototype.render=function(t,e){return this.view.render(t,e)},r.prototype.viewInvalidated=function(){return this.adapter.pageInvalidated()},r.prototype.viewWillRender=function(t){return this.notifyApplicationBeforeRender(t)},r.prototype.viewRendered=function(){return this.lastRenderedLocation=this.currentVisit.location,this.notifyApplicationAfterRender()},r.prototype.pageLoaded=function(){return this.lastRenderedLocation=this.location,this.notifyApplicationAfterPageLoad()},r.prototype.clickCaptured=function(){return removeEventListener("click",this.clickBubbled,!1),addEventListener("click",this.clickBubbled,!1)},r.prototype.clickBubbled=function(t){var e,r,n;return this.enabled&&this.clickEventIsSignificant(t)&&(r=this.getVisitableLinkForNode(t.target))&&(n=this.getVisitableLocationForLink(r))&&this.applicationAllowsFollowingLinkToLocation(r,n)?(t.preventDefault(),e=this.getActionForLink(r),this.visit(n,{action:e})):void 0},r.prototype.applicationAllowsFollowingLinkToLocation=function(t,e){var r;return r=this.notifyApplicationAfterClickingLinkToLocation(t,e),!r.defaultPrevented},r.prototype.applicationAllowsVisitingLocation=function(t){var e;return e=this.notifyApplicationBeforeVisitingLocation(t),!e.defaultPrevented},r.prototype.notifyApplicationAfterClickingLinkToLocation=function(e,r){return t.dispatch("turbolinks:click",{target:e,data:{url:r.absoluteURL},cancelable:!0})},r.prototype.notifyApplicationBeforeVisitingLocation=function(e){return t.dispatch("turbolinks:before-visit",{data:{url:e.absoluteURL},cancelable:!0})},r.prototype.notifyApplicationAfterVisitingLocation=function(e){return t.dispatch("turbolinks:visit",{data:{url:e.absoluteURL}})},r.prototype.notifyApplicationBeforeCachingSnapshot=function(){return t.dispatch("turbolinks:before-cache")},r.prototype.notifyApplicationBeforeRender=function(e){return t.dispatch("turbolinks:before-render",{data:{newBody:e}})},r.prototype.notifyApplicationAfterRender=function(){return t.dispatch("turbolinks:render")},r.prototype.notifyApplicationAfterPageLoad=function(e){return null==e&&(e={}),t.dispatch("turbolinks:load",{data:{url:this.location.absoluteURL,timing:e}})},r.prototype.startVisit=function(t,e,r){var n;return null!=(n=this.currentVisit)&&n.cancel(),this.currentVisit=this.createVisit(t,e,r),this.currentVisit.start(),this.notifyApplicationAfterVisitingLocation(t)},r.prototype.createVisit=function(e,r,n){
7
7
  var o,i,s,a,u;return i=null!=n?n:{},a=i.restorationIdentifier,s=i.restorationData,o=i.historyChanged,u=new t.Visit(this,e,r),u.restorationIdentifier=null!=a?a:t.uuid(),u.restorationData=t.copyObject(s),u.historyChanged=o,u.referrer=this.location,u},r.prototype.visitCompleted=function(t){return this.notifyApplicationAfterPageLoad(t.getTimingMetrics())},r.prototype.clickEventIsSignificant=function(t){return!(t.defaultPrevented||t.target.isContentEditable||t.which>1||t.altKey||t.ctrlKey||t.metaKey||t.shiftKey)},r.prototype.getVisitableLinkForNode=function(e){return this.nodeIsVisitable(e)?t.closest(e,"a[href]:not([target])"):void 0},r.prototype.getVisitableLocationForLink=function(e){var r;return r=new t.Location(e.getAttribute("href")),this.locationIsVisitable(r)?r:void 0},r.prototype.getActionForLink=function(t){var e;return null!=(e=t.getAttribute("data-turbolinks-action"))?e:"advance"},r.prototype.nodeIsVisitable=function(e){var r;return(r=t.closest(e,"[data-turbolinks]"))?"false"!==r.getAttribute("data-turbolinks"):!0},r.prototype.locationIsVisitable=function(t){return t.isPrefixedBy(this.view.getRootLocation())&&t.isHTML()},r.prototype.getCurrentRestorationData=function(){return this.getRestorationDataForIdentifier(this.restorationIdentifier)},r.prototype.getRestorationDataForIdentifier=function(t){var e;return null!=(e=this.restorationData)[t]?e[t]:e[t]={}},r}()}.call(this),function(){var e,r,n;t.start=function(){return r()?(null==t.controller&&(t.controller=e()),t.controller.start()):void 0},r=function(){return null==window.Turbolinks&&(window.Turbolinks=t),n()},e=function(){var e;return e=new t.Controller,e.adapter=new t.BrowserAdapter(e),e},n=function(){return window.Turbolinks===t},n()&&t.start()}.call(this)}).call(this),"object"==typeof module&&module.exports?module.exports=t:"function"==typeof define&&define.amd&&define(t)}).call(this);
8
- /*eslint-disable no-unused-vars*/
9
8
  /*!
10
- * jQuery JavaScript Library v3.1.0
9
+ * jQuery JavaScript Library v3.1.1
11
10
  * https://jquery.com/
12
11
  *
13
12
  * Includes Sizzle.js
@@ -17,7 +16,7 @@ var o,i,s,a,u;return i=null!=n?n:{},a=i.restorationIdentifier,s=i.restorationDat
17
16
  * Released under the MIT license
18
17
  * https://jquery.org/license
19
18
  *
20
- * Date: 2016-07-07T21:44Z
19
+ * Date: 2016-09-22T22:30Z
21
20
  */
22
21
 
23
22
  ( function( global, factory ) {
@@ -91,13 +90,13 @@ var support = {};
91
90
  doc.head.appendChild( script ).parentNode.removeChild( script );
92
91
  }
93
92
  /* global Symbol */
94
- // Defining this global in .eslintrc would create a danger of using the global
93
+ // Defining this global in .eslintrc.json would create a danger of using the global
95
94
  // unguarded in another place, it seems safer to define global only for this module
96
95
 
97
96
 
98
97
 
99
98
  var
100
- version = "3.1.0",
99
+ version = "3.1.1",
101
100
 
102
101
  // Define a local copy of jQuery
103
102
  jQuery = function( selector, context ) {
@@ -137,13 +136,14 @@ jQuery.fn = jQuery.prototype = {
137
136
  // Get the Nth element in the matched element set OR
138
137
  // Get the whole matched element set as a clean array
139
138
  get: function( num ) {
140
- return num != null ?
141
139
 
142
- // Return just the one element from the set
143
- ( num < 0 ? this[ num + this.length ] : this[ num ] ) :
140
+ // Return all the elements in a clean array
141
+ if ( num == null ) {
142
+ return slice.call( this );
143
+ }
144
144
 
145
- // Return all the elements in a clean array
146
- slice.call( this );
145
+ // Return just the one element from the set
146
+ return num < 0 ? this[ num + this.length ] : this[ num ];
147
147
  },
148
148
 
149
149
  // Take an array of elements and push it onto the stack
@@ -551,14 +551,14 @@ function isArrayLike( obj ) {
551
551
  }
552
552
  var Sizzle =
553
553
  /*!
554
- * Sizzle CSS Selector Engine v2.3.0
554
+ * Sizzle CSS Selector Engine v2.3.3
555
555
  * https://sizzlejs.com/
556
556
  *
557
557
  * Copyright jQuery Foundation and other contributors
558
558
  * Released under the MIT license
559
559
  * http://jquery.org/license
560
560
  *
561
- * Date: 2016-01-04
561
+ * Date: 2016-08-08
562
562
  */
563
563
  (function( window ) {
564
564
 
@@ -704,7 +704,7 @@ var i,
704
704
 
705
705
  // CSS string/identifier serialization
706
706
  // https://drafts.csswg.org/cssom/#common-serializing-idioms
707
- rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,
707
+ rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
708
708
  fcssescape = function( ch, asCodePoint ) {
709
709
  if ( asCodePoint ) {
710
710
 
@@ -731,7 +731,7 @@ var i,
731
731
 
732
732
  disabledAncestor = addCombinator(
733
733
  function( elem ) {
734
- return elem.disabled === true;
734
+ return elem.disabled === true && ("form" in elem || "label" in elem);
735
735
  },
736
736
  { dir: "parentNode", next: "legend" }
737
737
  );
@@ -1017,26 +1017,54 @@ function createButtonPseudo( type ) {
1017
1017
  * @param {Boolean} disabled true for :disabled; false for :enabled
1018
1018
  */
1019
1019
  function createDisabledPseudo( disabled ) {
1020
- // Known :disabled false positives:
1021
- // IE: *[disabled]:not(button, input, select, textarea, optgroup, option, menuitem, fieldset)
1022
- // not IE: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable
1020
+
1021
+ // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable
1023
1022
  return function( elem ) {
1024
1023
 
1025
- // Check form elements and option elements for explicit disabling
1026
- return "label" in elem && elem.disabled === disabled ||
1027
- "form" in elem && elem.disabled === disabled ||
1024
+ // Only certain elements can match :enabled or :disabled
1025
+ // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled
1026
+ // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled
1027
+ if ( "form" in elem ) {
1028
+
1029
+ // Check for inherited disabledness on relevant non-disabled elements:
1030
+ // * listed form-associated elements in a disabled fieldset
1031
+ // https://html.spec.whatwg.org/multipage/forms.html#category-listed
1032
+ // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled
1033
+ // * option elements in a disabled optgroup
1034
+ // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled
1035
+ // All such elements have a "form" property.
1036
+ if ( elem.parentNode && elem.disabled === false ) {
1037
+
1038
+ // Option elements defer to a parent optgroup if present
1039
+ if ( "label" in elem ) {
1040
+ if ( "label" in elem.parentNode ) {
1041
+ return elem.parentNode.disabled === disabled;
1042
+ } else {
1043
+ return elem.disabled === disabled;
1044
+ }
1045
+ }
1028
1046
 
1029
- // Check non-disabled form elements for fieldset[disabled] ancestors
1030
- "form" in elem && elem.disabled === false && (
1031
- // Support: IE6-11+
1032
- // Ancestry is covered for us
1033
- elem.isDisabled === disabled ||
1047
+ // Support: IE 6 - 11
1048
+ // Use the isDisabled shortcut property to check for disabled fieldset ancestors
1049
+ return elem.isDisabled === disabled ||
1034
1050
 
1035
- // Otherwise, assume any non-<option> under fieldset[disabled] is disabled
1036
- /* jshint -W018 */
1037
- elem.isDisabled !== !disabled &&
1038
- ("label" in elem || !disabledAncestor( elem )) !== disabled
1039
- );
1051
+ // Where there is no isDisabled, check manually
1052
+ /* jshint -W018 */
1053
+ elem.isDisabled !== !disabled &&
1054
+ disabledAncestor( elem ) === disabled;
1055
+ }
1056
+
1057
+ return elem.disabled === disabled;
1058
+
1059
+ // Try to winnow out elements that can't be disabled before trusting the disabled property.
1060
+ // Some victims get caught in our net (label, legend, menu, track), but it shouldn't
1061
+ // even exist on them, let alone have a boolean value.
1062
+ } else if ( "label" in elem ) {
1063
+ return elem.disabled === disabled;
1064
+ }
1065
+
1066
+ // Remaining elements are neither :enabled nor :disabled
1067
+ return false;
1040
1068
  };
1041
1069
  }
1042
1070
 
@@ -1152,25 +1180,21 @@ setDocument = Sizzle.setDocument = function( node ) {
1152
1180
  return !document.getElementsByName || !document.getElementsByName( expando ).length;
1153
1181
  });
1154
1182
 
1155
- // ID find and filter
1183
+ // ID filter and find
1156
1184
  if ( support.getById ) {
1157
- Expr.find["ID"] = function( id, context ) {
1158
- if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
1159
- var m = context.getElementById( id );
1160
- return m ? [ m ] : [];
1161
- }
1162
- };
1163
1185
  Expr.filter["ID"] = function( id ) {
1164
1186
  var attrId = id.replace( runescape, funescape );
1165
1187
  return function( elem ) {
1166
1188
  return elem.getAttribute("id") === attrId;
1167
1189
  };
1168
1190
  };
1191
+ Expr.find["ID"] = function( id, context ) {
1192
+ if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
1193
+ var elem = context.getElementById( id );
1194
+ return elem ? [ elem ] : [];
1195
+ }
1196
+ };
1169
1197
  } else {
1170
- // Support: IE6/7
1171
- // getElementById is not reliable as a find shortcut
1172
- delete Expr.find["ID"];
1173
-
1174
1198
  Expr.filter["ID"] = function( id ) {
1175
1199
  var attrId = id.replace( runescape, funescape );
1176
1200
  return function( elem ) {
@@ -1179,6 +1203,36 @@ setDocument = Sizzle.setDocument = function( node ) {
1179
1203
  return node && node.value === attrId;
1180
1204
  };
1181
1205
  };
1206
+
1207
+ // Support: IE 6 - 7 only
1208
+ // getElementById is not reliable as a find shortcut
1209
+ Expr.find["ID"] = function( id, context ) {
1210
+ if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
1211
+ var node, i, elems,
1212
+ elem = context.getElementById( id );
1213
+
1214
+ if ( elem ) {
1215
+
1216
+ // Verify the id attribute
1217
+ node = elem.getAttributeNode("id");
1218
+ if ( node && node.value === id ) {
1219
+ return [ elem ];
1220
+ }
1221
+
1222
+ // Fall back on getElementsByName
1223
+ elems = context.getElementsByName( id );
1224
+ i = 0;
1225
+ while ( (elem = elems[i++]) ) {
1226
+ node = elem.getAttributeNode("id");
1227
+ if ( node && node.value === id ) {
1228
+ return [ elem ];
1229
+ }
1230
+ }
1231
+ }
1232
+
1233
+ return [];
1234
+ }
1235
+ };
1182
1236
  }
1183
1237
 
1184
1238
  // Tag
@@ -2219,6 +2273,7 @@ function addCombinator( matcher, combinator, base ) {
2219
2273
  return matcher( elem, context, xml );
2220
2274
  }
2221
2275
  }
2276
+ return false;
2222
2277
  } :
2223
2278
 
2224
2279
  // Check against all ancestor/preceding elements
@@ -2263,6 +2318,7 @@ function addCombinator( matcher, combinator, base ) {
2263
2318
  }
2264
2319
  }
2265
2320
  }
2321
+ return false;
2266
2322
  };
2267
2323
  }
2268
2324
 
@@ -2625,8 +2681,7 @@ select = Sizzle.select = function( selector, context, results, seed ) {
2625
2681
  // Reduce context if the leading compound selector is an ID
2626
2682
  tokens = match[0] = match[0].slice( 0 );
2627
2683
  if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
2628
- support.getById && context.nodeType === 9 && documentIsHTML &&
2629
- Expr.relative[ tokens[1].type ] ) {
2684
+ context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {
2630
2685
 
2631
2686
  context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
2632
2687
  if ( !context ) {
@@ -2808,24 +2863,29 @@ function winnow( elements, qualifier, not ) {
2808
2863
  return jQuery.grep( elements, function( elem, i ) {
2809
2864
  return !!qualifier.call( elem, i, elem ) !== not;
2810
2865
  } );
2811
-
2812
2866
  }
2813
2867
 
2868
+ // Single element
2814
2869
  if ( qualifier.nodeType ) {
2815
2870
  return jQuery.grep( elements, function( elem ) {
2816
2871
  return ( elem === qualifier ) !== not;
2817
2872
  } );
2818
-
2819
2873
  }
2820
2874
 
2821
- if ( typeof qualifier === "string" ) {
2822
- if ( risSimple.test( qualifier ) ) {
2823
- return jQuery.filter( qualifier, elements, not );
2824
- }
2875
+ // Arraylike of elements (jQuery, arguments, Array)
2876
+ if ( typeof qualifier !== "string" ) {
2877
+ return jQuery.grep( elements, function( elem ) {
2878
+ return ( indexOf.call( qualifier, elem ) > -1 ) !== not;
2879
+ } );
2880
+ }
2825
2881
 
2826
- qualifier = jQuery.filter( qualifier, elements );
2882
+ // Simple selector that can be filtered directly, removing non-Elements
2883
+ if ( risSimple.test( qualifier ) ) {
2884
+ return jQuery.filter( qualifier, elements, not );
2827
2885
  }
2828
2886
 
2887
+ // Complex selector, compare the two sets, removing non-Elements
2888
+ qualifier = jQuery.filter( qualifier, elements );
2829
2889
  return jQuery.grep( elements, function( elem ) {
2830
2890
  return ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1;
2831
2891
  } );
@@ -2838,11 +2898,13 @@ jQuery.filter = function( expr, elems, not ) {
2838
2898
  expr = ":not(" + expr + ")";
2839
2899
  }
2840
2900
 
2841
- return elems.length === 1 && elem.nodeType === 1 ?
2842
- jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :
2843
- jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
2844
- return elem.nodeType === 1;
2845
- } ) );
2901
+ if ( elems.length === 1 && elem.nodeType === 1 ) {
2902
+ return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];
2903
+ }
2904
+
2905
+ return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
2906
+ return elem.nodeType === 1;
2907
+ } ) );
2846
2908
  };
2847
2909
 
2848
2910
  jQuery.fn.extend( {
@@ -3170,14 +3232,14 @@ jQuery.each( {
3170
3232
  return this.pushStack( matched );
3171
3233
  };
3172
3234
  } );
3173
- var rnotwhite = ( /\S+/g );
3235
+ var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g );
3174
3236
 
3175
3237
 
3176
3238
 
3177
3239
  // Convert String-formatted options into Object-formatted ones
3178
3240
  function createOptions( options ) {
3179
3241
  var object = {};
3180
- jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {
3242
+ jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {
3181
3243
  object[ flag ] = true;
3182
3244
  } );
3183
3245
  return object;
@@ -3942,13 +4004,16 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
3942
4004
  }
3943
4005
  }
3944
4006
 
3945
- return chainable ?
3946
- elems :
4007
+ if ( chainable ) {
4008
+ return elems;
4009
+ }
4010
+
4011
+ // Gets
4012
+ if ( bulk ) {
4013
+ return fn.call( elems );
4014
+ }
3947
4015
 
3948
- // Gets
3949
- bulk ?
3950
- fn.call( elems ) :
3951
- len ? fn( elems[ 0 ], key ) : emptyGet;
4016
+ return len ? fn( elems[ 0 ], key ) : emptyGet;
3952
4017
  };
3953
4018
  var acceptData = function( owner ) {
3954
4019
 
@@ -4085,7 +4150,7 @@ Data.prototype = {
4085
4150
  // Otherwise, create an array by matching non-whitespace
4086
4151
  key = key in cache ?
4087
4152
  [ key ] :
4088
- ( key.match( rnotwhite ) || [] );
4153
+ ( key.match( rnothtmlwhite ) || [] );
4089
4154
  }
4090
4155
 
4091
4156
  i = key.length;
@@ -4133,6 +4198,31 @@ var dataUser = new Data();
4133
4198
  var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
4134
4199
  rmultiDash = /[A-Z]/g;
4135
4200
 
4201
+ function getData( data ) {
4202
+ if ( data === "true" ) {
4203
+ return true;
4204
+ }
4205
+
4206
+ if ( data === "false" ) {
4207
+ return false;
4208
+ }
4209
+
4210
+ if ( data === "null" ) {
4211
+ return null;
4212
+ }
4213
+
4214
+ // Only convert to a number if it doesn't change the string
4215
+ if ( data === +data + "" ) {
4216
+ return +data;
4217
+ }
4218
+
4219
+ if ( rbrace.test( data ) ) {
4220
+ return JSON.parse( data );
4221
+ }
4222
+
4223
+ return data;
4224
+ }
4225
+
4136
4226
  function dataAttr( elem, key, data ) {
4137
4227
  var name;
4138
4228
 
@@ -4144,14 +4234,7 @@ function dataAttr( elem, key, data ) {
4144
4234
 
4145
4235
  if ( typeof data === "string" ) {
4146
4236
  try {
4147
- data = data === "true" ? true :
4148
- data === "false" ? false :
4149
- data === "null" ? null :
4150
-
4151
- // Only convert to a number if it doesn't change the string
4152
- +data + "" === data ? +data :
4153
- rbrace.test( data ) ? JSON.parse( data ) :
4154
- data;
4237
+ data = getData( data );
4155
4238
  } catch ( e ) {}
4156
4239
 
4157
4240
  // Make sure we set the data so it isn't changed later
@@ -4528,7 +4611,7 @@ function getDefaultDisplay( elem ) {
4528
4611
  return display;
4529
4612
  }
4530
4613
 
4531
- temp = doc.body.appendChild( doc.createElement( nodeName ) ),
4614
+ temp = doc.body.appendChild( doc.createElement( nodeName ) );
4532
4615
  display = jQuery.css( temp, "display" );
4533
4616
 
4534
4617
  temp.parentNode.removeChild( temp );
@@ -4646,15 +4729,23 @@ function getAll( context, tag ) {
4646
4729
 
4647
4730
  // Support: IE <=9 - 11 only
4648
4731
  // Use typeof to avoid zero-argument method invocation on host objects (#15151)
4649
- var ret = typeof context.getElementsByTagName !== "undefined" ?
4650
- context.getElementsByTagName( tag || "*" ) :
4651
- typeof context.querySelectorAll !== "undefined" ?
4652
- context.querySelectorAll( tag || "*" ) :
4653
- [];
4654
-
4655
- return tag === undefined || tag && jQuery.nodeName( context, tag ) ?
4656
- jQuery.merge( [ context ], ret ) :
4657
- ret;
4732
+ var ret;
4733
+
4734
+ if ( typeof context.getElementsByTagName !== "undefined" ) {
4735
+ ret = context.getElementsByTagName( tag || "*" );
4736
+
4737
+ } else if ( typeof context.querySelectorAll !== "undefined" ) {
4738
+ ret = context.querySelectorAll( tag || "*" );
4739
+
4740
+ } else {
4741
+ ret = [];
4742
+ }
4743
+
4744
+ if ( tag === undefined || tag && jQuery.nodeName( context, tag ) ) {
4745
+ return jQuery.merge( [ context ], ret );
4746
+ }
4747
+
4748
+ return ret;
4658
4749
  }
4659
4750
 
4660
4751
 
@@ -4928,7 +5019,7 @@ jQuery.event = {
4928
5019
  }
4929
5020
 
4930
5021
  // Handle multiple events separated by a space
4931
- types = ( types || "" ).match( rnotwhite ) || [ "" ];
5022
+ types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
4932
5023
  t = types.length;
4933
5024
  while ( t-- ) {
4934
5025
  tmp = rtypenamespace.exec( types[ t ] ) || [];
@@ -5010,7 +5101,7 @@ jQuery.event = {
5010
5101
  }
5011
5102
 
5012
5103
  // Once for each type.namespace in types; type may be omitted
5013
- types = ( types || "" ).match( rnotwhite ) || [ "" ];
5104
+ types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
5014
5105
  t = types.length;
5015
5106
  while ( t-- ) {
5016
5107
  tmp = rtypenamespace.exec( types[ t ] ) || [];
@@ -5136,51 +5227,58 @@ jQuery.event = {
5136
5227
  },
5137
5228
 
5138
5229
  handlers: function( event, handlers ) {
5139
- var i, matches, sel, handleObj,
5230
+ var i, handleObj, sel, matchedHandlers, matchedSelectors,
5140
5231
  handlerQueue = [],
5141
5232
  delegateCount = handlers.delegateCount,
5142
5233
  cur = event.target;
5143
5234
 
5144
- // Support: IE <=9
5145
5235
  // Find delegate handlers
5146
- // Black-hole SVG <use> instance trees (#13180)
5147
- //
5148
- // Support: Firefox <=42
5149
- // Avoid non-left-click in FF but don't block IE radio events (#3861, gh-2343)
5150
- if ( delegateCount && cur.nodeType &&
5151
- ( event.type !== "click" || isNaN( event.button ) || event.button < 1 ) ) {
5236
+ if ( delegateCount &&
5237
+
5238
+ // Support: IE <=9
5239
+ // Black-hole SVG <use> instance trees (trac-13180)
5240
+ cur.nodeType &&
5241
+
5242
+ // Support: Firefox <=42
5243
+ // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)
5244
+ // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click
5245
+ // Support: IE 11 only
5246
+ // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343)
5247
+ !( event.type === "click" && event.button >= 1 ) ) {
5152
5248
 
5153
5249
  for ( ; cur !== this; cur = cur.parentNode || this ) {
5154
5250
 
5155
5251
  // Don't check non-elements (#13208)
5156
5252
  // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
5157
- if ( cur.nodeType === 1 && ( cur.disabled !== true || event.type !== "click" ) ) {
5158
- matches = [];
5253
+ if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) {
5254
+ matchedHandlers = [];
5255
+ matchedSelectors = {};
5159
5256
  for ( i = 0; i < delegateCount; i++ ) {
5160
5257
  handleObj = handlers[ i ];
5161
5258
 
5162
5259
  // Don't conflict with Object.prototype properties (#13203)
5163
5260
  sel = handleObj.selector + " ";
5164
5261
 
5165
- if ( matches[ sel ] === undefined ) {
5166
- matches[ sel ] = handleObj.needsContext ?
5262
+ if ( matchedSelectors[ sel ] === undefined ) {
5263
+ matchedSelectors[ sel ] = handleObj.needsContext ?
5167
5264
  jQuery( sel, this ).index( cur ) > -1 :
5168
5265
  jQuery.find( sel, this, null, [ cur ] ).length;
5169
5266
  }
5170
- if ( matches[ sel ] ) {
5171
- matches.push( handleObj );
5267
+ if ( matchedSelectors[ sel ] ) {
5268
+ matchedHandlers.push( handleObj );
5172
5269
  }
5173
5270
  }
5174
- if ( matches.length ) {
5175
- handlerQueue.push( { elem: cur, handlers: matches } );
5271
+ if ( matchedHandlers.length ) {
5272
+ handlerQueue.push( { elem: cur, handlers: matchedHandlers } );
5176
5273
  }
5177
5274
  }
5178
5275
  }
5179
5276
  }
5180
5277
 
5181
5278
  // Add the remaining (directly-bound) handlers
5279
+ cur = this;
5182
5280
  if ( delegateCount < handlers.length ) {
5183
- handlerQueue.push( { elem: this, handlers: handlers.slice( delegateCount ) } );
5281
+ handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );
5184
5282
  }
5185
5283
 
5186
5284
  return handlerQueue;
@@ -5414,7 +5512,19 @@ jQuery.each( {
5414
5512
 
5415
5513
  // Add which for click: 1 === left; 2 === middle; 3 === right
5416
5514
  if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {
5417
- return ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );
5515
+ if ( button & 1 ) {
5516
+ return 1;
5517
+ }
5518
+
5519
+ if ( button & 2 ) {
5520
+ return 3;
5521
+ }
5522
+
5523
+ if ( button & 4 ) {
5524
+ return 2;
5525
+ }
5526
+
5527
+ return 0;
5418
5528
  }
5419
5529
 
5420
5530
  return event.which;
@@ -6170,15 +6280,17 @@ function setPositiveNumber( elem, value, subtract ) {
6170
6280
  }
6171
6281
 
6172
6282
  function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
6173
- var i = extra === ( isBorderBox ? "border" : "content" ) ?
6174
-
6175
- // If we already have the right measurement, avoid augmentation
6176
- 4 :
6283
+ var i,
6284
+ val = 0;
6177
6285
 
6178
- // Otherwise initialize for horizontal or vertical properties
6179
- name === "width" ? 1 : 0,
6286
+ // If we already have the right measurement, avoid augmentation
6287
+ if ( extra === ( isBorderBox ? "border" : "content" ) ) {
6288
+ i = 4;
6180
6289
 
6181
- val = 0;
6290
+ // Otherwise initialize for horizontal or vertical properties
6291
+ } else {
6292
+ i = name === "width" ? 1 : 0;
6293
+ }
6182
6294
 
6183
6295
  for ( ; i < 4; i += 2 ) {
6184
6296
 
@@ -7032,7 +7144,7 @@ jQuery.Animation = jQuery.extend( Animation, {
7032
7144
  callback = props;
7033
7145
  props = [ "*" ];
7034
7146
  } else {
7035
- props = props.match( rnotwhite );
7147
+ props = props.match( rnothtmlwhite );
7036
7148
  }
7037
7149
 
7038
7150
  var prop,
@@ -7070,9 +7182,14 @@ jQuery.speed = function( speed, easing, fn ) {
7070
7182
  opt.duration = 0;
7071
7183
 
7072
7184
  } else {
7073
- opt.duration = typeof opt.duration === "number" ?
7074
- opt.duration : opt.duration in jQuery.fx.speeds ?
7075
- jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;
7185
+ if ( typeof opt.duration !== "number" ) {
7186
+ if ( opt.duration in jQuery.fx.speeds ) {
7187
+ opt.duration = jQuery.fx.speeds[ opt.duration ];
7188
+
7189
+ } else {
7190
+ opt.duration = jQuery.fx.speeds._default;
7191
+ }
7192
+ }
7076
7193
  }
7077
7194
 
7078
7195
  // Normalize opt.queue - true/undefined/null -> "fx"
@@ -7422,7 +7539,10 @@ jQuery.extend( {
7422
7539
  removeAttr: function( elem, value ) {
7423
7540
  var name,
7424
7541
  i = 0,
7425
- attrNames = value && value.match( rnotwhite );
7542
+
7543
+ // Attribute names can contain non-HTML whitespace characters
7544
+ // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
7545
+ attrNames = value && value.match( rnothtmlwhite );
7426
7546
 
7427
7547
  if ( attrNames && elem.nodeType === 1 ) {
7428
7548
  while ( ( name = attrNames[ i++ ] ) ) {
@@ -7529,12 +7649,19 @@ jQuery.extend( {
7529
7649
  // Use proper attribute retrieval(#12072)
7530
7650
  var tabindex = jQuery.find.attr( elem, "tabindex" );
7531
7651
 
7532
- return tabindex ?
7533
- parseInt( tabindex, 10 ) :
7652
+ if ( tabindex ) {
7653
+ return parseInt( tabindex, 10 );
7654
+ }
7655
+
7656
+ if (
7534
7657
  rfocusable.test( elem.nodeName ) ||
7535
- rclickable.test( elem.nodeName ) && elem.href ?
7536
- 0 :
7537
- -1;
7658
+ rclickable.test( elem.nodeName ) &&
7659
+ elem.href
7660
+ ) {
7661
+ return 0;
7662
+ }
7663
+
7664
+ return -1;
7538
7665
  }
7539
7666
  }
7540
7667
  },
@@ -7551,9 +7678,14 @@ jQuery.extend( {
7551
7678
  // on the option
7552
7679
  // The getter ensures a default option is selected
7553
7680
  // when in an optgroup
7681
+ // eslint rule "no-unused-expressions" is disabled for this code
7682
+ // since it considers such accessions noop
7554
7683
  if ( !support.optSelected ) {
7555
7684
  jQuery.propHooks.selected = {
7556
7685
  get: function( elem ) {
7686
+
7687
+ /* eslint no-unused-expressions: "off" */
7688
+
7557
7689
  var parent = elem.parentNode;
7558
7690
  if ( parent && parent.parentNode ) {
7559
7691
  parent.parentNode.selectedIndex;
@@ -7561,6 +7693,9 @@ if ( !support.optSelected ) {
7561
7693
  return null;
7562
7694
  },
7563
7695
  set: function( elem ) {
7696
+
7697
+ /* eslint no-unused-expressions: "off" */
7698
+
7564
7699
  var parent = elem.parentNode;
7565
7700
  if ( parent ) {
7566
7701
  parent.selectedIndex;
@@ -7591,7 +7726,13 @@ jQuery.each( [
7591
7726
 
7592
7727
 
7593
7728
 
7594
- var rclass = /[\t\r\n\f]/g;
7729
+ // Strip and collapse whitespace according to HTML spec
7730
+ // https://html.spec.whatwg.org/multipage/infrastructure.html#strip-and-collapse-whitespace
7731
+ function stripAndCollapse( value ) {
7732
+ var tokens = value.match( rnothtmlwhite ) || [];
7733
+ return tokens.join( " " );
7734
+ }
7735
+
7595
7736
 
7596
7737
  function getClass( elem ) {
7597
7738
  return elem.getAttribute && elem.getAttribute( "class" ) || "";
@@ -7609,12 +7750,11 @@ jQuery.fn.extend( {
7609
7750
  }
7610
7751
 
7611
7752
  if ( typeof value === "string" && value ) {
7612
- classes = value.match( rnotwhite ) || [];
7753
+ classes = value.match( rnothtmlwhite ) || [];
7613
7754
 
7614
7755
  while ( ( elem = this[ i++ ] ) ) {
7615
7756
  curValue = getClass( elem );
7616
- cur = elem.nodeType === 1 &&
7617
- ( " " + curValue + " " ).replace( rclass, " " );
7757
+ cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
7618
7758
 
7619
7759
  if ( cur ) {
7620
7760
  j = 0;
@@ -7625,7 +7765,7 @@ jQuery.fn.extend( {
7625
7765
  }
7626
7766
 
7627
7767
  // Only assign if different to avoid unneeded rendering.
7628
- finalValue = jQuery.trim( cur );
7768
+ finalValue = stripAndCollapse( cur );
7629
7769
  if ( curValue !== finalValue ) {
7630
7770
  elem.setAttribute( "class", finalValue );
7631
7771
  }
@@ -7651,14 +7791,13 @@ jQuery.fn.extend( {
7651
7791
  }
7652
7792
 
7653
7793
  if ( typeof value === "string" && value ) {
7654
- classes = value.match( rnotwhite ) || [];
7794
+ classes = value.match( rnothtmlwhite ) || [];
7655
7795
 
7656
7796
  while ( ( elem = this[ i++ ] ) ) {
7657
7797
  curValue = getClass( elem );
7658
7798
 
7659
7799
  // This expression is here for better compressibility (see addClass)
7660
- cur = elem.nodeType === 1 &&
7661
- ( " " + curValue + " " ).replace( rclass, " " );
7800
+ cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
7662
7801
 
7663
7802
  if ( cur ) {
7664
7803
  j = 0;
@@ -7671,7 +7810,7 @@ jQuery.fn.extend( {
7671
7810
  }
7672
7811
 
7673
7812
  // Only assign if different to avoid unneeded rendering.
7674
- finalValue = jQuery.trim( cur );
7813
+ finalValue = stripAndCollapse( cur );
7675
7814
  if ( curValue !== finalValue ) {
7676
7815
  elem.setAttribute( "class", finalValue );
7677
7816
  }
@@ -7706,7 +7845,7 @@ jQuery.fn.extend( {
7706
7845
  // Toggle individual class names
7707
7846
  i = 0;
7708
7847
  self = jQuery( this );
7709
- classNames = value.match( rnotwhite ) || [];
7848
+ classNames = value.match( rnothtmlwhite ) || [];
7710
7849
 
7711
7850
  while ( ( className = classNames[ i++ ] ) ) {
7712
7851
 
@@ -7749,10 +7888,8 @@ jQuery.fn.extend( {
7749
7888
  className = " " + selector + " ";
7750
7889
  while ( ( elem = this[ i++ ] ) ) {
7751
7890
  if ( elem.nodeType === 1 &&
7752
- ( " " + getClass( elem ) + " " ).replace( rclass, " " )
7753
- .indexOf( className ) > -1
7754
- ) {
7755
- return true;
7891
+ ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) {
7892
+ return true;
7756
7893
  }
7757
7894
  }
7758
7895
 
@@ -7763,8 +7900,7 @@ jQuery.fn.extend( {
7763
7900
 
7764
7901
 
7765
7902
 
7766
- var rreturn = /\r/g,
7767
- rspaces = /[\x20\t\r\n\f]+/g;
7903
+ var rreturn = /\r/g;
7768
7904
 
7769
7905
  jQuery.fn.extend( {
7770
7906
  val: function( value ) {
@@ -7785,13 +7921,13 @@ jQuery.fn.extend( {
7785
7921
 
7786
7922
  ret = elem.value;
7787
7923
 
7788
- return typeof ret === "string" ?
7789
-
7790
- // Handle most common string cases
7791
- ret.replace( rreturn, "" ) :
7924
+ // Handle most common string cases
7925
+ if ( typeof ret === "string" ) {
7926
+ return ret.replace( rreturn, "" );
7927
+ }
7792
7928
 
7793
- // Handle cases where value is null/undef or number
7794
- ret == null ? "" : ret;
7929
+ // Handle cases where value is null/undef or number
7930
+ return ret == null ? "" : ret;
7795
7931
  }
7796
7932
 
7797
7933
  return;
@@ -7848,20 +7984,24 @@ jQuery.extend( {
7848
7984
  // option.text throws exceptions (#14686, #14858)
7849
7985
  // Strip and collapse whitespace
7850
7986
  // https://html.spec.whatwg.org/#strip-and-collapse-whitespace
7851
- jQuery.trim( jQuery.text( elem ) ).replace( rspaces, " " );
7987
+ stripAndCollapse( jQuery.text( elem ) );
7852
7988
  }
7853
7989
  },
7854
7990
  select: {
7855
7991
  get: function( elem ) {
7856
- var value, option,
7992
+ var value, option, i,
7857
7993
  options = elem.options,
7858
7994
  index = elem.selectedIndex,
7859
7995
  one = elem.type === "select-one",
7860
7996
  values = one ? null : [],
7861
- max = one ? index + 1 : options.length,
7862
- i = index < 0 ?
7863
- max :
7864
- one ? index : 0;
7997
+ max = one ? index + 1 : options.length;
7998
+
7999
+ if ( index < 0 ) {
8000
+ i = max;
8001
+
8002
+ } else {
8003
+ i = one ? index : 0;
8004
+ }
7865
8005
 
7866
8006
  // Loop through all the selected options
7867
8007
  for ( ; i < max; i++ ) {
@@ -8315,13 +8455,17 @@ jQuery.fn.extend( {
8315
8455
  .map( function( i, elem ) {
8316
8456
  var val = jQuery( this ).val();
8317
8457
 
8318
- return val == null ?
8319
- null :
8320
- jQuery.isArray( val ) ?
8321
- jQuery.map( val, function( val ) {
8322
- return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
8323
- } ) :
8324
- { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
8458
+ if ( val == null ) {
8459
+ return null;
8460
+ }
8461
+
8462
+ if ( jQuery.isArray( val ) ) {
8463
+ return jQuery.map( val, function( val ) {
8464
+ return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
8465
+ } );
8466
+ }
8467
+
8468
+ return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
8325
8469
  } ).get();
8326
8470
  }
8327
8471
  } );
@@ -8330,7 +8474,7 @@ jQuery.fn.extend( {
8330
8474
  var
8331
8475
  r20 = /%20/g,
8332
8476
  rhash = /#.*$/,
8333
- rts = /([?&])_=[^&]*/,
8477
+ rantiCache = /([?&])_=[^&]*/,
8334
8478
  rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
8335
8479
 
8336
8480
  // #7653, #8125, #8152: local protocol detection
@@ -8376,7 +8520,7 @@ function addToPrefiltersOrTransports( structure ) {
8376
8520
 
8377
8521
  var dataType,
8378
8522
  i = 0,
8379
- dataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || [];
8523
+ dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];
8380
8524
 
8381
8525
  if ( jQuery.isFunction( func ) ) {
8382
8526
 
@@ -8844,7 +8988,7 @@ jQuery.extend( {
8844
8988
  s.type = options.method || options.type || s.method || s.type;
8845
8989
 
8846
8990
  // Extract dataTypes list
8847
- s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnotwhite ) || [ "" ];
8991
+ s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ];
8848
8992
 
8849
8993
  // A cross-domain request is in order when the origin doesn't match the current origin.
8850
8994
  if ( s.crossDomain == null ) {
@@ -8916,9 +9060,9 @@ jQuery.extend( {
8916
9060
  delete s.data;
8917
9061
  }
8918
9062
 
8919
- // Add anti-cache in uncached url if needed
9063
+ // Add or update anti-cache param if needed
8920
9064
  if ( s.cache === false ) {
8921
- cacheURL = cacheURL.replace( rts, "" );
9065
+ cacheURL = cacheURL.replace( rantiCache, "$1" );
8922
9066
  uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached;
8923
9067
  }
8924
9068
 
@@ -9657,7 +9801,7 @@ jQuery.fn.load = function( url, params, callback ) {
9657
9801
  off = url.indexOf( " " );
9658
9802
 
9659
9803
  if ( off > -1 ) {
9660
- selector = jQuery.trim( url.slice( off ) );
9804
+ selector = stripAndCollapse( url.slice( off ) );
9661
9805
  url = url.slice( 0, off );
9662
9806
  }
9663
9807
 
@@ -10049,7 +10193,6 @@ if ( typeof define === "function" && define.amd ) {
10049
10193
 
10050
10194
 
10051
10195
 
10052
-
10053
10196
  var
10054
10197
 
10055
10198
  // Map over jQuery in case of overwrite
@@ -10078,6 +10221,9 @@ if ( !noGlobal ) {
10078
10221
  }
10079
10222
 
10080
10223
 
10224
+
10225
+
10226
+
10081
10227
  return jQuery;
10082
10228
  } );
10083
10229
  (function($, undefined) {
@@ -27712,6 +27858,10 @@ return jQuery;
27712
27858
  slice = [].slice;
27713
27859
 
27714
27860
  TaoModule = (function() {
27861
+ var id;
27862
+
27863
+ id = 0;
27864
+
27715
27865
  TaoModule.extend = function(obj) {
27716
27866
  var key, ref, val;
27717
27867
  if (!(obj && typeof obj === 'object')) {
@@ -27793,6 +27943,7 @@ return jQuery;
27793
27943
  if (options == null) {
27794
27944
  options = {};
27795
27945
  }
27946
+ this.id = ++id;
27796
27947
  this._attributes = {};
27797
27948
  if (typeof options === 'object') {
27798
27949
  for (key in options) {
@@ -27856,6 +28007,9 @@ return jQuery;
27856
28007
  };
27857
28008
 
27858
28009
  TaoApplication.prototype._initGon = function() {
28010
+ if (!window.gon) {
28011
+ return;
28012
+ }
27859
28013
  $.extend(this, window.gon);
27860
28014
  return window.gon = null;
27861
28015
  };
@@ -27874,7 +28028,7 @@ return jQuery;
27874
28028
  };
27875
28029
 
27876
28030
  TaoApplication.prototype._initI18n = function() {
27877
- if (I18n && this.locale) {
28031
+ if (window.I18n && this.locale) {
27878
28032
  return I18n.locale = this.locale;
27879
28033
  }
27880
28034
  };
@@ -27894,12 +28048,12 @@ return jQuery;
27894
28048
  TaoApplication.prototype._initTurbolinks = function() {
27895
28049
  return $(document).on('turbolinks:before-visit', (function(_this) {
27896
28050
  return function(e) {
27897
- var ref;
27898
- if (_this.currentPage.trigger('before-leave') === false) {
28051
+ var ref, ref1;
28052
+ if (((ref = _this.currentPage) != null ? ref.trigger('before-leave') : void 0) === false) {
27899
28053
  e.preventDefault();
27900
28054
  return;
27901
28055
  }
27902
- return _this.trigger('before-page-visit', [(ref = e.originalEvent) != null ? ref.data.url : void 0]);
28056
+ return _this.trigger('before-page-visit', [(ref1 = e.originalEvent) != null ? ref1.data.url : void 0]);
27903
28057
  };
27904
28058
  })(this)).on('turbolinks:request-start', (function(_this) {
27905
28059
  return function(e) {
@@ -27913,10 +28067,12 @@ return jQuery;
27913
28067
  };
27914
28068
  })(this)).on('turbolinks:before-cache', (function(_this) {
27915
28069
  return function(e) {
27916
- var base;
28070
+ var ref;
27917
28071
  _this.trigger('before-page-cache', [_this.currentPage]);
27918
- if (typeof (base = _this.currentPage).prepareCache === "function") {
27919
- base.prepareCache();
28072
+ if ((ref = _this.currentPage) != null) {
28073
+ if (typeof ref.beforeCache === "function") {
28074
+ ref.beforeCache();
28075
+ }
27920
28076
  }
27921
28077
  return window.currentPage = _this.currentPage = null;
27922
28078
  };
@@ -27941,6 +28097,7 @@ return jQuery;
27941
28097
  if (!($page.length > 0)) {
27942
28098
  return;
27943
28099
  }
28100
+ _this._initGon();
27944
28101
  _this._initIcons($page);
27945
28102
  _this._initPage($page);
27946
28103
  return _this.trigger('page-load', [_this.currentPage]);
@@ -29963,17 +30120,15 @@ var Deferred = void 0;
29963
30120
  (function () {
29964
30121
  'use strict';
29965
30122
 
29966
- var doc = document;
29967
- var win = window;
29968
-
29969
30123
  /**
29970
30124
  * Gets 'customElement' from window so that it could be modified after
29971
30125
  * the polyfill loads.
29972
30126
  * @function
29973
30127
  * @return {CustomElementRegistry}
29974
30128
  */
30129
+
29975
30130
  var _customElements = function _customElements() {
29976
- return win['customElements'];
30131
+ return window['customElements'];
29977
30132
  };
29978
30133
 
29979
30134
  var _observerProp = '__$CE_observer';
@@ -30014,7 +30169,7 @@ var Deferred = void 0;
30014
30169
  // IE 11 requires the third and fourth arguments be present. If the third
30015
30170
  // arg is null, it applies the default behaviour. However IE also requires
30016
30171
  // the fourth argument be present even though the other browsers ignore it.
30017
- return doc.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, null, false);
30172
+ return document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, null, false);
30018
30173
  }
30019
30174
 
30020
30175
  /**
@@ -30292,9 +30447,9 @@ var Deferred = void 0;
30292
30447
  var onReady = function onReady() {
30293
30448
  _this2._upgradeScheduled = false;
30294
30449
  if (!_this2._mainDocumentObserver) {
30295
- _this2._mainDocumentObserver = _this2._observeRoot(doc);
30450
+ _this2._mainDocumentObserver = _this2._observeRoot(document);
30296
30451
  }
30297
- _this2._addNodes(doc.childNodes);
30452
+ _this2._addNodes(document.childNodes);
30298
30453
  };
30299
30454
  if (window['HTMLImports']) {
30300
30455
  window['HTMLImports']['whenReady'](onReady);
@@ -30630,7 +30785,7 @@ var Deferred = void 0;
30630
30785
  // patch window.HTMLElement
30631
30786
 
30632
30787
  /** @const */
30633
- var origHTMLElement = win.HTMLElement;
30788
+ var origHTMLElement = window.HTMLElement;
30634
30789
  CustomElementRegistry.prototype['nativeHTMLElement'] = origHTMLElement;
30635
30790
  /**
30636
30791
  * @type {function(new: HTMLElement)}
@@ -30647,21 +30802,24 @@ var Deferred = void 0;
30647
30802
  if (this.constructor) {
30648
30803
  // Find the tagname of the constructor and create a new element with it
30649
30804
  var tagName = customElements._constructors.get(this.constructor);
30650
- return _createElement(doc, tagName, undefined, false);
30805
+ return _createElement(document, tagName, undefined, false);
30651
30806
  }
30652
30807
  throw new Error('Unknown constructor. Did you call customElements.define()?');
30653
30808
  };
30654
- win.HTMLElement = newHTMLElement;
30655
- win.HTMLElement.prototype = Object.create(origHTMLElement.prototype, {
30656
- constructor: { value: win.HTMLElement, configurable: true, writable: true }
30657
- });
30809
+ window.HTMLElement = newHTMLElement;
30810
+ // By setting the patched HTMLElement's prototype property to the native
30811
+ // HTMLElement's prototype we make sure that:
30812
+ // document.createElement('a') instanceof HTMLElement
30813
+ // works because instanceof uses HTMLElement.prototype, which is on the
30814
+ // ptototype chain of built-in elements.
30815
+ window.HTMLElement.prototype = origHTMLElement.prototype;
30658
30816
 
30659
30817
  // patch doc.createElement
30660
30818
  // TODO(justinfagnani): why is the cast neccessary?
30661
30819
  // Can we fix the Closure DOM externs?
30662
- var _origCreateElement =
30820
+ var _nativeCreateElement =
30663
30821
  /** @type {function(this:Document, string, (Object|undefined)=): !HTMLElement}}*/
30664
- doc.createElement;
30822
+ document.createElement;
30665
30823
 
30666
30824
  /**
30667
30825
  * Creates a new element and upgrades it if it's a custom element.
@@ -30675,7 +30833,7 @@ var Deferred = void 0;
30675
30833
  */
30676
30834
  function _createElement(doc, tagName, options, callConstructor) {
30677
30835
  var customElements = _customElements();
30678
- var element = options ? _origCreateElement.call(doc, tagName, options) : _origCreateElement.call(doc, tagName);
30836
+ var element = options ? _nativeCreateElement.call(doc, tagName, options) : _nativeCreateElement.call(doc, tagName);
30679
30837
  var definition = customElements._definitions.get(tagName.toLowerCase());
30680
30838
  if (definition) {
30681
30839
  customElements._upgradeElement(element, definition, callConstructor);
@@ -30683,35 +30841,35 @@ var Deferred = void 0;
30683
30841
  customElements._observeRoot(element);
30684
30842
  return element;
30685
30843
  };
30686
- doc.createElement = function (tagName, options) {
30687
- return _createElement(doc, tagName, options, true);
30844
+ document.createElement = function (tagName, options) {
30845
+ return _createElement(document, tagName, options, true);
30688
30846
  };
30689
30847
 
30690
- // patch doc.createElementNS
30848
+ // patch document.createElementNS
30691
30849
 
30692
30850
  var HTMLNS = 'http://www.w3.org/1999/xhtml';
30693
30851
 
30694
30852
  /** @type {function(this:Document,string,string):Element} */
30695
- var _origCreateElementNS = doc.createElementNS;
30696
- doc.createElementNS =
30853
+ var _nativeCreateElementNS = document.createElementNS;
30854
+ document.createElementNS =
30697
30855
  /** @type {function(this:Document,(string|null),string):!Element} */
30698
30856
  function (namespaceURI, qualifiedName) {
30699
- if (namespaceURI === 'http://www.w3.org/1999/xhtml') {
30700
- return doc.createElement(qualifiedName);
30857
+ if (namespaceURI === HTMLNS) {
30858
+ return document.createElement(qualifiedName);
30701
30859
  } else {
30702
- return _origCreateElementNS.call(doc, namespaceURI, qualifiedName);
30860
+ return _nativeCreateElementNS.call(document, namespaceURI, qualifiedName);
30703
30861
  }
30704
30862
  };
30705
30863
 
30706
30864
  // patch Element.attachShadow
30707
30865
 
30708
30866
  /** @type {function({closed: boolean})} */
30709
- var _origAttachShadow = Element.prototype['attachShadow'];
30710
- if (_origAttachShadow) {
30867
+ var _nativeAttachShadow = Element.prototype['attachShadow'];
30868
+ if (_nativeAttachShadow) {
30711
30869
  Object.defineProperty(Element.prototype, 'attachShadow', {
30712
30870
  value: function value(options) {
30713
30871
  /** @type {!Node} */
30714
- var root = _origAttachShadow.call(this, options);
30872
+ var root = _nativeAttachShadow.call(this, options);
30715
30873
  /** @type {CustomElementRegistry} */
30716
30874
  var customElements = _customElements();
30717
30875
  customElements._observeRoot(root);
@@ -30720,11 +30878,11 @@ var Deferred = void 0;
30720
30878
  });
30721
30879
  }
30722
30880
 
30723
- // patch doc.importNode
30881
+ // patch document.importNode
30724
30882
 
30725
- var rawImportNode = doc.importNode;
30726
- doc.importNode = function (node, deep) {
30727
- var clone = /** @type{!Node} */rawImportNode.call(doc, node, deep);
30883
+ var _nativeImportNode = document.importNode;
30884
+ document.importNode = function (node, deep) {
30885
+ var clone = /** @type{!Node} */_nativeImportNode.call(document, node, deep);
30728
30886
  var customElements = _customElements();
30729
30887
  var nodes = isElement(clone) ? [clone] : clone.childNodes;
30730
30888
  /** @type {CustomElementRegistry} */_customElements()._addNodes(nodes);
@@ -30733,13 +30891,13 @@ var Deferred = void 0;
30733
30891
 
30734
30892
  // patch Element.setAttribute & removeAttribute
30735
30893
 
30736
- var _origSetAttribute = Element.prototype.setAttribute;
30894
+ var _nativeSetAttribute = Element.prototype.setAttribute;
30737
30895
  Element.prototype['setAttribute'] = function (name, value) {
30738
- changeAttribute(this, name, value, _origSetAttribute);
30896
+ changeAttribute(this, name, value, _nativeSetAttribute);
30739
30897
  };
30740
- var _origRemoveAttribute = Element.prototype.removeAttribute;
30898
+ var _nativeRemoveAttribute = Element.prototype.removeAttribute;
30741
30899
  Element.prototype['removeAttribute'] = function (name) {
30742
- changeAttribute(this, name, null, _origRemoveAttribute);
30900
+ changeAttribute(this, name, null, _nativeRemoveAttribute);
30743
30901
  };
30744
30902
 
30745
30903
  function changeAttribute(element, name, value, operation) {
@@ -30776,129 +30934,51 @@ var Deferred = void 0;
30776
30934
  })();
30777
30935
  (function() {
30778
30936
  if (window.customElements && !customElements.polyfilled) {
30779
- eval('(() => {\n \'use strict\';\n\n const NativeHTMLElement = window.HTMLElement;\n const nativeDefine = window.customElements.define;\n const nativeGet = window.customElements.get;\n\n /**\n * Map of user-provided constructors to tag names.\n *\n * @type {Map<Function, string>}\n */\n const tagnameByConstructor = new Map();\n\n /**\n * Map of tag anmes to user-provided constructors.\n *\n * @type {Map<string, Function>}\n */\n const constructorByTagname = new Map();\n\n\n /**\n * Whether the constructors are being called by a browser process, ie parsing\n * or createElement.\n */\n let browserConstruction = false;\n\n /**\n * Whether the constructors are being called by a user-space process, ie\n * calling an element constructor.\n */\n let userConstruction = false;\n\n window.HTMLElement = function() {\n if (!browserConstruction) {\n const tagname = tagnameByConstructor.get(this.constructor);\n const fakeClass = nativeGet.call(window.customElements, tagname);\n\n // Make sure that the fake constructor doesn\'t call back to this constructor\n userConstruction = true;\n const instance = new (fakeClass)();\n return instance;\n }\n // Else do nothing. This will be reached by ES5-style classes doing\n // HTMLElement.call() during initialization\n browserConstruction = false;\n };\n\n window.HTMLElement.prototype = Object.create(NativeHTMLElement.prototype);\n window.HTMLElement.prototype.constructor = window.HTMLElement;\n\n window.customElements.define = (tagname, elementClass) => {\n const elementProto = elementClass.prototype;\n const StandInElement = class extends NativeHTMLElement {\n constructor() {\n // Call the native HTMLElement constructor, this gives us the\n // under-construction instance as `this`:\n super();\n\n // The prototype will be wrong up because the browser used our fake\n // class, so fix it:\n Object.setPrototypeOf(this, elementProto);\n\n if (!userConstruction) {\n // Make sure that user-defined constructor bottom\'s out to a do-nothing\n // HTMLElement() call\n browserConstruction = true;\n // Call the user-defined constructor on our instance:\n elementClass.call(this);\n }\n userConstruction = false;\n }\n };\n const standInProto = StandInElement.prototype;\n StandInElement.observedAttributes = elementClass.observedAttributes;\n standInProto.connectedCallback = elementProto.connectedCallback;\n standInProto.disconnectedCallback = elementProto.disconnectedCallback;\n standInProto.attributeChangedCallback = elementProto.attributeChangedCallback;\n standInProto.adoptedCallback = elementProto.adoptedCallback;\n\n tagnameByConstructor.set(elementClass, tagname);\n constructorByTagname.set(tagname, elementClass);\n nativeDefine.call(window.customElements, tagname, StandInElement);\n };\n\n window.customElements.get = (tagname) => constructorByTagname.get(tagname);\n\n})();');
30937
+ eval('(() => {\n \'use strict\';\n\n const NativeHTMLElement = window.HTMLElement;\n const nativeDefine = window.customElements.define;\n const nativeGet = window.customElements.get;\n\n /**\n * Map of user-provided constructors to tag names.\n *\n * @type {Map<Function, string>}\n */\n const tagnameByConstructor = new Map();\n\n /**\n * Map of tag names to user-provided constructors.\n *\n * @type {Map<string, Function>}\n */\n const constructorByTagname = new Map();\n\n\n /**\n * Whether the constructors are being called by a browser process, ie parsing\n * or createElement.\n */\n let browserConstruction = false;\n\n /**\n * Whether the constructors are being called by a user-space process, ie\n * calling an element constructor.\n */\n let userConstruction = false;\n\n window.HTMLElement = function() {\n if (!browserConstruction) {\n const tagname = tagnameByConstructor.get(this.constructor);\n const fakeClass = nativeGet.call(window.customElements, tagname);\n\n // Make sure that the fake constructor doesn\'t call back to this constructor\n userConstruction = true;\n const instance = new (fakeClass)();\n return instance;\n }\n // Else do nothing. This will be reached by ES5-style classes doing\n // HTMLElement.call() during initialization\n browserConstruction = false;\n };\n // By setting the patched HTMLElement\'s prototype property to the native\n // HTMLElement\'s prototype we make sure that:\n // document.createElement(\'a\') instanceof HTMLElement\n // works because instanceof uses HTMLElement.prototype, which is on the\n // ptototype chain of built-in elements.\n window.HTMLElement.prototype = NativeHTMLElement.prototype;\n\n window.customElements.define = (tagname, elementClass) => {\n const elementProto = elementClass.prototype;\n const StandInElement = class extends NativeHTMLElement {\n constructor() {\n // Call the native HTMLElement constructor, this gives us the\n // under-construction instance as `this`:\n super();\n\n // The prototype will be wrong up because the browser used our fake\n // class, so fix it:\n Object.setPrototypeOf(this, elementProto);\n\n if (!userConstruction) {\n // Make sure that user-defined constructor bottom\'s out to a do-nothing\n // HTMLElement() call\n browserConstruction = true;\n // Call the user-defined constructor on our instance:\n elementClass.call(this);\n }\n userConstruction = false;\n }\n };\n const standInProto = StandInElement.prototype;\n StandInElement.observedAttributes = elementClass.observedAttributes;\n standInProto.connectedCallback = elementProto.connectedCallback;\n standInProto.disconnectedCallback = elementProto.disconnectedCallback;\n standInProto.attributeChangedCallback = elementProto.attributeChangedCallback;\n standInProto.adoptedCallback = elementProto.adoptedCallback;\n\n tagnameByConstructor.set(elementClass, tagname);\n constructorByTagname.set(tagname, elementClass);\n nativeDefine.call(window.customElements, tagname, StandInElement);\n };\n\n window.customElements.get = (tagname) => constructorByTagname.get(tagname);\n\n})();');
30780
30938
  }
30781
30939
 
30782
30940
  }).call(this);
30783
- /**
30784
- * @license
30785
- * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.
30786
- * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
30787
- * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
30788
- * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
30789
- * Code distributed by Google as part of the polymer project is also
30790
- * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
30791
- */
30792
-
30793
- (function() {
30794
- 'use strict';
30795
-
30796
- // patch all built-in subclasses of HTMLElement to inherit from the new HTMLElement
30797
- // See https://html.spec.whatwg.org/multipage/indices.html#element-interfaces
30798
-
30799
- /** @const */
30800
- var htmlElementSubclasses = [
30801
- 'Button',
30802
- 'Canvas',
30803
- 'Data',
30804
- 'Head',
30805
- 'Mod',
30806
- 'TableCell',
30807
- 'TableCol',
30808
- 'Anchor',
30809
- 'Area',
30810
- 'Base',
30811
- 'Body',
30812
- 'BR',
30813
- 'DataList',
30814
- 'Details',
30815
- 'Dialog',
30816
- 'Div',
30817
- 'DList',
30818
- 'Embed',
30819
- 'FieldSet',
30820
- 'Form',
30821
- 'Heading',
30822
- 'HR',
30823
- 'Html',
30824
- 'IFrame',
30825
- 'Image',
30826
- 'Input',
30827
- 'Keygen',
30828
- 'Label',
30829
- 'Legend',
30830
- 'LI',
30831
- 'Link',
30832
- 'Map',
30833
- 'Media',
30834
- 'Menu',
30835
- 'MenuItem',
30836
- 'Meta',
30837
- 'Meter',
30838
- 'Object',
30839
- 'OList',
30840
- 'OptGroup',
30841
- 'Option',
30842
- 'Output',
30843
- 'Paragraph',
30844
- 'Param',
30845
- 'Picture',
30846
- 'Pre',
30847
- 'Progress',
30848
- 'Quote',
30849
- 'Script',
30850
- 'Select',
30851
- 'Slot',
30852
- 'Source',
30853
- 'Span',
30854
- 'Style',
30855
- 'TableCaption',
30856
- 'Table',
30857
- 'TableRow',
30858
- 'TableSection',
30859
- 'Template',
30860
- 'TextArea',
30861
- 'Time',
30862
- 'Title',
30863
- 'Track',
30864
- 'UList',
30865
- 'Unknown',
30866
- ];
30867
-
30868
- for (var i = 0; i < htmlElementSubclasses.length; i++) {
30869
- var ctor = window['HTML' + htmlElementSubclasses[i] + 'Element'];
30870
- if (ctor) {
30871
- ctor.prototype.__proto__ = window.HTMLElement.prototype;
30872
- }
30873
- }
30874
- })();
30875
30941
  (function() {
30876
30942
 
30877
30943
 
30878
30944
  }).call(this);
30879
30945
  (function() {
30880
30946
  var TaoComponentBasedOn, components,
30881
- extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
30882
- hasProp = {}.hasOwnProperty,
30883
30947
  slice = [].slice;
30884
30948
 
30885
30949
  components = {};
30886
30950
 
30887
- TaoComponentBasedOn = function(superClass) {
30888
- if (superClass == null) {
30889
- superClass = 'HTMLElement';
30951
+ TaoComponentBasedOn = function(superClassName) {
30952
+ var ComponentClass;
30953
+ if (superClassName == null) {
30954
+ superClassName = 'HTMLElement';
30890
30955
  }
30891
- if (components[superClass]) {
30892
- return components[superClass];
30956
+ if (components[superClassName]) {
30957
+ return components[superClassName];
30893
30958
  }
30894
- return components[superClass] = (function(superClass1) {
30895
- extend(_Class, superClass1);
30959
+ ComponentClass = (function() {
30960
+ var count, superClass;
30961
+
30962
+ superClass = window[superClassName];
30963
+
30964
+ ComponentClass.prototype = Object.create(superClass.prototype, {
30965
+ constructor: {
30966
+ value: ComponentClass,
30967
+ enumerable: false,
30968
+ writable: true,
30969
+ configurable: true
30970
+ }
30971
+ });
30896
30972
 
30897
- function _Class() {
30898
- return _Class.__super__.constructor.apply(this, arguments);
30973
+ if (Object.setPrototypeOf != null) {
30974
+ Object.setPrototypeOf(ComponentClass, superClass);
30975
+ } else {
30976
+ ComponentClass.__proto__ = superClass;
30899
30977
  }
30900
30978
 
30901
- _Class.extend = function(obj) {
30979
+ count = 0;
30980
+
30981
+ ComponentClass.extend = function(obj) {
30902
30982
  var key, ref, val;
30903
30983
  if (!(obj && typeof obj === 'object')) {
30904
30984
  throw new Error('TaoComponent.extend: param should be an object');
@@ -30915,7 +30995,7 @@ var Deferred = void 0;
30915
30995
  return this;
30916
30996
  };
30917
30997
 
30918
- _Class.include = function(obj) {
30998
+ ComponentClass.include = function(obj) {
30919
30999
  var key, ref, val;
30920
31000
  if (!(obj && typeof obj === 'object')) {
30921
31001
  throw new Error('TaoComponent.include: param should be an object');
@@ -30932,21 +31012,21 @@ var Deferred = void 0;
30932
31012
  return this;
30933
31013
  };
30934
31014
 
30935
- _Class.get = function(attributeName, getMethod) {
31015
+ ComponentClass.get = function(attributeName, getMethod) {
30936
31016
  return Object.defineProperty(this.prototype, attributeName, {
30937
31017
  get: getMethod,
30938
31018
  configurable: true
30939
31019
  });
30940
31020
  };
30941
31021
 
30942
- _Class.set = function(attributeName, setMethod) {
31022
+ ComponentClass.set = function(attributeName, setMethod) {
30943
31023
  return Object.defineProperty(this.prototype, attributeName, {
30944
31024
  set: setMethod,
30945
31025
  configurable: true
30946
31026
  });
30947
31027
  };
30948
31028
 
30949
- _Class.attribute = function() {
31029
+ ComponentClass.attribute = function() {
30950
31030
  var i, names, options;
30951
31031
  names = 2 <= arguments.length ? slice.call(arguments, 0, i = arguments.length - 1) : (i = 0, []), options = arguments[i++];
30952
31032
  if (options == null) {
@@ -30993,76 +31073,98 @@ var Deferred = void 0;
30993
31073
  })(this));
30994
31074
  };
30995
31075
 
30996
- _Class.tag = '';
31076
+ ComponentClass.tag = '';
30997
31077
 
30998
- _Class.register = function(componentClass) {
31078
+ ComponentClass.register = function(componentClass) {
30999
31079
  if (!componentClass.tag) {
31000
31080
  return;
31001
31081
  }
31002
31082
  return customElements.define(componentClass.tag, componentClass);
31003
31083
  };
31004
31084
 
31005
- _Class.observedAttributes = [];
31085
+ ComponentClass.observedAttributes = [];
31006
31086
 
31007
- _Class.get('jq', function() {
31087
+ ComponentClass.get('jq', function() {
31008
31088
  return $(this);
31009
31089
  });
31010
31090
 
31011
- _Class.prototype.connectedCallback = function() {
31012
- if (!this.initialized) {
31013
- this.classList.add('tao-component');
31014
- this._init();
31015
- this.initialized = true;
31016
- }
31017
- this.connected = true;
31018
- return this._connect();
31091
+ ComponentClass.attribute('taoId');
31092
+
31093
+ function ComponentClass() {
31094
+ superClass.apply(this, arguments);
31095
+ this._created();
31096
+ }
31097
+
31098
+ ComponentClass.prototype.connectedCallback = function() {
31099
+ return $((function(_this) {
31100
+ return function() {
31101
+ if (!_this.initialized) {
31102
+ _this.taoId = ++count;
31103
+ _this._init();
31104
+ _this.initialized = true;
31105
+ }
31106
+ _this.connected = true;
31107
+ return _this._connected();
31108
+ };
31109
+ })(this));
31019
31110
  };
31020
31111
 
31021
- _Class.prototype.disconnectedCallback = function() {
31022
- this.connected = false;
31023
- return this._disconnect();
31112
+ ComponentClass.prototype.disconnectedCallback = function() {
31113
+ return $((function(_this) {
31114
+ return function() {
31115
+ _this.connected = false;
31116
+ return _this._disconnected();
31117
+ };
31118
+ })(this));
31024
31119
  };
31025
31120
 
31026
- _Class.prototype.attributeChangedCallback = function(attrName) {
31121
+ ComponentClass.prototype.attributeChangedCallback = function(name) {
31122
+ return this._attributeChanged(name);
31123
+ };
31124
+
31125
+ ComponentClass.prototype._created = function() {};
31126
+
31127
+ ComponentClass.prototype._init = function() {};
31128
+
31129
+ ComponentClass.prototype._connected = function() {};
31130
+
31131
+ ComponentClass.prototype._disconnected = function() {};
31132
+
31133
+ ComponentClass.prototype._attributeChanged = function(name) {
31027
31134
  var name1;
31028
- return typeof this[name1 = "_" + (_.camelCase(attrName)) + "Changed"] === "function" ? this[name1]() : void 0;
31135
+ return typeof this[name1 = "_" + (_.camelCase(name)) + "Changed"] === "function" ? this[name1]() : void 0;
31029
31136
  };
31030
31137
 
31031
- _Class.prototype.on = function() {
31138
+ ComponentClass.prototype.beforeCache = function() {};
31139
+
31140
+ ComponentClass.prototype.on = function() {
31032
31141
  var args, ref;
31033
31142
  args = 1 <= arguments.length ? slice.call(arguments, 0) : [];
31034
31143
  return (ref = this.jq).on.apply(ref, args);
31035
31144
  };
31036
31145
 
31037
- _Class.prototype.off = function() {
31146
+ ComponentClass.prototype.off = function() {
31038
31147
  var args, ref;
31039
31148
  args = 1 <= arguments.length ? slice.call(arguments, 0) : [];
31040
31149
  return (ref = this.jq).off.apply(ref, args);
31041
31150
  };
31042
31151
 
31043
- _Class.prototype.trigger = function() {
31152
+ ComponentClass.prototype.trigger = function() {
31044
31153
  var args, ref;
31045
31154
  args = 1 <= arguments.length ? slice.call(arguments, 0) : [];
31046
31155
  return (ref = this.jq).triggerHandler.apply(ref, args);
31047
31156
  };
31048
31157
 
31049
- _Class.prototype.one = function() {
31158
+ ComponentClass.prototype.one = function() {
31050
31159
  var args, ref;
31051
31160
  args = 1 <= arguments.length ? slice.call(arguments, 0) : [];
31052
31161
  return (ref = this.jq).one.apply(ref, args);
31053
31162
  };
31054
31163
 
31055
- _Class.prototype._init = function() {};
31056
-
31057
- _Class.prototype._connect = function() {};
31058
-
31059
- _Class.prototype._disconnect = function() {};
31060
-
31061
- _Class.prototype.prepareCache = function() {};
31062
-
31063
- return _Class;
31164
+ return ComponentClass;
31064
31165
 
31065
- })(window[superClass]);
31166
+ })();
31167
+ return components[superClassName] = ComponentClass;
31066
31168
  };
31067
31169
 
31068
31170
  window.TaoComponentBasedOn = TaoComponentBasedOn;
@@ -31084,11 +31186,11 @@ var Deferred = void 0;
31084
31186
 
31085
31187
  TaoPage.attribute('layout');
31086
31188
 
31087
- TaoPage.prototype.prepareCache = function() {
31088
- return $(this).find('.tao-component').each((function(_this) {
31189
+ TaoPage.prototype.beforeCache = function() {
31190
+ return this.jp.find('[tao-id]').each((function(_this) {
31089
31191
  return function(i, el) {
31090
- if (typeof el.prepareCache === "function") {
31091
- el.prepareCache();
31192
+ if (typeof el.beforeCache === "function") {
31193
+ el.beforeCache();
31092
31194
  }
31093
31195
  return null;
31094
31196
  };