Dash

 view release on metacpan or  search on metacpan

share/assets/dash_renderer/dash_renderer.dev.js  view on Meta::CPAN

  var addCSS = _ref.addCSS,
      config = _ref.config,
      style = _ref.style;

  var newStyle = Object.keys(style).reduce(function (newStyleInProgress, key) {
    var value = style[key];
    if (key === 'animationName' && value && value.__radiumKeyframes) {
      var keyframesValue = value;

      var _keyframesValue$__pro = keyframesValue.__process(config.userAgent),
          animationName = _keyframesValue$__pro.animationName,
          css = _keyframesValue$__pro.css;

      addCSS(css);
      value = animationName;
    }

    newStyleInProgress[key] = value;
    return newStyleInProgress;
  }, {});
  return { style: newStyle };
}

/***/ }),

/***/ "./node_modules/radium/es/plugins/merge-style-array-plugin.js":
/*!********************************************************************!*\
  !*** ./node_modules/radium/es/plugins/merge-style-array-plugin.js ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);


// Convenient syntax for multiple styles: `style={[style1, style2, etc]}`
// Ignores non-objects, so you can do `this.state.isCool && styles.cool`.
var mergeStyleArrayPlugin = function mergeStyleArrayPlugin(_ref) {
  var style = _ref.style,
      mergeStyles = _ref.mergeStyles;

  // eslint-disable-line no-shadow
  var newStyle = Array.isArray(style) ? mergeStyles(style) : style;
  return { style: newStyle };
};

/* harmony default export */ __webpack_exports__["default"] = (mergeStyleArrayPlugin);

/***/ }),

/***/ "./node_modules/radium/es/plugins/mouse-up-listener.js":
/*!*************************************************************!*\
  !*** ./node_modules/radium/es/plugins/mouse-up-listener.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
var _callbacks = [];
var _mouseUpListenerIsActive = false;

function _handleMouseUp() {
  _callbacks.forEach(function (callback) {
    callback();
  });
}

var subscribe = function subscribe(callback) {
  if (_callbacks.indexOf(callback) === -1) {
    _callbacks.push(callback);
  }

  if (!_mouseUpListenerIsActive) {
    window.addEventListener('mouseup', _handleMouseUp);
    _mouseUpListenerIsActive = true;
  }

  return {
    remove: function remove() {
      var index = _callbacks.indexOf(callback);
      _callbacks.splice(index, 1);

      if (_callbacks.length === 0 && _mouseUpListenerIsActive) {
        window.removeEventListener('mouseup', _handleMouseUp);
        _mouseUpListenerIsActive = false;
      }
    }
  };
};

/* harmony default export */ __webpack_exports__["default"] = ({
  subscribe: subscribe,
  __triggerForTests: _handleMouseUp
});

/***/ }),

/***/ "./node_modules/radium/es/plugins/prefix-plugin.js":
/*!*********************************************************!*\
  !*** ./node_modules/radium/es/plugins/prefix-plugin.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return prefixPlugin; });
/* harmony import */ var _prefixer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../prefixer */ "./node_modules/radium/es/prefixer.js");




function prefixPlugin(_ref // eslint-disable-line no-shadow
) {
  var config = _ref.config,
      style = _ref.style;

  var newStyle = Object(_prefixer__WEBPACK_IMPORTED_MODULE_0__["getPrefixedStyle"])(style, config.userAgent);
  return { style: newStyle };
}

/***/ }),

/***/ "./node_modules/radium/es/plugins/remove-nested-styles-plugin.js":
/*!***********************************************************************!*\
  !*** ./node_modules/radium/es/plugins/remove-nested-styles-plugin.js ***!
  \***********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return removeNestedStyles; });


function removeNestedStyles(_ref) {
  var isNestedStyle = _ref.isNestedStyle,
      style = _ref.style;

  // eslint-disable-line no-shadow
  var newStyle = Object.keys(style).reduce(function (newStyleInProgress, key) {
    var value = style[key];
    if (!isNestedStyle(value)) {

share/assets/dash_renderer/dash_renderer.dev.js  view on Meta::CPAN

  var suffix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
  return prefix + address + pid + now().toString(36) + suffix;
};

module.exports.process = function () {
  var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
  var suffix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
  return prefix + pid + now().toString(36) + suffix;
};

module.exports.time = function () {
  var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
  var suffix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
  return prefix + now().toString(36) + suffix;
}; //  Helpers
// ================================================


function now() {
  var time = Date.now();
  var last = now.last || time;
  return now.last = time > last ? time : last + 1;
}
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../process/browser.js */ "./node_modules/process/browser.js")))

/***/ }),

/***/ "./node_modules/viz.js/viz.js":
/*!************************************!*\
  !*** ./node_modules/viz.js/viz.js ***!
  \************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(process, Buffer) {/*
Viz.js 1.7.1 (Graphviz 2.40.1, Expat 2.1.0, Emscripten 1.37.9)
Copyright (c) 2014-2017 Michael Daines
Licensed under MIT license

This distribution contains other software in object code form:

Graphviz
Licensed under Eclipse Public License - v 1.0
http://www.graphviz.org

Expat
Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd and Clark Cooper
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Expat maintainers.
Licensed under MIT license
http://www.libexpat.org

zlib
Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler
http://www.zlib.net/zlib_license.html
*/
(function(global) {
var Module = function(Module) {
  Module = Module || {};
  var Module = Module;

var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var...
var asm=(function(global,env,buffer) {
"use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float3...
// EMSCRIPTEN_START_FUNCS
function CV(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0.0,j=0.0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;$=l;l=l+9...
function s_(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a:do if((e|0)!=(f|0)){p=b+76|0;l=b+356|0;m=f;n=b+360|0;i=e+1|0;o=b+364|0;h=m-e|0;j=(i|0)==(f|0);k=e+2|0;b:do switch(a[p+(d[e>>0]|0)>>0]|0){case 4:{if(j){e=-1;break a...
function yb(a){a=a|0;var b=0;b=l;l=l+a|0;l=l+15&-16;return b|0}function zb(){return l|0}function Ab(a){a=a|0;l=a}function Bb(a,b){a=a|0;b=b|0;l=a;m=b}function Cb(a,b){a=a|0;b=b|0;if(!o){o=a;p=b}}function Db(a){a=a|0;D=a}function Eb(){return D|0}funct...
function EB(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;j=(e|0)!=0;i=b+64|0;do if(j){if((a[e>>0]|0)!=37?(h=c[i>>2]|0,h=wb[c[(c[h+4>>2]|0)+4>>2]&63](c[h+16>>2]|0,d,e,f,g)|0,h|0):0)break;h=JB(b,d,e,f)|0;if(!h)k=5}else k=5;while(0);if((...
function EI(b,d){b=b|0;d=d|0;var e=0,f=0.0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+48|0;q=s;o=s+40|0;p=s+36|0;r=s+32|0;e=NA(d,141280)|0;if(!e){j=1;e=137499}else{i=(a[e>>0]|0)==0;j=i&1;e=i?137499:e}h=c[b+152>>2]|0;i=(a[e>>0]|0)==116;if(!(h...
function aQ(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=l;l=l+16|0;g=j;a[g>>0]=b;a[g+1>>0]=0;g=cQ(g)|0;h=d+4|0;i=d+8|0;e=D3(g)|0;f=g;while(1){if((e|0)<=1)break;b=c[h>>2]|0;if(b>>>0>=(c[i>>2]|0)>>>0){iA(d,1)|0;b=c[h>>2]|0}k=a[f>>0]|0;c[h>>2]=b+...
function pq(a,b,d,e,f,g,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0,m=0,n=0.0,o=0.0,p=0,q=0.0,r=0,s=0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0,B=0.0,C=0,D=0,E=0,F=0,I=0,J=0.0,K=0.0,L=0,M=0,N=0,O=0.0,P=0.0,Q=0,R=0,T=0,U=0,V=0,W=0,X=0,Y=0.0,Z=0...
function NM(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,H=0,I=0,J=0,K=0,L=0.0,M=0.0,N=0.0,O=0,P=0;K=l;l=l+304|0;A=K+272|0;z=K+208|0;F=K+96|0;H=K+...
function tw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0;if(a){if((c[a+32>>2]|0)!=1)Aa(95220,95244,187,95375);s=a+36|0;d=c[s>>2]|0;if((d&2|0)==0?(p=(b|0)!=0,(d&1|0)==0|p^1):0)if((c[a>>2]|0)==(c[a+4>>2]|0)...
function Ol(a){a=a|0;var d=0,e=0,f=0,g=0;g=a+16|0;a=c[g>>2]|0;if(b[a+236>>1]|0)Aa(88706,88689,190,88725);d=c[a+196>>2]|0;a=(b[a+238>>1]<<6)+192|0;if(!d)a=IK(a)|0;else a=KK(d,a)|0;e=a+64|0;a=c[g>>2]|0;c[a+196>>2]=e;a=b[a+238>>1]|0;while(1){d=e+(a<<6)|...
function $g(a){a=a|0;var b=0,d=0,e=0;while(1){b=c[(c[a+16>>2]|0)+116>>2]|0;if(!b)break;else a=b}b=c[a>>2]&3;d=c[(c[((b|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0;e=c[d+232>>2]|0;a=c[(c[((b|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0;b=c[a+232>>2]|0;if((e|0)<=(b|0))i...
function r3(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=l;l=l+256|0;e=h;a:do if((d|0)>=2?(g=b+(d<<2)|0,c[g>>2]=e,a|0):0)while(1){f=a>>>0<256?a:256;B6(e|0,c[b>>2]|0,f|0)|0;e=0;do{i=b+(e<<2)|0;e=e+1|0;B6(c[i>>2]|0,c[b+(e<<2)>>2]|0,f|0)|0;c[i>>2]...
function o6(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=a+4|0;n=c[o>>2]|0;d=n&-8;k=a+d|0;i=c[47620]|0;e=n&3;if(!((e|0)!=1&a>>>0>=i>>>0&a>>>0<k>>>0))Va();f=c[k+4>>2]|0;if(!(f&1))Va();if(!e){if(b>>>0<256){a=0;return a|0}if(d>...

// EMSCRIPTEN_END_FUNCS
var db=[f7,Jb,Kb,Ob,Pb,Qb,ic,jc,Hc,Ic,Jc,Kc,Lc,Mc,Nc,Zc,_c,bd,cd,dd,ed,fd,gd,hd,td,ud,vd,xd,yd,zd,Ad,Bd,Cd,Dd,Ed,Pd,Qd,Rd,Td,Ud,Vd,Wd,Xd,Yd,Zd,_d,$d,be,oe,pe,qe,re,Ce,De,Ee,Ge,Te,Ue,Ve,Xe,Ye,Ze,_e,$e,af,bf,cf,df,nf,of,pf,qf,Tf,Of,mm,Yl,ap,Bo,Lp,Up,Xn...


// EMSCRIPTEN_END_ASM
(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var stackSave=Module["stackSave"]=asm["stackSave"];var _vizCreateFile=Module["_vizCreateFile"]=asm["_vizCreateFile"];var _vizLastErrorMessage=Module["_vizLastErrorMessage"]=asm["_vizLastErrorMessage"]...





  return Module;
};
function Viz(src) {
  var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
  var format = options.format === undefined ? "svg" : options.format;
  var engine = options.engine === undefined ? "dot" : options.engine;
  var scale = options.scale;
  var totalMemory = options.totalMemory;
  var files = options.files === undefined ? [] : options.files;
  var images = options.images === undefined ? [] : options.images;
  var i;
  
  for (i = 0; i < images.length; i++) {
    files.push({ path: images[i].path, data: "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<svg width=\"" + images[i].width + "\"...
  }

  if (format == "png-image-element") {
    return Viz.svgXmlToPngImageElement(render(src, "svg", engine, totalMemory, files), scale);
  } else {
    return render(src, format, engine, totalMemory, files);
  }
}

function render(src, format, engine, totalMemory, files) {
  var graphviz = Module({ TOTAL_MEMORY: totalMemory });
  var i;
  
  for (i = 0; i < files.length; i++) {
    graphviz["ccall"]("vizCreateFile", "number", ["string", "string"], [files[i].path, files[i].data]);
  }
  
  var resultPointer = graphviz["ccall"]("vizRenderFromString", "number", ["string", "string", "string"], [src, format, engine]);

share/assets/dash_renderer/dash_renderer.dev.js  view on Meta::CPAN

  if (Object(ramda__WEBPACK_IMPORTED_MODULE_5__["type"])(componentDefinition) === 'Object' && !(Object(ramda__WEBPACK_IMPORTED_MODULE_5__["has"])('namespace', componentDefinition) && Object(ramda__WEBPACK_IMPORTED_MODULE_5__["has"])('type', component...
    throw new Error('An object was provided as `children` instead of a component, ' + 'string, or number (or list of those). ' + 'Check the children property that looks something like:\n' + JSON.stringify(componentDefinition, null, 2));
  }
}

var createContainer = function createContainer(component, path) {
  return Object(_isSimpleComponent__WEBPACK_IMPORTED_MODULE_7__["default"])(component) ? component : react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(AugmentedTreeContainer, {
    key: component && component.props && component.props.id,
    _dashprivate_layout: component,
    _dashprivate_path: path
  });
};

function CheckedComponent(p) {
  var element = p.element,
      extraProps = p.extraProps,
      props = p.props,
      children = p.children,
      type = p.type;
  var errorMessage = check_prop_types__WEBPACK_IMPORTED_MODULE_10___default()(element.propTypes, props, 'component prop', element);

  if (errorMessage) {
    Object(_exceptions__WEBPACK_IMPORTED_MODULE_3__["propTypeErrorHandler"])(errorMessage, props, type);
  }

  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement.apply(react__WEBPACK_IMPORTED_MODULE_0___default.a, [element, Object(ramda__WEBPACK_IMPORTED_MODULE_5__["mergeRight"])(props, extraProps)].concat(_toConsumableArray(Array.isArray(chi...
}

CheckedComponent.propTypes = {
  children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.any,
  element: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.any,
  layout: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.any,
  props: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.any,
  extraProps: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.any,
  id: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string
};

var TreeContainer =
/*#__PURE__*/
function (_Component) {
  _inherits(TreeContainer, _Component);

  function TreeContainer(props) {
    var _this;

    _classCallCheck(this, TreeContainer);

    _this = _possibleConstructorReturn(this, _getPrototypeOf(TreeContainer).call(this, props));
    _this.setProps = _this.setProps.bind(_assertThisInitialized(_this));
    return _this;
  }

  _createClass(TreeContainer, [{
    key: "setProps",
    value: function setProps(newProps) {
      var _this$props = this.props,
          _dashprivate_dependencies = _this$props._dashprivate_dependencies,
          _dashprivate_dispatch = _this$props._dashprivate_dispatch,
          _dashprivate_path = _this$props._dashprivate_path,
          _dashprivate_layout = _this$props._dashprivate_layout;
      var id = this.getLayoutProps().id; // Identify the modified props that are required for callbacks

      var watchedKeys = Object(ramda__WEBPACK_IMPORTED_MODULE_5__["filter"])(function (key) {
        return _dashprivate_dependencies && _dashprivate_dependencies.find(function (dependency) {
          return dependency.inputs.find(function (input) {
            return input.id === id && input.property === key;
          }) || dependency.state.find(function (state) {
            return state.id === id && state.property === key;
          });
        });
      })(Object(ramda__WEBPACK_IMPORTED_MODULE_5__["keysIn"])(newProps)); // setProps here is triggered by the UI - record these changes
      // for persistence

      Object(_persistence__WEBPACK_IMPORTED_MODULE_8__["recordUiEdit"])(_dashprivate_layout, newProps, _dashprivate_dispatch); // Always update this component's props

      _dashprivate_dispatch(Object(_actions__WEBPACK_IMPORTED_MODULE_6__["updateProps"])({
        props: newProps,
        itempath: _dashprivate_path
      })); // Only dispatch changes to Dash if a watched prop changed


      if (watchedKeys.length) {
        _dashprivate_dispatch(Object(_actions__WEBPACK_IMPORTED_MODULE_6__["notifyObservers"])({
          id: id,
          props: Object(ramda__WEBPACK_IMPORTED_MODULE_5__["pick"])(watchedKeys)(newProps)
        }));
      }
    }
  }, {
    key: "getChildren",
    value: function getChildren(components, path) {
      if (Object(ramda__WEBPACK_IMPORTED_MODULE_5__["isNil"])(components)) {
        return null;
      }

      return Array.isArray(components) ? Object(ramda__WEBPACK_IMPORTED_MODULE_5__["addIndex"])(ramda__WEBPACK_IMPORTED_MODULE_5__["map"])(function (component, i) {
        return createContainer(component, Object(ramda__WEBPACK_IMPORTED_MODULE_5__["concat"])(path, ['props', 'children', i]));
      }, components) : createContainer(components, Object(ramda__WEBPACK_IMPORTED_MODULE_5__["concat"])(path, ['props', 'children']));
    }
  }, {
    key: "getComponent",
    value: function getComponent(_dashprivate_layout, children, loading_state, setProps) {
      var _dashprivate_config = this.props._dashprivate_config;

      if (Object(ramda__WEBPACK_IMPORTED_MODULE_5__["isEmpty"])(_dashprivate_layout)) {
        return null;
      }

      if (Object(_isSimpleComponent__WEBPACK_IMPORTED_MODULE_7__["default"])(_dashprivate_layout)) {
        return _dashprivate_layout;
      }

      validateComponent(_dashprivate_layout);
      var element = _registry__WEBPACK_IMPORTED_MODULE_2__["default"].resolve(_dashprivate_layout);
      var props = Object(ramda__WEBPACK_IMPORTED_MODULE_5__["omit"])(['children'], _dashprivate_layout.props);
      return _dashprivate_config.props_check ? react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_error_ComponentErrorBoundary_react__WEBPACK_IMPORTED_MODULE_9__["default"], {
        componentType: _dashprivate_layout.type,
        componentId: _dashprivate_layout.props.id,
        key: element && element.props && element.props.id
      }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(CheckedComponent, {
        children: children,

share/assets/dash_renderer/dash_renderer.dev.js  view on Meta::CPAN

               * `notifyObservers` action which will allow this
               * component to update.
               *
               * for example, if A updates B and C (A -> [B, C]) and B updates C
               * (B -> C), then when A updates, this logic will
               * reject C from the queue since it will end up getting updated
               * by B.
               *
               * in this case, B will already be in queuedObservers by the time
               * this loop hits C because of the overallOrder sorting logic
               */


              var controllers = InputGraph.dependantsOf(outputIdAndProp);
              var controllersInFutureQueue = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["intersection"])(queuedObservers, controllers);
              /*
               * check that the output hasn't been triggered to update already
               * by a different input.
               *
               * for example:
               * Grandparent -> [Parent A, Parent B] -> Child
               *
               * when Grandparent changes, it will trigger Parent A and Parent B
               * to each update Child.
               * one of the components (Parent A or Parent B) will queue up
               * the change for Child. if this update has already been queued up,
               * then skip the update for the other component
               */

              var controllerIsInExistingQueue = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["any"])(function (r) {
                return Object(ramda__WEBPACK_IMPORTED_MODULE_0__["includes"])(r.controllerId, controllers) && r.status === 'loading';
              }, requestQueue);
              /*
               * TODO - Place throttling logic here?
               *
               * Only process the last two requests for a _single_ output
               * at a time.
               *
               * For example, if A -> B, and A is changed 10 times, then:
               * 1 - processing the first two requests
               * 2 - if more than 2 requests come in while the first two
               *     are being processed, then skip updating all of the
               *     requests except for the last 2
               */

              /*
               * also check that this observer is actually in the current
               * component tree.
               * observers don't actually need to be rendered at the moment
               * of a controller change.
               * for example, perhaps the user has hidden one of the observers
               */

              if (controllersInFutureQueue.length === 0 && Object(ramda__WEBPACK_IMPORTED_MODULE_0__["any"])(function (e) {
                return Object(ramda__WEBPACK_IMPORTED_MODULE_0__["has"])(e, getState().paths);
              })(outputIds) && !controllerIsInExistingQueue) {
                queuedObservers.push(outputIdAndProp);
              }
            });
            /**
             * Determine the id of all components used as input or state in the callbacks
             * triggered by the props change.
             *
             * Wait for all components associated to these ids to be ready before initiating
             * the callbacks.
             */

            deps = queuedObservers.map(function (output) {
              return dependenciesRequest.content.find(function (dependency) {
                return dependency.output === output;
              });
            });
            ids = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["uniq"])(Object(ramda__WEBPACK_IMPORTED_MODULE_0__["flatten"])(deps.map(function (dep) {
              return [dep.inputs.map(function (input) {
                return input.id;
              }), dep.state.map(function (state) {
                return state.id;
              })];
            })));
            _context.next = 17;
            return regeneratorRuntime.awrap(Object(_isAppReady__WEBPACK_IMPORTED_MODULE_9__["default"])(layout, paths, ids));

          case 17:
            /*
             * record the set of output IDs that will eventually need to be
             * updated in a queue. not all of these requests will be fired in this
             * action
             */
            newRequestQueue = queuedObservers.map(function (i) {
              return {
                controllerId: i,
                status: 'loading',
                uid: Object(_utils__WEBPACK_IMPORTED_MODULE_6__["uid"])(),
                requestTime: Date.now()
              };
            });
            dispatch(setRequestQueue(Object(ramda__WEBPACK_IMPORTED_MODULE_0__["concat"])(requestQueue, newRequestQueue)));
            promises = [];

            for (i = 0; i < queuedObservers.length; i++) {
              outputIdAndProp = queuedObservers[i];
              requestUid = newRequestQueue[i].uid;
              promises.push(updateOutput(outputIdAndProp, getState, requestUid, dispatch, changedProps.map(function (prop) {
                return "".concat(id, ".").concat(prop);
              })));
            }
            /* eslint-disable consistent-return */


            return _context.abrupt("return", Promise.all(promises));

          case 22:
          case "end":
            return _context.stop();
        }
      }
    });
  };
}

function updateOutput(outputIdAndProp, getState, requestUid, dispatch, changedPropIds) {
  var _getState3 = getState(),
      config = _getState3.config,
      layout = _getState3.layout,
      graphs = _getState3.graphs,

share/assets/dash_renderer/dash_renderer.dev.js  view on Meta::CPAN

/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CallbackGraphContainer", function() { return CallbackGraphContainer; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _CallbackGraphContainer_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CallbackGraphContainer.css */ "./src/components/error/CallbackGraph/CallbackGraphContainer.css");
/* harmony import */ var _CallbackGraphContainer_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_CallbackGraphContainer_css__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var viz_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! viz.js */ "./node_modules/viz.js/viz.js");
/* harmony import */ var viz_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(viz_js__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "prop-types");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.co...

function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }

function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }

function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symb...

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = t...

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototy...

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }






var CallbackGraphContainer =
/*#__PURE__*/
function (_Component) {
  _inherits(CallbackGraphContainer, _Component);

  function CallbackGraphContainer(props) {
    _classCallCheck(this, CallbackGraphContainer);

    return _possibleConstructorReturn(this, _getPrototypeOf(CallbackGraphContainer).call(this, props));
  }

  _createClass(CallbackGraphContainer, [{
    key: "render",
    value: function render() {
      var dependenciesRequest = this.props.dependenciesRequest;
      var elements = {};
      var callbacks = [];
      var links = dependenciesRequest.content.map(function (_ref, i) {
        var inputs = _ref.inputs,
            output = _ref.output;
        callbacks.push("cb".concat(i, ";"));

        function recordAndReturn(_ref2) {
          var _ref3 = _slicedToArray(_ref2, 2),
              id = _ref3[0],
              property = _ref3[1];

          elements[id] = elements[id] || {};
          elements[id][property] = true;
          return "\"".concat(id, ".").concat(property, "\"");
        }

        var out_nodes = output.replace(/^\.\./, '').replace(/\.\.$/, '').split('...').map(function (o) {
          return recordAndReturn(o.split('.'));
        }).join(', ');
        var in_nodes = inputs.map(function (_ref4) {
          var id = _ref4.id,
              property = _ref4.property;
          return recordAndReturn([id, property]);
        }).join(', ');
        return "{".concat(in_nodes, "} -> cb").concat(i, " -> {").concat(out_nodes, "};");
      });
      var dot = "digraph G {\n            overlap = false; fontname=\"Arial\"; fontcolor=\"#333333\";\n            edge [color=\"#888888\"];\n            node [shape=box, fontname=\"Arial\", style=filled, color=\"#109DFF\", fontcolor=white];\n       ...
        var _ref6 = _slicedToArray(_ref5, 2),
            id = _ref6[0],
            props = _ref6[1];

        return "\n                subgraph cluster_".concat(i, " {\n                    bgcolor=\"#B9C2CE\";\n                    ").concat(Object.keys(props).map(function (p) {
          return "\"".concat(id, ".").concat(p, "\" [label=\"").concat(p, "\"];");
        }).join('\n'), "\n                    label = \"").concat(id, "\"; }");
      }).join('\n'), "\n\n            ").concat(links.join('\n'), " }");
      return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
        className: "dash-callback-dag--container",
        dangerouslySetInnerHTML: {
          __html: viz_js__WEBPACK_IMPORTED_MODULE_2___default()(dot, {
            format: 'svg'
          })
        }
      });
    }
  }]);

  return CallbackGraphContainer;
}(react__WEBPACK_IMPORTED_MODULE_0__["Component"]);

CallbackGraphContainer.propTypes = {
  dependenciesRequest: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object
};


/***/ }),

/***/ "./src/components/error/ComponentErrorBoundary.react.js":
/*!**************************************************************!*\
  !*** ./src/components/error/ComponentErrorBoundary.react.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-redux */ "./node_modules/react-redux/lib/index.js");
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "prop-types");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var radium__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! radium */ "./node_modules/radium/es/index.js");
/* harmony import */ var uniqid__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! uniqid */ "./node_modules/uniqid/index.js");
/* harmony import */ var uniqid__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(uniqid__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _actions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../actions */ "./src/actions/index.js");
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.co...

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = t...

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

share/assets/dash_renderer/dash_renderer.dev.js  view on Meta::CPAN


  var persisted_props = getVal('persisted_props');
  var persistence_type = getVal('persistence_type');
  var canPersist = id && persisted_props && persistence_type;
  return {
    canPersist: canPersist,
    id: id,
    props: props,
    element: element,
    persistence: persistence,
    persisted_props: persisted_props,
    persistence_type: persistence_type
  };
};

function recordUiEdit(layout, newProps, dispatch) {
  var _getProps = getProps(layout),
      canPersist = _getProps.canPersist,
      id = _getProps.id,
      props = _getProps.props,
      element = _getProps.element,
      persistence = _getProps.persistence,
      persisted_props = _getProps.persisted_props,
      persistence_type = _getProps.persistence_type;

  if (!canPersist || !persistence) {
    return;
  }

  Object(ramda__WEBPACK_IMPORTED_MODULE_0__["forEach"])(function (persistedProp) {
    var _persistedProp$split = persistedProp.split('.'),
        _persistedProp$split2 = _slicedToArray(_persistedProp$split, 2),
        propName = _persistedProp$split2[0],
        propPart = _persistedProp$split2[1];

    if (newProps[propName]) {
      var storage = getStore(persistence_type, dispatch);

      var _getTransform = getTransform(element, propName, propPart),
          extract = _getTransform.extract;

      var valsKey = getValsKey(id, persistedProp, persistence);
      var originalVal = extract(props[propName]);
      var newVal = extract(newProps[propName]); // mainly for nested props with multiple persisted parts, it's
      // possible to have the same value as before - should not store
      // in this case.

      if (originalVal !== newVal) {
        if (storage.hasItem(valsKey)) {
          originalVal = storage.getItem(valsKey)[1];
        }

        var vals = originalVal === undefined ? [newVal] : [newVal, originalVal];
        storage.setItem(valsKey, vals, dispatch);
      }
    }
  }, persisted_props);
}
/*
 * Used for entire layouts (on load) or partial layouts (from children
 * callbacks) to apply previously-stored UI edits to components
 */

function applyPersistence(layout, dispatch) {
  if (Object(ramda__WEBPACK_IMPORTED_MODULE_0__["type"])(layout) !== 'Object' || !layout.props) {
    return layout;
  }

  return persistenceMods(layout, layout, [], dispatch);
}
var UNDO = true;

function modProp(key, storage, element, props, persistedProp, update, undo) {
  if (storage.hasItem(key)) {
    var _storage$getItem = storage.getItem(key),
        _storage$getItem2 = _slicedToArray(_storage$getItem, 2),
        newVal = _storage$getItem2[0],
        originalVal = _storage$getItem2[1];

    var fromVal = undo ? newVal : originalVal;
    var toVal = undo ? originalVal : newVal;

    var _persistedProp$split3 = persistedProp.split('.'),
        _persistedProp$split4 = _slicedToArray(_persistedProp$split3, 2),
        propName = _persistedProp$split4[0],
        propPart = _persistedProp$split4[1];

    var transform = getTransform(element, propName, propPart);

    if (Object(ramda__WEBPACK_IMPORTED_MODULE_0__["equals"])(fromVal, transform.extract(props[propName]))) {
      update[propName] = transform.apply(toVal, propName in update ? update[propName] : props[propName]);
    } else {
      // clear this saved edit - we've started with the wrong
      // value for this persistence ID
      storage.removeItem(key);
    }
  }
}

function persistenceMods(layout, component, path, dispatch) {
  var _getProps2 = getProps(component),
      canPersist = _getProps2.canPersist,
      id = _getProps2.id,
      props = _getProps2.props,
      element = _getProps2.element,
      persistence = _getProps2.persistence,
      persisted_props = _getProps2.persisted_props,
      persistence_type = _getProps2.persistence_type;

  var layoutOut = layout;

  if (canPersist && persistence) {
    var storage = getStore(persistence_type, dispatch);
    var update = {};
    Object(ramda__WEBPACK_IMPORTED_MODULE_0__["forEach"])(function (persistedProp) {
      return modProp(getValsKey(id, persistedProp, persistence), storage, element, props, persistedProp, update);
    }, persisted_props);

    for (var propName in update) {
      layoutOut = Object(ramda__WEBPACK_IMPORTED_MODULE_0__["set"])(Object(ramda__WEBPACK_IMPORTED_MODULE_0__["lensPath"])(path.concat('props', propName)), update[propName], layoutOut);
    }



( run in 3.009 seconds using v1.01-cache-2.11-cpan-437f7b0c052 )