File: /var/www/html/sarvodayahospital/node_modules/turbolinks/src/turbolinks/snapshot.coffee
#= require ./head_details
class Turbolinks.Snapshot
@wrap: (value) ->
if value instanceof this
value
else if typeof value == "string"
@fromHTMLString(value)
else
@fromHTMLElement(value)
@fromHTMLString: (html) ->
htmlElement = document.createElement("html")
htmlElement.innerHTML = html
@fromHTMLElement(htmlElement)
@fromHTMLElement: (htmlElement) ->
headElement = htmlElement.querySelector("head")
bodyElement = htmlElement.querySelector("body") ? document.createElement("body")
headDetails = Turbolinks.HeadDetails.fromHeadElement(headElement)
new this headDetails, bodyElement
constructor: (@headDetails, @bodyElement) ->
clone: ->
new @constructor @headDetails, @bodyElement.cloneNode(true)
getRootLocation: ->
root = @getSetting("root") ? "/"
new Turbolinks.Location root
getCacheControlValue: ->
@getSetting("cache-control")
getElementForAnchor: (anchor) ->
try @bodyElement.querySelector("[id='#{anchor}'], a[name='#{anchor}']")
getPermanentElements: ->
@bodyElement.querySelectorAll("[id][data-turbolinks-permanent]")
getPermanentElementById: (id) ->
@bodyElement.querySelector("##{id}[data-turbolinks-permanent]")
getPermanentElementsPresentInSnapshot: (snapshot) ->
element for element in @getPermanentElements() when snapshot.getPermanentElementById(element.id)
findFirstAutofocusableElement: ->
@bodyElement.querySelector("[autofocus]")
hasAnchor: (anchor) ->
@getElementForAnchor(anchor)?
isPreviewable: ->
@getCacheControlValue() isnt "no-preview"
isCacheable: ->
@getCacheControlValue() isnt "no-cache"
isVisitable: ->
@getSetting("visit-control") isnt "reload"
# Private
getSetting: (name) ->
@headDetails.getMetaValue("turbolinks-#{name}")