{"version":3,"file":"el-controls.mjs","sources":["../src/utils/patches.coffee","../src/events.coffee","../src/utils/valueOrCall.coffee","../src/controls/control.coffee","../src/controls/checkbox.coffee","../src/utils/placeholder.coffee","../src/controls/text.coffee","../src/controls/readonly.coffee","../src/controls/copy.coffee","../src/controls/selection.coffee","../src/controls/country-select.coffee","../src/controls/currency.coffee","../src/$.coffee","../src/controls/dropdown.coffee","../src/controls/qrcode.coffee","../src/controls/recaptcha.coffee","../src/controls/state-select.coffee","../src/controls/textbox.coffee","../src/controls/gmap.coffee"],"sourcesContent":["import Promise from 'broken'\nimport {raf}   from 'es-raf'\n\n# Shims/Polyfills\nwindow.Promise               ?= Promise\nwindow.requestAnimationFrame ?= raf\nwindow.cancelAnimationFrame  ?= raf.cancel\n","export default Events =\n  Change:\n    'change'\n  ChangeSuccess:\n    'change-success'\n  ChangeFailed:\n    'change-failed'\n","export default valueOrCall = (valueOrFunc)->\n  if typeof valueOrFunc == 'function'\n    return valueOrFunc()\n\n  return valueOrFunc\n","import El     from 'el.js/src'\nimport Events from  '../events'\n\nimport valueOrCall from '../utils/valueOrCall'\nimport { Tween, Easing, autoPlay } from 'es6-tween/src/index'\n\nscrolling = false\n\n_controlId = 0\n\nexport default class Control extends El.Input\n  _controlId: 0\n\n  # scrollToError: false\n\n  name: null\n\n  init: ->\n    super arguments...\n    @_controlId = _controlId++\n\n  getId: () ->\n    return @tag + '-' + @_controlId\n\n  getName: () ->\n    return valueOrCall(@name) ? @input.name.replace /\\\\./g, '-'\n\n  getValue: (event) ->\n    return event.target.value?.trim()\n\n  error: (err) ->\n    if err instanceof DOMException\n      console.log 'WARNING: Error in riot dom manipulation ignored:', err\n      return\n\n    super arguments...\n\n    rect = @root.getBoundingClientRect()\n    elTop = rect.top - window.innerHeight / 2\n    wTop = window.pageYOffset\n\n    if @scrollToError && !scrolling && elTop <= wTop\n      scrolling = true\n\n      autoPlay true\n\n      t = new Tween { x: wTop }\n        .to { x: wTop + elTop }, 500, Easing.Cubic\n        .on 'update', ({ x })->\n          window.scrollTo window.pageXOffset, x\n        .on 'complete', ->\n          scrolling = false\n          autoPlay false\n        .start()\n\n    @mediator.trigger Events.ChangeFailed, @input.name, @input.ref.get @input.name\n\n  change: ->\n    super arguments...\n    @mediator.trigger Events.Change, @input.name, @input.ref.get @input.name\n\n  changed: (value) ->\n    @mediator.trigger Events.ChangeSuccess, @input.name, value\n    El.scheduleUpdate()\n\n  value: ->\n    return @input.ref @input.name\n","import Control from './control'\n\nimport html from '../../templates/controls/checkbox'\n\nexport default class CheckBox extends Control\n  tag: 'checkbox'\n  html: html\n\n  getValue: (event)->\n    return event.target.checked\n\nCheckBox.register()\n\n","# contains parts of Input Placeholder Polyfill\n# MIT Licensed\n# Created by Christopher Rolfe\n\n#\n# When the input value is the same as the placeholder clear it\n#\nhidePlaceholderOnFocus = (event) ->\n  target = if event.currentTarget then event.currentTarget else event.srcElement\n\n  if  target.value == target.getAttribute 'placeholder'\n    target.value = ''\n\n#\n# When the input has an empty value put the placeholder back in\n#\nunfocusOnAnElement = (event) ->\n  target = if event.currentTarget then event.currentTarget else event.srcElement\n\n  if target.value == ''\n    target.value = target.getAttribute 'placeholder'\n\nexports = ()->\n\nif !document.createElement(\"input\").placeholder?\n  exports = (input)->\n    #jquery case\n    input = input[0] ? input\n\n    if input._placeholdered?\n      return\n\n    Object.defineProperty input, '_placeholdered',\n      value: true\n      writable: true\n\n    # Loop over them\n    # If they don't have a preset value\n    if !input.value\n      input.value = input.getAttribute 'placeholder'\n\n    # Attach event listeners for click and blur\n    # Click so that we can clear the placeholder if we need to\n    # Blur to re-add it if needed\n    if input.addEventListener\n      input.addEventListener 'click', hidePlaceholderOnFocus, false\n      input.addEventListener 'blur', unfocusOnAnElement, false\n    else if input.attachEvent\n      input.attachEvent 'onclick', hidePlaceholderOnFocus\n      input.attachEvent 'onblur', unfocusOnAnElement\n\nexport default exports\n","import Control from './control'\nimport placeholder from '../utils/placeholder'\n\nimport html from '../../templates/controls/text'\n\nexport default class Text extends Control\n  tag:          'text'\n  html:         html\n  type:         'text'\n  formElement:  'input'\n\n  autocomplete: 'on'\n  autofocus:    false\n  disabled:     false\n  maxlength:    null\n  readonly:     false\n  placeholder:  null\n  label:        ''\n  instructions: null\n\n  init: ->\n    super arguments...\n\n    @on 'mounted', =>\n      el = @root.getElementsByTagName(@formElement)[0]\n\n      if @type != 'password'\n        placeholder el\n\n  getText: ->\n    return '' if !@input?\n    return @input.ref.get @input.name\n\nText.register()\n","import Text from './text'\n\nimport valueOrCall from '../utils/valueOrCall'\n\nexport default class ReadOnly extends Text\n  tag: 'readonly'\n  readonly:     true\n\n  # pass this in optionally to overwrite a specific value\n  text: ''\n\n  init: ->\n    if !@text\n      super arguments...\n\n  getText: ->\n    return valueOrCall(@text) || @input?.ref.get(@input.name) || ''\n\n  # readonly\n  change:  ->\n  _change: ->\n  getName: ->\n\nReadOnly.register()\n","import ReadOnly from './readonly'\nimport html from '../../templates/controls/copy'\n\nimport valueOrCall from '../utils/valueOrCall'\n\nexport default class Copy extends ReadOnly\n  tag: 'copy'\n  html: html\n\n  # pass this in optionally to overwrite a specific value\n  text: ''\n\n  # this is set automatically\n  copied: false\n\n  init: ->\n    super arguments...\n\n  copy: (e)->\n    text = @getText()\n\n    textArea = document.createElement \"textarea\"\n    textArea.contentEditable = true\n    textArea.readOnly = false\n    textArea.style.position = 'fixed'\n    textArea.style.top = 0\n    textArea.style.left = 0\n    textArea.style.width = '2em'\n    textArea.style.height = '2em'\n    textArea.style.padding = 0\n    textArea.style.border = 'none'\n    textArea.style.outline = 'none'\n    textArea.style.boxShadow = 'none'\n    textArea.style.background = 'transparent'\n    textArea.value = text\n    document.body.appendChild textArea\n    textArea.select()\n\n    try\n      range = document.createRange()\n      s = window.getSelection()\n      s.removeAllRanges()\n      s.addRange(range)\n      textArea.setSelectionRange(0, 999999)\n\n      successful = document.execCommand 'copy'\n      msg = successful ? 'successful' : 'unsuccessful'\n      console.log 'Copying text command was ' + msg\n    catch err\n      console.log 'Oops, unable to copy'\n\n    document.body.removeChild textArea\n\n    @copied = true\n\n    @scheduleUpdate()\n    return false\n\nCopy.register()\n","import Control from './control'\n\nimport html from '../../templates/controls/selection'\n\nexport default class Select extends Control\n  tag: 'selection'\n  html: html\n\n  placeholder: 'Select an Option'\n  autofocus:    false\n  disabled:     false\n  multiple:     false\n  size:         null\n\n  # default to something that will be visible\n  _optionsHash: 'default'\n  selectOptions: {}\n\n  hasOptions: ->\n    # call for side effects\n    @options()\n    return @_optionsHash.length > 2\n\n  options: ->\n    selectOptions = @selectOptions\n    if typeof selectOptions == 'function'\n      selectOptions = selectOptions()\n\n    optionsHash = JSON.stringify selectOptions\n\n    if @_optionsHash != optionsHash\n      @_optionsHash = optionsHash\n\n    return selectOptions\n\n  getValue: (e)->\n    el = e.target\n    return (el.options?[el.selectedIndex]?.value ? '').trim()\n\n  init: ->\n    super arguments...\n\nSelect.register()\n\n","import Select from './selection'\n\nexport default class CountrySelect extends Select\n  tag: 'country-select'\n\n  # set up the countries in selectedOptions\n  # countries should be in the form of\n  # [{\n  #     code: 'XX',\n  #     name: 'Country Name',\n  #     subdivisions: [{\n  #         code: 'YY',\n  #         name: 'Subdivision Name',\n  #     }]\n  # }]\n\n  options: ->\n    countries = @countries ? @data?.get('countries') ? @parent?.data?.get('countries') ? []\n\n    optionsHash = JSON.stringify countries\n\n    if @_optionsHash == optionsHash\n      return @selectOptions\n\n    countries = countries.slice 0\n\n    @_optionsHash = optionsHash\n\n    @selectOptions = options = {}\n\n    countries.sort (a, b)->\n      nameA = a.name.toUpperCase()\n      nameB = b.name.toUpperCase()\n      return -1 if nameA < nameB\n      return 1 if nameA > nameB\n      return 0\n\n    for country in countries\n      options[country.code.toUpperCase()] = country.name\n\n    return options\n\n  init: ->\n    super arguments...\n\nCountrySelect.register()\n","import Text from './text'\nimport valueOrCall from '../utils/valueOrCall'\n\nimport html from '../../templates/controls/currency'\n\nimport {\n  renderUICurrencyFromJSON\n  renderJSONCurrencyFromUI\n} from 'shop.js-util/src/currency'\n\nexport default class Currency extends Text\n  tag:          'currency'\n  html:         html\n  currency:     ''\n\n  init: ->\n    super arguments...\n\n  getCurrency: (e)->\n    return valueOrCall @currency\n\n  renderValue: ->\n    renderUICurrencyFromJSON @getCurrency(), @input.ref.get(@input.name)\n\n  getValue: (e)->\n    el = e.target\n    return renderJSONCurrencyFromUI @getCurrency(), (el.value ? '0').trim()\n\nCurrency.register()\n","# Use zepto if there's no jquery involved so we can run without it.\n# Use jquery or something else if you need better compatibility.\nimport zepto from 'zepto-modules/zepto'\nimport 'zepto-modules/event'\nimport 'zepto-modules/ie'\nimport 'zepto-modules/stack'\nimport 'zepto-modules/selector'\n\n$ = zepto\n\nif !window.$?\n  # add in outer support from https://gist.github.com/pamelafox/1379704\n  ['width', 'height'].forEach (dimension)->\n    Dimension = dimension.replace /./, (m)-> return m[0].toUpperCase()\n    $.fn['outer' + Dimension] = (margin)->\n      elem = this\n      if elem\n        size = elem[dimension]()\n        sides =\n          width: ['left', 'right']\n          height: ['top', 'bottom']\n        sides[dimension].forEach (side)->\n          if margin\n            size += parseInt elem.css('margin-' + side), 10\n        return size\n      else\n        return null\n\n  window.$ = $\nelse\n  # Use whichever $\n  $ = window.$\n\nexport default $\n\n","import $         from '../$'\nimport selectize from 'es-selectize'\nimport {raf}     from 'es-raf'\n\nimport Text from './text'\nimport html from '../../templates/controls/dropdown'\n\nisABrokenBrowser = (window.navigator.userAgent.indexOf('MSIE') > 0 || window.navigator.userAgent.indexOf('Trident') > 0)\n\ncoolDown = -1\n\nexport default class Select extends Text\n  tag: 'dropdown'\n  html: html\n\n  selectOptions: {}\n\n  options: ->\n    return @selectOptions\n\n  readOnly: false\n  ignore: false\n\n  events:\n    updated: ->\n      @onUpdated()\n    mount: ->\n      @onUpdated()\n\n  getValue: (event)->\n    return $(event.target).val()?.trim().toLowerCase()\n\n  initSelect: ($select)->\n    options = []\n    invertedOptions = {}\n    for value, name of @options()\n      options.push\n        text: name\n        value: value\n\n      invertedOptions[name] = value\n\n    selectize $select,\n      dropdownParent: 'body'\n      # valueField: 'value'\n      # labelField: 'text'\n      # searchField: 'text'\n    .on 'change', (event) =>\n      # This isn't working right, sometimes you have one change firing events on unrelated fields\n      if coolDown != -1\n        return\n\n      coolDown = setTimeout ->\n        coolDown = -1\n      , 100\n\n      @change event\n      event.preventDefault()\n      event.stopPropagation()\n      false\n\n    select = $select[0]\n    select.selectize.addOption options\n    select.selectize.addItem [@input.ref.get(@input.name)] || [], true\n    select.selectize.refreshOptions false\n\n    #support auto fill\n    $input = $select.parent().find('.selectize-input input:first')\n    $input.on 'change', (event) ->\n      val = $(event.target).val()\n      if invertedOptions[val]?\n        $select[0].selectize.setValue(invertedOptions[val])\n\n    #support read only\n    if @readOnly\n      $input.attr('readonly', true)\n\n  init:(opts)->\n    super arguments...\n\n    @style = @style || 'width:100%'\n\n  onUpdated: ->\n    if !@input?\n      return\n\n    $select = $(@root).find('select')\n    select = $select[0]\n    if select?\n      v = @input.ref.get @input.name\n      if !@initialized\n        raf =>\n          @initSelect $select\n          @initialized = true\n      else if select.selectize? && v != select.selectize.getValue()\n        select.selectize.clear true\n        select.selectize.addItem v, true\n    else\n      $control = $(@root).find('.selectize-control')\n      if !$control[0]?\n        raf =>\n          @scheduleUpdate()\n\n    # @on 'unmount', ()=>\n    #   $select = $(@root).find('select')\n\nSelect.register()\n\n","import {toCanvas} from 'qrcode-lite'\n\nimport ReadOnly from './readonly'\nimport html from '../../templates/controls/qrcode'\nimport valueOrCall from '../utils/valueOrCall'\n\nexport default class QRCode extends ReadOnly\n  tag: 'qrcode'\n  html: html\n\n  # pass this in optionally to overwrite a specific value\n  text: ''\n\n  # version '1' to '40', undefined for automatic detection (default)\n  version: undefined\n\n  # level of error correction\n  # 'L' = 7%\n  # 'M' = 15% (default)\n  # 'Q' = 25%\n  # 'H' = 35%\n  # 'S' = 50% (unsupported)\n  errorCorrectionLevel: 'M'\n\n  # scale of a module\n  scale: 4\n\n  # margin of white area around qr code in pixels\n  margin: 4\n\n  events:\n    updated: ->\n      @onUpdated()\n    mount: ->\n      @onUpdated()\n\n  init: ->\n    super arguments...\n\n  onUpdated: ->\n    canvas = @root.children[0]\n    toCanvas canvas, @getText(),\n      version: parseInt @version, 10\n      errorCorrectionLevel: @errorCorrectionLevel\n      scale: parseInt @scale, 10\n      margin: parseInt @margin, 10\n    .catch (err)  ->\n        console.error err\n\nQRCode.register()\n","import El from 'el.js/src'\n\n# requires <script src='//www.google.com/recaptcha/api.js?render=explicit'/>\nexport default class ReCaptcha extends El.View\n  tag:  'recaptcha'\n  html: ''\n\n  # sitekey from recaptcha\n  # sitekey: null\n\n  # theme ('dark'/'light')\n  theme: 'light'\n\n  init: ->\n    if !@sitekey\n      console.error 'recaptcha: no sitekey found'\n      return\n\n    tryRecaptcha = =>\n      requestAnimationFrame =>\n        try\n          grecaptcha.render @root,\n            sitekey: @sitekey\n            theme:   @theme\n            callback: (res) =>\n              @data.set 'user.g-recaptcha-response', res\n        catch e\n          tryRecaptcha()\n\n    tryRecaptcha()\n\nReCaptcha.register()\n","import Select from './selection'\n\nexport default class StateSelect extends Select\n  tag: 'state-select'\n\n  options: ->\n    countries = @countries ? @data?.get('countries') ? @parent?.data?.get('countries') ? []\n\n    code = @getCountry()\n\n    # code is a 2 character alpha code\n    if !code || code.length != 2\n      @_optionsHash = ''\n      return\n\n    code = code.toUpperCase()\n\n    found = false\n\n    for country in countries\n      if country.code.toUpperCase() == code\n        found = true\n        subdivisions = country.subdivisions\n\n        optionsHash = JSON.stringify subdivisions\n\n        if @_optionsHash == optionsHash\n          return @selectOptions\n\n        subdivisions = subdivisions.slice 0\n\n        @_optionsHash = optionsHash\n\n        @selectOptions = options = {}\n\n        subdivisions.sort (a, b)->\n          nameA = a.name.toUpperCase()\n          nameB = b.name.toUpperCase()\n          return -1 if nameA < nameB\n          return 1 if nameA > nameB\n          return 0\n\n        for subdivision in subdivisions\n          options[subdivision.code.toUpperCase()] = subdivision.name\n        break\n\n    if !found\n      @_optionsHash = ''\n\n    return options\n\n  getCountry: ->\n    return ''\n\n  init: ->\n    super arguments...\n\nStateSelect.register()\n","import Text from './text'\nimport html from '../../templates/controls/textarea'\n\nclass TextBox extends Text\n  tag:         'textbox'\n  html:         html\n  formElement: 'textarea'\n\n  rows: null\n  cols: null\n  disabled: false\n  maxlength: null\n  readonly: false\n  wrap: null\n\nTextBox.register()\n\nexport default TextBox\n","import Control from './control'\nimport GMaps from 'gmaps'\n\nimport html from '../../templates/controls/gmap'\n\nimport valueOrCall from '../utils/valueOrCall'\n\ngeocode = (address)->\n  return new Promise (resolve, reject) ->\n    GMaps.geocode\n      address: address\n      callback: (results, status) =>\n        if status != 'OK'\n          reject status\n          return\n\n        resolve results\n\nexport default class GMap extends Control\n  tag: 'gmap'\n  html: html\n\n  # pass this in optionally to overwrite a specific value\n  address: ''\n\n  # we cache address to prevent unnecessary reloads\n  previousAddress: ''\n\n  # gmaps map\n  # map: null\n\n  # latlng cache\n  # latlng: null\n\n  errorMessage: ''\n\n  mapTypeId: 'roadmap'\n\n  init: () ->\n    if !@address\n      super arguments...\n\n    resize = =>\n      @resize()\n\n    @on 'mount', =>\n      settings =\n        div: @root.getElementsByClassName('map')[0]\n        lat: 21.3280681\n        lng: -157.798970564\n        zoom: 10\n        disableDefaultUI: true\n        draggable: false\n        zoomControl: false\n        scrollwheel: false\n        disableDoubleClickZoom: true\n        mapTypeId: @mapTypeId\n\n      @map = new GMaps settings\n\n      window.addEventListener 'resize', resize\n\n      @scheduleUpdate()\n\n    @on 'updated', =>\n      add = @getAddress()\n      if add != @previousAddress\n        @previousAddress = add\n        geocode(add).then (results) =>\n          @latlng = latlng = results[0].geometry.location\n          @map.removeMarkers()\n          @map.addMarker\n            lat: latlng.lat()\n            lng: latlng.lng()\n\n          resize()\n\n        .catch (err) =>\n          @errorMessage = 'Error: ' + err\n\n    @on 'unmount', =>\n      window.removeEventListener 'resize', resize\n\n  getAddress: ->\n    return (valueOrCall(@address) || @input.ref.get(input.name)).trim()\n\n  resize: ->\n    if !@map\n      return\n\n    @map.refresh()\n\n    if @latlng\n      @map.setCenter @latlng.lat(), @latlng.lng()\n\n  # readonly\n  change:  ->\n  _change: ->\n  getName: ->\n\nGMap.register()\n"],"names":["Promise","Events","extend","Control","exports","html","valueOrCall","Text","ReadOnly","Select","$"],"mappings":"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"}