{"version":3,"sources":["nodes-input.sf.css","nodes/Input/UI/Button.sf","nodes/Input/UI/File.sf","nodes/Input/UI/SliderBox.sf","nodes/Input/UI/TextBox.sf"],"names":[],"mappings":"AAEA,4B,CCkBE,mB,CACE,wC,CACA,W,CACA,uB,CACA,W,CACA,wB,CACA,wB,CACA,a,CACA,wB,CACA,oB,CACA,c,CACA,oB,CACA,kB,CACA,sB,CACA,e,CACA,iB,CACA,c,CDfJ,8B,CCiBI,iB,CDdJ,kC,CCiBI,wC,CDdJ,8B,CELI,sB,CACA,W,CACA,e,CACA,e,CACA,oB,CACA,Y,CACA,U,CACA,wB,CFSJ,wB,CENE,S,CACE,S,CACA,U,CFUJ,gB,CGlBE,yB,CHuBF,2C,CAAA,2C,CGnBE,uB,CAEE,Q,CHqBJ,sB,CGjBE,S,CHqBF,wB,CGhBA,oB,CACE,wB,CHmBF,8B,CGjBE,e,CACE,kB,CACA,U,CACA,Q,CACA,iB,CACA,kB,CHoBJ,8B,CIlDC,W","file":"nodes-input.sf.css","sourcesContent":["/* Blackprint \n MIT Licensed */\nbpic-input-ui-button .button {\n  display: inline-flex;\n  background: rgba(255, 255, 255, 0.1098039216);\n  height: 30px;\n  box-shadow: 0 0 8px white;\n  width: 100px;\n  border: 2px solid #BFC0C0;\n  margin: 5px 5px 10px 10px;\n  color: #BFC0C0;\n  text-transform: uppercase;\n  text-decoration: none;\n  font-size: 14px;\n  letter-spacing: 1.5px;\n  align-items: center;\n  justify-content: center;\n  overflow: hidden;\n  position: relative;\n  cursor: pointer;\n}\nbpic-input-ui-button .button a {\n  position: relative;\n}\nbpic-input-ui-button .button:hover {\n  background: rgba(255, 255, 255, 0.2352941176);\n}\nbpic-input-ui-file .file-place {\n  margin: 5px;\n  border: 1px dashed white;\n  width: 120px;\n  max-height: 20px;\n  overflow: hidden;\n  word-break: break-all;\n  display: flex;\n  float: left;\n  margin-right: -20px;\n}\nbpic-input-ui-file input {\n  opacity: 0;\n  width: 1px;\n  height: 1px;\n}\n\n.input-no-native {\n  /* Firefox */\n  -moz-appearance: textfield;\n  /* Chrome, Safari, Edge, Opera */\n}\n.input-no-native::-webkit-outer-spin-button, .input-no-native::-webkit-inner-spin-button {\n  -webkit-appearance: none;\n  margin: 0;\n}\n.input-no-native:focus {\n  outline: none;\n}\n\n.scrollable-number-input {\n  display: inline-block;\n  margin: 2px -10px 5px 5px;\n}\n.scrollable-number-input input {\n  cursor: w-resize;\n  background: #313131;\n  color: white;\n  border: none;\n  text-align: center;\n  border-radius: 10px;\n}\nbpic-input-ui-textbox textarea {\n  width: 100px;\n}\n\n/*# sourceMappingURL=nodes-input.sf.css.map */","## html\n<div class=\"node event\" style=\"transform: translate({{ x }}px, {{ y }}px)\">\n  <sf-template path=\"Blackprint/nodes/template/header.sf\"></sf-template>\n\n  <div class=\"content\">\n    <div class=\"button\" @click=\"clicked(event)\">\n      <a>Trigger</a>\n    </div>\n\n    <div class=\"right-port\">\n      <sf-template path=\"Blackprint/nodes/template/output-port.sf\"></sf-template>\n    </div>\n  </div>\n\n  <sf-template path=\"Blackprint/nodes/template/other.sf\"></sf-template>\n</div>\n\n## scss-global\nbpic-input-ui-button{\n  .button {\n    display: inline-flex;\n    background: #ffffff1c;\n    height: 30px;\n    box-shadow: 0 0 8px white;\n    width: 100px;\n    border: 2px solid #BFC0C0;\n    margin: 5px 5px 10px 10px;\n    color: #BFC0C0;\n    text-transform: uppercase;\n    text-decoration: none;\n    font-size: 14px;\n    letter-spacing: 1.5px;\n    align-items: center;\n    justify-content: center;\n    overflow: hidden;\n    position: relative;\n    cursor: pointer;\n    a {\n      position: relative;\n    }\n    &:hover {\n      background: #ffffff3c;\n    }\n  }\n}\n\n## js-global\nBlackprint.Sketch.registerInterface('BPIC/Input/UI/Button', Context.IFace.Button);","## html\n<div class=\"node input\" style=\"transform: translate({{ x }}px, {{ y }}px)\">\n  <sf-template path=\"Blackprint/nodes/template/routes.sf\"></sf-template>\n  <sf-template path=\"Blackprint/nodes/template/header.sf\"></sf-template>\n\n  <div class=\"content\">\n  \t<div class=\"file-place\" @click=\"browseFile(event)\" @filedrop=\"dropFile\">\n  \t\t{{ name || 'Drop file here'}}\n  \t</div>\n\n    <div class=\"right-port\">\n      <sf-template path=\"Blackprint/nodes/template/output-port.sf\"></sf-template>\n    </div>\n  </div>\n\n  <sf-template path=\"Blackprint/nodes/template/other.sf\"></sf-template>\n</div>\n\n## scss-global\nbpic-input-ui-file {\n  .file-place{\n    margin: 5px;\n    border: 1px dashed white;\n    width: 120px;\n    max-height: 20px;\n    overflow: hidden;\n    word-break: break-all;\n    display: flex;\n    float: left;\n    margin-right: -20px;\n  }\n  input{\n    opacity: 0;\n    width: 1px;\n    height: 1px;\n  }\n}\n\n## js-global\nBlackprint.Sketch.registerInterface('BPIC/Input/UI/File',\nclass FileIFace extends Context.IFace.File {\n  constructor(node){\n    super(node);\n\n    let that = this;\n    this.dropFile = function(file){\n      file = file[0];\n\n      // Fix for multiple window\n      if(file.constructor !== File)\n        Object.setPrototypeOf(file, File.prototype);\n\n      that.setFile(file);\n    }\n  }\n});","## html\n<div class=\"node input\" style=\"transform: translate({{ x }}px, {{ y }}px)\">\n  <sf-template path=\"Blackprint/nodes/template/routes.sf\"></sf-template>\n  <sf-template path=\"Blackprint/nodes/template/header-small.sf\"></sf-template>\n\n  <div class=\"content header-small\">\n    <div class=\"scrollable-number-input\">\n      <div sf-each=\"key, val in data\">\n        <input type=\"number\" class=\"input-no-native\"\n          sf-bind=\"val.value\"\n          step=\"{{val.step}}\" max=\"{{val.max}}\" min=\"{{val.min}}\"\n          @pointerdown.prevent.stop=\"dragMove(event, val)\"\n          @mousewheel.prevent.stop=\"mouseWheel(event, val)\">\n      </div>\n    </div>\n    <div class=\"right-port\" style=\"margin-top:3px\">\n      <sf-template path=\"Blackprint/nodes/template/output-port.sf\"></sf-template>\n    </div>\n  </div>\n\n  <sf-template path=\"Blackprint/nodes/template/other.sf\"></sf-template>\n</div>\n\n## scss-global\n.input-no-native{\n  /* Firefox */\n  -moz-appearance: textfield;\n\n  /* Chrome, Safari, Edge, Opera */\n  &::-webkit-outer-spin-button,\n  &::-webkit-inner-spin-button {\n    -webkit-appearance: none;\n    margin: 0;\n  }\n\n  &:focus{\n      outline: none;\n  }\n}\n\n.scrollable-number-input{\n  display: inline-block;\n  margin: 2px -10px 5px 5px;\n  input{\n    cursor: w-resize;\n    background: #313131;\n    color: white;\n    border: none;\n    text-align: center;\n    border-radius: 10px;\n  }\n}\n\n## js-global\nBlackprint.Sketch.registerInterface('BPIC/Input/UI/SliderBox',\nclass SliderBoxIFace extends Context.IFace.SliderBoxIFace {\n  dragMove(ev, item){\n    this.focusIndex = this.data.indexOf(item);\n\n    function onMove(ev){\n      item.value += item.step * ev.movementX;\n    }\n\n    var that = this;\n    var doc = $(ev.view.document);\n\n    doc.on('pointermove', onMove).once('pointerup', {capture:true}, function(ev2){\n      doc.off('pointermove', onMove);\n\n      if(ev2.timeStamp - ev.timeStamp < 100)\n        $('input', that.data.getElements(item)).focus();\n    });\n  }\n\n  mouseWheel(ev, item){\n    this.focusIndex = this.data.indexOf(item);\n    item.value -= item.step * Math.sign(ev.deltaY);\n  }\n});","## html\n<div class=\"node input\" style=\"transform: translate({{ x }}px, {{ y }}px)\">\n  <sf-template path=\"Blackprint/nodes/template/routes.sf\"></sf-template>\n  <sf-template path=\"Blackprint/nodes/template/header.sf\"></sf-template>\n\n  <div class=\"content\">\n    <textarea sf-bind=\"data.value\"></textarea>\n\n    <div class=\"right-port\">\n      <sf-template path=\"Blackprint/nodes/template/output-port.sf\"></sf-template>\n    </div>\n  </div>\n\n  <sf-template path=\"Blackprint/nodes/template/other.sf\"></sf-template>\n</div>\n\n## scss-global\nbpic-input-ui-textbox{\n\ttextarea{\n\t\twidth: 100px;\n\t}\n}\n\n## js-global\nBlackprint.Sketch.registerInterface('BPIC/Input/UI/TextBox',\nclass InputIFace extends Context.IFace.Input {\n\tconstructor(node){\n\t\tsuper(node);\n\n\t\tlet iface = this;\n\t\tlet waitRepaint = false;\n\n\t\t// Auto scale the width/height of the textarea\n\t\tiface.data.on$value = function(now){\n\t\t\tif(waitRepaint) return;\n\n\t\t\twaitRepaint = true;\n\t\t\t$.afterRepaint().then(function(){\n\t\t\t\twaitRepaint = false;\n\n\t\t\t\t// Scale the input box depend on character length\n\t\t\t\tvar el = iface.$el('textarea');\n\n\t\t\t\t// Skip if textarea was larger than our auto control\n\t\t\t\t// I mean, if user have change the size manually\n\t\t\t\tif(el[0].offsetWidth > 150 || el[0].offsetHeight > 60)\n\t\t\t\t\treturn;\n\n\t\t\t\tif(now.length < 8)\n\t\t\t\t\tel.attr('style', '');\n\t\t\t\telse if(now.length >= 8 && now.length < 14)\n\t\t\t\t\tel.attr('style', 'width:'+(10*now.length)+'px');\n\t\t\t\telse if(now.length >= 14)\n\t\t\t\t\tel.attr('style', 'width:140px;height:50px');\n\n\t\t\t\t// Let editor know if this iface changed and unsaved\n\t\t\t\tnode.notifyEditorDataChanged();\n\t\t\t});\n\t\t}\n\t}\n});"]}