API Upgrade for silverstripe CMS namespace changes

This commit is contained in:
Damian Mooyman 2016-08-05 10:32:13 +12:00
parent c7387ff45f
commit 6005a1c2b2
20 changed files with 153 additions and 93 deletions

View File

@ -3,11 +3,14 @@
namespace SilverStripe\ORM\Connect;
use Config;
use Convert;
use Exception;
use PaginatedList;
use SilverStripe\Framework\Core\Configurable;
use SilverStripe\ORM\DataList;
use SilverStripe\ORM\ArrayList;
use SilverStripe\ORM\DataObject;
use SilverStripe\ORM\Queries\SQLSelect;
/**
* MySQL connector class.
@ -101,39 +104,60 @@ class MySQLDatabase extends SS_Database {
* The core search engine, used by this class and its subclasses to do fun stuff.
* Searches both SiteTree and File.
*
* @param array $classesToSearch
* @param string $keywords Keywords as a string.
* @param int $start
* @param int $pageLength
* @param string $sortBy
* @param string $extraFilter
* @param bool $booleanSearch
* @param string $alternativeFileFilter
* @param bool $invertedMatch
* @return PaginatedList
* @throws Exception
*/
public function searchEngine($classesToSearch, $keywords, $start, $pageLength, $sortBy = "Relevance DESC",
$extraFilter = "", $booleanSearch = false, $alternativeFileFilter = "", $invertedMatch = false
) {
if (!class_exists('SiteTree'))
throw new Exception('MySQLDatabase->searchEngine() requires "SiteTree" class');
if (!class_exists('File'))
throw new Exception('MySQLDatabase->searchEngine() requires "File" class');
$pageClass = 'SilverStripe\\CMS\\Model\\SiteTree';
$fileClass = 'File';
$pageTable = DataObject::getSchema()->tableName($pageClass);
$fileTable = DataObject::getSchema()->tableName($fileClass);
if (!class_exists($pageClass)) {
throw new Exception('MySQLDatabase->searchEngine() requires "SiteTree" class');
}
if (!class_exists($fileClass)) {
throw new Exception('MySQLDatabase->searchEngine() requires "File" class');
}
$keywords = $this->escapeString($keywords);
$htmlEntityKeywords = htmlentities($keywords, ENT_NOQUOTES, 'UTF-8');
$extraFilters = array('SiteTree' => '', 'File' => '');
$extraFilters = array($pageClass => '', $fileClass => '');
if ($booleanSearch) $boolean = "IN BOOLEAN MODE";
if ($booleanSearch) {
$boolean = "IN BOOLEAN MODE";
}
if ($extraFilter) {
$extraFilters['SiteTree'] = " AND $extraFilter";
$extraFilters[$pageClass] = " AND $extraFilter";
if ($alternativeFileFilter)
$extraFilters['File'] = " AND $alternativeFileFilter";
else $extraFilters['File'] = $extraFilters['SiteTree'];
if ($alternativeFileFilter) {
$extraFilters[$fileClass] = " AND $alternativeFileFilter";
} else {
$extraFilters[$fileClass] = $extraFilters[$pageClass];
}
}
// Always ensure that only pages with ShowInSearch = 1 can be searched
$extraFilters['SiteTree'] .= " AND ShowInSearch <> 0";
$extraFilters[$pageClass] .= " AND ShowInSearch <> 0";
// File.ShowInSearch was added later, keep the database driver backwards compatible
// by checking for its existence first
$fields = $this->fieldList('File');
if (array_key_exists('ShowInSearch', $fields))
$extraFilters['File'] .= " AND ShowInSearch <> 0";
$fields = $this->getSchemaManager()->fieldList($fileTable);
if (array_key_exists('ShowInSearch', $fields)) {
$extraFilters[$fileClass] .= " AND ShowInSearch <> 0";
}
$limit = $start . ", " . (int) $pageLength;
@ -141,27 +165,28 @@ class MySQLDatabase extends SS_Database {
? "NOT "
: "";
if ($keywords) {
$match['SiteTree'] = "
$match[$pageClass] = "
MATCH (Title, MenuTitle, Content, MetaDescription) AGAINST ('$keywords' $boolean)
+ MATCH (Title, MenuTitle, Content, MetaDescription) AGAINST ('$htmlEntityKeywords' $boolean)
";
$match['File'] = "MATCH (Name, Title) AGAINST ('$keywords' $boolean) AND ClassName = 'File'";
$fileClassSQL = Convert::raw2sql($fileClass);
$match[$fileClass] = "MATCH (Name, Title) AGAINST ('$keywords' $boolean) AND ClassName = '$fileClassSQL'";
// We make the relevance search by converting a boolean mode search into a normal one
$relevanceKeywords = str_replace(array('*', '+', '-'), '', $keywords);
$htmlEntityRelevanceKeywords = str_replace(array('*', '+', '-'), '', $htmlEntityKeywords);
$relevance['SiteTree'] = "MATCH (Title, MenuTitle, Content, MetaDescription) "
$relevance[$pageClass] = "MATCH (Title, MenuTitle, Content, MetaDescription) "
. "AGAINST ('$relevanceKeywords') "
. "+ MATCH (Title, MenuTitle, Content, MetaDescription) AGAINST ('$htmlEntityRelevanceKeywords')";
$relevance['File'] = "MATCH (Name, Title) AGAINST ('$relevanceKeywords')";
$relevance[$fileClass] = "MATCH (Name, Title) AGAINST ('$relevanceKeywords')";
} else {
$relevance['SiteTree'] = $relevance['File'] = 1;
$match['SiteTree'] = $match['File'] = "1 = 1";
$relevance[$pageClass] = $relevance[$fileClass] = 1;
$match[$pageClass] = $match[$fileClass] = "1 = 1";
}
// Generate initial DataLists and base table names
$lists = array();
$baseClasses = array('SiteTree' => '', 'File' => '');
$baseClasses = array($pageClass => '', $fileClass => '');
foreach ($classesToSearch as $class) {
$lists[$class] = DataList::create($class)->where($notMatch . $match[$class] . $extraFilters[$class], "");
$baseClasses[$class] = '"' . $class . '"';
@ -171,19 +196,19 @@ class MySQLDatabase extends SS_Database {
// Make column selection lists
$select = array(
'SiteTree' => array(
"ClassName", "$baseClasses[SiteTree].\"ID\"", "ParentID",
$pageClass => array(
"ClassName", "{$pageTable}.\"ID\"", "ParentID",
"Title", "MenuTitle", "URLSegment", "Content",
"LastEdited", "Created",
"Name" => "_{$charset}''",
"Relevance" => $relevance['SiteTree'], "CanViewType"
"Relevance" => $relevance[$pageClass], "CanViewType"
),
'File' => array(
"ClassName", "$baseClasses[File].\"ID\"", "ParentID",
$fileClass => array(
"ClassName", "{$fileTable}.\"ID\"", "ParentID",
"Title", "MenuTitle" => "_{$charset}''", "URLSegment" => "_{$charset}''", "Content" => "_{$charset}''",
"LastEdited", "Created",
"Name",
"Relevance" => $relevance['File'], "CanViewType" => "NULL"
"Relevance" => $relevance[$fileClass], "CanViewType" => "NULL"
),
);
@ -192,10 +217,12 @@ class MySQLDatabase extends SS_Database {
$queryParameters = array();
$totalCount = 0;
foreach ($lists as $class => $list) {
$table = DataObject::getSchema()->tableName($class);
/** @var SQLSelect $query */
$query = $list->dataQuery()->query();
// There's no need to do all that joining
$query->setFrom(array(str_replace(array('"', '`'), '', $baseClasses[$class]) => $baseClasses[$class]));
$query->setFrom($table);
$query->setSelect($select[$class]);
$query->setOrderBy(array());

View File

@ -76,7 +76,7 @@ class ChangeSet extends DataObject {
* @var array
*/
private static $important_classes = array(
'SiteTree',
'SilverStripe\\CMS\\Model\\SiteTree',
'File',
);

View File

@ -2,6 +2,7 @@
namespace SilverStripe\Security;
use SilverStripe\CMS\Controllers\CMSMain;
use SilverStripe\ORM\SS_Map;
use SilverStripe\ORM\ValidationResult;
use SilverStripe\ORM\FieldType\DBDatetime;
@ -1347,8 +1348,8 @@ class Member extends DataObject implements TemplateGlobalProvider {
if(!$groups || $groups->Count() == 0) {
$perms = array('ADMIN', 'CMS_ACCESS_AssetAdmin');
if(class_exists('CMSMain')) {
$cmsPerms = singleton('CMSMain')->providePermissions();
if(class_exists('SilverStripe\\CMS\\Controllers\\CMSMain')) {
$cmsPerms = CMSMain::singleton()->providePermissions();
} else {
$cmsPerms = singleton('LeftAndMain')->providePermissions();
}

View File

@ -485,7 +485,9 @@ class Security extends Controller implements TemplateGlobalProvider {
* @return Controller
*/
protected function getResponseController($title) {
if(!class_exists('SiteTree')) return $this;
if (!class_exists('SilverStripe\\CMS\\Model\\SiteTree')) {
return $this;
}
// Use sitetree pages to render the security page
$tmpPage = new Page();

View File

@ -1,7 +1,7 @@
!function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a="function"==typeof require&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(exports,"__esModule",{value:!0});var _jQuery=require("jQuery"),_jQuery2=_interopRequireDefault(_jQuery),_react=require("react"),_react2=_interopRequireDefault(_react),_reactDom=require("react-dom"),_reactDom2=_interopRequireDefault(_reactDom),_reactRedux=require("react-redux"),_reactRouter=require("react-router"),_createBrowserHistory=require("history/lib/createBrowserHistory"),_createBrowserHistory2=_interopRequireDefault(_createBrowserHistory),_Config=require("lib/Config"),_Config2=_interopRequireDefault(_Config),_Router=require("lib/Router"),_Router2=_interopRequireDefault(_Router),_ReactRouteRegister=require("lib/ReactRouteRegister"),_ReactRouteRegister2=_interopRequireDefault(_ReactRouteRegister),_App=require("containers/App/App"),_App2=_interopRequireDefault(_App),_reactRouterRedux=require("react-router-redux"),BootRoutes=function(){function BootRoutes(store){_classCallCheck(this,BootRoutes),this.store=store;var base=_Config2["default"].get("absoluteBaseUrl");_Router2["default"].setAbsoluteBase(base)}return BootRoutes.prototype.start=function(location){this.matchesLegacyRoute(location)?this.initLegacyRouter():this.initReactRouter()},BootRoutes.prototype.matchesLegacyRoute=function(location){var sections=_Config2["default"].get("sections"),currentPath=_Router2["default"].resolveURLToBase(location).replace(/\/$/,"");return!!Object.keys(sections).find(function(key){var section=sections[key],route=_Router2["default"].resolveURLToBase(section.url).replace(/\/$/,"");return section.reactRouter?!1:currentPath.match(route)})},BootRoutes.prototype.initReactRouter=function(){_ReactRouteRegister2["default"].updateRootRoute({component:_App2["default"]});var history=(0,_reactRouterRedux.syncHistoryWithStore)((0,_reactRouter.useRouterHistory)(_createBrowserHistory2["default"])({basename:_Config2["default"].get("baseUrl")}),this.store);_reactDom2["default"].render(_react2["default"].createElement(_reactRedux.Provider,{store:this.store},_react2["default"].createElement(_reactRouter.Router,{history:history,routes:_ReactRouteRegister2["default"].getRootRoute()})),document.getElementsByClassName("cms-content")[0])},BootRoutes.prototype.initLegacyRouter=function(){var sections=_Config2["default"].get("sections"),store=this.store;(0,_Router2["default"])("*",function(ctx,next){ctx.store=store,next()});var lastPath=null;Object.keys(sections).forEach(function(key){var route=_Router2["default"].resolveURLToBase(sections[key].url);route=route.replace(/\/$/,""),route+="(/*?)?",(0,_Router2["default"])(route,function(ctx,next){if("complete"!==document.readyState||ctx.init)return void next();lastPath||(lastPath=window.location.pathname);var forceReload=ctx.data&&ctx.data.__forceReload;(ctx.path!==lastPath||forceReload)&&(lastPath=ctx.path.replace(/#.*$/,""),(0,_jQuery2["default"])(".cms-container").entwine("ss").handleStateChange(null,ctx.state))})}),_Router2["default"].start()},BootRoutes}();exports["default"]=BootRoutes},{"containers/App/App":10,"history/lib/createBrowserHistory":49,jQuery:"jQuery","lib/Config":16,"lib/ReactRouteRegister":"lib/ReactRouteRegister","lib/Router":18,react:"react","react-dom":"react-dom","react-redux":"react-redux","react-router":"react-router","react-router-redux":"react-router-redux"}],2:[function(require,module,exports){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj["default"]=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function appBoot(){_ReducerRegister2["default"].add("config",_ConfigReducer2["default"]),_ReducerRegister2["default"].add("form",_FormReducer2["default"]),_ReducerRegister2["default"].add("schemas",_SchemaReducer2["default"]),_ReducerRegister2["default"].add("records",_RecordsReducer2["default"]),_ReducerRegister2["default"].add("campaign",_CampaignReducer2["default"]),_ReducerRegister2["default"].add("breadcrumbs",_BreadcrumbsReducer2["default"]),_ReducerRegister2["default"].add("routing",_reactRouterRedux.routerReducer),_Injector2["default"].register("TextField",_TextField2["default"]),_Injector2["default"].register("HiddenField",_HiddenField2["default"]),_Injector2["default"].register("GridField",_GridField2["default"]),_Injector2["default"].register("PopoverField",_PopoverField2["default"]),_Injector2["default"].register("FormAction",_FormAction2["default"]);var initialState={},rootReducer=(0,_redux.combineReducers)(_ReducerRegister2["default"].getAll()),middleware=[_reduxThunk2["default"]],env=_Config2["default"].get("environment"),debugging=_Config2["default"].get("debugging");"dev"===env&&debugging&&middleware.push((0,_reduxLogger2["default"])());var createStoreWithMiddleware=_redux.applyMiddleware.apply(void 0,middleware)(_redux.createStore),store=createStoreWithMiddleware(rootReducer,initialState);store.dispatch(configActions.setConfig(_Config2["default"].getAll()));var routes=new _BootRoutes2["default"](store);routes.start(window.location.pathname)}var _BootRoutes=require("./BootRoutes"),_BootRoutes2=_interopRequireDefault(_BootRoutes),_redux=require("redux"),_reduxThunk=require("redux-thunk"),_reduxThunk2=_interopRequireDefault(_reduxThunk),_reduxLogger=require("redux-logger"),_reduxLogger2=_interopRequireDefault(_reduxLogger),_Config=require("lib/Config"),_Config2=_interopRequireDefault(_Config),_ReducerRegister=require("lib/ReducerRegister"),_ReducerRegister2=_interopRequireDefault(_ReducerRegister),_Injector=require("lib/Injector"),_Injector2=_interopRequireDefault(_Injector),_ConfigActions=require("state/config/ConfigActions"),configActions=_interopRequireWildcard(_ConfigActions),_ConfigReducer=require("state/config/ConfigReducer"),_ConfigReducer2=_interopRequireDefault(_ConfigReducer),_FormReducer=require("state/form/FormReducer"),_FormReducer2=_interopRequireDefault(_FormReducer),_SchemaReducer=require("state/schema/SchemaReducer"),_SchemaReducer2=_interopRequireDefault(_SchemaReducer),_RecordsReducer=require("state/records/RecordsReducer"),_RecordsReducer2=_interopRequireDefault(_RecordsReducer),_CampaignReducer=require("state/campaign/CampaignReducer"),_CampaignReducer2=_interopRequireDefault(_CampaignReducer),_BreadcrumbsReducer=require("state/breadcrumbs/BreadcrumbsReducer"),_BreadcrumbsReducer2=_interopRequireDefault(_BreadcrumbsReducer),_TextField=require("components/TextField/TextField"),_TextField2=_interopRequireDefault(_TextField),_HiddenField=require("components/HiddenField/HiddenField"),_HiddenField2=_interopRequireDefault(_HiddenField),_GridField=require("components/GridField/GridField"),_GridField2=_interopRequireDefault(_GridField),_FormAction=require("components/FormAction/FormAction"),_FormAction2=_interopRequireDefault(_FormAction),_PopoverField=require("components/PopoverField/PopoverField"),_PopoverField2=_interopRequireDefault(_PopoverField),_reactRouterRedux=require("react-router-redux"),_controller=require("containers/CampaignAdmin/controller");_interopRequireDefault(_controller);window.onload=appBoot},{"./BootRoutes":1,"components/FormAction/FormAction":"components/FormAction/FormAction","components/GridField/GridField":"components/GridField/GridField","components/HiddenField/HiddenField":5,"components/PopoverField/PopoverField":7,"components/TextField/TextField":9,"containers/CampaignAdmin/controller":14,"lib/Config":16,"lib/Injector":17,"lib/ReducerRegister":"lib/ReducerRegister","react-router-redux":"react-router-redux",redux:"redux","redux-logger":63,"redux-thunk":"redux-thunk","state/breadcrumbs/BreadcrumbsReducer":20,"state/campaign/CampaignReducer":23,"state/config/ConfigActions":25,"state/config/ConfigReducer":26,"state/form/FormReducer":28,"state/records/RecordsReducer":31,"state/schema/SchemaReducer":33}],3:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _defaults(obj,defaults){for(var keys=Object.getOwnPropertyNames(defaults),i=0;i<keys.length;i++){var key=keys[i],value=Object.getOwnPropertyDescriptor(defaults,key);value&&value.configurable&&void 0===obj[key]&&Object.defineProperty(obj,key,value)}return obj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):_defaults(subClass,superClass))}Object.defineProperty(exports,"__esModule",{value:!0});var _react=require("react"),_react2=_interopRequireDefault(_react),_SilverStripeComponent=require("lib/SilverStripeComponent"),_SilverStripeComponent2=_interopRequireDefault(_SilverStripeComponent),Accordion=function(_SilverStripeComponen){function Accordion(){return _classCallCheck(this,Accordion),_possibleConstructorReturn(this,_SilverStripeComponen.apply(this,arguments))}return _inherits(Accordion,_SilverStripeComponen),Accordion.prototype.render=function(){return _react2["default"].createElement("div",{className:"accordion",role:"tablist","aria-multiselectable":"true"},this.props.children)},Accordion}(_SilverStripeComponent2["default"]);exports["default"]=Accordion},{"lib/SilverStripeComponent":"lib/SilverStripeComponent",react:"react"}],4:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _defaults(obj,defaults){for(var keys=Object.getOwnPropertyNames(defaults),i=0;i<keys.length;i++){var key=keys[i],value=Object.getOwnPropertyDescriptor(defaults,key);value&&value.configurable&&void 0===obj[key]&&Object.defineProperty(obj,key,value)}return obj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):_defaults(subClass,superClass))}Object.defineProperty(exports,"__esModule",{value:!0});var _react=require("react"),_react2=_interopRequireDefault(_react),_SilverStripeComponent=require("lib/SilverStripeComponent"),_SilverStripeComponent2=_interopRequireDefault(_SilverStripeComponent);require("bootstrap-collapse");var AccordionBlock=function(_SilverStripeComponen){function AccordionBlock(){return _classCallCheck(this,AccordionBlock),_possibleConstructorReturn(this,_SilverStripeComponen.apply(this,arguments))}return _inherits(AccordionBlock,_SilverStripeComponen),AccordionBlock.prototype.render=function(){var headerID=this.props.groupid+"_Header",listID=this.props.groupid+"_Items",href="#"+listID,groupProps={id:listID,"aria-expanded":!0,className:"list-group list-group-flush collapse in",role:"tabpanel","aria-labelledby":headerID};return _react2["default"].createElement("div",{className:"accordion__block"},_react2["default"].createElement("a",{className:"accordion__title","data-toggle":"collapse",href:href,"aria-expanded":"true","aria-controls":listID,id:headerID,role:"tab"},this.props.title),_react2["default"].createElement("div",groupProps,this.props.children))},AccordionBlock}(_SilverStripeComponent2["default"]);exports["default"]=AccordionBlock},{"bootstrap-collapse":"bootstrap-collapse","lib/SilverStripeComponent":"lib/SilverStripeComponent",react:"react"}],5:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _defaults(obj,defaults){for(var keys=Object.getOwnPropertyNames(defaults),i=0;i<keys.length;i++){var key=keys[i],value=Object.getOwnPropertyDescriptor(defaults,key);value&&value.configurable&&void 0===obj[key]&&Object.defineProperty(obj,key,value)}return obj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):_defaults(subClass,superClass))}Object.defineProperty(exports,"__esModule",{value:!0});var _react=require("react"),_react2=_interopRequireDefault(_react),_SilverStripeComponent=require("lib/SilverStripeComponent"),_SilverStripeComponent2=_interopRequireDefault(_SilverStripeComponent),HiddenField=function(_SilverStripeComponen){function HiddenField(props){_classCallCheck(this,HiddenField);var _this=_possibleConstructorReturn(this,_SilverStripeComponen.call(this,props));return _this.handleChange=_this.handleChange.bind(_this),_this}return _inherits(HiddenField,_SilverStripeComponen),HiddenField.prototype.render=function(){return _react2["default"].createElement("div",{className:"field hidden"},_react2["default"].createElement("input",this.getInputProps()))},HiddenField.prototype.getInputProps=function(){return{className:["hidden",this.props.extraClass].join(" "),id:this.props.id,name:this.props.name,onChange:this.props.onChange,type:"hidden",value:this.props.value}},HiddenField.prototype.handleChange=function(){"undefined"!=typeof this.props.onChange&&this.props.onChange()},HiddenField}(_SilverStripeComponent2["default"]);HiddenField.propTypes={extraClass:_react2["default"].PropTypes.string,name:_react2["default"].PropTypes.string.isRequired,onChange:_react2["default"].PropTypes.func,value:_react2["default"].PropTypes.any},exports["default"]=HiddenField},{"lib/SilverStripeComponent":"lib/SilverStripeComponent",react:"react"}],6:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _defaults(obj,defaults){for(var keys=Object.getOwnPropertyNames(defaults),i=0;i<keys.length;i++){var key=keys[i],value=Object.getOwnPropertyDescriptor(defaults,key);value&&value.configurable&&void 0===obj[key]&&Object.defineProperty(obj,key,value)}return obj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):_defaults(subClass,superClass))}Object.defineProperty(exports,"__esModule",{value:!0});var _react=require("react"),_react2=_interopRequireDefault(_react),_SilverStripeComponent=require("lib/SilverStripeComponent"),_SilverStripeComponent2=_interopRequireDefault(_SilverStripeComponent),ListGroupItem=function(_SilverStripeComponen){function ListGroupItem(props){_classCallCheck(this,ListGroupItem);var _this=_possibleConstructorReturn(this,_SilverStripeComponen.call(this,props));return _this.handleClick=_this.handleClick.bind(_this),_this}return _inherits(ListGroupItem,_SilverStripeComponen),ListGroupItem.prototype.render=function(){var className="list-group-item "+this.props.className;return _react2["default"].createElement("a",{tabIndex:"0",className:className,onClick:this.handleClick},this.props.children)},ListGroupItem.prototype.handleClick=function(event){this.props.handleClick&&this.props.handleClick(event,this.props.handleClickArg)},ListGroupItem}(_SilverStripeComponent2["default"]);ListGroupItem.propTypes={handleClickArg:_react2["default"].PropTypes.any,handleClick:_react2["default"].PropTypes.func},exports["default"]=ListGroupItem},{"lib/SilverStripeComponent":"lib/SilverStripeComponent",react:"react"}],7:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _defaults(obj,defaults){for(var keys=Object.getOwnPropertyNames(defaults),i=0;i<keys.length;i++){var key=keys[i],value=Object.getOwnPropertyDescriptor(defaults,key);value&&value.configurable&&void 0===obj[key]&&Object.defineProperty(obj,key,value)}return obj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):_defaults(subClass,superClass))}Object.defineProperty(exports,"__esModule",{value:!0});var _react=require("react"),_react2=_interopRequireDefault(_react),_reactBootstrap=require("react-bootstrap-4"),_SilverStripeComponent=require("lib/SilverStripeComponent"),_SilverStripeComponent2=_interopRequireDefault(_SilverStripeComponent),PopoverField=function(_SilverStripeComponen){function PopoverField(){return _classCallCheck(this,PopoverField),_possibleConstructorReturn(this,_SilverStripeComponen.apply(this,arguments))}return _inherits(PopoverField,_SilverStripeComponen),PopoverField.prototype.render=function(){var placement=this.getPlacement(),overlay=_react2["default"].createElement(_reactBootstrap.Popover,{id:this.props.id+"_Popover",className:"fade in popover-"+placement,title:this.getPopoverTitle()},this.props.children),buttonClasses=["btn","btn-secondary","btn--no-focus"];return this.props.title||buttonClasses.push("font-icon-dot-3 btn--icon-xl"),_react2["default"].createElement(_reactBootstrap.OverlayTrigger,{rootClose:!0,trigger:"click",container:this,placement:placement,overlay:overlay},_react2["default"].createElement("button",{id:this.props.id,type:"button",className:buttonClasses.join(" ")},this.props.title))},PopoverField.prototype.getPlacement=function(){var placement=this.getDataProperty("placement");return placement||"bottom"},PopoverField.prototype.getPopoverTitle=function(){var title=this.getDataProperty("popoverTitle");return title||""},PopoverField.prototype.getDataProperty=function(name){return"undefined"!=typeof this.props[name]?this.props[name]:"undefined"!=typeof this.props.data&&"undefined"!=typeof this.props.data[name]?this.props.data[name]:null},PopoverField}(_SilverStripeComponent2["default"]);PopoverField.propTypes={id:_react2["default"].PropTypes.string,title:_react2["default"].PropTypes.string,popoverTitle:_react2["default"].PropTypes.string,placement:_react2["default"].PropTypes.oneOf(["top","right","bottom","left"]),data:_react2["default"].PropTypes.shape({popoverTitle:_react2["default"].PropTypes.string,placement:_react2["default"].PropTypes.oneOf(["top","right","bottom","left"])})},exports["default"]=PopoverField},{"lib/SilverStripeComponent":"lib/SilverStripeComponent",react:"react","react-bootstrap-4":"react-bootstrap-4"}],8:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _defaults(obj,defaults){for(var keys=Object.getOwnPropertyNames(defaults),i=0;i<keys.length;i++){var key=keys[i],value=Object.getOwnPropertyDescriptor(defaults,key);value&&value.configurable&&void 0===obj[key]&&Object.defineProperty(obj,key,value)}return obj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):_defaults(subClass,superClass))}Object.defineProperty(exports,"__esModule",{value:!0});var _react=require("react"),_react2=_interopRequireDefault(_react),_i18n=require("i18n"),_i18n2=_interopRequireDefault(_i18n),_SilverStripeComponent=require("lib/SilverStripeComponent"),_SilverStripeComponent2=_interopRequireDefault(_SilverStripeComponent),Preview=function(_SilverStripeComponen){function Preview(){return _classCallCheck(this,Preview),_possibleConstructorReturn(this,_SilverStripeComponen.apply(this,arguments))}return _inherits(Preview,_SilverStripeComponen),Preview.prototype.render=function(){var body=null,previewUrl=null,previewType="";this.props.itemLinks&&this.props.itemLinks.preview&&(this.props.itemLinks.preview.Stage?(previewUrl=this.props.itemLinks.preview.Stage.href,previewType=this.props.itemLinks.preview.Stage.type):this.props.itemLinks.preview.Live&&(previewUrl=this.props.itemLinks.preview.Live.href,previewType=this.props.itemLinks.preview.Live.type));var editUrl=null,editKey="edit",toolbarButtons=[];return this.props.itemLinks&&this.props.itemLinks.edit&&(editUrl=this.props.itemLinks.edit.href,toolbarButtons.push(_react2["default"].createElement("a",{key:editKey,href:editUrl,className:"btn btn-secondary-outline font-icon-edit"},_react2["default"].createElement("span",{className:"btn__title"},_i18n2["default"]._t("Preview.EDIT","Edit"))))),body=this.props.itemId?previewUrl?previewType&&0===previewType.indexOf("image/")?_react2["default"].createElement("div",{className:"preview__file-container panel-scrollable"},_react2["default"].createElement("img",{alt:previewUrl,className:"preview__file--fits-space",src:previewUrl})):_react2["default"].createElement("iframe",{className:"preview__iframe",src:previewUrl}):_react2["default"].createElement("div",{className:"preview__overlay"},_react2["default"].createElement("h3",{className:"preview__overlay-text"},"There is no preview available for this item.")):_react2["default"].createElement("div",{className:"preview__overlay"},_react2["default"].createElement("h3",{className:"preview__overlay-text"},"No preview available.")),_react2["default"].createElement("div",{className:"cms-content__right preview"},body,_react2["default"].createElement("a",{href:"",className:"cms-content__back-btn font-icon-left-open-big"}),_react2["default"].createElement("div",{className:"toolbar--south"},_react2["default"].createElement("div",{className:"btn-toolbar"},toolbarButtons)))},Preview}(_SilverStripeComponent2["default"]);Preview.propTypes={itemLinks:_react2["default"].PropTypes.object,itemId:_react2["default"].PropTypes.number},exports["default"]=Preview},{i18n:"i18n","lib/SilverStripeComponent":"lib/SilverStripeComponent",react:"react"}],9:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _defaults(obj,defaults){for(var keys=Object.getOwnPropertyNames(defaults),i=0;i<keys.length;i++){var key=keys[i],value=Object.getOwnPropertyDescriptor(defaults,key);value&&value.configurable&&void 0===obj[key]&&Object.defineProperty(obj,key,value)}return obj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):_defaults(subClass,superClass))}Object.defineProperty(exports,"__esModule",{value:!0});var _react=require("react"),_react2=_interopRequireDefault(_react),_SilverStripeComponent=require("lib/SilverStripeComponent"),_SilverStripeComponent2=_interopRequireDefault(_SilverStripeComponent),TextField=function(_SilverStripeComponen){function TextField(props){_classCallCheck(this,TextField);var _this=_possibleConstructorReturn(this,_SilverStripeComponen.call(this,props));return _this.handleChange=_this.handleChange.bind(_this),_this}return _inherits(TextField,_SilverStripeComponen),TextField.prototype.render=function(){var labelText=null!==this.props.leftTitle?this.props.leftTitle:this.props.title,field=null;field=this.props.readOnly?_react2["default"].createElement("div",null,_react2["default"].createElement("i",null,this.props.value)):_react2["default"].createElement("input",this.getInputProps());var classNames=["form-group",this.props.extraClass].join(" ");return _react2["default"].createElement("div",{className:classNames},labelText&&_react2["default"].createElement("label",{className:"form__field-label",htmlFor:"gallery_"+this.props.name},labelText),_react2["default"].createElement("div",{className:"form__field-holder"},field))},TextField.prototype.getInputProps=function(){return{className:["form-control",this.props.extraClass].join(" "),id:"gallery_"+this.props.name,name:this.props.name,onChange:this.handleChange,type:"text",value:this.props.value}},TextField.prototype.handleChange=function(event){"undefined"!=typeof this.props.onChange&&this.props.onChange(event,{id:this.props.id,value:event.target.value})},TextField}(_SilverStripeComponent2["default"]);TextField.propTypes={leftTitle:_react2["default"].PropTypes.string,extraClass:_react2["default"].PropTypes.string,name:_react2["default"].PropTypes.string.isRequired,onChange:_react2["default"].PropTypes.func,value:_react2["default"].PropTypes.string,readOnly:_react2["default"].PropTypes.bool},exports["default"]=TextField},{"lib/SilverStripeComponent":"lib/SilverStripeComponent",react:"react"}],10:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _defaults(obj,defaults){for(var keys=Object.getOwnPropertyNames(defaults),i=0;i<keys.length;i++){var key=keys[i],value=Object.getOwnPropertyDescriptor(defaults,key);value&&value.configurable&&void 0===obj[key]&&Object.defineProperty(obj,key,value)}return obj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):_defaults(subClass,superClass))}Object.defineProperty(exports,"__esModule",{value:!0});var _react=require("react"),_react2=_interopRequireDefault(_react),_SilverStripeComponent=require("lib/SilverStripeComponent"),_SilverStripeComponent2=_interopRequireDefault(_SilverStripeComponent),App=function(_SilverStripeComponen){function App(){return _classCallCheck(this,App),_possibleConstructorReturn(this,_SilverStripeComponen.apply(this,arguments))}return _inherits(App,_SilverStripeComponen),App.prototype.render=function(){return _react2["default"].createElement("div",{className:"app"},this.props.children)},App}(_SilverStripeComponent2["default"]);exports["default"]=App},{"lib/SilverStripeComponent":"lib/SilverStripeComponent",react:"react"}],11:[function(require,module,exports){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj["default"]=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _defaults(obj,defaults){for(var keys=Object.getOwnPropertyNames(defaults),i=0;i<keys.length;i++){var key=keys[i],value=Object.getOwnPropertyDescriptor(defaults,key);value&&value.configurable&&void 0===obj[key]&&Object.defineProperty(obj,key,value)}return obj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):_defaults(subClass,superClass));
}function mapStateToProps(state){return{config:state.config,campaignId:state.campaign.campaignId,view:state.campaign.view,breadcrumbs:state.breadcrumbs,sectionConfig:state.config.sections.CampaignAdmin,securityId:state.config.SecurityID}}function mapDispatchToProps(dispatch){return{breadcrumbsActions:(0,_redux.bindActionCreators)(breadcrumbsActions,dispatch)}}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},_react=require("react"),_react2=_interopRequireDefault(_react),_reactRedux=require("react-redux"),_redux=require("redux"),_reactRouter=require("react-router"),_Backend=require("lib/Backend"),_Backend2=_interopRequireDefault(_Backend),_BreadcrumbsActions=require("state/breadcrumbs/BreadcrumbsActions"),breadcrumbsActions=_interopRequireWildcard(_BreadcrumbsActions),_Breadcrumb=require("components/Breadcrumb/Breadcrumb"),_Breadcrumb2=_interopRequireDefault(_Breadcrumb),_SilverStripeComponent=require("lib/SilverStripeComponent"),_SilverStripeComponent2=_interopRequireDefault(_SilverStripeComponent),_FormAction=require("components/FormAction/FormAction"),_FormAction2=_interopRequireDefault(_FormAction),_i18n=require("i18n"),_i18n2=_interopRequireDefault(_i18n),_Toolbar=require("components/Toolbar/Toolbar"),_Toolbar2=_interopRequireDefault(_Toolbar),_FormBuilder=require("components/FormBuilder/FormBuilder"),_FormBuilder2=_interopRequireDefault(_FormBuilder),_CampaignAdminList=require("./CampaignAdminList"),_CampaignAdminList2=_interopRequireDefault(_CampaignAdminList),CampaignAdmin=function(_SilverStripeComponen){function CampaignAdmin(props){_classCallCheck(this,CampaignAdmin);var _this=_possibleConstructorReturn(this,_SilverStripeComponen.call(this,props));return _this.publishApi=_Backend2["default"].createEndpointFetcher({url:_this.props.sectionConfig.publishEndpoint.url,method:_this.props.sectionConfig.publishEndpoint.method,defaultData:{SecurityID:_this.props.securityId},payloadSchema:{id:{urlReplacement:":id",remove:!0}}}),_this.handleBackButtonClick=_this.handleBackButtonClick.bind(_this),_this}return _inherits(CampaignAdmin,_SilverStripeComponen),CampaignAdmin.prototype.componentWillMount=function(){0===this.props.breadcrumbs.length&&this.setBreadcrumbs(this.props.params.view,this.props.params.id)},CampaignAdmin.prototype.componentWillReceiveProps=function(props){var hasChangedRoute=this.props.params.id!==props.params.id||this.props.params.view!==props.params.view;hasChangedRoute&&this.setBreadcrumbs(props.params.view,props.params.id)},CampaignAdmin.prototype.setBreadcrumbs=function(view,id){var breadcrumbs=[{text:_i18n2["default"]._t("Campaigns.CAMPAIGN","Campaigns"),href:this.props.sectionConfig.url}];switch(view){case"show":break;case"edit":breadcrumbs.push({text:_i18n2["default"]._t("Campaigns.EDIT_CAMPAIGN","Editing Campaign"),href:this.getActionRoute(id,view)});break;case"create":breadcrumbs.push({text:_i18n2["default"]._t("Campaigns.ADD_CAMPAIGN","Add Campaign"),href:this.getActionRoute(id,view)})}this.props.breadcrumbsActions.setBreadcrumbs(breadcrumbs)},CampaignAdmin.prototype.handleBackButtonClick=function(event){if(this.props.breadcrumbs.length>1){var last=this.props.breadcrumbs[this.props.breadcrumbs.length-2];if(last&&last.href)return event.preventDefault(),void this.props.router.push(last.href)}},CampaignAdmin.prototype.render=function(){var view=null;switch(this.props.params.view){case"show":view=this.renderItemListView();break;case"edit":view=this.renderDetailEditView();break;case"create":view=this.renderCreateView();break;default:view=this.renderIndexView()}return view},CampaignAdmin.prototype.renderIndexView=function(){var schemaUrl=this.props.sectionConfig.form.EditForm.schemaUrl,formActionProps={title:_i18n2["default"]._t("Campaigns.ADDCAMPAIGN"),icon:"plus",handleClick:this.addCampaign.bind(this)},formBuilderProps={createFn:this.campaignListCreateFn.bind(this),schemaUrl:schemaUrl};return _react2["default"].createElement("div",{className:"cms-content__inner no-preview"},_react2["default"].createElement("div",{className:"cms-content__left cms-campaigns collapse in","aria-expanded":"true"},_react2["default"].createElement(_Toolbar2["default"],null,_react2["default"].createElement(_Breadcrumb2["default"],{multiline:!0,crumbs:this.props.breadcrumbs})),_react2["default"].createElement("div",{className:"panel-scrollable panel-scrollable--single-toolbar"},_react2["default"].createElement("div",{className:"toolbar--content"},_react2["default"].createElement("div",{className:"btn-toolbar"},_react2["default"].createElement(_FormAction2["default"],formActionProps))),_react2["default"].createElement("div",{className:"campaign-admin container-fluid"},_react2["default"].createElement(_FormBuilder2["default"],formBuilderProps)))))},CampaignAdmin.prototype.renderItemListView=function(){var props={sectionConfig:this.props.sectionConfig,campaignId:this.props.params.id,itemListViewEndpoint:this.props.sectionConfig.itemListViewEndpoint,publishApi:this.publishApi,handleBackButtonClick:this.handleBackButtonClick.bind(this)};return _react2["default"].createElement(_CampaignAdminList2["default"],props)},CampaignAdmin.prototype.renderDetailEditView=function(){var baseSchemaUrl=this.props.sectionConfig.form.DetailEditForm.schemaUrl,formBuilderProps={createFn:this.campaignEditCreateFn.bind(this),schemaUrl:baseSchemaUrl+"/"+this.props.params.id};return _react2["default"].createElement("div",{className:"cms-content__inner"},_react2["default"].createElement(_Toolbar2["default"],{showBackButton:!0,handleBackButtonClick:this.handleBackButtonClick},_react2["default"].createElement(_Breadcrumb2["default"],{multiline:!0,crumbs:this.props.breadcrumbs})),_react2["default"].createElement("div",{className:"panel-scrollable panel-scrollable--single-toolbar container-fluid m-t-1"},_react2["default"].createElement("div",{className:"form--inline"},_react2["default"].createElement(_FormBuilder2["default"],formBuilderProps))))},CampaignAdmin.prototype.renderCreateView=function(){var baseSchemaUrl=this.props.sectionConfig.form.DetailEditForm.schemaUrl,formBuilderProps={createFn:this.campaignAddCreateFn.bind(this),schemaUrl:baseSchemaUrl+"/"+this.props.params.id};return _react2["default"].createElement("div",{className:"cms-content__inner"},_react2["default"].createElement(_Toolbar2["default"],{showBackButton:!0,handleBackButtonClick:this.handleBackButtonClick},_react2["default"].createElement(_Breadcrumb2["default"],{multiline:!0,crumbs:this.props.breadcrumbs})),_react2["default"].createElement("div",{className:"panel-scrollable panel-scrollable--single-toolbar container-fluid m-t-1"},_react2["default"].createElement(_FormBuilder2["default"],formBuilderProps)))},CampaignAdmin.prototype.campaignEditCreateFn=function(Component,props){var _this2=this,url=this.props.sectionConfig.url;if("action_cancel"===props.name){var extendedProps=_extends({},props,{handleClick:function(event){event.preventDefault(),_this2.props.router.push(url)}});return _react2["default"].createElement(Component,_extends({key:props.id},extendedProps))}return _react2["default"].createElement(Component,_extends({key:props.id},props))},CampaignAdmin.prototype.campaignAddCreateFn=function(Component,props){var _this3=this,url=this.props.sectionConfig.url;if("action_cancel"===props.name){var extendedProps=_extends({},props,{handleClick:function(event){event.preventDefault(),_this3.props.router.push(url)}});return _react2["default"].createElement(Component,_extends({key:props.name},extendedProps))}return _react2["default"].createElement(Component,_extends({key:props.name},props))},CampaignAdmin.prototype.campaignListCreateFn=function(Component,props){var _this4=this,sectionUrl=this.props.sectionConfig.url,typeUrlParam="set";if("GridField"===props.component){var extendedProps=_extends({},props,{data:_extends({},props.data,{handleDrillDown:function(event,record){_this4.props.router.push(sectionUrl+"/"+typeUrlParam+"/"+record.ID+"/show")},handleEditRecord:function(event,id){_this4.props.router.push(sectionUrl+"/"+typeUrlParam+"/"+id+"/edit")}})});return _react2["default"].createElement(Component,_extends({key:extendedProps.name},extendedProps))}return _react2["default"].createElement(Component,_extends({key:props.name},props))},CampaignAdmin.prototype.addCampaign=function(){var path=this.getActionRoute(0,"create");this.props.router.push(path)},CampaignAdmin.prototype.getActionRoute=function(id,view){return this.props.sectionConfig.url+"/set/"+id+"/"+view},CampaignAdmin}(_SilverStripeComponent2["default"]);CampaignAdmin.propTypes={breadcrumbsActions:_react2["default"].PropTypes.object.isRequired,campaignId:_react2["default"].PropTypes.string,sectionConfig:_react2["default"].PropTypes.object.isRequired,securityId:_react2["default"].PropTypes.string.isRequired,view:_react2["default"].PropTypes.string},exports["default"]=(0,_reactRouter.withRouter)((0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(CampaignAdmin))},{"./CampaignAdminList":13,"components/Breadcrumb/Breadcrumb":"components/Breadcrumb/Breadcrumb","components/FormAction/FormAction":"components/FormAction/FormAction","components/FormBuilder/FormBuilder":"components/FormBuilder/FormBuilder","components/Toolbar/Toolbar":"components/Toolbar/Toolbar",i18n:"i18n","lib/Backend":"lib/Backend","lib/SilverStripeComponent":"lib/SilverStripeComponent",react:"react","react-redux":"react-redux","react-router":"react-router",redux:"redux","state/breadcrumbs/BreadcrumbsActions":"state/breadcrumbs/BreadcrumbsActions"}],12:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _defaults(obj,defaults){for(var keys=Object.getOwnPropertyNames(defaults),i=0;i<keys.length;i++){var key=keys[i],value=Object.getOwnPropertyDescriptor(defaults,key);value&&value.configurable&&void 0===obj[key]&&Object.defineProperty(obj,key,value)}return obj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):_defaults(subClass,superClass))}Object.defineProperty(exports,"__esModule",{value:!0});var _react=require("react"),_react2=_interopRequireDefault(_react),_SilverStripeComponent=require("lib/SilverStripeComponent"),_SilverStripeComponent2=_interopRequireDefault(_SilverStripeComponent),_i18n=require("i18n"),_i18n2=_interopRequireDefault(_i18n),CampaignAdminItem=function(_SilverStripeComponen){function CampaignAdminItem(){return _classCallCheck(this,CampaignAdminItem),_possibleConstructorReturn(this,_SilverStripeComponen.apply(this,arguments))}return _inherits(CampaignAdminItem,_SilverStripeComponen),CampaignAdminItem.prototype.render=function(){var thumbnail=null,badge={},item=this.props.item,campaign=this.props.campaign;if("open"===campaign.State)switch(item.ChangeType){case"created":badge.className="label label-warning list-group-item__status",badge.Title=_i18n2["default"]._t("CampaignItem.DRAFT","Draft");break;case"modified":badge.className="label label-warning list-group-item__status",badge.Title=_i18n2["default"]._t("CampaignItem.MODIFIED","Modified");break;case"deleted":badge.className="label label-error list-group-item__status",badge.Title=_i18n2["default"]._t("CampaignItem.REMOVED","Removed");break;case"none":default:badge.className="label label-success list-group-item__status",badge.Title=_i18n2["default"]._t("CampaignItem.NO_CHANGES","No changes")}var links=_react2["default"].createElement("span",{className:"list-group-item__info campaign-admin__item-links--has-links font-icon-link"},"3 linked items");return item.Thumbnail&&(thumbnail=_react2["default"].createElement("span",{className:"list-group-item__thumbnail"},_react2["default"].createElement("img",{alt:item.Title,src:item.Thumbnail}))),_react2["default"].createElement("div",null,thumbnail,_react2["default"].createElement("h4",{className:"list-group-item-heading"},item.Title),_react2["default"].createElement("span",{className:"list-group-item__info campaign-admin__item-links--is-linked font-icon-link"}),links,badge.className&&badge.Title&&_react2["default"].createElement("span",{className:badge.className},badge.Title))},CampaignAdminItem}(_SilverStripeComponent2["default"]);CampaignAdminItem.propTypes={campaign:_react2["default"].PropTypes.object.isRequired,item:_react2["default"].PropTypes.object.isRequired},exports["default"]=CampaignAdminItem},{i18n:"i18n","lib/SilverStripeComponent":"lib/SilverStripeComponent",react:"react"}],13:[function(require,module,exports){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj["default"]=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _defaults(obj,defaults){for(var keys=Object.getOwnPropertyNames(defaults),i=0;i<keys.length;i++){var key=keys[i],value=Object.getOwnPropertyDescriptor(defaults,key);value&&value.configurable&&void 0===obj[key]&&Object.defineProperty(obj,key,value)}return obj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):_defaults(subClass,superClass))}function mapStateToProps(state,ownProps){var record=null,treeClass=ownProps.sectionConfig.treeClass;return state.records&&state.records[treeClass]&&ownProps.campaignId&&(record=state.records[treeClass][parseInt(ownProps.campaignId,10)]),{config:state.config,record:record||{},campaign:state.campaign,treeClass:treeClass,breadcrumbs:state.breadcrumbs}}function mapDispatchToProps(dispatch){return{breadcrumbsActions:(0,_redux.bindActionCreators)(breadcrumbsActions,dispatch),recordActions:(0,_redux.bindActionCreators)(recordActions,dispatch),campaignActions:(0,_redux.bindActionCreators)(campaignActions,dispatch)}}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},_react=require("react"),_react2=_interopRequireDefault(_react),_redux=require("redux"),_reactRedux=require("react-redux"),_BreadcrumbsActions=require("state/breadcrumbs/BreadcrumbsActions"),breadcrumbsActions=_interopRequireWildcard(_BreadcrumbsActions),_RecordsActions=require("state/records/RecordsActions"),recordActions=_interopRequireWildcard(_RecordsActions),_CampaignActions=require("state/campaign/CampaignActions"),campaignActions=_interopRequireWildcard(_CampaignActions),_SilverStripeComponent=require("lib/SilverStripeComponent"),_SilverStripeComponent2=_interopRequireDefault(_SilverStripeComponent),_Accordion=require("components/Accordion/Accordion"),_Accordion2=_interopRequireDefault(_Accordion),_AccordionBlock=require("components/Accordion/AccordionBlock"),_AccordionBlock2=_interopRequireDefault(_AccordionBlock),_ListGroupItem=require("components/ListGroup/ListGroupItem"),_ListGroupItem2=_interopRequireDefault(_ListGroupItem),_Toolbar=require("components/Toolbar/Toolbar"),_Toolbar2=_interopRequireDefault(_Toolbar),_FormAction=require("components/FormAction/FormAction"),_FormAction2=_interopRequireDefault(_FormAction),_CampaignAdminItem=require("./CampaignAdminItem"),_CampaignAdminItem2=_interopRequireDefault(_CampaignAdminItem),_Breadcrumb=require("components/Breadcrumb/Breadcrumb"),_Breadcrumb2=_interopRequireDefault(_Breadcrumb),_Preview=require("components/Preview/Preview"),_Preview2=_interopRequireDefault(_Preview),_i18n=require("i18n"),_i18n2=_interopRequireDefault(_i18n),CampaignAdminList=function(_SilverStripeComponen){function CampaignAdminList(props){_classCallCheck(this,CampaignAdminList);var _this=_possibleConstructorReturn(this,_SilverStripeComponen.call(this,props));return _this.handlePublish=_this.handlePublish.bind(_this),_this.handleItemSelected=_this.handleItemSelected.bind(_this),_this.setBreadcrumbs=_this.setBreadcrumbs.bind(_this),_this}return _inherits(CampaignAdminList,_SilverStripeComponen),CampaignAdminList.prototype.componentDidMount=function(){var fetchURL=this.props.itemListViewEndpoint.url.replace(/:id/,this.props.campaignId);_SilverStripeComponen.prototype.componentDidMount.call(this),this.setBreadcrumbs(),Object.keys(this.props.record).length||this.props.recordActions.fetchRecord(this.props.treeClass,"get",fetchURL).then(this.setBreadcrumbs)},CampaignAdminList.prototype.setBreadcrumbs=function(){if(this.props.record){var breadcrumbs=[{text:_i18n2["default"]._t("Campaigns.CAMPAIGN","Campaigns"),href:this.props.sectionConfig.url}];breadcrumbs.push({text:this.props.record.Name,href:this.props.sectionConfig.url+"/set/"+this.props.campaignId+"/show"}),this.props.breadcrumbsActions.setBreadcrumbs(breadcrumbs)}},CampaignAdminList.prototype.render=function(){var _this2=this,itemId=this.props.campaign.changeSetItemId,itemLinks=null,campaignId=this.props.campaignId,campaign=this.props.record,itemGroups=this.groupItemsForSet(),accordionBlocks=[];Object.keys(itemGroups).forEach(function(className){var group=itemGroups[className],groupCount=group.items.length,listGroupItems=[],title=groupCount+" "+(1===groupCount?group.singular:group.plural),groupid="Set_"+campaignId+"_Group_"+className;group.items.forEach(function(item){itemId||(itemId=item.ID);var selected=itemId===item.ID;selected&&item._links&&(itemLinks=item._links);var itemClassNames=[];"none"!==item.ChangeType&&"published"!==campaign.State||itemClassNames.push("list-group-item--inactive"),selected&&itemClassNames.push("active"),listGroupItems.push(_react2["default"].createElement(_ListGroupItem2["default"],{key:item.ID,className:itemClassNames.join(" "),handleClick:_this2.handleItemSelected,handleClickArg:item.ID},_react2["default"].createElement(_CampaignAdminItem2["default"],{item:item,campaign:_this2.props.record})))}),accordionBlocks.push(_react2["default"].createElement(_AccordionBlock2["default"],{key:groupid,groupid:groupid,title:title},listGroupItems))});var pagesLink=[this.props.config.baseUrl,this.props.config.sections.CMSPagesController.url].join("/"),body=accordionBlocks.length?_react2["default"].createElement(_Accordion2["default"],null,accordionBlocks):_react2["default"].createElement("div",{className:"alert alert-warning",role:"alert"},_react2["default"].createElement("strong",null,"This campaign is empty.")," You can add pages by selecting"," ",_react2["default"].createElement("em",null,"Add to campaign")," from within the ",_react2["default"].createElement("em",null,"More Options")," popup on"," ","the ",_react2["default"].createElement("a",{href:pagesLink},"edit page screen"),"."),bodyClass=["container-fluid","campaign-items","panel-scrollable","panel-scrollable--double-toolbar"];return _react2["default"].createElement("div",{className:"cms-content__split cms-content__split--left-sm"},_react2["default"].createElement("div",{className:"cms-content__left cms-campaigns collapse in","aria-expanded":"true"},_react2["default"].createElement(_Toolbar2["default"],{showBackButton:!0,handleBackButtonClick:this.props.handleBackButtonClick},_react2["default"].createElement(_Breadcrumb2["default"],{multiline:!0,crumbs:this.props.breadcrumbs})),_react2["default"].createElement("div",{className:bodyClass.join(" ")},body),_react2["default"].createElement("div",{className:"toolbar--south"},this.renderButtonToolbar())),_react2["default"].createElement(_Preview2["default"],{itemLinks:itemLinks,itemId:itemId}))},CampaignAdminList.prototype.handleItemSelected=function(event,itemId){this.props.campaignActions.selectChangeSetItem(itemId)},CampaignAdminList.prototype.renderButtonToolbar=function(){var items=this.getItems();if(!items||!items.length)return _react2["default"].createElement("div",{className:"btn-toolbar"});var actionProps={};return"open"===this.props.record.State?actionProps=_extends(actionProps,{title:_i18n2["default"]._t("Campaigns.PUBLISHCAMPAIGN"),bootstrapButtonStyle:"primary",loading:this.props.campaign.isPublishing,handleClick:this.handlePublish,icon:"rocket"}):"published"===this.props.record.State&&(actionProps=_extends(actionProps,{title:_i18n2["default"]._t("Campaigns.REVERTCAMPAIGN"),bootstrapButtonStyle:"default",icon:"back-in-time",disabled:!0})),_react2["default"].createElement("div",{className:"btn-toolbar"},_react2["default"].createElement(_FormAction2["default"],actionProps))},CampaignAdminList.prototype.getItems=function(){return this.props.record&&this.props.record._embedded?this.props.record._embedded.items:null},CampaignAdminList.prototype.groupItemsForSet=function(){var groups={},items=this.getItems();return items?(items.forEach(function(item){var classname=item.BaseClass;groups[classname]||(groups[classname]={singular:item.Singular,plural:item.Plural,items:[]}),groups[classname].items.push(item)}),groups):groups},CampaignAdminList.prototype.handlePublish=function(e){e.preventDefault(),this.props.campaignActions.publishCampaign(this.props.publishApi,this.props.treeClass,this.props.campaignId)},CampaignAdminList}(_SilverStripeComponent2["default"]);CampaignAdminList.propTypes={campaign:_react2["default"].PropTypes.shape({isPublishing:_react2["default"].PropTypes.bool.isRequired,changeSetItemId:_react2["default"].PropTypes.number}),breadcrumbsActions:_react2["default"].PropTypes.object.isRequired,campaignActions:_react2["default"].PropTypes.object.isRequired,publishApi:_react2["default"].PropTypes.func.isRequired,record:_react2["default"].PropTypes.object.isRequired,recordActions:_react2["default"].PropTypes.object.isRequired,sectionConfig:_react2["default"].PropTypes.object.isRequired,handleBackButtonClick:_react2["default"].PropTypes.func},exports["default"]=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(CampaignAdminList)},{"./CampaignAdminItem":12,"components/Accordion/Accordion":3,"components/Accordion/AccordionBlock":4,"components/Breadcrumb/Breadcrumb":"components/Breadcrumb/Breadcrumb","components/FormAction/FormAction":"components/FormAction/FormAction","components/ListGroup/ListGroupItem":6,"components/Preview/Preview":8,"components/Toolbar/Toolbar":"components/Toolbar/Toolbar",i18n:"i18n","lib/SilverStripeComponent":"lib/SilverStripeComponent",react:"react","react-redux":"react-redux",redux:"redux","state/breadcrumbs/BreadcrumbsActions":"state/breadcrumbs/BreadcrumbsActions","state/campaign/CampaignActions":22,"state/records/RecordsActions":30}],14:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}var _reactRouter=require("react-router"),_Config=require("lib/Config"),_Config2=_interopRequireDefault(_Config),_ReactRouteRegister=require("lib/ReactRouteRegister"),_ReactRouteRegister2=_interopRequireDefault(_ReactRouteRegister),_CampaignAdmin=require("./CampaignAdmin"),_CampaignAdmin2=_interopRequireDefault(_CampaignAdmin);document.addEventListener("DOMContentLoaded",function(){var sectionConfig=_Config2["default"].getSection("CampaignAdmin");_ReactRouteRegister2["default"].add({path:sectionConfig.url,component:(0,_reactRouter.withRouter)(_CampaignAdmin2["default"]),childRoutes:[{path:":type/:id/:view",component:_CampaignAdmin2["default"]},{path:"set/:id/:view",component:_CampaignAdmin2["default"]}]})})},{"./CampaignAdmin":11,"lib/Config":16,"lib/ReactRouteRegister":"lib/ReactRouteRegister","react-router":"react-router"}],15:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function checkStatus(response){var ret=void 0,error=void 0;if(!(response.status>=200&&response.status<300))throw error=new Error(response.statusText),error.response=response,error;return ret=response}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},_isomorphicFetch=require("isomorphic-fetch"),_isomorphicFetch2=_interopRequireDefault(_isomorphicFetch),_es6Promise=require("es6-promise"),_es6Promise2=_interopRequireDefault(_es6Promise),_qs=require("qs"),_qs2=_interopRequireDefault(_qs),_merge=require("merge"),_merge2=_interopRequireDefault(_merge);_es6Promise2["default"].polyfill();var Backend=function(){function Backend(){_classCallCheck(this,Backend),this.fetch=_isomorphicFetch2["default"]}return Backend.prototype.createEndpointFetcher=function(endpointSpec){function encode(contentType,data){switch(contentType){case"application/x-www-form-urlencoded":return _qs2["default"].stringify(data);case"application/json":case"application/x-json":case"application/x-javascript":case"text/javascript":case"text/x-javascript":case"text/x-json":return JSON.stringify(data);default:throw new Error("Can't encode format: "+contentType)}}function decode(contentType,text){switch(contentType){case"application/x-www-form-urlencoded":return _qs2["default"].parse(text);case"application/json":case"application/x-json":case"application/x-javascript":case"text/javascript":case"text/x-javascript":case"text/x-json":return JSON.parse(text);default:throw new Error("Can't decode format: "+contentType)}}function addQuerystring(url,querystring){return""===querystring?url:url.match(/\?/)?url+"&"+querystring:url+"?"+querystring}function parseResponse(response){return response.text().then(function(body){return decode(response.headers.get("Content-Type"),body)})}function applySchemaToData(payloadSchema,data){return Object.keys(data).reduce(function(prev,key){var schema=payloadSchema[key];return!schema||schema.remove!==!0&&schema.querystring!==!0?_extends(prev,_defineProperty({},key,data[key])):prev},{})}function applySchemaToUrl(payloadSchema,url,data){var opts=arguments.length<=3||void 0===arguments[3]?{setFromData:!1}:arguments[3],newUrl=url,queryData=Object.keys(data).reduce(function(prev,key){var schema=payloadSchema[key],includeThroughSetFromData=opts.setFromData===!0&&!(schema&&schema.remove===!0),includeThroughSpec=schema&&schema.querystring===!0&&schema.remove!==!0;return includeThroughSetFromData||includeThroughSpec?_extends(prev,_defineProperty({},key,data[key])):prev},{});return newUrl=addQuerystring(newUrl,encode("application/x-www-form-urlencoded",queryData)),newUrl=Object.keys(payloadSchema).reduce(function(prev,key){var replacement=payloadSchema[key].urlReplacement;return replacement?prev.replace(replacement,data[key]):prev},newUrl)}var _this=this,refinedSpec=_extends({method:"get",payloadFormat:"application/x-www-form-urlencoded",responseFormat:"application/json",payloadSchema:{},defaultData:{}},endpointSpec),formatShortcuts={json:"application/json",urlencoded:"application/x-www-form-urlencoded"};return["payloadFormat","responseFormat"].forEach(function(key){formatShortcuts[refinedSpec[key]]&&(refinedSpec[key]=formatShortcuts[refinedSpec[key]])}),function(){var data=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],headers=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],mergedHeaders=_extends({},headers,{Accept:refinedSpec.responseFormat,"Content-Type":refinedSpec.payloadFormat}),mergedData=_merge2["default"].recursive({},refinedSpec.defaultData,data),url=applySchemaToUrl(refinedSpec.payloadSchema,refinedSpec.url,mergedData,{setFromData:"get"===refinedSpec.method.toLowerCase()}),encodedData=encode(refinedSpec.payloadFormat,applySchemaToData(refinedSpec.payloadSchema,mergedData)),args="get"===refinedSpec.method.toLowerCase()?[url,mergedHeaders]:[url,encodedData,mergedHeaders];return _this[refinedSpec.method.toLowerCase()].apply(_this,args).then(parseResponse)}},Backend.prototype.get=function(url){var headers=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];return this.fetch(url,{method:"get",credentials:"same-origin",headers:headers}).then(checkStatus)},Backend.prototype.post=function(url){var data=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],headers=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],defaultHeaders={"Content-Type":"application/x-www-form-urlencoded"};return this.fetch(url,{method:"post",headers:_extends({},defaultHeaders,headers),credentials:"same-origin",body:data}).then(checkStatus)},Backend.prototype.put=function(url){var data=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],headers=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];return this.fetch(url,{method:"put",credentials:"same-origin",body:data,headers:headers}).then(checkStatus)},Backend.prototype["delete"]=function(url){var data=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],headers=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];return this.fetch(url,{method:"delete",credentials:"same-origin",body:data,headers:headers}).then(checkStatus)},Backend}(),backend=new Backend;exports["default"]=backend},{"es6-promise":42,"isomorphic-fetch":57,merge:58,qs:59}],16:[function(require,module,exports){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(exports,"__esModule",{value:!0});var Config=function(){function Config(){_classCallCheck(this,Config)}return Config.get=function(key){return window.ss.config[key]},Config.getAll=function(){return window.ss.config},Config.getSection=function(key){return window.ss.config.sections[key]},Config}();exports["default"]=Config},{}],17:[function(require,module,exports){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(exports,"__esModule",{value:!0});var Injector=function(){function Injector(){_classCallCheck(this,Injector),this.components={}}return Injector.prototype.getComponentByName=function(componentName){return this.components[componentName]},Injector.prototype.getComponentByDataType=function(dataType){switch(dataType){case"Text":return this.components.TextField;case"Hidden":return this.components.HiddenField;case"Custom":return this.components.GridField;default:return null;
}},Injector.prototype.register=function(name,component){this.components[name]=component},Injector}();window.ss=window.ss||{},window.ss.injector=window.ss.injector||new Injector,exports["default"]=window.ss.injector},{}],18:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function resolveURLToBase(path){var absoluteBase=_page2["default"].getAbsoluteBase(),absolutePath=_url2["default"].resolve(absoluteBase,path);return 0!==absolutePath.indexOf(absoluteBase)?absolutePath:absolutePath.substring(absoluteBase.length-1)}function show(pageShow){return function(path,state,dispatch,push){return pageShow(_page2["default"].resolveURLToBase(path),state,dispatch,push)}}function routeAppliesToCurrentLocation(route){var r=new _page2["default"].Route(route);return r.match(_page2["default"].current,{})}function getAbsoluteBase(){return _page2["default"].absoluteBaseURL}function setAbsoluteBase(base){_page2["default"].absoluteBaseURL=base;var a=document.createElement("a");a.href=base;var basePath=a.pathname;basePath=basePath.replace(/\/$/,""),basePath.match(/^[^\/]/)&&(basePath="/"+basePath),_page2["default"].base(basePath)}Object.defineProperty(exports,"__esModule",{value:!0});var _page=require("page.js"),_page2=_interopRequireDefault(_page),_url=require("url"),_url2=_interopRequireDefault(_url);_page2["default"].oldshow||(_page2["default"].oldshow=_page2["default"].show),_page2["default"].setAbsoluteBase=setAbsoluteBase.bind(_page2["default"]),_page2["default"].getAbsoluteBase=getAbsoluteBase.bind(_page2["default"]),_page2["default"].resolveURLToBase=resolveURLToBase.bind(_page2["default"]),_page2["default"].show=show(_page2["default"].oldshow),_page2["default"].routeAppliesToCurrentLocation=routeAppliesToCurrentLocation,window.ss=window.ss||{},window.ss.router=window.ss.router||_page2["default"],exports["default"]=window.ss.router},{"page.js":"page.js",url:64}],19:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]={SET_BREADCRUMBS:"SET_BREADCRUMBS"}},{}],20:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function reducer(){var state=arguments.length<=0||void 0===arguments[0]?initialState:arguments[0],action=arguments[1];switch(action.type){case _BreadcrumbsActionTypes2["default"].SET_BREADCRUMBS:return(0,_deepFreezeStrict2["default"])(_extends([],action.payload.breadcrumbs));default:return state}}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},_deepFreezeStrict=require("deep-freeze-strict"),_deepFreezeStrict2=_interopRequireDefault(_deepFreezeStrict),_BreadcrumbsActionTypes=require("./BreadcrumbsActionTypes"),_BreadcrumbsActionTypes2=_interopRequireDefault(_BreadcrumbsActionTypes),initialState=(0,_deepFreezeStrict2["default"])([]);exports["default"]=reducer},{"./BreadcrumbsActionTypes":19,"deep-freeze-strict":"deep-freeze-strict"}],21:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]={SET_CAMPAIGN_ACTIVE_CHANGESET:"SET_CAMPAIGN_ACTIVE_CHANGESET",SET_CAMPAIGN_SELECTED_CHANGESETITEM:"SET_CAMPAIGN_SELECTED_CHANGESETITEM",PUBLISH_CAMPAIGN_REQUEST:"PUBLISH_CAMPAIGN_REQUEST",PUBLISH_CAMPAIGN_SUCCESS:"PUBLISH_CAMPAIGN_SUCCESS",PUBLISH_CAMPAIGN_FAILURE:"PUBLISH_CAMPAIGN_FAILURE"}},{}],22:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function selectChangeSetItem(changeSetItemId){return{type:_CampaignActionTypes2["default"].SET_CAMPAIGN_SELECTED_CHANGESETITEM,payload:{changeSetItemId:changeSetItemId}}}function showCampaignView(campaignId,view){return function(dispatch){dispatch({type:_CampaignActionTypes2["default"].SET_CAMPAIGN_ACTIVE_CHANGESET,payload:{campaignId:campaignId,view:view}})}}function publishCampaign(publishApi,recordType,campaignId){return function(dispatch){dispatch({type:_CampaignActionTypes2["default"].PUBLISH_CAMPAIGN_REQUEST,payload:{campaignId:campaignId}}),publishApi({id:campaignId}).then(function(data){dispatch({type:_CampaignActionTypes2["default"].PUBLISH_CAMPAIGN_SUCCESS,payload:{campaignId:campaignId}}),dispatch({type:_RecordsActionTypes2["default"].FETCH_RECORD_SUCCESS,payload:{recordType:recordType,data:data}})})["catch"](function(error){dispatch({type:_CampaignActionTypes2["default"].PUBLISH_CAMPAIGN_FAILURE,payload:{error:error}})})}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.selectChangeSetItem=selectChangeSetItem,exports.showCampaignView=showCampaignView,exports.publishCampaign=publishCampaign;var _CampaignActionTypes=require("./CampaignActionTypes"),_CampaignActionTypes2=_interopRequireDefault(_CampaignActionTypes),_RecordsActionTypes=require("state/records/RecordsActionTypes"),_RecordsActionTypes2=_interopRequireDefault(_RecordsActionTypes)},{"./CampaignActionTypes":21,"state/records/RecordsActionTypes":29}],23:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function reducer(){var state=arguments.length<=0||void 0===arguments[0]?initialState:arguments[0],action=arguments[1];switch(action.type){case _CampaignActionTypes2["default"].SET_CAMPAIGN_SELECTED_CHANGESETITEM:return(0,_deepFreezeStrict2["default"])(_extends({},state,{changeSetItemId:action.payload.changeSetItemId}));case _CampaignActionTypes2["default"].SET_CAMPAIGN_ACTIVE_CHANGESET:return(0,_deepFreezeStrict2["default"])(_extends({},state,{campaignId:action.payload.campaignId,view:action.payload.view,changeSetItemId:null}));case _CampaignActionTypes2["default"].PUBLISH_CAMPAIGN_REQUEST:return(0,_deepFreezeStrict2["default"])(_extends({},state,{isPublishing:!0}));case _CampaignActionTypes2["default"].PUBLISH_CAMPAIGN_SUCCESS:case _CampaignActionTypes2["default"].PUBLISH_CAMPAIGN_FAILURE:return(0,_deepFreezeStrict2["default"])(_extends({},state,{isPublishing:!1}));default:return state}}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},_deepFreezeStrict=require("deep-freeze-strict"),_deepFreezeStrict2=_interopRequireDefault(_deepFreezeStrict),_CampaignActionTypes=require("./CampaignActionTypes"),_CampaignActionTypes2=_interopRequireDefault(_CampaignActionTypes),initialState=(0,_deepFreezeStrict2["default"])({campaignId:null,changeSetItemId:null,isPublishing:!1,view:null});exports["default"]=reducer},{"./CampaignActionTypes":21,"deep-freeze-strict":"deep-freeze-strict"}],24:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]={SET_CONFIG:"SET_CONFIG"}},{}],25:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function setConfig(config){return{type:_ConfigActionTypes2["default"].SET_CONFIG,payload:{config:config}}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.setConfig=setConfig;var _ConfigActionTypes=require("./ConfigActionTypes"),_ConfigActionTypes2=_interopRequireDefault(_ConfigActionTypes)},{"./ConfigActionTypes":24}],26:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function configReducer(){var state=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],action=arguments[1];switch(action.type){case _ConfigActionTypes2["default"].SET_CONFIG:return(0,_deepFreezeStrict2["default"])(_extends({},state,action.payload.config));default:return state}}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},_deepFreezeStrict=require("deep-freeze-strict"),_deepFreezeStrict2=_interopRequireDefault(_deepFreezeStrict),_ConfigActionTypes=require("./ConfigActionTypes"),_ConfigActionTypes2=_interopRequireDefault(_ConfigActionTypes);exports["default"]=configReducer},{"./ConfigActionTypes":24,"deep-freeze-strict":"deep-freeze-strict"}],27:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.ACTION_TYPES={ADD_FORM:"ADD_FORM",REMOVE_FORM:"REMOVE_FORM",SUBMIT_FORM_FAILURE:"SUBMIT_FORM_FAILURE",SUBMIT_FORM_REQUEST:"SUBMIT_FORM_REQUEST",SUBMIT_FORM_SUCCESS:"SUBMIT_FORM_SUCCESS",UPDATE_FIELD:"UPDATE_FIELD"}},{}],28:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function formReducer(){var state=arguments.length<=0||void 0===arguments[0]?initialState:arguments[0],action=arguments[1];switch(action.type){case _FormActionTypes.ACTION_TYPES.SUBMIT_FORM_REQUEST:return(0,_deepFreezeStrict2["default"])(_extends({},state,_defineProperty({},action.payload.formId,{submitting:!0})));case _FormActionTypes.ACTION_TYPES.REMOVE_FORM:return(0,_deepFreezeStrict2["default"])(Object.keys(state).reduce(function(previous,current){return current===action.payload.formId?previous:_extends({},previous,_defineProperty({},current,state[current]))},{}));case _FormActionTypes.ACTION_TYPES.ADD_FORM:return(0,_deepFreezeStrict2["default"])(_extends({},state,_defineProperty({},action.payload.formState.id,{fields:action.payload.formState.fields,submitting:!1})));case _FormActionTypes.ACTION_TYPES.UPDATE_FIELD:return(0,_deepFreezeStrict2["default"])(_extends({},state,_defineProperty({},action.payload.formId,_extends({},state[action.payload.formId],{fields:state[action.payload.formId].fields.map(function(field){return field.id===action.payload.updates.id?_extends({},field,action.payload.updates):field})}))));case _FormActionTypes.ACTION_TYPES.SUBMIT_FORM_SUCCESS:return(0,_deepFreezeStrict2["default"])(_extends({},state,_defineProperty({},action.payload.response.id,{fields:action.payload.response.state.fields,messages:action.payload.response.state.messages,submitting:!1})));case _FormActionTypes.ACTION_TYPES.SUBMIT_FORM_FAILURE:return(0,_deepFreezeStrict2["default"])(_extends({},state,_defineProperty({},action.payload.formId,{submitting:!1})));default:return state}}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},_deepFreezeStrict=require("deep-freeze-strict"),_deepFreezeStrict2=_interopRequireDefault(_deepFreezeStrict),_FormActionTypes=require("./FormActionTypes"),initialState=(0,_deepFreezeStrict2["default"])({});exports["default"]=formReducer},{"./FormActionTypes":27,"deep-freeze-strict":"deep-freeze-strict"}],29:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]={CREATE_RECORD:"CREATE_RECORD",UPDATE_RECORD:"UPDATE_RECORD",DELETE_RECORD:"DELETE_RECORD",FETCH_RECORDS_REQUEST:"FETCH_RECORDS_REQUEST",FETCH_RECORDS_FAILURE:"FETCH_RECORDS_FAILURE",FETCH_RECORDS_SUCCESS:"FETCH_RECORDS_SUCCESS",FETCH_RECORD_REQUEST:"FETCH_RECORD_REQUEST",FETCH_RECORD_FAILURE:"FETCH_RECORD_FAILURE",FETCH_RECORD_SUCCESS:"FETCH_RECORD_SUCCESS",DELETE_RECORD_REQUEST:"DELETE_RECORD_REQUEST",DELETE_RECORD_FAILURE:"DELETE_RECORD_FAILURE",DELETE_RECORD_SUCCESS:"DELETE_RECORD_SUCCESS"}},{}],30:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function populate(str,params){var names=["id"];return names.reduce(function(acc,name){return acc.replace(":"+name,params[name])},str)}function fetchRecords(recordType,method,url){var payload={recordType:recordType},headers={Accept:"text/json"},methodToLowerCase=method.toLowerCase();return function(dispatch){dispatch({type:_RecordsActionTypes2["default"].FETCH_RECORDS_REQUEST,payload:payload});var args="get"===methodToLowerCase?[populate(url,payload),headers]:[populate(url,payload),{},headers];return _Backend2["default"][methodToLowerCase].apply(_Backend2["default"],args).then(function(response){return response.json()}).then(function(json){dispatch({type:_RecordsActionTypes2["default"].FETCH_RECORDS_SUCCESS,payload:{recordType:recordType,data:json}})})["catch"](function(err){dispatch({type:_RecordsActionTypes2["default"].FETCH_RECORDS_FAILURE,payload:{error:err,recordType:recordType}})})}}function fetchRecord(recordType,method,url){var payload={recordType:recordType},headers={Accept:"text/json"},methodToLowerCase=method.toLowerCase();return function(dispatch){dispatch({type:_RecordsActionTypes2["default"].FETCH_RECORD_REQUEST,payload:payload});var args="get"===methodToLowerCase?[populate(url,payload),headers]:[populate(url,payload),{},headers];return _Backend2["default"][methodToLowerCase].apply(_Backend2["default"],args).then(function(response){return response.json()}).then(function(json){dispatch({type:_RecordsActionTypes2["default"].FETCH_RECORD_SUCCESS,payload:{recordType:recordType,data:json}})})["catch"](function(err){dispatch({type:_RecordsActionTypes2["default"].FETCH_RECORD_FAILURE,payload:{error:err,recordType:recordType}})})}}function deleteRecord(recordType,id,method,url){var headers=arguments.length<=4||void 0===arguments[4]?{}:arguments[4],payload={recordType:recordType,id:id},methodToLowerCase=method.toLowerCase(),args="get"===methodToLowerCase?[populate(url,payload),headers]:[populate(url,payload),{},headers];return function(dispatch){return dispatch({type:_RecordsActionTypes2["default"].DELETE_RECORD_REQUEST,payload:payload}),_Backend2["default"][methodToLowerCase].apply(_Backend2["default"],args).then(function(){dispatch({type:_RecordsActionTypes2["default"].DELETE_RECORD_SUCCESS,payload:{recordType:recordType,id:id}})})["catch"](function(err){dispatch({type:_RecordsActionTypes2["default"].DELETE_RECORD_FAILURE,payload:{error:err,recordType:recordType,id:id}})})}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.fetchRecords=fetchRecords,exports.fetchRecord=fetchRecord,exports.deleteRecord=deleteRecord;var _RecordsActionTypes=require("./RecordsActionTypes"),_RecordsActionTypes2=_interopRequireDefault(_RecordsActionTypes),_Backend=require("lib/Backend.js"),_Backend2=_interopRequireDefault(_Backend)},{"./RecordsActionTypes":29,"lib/Backend.js":15}],31:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function recordsReducer(){var state=arguments.length<=0||void 0===arguments[0]?initialState:arguments[0],action=arguments[1],records=void 0,recordType=void 0,record=void 0;switch(action.type){case _RecordsActionTypes2["default"].CREATE_RECORD:return(0,_deepFreezeStrict2["default"])(_extends({},state,{}));case _RecordsActionTypes2["default"].UPDATE_RECORD:return(0,_deepFreezeStrict2["default"])(_extends({},state,{}));case _RecordsActionTypes2["default"].DELETE_RECORD:return(0,_deepFreezeStrict2["default"])(_extends({},state,{}));case _RecordsActionTypes2["default"].FETCH_RECORDS_REQUEST:return state;case _RecordsActionTypes2["default"].FETCH_RECORDS_FAILURE:return state;case _RecordsActionTypes2["default"].FETCH_RECORDS_SUCCESS:if(recordType=action.payload.recordType,!recordType)throw new Error("Undefined record type");return records=action.payload.data._embedded[recordType]||{},records=records.reduce(function(prev,val){return _extends({},prev,_defineProperty({},val.ID,val))},{}),(0,_deepFreezeStrict2["default"])(_extends({},state,_defineProperty({},recordType,records)));case _RecordsActionTypes2["default"].FETCH_RECORD_REQUEST:return state;case _RecordsActionTypes2["default"].FETCH_RECORD_FAILURE:return state;case _RecordsActionTypes2["default"].FETCH_RECORD_SUCCESS:if(recordType=action.payload.recordType,record=action.payload.data,!recordType)throw new Error("Undefined record type");return(0,_deepFreezeStrict2["default"])(_extends({},state,_defineProperty({},recordType,_extends({},state[recordType],_defineProperty({},record.ID,record)))));case _RecordsActionTypes2["default"].DELETE_RECORD_REQUEST:return state;case _RecordsActionTypes2["default"].DELETE_RECORD_FAILURE:return state;case _RecordsActionTypes2["default"].DELETE_RECORD_SUCCESS:return recordType=action.payload.recordType,records=state[recordType],records=Object.keys(records).reduce(function(result,key){return parseInt(key,10)!==parseInt(action.payload.id,10)?_extends({},result,_defineProperty({},key,records[key])):result},{}),(0,_deepFreezeStrict2["default"])(_extends({},state,_defineProperty({},recordType,records)));default:return state}}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},_deepFreezeStrict=require("deep-freeze-strict"),_deepFreezeStrict2=_interopRequireDefault(_deepFreezeStrict),_RecordsActionTypes=require("./RecordsActionTypes"),_RecordsActionTypes2=_interopRequireDefault(_RecordsActionTypes),initialState={};exports["default"]=recordsReducer},{"./RecordsActionTypes":29,"deep-freeze-strict":"deep-freeze-strict"}],32:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var ACTION_TYPES={SET_SCHEMA:"SET_SCHEMA"};exports["default"]=ACTION_TYPES},{}],33:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function schemaReducer(){var state=arguments.length<=0||void 0===arguments[0]?initialState:arguments[0],action=arguments.length<=1||void 0===arguments[1]?null:arguments[1];switch(action.type){case _SchemaActionTypes2["default"].SET_SCHEMA:var id=action.payload.schema.schema_url;return(0,_deepFreezeStrict2["default"])(_extends({},state,_defineProperty({},id,action.payload)));default:return state}}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target};exports["default"]=schemaReducer;var _deepFreezeStrict=require("deep-freeze-strict"),_deepFreezeStrict2=_interopRequireDefault(_deepFreezeStrict),_SchemaActionTypes=require("./SchemaActionTypes"),_SchemaActionTypes2=_interopRequireDefault(_SchemaActionTypes),initialState=(0,_deepFreezeStrict2["default"])({})},{"./SchemaActionTypes":32,"deep-freeze-strict":"deep-freeze-strict"}],34:[function(require,module,exports){function cleanUpNextTick(){draining=!1,currentQueue.length?queue=currentQueue.concat(queue):queueIndex=-1,queue.length&&drainQueue()}function drainQueue(){if(!draining){var timeout=setTimeout(cleanUpNextTick);draining=!0;for(var len=queue.length;len;){for(currentQueue=queue,queue=[];++queueIndex<len;)currentQueue&&currentQueue[queueIndex].run();queueIndex=-1,len=queue.length}currentQueue=null,draining=!1,clearTimeout(timeout)}}function Item(fun,array){this.fun=fun,this.array=array}function noop(){}var currentQueue,process=module.exports={},queue=[],draining=!1,queueIndex=-1;process.nextTick=function(fun){var args=new Array(arguments.length-1);if(arguments.length>1)for(var i=1;i<arguments.length;i++)args[i-1]=arguments[i];queue.push(new Item(fun,args)),1!==queue.length||draining||setTimeout(drainQueue,0)},Item.prototype.run=function(){this.fun.apply(null,this.array)},process.title="browser",process.browser=!0,process.env={},process.argv=[],process.version="",process.versions={},process.on=noop,process.addListener=noop,process.once=noop,process.off=noop,process.removeListener=noop,process.removeAllListeners=noop,process.emit=noop,process.binding=function(name){throw new Error("process.binding is not supported")},process.cwd=function(){return"/"},process.chdir=function(dir){throw new Error("process.chdir is not supported")},process.umask=function(){return 0}},{}],35:[function(require,module,exports){(function(global){!function(root){function error(type){throw new RangeError(errors[type])}function map(array,fn){for(var length=array.length,result=[];length--;)result[length]=fn(array[length]);return result}function mapDomain(string,fn){var parts=string.split("@"),result="";parts.length>1&&(result=parts[0]+"@",string=parts[1]),string=string.replace(regexSeparators,".");var labels=string.split("."),encoded=map(labels,fn).join(".");return result+encoded}function ucs2decode(string){for(var value,extra,output=[],counter=0,length=string.length;length>counter;)value=string.charCodeAt(counter++),value>=55296&&56319>=value&&length>counter?(extra=string.charCodeAt(counter++),56320==(64512&extra)?output.push(((1023&value)<<10)+(1023&extra)+65536):(output.push(value),counter--)):output.push(value);return output}function ucs2encode(array){return map(array,function(value){var output="";return value>65535&&(value-=65536,output+=stringFromCharCode(value>>>10&1023|55296),value=56320|1023&value),output+=stringFromCharCode(value)}).join("")}function basicToDigit(codePoint){return 10>codePoint-48?codePoint-22:26>codePoint-65?codePoint-65:26>codePoint-97?codePoint-97:base}function digitToBasic(digit,flag){return digit+22+75*(26>digit)-((0!=flag)<<5)}function adapt(delta,numPoints,firstTime){var k=0;for(delta=firstTime?floor(delta/damp):delta>>1,delta+=floor(delta/numPoints);delta>baseMinusTMin*tMax>>1;k+=base)delta=floor(delta/baseMinusTMin);return floor(k+(baseMinusTMin+1)*delta/(delta+skew))}function decode(input){var out,basic,j,index,oldi,w,k,digit,t,baseMinusT,output=[],inputLength=input.length,i=0,n=initialN,bias=initialBias;for(basic=input.lastIndexOf(delimiter),0>basic&&(basic=0),j=0;basic>j;++j)input.charCodeAt(j)>=128&&error("not-basic"),output.push(input.charCodeAt(j));for(index=basic>0?basic+1:0;inputLength>index;){for(oldi=i,w=1,k=base;index>=inputLength&&error("invalid-input"),digit=basicToDigit(input.charCodeAt(index++)),(digit>=base||digit>floor((maxInt-i)/w))&&error("overflow"),i+=digit*w,t=bias>=k?tMin:k>=bias+tMax?tMax:k-bias,!(t>digit);k+=base)baseMinusT=base-t,w>floor(maxInt/baseMinusT)&&error("overflow"),w*=baseMinusT;out=output.length+1,bias=adapt(i-oldi,out,0==oldi),floor(i/out)>maxInt-n&&error("overflow"),n+=floor(i/out),i%=out,output.splice(i++,0,n)}return ucs2encode(output)}function encode(input){var n,delta,handledCPCount,basicLength,bias,j,m,q,k,t,currentValue,inputLength,handledCPCountPlusOne,baseMinusT,qMinusT,output=[];for(input=ucs2decode(input),inputLength=input.length,n=initialN,delta=0,bias=initialBias,j=0;inputLength>j;++j)currentValue=input[j],128>currentValue&&output.push(stringFromCharCode(currentValue));for(handledCPCount=basicLength=output.length,basicLength&&output.push(delimiter);inputLength>handledCPCount;){for(m=maxInt,j=0;inputLength>j;++j)currentValue=input[j],currentValue>=n&&m>currentValue&&(m=currentValue);for(handledCPCountPlusOne=handledCPCount+1,m-n>floor((maxInt-delta)/handledCPCountPlusOne)&&error("overflow"),delta+=(m-n)*handledCPCountPlusOne,n=m,j=0;inputLength>j;++j)if(currentValue=input[j],n>currentValue&&++delta>maxInt&&error("overflow"),currentValue==n){for(q=delta,k=base;t=bias>=k?tMin:k>=bias+tMax?tMax:k-bias,!(t>q);k+=base)qMinusT=q-t,baseMinusT=base-t,output.push(stringFromCharCode(digitToBasic(t+qMinusT%baseMinusT,0))),q=floor(qMinusT/baseMinusT);output.push(stringFromCharCode(digitToBasic(q,0))),bias=adapt(delta,handledCPCountPlusOne,handledCPCount==basicLength),delta=0,++handledCPCount}++delta,++n}return output.join("")}function toUnicode(input){return mapDomain(input,function(string){return regexPunycode.test(string)?decode(string.slice(4).toLowerCase()):string})}function toASCII(input){return mapDomain(input,function(string){return regexNonASCII.test(string)?"xn--"+encode(string):string})}var freeExports="object"==typeof exports&&exports&&!exports.nodeType&&exports,freeModule="object"==typeof module&&module&&!module.nodeType&&module,freeGlobal="object"==typeof global&&global;freeGlobal.global!==freeGlobal&&freeGlobal.window!==freeGlobal&&freeGlobal.self!==freeGlobal||(root=freeGlobal);var punycode,key,maxInt=2147483647,base=36,tMin=1,tMax=26,skew=38,damp=700,initialBias=72,initialN=128,delimiter="-",regexPunycode=/^xn--/,regexNonASCII=/[^\x20-\x7E]/,regexSeparators=/[\x2E\u3002\uFF0E\uFF61]/g,errors={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},baseMinusTMin=base-tMin,floor=Math.floor,stringFromCharCode=String.fromCharCode;if(punycode={version:"1.3.2",ucs2:{decode:ucs2decode,encode:ucs2encode},decode:decode,encode:encode,toASCII:toASCII,toUnicode:toUnicode},"function"==typeof define&&"object"==typeof define.amd&&define.amd)define("punycode",function(){return punycode});else if(freeExports&&freeModule)if(module.exports==freeExports)freeModule.exports=punycode;else for(key in punycode)punycode.hasOwnProperty(key)&&(freeExports[key]=punycode[key]);else root.punycode=punycode}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],36:[function(require,module,exports){"use strict";function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}module.exports=function(qs,sep,eq,options){sep=sep||"&",eq=eq||"=";var obj={};if("string"!=typeof qs||0===qs.length)return obj;var regexp=/\+/g;qs=qs.split(sep);var maxKeys=1e3;options&&"number"==typeof options.maxKeys&&(maxKeys=options.maxKeys);var len=qs.length;maxKeys>0&&len>maxKeys&&(len=maxKeys);for(var i=0;len>i;++i){var kstr,vstr,k,v,x=qs[i].replace(regexp,"%20"),idx=x.indexOf(eq);idx>=0?(kstr=x.substr(0,idx),vstr=x.substr(idx+1)):(kstr=x,vstr=""),k=decodeURIComponent(kstr),v=decodeURIComponent(vstr),hasOwnProperty(obj,k)?isArray(obj[k])?obj[k].push(v):obj[k]=[obj[k],v]:obj[k]=v}return obj};var isArray=Array.isArray||function(xs){return"[object Array]"===Object.prototype.toString.call(xs)}},{}],37:[function(require,module,exports){"use strict";function map(xs,f){if(xs.map)return xs.map(f);for(var res=[],i=0;i<xs.length;i++)res.push(f(xs[i],i));return res}var stringifyPrimitive=function(v){switch(typeof v){case"string":return v;case"boolean":return v?"true":"false";case"number":return isFinite(v)?v:"";default:return""}};module.exports=function(obj,sep,eq,name){return sep=sep||"&",eq=eq||"=",null===obj&&(obj=void 0),"object"==typeof obj?map(objectKeys(obj),function(k){var ks=encodeURIComponent(stringifyPrimitive(k))+eq;return isArray(obj[k])?map(obj[k],function(v){return ks+encodeURIComponent(stringifyPrimitive(v))}).join(sep):ks+encodeURIComponent(stringifyPrimitive(obj[k]))}).join(sep):name?encodeURIComponent(stringifyPrimitive(name))+eq+encodeURIComponent(stringifyPrimitive(obj)):""};var isArray=Array.isArray||function(xs){return"[object Array]"===Object.prototype.toString.call(xs)},objectKeys=Object.keys||function(obj){var res=[];for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&res.push(key);return res}},{}],38:[function(require,module,exports){"use strict";exports.decode=exports.parse=require("./decode"),exports.encode=exports.stringify=require("./encode")},{"./decode":36,"./encode":37}],39:[function(require,module,exports){function isUndefinedOrNull(value){return null===value||void 0===value}function isBuffer(x){return x&&"object"==typeof x&&"number"==typeof x.length?"function"!=typeof x.copy||"function"!=typeof x.slice?!1:!(x.length>0&&"number"!=typeof x[0]):!1}function objEquiv(a,b,opts){var i,key;if(isUndefinedOrNull(a)||isUndefinedOrNull(b))return!1;if(a.prototype!==b.prototype)return!1;if(isArguments(a))return isArguments(b)?(a=pSlice.call(a),b=pSlice.call(b),deepEqual(a,b,opts)):!1;if(isBuffer(a)){if(!isBuffer(b))return!1;if(a.length!==b.length)return!1;for(i=0;i<a.length;i++)if(a[i]!==b[i])return!1;return!0}try{var ka=objectKeys(a),kb=objectKeys(b)}catch(e){return!1}if(ka.length!=kb.length)return!1;for(ka.sort(),kb.sort(),i=ka.length-1;i>=0;i--)if(ka[i]!=kb[i])return!1;for(i=ka.length-1;i>=0;i--)if(key=ka[i],!deepEqual(a[key],b[key],opts))return!1;return typeof a==typeof b}var pSlice=Array.prototype.slice,objectKeys=require("./lib/keys.js"),isArguments=require("./lib/is_arguments.js"),deepEqual=module.exports=function(actual,expected,opts){return opts||(opts={}),actual===expected?!0:actual instanceof Date&&expected instanceof Date?actual.getTime()===expected.getTime():!actual||!expected||"object"!=typeof actual&&"object"!=typeof expected?opts.strict?actual===expected:actual==expected:objEquiv(actual,expected,opts)}},{"./lib/is_arguments.js":40,"./lib/keys.js":41}],40:[function(require,module,exports){function supported(object){return"[object Arguments]"==Object.prototype.toString.call(object)}function unsupported(object){return object&&"object"==typeof object&&"number"==typeof object.length&&Object.prototype.hasOwnProperty.call(object,"callee")&&!Object.prototype.propertyIsEnumerable.call(object,"callee")||!1}var supportsArgumentsClass="[object Arguments]"==function(){return Object.prototype.toString.call(arguments)}();exports=module.exports=supportsArgumentsClass?supported:unsupported,exports.supported=supported,exports.unsupported=unsupported},{}],41:[function(require,module,exports){function shim(obj){var keys=[];for(var key in obj)keys.push(key);return keys}exports=module.exports="function"==typeof Object.keys?Object.keys:shim,exports.shim=shim},{}],42:[function(require,module,exports){(function(process,global){(function(){"use strict";function lib$es6$promise$utils$$objectOrFunction(x){return"function"==typeof x||"object"==typeof x&&null!==x}function lib$es6$promise$utils$$isFunction(x){return"function"==typeof x}function lib$es6$promise$asap$$setScheduler(scheduleFn){lib$es6$promise$asap$$customSchedulerFn=scheduleFn}function lib$es6$promise$asap$$setAsap(asapFn){lib$es6$promise$asap$$asap=asapFn}function lib$es6$promise$asap$$useNextTick(){return function(){process.nextTick(lib$es6$promise$asap$$flush)}}function lib$es6$promise$asap$$useVertxTimer(){return function(){lib$es6$promise$asap$$vertxNext(lib$es6$promise$asap$$flush)}}function lib$es6$promise$asap$$useMutationObserver(){var iterations=0,observer=new lib$es6$promise$asap$$BrowserMutationObserver(lib$es6$promise$asap$$flush),node=document.createTextNode("");return observer.observe(node,{characterData:!0}),function(){node.data=iterations=++iterations%2}}function lib$es6$promise$asap$$useMessageChannel(){var channel=new MessageChannel;return channel.port1.onmessage=lib$es6$promise$asap$$flush,function(){channel.port2.postMessage(0)}}function lib$es6$promise$asap$$useSetTimeout(){return function(){setTimeout(lib$es6$promise$asap$$flush,1)}}function lib$es6$promise$asap$$flush(){for(var i=0;lib$es6$promise$asap$$len>i;i+=2){var callback=lib$es6$promise$asap$$queue[i],arg=lib$es6$promise$asap$$queue[i+1];callback(arg),lib$es6$promise$asap$$queue[i]=void 0,
lib$es6$promise$asap$$queue[i+1]=void 0}lib$es6$promise$asap$$len=0}function lib$es6$promise$asap$$attemptVertx(){try{var r=require,vertx=r("vertx");return lib$es6$promise$asap$$vertxNext=vertx.runOnLoop||vertx.runOnContext,lib$es6$promise$asap$$useVertxTimer()}catch(e){return lib$es6$promise$asap$$useSetTimeout()}}function lib$es6$promise$then$$then(onFulfillment,onRejection){var parent=this,state=parent._state;if(state===lib$es6$promise$$internal$$FULFILLED&&!onFulfillment||state===lib$es6$promise$$internal$$REJECTED&&!onRejection)return this;var child=new this.constructor(lib$es6$promise$$internal$$noop),result=parent._result;if(state){var callback=arguments[state-1];lib$es6$promise$asap$$asap(function(){lib$es6$promise$$internal$$invokeCallback(state,child,callback,result)})}else lib$es6$promise$$internal$$subscribe(parent,child,onFulfillment,onRejection);return child}function lib$es6$promise$promise$resolve$$resolve(object){var Constructor=this;if(object&&"object"==typeof object&&object.constructor===Constructor)return object;var promise=new Constructor(lib$es6$promise$$internal$$noop);return lib$es6$promise$$internal$$resolve(promise,object),promise}function lib$es6$promise$$internal$$noop(){}function lib$es6$promise$$internal$$selfFulfillment(){return new TypeError("You cannot resolve a promise with itself")}function lib$es6$promise$$internal$$cannotReturnOwn(){return new TypeError("A promises callback cannot return that same promise.")}function lib$es6$promise$$internal$$getThen(promise){try{return promise.then}catch(error){return lib$es6$promise$$internal$$GET_THEN_ERROR.error=error,lib$es6$promise$$internal$$GET_THEN_ERROR}}function lib$es6$promise$$internal$$tryThen(then,value,fulfillmentHandler,rejectionHandler){try{then.call(value,fulfillmentHandler,rejectionHandler)}catch(e){return e}}function lib$es6$promise$$internal$$handleForeignThenable(promise,thenable,then){lib$es6$promise$asap$$asap(function(promise){var sealed=!1,error=lib$es6$promise$$internal$$tryThen(then,thenable,function(value){sealed||(sealed=!0,thenable!==value?lib$es6$promise$$internal$$resolve(promise,value):lib$es6$promise$$internal$$fulfill(promise,value))},function(reason){sealed||(sealed=!0,lib$es6$promise$$internal$$reject(promise,reason))},"Settle: "+(promise._label||" unknown promise"));!sealed&&error&&(sealed=!0,lib$es6$promise$$internal$$reject(promise,error))},promise)}function lib$es6$promise$$internal$$handleOwnThenable(promise,thenable){thenable._state===lib$es6$promise$$internal$$FULFILLED?lib$es6$promise$$internal$$fulfill(promise,thenable._result):thenable._state===lib$es6$promise$$internal$$REJECTED?lib$es6$promise$$internal$$reject(promise,thenable._result):lib$es6$promise$$internal$$subscribe(thenable,void 0,function(value){lib$es6$promise$$internal$$resolve(promise,value)},function(reason){lib$es6$promise$$internal$$reject(promise,reason)})}function lib$es6$promise$$internal$$handleMaybeThenable(promise,maybeThenable,then){maybeThenable.constructor===promise.constructor&&then===lib$es6$promise$then$$default&&constructor.resolve===lib$es6$promise$promise$resolve$$default?lib$es6$promise$$internal$$handleOwnThenable(promise,maybeThenable):then===lib$es6$promise$$internal$$GET_THEN_ERROR?lib$es6$promise$$internal$$reject(promise,lib$es6$promise$$internal$$GET_THEN_ERROR.error):void 0===then?lib$es6$promise$$internal$$fulfill(promise,maybeThenable):lib$es6$promise$utils$$isFunction(then)?lib$es6$promise$$internal$$handleForeignThenable(promise,maybeThenable,then):lib$es6$promise$$internal$$fulfill(promise,maybeThenable)}function lib$es6$promise$$internal$$resolve(promise,value){promise===value?lib$es6$promise$$internal$$reject(promise,lib$es6$promise$$internal$$selfFulfillment()):lib$es6$promise$utils$$objectOrFunction(value)?lib$es6$promise$$internal$$handleMaybeThenable(promise,value,lib$es6$promise$$internal$$getThen(value)):lib$es6$promise$$internal$$fulfill(promise,value)}function lib$es6$promise$$internal$$publishRejection(promise){promise._onerror&&promise._onerror(promise._result),lib$es6$promise$$internal$$publish(promise)}function lib$es6$promise$$internal$$fulfill(promise,value){promise._state===lib$es6$promise$$internal$$PENDING&&(promise._result=value,promise._state=lib$es6$promise$$internal$$FULFILLED,0!==promise._subscribers.length&&lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish,promise))}function lib$es6$promise$$internal$$reject(promise,reason){promise._state===lib$es6$promise$$internal$$PENDING&&(promise._state=lib$es6$promise$$internal$$REJECTED,promise._result=reason,lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publishRejection,promise))}function lib$es6$promise$$internal$$subscribe(parent,child,onFulfillment,onRejection){var subscribers=parent._subscribers,length=subscribers.length;parent._onerror=null,subscribers[length]=child,subscribers[length+lib$es6$promise$$internal$$FULFILLED]=onFulfillment,subscribers[length+lib$es6$promise$$internal$$REJECTED]=onRejection,0===length&&parent._state&&lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish,parent)}function lib$es6$promise$$internal$$publish(promise){var subscribers=promise._subscribers,settled=promise._state;if(0!==subscribers.length){for(var child,callback,detail=promise._result,i=0;i<subscribers.length;i+=3)child=subscribers[i],callback=subscribers[i+settled],child?lib$es6$promise$$internal$$invokeCallback(settled,child,callback,detail):callback(detail);promise._subscribers.length=0}}function lib$es6$promise$$internal$$ErrorObject(){this.error=null}function lib$es6$promise$$internal$$tryCatch(callback,detail){try{return callback(detail)}catch(e){return lib$es6$promise$$internal$$TRY_CATCH_ERROR.error=e,lib$es6$promise$$internal$$TRY_CATCH_ERROR}}function lib$es6$promise$$internal$$invokeCallback(settled,promise,callback,detail){var value,error,succeeded,failed,hasCallback=lib$es6$promise$utils$$isFunction(callback);if(hasCallback){if(value=lib$es6$promise$$internal$$tryCatch(callback,detail),value===lib$es6$promise$$internal$$TRY_CATCH_ERROR?(failed=!0,error=value.error,value=null):succeeded=!0,promise===value)return void lib$es6$promise$$internal$$reject(promise,lib$es6$promise$$internal$$cannotReturnOwn())}else value=detail,succeeded=!0;promise._state!==lib$es6$promise$$internal$$PENDING||(hasCallback&&succeeded?lib$es6$promise$$internal$$resolve(promise,value):failed?lib$es6$promise$$internal$$reject(promise,error):settled===lib$es6$promise$$internal$$FULFILLED?lib$es6$promise$$internal$$fulfill(promise,value):settled===lib$es6$promise$$internal$$REJECTED&&lib$es6$promise$$internal$$reject(promise,value))}function lib$es6$promise$$internal$$initializePromise(promise,resolver){try{resolver(function(value){lib$es6$promise$$internal$$resolve(promise,value)},function(reason){lib$es6$promise$$internal$$reject(promise,reason)})}catch(e){lib$es6$promise$$internal$$reject(promise,e)}}function lib$es6$promise$promise$all$$all(entries){return new lib$es6$promise$enumerator$$default(this,entries).promise}function lib$es6$promise$promise$race$$race(entries){function onFulfillment(value){lib$es6$promise$$internal$$resolve(promise,value)}function onRejection(reason){lib$es6$promise$$internal$$reject(promise,reason)}var Constructor=this,promise=new Constructor(lib$es6$promise$$internal$$noop);if(!lib$es6$promise$utils$$isArray(entries))return lib$es6$promise$$internal$$reject(promise,new TypeError("You must pass an array to race.")),promise;for(var length=entries.length,i=0;promise._state===lib$es6$promise$$internal$$PENDING&&length>i;i++)lib$es6$promise$$internal$$subscribe(Constructor.resolve(entries[i]),void 0,onFulfillment,onRejection);return promise}function lib$es6$promise$promise$reject$$reject(reason){var Constructor=this,promise=new Constructor(lib$es6$promise$$internal$$noop);return lib$es6$promise$$internal$$reject(promise,reason),promise}function lib$es6$promise$promise$$needsResolver(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function lib$es6$promise$promise$$needsNew(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function lib$es6$promise$promise$$Promise(resolver){this._id=lib$es6$promise$promise$$counter++,this._state=void 0,this._result=void 0,this._subscribers=[],lib$es6$promise$$internal$$noop!==resolver&&("function"!=typeof resolver&&lib$es6$promise$promise$$needsResolver(),this instanceof lib$es6$promise$promise$$Promise?lib$es6$promise$$internal$$initializePromise(this,resolver):lib$es6$promise$promise$$needsNew())}function lib$es6$promise$enumerator$$Enumerator(Constructor,input){this._instanceConstructor=Constructor,this.promise=new Constructor(lib$es6$promise$$internal$$noop),Array.isArray(input)?(this._input=input,this.length=input.length,this._remaining=input.length,this._result=new Array(this.length),0===this.length?lib$es6$promise$$internal$$fulfill(this.promise,this._result):(this.length=this.length||0,this._enumerate(),0===this._remaining&&lib$es6$promise$$internal$$fulfill(this.promise,this._result))):lib$es6$promise$$internal$$reject(this.promise,this._validationError())}function lib$es6$promise$polyfill$$polyfill(){var local;if("undefined"!=typeof global)local=global;else if("undefined"!=typeof self)local=self;else try{local=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var P=local.Promise;P&&"[object Promise]"===Object.prototype.toString.call(P.resolve())&&!P.cast||(local.Promise=lib$es6$promise$promise$$default)}var lib$es6$promise$utils$$_isArray;lib$es6$promise$utils$$_isArray=Array.isArray?Array.isArray:function(x){return"[object Array]"===Object.prototype.toString.call(x)};var lib$es6$promise$asap$$vertxNext,lib$es6$promise$asap$$customSchedulerFn,lib$es6$promise$asap$$scheduleFlush,lib$es6$promise$utils$$isArray=lib$es6$promise$utils$$_isArray,lib$es6$promise$asap$$len=0,lib$es6$promise$asap$$asap=function(callback,arg){lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len]=callback,lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len+1]=arg,lib$es6$promise$asap$$len+=2,2===lib$es6$promise$asap$$len&&(lib$es6$promise$asap$$customSchedulerFn?lib$es6$promise$asap$$customSchedulerFn(lib$es6$promise$asap$$flush):lib$es6$promise$asap$$scheduleFlush())},lib$es6$promise$asap$$browserWindow="undefined"!=typeof window?window:void 0,lib$es6$promise$asap$$browserGlobal=lib$es6$promise$asap$$browserWindow||{},lib$es6$promise$asap$$BrowserMutationObserver=lib$es6$promise$asap$$browserGlobal.MutationObserver||lib$es6$promise$asap$$browserGlobal.WebKitMutationObserver,lib$es6$promise$asap$$isNode="undefined"!=typeof process&&"[object process]"==={}.toString.call(process),lib$es6$promise$asap$$isWorker="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,lib$es6$promise$asap$$queue=new Array(1e3);lib$es6$promise$asap$$scheduleFlush=lib$es6$promise$asap$$isNode?lib$es6$promise$asap$$useNextTick():lib$es6$promise$asap$$BrowserMutationObserver?lib$es6$promise$asap$$useMutationObserver():lib$es6$promise$asap$$isWorker?lib$es6$promise$asap$$useMessageChannel():void 0===lib$es6$promise$asap$$browserWindow&&"function"==typeof require?lib$es6$promise$asap$$attemptVertx():lib$es6$promise$asap$$useSetTimeout();var lib$es6$promise$then$$default=lib$es6$promise$then$$then,lib$es6$promise$promise$resolve$$default=lib$es6$promise$promise$resolve$$resolve,lib$es6$promise$$internal$$PENDING=void 0,lib$es6$promise$$internal$$FULFILLED=1,lib$es6$promise$$internal$$REJECTED=2,lib$es6$promise$$internal$$GET_THEN_ERROR=new lib$es6$promise$$internal$$ErrorObject,lib$es6$promise$$internal$$TRY_CATCH_ERROR=new lib$es6$promise$$internal$$ErrorObject,lib$es6$promise$promise$all$$default=lib$es6$promise$promise$all$$all,lib$es6$promise$promise$race$$default=lib$es6$promise$promise$race$$race,lib$es6$promise$promise$reject$$default=lib$es6$promise$promise$reject$$reject,lib$es6$promise$promise$$counter=0,lib$es6$promise$promise$$default=lib$es6$promise$promise$$Promise;lib$es6$promise$promise$$Promise.all=lib$es6$promise$promise$all$$default,lib$es6$promise$promise$$Promise.race=lib$es6$promise$promise$race$$default,lib$es6$promise$promise$$Promise.resolve=lib$es6$promise$promise$resolve$$default,lib$es6$promise$promise$$Promise.reject=lib$es6$promise$promise$reject$$default,lib$es6$promise$promise$$Promise._setScheduler=lib$es6$promise$asap$$setScheduler,lib$es6$promise$promise$$Promise._setAsap=lib$es6$promise$asap$$setAsap,lib$es6$promise$promise$$Promise._asap=lib$es6$promise$asap$$asap,lib$es6$promise$promise$$Promise.prototype={constructor:lib$es6$promise$promise$$Promise,then:lib$es6$promise$then$$default,"catch":function(onRejection){return this.then(null,onRejection)}};var lib$es6$promise$enumerator$$default=lib$es6$promise$enumerator$$Enumerator;lib$es6$promise$enumerator$$Enumerator.prototype._validationError=function(){return new Error("Array Methods must be provided an Array")},lib$es6$promise$enumerator$$Enumerator.prototype._enumerate=function(){for(var length=this.length,input=this._input,i=0;this._state===lib$es6$promise$$internal$$PENDING&&length>i;i++)this._eachEntry(input[i],i)},lib$es6$promise$enumerator$$Enumerator.prototype._eachEntry=function(entry,i){var c=this._instanceConstructor,resolve=c.resolve;if(resolve===lib$es6$promise$promise$resolve$$default){var then=lib$es6$promise$$internal$$getThen(entry);if(then===lib$es6$promise$then$$default&&entry._state!==lib$es6$promise$$internal$$PENDING)this._settledAt(entry._state,i,entry._result);else if("function"!=typeof then)this._remaining--,this._result[i]=entry;else if(c===lib$es6$promise$promise$$default){var promise=new c(lib$es6$promise$$internal$$noop);lib$es6$promise$$internal$$handleMaybeThenable(promise,entry,then),this._willSettleAt(promise,i)}else this._willSettleAt(new c(function(resolve){resolve(entry)}),i)}else this._willSettleAt(resolve(entry),i)},lib$es6$promise$enumerator$$Enumerator.prototype._settledAt=function(state,i,value){var promise=this.promise;promise._state===lib$es6$promise$$internal$$PENDING&&(this._remaining--,state===lib$es6$promise$$internal$$REJECTED?lib$es6$promise$$internal$$reject(promise,value):this._result[i]=value),0===this._remaining&&lib$es6$promise$$internal$$fulfill(promise,this._result)},lib$es6$promise$enumerator$$Enumerator.prototype._willSettleAt=function(promise,i){var enumerator=this;lib$es6$promise$$internal$$subscribe(promise,void 0,function(value){enumerator._settledAt(lib$es6$promise$$internal$$FULFILLED,i,value)},function(reason){enumerator._settledAt(lib$es6$promise$$internal$$REJECTED,i,reason)})};var lib$es6$promise$polyfill$$default=lib$es6$promise$polyfill$$polyfill,lib$es6$promise$umd$$ES6Promise={Promise:lib$es6$promise$promise$$default,polyfill:lib$es6$promise$polyfill$$default};"function"==typeof define&&define.amd?define(function(){return lib$es6$promise$umd$$ES6Promise}):"undefined"!=typeof module&&module.exports?module.exports=lib$es6$promise$umd$$ES6Promise:"undefined"!=typeof this&&(this.ES6Promise=lib$es6$promise$umd$$ES6Promise),lib$es6$promise$polyfill$$default()}).call(this)}).call(this,require("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:34}],43:[function(require,module,exports){"use strict";exports.__esModule=!0;var PUSH="PUSH";exports.PUSH=PUSH;var REPLACE="REPLACE";exports.REPLACE=REPLACE;var POP="POP";exports.POP=POP,exports["default"]={PUSH:PUSH,REPLACE:REPLACE,POP:POP}},{}],44:[function(require,module,exports){"use strict";function loopAsync(turns,work,callback){function done(){return isDone=!0,sync?void(doneArgs=[].concat(_slice.call(arguments))):void callback.apply(this,arguments)}function next(){if(!isDone&&(hasNext=!0,!sync)){for(sync=!0;!isDone&&turns>currentTurn&&hasNext;)hasNext=!1,work.call(this,currentTurn++,next,done);return sync=!1,isDone?void callback.apply(this,doneArgs):void(currentTurn>=turns&&hasNext&&(isDone=!0,callback()))}}var currentTurn=0,isDone=!1,sync=!1,hasNext=!1,doneArgs=void 0;next()}exports.__esModule=!0;var _slice=Array.prototype.slice;exports.loopAsync=loopAsync},{}],45:[function(require,module,exports){(function(process){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function createKey(key){return KeyPrefix+key}function saveState(key,state){try{null==state?window.sessionStorage.removeItem(createKey(key)):window.sessionStorage.setItem(createKey(key),JSON.stringify(state))}catch(error){if(error.name===SecurityError)return void("production"!==process.env.NODE_ENV?_warning2["default"](!1,"[history] Unable to save state; sessionStorage is not available due to security settings"):void 0);if(QuotaExceededErrors.indexOf(error.name)>=0&&0===window.sessionStorage.length)return void("production"!==process.env.NODE_ENV?_warning2["default"](!1,"[history] Unable to save state; sessionStorage is not available in Safari private mode"):void 0);throw error}}function readState(key){var json=void 0;try{json=window.sessionStorage.getItem(createKey(key))}catch(error){if(error.name===SecurityError)return"production"!==process.env.NODE_ENV?_warning2["default"](!1,"[history] Unable to read state; sessionStorage is not available due to security settings"):void 0,null}if(json)try{return JSON.parse(json)}catch(error){}return null}exports.__esModule=!0,exports.saveState=saveState,exports.readState=readState;var _warning=require("warning"),_warning2=_interopRequireDefault(_warning),KeyPrefix="@@History/",QuotaExceededErrors=["QuotaExceededError","QUOTA_EXCEEDED_ERR"],SecurityError="SecurityError"}).call(this,require("_process"))},{_process:34,warning:56}],46:[function(require,module,exports){"use strict";function addEventListener(node,event,listener){node.addEventListener?node.addEventListener(event,listener,!1):node.attachEvent("on"+event,listener)}function removeEventListener(node,event,listener){node.removeEventListener?node.removeEventListener(event,listener,!1):node.detachEvent("on"+event,listener)}function getHashPath(){return window.location.href.split("#")[1]||""}function replaceHashPath(path){window.location.replace(window.location.pathname+window.location.search+"#"+path)}function getWindowPath(){return window.location.pathname+window.location.search+window.location.hash}function go(n){n&&window.history.go(n)}function getUserConfirmation(message,callback){callback(window.confirm(message))}function supportsHistory(){var ua=navigator.userAgent;return-1===ua.indexOf("Android 2.")&&-1===ua.indexOf("Android 4.0")||-1===ua.indexOf("Mobile Safari")||-1!==ua.indexOf("Chrome")||-1!==ua.indexOf("Windows Phone")?window.history&&"pushState"in window.history:!1}function supportsGoWithoutReloadUsingHash(){var ua=navigator.userAgent;return-1===ua.indexOf("Firefox")}exports.__esModule=!0,exports.addEventListener=addEventListener,exports.removeEventListener=removeEventListener,exports.getHashPath=getHashPath,exports.replaceHashPath=replaceHashPath,exports.getWindowPath=getWindowPath,exports.go=go,exports.getUserConfirmation=getUserConfirmation,exports.supportsHistory=supportsHistory,exports.supportsGoWithoutReloadUsingHash=supportsGoWithoutReloadUsingHash},{}],47:[function(require,module,exports){"use strict";exports.__esModule=!0;var canUseDOM=!("undefined"==typeof window||!window.document||!window.document.createElement);exports.canUseDOM=canUseDOM},{}],48:[function(require,module,exports){(function(process){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function extractPath(string){var match=string.match(/^https?:\/\/[^\/]*/);return null==match?string:string.substring(match[0].length)}function parsePath(path){var pathname=extractPath(path),search="",hash="";"production"!==process.env.NODE_ENV?_warning2["default"](path===pathname,'A path must be pathname + search + hash only, not a fully qualified URL like "%s"',path):void 0;var hashIndex=pathname.indexOf("#");-1!==hashIndex&&(hash=pathname.substring(hashIndex),pathname=pathname.substring(0,hashIndex));var searchIndex=pathname.indexOf("?");return-1!==searchIndex&&(search=pathname.substring(searchIndex),pathname=pathname.substring(0,searchIndex)),""===pathname&&(pathname="/"),{pathname:pathname,search:search,hash:hash}}exports.__esModule=!0,exports.extractPath=extractPath,exports.parsePath=parsePath;var _warning=require("warning"),_warning2=_interopRequireDefault(_warning)}).call(this,require("_process"))},{_process:34,warning:56}],49:[function(require,module,exports){(function(process){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function createBrowserHistory(){function getCurrentLocation(historyState){try{historyState=historyState||window.history.state||{}}catch(e){historyState={}}var path=_DOMUtils.getWindowPath(),_historyState=historyState,key=_historyState.key,state=void 0;key?state=_DOMStateStorage.readState(key):(state=null,key=history.createKey(),isSupported&&window.history.replaceState(_extends({},historyState,{key:key}),null));var location=_PathUtils.parsePath(path);return history.createLocation(_extends({},location,{state:state}),void 0,key)}function startPopStateListener(_ref){function popStateListener(event){void 0!==event.state&&transitionTo(getCurrentLocation(event.state))}var transitionTo=_ref.transitionTo;return _DOMUtils.addEventListener(window,"popstate",popStateListener),function(){_DOMUtils.removeEventListener(window,"popstate",popStateListener)}}function finishTransition(location){var basename=location.basename,pathname=location.pathname,search=location.search,hash=location.hash,state=location.state,action=location.action,key=location.key;if(action!==_Actions.POP){_DOMStateStorage.saveState(key,state);var path=(basename||"")+pathname+search+hash,historyState={key:key};if(action===_Actions.PUSH){if(useRefresh)return window.location.href=path,!1;window.history.pushState(historyState,null,path)}else{if(useRefresh)return window.location.replace(path),!1;window.history.replaceState(historyState,null,path)}}}function listenBefore(listener){1===++listenerCount&&(stopPopStateListener=startPopStateListener(history));var unlisten=history.listenBefore(listener);return function(){unlisten(),0===--listenerCount&&stopPopStateListener()}}function listen(listener){1===++listenerCount&&(stopPopStateListener=startPopStateListener(history));var unlisten=history.listen(listener);return function(){unlisten(),0===--listenerCount&&stopPopStateListener()}}function registerTransitionHook(hook){1===++listenerCount&&(stopPopStateListener=startPopStateListener(history)),history.registerTransitionHook(hook)}function unregisterTransitionHook(hook){history.unregisterTransitionHook(hook),0===--listenerCount&&stopPopStateListener()}var options=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];_ExecutionEnvironment.canUseDOM?void 0:"production"!==process.env.NODE_ENV?_invariant2["default"](!1,"Browser history needs a DOM"):_invariant2["default"](!1);var forceRefresh=options.forceRefresh,isSupported=_DOMUtils.supportsHistory(),useRefresh=!isSupported||forceRefresh,history=_createDOMHistory2["default"](_extends({},options,{getCurrentLocation:getCurrentLocation,finishTransition:finishTransition,saveState:_DOMStateStorage.saveState})),listenerCount=0,stopPopStateListener=void 0;return _extends({},history,{listenBefore:listenBefore,listen:listen,registerTransitionHook:registerTransitionHook,unregisterTransitionHook:unregisterTransitionHook})}exports.__esModule=!0;var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},_invariant=require("invariant"),_invariant2=_interopRequireDefault(_invariant),_Actions=require("./Actions"),_PathUtils=require("./PathUtils"),_ExecutionEnvironment=require("./ExecutionEnvironment"),_DOMUtils=require("./DOMUtils"),_DOMStateStorage=require("./DOMStateStorage"),_createDOMHistory=require("./createDOMHistory"),_createDOMHistory2=_interopRequireDefault(_createDOMHistory);exports["default"]=createBrowserHistory,module.exports=exports["default"]}).call(this,require("_process"))},{"./Actions":43,"./DOMStateStorage":45,"./DOMUtils":46,"./ExecutionEnvironment":47,"./PathUtils":48,"./createDOMHistory":50,_process:34,invariant:55}],50:[function(require,module,exports){(function(process){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function createDOMHistory(options){function listen(listener){return _ExecutionEnvironment.canUseDOM?void 0:"production"!==process.env.NODE_ENV?_invariant2["default"](!1,"DOM history needs a DOM"):_invariant2["default"](!1),history.listen(listener)}var history=_createHistory2["default"](_extends({getUserConfirmation:_DOMUtils.getUserConfirmation},options,{go:_DOMUtils.go}));return _extends({},history,{listen:listen})}exports.__esModule=!0;var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},_invariant=require("invariant"),_invariant2=_interopRequireDefault(_invariant),_ExecutionEnvironment=require("./ExecutionEnvironment"),_DOMUtils=require("./DOMUtils"),_createHistory=require("./createHistory"),_createHistory2=_interopRequireDefault(_createHistory);exports["default"]=createDOMHistory,module.exports=exports["default"]}).call(this,require("_process"))},{"./DOMUtils":46,"./ExecutionEnvironment":47,"./createHistory":51,_process:34,invariant:55}],51:[function(require,module,exports){(function(process){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function createRandomKey(length){return Math.random().toString(36).substr(2,length)}function locationsAreEqual(a,b){return a.pathname===b.pathname&&a.search===b.search&&a.key===b.key&&_deepEqual2["default"](a.state,b.state)}function createHistory(){function listenBefore(hook){return transitionHooks.push(hook),function(){transitionHooks=transitionHooks.filter(function(item){return item!==hook})}}function getCurrent(){return pendingLocation&&pendingLocation.action===_Actions.POP?allKeys.indexOf(pendingLocation.key):location?allKeys.indexOf(location.key):-1}function updateLocation(newLocation){var current=getCurrent();location=newLocation,location.action===_Actions.PUSH?allKeys=[].concat(allKeys.slice(0,current+1),[location.key]):location.action===_Actions.REPLACE&&(allKeys[current]=location.key),changeListeners.forEach(function(listener){listener(location)})}function listen(listener){if(changeListeners.push(listener),location)listener(location);else{var _location=getCurrentLocation();allKeys=[_location.key],updateLocation(_location)}return function(){changeListeners=changeListeners.filter(function(item){return item!==listener})}}function confirmTransitionTo(location,callback){_AsyncUtils.loopAsync(transitionHooks.length,function(index,next,done){_runTransitionHook2["default"](transitionHooks[index],location,function(result){null!=result?done(result):next()})},function(message){getUserConfirmation&&"string"==typeof message?getUserConfirmation(message,function(ok){callback(ok!==!1)}):callback(message!==!1)})}function transitionTo(nextLocation){location&&locationsAreEqual(location,nextLocation)||(pendingLocation=nextLocation,confirmTransitionTo(nextLocation,function(ok){if(pendingLocation===nextLocation)if(ok){if(nextLocation.action===_Actions.PUSH){var prevPath=createPath(location),nextPath=createPath(nextLocation);nextPath===prevPath&&_deepEqual2["default"](location.state,nextLocation.state)&&(nextLocation.action=_Actions.REPLACE)}finishTransition(nextLocation)!==!1&&updateLocation(nextLocation)}else if(location&&nextLocation.action===_Actions.POP){var prevIndex=allKeys.indexOf(location.key),nextIndex=allKeys.indexOf(nextLocation.key);-1!==prevIndex&&-1!==nextIndex&&go(prevIndex-nextIndex)}}))}function push(location){transitionTo(createLocation(location,_Actions.PUSH,createKey()))}function replace(location){transitionTo(createLocation(location,_Actions.REPLACE,createKey()))}function goBack(){go(-1)}function goForward(){go(1)}function createKey(){return createRandomKey(keyLength)}function createPath(location){if(null==location||"string"==typeof location)return location;var pathname=location.pathname,search=location.search,hash=location.hash,result=pathname;return search&&(result+=search),hash&&(result+=hash),result}function createHref(location){return createPath(location)}function createLocation(location,action){var key=arguments.length<=2||void 0===arguments[2]?createKey():arguments[2];return"object"==typeof action&&("production"!==process.env.NODE_ENV?_warning2["default"](!1,"The state (2nd) argument to history.createLocation is deprecated; use a location descriptor instead"):void 0,"string"==typeof location&&(location=_PathUtils.parsePath(location)),location=_extends({},location,{state:action}),action=key,key=arguments[3]||createKey()),_createLocation3["default"](location,action,key)}function setState(state){location?(updateLocationState(location,state),updateLocation(location)):updateLocationState(getCurrentLocation(),state)}function updateLocationState(location,state){location.state=_extends({},location.state,state),saveState(location.key,location.state)}function registerTransitionHook(hook){-1===transitionHooks.indexOf(hook)&&transitionHooks.push(hook)}function unregisterTransitionHook(hook){transitionHooks=transitionHooks.filter(function(item){return item!==hook})}function pushState(state,path){"string"==typeof path&&(path=_PathUtils.parsePath(path)),push(_extends({state:state},path))}function replaceState(state,path){"string"==typeof path&&(path=_PathUtils.parsePath(path)),replace(_extends({state:state},path))}var options=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],getCurrentLocation=options.getCurrentLocation,finishTransition=options.finishTransition,saveState=options.saveState,go=options.go,getUserConfirmation=options.getUserConfirmation,keyLength=options.keyLength;"number"!=typeof keyLength&&(keyLength=DefaultKeyLength);var transitionHooks=[],allKeys=[],changeListeners=[],location=void 0,pendingLocation=void 0;return{listenBefore:listenBefore,listen:listen,transitionTo:transitionTo,push:push,replace:replace,go:go,goBack:goBack,goForward:goForward,createKey:createKey,createPath:createPath,createHref:createHref,createLocation:createLocation,setState:_deprecate2["default"](setState,"setState is deprecated; use location.key to save state instead"),registerTransitionHook:_deprecate2["default"](registerTransitionHook,"registerTransitionHook is deprecated; use listenBefore instead"),unregisterTransitionHook:_deprecate2["default"](unregisterTransitionHook,"unregisterTransitionHook is deprecated; use the callback returned from listenBefore instead"),pushState:_deprecate2["default"](pushState,"pushState is deprecated; use push instead"),replaceState:_deprecate2["default"](replaceState,"replaceState is deprecated; use replace instead")}}exports.__esModule=!0;var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},_warning=require("warning"),_warning2=_interopRequireDefault(_warning),_deepEqual=require("deep-equal"),_deepEqual2=_interopRequireDefault(_deepEqual),_PathUtils=require("./PathUtils"),_AsyncUtils=require("./AsyncUtils"),_Actions=require("./Actions"),_createLocation2=require("./createLocation"),_createLocation3=_interopRequireDefault(_createLocation2),_runTransitionHook=require("./runTransitionHook"),_runTransitionHook2=_interopRequireDefault(_runTransitionHook),_deprecate=require("./deprecate"),_deprecate2=_interopRequireDefault(_deprecate),DefaultKeyLength=6;
}function mapStateToProps(state){return{config:state.config,campaignId:state.campaign.campaignId,view:state.campaign.view,breadcrumbs:state.breadcrumbs,sectionConfig:state.config.sections.CampaignAdmin,securityId:state.config.SecurityID}}function mapDispatchToProps(dispatch){return{breadcrumbsActions:(0,_redux.bindActionCreators)(breadcrumbsActions,dispatch)}}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},_react=require("react"),_react2=_interopRequireDefault(_react),_reactRedux=require("react-redux"),_redux=require("redux"),_reactRouter=require("react-router"),_Backend=require("lib/Backend"),_Backend2=_interopRequireDefault(_Backend),_BreadcrumbsActions=require("state/breadcrumbs/BreadcrumbsActions"),breadcrumbsActions=_interopRequireWildcard(_BreadcrumbsActions),_Breadcrumb=require("components/Breadcrumb/Breadcrumb"),_Breadcrumb2=_interopRequireDefault(_Breadcrumb),_SilverStripeComponent=require("lib/SilverStripeComponent"),_SilverStripeComponent2=_interopRequireDefault(_SilverStripeComponent),_FormAction=require("components/FormAction/FormAction"),_FormAction2=_interopRequireDefault(_FormAction),_i18n=require("i18n"),_i18n2=_interopRequireDefault(_i18n),_Toolbar=require("components/Toolbar/Toolbar"),_Toolbar2=_interopRequireDefault(_Toolbar),_FormBuilder=require("components/FormBuilder/FormBuilder"),_FormBuilder2=_interopRequireDefault(_FormBuilder),_CampaignAdminList=require("./CampaignAdminList"),_CampaignAdminList2=_interopRequireDefault(_CampaignAdminList),CampaignAdmin=function(_SilverStripeComponen){function CampaignAdmin(props){_classCallCheck(this,CampaignAdmin);var _this=_possibleConstructorReturn(this,_SilverStripeComponen.call(this,props));return _this.publishApi=_Backend2["default"].createEndpointFetcher({url:_this.props.sectionConfig.publishEndpoint.url,method:_this.props.sectionConfig.publishEndpoint.method,defaultData:{SecurityID:_this.props.securityId},payloadSchema:{id:{urlReplacement:":id",remove:!0}}}),_this.handleBackButtonClick=_this.handleBackButtonClick.bind(_this),_this}return _inherits(CampaignAdmin,_SilverStripeComponen),CampaignAdmin.prototype.componentWillMount=function(){0===this.props.breadcrumbs.length&&this.setBreadcrumbs(this.props.params.view,this.props.params.id)},CampaignAdmin.prototype.componentWillReceiveProps=function(props){var hasChangedRoute=this.props.params.id!==props.params.id||this.props.params.view!==props.params.view;hasChangedRoute&&this.setBreadcrumbs(props.params.view,props.params.id)},CampaignAdmin.prototype.setBreadcrumbs=function(view,id){var breadcrumbs=[{text:_i18n2["default"]._t("Campaigns.CAMPAIGN","Campaigns"),href:this.props.sectionConfig.url}];switch(view){case"show":break;case"edit":breadcrumbs.push({text:_i18n2["default"]._t("Campaigns.EDIT_CAMPAIGN","Editing Campaign"),href:this.getActionRoute(id,view)});break;case"create":breadcrumbs.push({text:_i18n2["default"]._t("Campaigns.ADD_CAMPAIGN","Add Campaign"),href:this.getActionRoute(id,view)})}this.props.breadcrumbsActions.setBreadcrumbs(breadcrumbs)},CampaignAdmin.prototype.handleBackButtonClick=function(event){if(this.props.breadcrumbs.length>1){var last=this.props.breadcrumbs[this.props.breadcrumbs.length-2];if(last&&last.href)return event.preventDefault(),void this.props.router.push(last.href)}},CampaignAdmin.prototype.render=function(){var view=null;switch(this.props.params.view){case"show":view=this.renderItemListView();break;case"edit":view=this.renderDetailEditView();break;case"create":view=this.renderCreateView();break;default:view=this.renderIndexView()}return view},CampaignAdmin.prototype.renderIndexView=function(){var schemaUrl=this.props.sectionConfig.form.EditForm.schemaUrl,formActionProps={title:_i18n2["default"]._t("Campaigns.ADDCAMPAIGN"),icon:"plus",handleClick:this.addCampaign.bind(this)},formBuilderProps={createFn:this.campaignListCreateFn.bind(this),schemaUrl:schemaUrl};return _react2["default"].createElement("div",{className:"cms-content__inner no-preview"},_react2["default"].createElement("div",{className:"cms-content__left cms-campaigns collapse in","aria-expanded":"true"},_react2["default"].createElement(_Toolbar2["default"],null,_react2["default"].createElement(_Breadcrumb2["default"],{multiline:!0,crumbs:this.props.breadcrumbs})),_react2["default"].createElement("div",{className:"panel-scrollable panel-scrollable--single-toolbar"},_react2["default"].createElement("div",{className:"toolbar--content"},_react2["default"].createElement("div",{className:"btn-toolbar"},_react2["default"].createElement(_FormAction2["default"],formActionProps))),_react2["default"].createElement("div",{className:"campaign-admin container-fluid"},_react2["default"].createElement(_FormBuilder2["default"],formBuilderProps)))))},CampaignAdmin.prototype.renderItemListView=function(){var props={sectionConfig:this.props.sectionConfig,campaignId:this.props.params.id,itemListViewEndpoint:this.props.sectionConfig.itemListViewEndpoint,publishApi:this.publishApi,handleBackButtonClick:this.handleBackButtonClick.bind(this)};return _react2["default"].createElement(_CampaignAdminList2["default"],props)},CampaignAdmin.prototype.renderDetailEditView=function(){var baseSchemaUrl=this.props.sectionConfig.form.DetailEditForm.schemaUrl,formBuilderProps={createFn:this.campaignEditCreateFn.bind(this),schemaUrl:baseSchemaUrl+"/"+this.props.params.id};return _react2["default"].createElement("div",{className:"cms-content__inner"},_react2["default"].createElement(_Toolbar2["default"],{showBackButton:!0,handleBackButtonClick:this.handleBackButtonClick},_react2["default"].createElement(_Breadcrumb2["default"],{multiline:!0,crumbs:this.props.breadcrumbs})),_react2["default"].createElement("div",{className:"panel-scrollable panel-scrollable--single-toolbar container-fluid m-t-1"},_react2["default"].createElement("div",{className:"form--inline"},_react2["default"].createElement(_FormBuilder2["default"],formBuilderProps))))},CampaignAdmin.prototype.renderCreateView=function(){var baseSchemaUrl=this.props.sectionConfig.form.DetailEditForm.schemaUrl,formBuilderProps={createFn:this.campaignAddCreateFn.bind(this),schemaUrl:baseSchemaUrl+"/"+this.props.params.id};return _react2["default"].createElement("div",{className:"cms-content__inner"},_react2["default"].createElement(_Toolbar2["default"],{showBackButton:!0,handleBackButtonClick:this.handleBackButtonClick},_react2["default"].createElement(_Breadcrumb2["default"],{multiline:!0,crumbs:this.props.breadcrumbs})),_react2["default"].createElement("div",{className:"panel-scrollable panel-scrollable--single-toolbar container-fluid m-t-1"},_react2["default"].createElement(_FormBuilder2["default"],formBuilderProps)))},CampaignAdmin.prototype.campaignEditCreateFn=function(Component,props){var _this2=this,url=this.props.sectionConfig.url;if("action_cancel"===props.name){var extendedProps=_extends({},props,{handleClick:function(event){event.preventDefault(),_this2.props.router.push(url)}});return _react2["default"].createElement(Component,_extends({key:props.id},extendedProps))}return _react2["default"].createElement(Component,_extends({key:props.id},props))},CampaignAdmin.prototype.campaignAddCreateFn=function(Component,props){var _this3=this,url=this.props.sectionConfig.url;if("action_cancel"===props.name){var extendedProps=_extends({},props,{handleClick:function(event){event.preventDefault(),_this3.props.router.push(url)}});return _react2["default"].createElement(Component,_extends({key:props.name},extendedProps))}return _react2["default"].createElement(Component,_extends({key:props.name},props))},CampaignAdmin.prototype.campaignListCreateFn=function(Component,props){var _this4=this,sectionUrl=this.props.sectionConfig.url,typeUrlParam="set";if("GridField"===props.component){var extendedProps=_extends({},props,{data:_extends({},props.data,{handleDrillDown:function(event,record){_this4.props.router.push(sectionUrl+"/"+typeUrlParam+"/"+record.ID+"/show")},handleEditRecord:function(event,id){_this4.props.router.push(sectionUrl+"/"+typeUrlParam+"/"+id+"/edit")}})});return _react2["default"].createElement(Component,_extends({key:extendedProps.name},extendedProps))}return _react2["default"].createElement(Component,_extends({key:props.name},props))},CampaignAdmin.prototype.addCampaign=function(){var path=this.getActionRoute(0,"create");this.props.router.push(path)},CampaignAdmin.prototype.getActionRoute=function(id,view){return this.props.sectionConfig.url+"/set/"+id+"/"+view},CampaignAdmin}(_SilverStripeComponent2["default"]);CampaignAdmin.propTypes={breadcrumbsActions:_react2["default"].PropTypes.object.isRequired,campaignId:_react2["default"].PropTypes.string,sectionConfig:_react2["default"].PropTypes.object.isRequired,securityId:_react2["default"].PropTypes.string.isRequired,view:_react2["default"].PropTypes.string},exports["default"]=(0,_reactRouter.withRouter)((0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(CampaignAdmin))},{"./CampaignAdminList":13,"components/Breadcrumb/Breadcrumb":"components/Breadcrumb/Breadcrumb","components/FormAction/FormAction":"components/FormAction/FormAction","components/FormBuilder/FormBuilder":"components/FormBuilder/FormBuilder","components/Toolbar/Toolbar":"components/Toolbar/Toolbar",i18n:"i18n","lib/Backend":"lib/Backend","lib/SilverStripeComponent":"lib/SilverStripeComponent",react:"react","react-redux":"react-redux","react-router":"react-router",redux:"redux","state/breadcrumbs/BreadcrumbsActions":"state/breadcrumbs/BreadcrumbsActions"}],12:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _defaults(obj,defaults){for(var keys=Object.getOwnPropertyNames(defaults),i=0;i<keys.length;i++){var key=keys[i],value=Object.getOwnPropertyDescriptor(defaults,key);value&&value.configurable&&void 0===obj[key]&&Object.defineProperty(obj,key,value)}return obj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):_defaults(subClass,superClass))}Object.defineProperty(exports,"__esModule",{value:!0});var _react=require("react"),_react2=_interopRequireDefault(_react),_SilverStripeComponent=require("lib/SilverStripeComponent"),_SilverStripeComponent2=_interopRequireDefault(_SilverStripeComponent),_i18n=require("i18n"),_i18n2=_interopRequireDefault(_i18n),CampaignAdminItem=function(_SilverStripeComponen){function CampaignAdminItem(){return _classCallCheck(this,CampaignAdminItem),_possibleConstructorReturn(this,_SilverStripeComponen.apply(this,arguments))}return _inherits(CampaignAdminItem,_SilverStripeComponen),CampaignAdminItem.prototype.render=function(){var thumbnail=null,badge={},item=this.props.item,campaign=this.props.campaign;if("open"===campaign.State)switch(item.ChangeType){case"created":badge.className="label label-warning list-group-item__status",badge.Title=_i18n2["default"]._t("CampaignItem.DRAFT","Draft");break;case"modified":badge.className="label label-warning list-group-item__status",badge.Title=_i18n2["default"]._t("CampaignItem.MODIFIED","Modified");break;case"deleted":badge.className="label label-error list-group-item__status",badge.Title=_i18n2["default"]._t("CampaignItem.REMOVED","Removed");break;case"none":default:badge.className="label label-success list-group-item__status",badge.Title=_i18n2["default"]._t("CampaignItem.NO_CHANGES","No changes")}var links=_react2["default"].createElement("span",{className:"list-group-item__info campaign-admin__item-links--has-links font-icon-link"},"3 linked items");return item.Thumbnail&&(thumbnail=_react2["default"].createElement("span",{className:"list-group-item__thumbnail"},_react2["default"].createElement("img",{alt:item.Title,src:item.Thumbnail}))),_react2["default"].createElement("div",null,thumbnail,_react2["default"].createElement("h4",{className:"list-group-item-heading"},item.Title),_react2["default"].createElement("span",{className:"list-group-item__info campaign-admin__item-links--is-linked font-icon-link"}),links,badge.className&&badge.Title&&_react2["default"].createElement("span",{className:badge.className},badge.Title))},CampaignAdminItem}(_SilverStripeComponent2["default"]);CampaignAdminItem.propTypes={campaign:_react2["default"].PropTypes.object.isRequired,item:_react2["default"].PropTypes.object.isRequired},exports["default"]=CampaignAdminItem},{i18n:"i18n","lib/SilverStripeComponent":"lib/SilverStripeComponent",react:"react"}],13:[function(require,module,exports){"use strict";function _interopRequireWildcard(obj){if(obj&&obj.__esModule)return obj;var newObj={};if(null!=obj)for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&(newObj[key]=obj[key]);return newObj["default"]=obj,newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _defaults(obj,defaults){for(var keys=Object.getOwnPropertyNames(defaults),i=0;i<keys.length;i++){var key=keys[i],value=Object.getOwnPropertyDescriptor(defaults,key);value&&value.configurable&&void 0===obj[key]&&Object.defineProperty(obj,key,value)}return obj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):_defaults(subClass,superClass))}function mapStateToProps(state,ownProps){var record=null,treeClass=ownProps.sectionConfig.treeClass;return state.records&&state.records[treeClass]&&ownProps.campaignId&&(record=state.records[treeClass][parseInt(ownProps.campaignId,10)]),{config:state.config,record:record||{},campaign:state.campaign,treeClass:treeClass,breadcrumbs:state.breadcrumbs}}function mapDispatchToProps(dispatch){return{breadcrumbsActions:(0,_redux.bindActionCreators)(breadcrumbsActions,dispatch),recordActions:(0,_redux.bindActionCreators)(recordActions,dispatch),campaignActions:(0,_redux.bindActionCreators)(campaignActions,dispatch)}}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},_react=require("react"),_react2=_interopRequireDefault(_react),_redux=require("redux"),_reactRedux=require("react-redux"),_BreadcrumbsActions=require("state/breadcrumbs/BreadcrumbsActions"),breadcrumbsActions=_interopRequireWildcard(_BreadcrumbsActions),_RecordsActions=require("state/records/RecordsActions"),recordActions=_interopRequireWildcard(_RecordsActions),_CampaignActions=require("state/campaign/CampaignActions"),campaignActions=_interopRequireWildcard(_CampaignActions),_SilverStripeComponent=require("lib/SilverStripeComponent"),_SilverStripeComponent2=_interopRequireDefault(_SilverStripeComponent),_Accordion=require("components/Accordion/Accordion"),_Accordion2=_interopRequireDefault(_Accordion),_AccordionBlock=require("components/Accordion/AccordionBlock"),_AccordionBlock2=_interopRequireDefault(_AccordionBlock),_ListGroupItem=require("components/ListGroup/ListGroupItem"),_ListGroupItem2=_interopRequireDefault(_ListGroupItem),_Toolbar=require("components/Toolbar/Toolbar"),_Toolbar2=_interopRequireDefault(_Toolbar),_FormAction=require("components/FormAction/FormAction"),_FormAction2=_interopRequireDefault(_FormAction),_CampaignAdminItem=require("./CampaignAdminItem"),_CampaignAdminItem2=_interopRequireDefault(_CampaignAdminItem),_Breadcrumb=require("components/Breadcrumb/Breadcrumb"),_Breadcrumb2=_interopRequireDefault(_Breadcrumb),_Preview=require("components/Preview/Preview"),_Preview2=_interopRequireDefault(_Preview),_i18n=require("i18n"),_i18n2=_interopRequireDefault(_i18n),CampaignAdminList=function(_SilverStripeComponen){function CampaignAdminList(props){_classCallCheck(this,CampaignAdminList);var _this=_possibleConstructorReturn(this,_SilverStripeComponen.call(this,props));return _this.handlePublish=_this.handlePublish.bind(_this),_this.handleItemSelected=_this.handleItemSelected.bind(_this),_this.setBreadcrumbs=_this.setBreadcrumbs.bind(_this),_this}return _inherits(CampaignAdminList,_SilverStripeComponen),CampaignAdminList.prototype.componentDidMount=function(){var fetchURL=this.props.itemListViewEndpoint.url.replace(/:id/,this.props.campaignId);_SilverStripeComponen.prototype.componentDidMount.call(this),this.setBreadcrumbs(),Object.keys(this.props.record).length||this.props.recordActions.fetchRecord(this.props.treeClass,"get",fetchURL).then(this.setBreadcrumbs)},CampaignAdminList.prototype.setBreadcrumbs=function(){if(this.props.record){var breadcrumbs=[{text:_i18n2["default"]._t("Campaigns.CAMPAIGN","Campaigns"),href:this.props.sectionConfig.url}];breadcrumbs.push({text:this.props.record.Name,href:this.props.sectionConfig.url+"/set/"+this.props.campaignId+"/show"}),this.props.breadcrumbsActions.setBreadcrumbs(breadcrumbs)}},CampaignAdminList.prototype.render=function(){var _this2=this,itemId=this.props.campaign.changeSetItemId,itemLinks=null,campaignId=this.props.campaignId,campaign=this.props.record,itemGroups=this.groupItemsForSet(),accordionBlocks=[];Object.keys(itemGroups).forEach(function(className){var group=itemGroups[className],groupCount=group.items.length,listGroupItems=[],title=groupCount+" "+(1===groupCount?group.singular:group.plural),groupid="Set_"+campaignId+"_Group_"+className;group.items.forEach(function(item){itemId||(itemId=item.ID);var selected=itemId===item.ID;selected&&item._links&&(itemLinks=item._links);var itemClassNames=[];"none"!==item.ChangeType&&"published"!==campaign.State||itemClassNames.push("list-group-item--inactive"),selected&&itemClassNames.push("active"),listGroupItems.push(_react2["default"].createElement(_ListGroupItem2["default"],{key:item.ID,className:itemClassNames.join(" "),handleClick:_this2.handleItemSelected,handleClickArg:item.ID},_react2["default"].createElement(_CampaignAdminItem2["default"],{item:item,campaign:_this2.props.record})))}),accordionBlocks.push(_react2["default"].createElement(_AccordionBlock2["default"],{key:groupid,groupid:groupid,title:title},listGroupItems))});var pagesLink=[this.props.config.baseUrl,this.props.config.sections["SilverStripe\\CMS\\Controllers\\CMSPagesController"].url].join("/"),body=accordionBlocks.length?_react2["default"].createElement(_Accordion2["default"],null,accordionBlocks):_react2["default"].createElement("div",{className:"alert alert-warning",role:"alert"},_react2["default"].createElement("strong",null,"This campaign is empty.")," You can add pages by selecting"," ",_react2["default"].createElement("em",null,"Add to campaign")," from within the ",_react2["default"].createElement("em",null,"More Options")," popup on"," ","the ",_react2["default"].createElement("a",{href:pagesLink},"edit page screen"),"."),bodyClass=["container-fluid","campaign-items","panel-scrollable","panel-scrollable--double-toolbar"];return _react2["default"].createElement("div",{className:"cms-content__split cms-content__split--left-sm"},_react2["default"].createElement("div",{className:"cms-content__left cms-campaigns collapse in","aria-expanded":"true"},_react2["default"].createElement(_Toolbar2["default"],{showBackButton:!0,handleBackButtonClick:this.props.handleBackButtonClick},_react2["default"].createElement(_Breadcrumb2["default"],{multiline:!0,crumbs:this.props.breadcrumbs})),_react2["default"].createElement("div",{className:bodyClass.join(" ")},body),_react2["default"].createElement("div",{className:"toolbar--south"},this.renderButtonToolbar())),_react2["default"].createElement(_Preview2["default"],{itemLinks:itemLinks,itemId:itemId}))},CampaignAdminList.prototype.handleItemSelected=function(event,itemId){this.props.campaignActions.selectChangeSetItem(itemId)},CampaignAdminList.prototype.renderButtonToolbar=function(){var items=this.getItems();if(!items||!items.length)return _react2["default"].createElement("div",{className:"btn-toolbar"});var actionProps={};return"open"===this.props.record.State?actionProps=_extends(actionProps,{title:_i18n2["default"]._t("Campaigns.PUBLISHCAMPAIGN"),bootstrapButtonStyle:"primary",loading:this.props.campaign.isPublishing,handleClick:this.handlePublish,icon:"rocket"}):"published"===this.props.record.State&&(actionProps=_extends(actionProps,{title:_i18n2["default"]._t("Campaigns.REVERTCAMPAIGN"),bootstrapButtonStyle:"default",icon:"back-in-time",disabled:!0})),_react2["default"].createElement("div",{className:"btn-toolbar"},_react2["default"].createElement(_FormAction2["default"],actionProps))},CampaignAdminList.prototype.getItems=function(){return this.props.record&&this.props.record._embedded?this.props.record._embedded.items:null},CampaignAdminList.prototype.groupItemsForSet=function(){var groups={},items=this.getItems();return items?(items.forEach(function(item){var classname=item.BaseClass;groups[classname]||(groups[classname]={singular:item.Singular,plural:item.Plural,items:[]}),groups[classname].items.push(item)}),groups):groups},CampaignAdminList.prototype.handlePublish=function(e){e.preventDefault(),this.props.campaignActions.publishCampaign(this.props.publishApi,this.props.treeClass,this.props.campaignId)},CampaignAdminList}(_SilverStripeComponent2["default"]);CampaignAdminList.propTypes={campaign:_react2["default"].PropTypes.shape({isPublishing:_react2["default"].PropTypes.bool.isRequired,changeSetItemId:_react2["default"].PropTypes.number}),breadcrumbsActions:_react2["default"].PropTypes.object.isRequired,campaignActions:_react2["default"].PropTypes.object.isRequired,publishApi:_react2["default"].PropTypes.func.isRequired,record:_react2["default"].PropTypes.object.isRequired,recordActions:_react2["default"].PropTypes.object.isRequired,sectionConfig:_react2["default"].PropTypes.object.isRequired,handleBackButtonClick:_react2["default"].PropTypes.func},exports["default"]=(0,_reactRedux.connect)(mapStateToProps,mapDispatchToProps)(CampaignAdminList)},{"./CampaignAdminItem":12,"components/Accordion/Accordion":3,"components/Accordion/AccordionBlock":4,"components/Breadcrumb/Breadcrumb":"components/Breadcrumb/Breadcrumb","components/FormAction/FormAction":"components/FormAction/FormAction","components/ListGroup/ListGroupItem":6,"components/Preview/Preview":8,"components/Toolbar/Toolbar":"components/Toolbar/Toolbar",i18n:"i18n","lib/SilverStripeComponent":"lib/SilverStripeComponent",react:"react","react-redux":"react-redux",redux:"redux","state/breadcrumbs/BreadcrumbsActions":"state/breadcrumbs/BreadcrumbsActions","state/campaign/CampaignActions":22,"state/records/RecordsActions":30}],14:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}var _reactRouter=require("react-router"),_Config=require("lib/Config"),_Config2=_interopRequireDefault(_Config),_ReactRouteRegister=require("lib/ReactRouteRegister"),_ReactRouteRegister2=_interopRequireDefault(_ReactRouteRegister),_CampaignAdmin=require("./CampaignAdmin"),_CampaignAdmin2=_interopRequireDefault(_CampaignAdmin);document.addEventListener("DOMContentLoaded",function(){var sectionConfig=_Config2["default"].getSection("CampaignAdmin");_ReactRouteRegister2["default"].add({path:sectionConfig.url,component:(0,_reactRouter.withRouter)(_CampaignAdmin2["default"]),childRoutes:[{path:":type/:id/:view",component:_CampaignAdmin2["default"]},{path:"set/:id/:view",component:_CampaignAdmin2["default"]}]})})},{"./CampaignAdmin":11,"lib/Config":16,"lib/ReactRouteRegister":"lib/ReactRouteRegister","react-router":"react-router"}],15:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function checkStatus(response){var ret=void 0,error=void 0;if(!(response.status>=200&&response.status<300))throw error=new Error(response.statusText),error.response=response,error;return ret=response}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},_isomorphicFetch=require("isomorphic-fetch"),_isomorphicFetch2=_interopRequireDefault(_isomorphicFetch),_es6Promise=require("es6-promise"),_es6Promise2=_interopRequireDefault(_es6Promise),_qs=require("qs"),_qs2=_interopRequireDefault(_qs),_merge=require("merge"),_merge2=_interopRequireDefault(_merge);_es6Promise2["default"].polyfill();var Backend=function(){function Backend(){_classCallCheck(this,Backend),this.fetch=_isomorphicFetch2["default"]}return Backend.prototype.createEndpointFetcher=function(endpointSpec){function encode(contentType,data){switch(contentType){case"application/x-www-form-urlencoded":return _qs2["default"].stringify(data);case"application/json":case"application/x-json":case"application/x-javascript":case"text/javascript":case"text/x-javascript":case"text/x-json":return JSON.stringify(data);default:throw new Error("Can't encode format: "+contentType)}}function decode(contentType,text){switch(contentType){case"application/x-www-form-urlencoded":return _qs2["default"].parse(text);case"application/json":case"application/x-json":case"application/x-javascript":case"text/javascript":case"text/x-javascript":case"text/x-json":return JSON.parse(text);default:throw new Error("Can't decode format: "+contentType)}}function addQuerystring(url,querystring){return""===querystring?url:url.match(/\?/)?url+"&"+querystring:url+"?"+querystring}function parseResponse(response){return response.text().then(function(body){return decode(response.headers.get("Content-Type"),body)})}function applySchemaToData(payloadSchema,data){return Object.keys(data).reduce(function(prev,key){var schema=payloadSchema[key];return!schema||schema.remove!==!0&&schema.querystring!==!0?_extends(prev,_defineProperty({},key,data[key])):prev},{})}function applySchemaToUrl(payloadSchema,url,data){var opts=arguments.length<=3||void 0===arguments[3]?{setFromData:!1}:arguments[3],newUrl=url,queryData=Object.keys(data).reduce(function(prev,key){var schema=payloadSchema[key],includeThroughSetFromData=opts.setFromData===!0&&!(schema&&schema.remove===!0),includeThroughSpec=schema&&schema.querystring===!0&&schema.remove!==!0;return includeThroughSetFromData||includeThroughSpec?_extends(prev,_defineProperty({},key,data[key])):prev},{});return newUrl=addQuerystring(newUrl,encode("application/x-www-form-urlencoded",queryData)),newUrl=Object.keys(payloadSchema).reduce(function(prev,key){var replacement=payloadSchema[key].urlReplacement;return replacement?prev.replace(replacement,data[key]):prev},newUrl)}var _this=this,refinedSpec=_extends({method:"get",payloadFormat:"application/x-www-form-urlencoded",responseFormat:"application/json",payloadSchema:{},defaultData:{}},endpointSpec),formatShortcuts={json:"application/json",urlencoded:"application/x-www-form-urlencoded"};return["payloadFormat","responseFormat"].forEach(function(key){formatShortcuts[refinedSpec[key]]&&(refinedSpec[key]=formatShortcuts[refinedSpec[key]])}),function(){var data=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],headers=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],mergedHeaders=_extends({},headers,{Accept:refinedSpec.responseFormat,"Content-Type":refinedSpec.payloadFormat}),mergedData=_merge2["default"].recursive({},refinedSpec.defaultData,data),url=applySchemaToUrl(refinedSpec.payloadSchema,refinedSpec.url,mergedData,{setFromData:"get"===refinedSpec.method.toLowerCase()}),encodedData=encode(refinedSpec.payloadFormat,applySchemaToData(refinedSpec.payloadSchema,mergedData)),args="get"===refinedSpec.method.toLowerCase()?[url,mergedHeaders]:[url,encodedData,mergedHeaders];return _this[refinedSpec.method.toLowerCase()].apply(_this,args).then(parseResponse)}},Backend.prototype.get=function(url){var headers=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];return this.fetch(url,{method:"get",credentials:"same-origin",headers:headers}).then(checkStatus)},Backend.prototype.post=function(url){var data=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],headers=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],defaultHeaders={"Content-Type":"application/x-www-form-urlencoded"};return this.fetch(url,{method:"post",headers:_extends({},defaultHeaders,headers),credentials:"same-origin",body:data}).then(checkStatus)},Backend.prototype.put=function(url){var data=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],headers=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];return this.fetch(url,{method:"put",credentials:"same-origin",body:data,headers:headers}).then(checkStatus)},Backend.prototype["delete"]=function(url){var data=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],headers=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];return this.fetch(url,{method:"delete",credentials:"same-origin",body:data,headers:headers}).then(checkStatus)},Backend}(),backend=new Backend;exports["default"]=backend},{"es6-promise":42,"isomorphic-fetch":57,merge:58,qs:59}],16:[function(require,module,exports){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(exports,"__esModule",{value:!0});var Config=function(){function Config(){_classCallCheck(this,Config)}return Config.get=function(key){return window.ss.config[key]},Config.getAll=function(){return window.ss.config},Config.getSection=function(key){return window.ss.config.sections[key]},Config}();exports["default"]=Config},{}],17:[function(require,module,exports){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(exports,"__esModule",{value:!0});var Injector=function(){function Injector(){_classCallCheck(this,Injector),this.components={}}return Injector.prototype.getComponentByName=function(componentName){return this.components[componentName]},Injector.prototype.getComponentByDataType=function(dataType){switch(dataType){case"Text":return this.components.TextField;case"Hidden":return this.components.HiddenField;case"Custom":return this.components.GridField;
default:return null}},Injector.prototype.register=function(name,component){this.components[name]=component},Injector}();window.ss=window.ss||{},window.ss.injector=window.ss.injector||new Injector,exports["default"]=window.ss.injector},{}],18:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function resolveURLToBase(path){var absoluteBase=_page2["default"].getAbsoluteBase(),absolutePath=_url2["default"].resolve(absoluteBase,path);return 0!==absolutePath.indexOf(absoluteBase)?absolutePath:absolutePath.substring(absoluteBase.length-1)}function show(pageShow){return function(path,state,dispatch,push){return pageShow(_page2["default"].resolveURLToBase(path),state,dispatch,push)}}function routeAppliesToCurrentLocation(route){var r=new _page2["default"].Route(route);return r.match(_page2["default"].current,{})}function getAbsoluteBase(){return _page2["default"].absoluteBaseURL}function setAbsoluteBase(base){_page2["default"].absoluteBaseURL=base;var a=document.createElement("a");a.href=base;var basePath=a.pathname;basePath=basePath.replace(/\/$/,""),basePath.match(/^[^\/]/)&&(basePath="/"+basePath),_page2["default"].base(basePath)}Object.defineProperty(exports,"__esModule",{value:!0});var _page=require("page.js"),_page2=_interopRequireDefault(_page),_url=require("url"),_url2=_interopRequireDefault(_url);_page2["default"].oldshow||(_page2["default"].oldshow=_page2["default"].show),_page2["default"].setAbsoluteBase=setAbsoluteBase.bind(_page2["default"]),_page2["default"].getAbsoluteBase=getAbsoluteBase.bind(_page2["default"]),_page2["default"].resolveURLToBase=resolveURLToBase.bind(_page2["default"]),_page2["default"].show=show(_page2["default"].oldshow),_page2["default"].routeAppliesToCurrentLocation=routeAppliesToCurrentLocation,window.ss=window.ss||{},window.ss.router=window.ss.router||_page2["default"],exports["default"]=window.ss.router},{"page.js":"page.js",url:64}],19:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]={SET_BREADCRUMBS:"SET_BREADCRUMBS"}},{}],20:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function reducer(){var state=arguments.length<=0||void 0===arguments[0]?initialState:arguments[0],action=arguments[1];switch(action.type){case _BreadcrumbsActionTypes2["default"].SET_BREADCRUMBS:return(0,_deepFreezeStrict2["default"])(_extends([],action.payload.breadcrumbs));default:return state}}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},_deepFreezeStrict=require("deep-freeze-strict"),_deepFreezeStrict2=_interopRequireDefault(_deepFreezeStrict),_BreadcrumbsActionTypes=require("./BreadcrumbsActionTypes"),_BreadcrumbsActionTypes2=_interopRequireDefault(_BreadcrumbsActionTypes),initialState=(0,_deepFreezeStrict2["default"])([]);exports["default"]=reducer},{"./BreadcrumbsActionTypes":19,"deep-freeze-strict":"deep-freeze-strict"}],21:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]={SET_CAMPAIGN_ACTIVE_CHANGESET:"SET_CAMPAIGN_ACTIVE_CHANGESET",SET_CAMPAIGN_SELECTED_CHANGESETITEM:"SET_CAMPAIGN_SELECTED_CHANGESETITEM",PUBLISH_CAMPAIGN_REQUEST:"PUBLISH_CAMPAIGN_REQUEST",PUBLISH_CAMPAIGN_SUCCESS:"PUBLISH_CAMPAIGN_SUCCESS",PUBLISH_CAMPAIGN_FAILURE:"PUBLISH_CAMPAIGN_FAILURE"}},{}],22:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function selectChangeSetItem(changeSetItemId){return{type:_CampaignActionTypes2["default"].SET_CAMPAIGN_SELECTED_CHANGESETITEM,payload:{changeSetItemId:changeSetItemId}}}function showCampaignView(campaignId,view){return function(dispatch){dispatch({type:_CampaignActionTypes2["default"].SET_CAMPAIGN_ACTIVE_CHANGESET,payload:{campaignId:campaignId,view:view}})}}function publishCampaign(publishApi,recordType,campaignId){return function(dispatch){dispatch({type:_CampaignActionTypes2["default"].PUBLISH_CAMPAIGN_REQUEST,payload:{campaignId:campaignId}}),publishApi({id:campaignId}).then(function(data){dispatch({type:_CampaignActionTypes2["default"].PUBLISH_CAMPAIGN_SUCCESS,payload:{campaignId:campaignId}}),dispatch({type:_RecordsActionTypes2["default"].FETCH_RECORD_SUCCESS,payload:{recordType:recordType,data:data}})})["catch"](function(error){dispatch({type:_CampaignActionTypes2["default"].PUBLISH_CAMPAIGN_FAILURE,payload:{error:error}})})}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.selectChangeSetItem=selectChangeSetItem,exports.showCampaignView=showCampaignView,exports.publishCampaign=publishCampaign;var _CampaignActionTypes=require("./CampaignActionTypes"),_CampaignActionTypes2=_interopRequireDefault(_CampaignActionTypes),_RecordsActionTypes=require("state/records/RecordsActionTypes"),_RecordsActionTypes2=_interopRequireDefault(_RecordsActionTypes)},{"./CampaignActionTypes":21,"state/records/RecordsActionTypes":29}],23:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function reducer(){var state=arguments.length<=0||void 0===arguments[0]?initialState:arguments[0],action=arguments[1];switch(action.type){case _CampaignActionTypes2["default"].SET_CAMPAIGN_SELECTED_CHANGESETITEM:return(0,_deepFreezeStrict2["default"])(_extends({},state,{changeSetItemId:action.payload.changeSetItemId}));case _CampaignActionTypes2["default"].SET_CAMPAIGN_ACTIVE_CHANGESET:return(0,_deepFreezeStrict2["default"])(_extends({},state,{campaignId:action.payload.campaignId,view:action.payload.view,changeSetItemId:null}));case _CampaignActionTypes2["default"].PUBLISH_CAMPAIGN_REQUEST:return(0,_deepFreezeStrict2["default"])(_extends({},state,{isPublishing:!0}));case _CampaignActionTypes2["default"].PUBLISH_CAMPAIGN_SUCCESS:case _CampaignActionTypes2["default"].PUBLISH_CAMPAIGN_FAILURE:return(0,_deepFreezeStrict2["default"])(_extends({},state,{isPublishing:!1}));default:return state}}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},_deepFreezeStrict=require("deep-freeze-strict"),_deepFreezeStrict2=_interopRequireDefault(_deepFreezeStrict),_CampaignActionTypes=require("./CampaignActionTypes"),_CampaignActionTypes2=_interopRequireDefault(_CampaignActionTypes),initialState=(0,_deepFreezeStrict2["default"])({campaignId:null,changeSetItemId:null,isPublishing:!1,view:null});exports["default"]=reducer},{"./CampaignActionTypes":21,"deep-freeze-strict":"deep-freeze-strict"}],24:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]={SET_CONFIG:"SET_CONFIG"}},{}],25:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function setConfig(config){return{type:_ConfigActionTypes2["default"].SET_CONFIG,payload:{config:config}}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.setConfig=setConfig;var _ConfigActionTypes=require("./ConfigActionTypes"),_ConfigActionTypes2=_interopRequireDefault(_ConfigActionTypes)},{"./ConfigActionTypes":24}],26:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function configReducer(){var state=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],action=arguments[1];switch(action.type){case _ConfigActionTypes2["default"].SET_CONFIG:return(0,_deepFreezeStrict2["default"])(_extends({},state,action.payload.config));default:return state}}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},_deepFreezeStrict=require("deep-freeze-strict"),_deepFreezeStrict2=_interopRequireDefault(_deepFreezeStrict),_ConfigActionTypes=require("./ConfigActionTypes"),_ConfigActionTypes2=_interopRequireDefault(_ConfigActionTypes);exports["default"]=configReducer},{"./ConfigActionTypes":24,"deep-freeze-strict":"deep-freeze-strict"}],27:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.ACTION_TYPES={ADD_FORM:"ADD_FORM",REMOVE_FORM:"REMOVE_FORM",SUBMIT_FORM_FAILURE:"SUBMIT_FORM_FAILURE",SUBMIT_FORM_REQUEST:"SUBMIT_FORM_REQUEST",SUBMIT_FORM_SUCCESS:"SUBMIT_FORM_SUCCESS",UPDATE_FIELD:"UPDATE_FIELD"}},{}],28:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function formReducer(){var state=arguments.length<=0||void 0===arguments[0]?initialState:arguments[0],action=arguments[1];switch(action.type){case _FormActionTypes.ACTION_TYPES.SUBMIT_FORM_REQUEST:return(0,_deepFreezeStrict2["default"])(_extends({},state,_defineProperty({},action.payload.formId,{submitting:!0})));case _FormActionTypes.ACTION_TYPES.REMOVE_FORM:return(0,_deepFreezeStrict2["default"])(Object.keys(state).reduce(function(previous,current){return current===action.payload.formId?previous:_extends({},previous,_defineProperty({},current,state[current]))},{}));case _FormActionTypes.ACTION_TYPES.ADD_FORM:return(0,_deepFreezeStrict2["default"])(_extends({},state,_defineProperty({},action.payload.formState.id,{fields:action.payload.formState.fields,submitting:!1})));case _FormActionTypes.ACTION_TYPES.UPDATE_FIELD:return(0,_deepFreezeStrict2["default"])(_extends({},state,_defineProperty({},action.payload.formId,_extends({},state[action.payload.formId],{fields:state[action.payload.formId].fields.map(function(field){return field.id===action.payload.updates.id?_extends({},field,action.payload.updates):field})}))));case _FormActionTypes.ACTION_TYPES.SUBMIT_FORM_SUCCESS:return(0,_deepFreezeStrict2["default"])(_extends({},state,_defineProperty({},action.payload.response.id,{fields:action.payload.response.state.fields,messages:action.payload.response.state.messages,submitting:!1})));case _FormActionTypes.ACTION_TYPES.SUBMIT_FORM_FAILURE:return(0,_deepFreezeStrict2["default"])(_extends({},state,_defineProperty({},action.payload.formId,{submitting:!1})));default:return state}}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},_deepFreezeStrict=require("deep-freeze-strict"),_deepFreezeStrict2=_interopRequireDefault(_deepFreezeStrict),_FormActionTypes=require("./FormActionTypes"),initialState=(0,_deepFreezeStrict2["default"])({});exports["default"]=formReducer},{"./FormActionTypes":27,"deep-freeze-strict":"deep-freeze-strict"}],29:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]={CREATE_RECORD:"CREATE_RECORD",UPDATE_RECORD:"UPDATE_RECORD",DELETE_RECORD:"DELETE_RECORD",FETCH_RECORDS_REQUEST:"FETCH_RECORDS_REQUEST",FETCH_RECORDS_FAILURE:"FETCH_RECORDS_FAILURE",FETCH_RECORDS_SUCCESS:"FETCH_RECORDS_SUCCESS",FETCH_RECORD_REQUEST:"FETCH_RECORD_REQUEST",FETCH_RECORD_FAILURE:"FETCH_RECORD_FAILURE",FETCH_RECORD_SUCCESS:"FETCH_RECORD_SUCCESS",DELETE_RECORD_REQUEST:"DELETE_RECORD_REQUEST",DELETE_RECORD_FAILURE:"DELETE_RECORD_FAILURE",DELETE_RECORD_SUCCESS:"DELETE_RECORD_SUCCESS"}},{}],30:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function populate(str,params){var names=["id"];return names.reduce(function(acc,name){return acc.replace(":"+name,params[name])},str)}function fetchRecords(recordType,method,url){var payload={recordType:recordType},headers={Accept:"text/json"},methodToLowerCase=method.toLowerCase();return function(dispatch){dispatch({type:_RecordsActionTypes2["default"].FETCH_RECORDS_REQUEST,payload:payload});var args="get"===methodToLowerCase?[populate(url,payload),headers]:[populate(url,payload),{},headers];return _Backend2["default"][methodToLowerCase].apply(_Backend2["default"],args).then(function(response){return response.json()}).then(function(json){dispatch({type:_RecordsActionTypes2["default"].FETCH_RECORDS_SUCCESS,payload:{recordType:recordType,data:json}})})["catch"](function(err){dispatch({type:_RecordsActionTypes2["default"].FETCH_RECORDS_FAILURE,payload:{error:err,recordType:recordType}})})}}function fetchRecord(recordType,method,url){var payload={recordType:recordType},headers={Accept:"text/json"},methodToLowerCase=method.toLowerCase();return function(dispatch){dispatch({type:_RecordsActionTypes2["default"].FETCH_RECORD_REQUEST,payload:payload});var args="get"===methodToLowerCase?[populate(url,payload),headers]:[populate(url,payload),{},headers];return _Backend2["default"][methodToLowerCase].apply(_Backend2["default"],args).then(function(response){return response.json()}).then(function(json){dispatch({type:_RecordsActionTypes2["default"].FETCH_RECORD_SUCCESS,payload:{recordType:recordType,data:json}})})["catch"](function(err){dispatch({type:_RecordsActionTypes2["default"].FETCH_RECORD_FAILURE,payload:{error:err,recordType:recordType}})})}}function deleteRecord(recordType,id,method,url){var headers=arguments.length<=4||void 0===arguments[4]?{}:arguments[4],payload={recordType:recordType,id:id},methodToLowerCase=method.toLowerCase(),args="get"===methodToLowerCase?[populate(url,payload),headers]:[populate(url,payload),{},headers];return function(dispatch){return dispatch({type:_RecordsActionTypes2["default"].DELETE_RECORD_REQUEST,payload:payload}),_Backend2["default"][methodToLowerCase].apply(_Backend2["default"],args).then(function(){dispatch({type:_RecordsActionTypes2["default"].DELETE_RECORD_SUCCESS,payload:{recordType:recordType,id:id}})})["catch"](function(err){dispatch({type:_RecordsActionTypes2["default"].DELETE_RECORD_FAILURE,payload:{error:err,recordType:recordType,id:id}})})}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.fetchRecords=fetchRecords,exports.fetchRecord=fetchRecord,exports.deleteRecord=deleteRecord;var _RecordsActionTypes=require("./RecordsActionTypes"),_RecordsActionTypes2=_interopRequireDefault(_RecordsActionTypes),_Backend=require("lib/Backend.js"),_Backend2=_interopRequireDefault(_Backend)},{"./RecordsActionTypes":29,"lib/Backend.js":15}],31:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function recordsReducer(){var state=arguments.length<=0||void 0===arguments[0]?initialState:arguments[0],action=arguments[1],records=void 0,recordType=void 0,record=void 0;switch(action.type){case _RecordsActionTypes2["default"].CREATE_RECORD:return(0,_deepFreezeStrict2["default"])(_extends({},state,{}));case _RecordsActionTypes2["default"].UPDATE_RECORD:return(0,_deepFreezeStrict2["default"])(_extends({},state,{}));case _RecordsActionTypes2["default"].DELETE_RECORD:return(0,_deepFreezeStrict2["default"])(_extends({},state,{}));case _RecordsActionTypes2["default"].FETCH_RECORDS_REQUEST:return state;case _RecordsActionTypes2["default"].FETCH_RECORDS_FAILURE:return state;case _RecordsActionTypes2["default"].FETCH_RECORDS_SUCCESS:if(recordType=action.payload.recordType,!recordType)throw new Error("Undefined record type");return records=action.payload.data._embedded[recordType]||{},records=records.reduce(function(prev,val){return _extends({},prev,_defineProperty({},val.ID,val))},{}),(0,_deepFreezeStrict2["default"])(_extends({},state,_defineProperty({},recordType,records)));case _RecordsActionTypes2["default"].FETCH_RECORD_REQUEST:return state;case _RecordsActionTypes2["default"].FETCH_RECORD_FAILURE:return state;case _RecordsActionTypes2["default"].FETCH_RECORD_SUCCESS:if(recordType=action.payload.recordType,record=action.payload.data,!recordType)throw new Error("Undefined record type");return(0,_deepFreezeStrict2["default"])(_extends({},state,_defineProperty({},recordType,_extends({},state[recordType],_defineProperty({},record.ID,record)))));case _RecordsActionTypes2["default"].DELETE_RECORD_REQUEST:return state;case _RecordsActionTypes2["default"].DELETE_RECORD_FAILURE:return state;case _RecordsActionTypes2["default"].DELETE_RECORD_SUCCESS:return recordType=action.payload.recordType,records=state[recordType],records=Object.keys(records).reduce(function(result,key){return parseInt(key,10)!==parseInt(action.payload.id,10)?_extends({},result,_defineProperty({},key,records[key])):result},{}),(0,_deepFreezeStrict2["default"])(_extends({},state,_defineProperty({},recordType,records)));default:return state}}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},_deepFreezeStrict=require("deep-freeze-strict"),_deepFreezeStrict2=_interopRequireDefault(_deepFreezeStrict),_RecordsActionTypes=require("./RecordsActionTypes"),_RecordsActionTypes2=_interopRequireDefault(_RecordsActionTypes),initialState={};exports["default"]=recordsReducer},{"./RecordsActionTypes":29,"deep-freeze-strict":"deep-freeze-strict"}],32:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var ACTION_TYPES={SET_SCHEMA:"SET_SCHEMA"};exports["default"]=ACTION_TYPES},{}],33:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}function schemaReducer(){var state=arguments.length<=0||void 0===arguments[0]?initialState:arguments[0],action=arguments.length<=1||void 0===arguments[1]?null:arguments[1];switch(action.type){case _SchemaActionTypes2["default"].SET_SCHEMA:var id=action.payload.schema.schema_url;return(0,_deepFreezeStrict2["default"])(_extends({},state,_defineProperty({},id,action.payload)));default:return state}}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target};exports["default"]=schemaReducer;var _deepFreezeStrict=require("deep-freeze-strict"),_deepFreezeStrict2=_interopRequireDefault(_deepFreezeStrict),_SchemaActionTypes=require("./SchemaActionTypes"),_SchemaActionTypes2=_interopRequireDefault(_SchemaActionTypes),initialState=(0,_deepFreezeStrict2["default"])({})},{"./SchemaActionTypes":32,"deep-freeze-strict":"deep-freeze-strict"}],34:[function(require,module,exports){function cleanUpNextTick(){draining=!1,currentQueue.length?queue=currentQueue.concat(queue):queueIndex=-1,queue.length&&drainQueue()}function drainQueue(){if(!draining){var timeout=setTimeout(cleanUpNextTick);draining=!0;for(var len=queue.length;len;){for(currentQueue=queue,queue=[];++queueIndex<len;)currentQueue&&currentQueue[queueIndex].run();queueIndex=-1,len=queue.length}currentQueue=null,draining=!1,clearTimeout(timeout)}}function Item(fun,array){this.fun=fun,this.array=array}function noop(){}var currentQueue,process=module.exports={},queue=[],draining=!1,queueIndex=-1;process.nextTick=function(fun){var args=new Array(arguments.length-1);if(arguments.length>1)for(var i=1;i<arguments.length;i++)args[i-1]=arguments[i];queue.push(new Item(fun,args)),1!==queue.length||draining||setTimeout(drainQueue,0)},Item.prototype.run=function(){this.fun.apply(null,this.array)},process.title="browser",process.browser=!0,process.env={},process.argv=[],process.version="",process.versions={},process.on=noop,process.addListener=noop,process.once=noop,process.off=noop,process.removeListener=noop,process.removeAllListeners=noop,process.emit=noop,process.binding=function(name){throw new Error("process.binding is not supported")},process.cwd=function(){return"/"},process.chdir=function(dir){throw new Error("process.chdir is not supported")},process.umask=function(){return 0}},{}],35:[function(require,module,exports){(function(global){!function(root){function error(type){throw new RangeError(errors[type])}function map(array,fn){for(var length=array.length,result=[];length--;)result[length]=fn(array[length]);return result}function mapDomain(string,fn){var parts=string.split("@"),result="";parts.length>1&&(result=parts[0]+"@",string=parts[1]),string=string.replace(regexSeparators,".");var labels=string.split("."),encoded=map(labels,fn).join(".");return result+encoded}function ucs2decode(string){for(var value,extra,output=[],counter=0,length=string.length;length>counter;)value=string.charCodeAt(counter++),value>=55296&&56319>=value&&length>counter?(extra=string.charCodeAt(counter++),56320==(64512&extra)?output.push(((1023&value)<<10)+(1023&extra)+65536):(output.push(value),counter--)):output.push(value);return output}function ucs2encode(array){return map(array,function(value){var output="";return value>65535&&(value-=65536,output+=stringFromCharCode(value>>>10&1023|55296),value=56320|1023&value),output+=stringFromCharCode(value)}).join("")}function basicToDigit(codePoint){return 10>codePoint-48?codePoint-22:26>codePoint-65?codePoint-65:26>codePoint-97?codePoint-97:base}function digitToBasic(digit,flag){return digit+22+75*(26>digit)-((0!=flag)<<5)}function adapt(delta,numPoints,firstTime){var k=0;for(delta=firstTime?floor(delta/damp):delta>>1,delta+=floor(delta/numPoints);delta>baseMinusTMin*tMax>>1;k+=base)delta=floor(delta/baseMinusTMin);return floor(k+(baseMinusTMin+1)*delta/(delta+skew))}function decode(input){var out,basic,j,index,oldi,w,k,digit,t,baseMinusT,output=[],inputLength=input.length,i=0,n=initialN,bias=initialBias;for(basic=input.lastIndexOf(delimiter),0>basic&&(basic=0),j=0;basic>j;++j)input.charCodeAt(j)>=128&&error("not-basic"),output.push(input.charCodeAt(j));for(index=basic>0?basic+1:0;inputLength>index;){for(oldi=i,w=1,k=base;index>=inputLength&&error("invalid-input"),digit=basicToDigit(input.charCodeAt(index++)),(digit>=base||digit>floor((maxInt-i)/w))&&error("overflow"),i+=digit*w,t=bias>=k?tMin:k>=bias+tMax?tMax:k-bias,!(t>digit);k+=base)baseMinusT=base-t,w>floor(maxInt/baseMinusT)&&error("overflow"),w*=baseMinusT;out=output.length+1,bias=adapt(i-oldi,out,0==oldi),floor(i/out)>maxInt-n&&error("overflow"),n+=floor(i/out),i%=out,output.splice(i++,0,n)}return ucs2encode(output)}function encode(input){var n,delta,handledCPCount,basicLength,bias,j,m,q,k,t,currentValue,inputLength,handledCPCountPlusOne,baseMinusT,qMinusT,output=[];for(input=ucs2decode(input),inputLength=input.length,n=initialN,delta=0,bias=initialBias,j=0;inputLength>j;++j)currentValue=input[j],128>currentValue&&output.push(stringFromCharCode(currentValue));for(handledCPCount=basicLength=output.length,basicLength&&output.push(delimiter);inputLength>handledCPCount;){for(m=maxInt,j=0;inputLength>j;++j)currentValue=input[j],currentValue>=n&&m>currentValue&&(m=currentValue);for(handledCPCountPlusOne=handledCPCount+1,m-n>floor((maxInt-delta)/handledCPCountPlusOne)&&error("overflow"),delta+=(m-n)*handledCPCountPlusOne,n=m,j=0;inputLength>j;++j)if(currentValue=input[j],n>currentValue&&++delta>maxInt&&error("overflow"),currentValue==n){for(q=delta,k=base;t=bias>=k?tMin:k>=bias+tMax?tMax:k-bias,!(t>q);k+=base)qMinusT=q-t,baseMinusT=base-t,output.push(stringFromCharCode(digitToBasic(t+qMinusT%baseMinusT,0))),q=floor(qMinusT/baseMinusT);output.push(stringFromCharCode(digitToBasic(q,0))),bias=adapt(delta,handledCPCountPlusOne,handledCPCount==basicLength),delta=0,++handledCPCount}++delta,++n}return output.join("")}function toUnicode(input){return mapDomain(input,function(string){return regexPunycode.test(string)?decode(string.slice(4).toLowerCase()):string})}function toASCII(input){return mapDomain(input,function(string){return regexNonASCII.test(string)?"xn--"+encode(string):string})}var freeExports="object"==typeof exports&&exports&&!exports.nodeType&&exports,freeModule="object"==typeof module&&module&&!module.nodeType&&module,freeGlobal="object"==typeof global&&global;freeGlobal.global!==freeGlobal&&freeGlobal.window!==freeGlobal&&freeGlobal.self!==freeGlobal||(root=freeGlobal);var punycode,key,maxInt=2147483647,base=36,tMin=1,tMax=26,skew=38,damp=700,initialBias=72,initialN=128,delimiter="-",regexPunycode=/^xn--/,regexNonASCII=/[^\x20-\x7E]/,regexSeparators=/[\x2E\u3002\uFF0E\uFF61]/g,errors={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},baseMinusTMin=base-tMin,floor=Math.floor,stringFromCharCode=String.fromCharCode;if(punycode={version:"1.3.2",ucs2:{decode:ucs2decode,encode:ucs2encode},decode:decode,encode:encode,toASCII:toASCII,toUnicode:toUnicode},"function"==typeof define&&"object"==typeof define.amd&&define.amd)define("punycode",function(){return punycode});else if(freeExports&&freeModule)if(module.exports==freeExports)freeModule.exports=punycode;else for(key in punycode)punycode.hasOwnProperty(key)&&(freeExports[key]=punycode[key]);else root.punycode=punycode}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],36:[function(require,module,exports){"use strict";function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}module.exports=function(qs,sep,eq,options){sep=sep||"&",eq=eq||"=";var obj={};if("string"!=typeof qs||0===qs.length)return obj;var regexp=/\+/g;qs=qs.split(sep);var maxKeys=1e3;options&&"number"==typeof options.maxKeys&&(maxKeys=options.maxKeys);var len=qs.length;maxKeys>0&&len>maxKeys&&(len=maxKeys);for(var i=0;len>i;++i){var kstr,vstr,k,v,x=qs[i].replace(regexp,"%20"),idx=x.indexOf(eq);idx>=0?(kstr=x.substr(0,idx),vstr=x.substr(idx+1)):(kstr=x,vstr=""),k=decodeURIComponent(kstr),v=decodeURIComponent(vstr),hasOwnProperty(obj,k)?isArray(obj[k])?obj[k].push(v):obj[k]=[obj[k],v]:obj[k]=v}return obj};var isArray=Array.isArray||function(xs){return"[object Array]"===Object.prototype.toString.call(xs)}},{}],37:[function(require,module,exports){"use strict";function map(xs,f){if(xs.map)return xs.map(f);for(var res=[],i=0;i<xs.length;i++)res.push(f(xs[i],i));return res}var stringifyPrimitive=function(v){switch(typeof v){case"string":return v;case"boolean":return v?"true":"false";case"number":return isFinite(v)?v:"";default:return""}};module.exports=function(obj,sep,eq,name){return sep=sep||"&",eq=eq||"=",null===obj&&(obj=void 0),"object"==typeof obj?map(objectKeys(obj),function(k){var ks=encodeURIComponent(stringifyPrimitive(k))+eq;return isArray(obj[k])?map(obj[k],function(v){return ks+encodeURIComponent(stringifyPrimitive(v))}).join(sep):ks+encodeURIComponent(stringifyPrimitive(obj[k]))}).join(sep):name?encodeURIComponent(stringifyPrimitive(name))+eq+encodeURIComponent(stringifyPrimitive(obj)):""};var isArray=Array.isArray||function(xs){return"[object Array]"===Object.prototype.toString.call(xs)},objectKeys=Object.keys||function(obj){var res=[];for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&res.push(key);return res}},{}],38:[function(require,module,exports){"use strict";exports.decode=exports.parse=require("./decode"),exports.encode=exports.stringify=require("./encode")},{"./decode":36,"./encode":37}],39:[function(require,module,exports){function isUndefinedOrNull(value){return null===value||void 0===value}function isBuffer(x){return x&&"object"==typeof x&&"number"==typeof x.length?"function"!=typeof x.copy||"function"!=typeof x.slice?!1:!(x.length>0&&"number"!=typeof x[0]):!1}function objEquiv(a,b,opts){var i,key;if(isUndefinedOrNull(a)||isUndefinedOrNull(b))return!1;if(a.prototype!==b.prototype)return!1;if(isArguments(a))return isArguments(b)?(a=pSlice.call(a),b=pSlice.call(b),deepEqual(a,b,opts)):!1;if(isBuffer(a)){if(!isBuffer(b))return!1;if(a.length!==b.length)return!1;for(i=0;i<a.length;i++)if(a[i]!==b[i])return!1;return!0}try{var ka=objectKeys(a),kb=objectKeys(b)}catch(e){return!1}if(ka.length!=kb.length)return!1;for(ka.sort(),kb.sort(),i=ka.length-1;i>=0;i--)if(ka[i]!=kb[i])return!1;for(i=ka.length-1;i>=0;i--)if(key=ka[i],!deepEqual(a[key],b[key],opts))return!1;return typeof a==typeof b}var pSlice=Array.prototype.slice,objectKeys=require("./lib/keys.js"),isArguments=require("./lib/is_arguments.js"),deepEqual=module.exports=function(actual,expected,opts){return opts||(opts={}),actual===expected?!0:actual instanceof Date&&expected instanceof Date?actual.getTime()===expected.getTime():!actual||!expected||"object"!=typeof actual&&"object"!=typeof expected?opts.strict?actual===expected:actual==expected:objEquiv(actual,expected,opts)}},{"./lib/is_arguments.js":40,"./lib/keys.js":41}],40:[function(require,module,exports){function supported(object){return"[object Arguments]"==Object.prototype.toString.call(object)}function unsupported(object){return object&&"object"==typeof object&&"number"==typeof object.length&&Object.prototype.hasOwnProperty.call(object,"callee")&&!Object.prototype.propertyIsEnumerable.call(object,"callee")||!1}var supportsArgumentsClass="[object Arguments]"==function(){return Object.prototype.toString.call(arguments)}();exports=module.exports=supportsArgumentsClass?supported:unsupported,exports.supported=supported,exports.unsupported=unsupported},{}],41:[function(require,module,exports){function shim(obj){var keys=[];for(var key in obj)keys.push(key);return keys}exports=module.exports="function"==typeof Object.keys?Object.keys:shim,exports.shim=shim},{}],42:[function(require,module,exports){(function(process,global){(function(){"use strict";function lib$es6$promise$utils$$objectOrFunction(x){return"function"==typeof x||"object"==typeof x&&null!==x}function lib$es6$promise$utils$$isFunction(x){return"function"==typeof x}function lib$es6$promise$asap$$setScheduler(scheduleFn){lib$es6$promise$asap$$customSchedulerFn=scheduleFn}function lib$es6$promise$asap$$setAsap(asapFn){lib$es6$promise$asap$$asap=asapFn}function lib$es6$promise$asap$$useNextTick(){return function(){process.nextTick(lib$es6$promise$asap$$flush)}}function lib$es6$promise$asap$$useVertxTimer(){return function(){lib$es6$promise$asap$$vertxNext(lib$es6$promise$asap$$flush)}}function lib$es6$promise$asap$$useMutationObserver(){var iterations=0,observer=new lib$es6$promise$asap$$BrowserMutationObserver(lib$es6$promise$asap$$flush),node=document.createTextNode("");return observer.observe(node,{characterData:!0}),function(){node.data=iterations=++iterations%2}}function lib$es6$promise$asap$$useMessageChannel(){var channel=new MessageChannel;return channel.port1.onmessage=lib$es6$promise$asap$$flush,function(){channel.port2.postMessage(0)}}function lib$es6$promise$asap$$useSetTimeout(){return function(){setTimeout(lib$es6$promise$asap$$flush,1)}}function lib$es6$promise$asap$$flush(){for(var i=0;lib$es6$promise$asap$$len>i;i+=2){var callback=lib$es6$promise$asap$$queue[i],arg=lib$es6$promise$asap$$queue[i+1];callback(arg),
lib$es6$promise$asap$$queue[i]=void 0,lib$es6$promise$asap$$queue[i+1]=void 0}lib$es6$promise$asap$$len=0}function lib$es6$promise$asap$$attemptVertx(){try{var r=require,vertx=r("vertx");return lib$es6$promise$asap$$vertxNext=vertx.runOnLoop||vertx.runOnContext,lib$es6$promise$asap$$useVertxTimer()}catch(e){return lib$es6$promise$asap$$useSetTimeout()}}function lib$es6$promise$then$$then(onFulfillment,onRejection){var parent=this,state=parent._state;if(state===lib$es6$promise$$internal$$FULFILLED&&!onFulfillment||state===lib$es6$promise$$internal$$REJECTED&&!onRejection)return this;var child=new this.constructor(lib$es6$promise$$internal$$noop),result=parent._result;if(state){var callback=arguments[state-1];lib$es6$promise$asap$$asap(function(){lib$es6$promise$$internal$$invokeCallback(state,child,callback,result)})}else lib$es6$promise$$internal$$subscribe(parent,child,onFulfillment,onRejection);return child}function lib$es6$promise$promise$resolve$$resolve(object){var Constructor=this;if(object&&"object"==typeof object&&object.constructor===Constructor)return object;var promise=new Constructor(lib$es6$promise$$internal$$noop);return lib$es6$promise$$internal$$resolve(promise,object),promise}function lib$es6$promise$$internal$$noop(){}function lib$es6$promise$$internal$$selfFulfillment(){return new TypeError("You cannot resolve a promise with itself")}function lib$es6$promise$$internal$$cannotReturnOwn(){return new TypeError("A promises callback cannot return that same promise.")}function lib$es6$promise$$internal$$getThen(promise){try{return promise.then}catch(error){return lib$es6$promise$$internal$$GET_THEN_ERROR.error=error,lib$es6$promise$$internal$$GET_THEN_ERROR}}function lib$es6$promise$$internal$$tryThen(then,value,fulfillmentHandler,rejectionHandler){try{then.call(value,fulfillmentHandler,rejectionHandler)}catch(e){return e}}function lib$es6$promise$$internal$$handleForeignThenable(promise,thenable,then){lib$es6$promise$asap$$asap(function(promise){var sealed=!1,error=lib$es6$promise$$internal$$tryThen(then,thenable,function(value){sealed||(sealed=!0,thenable!==value?lib$es6$promise$$internal$$resolve(promise,value):lib$es6$promise$$internal$$fulfill(promise,value))},function(reason){sealed||(sealed=!0,lib$es6$promise$$internal$$reject(promise,reason))},"Settle: "+(promise._label||" unknown promise"));!sealed&&error&&(sealed=!0,lib$es6$promise$$internal$$reject(promise,error))},promise)}function lib$es6$promise$$internal$$handleOwnThenable(promise,thenable){thenable._state===lib$es6$promise$$internal$$FULFILLED?lib$es6$promise$$internal$$fulfill(promise,thenable._result):thenable._state===lib$es6$promise$$internal$$REJECTED?lib$es6$promise$$internal$$reject(promise,thenable._result):lib$es6$promise$$internal$$subscribe(thenable,void 0,function(value){lib$es6$promise$$internal$$resolve(promise,value)},function(reason){lib$es6$promise$$internal$$reject(promise,reason)})}function lib$es6$promise$$internal$$handleMaybeThenable(promise,maybeThenable,then){maybeThenable.constructor===promise.constructor&&then===lib$es6$promise$then$$default&&constructor.resolve===lib$es6$promise$promise$resolve$$default?lib$es6$promise$$internal$$handleOwnThenable(promise,maybeThenable):then===lib$es6$promise$$internal$$GET_THEN_ERROR?lib$es6$promise$$internal$$reject(promise,lib$es6$promise$$internal$$GET_THEN_ERROR.error):void 0===then?lib$es6$promise$$internal$$fulfill(promise,maybeThenable):lib$es6$promise$utils$$isFunction(then)?lib$es6$promise$$internal$$handleForeignThenable(promise,maybeThenable,then):lib$es6$promise$$internal$$fulfill(promise,maybeThenable)}function lib$es6$promise$$internal$$resolve(promise,value){promise===value?lib$es6$promise$$internal$$reject(promise,lib$es6$promise$$internal$$selfFulfillment()):lib$es6$promise$utils$$objectOrFunction(value)?lib$es6$promise$$internal$$handleMaybeThenable(promise,value,lib$es6$promise$$internal$$getThen(value)):lib$es6$promise$$internal$$fulfill(promise,value)}function lib$es6$promise$$internal$$publishRejection(promise){promise._onerror&&promise._onerror(promise._result),lib$es6$promise$$internal$$publish(promise)}function lib$es6$promise$$internal$$fulfill(promise,value){promise._state===lib$es6$promise$$internal$$PENDING&&(promise._result=value,promise._state=lib$es6$promise$$internal$$FULFILLED,0!==promise._subscribers.length&&lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish,promise))}function lib$es6$promise$$internal$$reject(promise,reason){promise._state===lib$es6$promise$$internal$$PENDING&&(promise._state=lib$es6$promise$$internal$$REJECTED,promise._result=reason,lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publishRejection,promise))}function lib$es6$promise$$internal$$subscribe(parent,child,onFulfillment,onRejection){var subscribers=parent._subscribers,length=subscribers.length;parent._onerror=null,subscribers[length]=child,subscribers[length+lib$es6$promise$$internal$$FULFILLED]=onFulfillment,subscribers[length+lib$es6$promise$$internal$$REJECTED]=onRejection,0===length&&parent._state&&lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish,parent)}function lib$es6$promise$$internal$$publish(promise){var subscribers=promise._subscribers,settled=promise._state;if(0!==subscribers.length){for(var child,callback,detail=promise._result,i=0;i<subscribers.length;i+=3)child=subscribers[i],callback=subscribers[i+settled],child?lib$es6$promise$$internal$$invokeCallback(settled,child,callback,detail):callback(detail);promise._subscribers.length=0}}function lib$es6$promise$$internal$$ErrorObject(){this.error=null}function lib$es6$promise$$internal$$tryCatch(callback,detail){try{return callback(detail)}catch(e){return lib$es6$promise$$internal$$TRY_CATCH_ERROR.error=e,lib$es6$promise$$internal$$TRY_CATCH_ERROR}}function lib$es6$promise$$internal$$invokeCallback(settled,promise,callback,detail){var value,error,succeeded,failed,hasCallback=lib$es6$promise$utils$$isFunction(callback);if(hasCallback){if(value=lib$es6$promise$$internal$$tryCatch(callback,detail),value===lib$es6$promise$$internal$$TRY_CATCH_ERROR?(failed=!0,error=value.error,value=null):succeeded=!0,promise===value)return void lib$es6$promise$$internal$$reject(promise,lib$es6$promise$$internal$$cannotReturnOwn())}else value=detail,succeeded=!0;promise._state!==lib$es6$promise$$internal$$PENDING||(hasCallback&&succeeded?lib$es6$promise$$internal$$resolve(promise,value):failed?lib$es6$promise$$internal$$reject(promise,error):settled===lib$es6$promise$$internal$$FULFILLED?lib$es6$promise$$internal$$fulfill(promise,value):settled===lib$es6$promise$$internal$$REJECTED&&lib$es6$promise$$internal$$reject(promise,value))}function lib$es6$promise$$internal$$initializePromise(promise,resolver){try{resolver(function(value){lib$es6$promise$$internal$$resolve(promise,value)},function(reason){lib$es6$promise$$internal$$reject(promise,reason)})}catch(e){lib$es6$promise$$internal$$reject(promise,e)}}function lib$es6$promise$promise$all$$all(entries){return new lib$es6$promise$enumerator$$default(this,entries).promise}function lib$es6$promise$promise$race$$race(entries){function onFulfillment(value){lib$es6$promise$$internal$$resolve(promise,value)}function onRejection(reason){lib$es6$promise$$internal$$reject(promise,reason)}var Constructor=this,promise=new Constructor(lib$es6$promise$$internal$$noop);if(!lib$es6$promise$utils$$isArray(entries))return lib$es6$promise$$internal$$reject(promise,new TypeError("You must pass an array to race.")),promise;for(var length=entries.length,i=0;promise._state===lib$es6$promise$$internal$$PENDING&&length>i;i++)lib$es6$promise$$internal$$subscribe(Constructor.resolve(entries[i]),void 0,onFulfillment,onRejection);return promise}function lib$es6$promise$promise$reject$$reject(reason){var Constructor=this,promise=new Constructor(lib$es6$promise$$internal$$noop);return lib$es6$promise$$internal$$reject(promise,reason),promise}function lib$es6$promise$promise$$needsResolver(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function lib$es6$promise$promise$$needsNew(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function lib$es6$promise$promise$$Promise(resolver){this._id=lib$es6$promise$promise$$counter++,this._state=void 0,this._result=void 0,this._subscribers=[],lib$es6$promise$$internal$$noop!==resolver&&("function"!=typeof resolver&&lib$es6$promise$promise$$needsResolver(),this instanceof lib$es6$promise$promise$$Promise?lib$es6$promise$$internal$$initializePromise(this,resolver):lib$es6$promise$promise$$needsNew())}function lib$es6$promise$enumerator$$Enumerator(Constructor,input){this._instanceConstructor=Constructor,this.promise=new Constructor(lib$es6$promise$$internal$$noop),Array.isArray(input)?(this._input=input,this.length=input.length,this._remaining=input.length,this._result=new Array(this.length),0===this.length?lib$es6$promise$$internal$$fulfill(this.promise,this._result):(this.length=this.length||0,this._enumerate(),0===this._remaining&&lib$es6$promise$$internal$$fulfill(this.promise,this._result))):lib$es6$promise$$internal$$reject(this.promise,this._validationError())}function lib$es6$promise$polyfill$$polyfill(){var local;if("undefined"!=typeof global)local=global;else if("undefined"!=typeof self)local=self;else try{local=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var P=local.Promise;P&&"[object Promise]"===Object.prototype.toString.call(P.resolve())&&!P.cast||(local.Promise=lib$es6$promise$promise$$default)}var lib$es6$promise$utils$$_isArray;lib$es6$promise$utils$$_isArray=Array.isArray?Array.isArray:function(x){return"[object Array]"===Object.prototype.toString.call(x)};var lib$es6$promise$asap$$vertxNext,lib$es6$promise$asap$$customSchedulerFn,lib$es6$promise$asap$$scheduleFlush,lib$es6$promise$utils$$isArray=lib$es6$promise$utils$$_isArray,lib$es6$promise$asap$$len=0,lib$es6$promise$asap$$asap=function(callback,arg){lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len]=callback,lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len+1]=arg,lib$es6$promise$asap$$len+=2,2===lib$es6$promise$asap$$len&&(lib$es6$promise$asap$$customSchedulerFn?lib$es6$promise$asap$$customSchedulerFn(lib$es6$promise$asap$$flush):lib$es6$promise$asap$$scheduleFlush())},lib$es6$promise$asap$$browserWindow="undefined"!=typeof window?window:void 0,lib$es6$promise$asap$$browserGlobal=lib$es6$promise$asap$$browserWindow||{},lib$es6$promise$asap$$BrowserMutationObserver=lib$es6$promise$asap$$browserGlobal.MutationObserver||lib$es6$promise$asap$$browserGlobal.WebKitMutationObserver,lib$es6$promise$asap$$isNode="undefined"!=typeof process&&"[object process]"==={}.toString.call(process),lib$es6$promise$asap$$isWorker="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,lib$es6$promise$asap$$queue=new Array(1e3);lib$es6$promise$asap$$scheduleFlush=lib$es6$promise$asap$$isNode?lib$es6$promise$asap$$useNextTick():lib$es6$promise$asap$$BrowserMutationObserver?lib$es6$promise$asap$$useMutationObserver():lib$es6$promise$asap$$isWorker?lib$es6$promise$asap$$useMessageChannel():void 0===lib$es6$promise$asap$$browserWindow&&"function"==typeof require?lib$es6$promise$asap$$attemptVertx():lib$es6$promise$asap$$useSetTimeout();var lib$es6$promise$then$$default=lib$es6$promise$then$$then,lib$es6$promise$promise$resolve$$default=lib$es6$promise$promise$resolve$$resolve,lib$es6$promise$$internal$$PENDING=void 0,lib$es6$promise$$internal$$FULFILLED=1,lib$es6$promise$$internal$$REJECTED=2,lib$es6$promise$$internal$$GET_THEN_ERROR=new lib$es6$promise$$internal$$ErrorObject,lib$es6$promise$$internal$$TRY_CATCH_ERROR=new lib$es6$promise$$internal$$ErrorObject,lib$es6$promise$promise$all$$default=lib$es6$promise$promise$all$$all,lib$es6$promise$promise$race$$default=lib$es6$promise$promise$race$$race,lib$es6$promise$promise$reject$$default=lib$es6$promise$promise$reject$$reject,lib$es6$promise$promise$$counter=0,lib$es6$promise$promise$$default=lib$es6$promise$promise$$Promise;lib$es6$promise$promise$$Promise.all=lib$es6$promise$promise$all$$default,lib$es6$promise$promise$$Promise.race=lib$es6$promise$promise$race$$default,lib$es6$promise$promise$$Promise.resolve=lib$es6$promise$promise$resolve$$default,lib$es6$promise$promise$$Promise.reject=lib$es6$promise$promise$reject$$default,lib$es6$promise$promise$$Promise._setScheduler=lib$es6$promise$asap$$setScheduler,lib$es6$promise$promise$$Promise._setAsap=lib$es6$promise$asap$$setAsap,lib$es6$promise$promise$$Promise._asap=lib$es6$promise$asap$$asap,lib$es6$promise$promise$$Promise.prototype={constructor:lib$es6$promise$promise$$Promise,then:lib$es6$promise$then$$default,"catch":function(onRejection){return this.then(null,onRejection)}};var lib$es6$promise$enumerator$$default=lib$es6$promise$enumerator$$Enumerator;lib$es6$promise$enumerator$$Enumerator.prototype._validationError=function(){return new Error("Array Methods must be provided an Array")},lib$es6$promise$enumerator$$Enumerator.prototype._enumerate=function(){for(var length=this.length,input=this._input,i=0;this._state===lib$es6$promise$$internal$$PENDING&&length>i;i++)this._eachEntry(input[i],i)},lib$es6$promise$enumerator$$Enumerator.prototype._eachEntry=function(entry,i){var c=this._instanceConstructor,resolve=c.resolve;if(resolve===lib$es6$promise$promise$resolve$$default){var then=lib$es6$promise$$internal$$getThen(entry);if(then===lib$es6$promise$then$$default&&entry._state!==lib$es6$promise$$internal$$PENDING)this._settledAt(entry._state,i,entry._result);else if("function"!=typeof then)this._remaining--,this._result[i]=entry;else if(c===lib$es6$promise$promise$$default){var promise=new c(lib$es6$promise$$internal$$noop);lib$es6$promise$$internal$$handleMaybeThenable(promise,entry,then),this._willSettleAt(promise,i)}else this._willSettleAt(new c(function(resolve){resolve(entry)}),i)}else this._willSettleAt(resolve(entry),i)},lib$es6$promise$enumerator$$Enumerator.prototype._settledAt=function(state,i,value){var promise=this.promise;promise._state===lib$es6$promise$$internal$$PENDING&&(this._remaining--,state===lib$es6$promise$$internal$$REJECTED?lib$es6$promise$$internal$$reject(promise,value):this._result[i]=value),0===this._remaining&&lib$es6$promise$$internal$$fulfill(promise,this._result)},lib$es6$promise$enumerator$$Enumerator.prototype._willSettleAt=function(promise,i){var enumerator=this;lib$es6$promise$$internal$$subscribe(promise,void 0,function(value){enumerator._settledAt(lib$es6$promise$$internal$$FULFILLED,i,value)},function(reason){enumerator._settledAt(lib$es6$promise$$internal$$REJECTED,i,reason)})};var lib$es6$promise$polyfill$$default=lib$es6$promise$polyfill$$polyfill,lib$es6$promise$umd$$ES6Promise={Promise:lib$es6$promise$promise$$default,polyfill:lib$es6$promise$polyfill$$default};"function"==typeof define&&define.amd?define(function(){return lib$es6$promise$umd$$ES6Promise}):"undefined"!=typeof module&&module.exports?module.exports=lib$es6$promise$umd$$ES6Promise:"undefined"!=typeof this&&(this.ES6Promise=lib$es6$promise$umd$$ES6Promise),lib$es6$promise$polyfill$$default()}).call(this)}).call(this,require("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:34}],43:[function(require,module,exports){"use strict";exports.__esModule=!0;var PUSH="PUSH";exports.PUSH=PUSH;var REPLACE="REPLACE";exports.REPLACE=REPLACE;var POP="POP";exports.POP=POP,exports["default"]={PUSH:PUSH,REPLACE:REPLACE,POP:POP}},{}],44:[function(require,module,exports){"use strict";function loopAsync(turns,work,callback){function done(){return isDone=!0,sync?void(doneArgs=[].concat(_slice.call(arguments))):void callback.apply(this,arguments)}function next(){if(!isDone&&(hasNext=!0,!sync)){for(sync=!0;!isDone&&turns>currentTurn&&hasNext;)hasNext=!1,work.call(this,currentTurn++,next,done);return sync=!1,isDone?void callback.apply(this,doneArgs):void(currentTurn>=turns&&hasNext&&(isDone=!0,callback()))}}var currentTurn=0,isDone=!1,sync=!1,hasNext=!1,doneArgs=void 0;next()}exports.__esModule=!0;var _slice=Array.prototype.slice;exports.loopAsync=loopAsync},{}],45:[function(require,module,exports){(function(process){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function createKey(key){return KeyPrefix+key}function saveState(key,state){try{null==state?window.sessionStorage.removeItem(createKey(key)):window.sessionStorage.setItem(createKey(key),JSON.stringify(state))}catch(error){if(error.name===SecurityError)return void("production"!==process.env.NODE_ENV?_warning2["default"](!1,"[history] Unable to save state; sessionStorage is not available due to security settings"):void 0);if(QuotaExceededErrors.indexOf(error.name)>=0&&0===window.sessionStorage.length)return void("production"!==process.env.NODE_ENV?_warning2["default"](!1,"[history] Unable to save state; sessionStorage is not available in Safari private mode"):void 0);throw error}}function readState(key){var json=void 0;try{json=window.sessionStorage.getItem(createKey(key))}catch(error){if(error.name===SecurityError)return"production"!==process.env.NODE_ENV?_warning2["default"](!1,"[history] Unable to read state; sessionStorage is not available due to security settings"):void 0,null}if(json)try{return JSON.parse(json)}catch(error){}return null}exports.__esModule=!0,exports.saveState=saveState,exports.readState=readState;var _warning=require("warning"),_warning2=_interopRequireDefault(_warning),KeyPrefix="@@History/",QuotaExceededErrors=["QuotaExceededError","QUOTA_EXCEEDED_ERR"],SecurityError="SecurityError"}).call(this,require("_process"))},{_process:34,warning:56}],46:[function(require,module,exports){"use strict";function addEventListener(node,event,listener){node.addEventListener?node.addEventListener(event,listener,!1):node.attachEvent("on"+event,listener)}function removeEventListener(node,event,listener){node.removeEventListener?node.removeEventListener(event,listener,!1):node.detachEvent("on"+event,listener)}function getHashPath(){return window.location.href.split("#")[1]||""}function replaceHashPath(path){window.location.replace(window.location.pathname+window.location.search+"#"+path)}function getWindowPath(){return window.location.pathname+window.location.search+window.location.hash}function go(n){n&&window.history.go(n)}function getUserConfirmation(message,callback){callback(window.confirm(message))}function supportsHistory(){var ua=navigator.userAgent;return-1===ua.indexOf("Android 2.")&&-1===ua.indexOf("Android 4.0")||-1===ua.indexOf("Mobile Safari")||-1!==ua.indexOf("Chrome")||-1!==ua.indexOf("Windows Phone")?window.history&&"pushState"in window.history:!1}function supportsGoWithoutReloadUsingHash(){var ua=navigator.userAgent;return-1===ua.indexOf("Firefox")}exports.__esModule=!0,exports.addEventListener=addEventListener,exports.removeEventListener=removeEventListener,exports.getHashPath=getHashPath,exports.replaceHashPath=replaceHashPath,exports.getWindowPath=getWindowPath,exports.go=go,exports.getUserConfirmation=getUserConfirmation,exports.supportsHistory=supportsHistory,exports.supportsGoWithoutReloadUsingHash=supportsGoWithoutReloadUsingHash},{}],47:[function(require,module,exports){"use strict";exports.__esModule=!0;var canUseDOM=!("undefined"==typeof window||!window.document||!window.document.createElement);exports.canUseDOM=canUseDOM},{}],48:[function(require,module,exports){(function(process){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function extractPath(string){var match=string.match(/^https?:\/\/[^\/]*/);return null==match?string:string.substring(match[0].length)}function parsePath(path){var pathname=extractPath(path),search="",hash="";"production"!==process.env.NODE_ENV?_warning2["default"](path===pathname,'A path must be pathname + search + hash only, not a fully qualified URL like "%s"',path):void 0;var hashIndex=pathname.indexOf("#");-1!==hashIndex&&(hash=pathname.substring(hashIndex),pathname=pathname.substring(0,hashIndex));var searchIndex=pathname.indexOf("?");return-1!==searchIndex&&(search=pathname.substring(searchIndex),pathname=pathname.substring(0,searchIndex)),""===pathname&&(pathname="/"),{pathname:pathname,search:search,hash:hash}}exports.__esModule=!0,exports.extractPath=extractPath,exports.parsePath=parsePath;var _warning=require("warning"),_warning2=_interopRequireDefault(_warning)}).call(this,require("_process"))},{_process:34,warning:56}],49:[function(require,module,exports){(function(process){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function createBrowserHistory(){function getCurrentLocation(historyState){try{historyState=historyState||window.history.state||{}}catch(e){historyState={}}var path=_DOMUtils.getWindowPath(),_historyState=historyState,key=_historyState.key,state=void 0;key?state=_DOMStateStorage.readState(key):(state=null,key=history.createKey(),isSupported&&window.history.replaceState(_extends({},historyState,{key:key}),null));var location=_PathUtils.parsePath(path);return history.createLocation(_extends({},location,{state:state}),void 0,key)}function startPopStateListener(_ref){function popStateListener(event){void 0!==event.state&&transitionTo(getCurrentLocation(event.state))}var transitionTo=_ref.transitionTo;return _DOMUtils.addEventListener(window,"popstate",popStateListener),function(){_DOMUtils.removeEventListener(window,"popstate",popStateListener)}}function finishTransition(location){var basename=location.basename,pathname=location.pathname,search=location.search,hash=location.hash,state=location.state,action=location.action,key=location.key;if(action!==_Actions.POP){_DOMStateStorage.saveState(key,state);var path=(basename||"")+pathname+search+hash,historyState={key:key};if(action===_Actions.PUSH){if(useRefresh)return window.location.href=path,!1;window.history.pushState(historyState,null,path)}else{if(useRefresh)return window.location.replace(path),!1;window.history.replaceState(historyState,null,path)}}}function listenBefore(listener){1===++listenerCount&&(stopPopStateListener=startPopStateListener(history));var unlisten=history.listenBefore(listener);return function(){unlisten(),0===--listenerCount&&stopPopStateListener()}}function listen(listener){1===++listenerCount&&(stopPopStateListener=startPopStateListener(history));var unlisten=history.listen(listener);return function(){unlisten(),0===--listenerCount&&stopPopStateListener()}}function registerTransitionHook(hook){1===++listenerCount&&(stopPopStateListener=startPopStateListener(history)),history.registerTransitionHook(hook)}function unregisterTransitionHook(hook){history.unregisterTransitionHook(hook),0===--listenerCount&&stopPopStateListener()}var options=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];_ExecutionEnvironment.canUseDOM?void 0:"production"!==process.env.NODE_ENV?_invariant2["default"](!1,"Browser history needs a DOM"):_invariant2["default"](!1);var forceRefresh=options.forceRefresh,isSupported=_DOMUtils.supportsHistory(),useRefresh=!isSupported||forceRefresh,history=_createDOMHistory2["default"](_extends({},options,{getCurrentLocation:getCurrentLocation,finishTransition:finishTransition,saveState:_DOMStateStorage.saveState})),listenerCount=0,stopPopStateListener=void 0;return _extends({},history,{listenBefore:listenBefore,listen:listen,registerTransitionHook:registerTransitionHook,unregisterTransitionHook:unregisterTransitionHook})}exports.__esModule=!0;var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},_invariant=require("invariant"),_invariant2=_interopRequireDefault(_invariant),_Actions=require("./Actions"),_PathUtils=require("./PathUtils"),_ExecutionEnvironment=require("./ExecutionEnvironment"),_DOMUtils=require("./DOMUtils"),_DOMStateStorage=require("./DOMStateStorage"),_createDOMHistory=require("./createDOMHistory"),_createDOMHistory2=_interopRequireDefault(_createDOMHistory);exports["default"]=createBrowserHistory,module.exports=exports["default"]}).call(this,require("_process"))},{"./Actions":43,"./DOMStateStorage":45,"./DOMUtils":46,"./ExecutionEnvironment":47,"./PathUtils":48,"./createDOMHistory":50,_process:34,invariant:55}],50:[function(require,module,exports){(function(process){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function createDOMHistory(options){function listen(listener){return _ExecutionEnvironment.canUseDOM?void 0:"production"!==process.env.NODE_ENV?_invariant2["default"](!1,"DOM history needs a DOM"):_invariant2["default"](!1),history.listen(listener)}var history=_createHistory2["default"](_extends({getUserConfirmation:_DOMUtils.getUserConfirmation},options,{go:_DOMUtils.go}));return _extends({},history,{listen:listen})}exports.__esModule=!0;var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},_invariant=require("invariant"),_invariant2=_interopRequireDefault(_invariant),_ExecutionEnvironment=require("./ExecutionEnvironment"),_DOMUtils=require("./DOMUtils"),_createHistory=require("./createHistory"),_createHistory2=_interopRequireDefault(_createHistory);exports["default"]=createDOMHistory,module.exports=exports["default"]}).call(this,require("_process"))},{"./DOMUtils":46,"./ExecutionEnvironment":47,"./createHistory":51,_process:34,invariant:55}],51:[function(require,module,exports){(function(process){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function createRandomKey(length){return Math.random().toString(36).substr(2,length)}function locationsAreEqual(a,b){return a.pathname===b.pathname&&a.search===b.search&&a.key===b.key&&_deepEqual2["default"](a.state,b.state)}function createHistory(){function listenBefore(hook){return transitionHooks.push(hook),function(){transitionHooks=transitionHooks.filter(function(item){return item!==hook})}}function getCurrent(){return pendingLocation&&pendingLocation.action===_Actions.POP?allKeys.indexOf(pendingLocation.key):location?allKeys.indexOf(location.key):-1}function updateLocation(newLocation){var current=getCurrent();location=newLocation,location.action===_Actions.PUSH?allKeys=[].concat(allKeys.slice(0,current+1),[location.key]):location.action===_Actions.REPLACE&&(allKeys[current]=location.key),changeListeners.forEach(function(listener){listener(location)})}function listen(listener){if(changeListeners.push(listener),location)listener(location);else{var _location=getCurrentLocation();allKeys=[_location.key],updateLocation(_location)}return function(){changeListeners=changeListeners.filter(function(item){return item!==listener})}}function confirmTransitionTo(location,callback){_AsyncUtils.loopAsync(transitionHooks.length,function(index,next,done){_runTransitionHook2["default"](transitionHooks[index],location,function(result){null!=result?done(result):next()})},function(message){getUserConfirmation&&"string"==typeof message?getUserConfirmation(message,function(ok){callback(ok!==!1)}):callback(message!==!1)})}function transitionTo(nextLocation){location&&locationsAreEqual(location,nextLocation)||(pendingLocation=nextLocation,confirmTransitionTo(nextLocation,function(ok){if(pendingLocation===nextLocation)if(ok){if(nextLocation.action===_Actions.PUSH){var prevPath=createPath(location),nextPath=createPath(nextLocation);nextPath===prevPath&&_deepEqual2["default"](location.state,nextLocation.state)&&(nextLocation.action=_Actions.REPLACE)}finishTransition(nextLocation)!==!1&&updateLocation(nextLocation)}else if(location&&nextLocation.action===_Actions.POP){var prevIndex=allKeys.indexOf(location.key),nextIndex=allKeys.indexOf(nextLocation.key);-1!==prevIndex&&-1!==nextIndex&&go(prevIndex-nextIndex)}}))}function push(location){transitionTo(createLocation(location,_Actions.PUSH,createKey()))}function replace(location){transitionTo(createLocation(location,_Actions.REPLACE,createKey()))}function goBack(){go(-1)}function goForward(){go(1)}function createKey(){return createRandomKey(keyLength)}function createPath(location){if(null==location||"string"==typeof location)return location;var pathname=location.pathname,search=location.search,hash=location.hash,result=pathname;return search&&(result+=search),hash&&(result+=hash),result}function createHref(location){return createPath(location)}function createLocation(location,action){var key=arguments.length<=2||void 0===arguments[2]?createKey():arguments[2];return"object"==typeof action&&("production"!==process.env.NODE_ENV?_warning2["default"](!1,"The state (2nd) argument to history.createLocation is deprecated; use a location descriptor instead"):void 0,"string"==typeof location&&(location=_PathUtils.parsePath(location)),location=_extends({},location,{state:action}),action=key,key=arguments[3]||createKey()),_createLocation3["default"](location,action,key)}function setState(state){location?(updateLocationState(location,state),updateLocation(location)):updateLocationState(getCurrentLocation(),state)}function updateLocationState(location,state){location.state=_extends({},location.state,state),saveState(location.key,location.state)}function registerTransitionHook(hook){-1===transitionHooks.indexOf(hook)&&transitionHooks.push(hook)}function unregisterTransitionHook(hook){transitionHooks=transitionHooks.filter(function(item){return item!==hook})}function pushState(state,path){"string"==typeof path&&(path=_PathUtils.parsePath(path)),push(_extends({state:state},path))}function replaceState(state,path){"string"==typeof path&&(path=_PathUtils.parsePath(path)),replace(_extends({state:state},path))}var options=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],getCurrentLocation=options.getCurrentLocation,finishTransition=options.finishTransition,saveState=options.saveState,go=options.go,getUserConfirmation=options.getUserConfirmation,keyLength=options.keyLength;"number"!=typeof keyLength&&(keyLength=DefaultKeyLength);var transitionHooks=[],allKeys=[],changeListeners=[],location=void 0,pendingLocation=void 0;return{listenBefore:listenBefore,listen:listen,transitionTo:transitionTo,push:push,replace:replace,go:go,goBack:goBack,goForward:goForward,createKey:createKey,createPath:createPath,createHref:createHref,createLocation:createLocation,setState:_deprecate2["default"](setState,"setState is deprecated; use location.key to save state instead"),registerTransitionHook:_deprecate2["default"](registerTransitionHook,"registerTransitionHook is deprecated; use listenBefore instead"),unregisterTransitionHook:_deprecate2["default"](unregisterTransitionHook,"unregisterTransitionHook is deprecated; use the callback returned from listenBefore instead"),pushState:_deprecate2["default"](pushState,"pushState is deprecated; use push instead"),replaceState:_deprecate2["default"](replaceState,"replaceState is deprecated; use replace instead")}}exports.__esModule=!0;var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},_warning=require("warning"),_warning2=_interopRequireDefault(_warning),_deepEqual=require("deep-equal"),_deepEqual2=_interopRequireDefault(_deepEqual),_PathUtils=require("./PathUtils"),_AsyncUtils=require("./AsyncUtils"),_Actions=require("./Actions"),_createLocation2=require("./createLocation"),_createLocation3=_interopRequireDefault(_createLocation2),_runTransitionHook=require("./runTransitionHook"),_runTransitionHook2=_interopRequireDefault(_runTransitionHook),_deprecate=require("./deprecate"),_deprecate2=_interopRequireDefault(_deprecate),DefaultKeyLength=6;
exports["default"]=createHistory,module.exports=exports["default"]}).call(this,require("_process"))},{"./Actions":43,"./AsyncUtils":44,"./PathUtils":48,"./createLocation":52,"./deprecate":53,"./runTransitionHook":54,_process:34,"deep-equal":39,warning:56}],52:[function(require,module,exports){(function(process){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function createLocation(){var location=arguments.length<=0||void 0===arguments[0]?"/":arguments[0],action=arguments.length<=1||void 0===arguments[1]?_Actions.POP:arguments[1],key=arguments.length<=2||void 0===arguments[2]?null:arguments[2],_fourthArg=arguments.length<=3||void 0===arguments[3]?null:arguments[3];"string"==typeof location&&(location=_PathUtils.parsePath(location)),"object"==typeof action&&("production"!==process.env.NODE_ENV?_warning2["default"](!1,"The state (2nd) argument to createLocation is deprecated; use a location descriptor instead"):void 0,location=_extends({},location,{state:action}),action=key||_Actions.POP,key=_fourthArg);var pathname=location.pathname||"/",search=location.search||"",hash=location.hash||"",state=location.state||null;return{pathname:pathname,search:search,hash:hash,state:state,action:action,key:key}}exports.__esModule=!0;var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},_warning=require("warning"),_warning2=_interopRequireDefault(_warning),_Actions=require("./Actions"),_PathUtils=require("./PathUtils");exports["default"]=createLocation,module.exports=exports["default"]}).call(this,require("_process"))},{"./Actions":43,"./PathUtils":48,_process:34,warning:56}],53:[function(require,module,exports){(function(process){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function deprecate(fn,message){return function(){return"production"!==process.env.NODE_ENV?_warning2["default"](!1,"[history] "+message):void 0,fn.apply(this,arguments)}}exports.__esModule=!0;var _warning=require("warning"),_warning2=_interopRequireDefault(_warning);exports["default"]=deprecate,module.exports=exports["default"]}).call(this,require("_process"))},{_process:34,warning:56}],54:[function(require,module,exports){(function(process){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}function runTransitionHook(hook,location,callback){var result=hook(location,callback);hook.length<2?callback(result):"production"!==process.env.NODE_ENV?_warning2["default"](void 0===result,'You should not "return" in a transition hook with a callback argument; call the callback instead'):void 0}exports.__esModule=!0;var _warning=require("warning"),_warning2=_interopRequireDefault(_warning);exports["default"]=runTransitionHook,module.exports=exports["default"]}).call(this,require("_process"))},{_process:34,warning:56}],55:[function(require,module,exports){"use strict";var invariant=function(condition,format,a,b,c,d,e,f){if(!condition){var error;if(void 0===format)error=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var args=[a,b,c,d,e,f],argIndex=0;error=new Error(format.replace(/%s/g,function(){return args[argIndex++]})),error.name="Invariant Violation"}throw error.framesToPop=1,error}};module.exports=invariant},{}],56:[function(require,module,exports){"use strict";var warning=function(){};module.exports=warning},{}],57:[function(require,module,exports){require("whatwg-fetch"),module.exports=self.fetch.bind(self)},{"whatwg-fetch":66}],58:[function(require,module,exports){!function(isNode){function merge_recursive(base,extend){if("object"!==typeOf(base))return extend;for(var key in extend)"object"===typeOf(base[key])&&"object"===typeOf(extend[key])?base[key]=merge_recursive(base[key],extend[key]):base[key]=extend[key];return base}function merge(clone,recursive,argv){var result=argv[0],size=argv.length;(clone||"object"!==typeOf(result))&&(result={});for(var index=0;size>index;++index){var item=argv[index],type=typeOf(item);if("object"===type)for(var key in item){var sitem=clone?Public.clone(item[key]):item[key];recursive?result[key]=merge_recursive(result[key],sitem):result[key]=sitem}}return result}function typeOf(input){return{}.toString.call(input).slice(8,-1).toLowerCase()}var Public=function(clone){return merge(clone===!0,!1,arguments)},publicName="merge";Public.recursive=function(clone){return merge(clone===!0,!0,arguments)},Public.clone=function(input){var index,size,output=input,type=typeOf(input);if("array"===type)for(output=[],size=input.length,index=0;size>index;++index)output[index]=Public.clone(input[index]);else if("object"===type){output={};for(index in input)output[index]=Public.clone(input[index])}return output},isNode?module.exports=Public:window[publicName]=Public}("object"==typeof module&&module&&"object"==typeof module.exports&&module.exports)},{}],59:[function(require,module,exports){"use strict";var Stringify=require("./stringify"),Parse=require("./parse");module.exports={stringify:Stringify,parse:Parse}},{"./parse":60,"./stringify":61}],60:[function(require,module,exports){"use strict";var Utils=require("./utils"),internals={delimiter:"&",depth:5,arrayLimit:20,parameterLimit:1e3,strictNullHandling:!1,plainObjects:!1,allowPrototypes:!1,allowDots:!1};internals.parseValues=function(str,options){for(var obj={},parts=str.split(options.delimiter,options.parameterLimit===1/0?void 0:options.parameterLimit),i=0;i<parts.length;++i){var part=parts[i],pos=-1===part.indexOf("]=")?part.indexOf("="):part.indexOf("]=")+1;if(-1===pos)obj[Utils.decode(part)]="",options.strictNullHandling&&(obj[Utils.decode(part)]=null);else{var key=Utils.decode(part.slice(0,pos)),val=Utils.decode(part.slice(pos+1));Object.prototype.hasOwnProperty.call(obj,key)?obj[key]=[].concat(obj[key]).concat(val):obj[key]=val}}return obj},internals.parseObject=function(chain,val,options){if(!chain.length)return val;var obj,root=chain.shift();if("[]"===root)obj=[],obj=obj.concat(internals.parseObject(chain,val,options));else{obj=options.plainObjects?Object.create(null):{};var cleanRoot="["===root[0]&&"]"===root[root.length-1]?root.slice(1,root.length-1):root,index=parseInt(cleanRoot,10);!isNaN(index)&&root!==cleanRoot&&String(index)===cleanRoot&&index>=0&&options.parseArrays&&index<=options.arrayLimit?(obj=[],obj[index]=internals.parseObject(chain,val,options)):obj[cleanRoot]=internals.parseObject(chain,val,options)}return obj},internals.parseKeys=function(givenKey,val,options){if(givenKey){var key=options.allowDots?givenKey.replace(/\.([^\.\[]+)/g,"[$1]"):givenKey,parent=/^([^\[\]]*)/,child=/(\[[^\[\]]*\])/g,segment=parent.exec(key),keys=[];if(segment[1]){if(!options.plainObjects&&Object.prototype.hasOwnProperty(segment[1])&&!options.allowPrototypes)return;keys.push(segment[1])}for(var i=0;null!==(segment=child.exec(key))&&i<options.depth;)i+=1,(options.plainObjects||!Object.prototype.hasOwnProperty(segment[1].replace(/\[|\]/g,""))||options.allowPrototypes)&&keys.push(segment[1]);return segment&&keys.push("["+key.slice(segment.index)+"]"),internals.parseObject(keys,val,options)}},module.exports=function(str,opts){var options=opts||{};if(options.delimiter="string"==typeof options.delimiter||Utils.isRegExp(options.delimiter)?options.delimiter:internals.delimiter,options.depth="number"==typeof options.depth?options.depth:internals.depth,options.arrayLimit="number"==typeof options.arrayLimit?options.arrayLimit:internals.arrayLimit,options.parseArrays=options.parseArrays!==!1,options.allowDots="boolean"==typeof options.allowDots?options.allowDots:internals.allowDots,options.plainObjects="boolean"==typeof options.plainObjects?options.plainObjects:internals.plainObjects,options.allowPrototypes="boolean"==typeof options.allowPrototypes?options.allowPrototypes:internals.allowPrototypes,options.parameterLimit="number"==typeof options.parameterLimit?options.parameterLimit:internals.parameterLimit,options.strictNullHandling="boolean"==typeof options.strictNullHandling?options.strictNullHandling:internals.strictNullHandling,""===str||null===str||"undefined"==typeof str)return options.plainObjects?Object.create(null):{};for(var tempObj="string"==typeof str?internals.parseValues(str,options):str,obj=options.plainObjects?Object.create(null):{},keys=Object.keys(tempObj),i=0;i<keys.length;++i){var key=keys[i],newObj=internals.parseKeys(key,tempObj[key],options);obj=Utils.merge(obj,newObj,options)}return Utils.compact(obj)}},{"./utils":62}],61:[function(require,module,exports){"use strict";var Utils=require("./utils"),internals={delimiter:"&",arrayPrefixGenerators:{brackets:function(prefix){return prefix+"[]"},indices:function(prefix,key){return prefix+"["+key+"]"},repeat:function(prefix){return prefix}},strictNullHandling:!1,skipNulls:!1,encode:!0};internals.stringify=function(object,prefix,generateArrayPrefix,strictNullHandling,skipNulls,encode,filter,sort,allowDots){var obj=object;if("function"==typeof filter)obj=filter(prefix,obj);else if(Utils.isBuffer(obj))obj=String(obj);else if(obj instanceof Date)obj=obj.toISOString();else if(null===obj){if(strictNullHandling)return encode?Utils.encode(prefix):prefix;obj=""}if("string"==typeof obj||"number"==typeof obj||"boolean"==typeof obj)return encode?[Utils.encode(prefix)+"="+Utils.encode(obj)]:[prefix+"="+obj];var values=[];if("undefined"==typeof obj)return values;var objKeys;if(Array.isArray(filter))objKeys=filter;else{var keys=Object.keys(obj);objKeys=sort?keys.sort(sort):keys}for(var i=0;i<objKeys.length;++i){var key=objKeys[i];skipNulls&&null===obj[key]||(values=Array.isArray(obj)?values.concat(internals.stringify(obj[key],generateArrayPrefix(prefix,key),generateArrayPrefix,strictNullHandling,skipNulls,encode,filter,sort,allowDots)):values.concat(internals.stringify(obj[key],prefix+(allowDots?"."+key:"["+key+"]"),generateArrayPrefix,strictNullHandling,skipNulls,encode,filter,sort,allowDots)))}return values},module.exports=function(object,opts){var objKeys,filter,obj=object,options=opts||{},delimiter="undefined"==typeof options.delimiter?internals.delimiter:options.delimiter,strictNullHandling="boolean"==typeof options.strictNullHandling?options.strictNullHandling:internals.strictNullHandling,skipNulls="boolean"==typeof options.skipNulls?options.skipNulls:internals.skipNulls,encode="boolean"==typeof options.encode?options.encode:internals.encode,sort="function"==typeof options.sort?options.sort:null,allowDots="undefined"==typeof options.allowDots?!1:options.allowDots;"function"==typeof options.filter?(filter=options.filter,obj=filter("",obj)):Array.isArray(options.filter)&&(objKeys=filter=options.filter);var keys=[];if("object"!=typeof obj||null===obj)return"";var arrayFormat;arrayFormat=options.arrayFormat in internals.arrayPrefixGenerators?options.arrayFormat:"indices"in options?options.indices?"indices":"repeat":"indices";var generateArrayPrefix=internals.arrayPrefixGenerators[arrayFormat];objKeys||(objKeys=Object.keys(obj)),sort&&objKeys.sort(sort);for(var i=0;i<objKeys.length;++i){var key=objKeys[i];skipNulls&&null===obj[key]||(keys=keys.concat(internals.stringify(obj[key],key,generateArrayPrefix,strictNullHandling,skipNulls,encode,filter,sort,allowDots)))}return keys.join(delimiter)}},{"./utils":62}],62:[function(require,module,exports){"use strict";var hexTable=function(){for(var array=new Array(256),i=0;256>i;++i)array[i]="%"+((16>i?"0":"")+i.toString(16)).toUpperCase();return array}();exports.arrayToObject=function(source,options){for(var obj=options.plainObjects?Object.create(null):{},i=0;i<source.length;++i)"undefined"!=typeof source[i]&&(obj[i]=source[i]);return obj},exports.merge=function(target,source,options){if(!source)return target;if("object"!=typeof source){if(Array.isArray(target))target.push(source);else{if("object"!=typeof target)return[target,source];target[source]=!0}return target}if("object"!=typeof target)return[target].concat(source);var mergeTarget=target;return Array.isArray(target)&&!Array.isArray(source)&&(mergeTarget=exports.arrayToObject(target,options)),Object.keys(source).reduce(function(acc,key){var value=source[key];return Object.prototype.hasOwnProperty.call(acc,key)?acc[key]=exports.merge(acc[key],value,options):acc[key]=value,acc},mergeTarget)},exports.decode=function(str){try{return decodeURIComponent(str.replace(/\+/g," "))}catch(e){return str}},exports.encode=function(str){if(0===str.length)return str;for(var string="string"==typeof str?str:String(str),out="",i=0;i<string.length;++i){var c=string.charCodeAt(i);45===c||46===c||95===c||126===c||c>=48&&57>=c||c>=65&&90>=c||c>=97&&122>=c?out+=string.charAt(i):128>c?out+=hexTable[c]:2048>c?out+=hexTable[192|c>>6]+hexTable[128|63&c]:55296>c||c>=57344?out+=hexTable[224|c>>12]+hexTable[128|c>>6&63]+hexTable[128|63&c]:(i+=1,c=65536+((1023&c)<<10|1023&string.charCodeAt(i)),out+=hexTable[240|c>>18]+hexTable[128|c>>12&63]+hexTable[128|c>>6&63]+hexTable[128|63&c])}return out},exports.compact=function(obj,references){if("object"!=typeof obj||null===obj)return obj;var refs=references||[],lookup=refs.indexOf(obj);if(-1!==lookup)return refs[lookup];if(refs.push(obj),Array.isArray(obj)){for(var compacted=[],i=0;i<obj.length;++i)"undefined"!=typeof obj[i]&&compacted.push(obj[i]);return compacted}for(var keys=Object.keys(obj),j=0;j<keys.length;++j){var key=keys[j];obj[key]=exports.compact(obj[key],refs)}return obj},exports.isRegExp=function(obj){return"[object RegExp]"===Object.prototype.toString.call(obj)},exports.isBuffer=function(obj){return null===obj||"undefined"==typeof obj?!1:!!(obj.constructor&&obj.constructor.isBuffer&&obj.constructor.isBuffer(obj))}},{}],63:[function(require,module,exports){"use strict";function _toConsumableArray(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i<arr.length;i++)arr2[i]=arr[i];return arr2}return Array.from(arr)}function _typeof(obj){return obj&&"undefined"!=typeof Symbol&&obj.constructor===Symbol?"symbol":typeof obj}function getLogLevel(level,action,payload,type){switch("undefined"==typeof level?"undefined":_typeof(level)){case"object":return"function"==typeof level[type]?level[type].apply(level,_toConsumableArray(payload)):level[type];case"function":return level(action);default:return level}}function createLogger(){function printBuffer(){logBuffer.forEach(function(logEntry,key){var started=logEntry.started,startedTime=logEntry.startedTime,action=logEntry.action,prevState=logEntry.prevState,error=logEntry.error,took=logEntry.took,nextState=logEntry.nextState,nextEntry=logBuffer[key+1];nextEntry&&(nextState=nextEntry.prevState,took=nextEntry.started-started);var formattedAction=actionTransformer(action),isCollapsed="function"==typeof collapsed?collapsed(function(){return nextState},action):collapsed,formattedTime=formatTime(startedTime),titleCSS=colors.title?"color: "+colors.title(formattedAction)+";":null,title="action "+(timestamp?formattedTime:"")+" "+formattedAction.type+" "+(duration?"(in "+took.toFixed(2)+" ms)":"");try{isCollapsed?colors.title?logger.groupCollapsed("%c "+title,titleCSS):logger.groupCollapsed(title):colors.title?logger.group("%c "+title,titleCSS):logger.group(title)}catch(e){logger.log(title)}var prevStateLevel=getLogLevel(level,formattedAction,[prevState],"prevState"),actionLevel=getLogLevel(level,formattedAction,[formattedAction],"action"),errorLevel=getLogLevel(level,formattedAction,[error,prevState],"error"),nextStateLevel=getLogLevel(level,formattedAction,[nextState],"nextState");prevStateLevel&&(colors.prevState?logger[prevStateLevel]("%c prev state","color: "+colors.prevState(prevState)+"; font-weight: bold",prevState):logger[prevStateLevel]("prev state",prevState)),actionLevel&&(colors.action?logger[actionLevel]("%c action","color: "+colors.action(formattedAction)+"; font-weight: bold",formattedAction):logger[actionLevel]("action",formattedAction)),error&&errorLevel&&(colors.error?logger[errorLevel]("%c error","color: "+colors.error(error,prevState)+"; font-weight: bold",error):logger[errorLevel]("error",error)),nextStateLevel&&(colors.nextState?logger[nextStateLevel]("%c next state","color: "+colors.nextState(nextState)+"; font-weight: bold",nextState):logger[nextStateLevel]("next state",nextState));try{logger.groupEnd()}catch(e){logger.log("—— log end ——")}}),logBuffer.length=0}var options=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],_options$level=options.level,level=void 0===_options$level?"log":_options$level,_options$logger=options.logger,logger=void 0===_options$logger?console:_options$logger,_options$logErrors=options.logErrors,logErrors=void 0===_options$logErrors?!0:_options$logErrors,collapsed=options.collapsed,predicate=options.predicate,_options$duration=options.duration,duration=void 0===_options$duration?!1:_options$duration,_options$timestamp=options.timestamp,timestamp=void 0===_options$timestamp?!0:_options$timestamp,transformer=options.transformer,_options$stateTransfo=options.stateTransformer,stateTransformer=void 0===_options$stateTransfo?function(state){return state}:_options$stateTransfo,_options$actionTransf=options.actionTransformer,actionTransformer=void 0===_options$actionTransf?function(actn){return actn}:_options$actionTransf,_options$errorTransfo=options.errorTransformer,errorTransformer=void 0===_options$errorTransfo?function(error){return error}:_options$errorTransfo,_options$colors=options.colors,colors=void 0===_options$colors?{title:function(){return"#000000"},prevState:function(){return"#9E9E9E"},action:function(){return"#03A9F4"},nextState:function(){return"#4CAF50"},error:function(){return"#F20404"}}:_options$colors;if("undefined"==typeof logger)return function(){return function(next){return function(action){return next(action)}}};transformer&&console.error("Option 'transformer' is deprecated, use stateTransformer instead");var logBuffer=[];return function(_ref){var getState=_ref.getState;return function(next){return function(action){if("function"==typeof predicate&&!predicate(getState,action))return next(action);var logEntry={};logBuffer.push(logEntry),logEntry.started=timer.now(),logEntry.startedTime=new Date,logEntry.prevState=stateTransformer(getState()),logEntry.action=action;var returnedValue=void 0;if(logErrors)try{returnedValue=next(action)}catch(e){logEntry.error=errorTransformer(e)}else returnedValue=next(action);if(logEntry.took=timer.now()-logEntry.started,logEntry.nextState=stateTransformer(getState()),printBuffer(),logEntry.error)throw logEntry.error;return returnedValue}}}}var repeat=function(str,times){return new Array(times+1).join(str)},pad=function(num,maxLength){return repeat("0",maxLength-num.toString().length)+num},formatTime=function(time){return"@ "+pad(time.getHours(),2)+":"+pad(time.getMinutes(),2)+":"+pad(time.getSeconds(),2)+"."+pad(time.getMilliseconds(),3)},timer="undefined"!=typeof performance&&"function"==typeof performance.now?performance:Date;module.exports=createLogger},{}],64:[function(require,module,exports){"use strict";function Url(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}function urlParse(url,parseQueryString,slashesDenoteHost){if(url&&util.isObject(url)&&url instanceof Url)return url;var u=new Url;return u.parse(url,parseQueryString,slashesDenoteHost),u}function urlFormat(obj){return util.isString(obj)&&(obj=urlParse(obj)),obj instanceof Url?obj.format():Url.prototype.format.call(obj)}function urlResolve(source,relative){return urlParse(source,!1,!0).resolve(relative)}function urlResolveObject(source,relative){return source?urlParse(source,!1,!0).resolveObject(relative):relative}var punycode=require("punycode"),util=require("./util");exports.parse=urlParse,exports.resolve=urlResolve,exports.resolveObject=urlResolveObject,exports.format=urlFormat,exports.Url=Url;var protocolPattern=/^([a-z0-9.+-]+:)/i,portPattern=/:[0-9]*$/,simplePathPattern=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,delims=["<",">",'"',"`"," ","\r","\n"," "],unwise=["{","}","|","\\","^","`"].concat(delims),autoEscape=["'"].concat(unwise),nonHostChars=["%","/","?",";","#"].concat(autoEscape),hostEndingChars=["/","?","#"],hostnameMaxLen=255,hostnamePartPattern=/^[+a-z0-9A-Z_-]{0,63}$/,hostnamePartStart=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,unsafeProtocol={javascript:!0,"javascript:":!0},hostlessProtocol={javascript:!0,"javascript:":!0},slashedProtocol={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},querystring=require("querystring");Url.prototype.parse=function(url,parseQueryString,slashesDenoteHost){if(!util.isString(url))throw new TypeError("Parameter 'url' must be a string, not "+typeof url);var queryIndex=url.indexOf("?"),splitter=-1!==queryIndex&&queryIndex<url.indexOf("#")?"?":"#",uSplit=url.split(splitter),slashRegex=/\\/g;uSplit[0]=uSplit[0].replace(slashRegex,"/"),url=uSplit.join(splitter);var rest=url;if(rest=rest.trim(),!slashesDenoteHost&&1===url.split("#").length){var simplePath=simplePathPattern.exec(rest);if(simplePath)return this.path=rest,this.href=rest,this.pathname=simplePath[1],simplePath[2]?(this.search=simplePath[2],parseQueryString?this.query=querystring.parse(this.search.substr(1)):this.query=this.search.substr(1)):parseQueryString&&(this.search="",this.query={}),this}var proto=protocolPattern.exec(rest);if(proto){proto=proto[0];var lowerProto=proto.toLowerCase();this.protocol=lowerProto,rest=rest.substr(proto.length)}if(slashesDenoteHost||proto||rest.match(/^\/\/[^@\/]+@[^@\/]+/)){var slashes="//"===rest.substr(0,2);!slashes||proto&&hostlessProtocol[proto]||(rest=rest.substr(2),this.slashes=!0)}if(!hostlessProtocol[proto]&&(slashes||proto&&!slashedProtocol[proto])){for(var hostEnd=-1,i=0;i<hostEndingChars.length;i++){var hec=rest.indexOf(hostEndingChars[i]);-1!==hec&&(-1===hostEnd||hostEnd>hec)&&(hostEnd=hec)}var auth,atSign;atSign=-1===hostEnd?rest.lastIndexOf("@"):rest.lastIndexOf("@",hostEnd),-1!==atSign&&(auth=rest.slice(0,atSign),rest=rest.slice(atSign+1),this.auth=decodeURIComponent(auth)),hostEnd=-1;for(var i=0;i<nonHostChars.length;i++){var hec=rest.indexOf(nonHostChars[i]);-1!==hec&&(-1===hostEnd||hostEnd>hec)&&(hostEnd=hec)}-1===hostEnd&&(hostEnd=rest.length),this.host=rest.slice(0,hostEnd),rest=rest.slice(hostEnd),this.parseHost(),this.hostname=this.hostname||"";var ipv6Hostname="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!ipv6Hostname)for(var hostparts=this.hostname.split(/\./),i=0,l=hostparts.length;l>i;i++){var part=hostparts[i];if(part&&!part.match(hostnamePartPattern)){for(var newpart="",j=0,k=part.length;k>j;j++)newpart+=part.charCodeAt(j)>127?"x":part[j];if(!newpart.match(hostnamePartPattern)){var validParts=hostparts.slice(0,i),notHost=hostparts.slice(i+1),bit=part.match(hostnamePartStart);bit&&(validParts.push(bit[1]),notHost.unshift(bit[2])),notHost.length&&(rest="/"+notHost.join(".")+rest),this.hostname=validParts.join(".");break}}}this.hostname.length>hostnameMaxLen?this.hostname="":this.hostname=this.hostname.toLowerCase(),ipv6Hostname||(this.hostname=punycode.toASCII(this.hostname));var p=this.port?":"+this.port:"",h=this.hostname||"";this.host=h+p,this.href+=this.host,ipv6Hostname&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==rest[0]&&(rest="/"+rest))}if(!unsafeProtocol[lowerProto])for(var i=0,l=autoEscape.length;l>i;i++){var ae=autoEscape[i];if(-1!==rest.indexOf(ae)){var esc=encodeURIComponent(ae);esc===ae&&(esc=escape(ae)),rest=rest.split(ae).join(esc)}}var hash=rest.indexOf("#");-1!==hash&&(this.hash=rest.substr(hash),rest=rest.slice(0,hash));var qm=rest.indexOf("?");if(-1!==qm?(this.search=rest.substr(qm),this.query=rest.substr(qm+1),parseQueryString&&(this.query=querystring.parse(this.query)),rest=rest.slice(0,qm)):parseQueryString&&(this.search="",this.query={}),rest&&(this.pathname=rest),slashedProtocol[lowerProto]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){var p=this.pathname||"",s=this.search||"";this.path=p+s}return this.href=this.format(),this},Url.prototype.format=function(){var auth=this.auth||"";auth&&(auth=encodeURIComponent(auth),auth=auth.replace(/%3A/i,":"),auth+="@");var protocol=this.protocol||"",pathname=this.pathname||"",hash=this.hash||"",host=!1,query="";this.host?host=auth+this.host:this.hostname&&(host=auth+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(host+=":"+this.port)),this.query&&util.isObject(this.query)&&Object.keys(this.query).length&&(query=querystring.stringify(this.query));var search=this.search||query&&"?"+query||"";return protocol&&":"!==protocol.substr(-1)&&(protocol+=":"),this.slashes||(!protocol||slashedProtocol[protocol])&&host!==!1?(host="//"+(host||""),pathname&&"/"!==pathname.charAt(0)&&(pathname="/"+pathname)):host||(host=""),hash&&"#"!==hash.charAt(0)&&(hash="#"+hash),search&&"?"!==search.charAt(0)&&(search="?"+search),pathname=pathname.replace(/[?#]/g,function(match){return encodeURIComponent(match)}),search=search.replace("#","%23"),protocol+host+pathname+search+hash},Url.prototype.resolve=function(relative){return this.resolveObject(urlParse(relative,!1,!0)).format()},Url.prototype.resolveObject=function(relative){if(util.isString(relative)){var rel=new Url;rel.parse(relative,!1,!0),relative=rel}for(var result=new Url,tkeys=Object.keys(this),tk=0;tk<tkeys.length;tk++){var tkey=tkeys[tk];result[tkey]=this[tkey]}if(result.hash=relative.hash,""===relative.href)return result.href=result.format(),result;if(relative.slashes&&!relative.protocol){for(var rkeys=Object.keys(relative),rk=0;rk<rkeys.length;rk++){var rkey=rkeys[rk];"protocol"!==rkey&&(result[rkey]=relative[rkey])}return slashedProtocol[result.protocol]&&result.hostname&&!result.pathname&&(result.path=result.pathname="/"),result.href=result.format(),result}if(relative.protocol&&relative.protocol!==result.protocol){if(!slashedProtocol[relative.protocol]){for(var keys=Object.keys(relative),v=0;v<keys.length;v++){var k=keys[v];result[k]=relative[k]}return result.href=result.format(),result}if(result.protocol=relative.protocol,relative.host||hostlessProtocol[relative.protocol])result.pathname=relative.pathname;else{for(var relPath=(relative.pathname||"").split("/");relPath.length&&!(relative.host=relPath.shift()););relative.host||(relative.host=""),relative.hostname||(relative.hostname=""),""!==relPath[0]&&relPath.unshift(""),relPath.length<2&&relPath.unshift(""),result.pathname=relPath.join("/")}if(result.search=relative.search,result.query=relative.query,result.host=relative.host||"",result.auth=relative.auth,result.hostname=relative.hostname||relative.host,result.port=relative.port,result.pathname||result.search){var p=result.pathname||"",s=result.search||"";result.path=p+s}return result.slashes=result.slashes||relative.slashes,result.href=result.format(),result}var isSourceAbs=result.pathname&&"/"===result.pathname.charAt(0),isRelAbs=relative.host||relative.pathname&&"/"===relative.pathname.charAt(0),mustEndAbs=isRelAbs||isSourceAbs||result.host&&relative.pathname,removeAllDots=mustEndAbs,srcPath=result.pathname&&result.pathname.split("/")||[],relPath=relative.pathname&&relative.pathname.split("/")||[],psychotic=result.protocol&&!slashedProtocol[result.protocol];if(psychotic&&(result.hostname="",result.port=null,result.host&&(""===srcPath[0]?srcPath[0]=result.host:srcPath.unshift(result.host)),result.host="",relative.protocol&&(relative.hostname=null,relative.port=null,relative.host&&(""===relPath[0]?relPath[0]=relative.host:relPath.unshift(relative.host)),relative.host=null),mustEndAbs=mustEndAbs&&(""===relPath[0]||""===srcPath[0])),isRelAbs)result.host=relative.host||""===relative.host?relative.host:result.host,result.hostname=relative.hostname||""===relative.hostname?relative.hostname:result.hostname,result.search=relative.search,result.query=relative.query,srcPath=relPath;else if(relPath.length)srcPath||(srcPath=[]),srcPath.pop(),srcPath=srcPath.concat(relPath),result.search=relative.search,result.query=relative.query;else if(!util.isNullOrUndefined(relative.search)){if(psychotic){result.hostname=result.host=srcPath.shift();var authInHost=result.host&&result.host.indexOf("@")>0?result.host.split("@"):!1;authInHost&&(result.auth=authInHost.shift(),result.host=result.hostname=authInHost.shift())}return result.search=relative.search,result.query=relative.query,util.isNull(result.pathname)&&util.isNull(result.search)||(result.path=(result.pathname?result.pathname:"")+(result.search?result.search:"")),result.href=result.format(),result}if(!srcPath.length)return result.pathname=null,result.search?result.path="/"+result.search:result.path=null,result.href=result.format(),result;for(var last=srcPath.slice(-1)[0],hasTrailingSlash=(result.host||relative.host||srcPath.length>1)&&("."===last||".."===last)||""===last,up=0,i=srcPath.length;i>=0;i--)last=srcPath[i],"."===last?srcPath.splice(i,1):".."===last?(srcPath.splice(i,1),up++):up&&(srcPath.splice(i,1),up--);if(!mustEndAbs&&!removeAllDots)for(;up--;up)srcPath.unshift("..");!mustEndAbs||""===srcPath[0]||srcPath[0]&&"/"===srcPath[0].charAt(0)||srcPath.unshift(""),hasTrailingSlash&&"/"!==srcPath.join("/").substr(-1)&&srcPath.push("");var isAbsolute=""===srcPath[0]||srcPath[0]&&"/"===srcPath[0].charAt(0);if(psychotic){result.hostname=result.host=isAbsolute?"":srcPath.length?srcPath.shift():"";var authInHost=result.host&&result.host.indexOf("@")>0?result.host.split("@"):!1;authInHost&&(result.auth=authInHost.shift(),result.host=result.hostname=authInHost.shift())}return mustEndAbs=mustEndAbs||result.host&&srcPath.length,mustEndAbs&&!isAbsolute&&srcPath.unshift(""),srcPath.length?result.pathname=srcPath.join("/"):(result.pathname=null,result.path=null),util.isNull(result.pathname)&&util.isNull(result.search)||(result.path=(result.pathname?result.pathname:"")+(result.search?result.search:"")),result.auth=relative.auth||result.auth,result.slashes=result.slashes||relative.slashes,result.href=result.format(),result},Url.prototype.parseHost=function(){var host=this.host,port=portPattern.exec(host);port&&(port=port[0],":"!==port&&(this.port=port.substr(1)),host=host.substr(0,host.length-port.length)),host&&(this.hostname=host)}},{"./util":65,punycode:35,querystring:38}],65:[function(require,module,exports){"use strict";module.exports={isString:function(arg){return"string"==typeof arg},isObject:function(arg){return"object"==typeof arg&&null!==arg},isNull:function(arg){return null===arg},isNullOrUndefined:function(arg){return null==arg}}},{}],66:[function(require,module,exports){!function(self){"use strict";function normalizeName(name){if("string"!=typeof name&&(name=String(name)),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(name))throw new TypeError("Invalid character in header field name");return name.toLowerCase()}function normalizeValue(value){return"string"!=typeof value&&(value=String(value)),value}function Headers(headers){this.map={},headers instanceof Headers?headers.forEach(function(value,name){this.append(name,value)},this):headers&&Object.getOwnPropertyNames(headers).forEach(function(name){this.append(name,headers[name])},this)}function consumed(body){return body.bodyUsed?Promise.reject(new TypeError("Already read")):void(body.bodyUsed=!0)}function fileReaderReady(reader){return new Promise(function(resolve,reject){reader.onload=function(){resolve(reader.result)},reader.onerror=function(){reject(reader.error)}})}function readBlobAsArrayBuffer(blob){var reader=new FileReader;return reader.readAsArrayBuffer(blob),fileReaderReady(reader)}function readBlobAsText(blob){var reader=new FileReader;return reader.readAsText(blob),fileReaderReady(reader)}function Body(){return this.bodyUsed=!1,this._initBody=function(body){if(this._bodyInit=body,
"string"==typeof body)this._bodyText=body;else if(support.blob&&Blob.prototype.isPrototypeOf(body))this._bodyBlob=body;else if(support.formData&&FormData.prototype.isPrototypeOf(body))this._bodyFormData=body;else if(body){if(!support.arrayBuffer||!ArrayBuffer.prototype.isPrototypeOf(body))throw new Error("unsupported BodyInit type")}else this._bodyText="";this.headers.get("content-type")||("string"==typeof body?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type&&this.headers.set("content-type",this._bodyBlob.type))},support.blob?(this.blob=function(){var rejected=consumed(this);if(rejected)return rejected;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this.blob().then(readBlobAsArrayBuffer)},this.text=function(){var rejected=consumed(this);if(rejected)return rejected;if(this._bodyBlob)return readBlobAsText(this._bodyBlob);if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)}):this.text=function(){var rejected=consumed(this);return rejected?rejected:Promise.resolve(this._bodyText)},support.formData&&(this.formData=function(){return this.text().then(decode)}),this.json=function(){return this.text().then(JSON.parse)},this}function normalizeMethod(method){var upcased=method.toUpperCase();return methods.indexOf(upcased)>-1?upcased:method}function Request(input,options){options=options||{};var body=options.body;if(Request.prototype.isPrototypeOf(input)){if(input.bodyUsed)throw new TypeError("Already read");this.url=input.url,this.credentials=input.credentials,options.headers||(this.headers=new Headers(input.headers)),this.method=input.method,this.mode=input.mode,body||(body=input._bodyInit,input.bodyUsed=!0)}else this.url=input;if(this.credentials=options.credentials||this.credentials||"omit",!options.headers&&this.headers||(this.headers=new Headers(options.headers)),this.method=normalizeMethod(options.method||this.method||"GET"),this.mode=options.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&body)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(body)}function decode(body){var form=new FormData;return body.trim().split("&").forEach(function(bytes){if(bytes){var split=bytes.split("="),name=split.shift().replace(/\+/g," "),value=split.join("=").replace(/\+/g," ");form.append(decodeURIComponent(name),decodeURIComponent(value))}}),form}function headers(xhr){var head=new Headers,pairs=xhr.getAllResponseHeaders().trim().split("\n");return pairs.forEach(function(header){var split=header.trim().split(":"),key=split.shift().trim(),value=split.join(":").trim();head.append(key,value)}),head}function Response(bodyInit,options){options||(options={}),this.type="default",this.status=options.status,this.ok=this.status>=200&&this.status<300,this.statusText=options.statusText,this.headers=options.headers instanceof Headers?options.headers:new Headers(options.headers),this.url=options.url||"",this._initBody(bodyInit)}if(!self.fetch){Headers.prototype.append=function(name,value){name=normalizeName(name),value=normalizeValue(value);var list=this.map[name];list||(list=[],this.map[name]=list),list.push(value)},Headers.prototype["delete"]=function(name){delete this.map[normalizeName(name)]},Headers.prototype.get=function(name){var values=this.map[normalizeName(name)];return values?values[0]:null},Headers.prototype.getAll=function(name){return this.map[normalizeName(name)]||[]},Headers.prototype.has=function(name){return this.map.hasOwnProperty(normalizeName(name))},Headers.prototype.set=function(name,value){this.map[normalizeName(name)]=[normalizeValue(value)]},Headers.prototype.forEach=function(callback,thisArg){Object.getOwnPropertyNames(this.map).forEach(function(name){this.map[name].forEach(function(value){callback.call(thisArg,value,name,this)},this)},this)};var support={blob:"FileReader"in self&&"Blob"in self&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in self,arrayBuffer:"ArrayBuffer"in self},methods=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];Request.prototype.clone=function(){return new Request(this)},Body.call(Request.prototype),Body.call(Response.prototype),Response.prototype.clone=function(){return new Response(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new Headers(this.headers),url:this.url})},Response.error=function(){var response=new Response(null,{status:0,statusText:""});return response.type="error",response};var redirectStatuses=[301,302,303,307,308];Response.redirect=function(url,status){if(-1===redirectStatuses.indexOf(status))throw new RangeError("Invalid status code");return new Response(null,{status:status,headers:{location:url}})},self.Headers=Headers,self.Request=Request,self.Response=Response,self.fetch=function(input,init){return new Promise(function(resolve,reject){function responseURL(){return"responseURL"in xhr?xhr.responseURL:/^X-Request-URL:/m.test(xhr.getAllResponseHeaders())?xhr.getResponseHeader("X-Request-URL"):void 0}var request;request=Request.prototype.isPrototypeOf(input)&&!init?input:new Request(input,init);var xhr=new XMLHttpRequest;xhr.onload=function(){var status=1223===xhr.status?204:xhr.status;if(100>status||status>599)return void reject(new TypeError("Network request failed"));var options={status:status,statusText:xhr.statusText,headers:headers(xhr),url:responseURL()},body="response"in xhr?xhr.response:xhr.responseText;resolve(new Response(body,options))},xhr.onerror=function(){reject(new TypeError("Network request failed"))},xhr.open(request.method,request.url,!0),"include"===request.credentials&&(xhr.withCredentials=!0),"responseType"in xhr&&support.blob&&(xhr.responseType="blob"),request.headers.forEach(function(value,name){xhr.setRequestHeader(name,value)}),xhr.send("undefined"==typeof request._bodyInit?null:request._bodyInit)})},self.fetch.polyfill=!0}}("undefined"!=typeof self?self:this)},{}]},{},[2]);
//# sourceMappingURL=bundle-framework.js.map

View File

@ -134,7 +134,7 @@ class CampaignAdminList extends SilverStripeComponent {
// Set body
const pagesLink = [
this.props.config.baseUrl,
this.props.config.sections.CMSPagesController.url,
this.props.config.sections['SilverStripe\\CMS\\Controllers\\CMSPagesController'].url,
].join('/');
const body = accordionBlocks.length
? (<Accordion>{accordionBlocks}</Accordion>)

View File

@ -19,7 +19,7 @@ use SilverStripe\ORM\Versioning\Versioned;
*/
abstract class CMSBatchAction extends Object {
protected $managedClass = 'SiteTree';
protected $managedClass = 'SilverStripe\\CMS\\Model\\SiteTree';
/**
* The the text to show in the dropdown for this action

View File

@ -46,7 +46,7 @@ class CMSBatchActionHandler extends RequestHandler {
* by any batch changes. Needs to be set in the actual {@link CMSBatchAction}
* implementations as well.
*/
protected $recordClass = 'SiteTree';
protected $recordClass = 'SilverStripe\\CMS\\Model\\SiteTree';
/**
* @param Controller $parentController
@ -72,7 +72,7 @@ class CMSBatchActionHandler extends RequestHandler {
* @param string $batchActionClass The name of the CMSBatchAction subclass to register
* @param string $recordClass
*/
public static function register($urlSegment, $batchActionClass, $recordClass = 'SiteTree') {
public static function register($urlSegment, $batchActionClass, $recordClass = 'SilverStripe\\CMS\\Model\\SiteTree') {
if(is_subclass_of($batchActionClass, 'CMSBatchAction')) {
Config::inst()->update(
'CMSBatchActionHandler',

View File

@ -323,7 +323,8 @@ CMSMenu extends Object implements IteratorAggregate, i18nEntityProvider {
if(!$root) {
$root = 'LeftAndMain';
}
$abstractClasses = ['LeftAndMain', 'CMSMain'];
/** @todo Make these actual abstract classes */
$abstractClasses = ['LeftAndMain', 'SilverStripe\\CMS\\Controllers\\CMSMain'];
$subClasses = array_values(ClassInfo::subclassesFor($root));
foreach($subClasses as $className) {
if($recursive && $className != $root) {

View File

@ -5,6 +5,8 @@
* @subpackage admin
*/
use SilverStripe\CMS\Controllers\CMSPageEditController;
use SilverStripe\CMS\Controllers\CMSPagesController;
use SilverStripe\Forms\Schema\FormSchema;
use SilverStripe\ORM\SS_List;
use SilverStripe\ORM\Versioning\Versioned;
@ -21,6 +23,10 @@ use SilverStripe\Security\Permission;
use SilverStripe\Security\Security;
use SilverStripe\Security\PermissionProvider;
use SilverStripe\View\ThemeResourceLoader;
use SilverStripe\CMS\Model\SiteTree;
use SilverStripe\CMS\Model\VirtualPage;
use SilverStripe\CMS\Controllers\SilverStripeNavigator;
/**
@ -1036,14 +1042,19 @@ class LeftAndMain extends Controller implements PermissionProvider {
if($currentPage) $obj->markToExpose($currentPage);
// NOTE: SiteTree/CMSMain coupling :-(
if(class_exists('SiteTree')) {
SiteTree::prepopulate_permission_cache('CanEditType', $obj->markedNodeIDs(),
'SiteTree::can_edit_multiple');
if(class_exists('SilverStripe\\CMS\\Model\\SiteTree')) {
SiteTree::prepopulate_permission_cache(
'CanEditType',
$obj->markedNodeIDs(),
'SilverStripe\\CMS\\Model\\SiteTree::can_edit_multiple'
);
}
// getChildrenAsUL is a flexible and complex way of traversing the tree
$controller = $this;
$recordController = ($this->stat('tree_class') == 'SiteTree') ? singleton('CMSPageEditController') : $this;
$recordController = ($this->stat('tree_class') == 'SilverStripe\\CMS\\Model\\SiteTree')
? CMSPageEditController::singleton()
: $this;
$titleFn = function(&$child, $numChildrenMethod) use(&$controller, &$recordController, $filter) {
$link = Controller::join_links($recordController->Link("show"), $child->ID);
$node = LeftAndMain_TreeNode::create($child, $link, $controller->isCurrentPage($child), $numChildrenMethod, $filter);
@ -1056,23 +1067,27 @@ class LeftAndMain extends Controller implements PermissionProvider {
$nodeThresholdLeaf = Config::inst()->get('SilverStripe\\ORM\\Hierarchy\\Hierarchy', 'node_threshold_leaf');
if($nodeThresholdLeaf && !$filterFunction) {
$nodeCountCallback = function($parent, $numChildren) use(&$controller, $className, $nodeThresholdLeaf) {
if($className == 'SiteTree' && $parent->ID && $numChildren > $nodeThresholdLeaf) {
return sprintf(
'<ul><li class="readonly"><span class="item">'
. '%s (<a href="%s" class="cms-panel-link" data-pjax-target="Content">%s</a>)'
. '</span></li></ul>',
_t('LeftAndMain.TooManyPages', 'Too many pages'),
Controller::join_links(
$controller->LinkWithSearch($controller->Link()), '
?view=list&ParentID=' . $parent->ID
),
_t(
'LeftAndMain.ShowAsList',
'show as list',
'Show large amount of pages in list instead of tree view'
)
);
if ($className !== 'SilverStripe\\CMS\\Model\\SiteTree'
|| !$parent->ID
|| $numChildren >= $nodeThresholdLeaf
) {
return null;
}
return sprintf(
'<ul><li class="readonly"><span class="item">'
. '%s (<a href="%s" class="cms-panel-link" data-pjax-target="Content">%s</a>)'
. '</span></li></ul>',
_t('LeftAndMain.TooManyPages', 'Too many pages'),
Controller::join_links(
$controller->LinkWithSearch($controller->Link()), '
?view=list&ParentID=' . $parent->ID
),
_t(
'LeftAndMain.ShowAsList',
'show as list',
'Show large amount of pages in list instead of tree view'
)
);
};
} else {
$nodeCountCallback = null;
@ -1089,7 +1104,7 @@ class LeftAndMain extends Controller implements PermissionProvider {
$html = $obj->getChildrenAsUL(
"",
$titleFn,
singleton('CMSPagesController'),
CMSPagesController::singleton(),
true,
$childrenMethod,
$numChildrenMethod,
@ -1160,8 +1175,8 @@ class LeftAndMain extends Controller implements PermissionProvider {
$record = $this->getRecord($id);
if(!$record) continue; // In case a page is no longer available
$recordController = ($this->stat('tree_class') == 'SiteTree')
? singleton('CMSPageEditController')
$recordController = ($this->stat('tree_class') == 'SilverStripe\\CMS\\Model\\SiteTree')
? CMSPageEditController::singleton()
: $this;
// Find the next & previous nodes, for proper positioning (Sort isn't good enough - it's not a raw offset)
@ -1312,7 +1327,7 @@ class LeftAndMain extends Controller implements PermissionProvider {
$id = $request->requestVar('ID');
$parentID = $request->requestVar('ParentID');
if($className == 'SiteTree' && $page = DataObject::get_by_id('Page', $id)){
if($className == 'SilverStripe\\CMS\\Model\\SiteTree' && $page = DataObject::get_by_id('Page', $id)){
$root = $page->getParentType();
if(($parentID == '0' || $root == 'root') && !SiteConfig::current_site_config()->canCreateTopLevel()){
$this->getResponse()->setStatusCode(
@ -1351,7 +1366,7 @@ class LeftAndMain extends Controller implements PermissionProvider {
);
// Update all dependent pages
if(class_exists('VirtualPage')) {
if(class_exists('SilverStripe\\CMS\\Model\\VirtualPage')) {
$virtualPages = VirtualPage::get()->filter("CopyContentFromID", $node->ID);
foreach($virtualPages as $virtualPage) {
$statusUpdates['modified'][$virtualPage->ID] = array(
@ -1462,6 +1477,7 @@ class LeftAndMain extends Controller implements PermissionProvider {
// Added in-line to the form, but plucked into different view by frontend scripts.
if(in_array('CMSPreviewable', class_implements($record))) {
/** @skipUpgrade */
$navField = new LiteralField('SilverStripeNavigator', $this->getSilverStripeNavigator());
$navField->setAllowHTML(true);
$fields->push($navField);
@ -2103,7 +2119,7 @@ class LeftAndMainMarkingFilter {
return new SQLSelect(
array("ParentID", "ID"),
'SiteTree',
'SilverStripe\\CMS\\Model\\SiteTree',
$where
);
}

View File

@ -190,6 +190,7 @@ abstract class ModelAdmin extends LeftAndMain {
*/
public function SearchForm() {
$context = $this->getSearchContext();
/** @skipUpgrade */
$form = new Form($this, "SearchForm",
$context->getSearchFields(),
new FieldList(

View File

@ -68,12 +68,16 @@ class ClassInfo {
* types that don't exist as implemented classes. By default these are excluded.
* @return array List of subclasses
*/
public static function getValidSubClasses($class = 'SiteTree', $includeUnbacked = false) {
public static function getValidSubClasses($class = 'SilverStripe\\CMS\\Model\\SiteTree', $includeUnbacked = false) {
if(is_string($class) && !class_exists($class)) return array();
$class = self::class_name($class);
$classes = DB::get_schema()->enumValuesForField($class, 'ClassName');
if (!$includeUnbacked) $classes = array_filter($classes, array('ClassInfo', 'exists'));
if ($includeUnbacked) {
$table = DataObject::getSchema()->tableName($class);
$classes = DB::get_schema()->enumValuesForField($table, 'ClassName');
} else {
$classes = static::subclassesFor($class);
}
return $classes;
}

View File

@ -15,6 +15,9 @@ use SilverStripe\Security\Group;
use SilverStripe\Security\Permission;
use SilverStripe\View\ThemeResourceLoader;
use SilverStripe\View\ThemeManifest;
use SilverStripe\CMS\Controllers\RootURLController;
use SilverStripe\CMS\Model\SiteTree;
/**
* Test case class for the Sapphire framework.
@ -218,11 +221,11 @@ class SapphireTest extends PHPUnit_Framework_TestCase {
Member::set_password_validator(null);
Config::inst()->update('Cookie', 'report_errors', false);
if(class_exists('RootURLController')) RootURLController::reset();
if(class_exists('SilverStripe\\CMS\\Controllers\\RootURLController')) RootURLController::reset();
if(class_exists('Translatable')) Translatable::reset();
Versioned::reset();
DataObject::reset();
if(class_exists('SiteTree')) SiteTree::reset();
if(class_exists('SilverStripe\\CMS\\Model\\SiteTree')) SiteTree::reset();
Hierarchy::reset();
if(Controller::has_curr()) Controller::curr()->setSession(Injector::inst()->create('Session', array()));
Security::$database_is_ready = null;

View File

@ -2,10 +2,7 @@
namespace SilverStripe\Filesystem;
use Injector;
use SilverStripe\Filesystem\Storage\AssetStore;
use SilverStripe\Filesystem\Storage\DBFile;
use SilverStripe\ORM\DataObject;
@ -13,8 +10,6 @@ use SilverStripe\ORM\Versioning\Versioned;
use SilverStripe\ORM\DataExtension;
use SilverStripe\Security\Member;
/**
* This class provides the necessary business logic to ensure that any assets attached
* to a record are safely deleted, published, or protected during certain operations.

View File

@ -354,7 +354,7 @@ class TreeDropdownField extends FormField {
if($nodeThresholdLeaf && !$this->filterCallback && !$this->search) {
$className = $this->sourceObject;
$nodeCountCallback = function($parent, $numChildren) use($className, $nodeThresholdLeaf) {
if($className == 'SiteTree' && $parent->ID && $numChildren > $nodeThresholdLeaf) {
if($className == 'SilverStripe\\CMS\\Model\\SiteTree' && $parent->ID && $numChildren > $nodeThresholdLeaf) {
return sprintf(
'<ul><li><span class="item">%s</span></li></ul>',
_t('LeftAndMain.TooManyPages', 'Too many pages')

View File

@ -220,7 +220,7 @@ class HTMLEditorField_Toolbar extends RequestHandler {
*/
public function LinkForm() {
$siteTree = TreeDropdownField::create('internal', _t('HTMLEditorField.PAGE', "Page"),
'SiteTree', 'ID', 'MenuTitle', true);
'SilverStripe\\CMS\\Model\\SiteTree', 'ID', 'MenuTitle', true);
// mimic the SiteTree::getMenuTitle(), which is bypassed when the search is performed
$siteTree->setSearchFunction(array($this, 'siteTreeSearchCallback'));

View File

@ -2,6 +2,8 @@
use SilverStripe\ORM\Connect\MySQLSchemaManager;
use SilverStripe\ORM\DataExtension;
use SilverStripe\CMS\Controllers\ContentController;
/**
* Provides a simple search engine for your site based on the MySQL FULLTEXT index.
* Adds the {@link FulltextSearchable} extension to data classes,
@ -20,13 +22,15 @@ use SilverStripe\ORM\DataExtension;
class FulltextSearchable extends DataExtension {
/**
* @var String Comma-separated list of database column names
* that can be searched on. Used for generation of the database index defintions.
* Comma-separated list of database column names
* that can be searched on. Used for generation of the database index defintions.
*
* @var string
*/
protected $searchFields;
/**
* @var Array List of class names
* @var array List of class names
*/
protected static $searchable_classes;
@ -41,12 +45,13 @@ class FulltextSearchable extends DataExtension {
* Caution: This is a wrapper method that should only be used in _config.php,
* and only be called once in your code.
*
* @param Array $searchableClasses The extension will be applied to all DataObject subclasses
* @param array $searchableClasses The extension will be applied to all DataObject subclasses
* listed here. Default: {@link SiteTree} and {@link File}.
* @throws Exception
*/
public static function enable($searchableClasses = array('SiteTree', 'File')) {
public static function enable($searchableClasses = array('SilverStripe\\CMS\\Model\\SiteTree', 'File')) {
$defaultColumns = array(
'SiteTree' => '"Title","MenuTitle","Content","MetaDescription"',
'SilverStripe\\CMS\\Model\\SiteTree' => '"Title","MenuTitle","Content","MetaDescription"',
'File' => '"Name","Title"'
);
@ -66,13 +71,13 @@ class FulltextSearchable extends DataExtension {
}
}
self::$searchable_classes = $searchableClasses;
if(class_exists("ContentController")){
ContentController::add_extension("ContentControllerSearchExtension");
if(class_exists("SilverStripe\\CMS\\Controllers\\ContentController")){
ContentController::add_extension("SilverStripe\\CMS\\Search\\ContentControllerSearchExtension");
}
}
/**
* @param Array|String $searchFields Comma-separated list (or array) of database column names
* @param array|string $searchFields Comma-separated list (or array) of database column names
* that can be searched on. Used for generation of the database index defintions.
*/
public function __construct($searchFields = array()) {
@ -97,7 +102,7 @@ class FulltextSearchable extends DataExtension {
/**
* Shows all classes that had the {@link FulltextSearchable} extension applied through {@link enable()}.
*
* @return Array
* @return array
*/
public static function get_searchable_classes() {
return self::$searchable_classes;

View File

@ -11,9 +11,9 @@ class RequestHandlingTest extends FunctionalTest {
protected $illegalExtensions = array(
// Suppress CMS error page handling
'Controller' => array('ErrorPageControllerExtension'),
'Form' => array('ErrorPageControllerExtension'),
'LeftAndMain' => array('ErrorPageControllerExtension'),
'Controller' => array('SilverStripe\\CMS\\Controllers\\ErrorPageControllerExtension'),
'Form' => array('SilverStripe\\CMS\\Controllers\\ErrorPageControllerExtension'),
'LeftAndMain' => array('SilverStripe\\CMS\\Controllers\\ErrorPageControllerExtension'),
);
public function setUp() {

View File

@ -6,6 +6,8 @@ use SilverStripe\ORM\Versioning\Versioned;
use SilverStripe\ORM\DataObject;
use SilverStripe\ORM\ValidationException;
use SilverStripe\Security\Member;
use SilverStripe\CMS\Model\ErrorPage;
@ -50,7 +52,7 @@ class FileTest extends SapphireTest {
}
// Conditional fixture creation in case the 'cms' module is installed
if(class_exists('ErrorPage')) {
if(class_exists('SilverStripe\\CMS\\Model\\ErrorPage')) {
$page = new ErrorPage(array(
'Title' => 'Page not Found',
'ErrorCode' => 404
@ -90,7 +92,7 @@ class FileTest extends SapphireTest {
$this->assertEquals('', $parser->parse('[file_link,id="text"]'));
$this->assertEquals('', $parser->parse('[file_link]Example Content[/file_link]'));
if(class_exists('ErrorPage')) {
if(class_exists('SilverStripe\\CMS\\Model\\ErrorPage')) {
$errorPage = ErrorPage::get()->filter('ErrorCode', 404)->First();
$this->assertEquals(
$errorPage->Link(),

View File

@ -542,6 +542,9 @@ class ViewableData extends Object implements IteratorAggregate {
$classes[] = $this->template;
}
// Strip out namespaces
$classes = preg_replace('#.*\\\\#', '', $classes);
return Convert::raw2att(implode(' ', $classes));
}