elements don't support innerText even when does.
- contentKey = 'textContent' in document.documentElement ? 'textContent' : 'innerText';
- }
- return contentKey;
- }
-
- module.exports = getTextContentAccessor;
-
-/***/ },
-/* 163 */
-/***/ function(module, exports, __webpack_require__) {
-
- /**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- *
- * @providesModule instantiateReactComponent
- */
-
- 'use strict';
-
- var _prodInvariant = __webpack_require__(4),
- _assign = __webpack_require__(6);
-
- var ReactCompositeComponent = __webpack_require__(353);
- var ReactEmptyComponent = __webpack_require__(147);
- var ReactHostComponent = __webpack_require__(149);
-
- var invariant = __webpack_require__(3);
- var warning = __webpack_require__(5);
-
- // To avoid a cyclic dependency, we create the final class in this module
- var ReactCompositeComponentWrapper = function (element) {
- this.construct(element);
- };
- _assign(ReactCompositeComponentWrapper.prototype, ReactCompositeComponent.Mixin, {
- _instantiateReactComponent: instantiateReactComponent
- });
-
- function getDeclarationErrorAddendum(owner) {
- if (owner) {
- var name = owner.getName();
- if (name) {
- return ' Check the render method of `' + name + '`.';
- }
- }
- return '';
- }
-
- /**
- * Check if the type reference is a known internal type. I.e. not a user
- * provided composite type.
- *
- * @param {function} type
- * @return {boolean} Returns true if this is a valid internal type.
- */
- function isInternalComponentType(type) {
- return typeof type === 'function' && typeof type.prototype !== 'undefined' && typeof type.prototype.mountComponent === 'function' && typeof type.prototype.receiveComponent === 'function';
- }
-
- var nextDebugID = 1;
-
- /**
- * Given a ReactNode, create an instance that will actually be mounted.
- *
- * @param {ReactNode} node
- * @param {boolean} shouldHaveDebugID
- * @return {object} A new instance of the element's constructor.
- * @protected
- */
- function instantiateReactComponent(node, shouldHaveDebugID) {
- var instance;
-
- if (node === null || node === false) {
- instance = ReactEmptyComponent.create(instantiateReactComponent);
- } else if (typeof node === 'object') {
- var element = node;
- !(element && (typeof element.type === 'function' || typeof element.type === 'string')) ? false ? invariant(false, 'Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s', element.type == null ? element.type : typeof element.type, getDeclarationErrorAddendum(element._owner)) : _prodInvariant('130', element.type == null ? element.type : typeof element.type, getDeclarationErrorAddendum(element._owner)) : void 0;
-
- // Special case string values
- if (typeof element.type === 'string') {
- instance = ReactHostComponent.createInternalComponent(element);
- } else if (isInternalComponentType(element.type)) {
- // This is temporarily available for custom components that are not string
- // representations. I.e. ART. Once those are updated to use the string
- // representation, we can drop this code path.
- instance = new element.type(element);
-
- // We renamed this. Allow the old name for compat. :(
- if (!instance.getHostNode) {
- instance.getHostNode = instance.getNativeNode;
- }
- } else {
- instance = new ReactCompositeComponentWrapper(element);
- }
- } else if (typeof node === 'string' || typeof node === 'number') {
- instance = ReactHostComponent.createInstanceForText(node);
- } else {
- true ? false ? invariant(false, 'Encountered invalid React node of type %s', typeof node) : _prodInvariant('131', typeof node) : void 0;
- }
-
- if (false) {
- process.env.NODE_ENV !== 'production' ? warning(typeof instance.mountComponent === 'function' && typeof instance.receiveComponent === 'function' && typeof instance.getHostNode === 'function' && typeof instance.unmountComponent === 'function', 'Only React Components can be mounted.') : void 0;
- }
-
- // These two fields are used by the DOM and ART diffing algorithms
- // respectively. Instead of using expandos on components, we should be
- // storing the state needed by the diffing algorithms elsewhere.
- instance._mountIndex = 0;
- instance._mountImage = null;
-
- if (false) {
- instance._debugID = shouldHaveDebugID ? nextDebugID++ : 0;
- }
-
- // Internal instances should fully constructed at this point, so they should
- // not get any new fields added to them at this point.
- if (false) {
- if (Object.preventExtensions) {
- Object.preventExtensions(instance);
- }
- }
-
- return instance;
- }
-
- module.exports = instantiateReactComponent;
-
-/***/ },
-/* 164 */
-/***/ function(module, exports) {
-
- /**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- *
- * @providesModule isTextInputElement
- *
- */
-
- 'use strict';
-
- /**
- * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary
- */
-
- var supportedInputTypes = {
- 'color': true,
- 'date': true,
- 'datetime': true,
- 'datetime-local': true,
- 'email': true,
- 'month': true,
- 'number': true,
- 'password': true,
- 'range': true,
- 'search': true,
- 'tel': true,
- 'text': true,
- 'time': true,
- 'url': true,
- 'week': true
- };
-
- function isTextInputElement(elem) {
- var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();
-
- if (nodeName === 'input') {
- return !!supportedInputTypes[elem.type];
- }
-
- if (nodeName === 'textarea') {
- return true;
- }
-
- return false;
- }
-
- module.exports = isTextInputElement;
-
-/***/ },
-/* 165 */
-/***/ function(module, exports, __webpack_require__) {
-
- /**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- *
- * @providesModule setTextContent
- */
-
- 'use strict';
-
- var ExecutionEnvironment = __webpack_require__(11);
- var escapeTextContentForBrowser = __webpack_require__(57);
- var setInnerHTML = __webpack_require__(58);
-
- /**
- * Set the textContent property of a node, ensuring that whitespace is preserved
- * even in IE8. innerText is a poor substitute for textContent and, among many
- * issues, inserts
instead of the literal newline chars. innerHTML behaves
- * as it should.
- *
- * @param {DOMElement} node
- * @param {string} text
- * @internal
- */
- var setTextContent = function (node, text) {
- if (text) {
- var firstChild = node.firstChild;
-
- if (firstChild && firstChild === node.lastChild && firstChild.nodeType === 3) {
- firstChild.nodeValue = text;
- return;
- }
- }
- node.textContent = text;
- };
-
- if (ExecutionEnvironment.canUseDOM) {
- if (!('textContent' in document.documentElement)) {
- setTextContent = function (node, text) {
- setInnerHTML(node, escapeTextContentForBrowser(text));
- };
- }
- }
-
- module.exports = setTextContent;
-
-/***/ },
-/* 166 */
-/***/ function(module, exports) {
-
- "use strict";
-
- exports.__esModule = true;
- exports["default"] = compose;
- /**
- * Composes single-argument functions from right to left. The rightmost
- * function can take multiple arguments as it provides the signature for
- * the resulting composite function.
- *
- * @param {...Function} funcs The functions to compose.
- * @returns {Function} A function obtained by composing the argument functions
- * from right to left. For example, compose(f, g, h) is identical to doing
- * (...args) => f(g(h(...args))).
- */
-
- function compose() {
- for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {
- funcs[_key] = arguments[_key];
- }
-
- if (funcs.length === 0) {
- return function (arg) {
- return arg;
- };
- }
-
- if (funcs.length === 1) {
- return funcs[0];
- }
-
- var last = funcs[funcs.length - 1];
- var rest = funcs.slice(0, -1);
- return function () {
- return rest.reduceRight(function (composed, f) {
- return f(composed);
- }, last.apply(undefined, arguments));
- };
- }
-
-/***/ },
-/* 167 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- exports.__esModule = true;
- exports.ActionTypes = undefined;
- exports['default'] = createStore;
-
- var _isPlainObject = __webpack_require__(71);
-
- var _isPlainObject2 = _interopRequireDefault(_isPlainObject);
-
- var _symbolObservable = __webpack_require__(410);
-
- var _symbolObservable2 = _interopRequireDefault(_symbolObservable);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
- /**
- * These are private action types reserved by Redux.
- * For any unknown actions, you must return the current state.
- * If the current state is undefined, you must return the initial state.
- * Do not reference these action types directly in your code.
- */
- var ActionTypes = exports.ActionTypes = {
- INIT: '@@redux/INIT'
- };
-
- /**
- * Creates a Redux store that holds the state tree.
- * The only way to change the data in the store is to call `dispatch()` on it.
- *
- * There should only be a single store in your app. To specify how different
- * parts of the state tree respond to actions, you may combine several reducers
- * into a single reducer function by using `combineReducers`.
- *
- * @param {Function} reducer A function that returns the next state tree, given
- * the current state tree and the action to handle.
- *
- * @param {any} [preloadedState] The initial state. You may optionally specify it
- * to hydrate the state from the server in universal apps, or to restore a
- * previously serialized user session.
- * If you use `combineReducers` to produce the root reducer function, this must be
- * an object with the same shape as `combineReducers` keys.
- *
- * @param {Function} enhancer The store enhancer. You may optionally specify it
- * to enhance the store with third-party capabilities such as middleware,
- * time travel, persistence, etc. The only store enhancer that ships with Redux
- * is `applyMiddleware()`.
- *
- * @returns {Store} A Redux store that lets you read the state, dispatch actions
- * and subscribe to changes.
- */
- function createStore(reducer, preloadedState, enhancer) {
- var _ref2;
-
- if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {
- enhancer = preloadedState;
- preloadedState = undefined;
- }
-
- if (typeof enhancer !== 'undefined') {
- if (typeof enhancer !== 'function') {
- throw new Error('Expected the enhancer to be a function.');
- }
-
- return enhancer(createStore)(reducer, preloadedState);
- }
-
- if (typeof reducer !== 'function') {
- throw new Error('Expected the reducer to be a function.');
- }
-
- var currentReducer = reducer;
- var currentState = preloadedState;
- var currentListeners = [];
- var nextListeners = currentListeners;
- var isDispatching = false;
-
- function ensureCanMutateNextListeners() {
- if (nextListeners === currentListeners) {
- nextListeners = currentListeners.slice();
- }
- }
-
- /**
- * Reads the state tree managed by the store.
- *
- * @returns {any} The current state tree of your application.
- */
- function getState() {
- return currentState;
- }
-
- /**
- * Adds a change listener. It will be called any time an action is dispatched,
- * and some part of the state tree may potentially have changed. You may then
- * call `getState()` to read the current state tree inside the callback.
- *
- * You may call `dispatch()` from a change listener, with the following
- * caveats:
- *
- * 1. The subscriptions are snapshotted just before every `dispatch()` call.
- * If you subscribe or unsubscribe while the listeners are being invoked, this
- * will not have any effect on the `dispatch()` that is currently in progress.
- * However, the next `dispatch()` call, whether nested or not, will use a more
- * recent snapshot of the subscription list.
- *
- * 2. The listener should not expect to see all state changes, as the state
- * might have been updated multiple times during a nested `dispatch()` before
- * the listener is called. It is, however, guaranteed that all subscribers
- * registered before the `dispatch()` started will be called with the latest
- * state by the time it exits.
- *
- * @param {Function} listener A callback to be invoked on every dispatch.
- * @returns {Function} A function to remove this change listener.
- */
- function subscribe(listener) {
- if (typeof listener !== 'function') {
- throw new Error('Expected listener to be a function.');
- }
-
- var isSubscribed = true;
-
- ensureCanMutateNextListeners();
- nextListeners.push(listener);
-
- return function unsubscribe() {
- if (!isSubscribed) {
- return;
- }
-
- isSubscribed = false;
-
- ensureCanMutateNextListeners();
- var index = nextListeners.indexOf(listener);
- nextListeners.splice(index, 1);
- };
- }
-
- /**
- * Dispatches an action. It is the only way to trigger a state change.
- *
- * The `reducer` function, used to create the store, will be called with the
- * current state tree and the given `action`. Its return value will
- * be considered the **next** state of the tree, and the change listeners
- * will be notified.
- *
- * The base implementation only supports plain object actions. If you want to
- * dispatch a Promise, an Observable, a thunk, or something else, you need to
- * wrap your store creating function into the corresponding middleware. For
- * example, see the documentation for the `redux-thunk` package. Even the
- * middleware will eventually dispatch plain object actions using this method.
- *
- * @param {Object} action A plain object representing “what changed”. It is
- * a good idea to keep actions serializable so you can record and replay user
- * sessions, or use the time travelling `redux-devtools`. An action must have
- * a `type` property which may not be `undefined`. It is a good idea to use
- * string constants for action types.
- *
- * @returns {Object} For convenience, the same action object you dispatched.
- *
- * Note that, if you use a custom middleware, it may wrap `dispatch()` to
- * return something else (for example, a Promise you can await).
- */
- function dispatch(action) {
- if (!(0, _isPlainObject2['default'])(action)) {
- throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');
- }
-
- if (typeof action.type === 'undefined') {
- throw new Error('Actions may not have an undefined "type" property. ' + 'Have you misspelled a constant?');
- }
-
- if (isDispatching) {
- throw new Error('Reducers may not dispatch actions.');
- }
-
- try {
- isDispatching = true;
- currentState = currentReducer(currentState, action);
- } finally {
- isDispatching = false;
- }
-
- var listeners = currentListeners = nextListeners;
- for (var i = 0; i < listeners.length; i++) {
- listeners[i]();
- }
-
- return action;
- }
-
- /**
- * Replaces the reducer currently used by the store to calculate the state.
- *
- * You might need this if your app implements code splitting and you want to
- * load some of the reducers dynamically. You might also need this if you
- * implement a hot reloading mechanism for Redux.
- *
- * @param {Function} nextReducer The reducer for the store to use instead.
- * @returns {void}
- */
- function replaceReducer(nextReducer) {
- if (typeof nextReducer !== 'function') {
- throw new Error('Expected the nextReducer to be a function.');
- }
-
- currentReducer = nextReducer;
- dispatch({ type: ActionTypes.INIT });
- }
-
- /**
- * Interoperability point for observable/reactive libraries.
- * @returns {observable} A minimal observable of state changes.
- * For more information, see the observable proposal:
- * https://github.com/zenparsing/es-observable
- */
- function observable() {
- var _ref;
-
- var outerSubscribe = subscribe;
- return _ref = {
- /**
- * The minimal observable subscription method.
- * @param {Object} observer Any object that can be used as an observer.
- * The observer object should have a `next` method.
- * @returns {subscription} An object with an `unsubscribe` method that can
- * be used to unsubscribe the observable from the store, and prevent further
- * emission of values from the observable.
- */
- subscribe: function subscribe(observer) {
- if (typeof observer !== 'object') {
- throw new TypeError('Expected the observer to be an object.');
- }
-
- function observeState() {
- if (observer.next) {
- observer.next(getState());
- }
- }
-
- observeState();
- var unsubscribe = outerSubscribe(observeState);
- return { unsubscribe: unsubscribe };
- }
- }, _ref[_symbolObservable2['default']] = function () {
- return this;
- }, _ref;
- }
-
- // When a store is created, an "INIT" action is dispatched so that every
- // reducer returns their initial state. This effectively populates
- // the initial state tree.
- dispatch({ type: ActionTypes.INIT });
-
- return _ref2 = {
- dispatch: dispatch,
- subscribe: subscribe,
- getState: getState,
- replaceReducer: replaceReducer
- }, _ref2[_symbolObservable2['default']] = observable, _ref2;
- }
-
-/***/ },
-/* 168 */
-/***/ function(module, exports) {
-
- 'use strict';
-
- exports.__esModule = true;
- exports['default'] = warning;
- /**
- * Prints a warning in the console if it exists.
- *
- * @param {String} message The warning message.
- * @returns {void}
- */
- function warning(message) {
- /* eslint-disable no-console */
- if (typeof console !== 'undefined' && typeof console.error === 'function') {
- console.error(message);
- }
- /* eslint-enable no-console */
- try {
- // This error was thrown as a convenience so that if you enable
- // "break on all exceptions" in your console,
- // it would pause the execution at this line.
- throw new Error(message);
- /* eslint-disable no-empty */
- } catch (e) {}
- /* eslint-enable no-empty */
- }
-
-/***/ },
-/* 169 */
-/***/ function(module, exports) {
-
- module.exports = function(module) {
- if(!module.webpackPolyfill) {
- module.deprecate = function() {};
- module.paths = [];
- // module.parent = undefined by default
- module.children = [];
- module.webpackPolyfill = 1;
- }
- return module;
- }
-
-
-/***/ },
-/* 170 */
-/***/ function(module, exports) {
-
- (function(self) {
- 'use strict';
-
- if (self.fetch) {
- return
- }
-
- var support = {
- searchParams: 'URLSearchParams' in self,
- iterable: 'Symbol' in self && 'iterator' in Symbol,
- blob: 'FileReader' in self && 'Blob' in self && (function() {
- try {
- new Blob()
- return true
- } catch(e) {
- return false
- }
- })(),
- formData: 'FormData' in self,
- arrayBuffer: 'ArrayBuffer' in self
- }
-
- if (support.arrayBuffer) {
- var viewClasses = [
- '[object Int8Array]',
- '[object Uint8Array]',
- '[object Uint8ClampedArray]',
- '[object Int16Array]',
- '[object Uint16Array]',
- '[object Int32Array]',
- '[object Uint32Array]',
- '[object Float32Array]',
- '[object Float64Array]'
- ]
-
- var isDataView = function(obj) {
- return obj && DataView.prototype.isPrototypeOf(obj)
- }
-
- var isArrayBufferView = ArrayBuffer.isView || function(obj) {
- return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1
- }
- }
-
- function normalizeName(name) {
- if (typeof name !== 'string') {
- name = String(name)
- }
- if (/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(name)) {
- throw new TypeError('Invalid character in header field name')
- }
- return name.toLowerCase()
- }
-
- function normalizeValue(value) {
- if (typeof value !== 'string') {
- value = String(value)
- }
- return value
- }
-
- // Build a destructive iterator for the value list
- function iteratorFor(items) {
- var iterator = {
- next: function() {
- var value = items.shift()
- return {done: value === undefined, value: value}
- }
- }
-
- if (support.iterable) {
- iterator[Symbol.iterator] = function() {
- return iterator
- }
- }
-
- return iterator
- }
-
- function Headers(headers) {
- this.map = {}
-
- if (headers instanceof Headers) {
- headers.forEach(function(value, name) {
- this.append(name, value)
- }, this)
-
- } else if (headers) {
- Object.getOwnPropertyNames(headers).forEach(function(name) {
- this.append(name, headers[name])
- }, this)
- }
- }
-
- Headers.prototype.append = function(name, value) {
- name = normalizeName(name)
- value = normalizeValue(value)
- var oldValue = this.map[name]
- this.map[name] = oldValue ? oldValue+','+value : value
- }
-
- Headers.prototype['delete'] = function(name) {
- delete this.map[normalizeName(name)]
- }
-
- Headers.prototype.get = function(name) {
- name = normalizeName(name)
- return this.has(name) ? this.map[name] : null
- }
-
- 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) {
- for (var name in this.map) {
- if (this.map.hasOwnProperty(name)) {
- callback.call(thisArg, this.map[name], name, this)
- }
- }
- }
-
- Headers.prototype.keys = function() {
- var items = []
- this.forEach(function(value, name) { items.push(name) })
- return iteratorFor(items)
- }
-
- Headers.prototype.values = function() {
- var items = []
- this.forEach(function(value) { items.push(value) })
- return iteratorFor(items)
- }
-
- Headers.prototype.entries = function() {
- var items = []
- this.forEach(function(value, name) { items.push([name, value]) })
- return iteratorFor(items)
- }
-
- if (support.iterable) {
- Headers.prototype[Symbol.iterator] = Headers.prototype.entries
- }
-
- function consumed(body) {
- if (body.bodyUsed) {
- return Promise.reject(new TypeError('Already read'))
- }
- body.bodyUsed = true
- }
-
- 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()
- var promise = fileReaderReady(reader)
- reader.readAsArrayBuffer(blob)
- return promise
- }
-
- function readBlobAsText(blob) {
- var reader = new FileReader()
- var promise = fileReaderReady(reader)
- reader.readAsText(blob)
- return promise
- }
-
- function readArrayBufferAsText(buf) {
- var view = new Uint8Array(buf)
- var chars = new Array(view.length)
-
- for (var i = 0; i < view.length; i++) {
- chars[i] = String.fromCharCode(view[i])
- }
- return chars.join('')
- }
-
- function bufferClone(buf) {
- if (buf.slice) {
- return buf.slice(0)
- } else {
- var view = new Uint8Array(buf.byteLength)
- view.set(new Uint8Array(buf))
- return view.buffer
- }
- }
-
- function Body() {
- this.bodyUsed = false
-
- this._initBody = function(body) {
- this._bodyInit = body
- if (!body) {
- this._bodyText = ''
- } else if (typeof body === 'string') {
- 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 (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {
- this._bodyText = body.toString()
- } else if (support.arrayBuffer && support.blob && isDataView(body)) {
- this._bodyArrayBuffer = bufferClone(body.buffer)
- // IE 10-11 can't handle a DataView body.
- this._bodyInit = new Blob([this._bodyArrayBuffer])
- } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {
- this._bodyArrayBuffer = bufferClone(body)
- } else {
- throw new Error('unsupported BodyInit type')
- }
-
- if (!this.headers.get('content-type')) {
- if (typeof body === 'string') {
- this.headers.set('content-type', 'text/plain;charset=UTF-8')
- } else if (this._bodyBlob && this._bodyBlob.type) {
- this.headers.set('content-type', this._bodyBlob.type)
- } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {
- this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')
- }
- }
- }
-
- if (support.blob) {
- this.blob = function() {
- var rejected = consumed(this)
- if (rejected) {
- return rejected
- }
-
- if (this._bodyBlob) {
- return Promise.resolve(this._bodyBlob)
- } else if (this._bodyArrayBuffer) {
- return Promise.resolve(new Blob([this._bodyArrayBuffer]))
- } else if (this._bodyFormData) {
- throw new Error('could not read FormData body as blob')
- } else {
- return Promise.resolve(new Blob([this._bodyText]))
- }
- }
-
- this.arrayBuffer = function() {
- if (this._bodyArrayBuffer) {
- return consumed(this) || Promise.resolve(this._bodyArrayBuffer)
- } else {
- return this.blob().then(readBlobAsArrayBuffer)
- }
- }
- }
-
- this.text = function() {
- var rejected = consumed(this)
- if (rejected) {
- return rejected
- }
-
- if (this._bodyBlob) {
- return readBlobAsText(this._bodyBlob)
- } else if (this._bodyArrayBuffer) {
- return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))
- } else if (this._bodyFormData) {
- throw new Error('could not read FormData body as text')
- } else {
- return Promise.resolve(this._bodyText)
- }
- }
-
- if (support.formData) {
- this.formData = function() {
- return this.text().then(decode)
- }
- }
-
- this.json = function() {
- return this.text().then(JSON.parse)
- }
-
- return this
- }
-
- // HTTP methods whose capitalization should be normalized
- var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']
-
- 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 (typeof input === 'string') {
- this.url = input
- } else {
- if (input.bodyUsed) {
- throw new TypeError('Already read')
- }
- this.url = input.url
- this.credentials = input.credentials
- if (!options.headers) {
- this.headers = new Headers(input.headers)
- }
- this.method = input.method
- this.mode = input.mode
- if (!body && input._bodyInit != null) {
- body = input._bodyInit
- input.bodyUsed = true
- }
- }
-
- this.credentials = options.credentials || this.credentials || 'omit'
- if (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
-
- if ((this.method === 'GET' || this.method === 'HEAD') && body) {
- throw new TypeError('Body not allowed for GET or HEAD requests')
- }
- this._initBody(body)
- }
-
- Request.prototype.clone = function() {
- return new Request(this, { body: this._bodyInit })
- }
-
- function decode(body) {
- var form = new FormData()
- body.trim().split('&').forEach(function(bytes) {
- if (bytes) {
- var split = bytes.split('=')
- var name = split.shift().replace(/\+/g, ' ')
- var value = split.join('=').replace(/\+/g, ' ')
- form.append(decodeURIComponent(name), decodeURIComponent(value))
- }
- })
- return form
- }
-
- function parseHeaders(rawHeaders) {
- var headers = new Headers()
- rawHeaders.split('\r\n').forEach(function(line) {
- var parts = line.split(':')
- var key = parts.shift().trim()
- if (key) {
- var value = parts.join(':').trim()
- headers.append(key, value)
- }
- })
- return headers
- }
-
- Body.call(Request.prototype)
-
- function Response(bodyInit, options) {
- if (!options) {
- options = {}
- }
-
- this.type = 'default'
- this.status = 'status' in options ? options.status : 200
- this.ok = this.status >= 200 && this.status < 300
- this.statusText = 'statusText' in options ? options.statusText : 'OK'
- this.headers = new Headers(options.headers)
- this.url = options.url || ''
- this._initBody(bodyInit)
- }
-
- 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: ''})
- response.type = 'error'
- return response
- }
-
- var redirectStatuses = [301, 302, 303, 307, 308]
-
- Response.redirect = function(url, status) {
- if (redirectStatuses.indexOf(status) === -1) {
- 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) {
- var request = new Request(input, init)
- var xhr = new XMLHttpRequest()
-
- xhr.onload = function() {
- var options = {
- status: xhr.status,
- statusText: xhr.statusText,
- headers: parseHeaders(xhr.getAllResponseHeaders() || '')
- }
- options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')
- var body = 'response' in xhr ? xhr.response : xhr.responseText
- resolve(new Response(body, options))
- }
-
- xhr.onerror = function() {
- reject(new TypeError('Network request failed'))
- }
-
- xhr.ontimeout = function() {
- reject(new TypeError('Network request failed'))
- }
-
- xhr.open(request.method, request.url, true)
-
- if (request.credentials === 'include') {
- xhr.withCredentials = true
- }
-
- if ('responseType' in xhr && support.blob) {
- xhr.responseType = 'blob'
- }
-
- request.headers.forEach(function(value, name) {
- xhr.setRequestHeader(name, value)
- })
-
- xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)
- })
- }
- self.fetch.polyfill = true
- })(typeof self !== 'undefined' ? self : this);
-
-
-/***/ },
-/* 171 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _reactMdl = __webpack_require__(9);
-
- var _styles = __webpack_require__(246);
-
- var _styles2 = _interopRequireDefault(_styles);
-
- var _errorContainer = __webpack_require__(181);
-
- var _errorContainer2 = _interopRequireDefault(_errorContainer);
-
- var _userContainer = __webpack_require__(206);
-
- var _userContainer2 = _interopRequireDefault(_userContainer);
-
- var _showUserContainer = __webpack_require__(204);
-
- var _showUserContainer2 = _interopRequireDefault(_showUserContainer);
-
- 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"); } }
-
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
-
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { 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: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-
- var App = function (_Component) {
- _inherits(App, _Component);
-
- function App(props) {
- _classCallCheck(this, App);
-
- var _this = _possibleConstructorReturn(this, (App.__proto__ || Object.getPrototypeOf(App)).call(this, props));
-
- _this.onOverlayClick = function () {
- return _this.setState({ drawerActive: false });
- };
-
- _this.state = { drawerActive: false };
-
- _this.toggleDrawerActive = function () {
- _this.setState({ drawerActive: !_this.state.drawerActive });
- };
- return _this;
- }
-
- _createClass(App, [{
- key: 'componentDidMount',
- value: function componentDidMount() {
- document.title = this.getCurrentSection() + ' - Unleash Admin';
- }
- }, {
- key: 'getCurrentSection',
- value: function getCurrentSection() {
- var routes = this.props.routes;
-
- var lastRoute = routes[routes.length - 1];
- return lastRoute ? lastRoute.pageTitle : '';
- }
- }, {
- key: 'render',
- value: function render() {
- var _this2 = this;
-
- var createListItem = function createListItem(path, caption) {
- return _react2.default.createElement(
- 'a',
- {
- href: _this2.context.router.createHref(path),
- className: _this2.context.router.isActive(path) ? _styles2.default.active : '' },
- caption
- );
- };
-
- return _react2.default.createElement(
- 'div',
- { style: {} },
- _react2.default.createElement(_userContainer2.default, null),
- _react2.default.createElement(
- _reactMdl.Layout,
- { fixedHeader: true },
- _react2.default.createElement(
- _reactMdl.Header,
- { title: _react2.default.createElement(
- 'span',
- null,
- _react2.default.createElement(
- 'span',
- { style: { color: '#ddd' } },
- 'Unleash Admin / '
- ),
- _react2.default.createElement(
- 'strong',
- null,
- this.getCurrentSection()
- )
- ) },
- _react2.default.createElement(
- _reactMdl.Navigation,
- null,
- _react2.default.createElement(
- 'a',
- { href: 'https://github.com/Unleash', target: '_blank' },
- 'Github'
- ),
- _react2.default.createElement(_showUserContainer2.default, null)
- )
- ),
- _react2.default.createElement(
- _reactMdl.Drawer,
- { title: 'Unleash Admin' },
- _react2.default.createElement(
- _reactMdl.Navigation,
- null,
- createListItem('/features', 'Feature toggles'),
- createListItem('/strategies', 'Strategies'),
- createListItem('/history', 'Event history'),
- createListItem('/archive', 'Archived toggles'),
- _react2.default.createElement('hr', null),
- createListItem('/applications', 'Applications'),
- createListItem('/metrics', 'Client metrics'),
- createListItem('/client-strategies', 'Client strategies'),
- createListItem('/client-instances', 'Client instances')
- )
- ),
- _react2.default.createElement(
- _reactMdl.Content,
- null,
- _react2.default.createElement(
- _reactMdl.Grid,
- null,
- _react2.default.createElement(
- _reactMdl.Cell,
- { col: 12 },
- this.props.children,
- _react2.default.createElement(_errorContainer2.default, null)
- )
- ),
- _react2.default.createElement(
- _reactMdl.Footer,
- { size: 'mega' },
- _react2.default.createElement(
- _reactMdl.FooterSection,
- { type: 'middle' },
- _react2.default.createElement(
- _reactMdl.FooterDropDownSection,
- { title: 'Menu' },
- _react2.default.createElement(
- _reactMdl.FooterLinkList,
- null,
- createListItem('/features', 'Feature toggles'),
- createListItem('/strategies', 'Strategies'),
- createListItem('/history', 'Event history'),
- createListItem('/archive', 'Archived toggles')
- )
- ),
- _react2.default.createElement(
- _reactMdl.FooterDropDownSection,
- { title: 'Metrics' },
- _react2.default.createElement(
- _reactMdl.FooterLinkList,
- null,
- createListItem('/applications', 'Applications'),
- createListItem('/metrics', 'Client metrics'),
- createListItem('/client-strategies', 'Client strategies'),
- createListItem('/client-instances', 'Client instances')
- )
- ),
- _react2.default.createElement(
- _reactMdl.FooterDropDownSection,
- { title: 'FAQ' },
- _react2.default.createElement(
- _reactMdl.FooterLinkList,
- null,
- _react2.default.createElement(
- 'a',
- { href: '#' },
- 'Help'
- ),
- _react2.default.createElement(
- 'a',
- { href: '#' },
- 'Privacy & Terms'
- ),
- _react2.default.createElement(
- 'a',
- { href: '#' },
- 'Questions'
- ),
- _react2.default.createElement(
- 'a',
- { href: '#' },
- 'Answers'
- ),
- _react2.default.createElement(
- 'a',
- { href: '#' },
- 'Contact Us'
- )
- )
- ),
- _react2.default.createElement(
- _reactMdl.FooterDropDownSection,
- { title: 'Clients' },
- _react2.default.createElement(
- _reactMdl.FooterLinkList,
- null,
- _react2.default.createElement(
- 'a',
- { href: 'https://github.com/Unleash/unleash-node-client/' },
- 'Node.js'
- ),
- _react2.default.createElement(
- 'a',
- { href: 'https://github.com/Unleash/unleash-java-client/' },
- 'Java'
- )
- )
- )
- ),
- _react2.default.createElement(
- _reactMdl.FooterSection,
- { type: 'bottom', logo: 'Unleash Admin' },
- _react2.default.createElement(
- _reactMdl.FooterLinkList,
- null,
- _react2.default.createElement(
- 'a',
- { href: 'https://github.com/Unleash/unleash/', target: '_blank' },
- 'GitHub'
- ),
- _react2.default.createElement(
- 'a',
- { href: 'https://finn.no', target: '_blank' },
- _react2.default.createElement(
- 'small',
- null,
- 'A product by'
- ),
- ' FINN.no'
- )
- )
- )
- )
- )
- )
- );
-
- return _react2.default.createElement(
- 'div',
- { className: _styles2.default.container },
- _react2.default.createElement(AppBar, { title: 'Unleash Admin', leftIcon: 'menu', onLeftIconClick: this.toggleDrawerActive, className: _styles2.default.appBar }),
- _react2.default.createElement(
- 'div',
- { className: _styles2.default.container, style: { top: '6.4rem' } },
- _react2.default.createElement(
- _reactMdl.Layout,
- null,
- _react2.default.createElement(
- NavDrawer,
- { active: this.state.drawerActive, permanentAt: 'sm', onOverlayClick: this.onOverlayClick },
- _react2.default.createElement(_reactMdl.Navigation, null)
- ),
- _react2.default.createElement(
- Panel,
- { scrollY: true },
- _react2.default.createElement(
- 'div',
- { style: { padding: '1.8rem' } },
- this.props.children
- )
- )
- )
- )
- );
- }
- }]);
-
- return App;
- }(_react.Component);
-
- App.contextTypes = {
- router: _react2.default.PropTypes.object
- };
- exports.default = App;
- ;
-
-/***/ },
-/* 172 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _reactRouter = __webpack_require__(25);
-
- var _reactMdl = __webpack_require__(9);
-
- 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"); } }
-
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
-
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { 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: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-
- var ClientStrategies = function (_Component) {
- _inherits(ClientStrategies, _Component);
-
- function ClientStrategies() {
- _classCallCheck(this, ClientStrategies);
-
- return _possibleConstructorReturn(this, (ClientStrategies.__proto__ || Object.getPrototypeOf(ClientStrategies)).apply(this, arguments));
- }
-
- _createClass(ClientStrategies, [{
- key: 'componentDidMount',
- value: function componentDidMount() {
- this.props.fetchApplication(this.props.appName);
- }
- }, {
- key: 'render',
- value: function render() {
- if (!this.props.application) {
- return _react2.default.createElement(
- 'div',
- null,
- 'Loading application info...'
- );
- }
- var _props$application = this.props.application,
- appName = _props$application.appName,
- instances = _props$application.instances,
- strategies = _props$application.strategies,
- seenToggles = _props$application.seenToggles;
-
-
- return _react2.default.createElement(
- 'div',
- null,
- _react2.default.createElement(
- 'h5',
- null,
- appName
- ),
- _react2.default.createElement(
- _reactMdl.Grid,
- null,
- _react2.default.createElement(
- _reactMdl.Cell,
- { col: 4 },
- _react2.default.createElement(
- 'h6',
- null,
- 'Instances'
- ),
- _react2.default.createElement(
- 'ol',
- { className: 'demo-list-item mdl-list' },
- instances.map(function (_ref, i) {
- var instanceId = _ref.instanceId;
- return _react2.default.createElement(
- 'li',
- { className: 'mdl-list__item', key: i },
- instanceId
- );
- })
- )
- ),
- _react2.default.createElement(
- _reactMdl.Cell,
- { col: 4 },
- _react2.default.createElement(
- 'h6',
- null,
- 'Strategies'
- ),
- _react2.default.createElement('ol', { className: 'demo-list-item mdl-list' })
- ),
- _react2.default.createElement(
- _reactMdl.Cell,
- { col: 4 },
- _react2.default.createElement(
- 'h6',
- null,
- 'Toggles'
- ),
- _react2.default.createElement(
- 'ol',
- { className: 'demo-list-item mdl-list' },
- seenToggles.map(function (name, i) {
- return _react2.default.createElement(
- 'li',
- { className: 'mdl-list__item', key: i },
- _react2.default.createElement(
- _reactRouter.Link,
- { to: '/features/edit/' + name },
- name
- )
- );
- })
- )
- )
- )
- );
- }
- }]);
-
- return ClientStrategies;
- }(_react.Component);
-
- exports.default = ClientStrategies;
-
-/***/ },
-/* 173 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _reactRedux = __webpack_require__(8);
-
- var _applicationEditComponent = __webpack_require__(172);
-
- var _applicationEditComponent2 = _interopRequireDefault(_applicationEditComponent);
-
- var _actions = __webpack_require__(60);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- var mapStateToProps = function mapStateToProps(state, props) {
- var application = state.applications.getIn(['apps', props.appName]);
- if (application) {
- application = application.toJS();
- }
- return {
- application: application
- };
- };
-
- var Constainer = (0, _reactRedux.connect)(mapStateToProps, { fetchApplication: _actions.fetchApplication })(_applicationEditComponent2.default);
-
- exports.default = Constainer;
-
-/***/ },
-/* 174 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _reactRouter = __webpack_require__(25);
-
- 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"); } }
-
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
-
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { 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: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-
- var ClientStrategies = function (_Component) {
- _inherits(ClientStrategies, _Component);
-
- function ClientStrategies() {
- _classCallCheck(this, ClientStrategies);
-
- return _possibleConstructorReturn(this, (ClientStrategies.__proto__ || Object.getPrototypeOf(ClientStrategies)).apply(this, arguments));
- }
-
- _createClass(ClientStrategies, [{
- key: 'componentDidMount',
- value: function componentDidMount() {
- this.props.fetchAll();
- }
- }, {
- key: 'render',
- value: function render() {
- var applications = this.props.applications;
-
-
- if (!applications) {
- return _react2.default.createElement(
- 'div',
- null,
- 'loading...'
- );
- }
- return _react2.default.createElement(
- 'div',
- null,
- applications.map(function (item) {
- return _react2.default.createElement(
- _reactRouter.Link,
- { key: item.appName, to: '/applications/' + item.appName },
- 'Link: ',
- item.appName
- );
- })
- );
- }
- }]);
-
- return ClientStrategies;
- }(_react.Component);
-
- exports.default = ClientStrategies;
-
-/***/ },
-/* 175 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _reactRedux = __webpack_require__(8);
-
- var _applicationListComponent = __webpack_require__(174);
-
- var _applicationListComponent2 = _interopRequireDefault(_applicationListComponent);
-
- var _actions = __webpack_require__(60);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- var mapStateToProps = function mapStateToProps(state) {
- return { applications: state.applications.get('list').toJS() };
- };
-
- var Container = (0, _reactRedux.connect)(mapStateToProps, { fetchAll: _actions.fetchAll })(_applicationListComponent2.default);
-
- exports.default = Container;
-
-/***/ },
-/* 176 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _reactRedux = __webpack_require__(8);
-
- var _archiveListComponent = __webpack_require__(177);
-
- var _archiveListComponent2 = _interopRequireDefault(_archiveListComponent);
-
- var _archiveActions = __webpack_require__(108);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- var mapStateToProps = function mapStateToProps(state) {
- var archive = state.archive.get('list').toArray();
-
- return {
- archive: archive
- };
- };
-
- var ArchiveListContainer = (0, _reactRedux.connect)(mapStateToProps, { fetchArchive: _archiveActions.fetchArchive, revive: _archiveActions.revive })(_archiveListComponent2.default);
-
- exports.default = ArchiveListContainer;
-
-/***/ },
-/* 177 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _reactMdl = __webpack_require__(9);
-
- 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"); } }
-
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
-
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { 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: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-
- var ArchiveList = function (_Component) {
- _inherits(ArchiveList, _Component);
-
- function ArchiveList() {
- _classCallCheck(this, ArchiveList);
-
- return _possibleConstructorReturn(this, (ArchiveList.__proto__ || Object.getPrototypeOf(ArchiveList)).apply(this, arguments));
- }
-
- _createClass(ArchiveList, [{
- key: 'componentDidMount',
- value: function componentDidMount() {
- this.props.fetchArchive();
- }
- }, {
- key: 'render',
- value: function render() {
- var _props = this.props,
- archive = _props.archive,
- revive = _props.revive;
-
- return _react2.default.createElement(
- 'div',
- null,
- _react2.default.createElement(
- 'h6',
- null,
- 'Toggle Archive'
- ),
- _react2.default.createElement(
- _reactMdl.DataTable,
- {
- rows: archive,
- style: { width: '100%' } },
- _react2.default.createElement(
- _reactMdl.TableHeader,
- { style: { width: '25px' }, name: 'strategies', cellFormatter: function cellFormatter(name) {
- return _react2.default.createElement(_reactMdl.IconButton, { colored: true, name: 'undo', onClick: function onClick() {
- return revive(name);
- } });
- } },
- 'Revive'
- ),
- _react2.default.createElement(
- _reactMdl.TableHeader,
- { style: { width: '25px' }, name: 'enabled', cellFormatter: function cellFormatter(v) {
- return v ? 'Yes' : '-';
- } },
- 'Enabled'
- ),
- _react2.default.createElement(
- _reactMdl.TableHeader,
- { name: 'name' },
- 'Toggle name'
- ),
- _react2.default.createElement(
- _reactMdl.TableHeader,
- { numeric: true, name: 'createdAt' },
- 'Created'
- )
- )
- );
- }
- }]);
-
- return ArchiveList;
- }(_react.Component);
-
- exports.default = ArchiveList;
-
-/***/ },
-/* 178 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _reactMdl = __webpack_require__(9);
-
- 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"); } }
-
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
-
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { 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: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-
- var ClientStrategies = function (_Component) {
- _inherits(ClientStrategies, _Component);
-
- function ClientStrategies() {
- _classCallCheck(this, ClientStrategies);
-
- return _possibleConstructorReturn(this, (ClientStrategies.__proto__ || Object.getPrototypeOf(ClientStrategies)).apply(this, arguments));
- }
-
- _createClass(ClientStrategies, [{
- key: 'componentDidMount',
- value: function componentDidMount() {
- this.props.fetchClientStrategies();
- }
- }, {
- key: 'render',
- value: function render() {
- var source = this.props.clientStrategies
- // temp hack for ignoring dumb data
- .filter(function (item) {
- return item.strategies;
- }).map(function (item) {
- return {
- appName: item.appName,
- strategies: item.strategies && item.strategies.join(', ')
- };
- });
-
- return _react2.default.createElement(
- _reactMdl.DataTable,
- {
- style: { width: '100%' },
- rows: source,
- selectable: false
- },
- _react2.default.createElement(
- _reactMdl.TableHeader,
- { name: 'appName' },
- 'Application name'
- ),
- _react2.default.createElement(
- _reactMdl.TableHeader,
- { name: 'strategies' },
- 'Strategies'
- )
- );
- }
- }]);
-
- return ClientStrategies;
- }(_react.Component);
-
- exports.default = ClientStrategies;
-
-/***/ },
-/* 179 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _reactRedux = __webpack_require__(8);
-
- var _strategyComponent = __webpack_require__(178);
-
- var _strategyComponent2 = _interopRequireDefault(_strategyComponent);
-
- var _clientStrategyActions = __webpack_require__(109);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- var mapStateToProps = function mapStateToProps(state) {
- return { clientStrategies: state.clientStrategies.toJS() };
- };
-
- var StrategiesContainer = (0, _reactRedux.connect)(mapStateToProps, { fetchClientStrategies: _clientStrategyActions.fetchClientStrategies })(_strategyComponent2.default);
-
- exports.default = StrategiesContainer;
-
-/***/ },
-/* 180 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _reactMdl = __webpack_require__(9);
-
- 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"); } }
-
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
-
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { 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: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-
- var ErrorComponent = function (_React$Component) {
- _inherits(ErrorComponent, _React$Component);
-
- function ErrorComponent() {
- _classCallCheck(this, ErrorComponent);
-
- return _possibleConstructorReturn(this, (ErrorComponent.__proto__ || Object.getPrototypeOf(ErrorComponent)).apply(this, arguments));
- }
-
- _createClass(ErrorComponent, [{
- key: 'render',
- value: function render() {
- var _this2 = this;
-
- var showError = this.props.errors.length > 0;
- var error = showError ? this.props.errors[0] : undefined;
- var muteError = function muteError() {
- return _this2.props.muteError(error);
- };
- return _react2.default.createElement(_reactMdl.Snackbar, {
- action: 'Dismiss',
- active: showError,
- icon: 'question_answer',
- timeout: 10000,
- label: error,
- onClick: muteError,
- onTimeout: muteError,
- type: 'warning'
- });
- }
- }], [{
- key: 'propTypes',
- value: function propTypes() {
- return {
- errors: _react.PropTypes.array.isRequired,
- muteError: _react.PropTypes.func.isRequired
- };
- }
- }]);
-
- return ErrorComponent;
- }(_react2.default.Component);
-
- exports.default = ErrorComponent;
-
-/***/ },
-/* 181 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _reactRedux = __webpack_require__(8);
-
- var _errorComponent = __webpack_require__(180);
-
- var _errorComponent2 = _interopRequireDefault(_errorComponent);
-
- var _errorActions = __webpack_require__(110);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- var mapDispatchToProps = {
- muteError: _errorActions.muteError
- };
-
- var mapStateToProps = function mapStateToProps(state) {
- return {
- errors: state.error.get('list').toArray()
- };
- };
-
- exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(_errorComponent2.default);
-
-/***/ },
-/* 182 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _reactRouter = __webpack_require__(25);
-
- var _reactMdl = __webpack_require__(9);
-
- var _percent = __webpack_require__(122);
-
- var _percent2 = _interopRequireDefault(_percent);
-
- var _progress = __webpack_require__(105);
-
- var _progress2 = _interopRequireDefault(_progress);
-
- var _feature = __webpack_require__(113);
-
- var _feature2 = _interopRequireDefault(_feature);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- var Feature = function Feature(_ref) {
- var feature = _ref.feature,
- onFeatureClick = _ref.onFeatureClick,
- onFeatureRemove = _ref.onFeatureRemove,
- settings = _ref.settings,
- _ref$metricsLastHour = _ref.metricsLastHour,
- metricsLastHour = _ref$metricsLastHour === undefined ? { yes: 0, no: 0, isFallback: true } : _ref$metricsLastHour,
- _ref$metricsLastMinut = _ref.metricsLastMinute,
- metricsLastMinute = _ref$metricsLastMinut === undefined ? { yes: 0, no: 0, isFallback: true } : _ref$metricsLastMinut;
- var name = feature.name,
- description = feature.description,
- enabled = feature.enabled,
- strategies = feature.strategies;
- var _settings$showLastHou = settings.showLastHour,
- showLastHour = _settings$showLastHou === undefined ? false : _settings$showLastHou;
-
- var isStale = showLastHour ? metricsLastHour.isFallback : metricsLastMinute.isFallback;
-
- var percent = 1 * (showLastHour ? _percent2.default.calc(metricsLastHour.yes, metricsLastHour.yes + metricsLastHour.no, 0) : _percent2.default.calc(metricsLastMinute.yes, metricsLastMinute.yes + metricsLastMinute.no, 0));
- return _react2.default.createElement(
- 'li',
- { key: name, className: 'mdl-list__item' },
- _react2.default.createElement(
- 'span',
- { className: 'mdl-list__item-primary-content' },
- _react2.default.createElement(
- 'div',
- { style: { width: '40px', textAlign: 'center' } },
- isStale ? _react2.default.createElement(_reactMdl.Icon, { style: { width: '25px', marginTop: '4px', fontSize: '25px', color: '#ccc' }, name: 'report problem', title: 'No metrics avaiable' }) : _react2.default.createElement(
- 'div',
- null,
- _react2.default.createElement(_progress2.default, { strokeWidth: 15, percentage: percent, width: '50' })
- )
- ),
- '\xA0',
- _react2.default.createElement(
- 'span',
- { style: { display: 'inline-block', width: '45px' }, title: 'Toggle ' + name },
- _react2.default.createElement(_reactMdl.Switch, { title: 'test', key: 'left-actions', onChange: function onChange() {
- return onFeatureClick(feature);
- }, checked: enabled })
- ),
- _react2.default.createElement(
- _reactRouter.Link,
- { to: '/features/edit/' + name, className: _feature2.default.link },
- name,
- ' ',
- _react2.default.createElement(
- 'small',
- null,
- description && description.substring(0, 100) || ''
- )
- )
- ),
- _react2.default.createElement(
- 'span',
- { className: _feature2.default.iconList },
- strategies && strategies.map(function (s, i) {
- return _react2.default.createElement(
- _reactMdl.Chip,
- { className: _feature2.default.iconListItemChip, key: i },
- _react2.default.createElement(
- 'small',
- null,
- s.name
- )
- );
- }),
- _react2.default.createElement(
- _reactRouter.Link,
- { to: '/features/edit/' + name, title: 'Edit ' + name, className: _feature2.default.iconListItem },
- _react2.default.createElement(_reactMdl.IconButton, { name: 'edit' })
- ),
- _react2.default.createElement(
- _reactRouter.Link,
- { to: '/history/' + name, title: 'History htmlFor ' + name, className: _feature2.default.iconListItem },
- _react2.default.createElement(_reactMdl.IconButton, { name: 'history' })
- ),
- _react2.default.createElement(_reactMdl.IconButton, { name: 'delete', onClick: function onClick() {
- return onFeatureRemove(name);
- }, className: _feature2.default.iconListItem })
- )
- );
- };
-
- Feature.propTypes = {
- feature: _react.PropTypes.object,
- onFeatureClick: _react.PropTypes.func,
- onFeatureRemove: _react.PropTypes.func
- };
-
- exports.default = Feature;
-
-/***/ },
-/* 183 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _reactRedux = __webpack_require__(8);
-
- var _reactRouter = __webpack_require__(25);
-
- var _featureActions = __webpack_require__(29);
-
- var _inputHelpers = __webpack_require__(59);
-
- var _form = __webpack_require__(104);
-
- var _form2 = _interopRequireDefault(_form);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- var ID = 'add-feature-toggle';
- var mapStateToProps = (0, _inputHelpers.createMapper)({ id: ID });
- var prepare = function prepare(methods, dispatch) {
- methods.onSubmit = function (input) {
- return function (e) {
- e.preventDefault();
- (0, _featureActions.createFeatureToggles)(input)(dispatch).then(function () {
- return methods.clear();
- }).then(function () {
- return _reactRouter.hashHistory.push('/features');
- });
- };
- };
-
- methods.onCancel = function (evt) {
- evt.preventDefault();
- methods.clear();
- _reactRouter.hashHistory.push('/features');
- };
-
- methods.addStrategy = function (v) {
- methods.pushToList('strategies', v);
- };
-
- methods.updateStrategy = function (index, n) {
- methods.updateInList('strategies', index, n);
- };
-
- methods.removeStrategy = function (index) {
- methods.removeFromList('strategies', index);
- };
-
- methods.validateName = function (v) {
- var featureToggleName = v.target.value;
- (0, _featureActions.validateName)(featureToggleName).then(function () {
- return methods.setValue('nameError', undefined);
- }).catch(function (err) {
- return methods.setValue('nameError', err.message);
- });
- };
-
- return methods;
- };
- var actions = (0, _inputHelpers.createActions)({ id: ID, prepare: prepare });
-
- exports.default = (0, _reactRedux.connect)(mapStateToProps, actions)(_form2.default);
-
-/***/ },
-/* 184 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _reactRedux = __webpack_require__(8);
-
- var _reactRouter = __webpack_require__(25);
-
- var _featureActions = __webpack_require__(29);
-
- var _inputHelpers = __webpack_require__(59);
-
- var _form = __webpack_require__(104);
-
- var _form2 = _interopRequireDefault(_form);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- var ID = 'edit-feature-toggle';
- function getId(props) {
- return [ID, props.featureToggle.name];
- }
- // TODO: need to scope to the active featureToggle
- // best is to emulate the "input-storage"?
- var mapStateToProps = (0, _inputHelpers.createMapper)({
- id: getId,
- getDefault: function getDefault(state, ownProps) {
- return ownProps.featureToggle;
- },
- prepare: function prepare(props) {
- props.editmode = true;
- return props;
- }
- });
-
- var prepare = function prepare(methods, dispatch) {
- methods.onSubmit = function (input) {
- return function (e) {
- e.preventDefault();
- // TODO: should add error handling
- (0, _featureActions.requestUpdateFeatureToggle)(input)(dispatch).then(function () {
- return methods.clear();
- }).then(function () {
- return window.history.back();
- });
- };
- };
-
- methods.onCancel = function (evt) {
- evt.preventDefault();
- methods.clear();
- _reactRouter.hashHistory.push('/features');
- };
-
- methods.addStrategy = function (v) {
- methods.pushToList('strategies', v);
- };
-
- methods.removeStrategy = function (index) {
- methods.removeFromList('strategies', index);
- };
-
- methods.updateStrategy = function (index, n) {
- methods.updateInList('strategies', index, n);
- };
-
- methods.validateName = function () {};
-
- return methods;
- };
-
- var actions = (0, _inputHelpers.createActions)({
- id: getId,
- prepare: prepare
- });
-
- exports.default = (0, _reactRedux.connect)(mapStateToProps, actions)(_form2.default);
-
-/***/ },
-/* 185 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _reactMdl = __webpack_require__(9);
-
- 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"); } }
-
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
-
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { 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: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-
- var AddStrategy = function (_React$Component) {
- _inherits(AddStrategy, _React$Component);
-
- function AddStrategy() {
- var _ref;
-
- var _temp, _this, _ret;
-
- _classCallCheck(this, AddStrategy);
-
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
-
- return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = AddStrategy.__proto__ || Object.getPrototypeOf(AddStrategy)).call.apply(_ref, [this].concat(args))), _this), _this.addStrategy = function (strategyName) {
- var selectedStrategy = _this.props.strategies.find(function (s) {
- return s.name === strategyName;
- });
- var parameters = {};
- var keys = Object.keys(selectedStrategy.parametersTemplate || {});
- keys.forEach(function (prop) {
- parameters[prop] = '';
- });
-
- _this.props.addStrategy({
- name: selectedStrategy.name,
- parameters: parameters
- });
- }, _temp), _possibleConstructorReturn(_this, _ret);
- }
-
- _createClass(AddStrategy, [{
- key: 'stopPropagation',
- value: function stopPropagation(e) {
- e.stopPropagation();
- e.preventDefault();
- }
- }, {
- key: 'render',
- value: function render() {
- var _this2 = this;
-
- return _react2.default.createElement(
- 'div',
- { style: { position: 'relative', width: '25px', height: '25px', display: 'inline-block' } },
- _react2.default.createElement(_reactMdl.IconButton, { name: 'add', id: 'strategies-add', colored: true, title: 'Sort', onClick: this.stopPropagation }),
- _react2.default.createElement(
- _reactMdl.Menu,
- { target: 'strategies-add', valign: 'bottom', align: 'left', ripple: true, onClick: function onClick(e) {
- return _this2.setSort(e.target.getAttribute('data-target'));
- } },
- _react2.default.createElement(
- _reactMdl.MenuItem,
- { disabled: true },
- 'Add Strategy:'
- ),
- this.props.strategies.map(function (s) {
- return _react2.default.createElement(
- _reactMdl.MenuItem,
- { key: s.name, onClick: function onClick() {
- return _this2.addStrategy(s.name);
- } },
- s.name
- );
- })
- )
- );
- }
- }], [{
- key: 'propTypes',
- value: function propTypes() {
- return {
- strategies: _react.PropTypes.array.isRequired,
- addStrategy: _react.PropTypes.func.isRequired,
- fetchStrategies: _react.PropTypes.func.isRequired
- };
- }
- }]);
-
- return AddStrategy;
- }(_react2.default.Component);
-
- exports.default = AddStrategy;
-
-/***/ },
-/* 186 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _strategyConfigure = __webpack_require__(189);
-
- var _strategyConfigure2 = _interopRequireDefault(_strategyConfigure);
-
- 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"); } }
-
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
-
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { 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: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-
- var StrategiesList = function (_React$Component) {
- _inherits(StrategiesList, _React$Component);
-
- function StrategiesList() {
- _classCallCheck(this, StrategiesList);
-
- return _possibleConstructorReturn(this, (StrategiesList.__proto__ || Object.getPrototypeOf(StrategiesList)).apply(this, arguments));
- }
-
- _createClass(StrategiesList, [{
- key: 'render',
- value: function render() {
- var _this2 = this;
-
- var _props = this.props,
- strategies = _props.strategies,
- configuredStrategies = _props.configuredStrategies;
-
-
- if (!configuredStrategies || configuredStrategies.length === 0) {
- return _react2.default.createElement(
- 'i',
- { style: { color: 'red' } },
- 'No strategies added'
- );
- }
-
- var blocks = configuredStrategies.map(function (strat, i) {
- return _react2.default.createElement(_strategyConfigure2.default, {
- key: strat.name + '-' + i,
- strategy: strat,
- removeStrategy: _this2.props.removeStrategy.bind(null, i),
- updateStrategy: _this2.props.updateStrategy.bind(null, i),
- strategyDefinition: strategies.find(function (s) {
- return s.name === strat.name;
- }) });
- });
- return _react2.default.createElement(
- 'div',
- null,
- blocks
- );
- }
- }], [{
- key: 'propTypes',
- value: function propTypes() {
- return {
- strategies: _react.PropTypes.array.isRequired,
- configuredStrategies: _react.PropTypes.array.isRequired,
- updateStrategy: _react.PropTypes.func.isRequired,
- removeStrategy: _react.PropTypes.func.isRequired
- };
- }
- }]);
-
- return StrategiesList;
- }(_react2.default.Component);
-
- exports.default = StrategiesList;
-
-/***/ },
-/* 187 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _reactRedux = __webpack_require__(8);
-
- var _strategiesSection = __webpack_require__(188);
-
- var _strategiesSection2 = _interopRequireDefault(_strategiesSection);
-
- var _strategyActions = __webpack_require__(45);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- exports.default = (0, _reactRedux.connect)(function (state) {
- return {
- strategies: state.strategies.get('list').toArray()
- };
- }, { fetchStrategies: _strategyActions.fetchStrategies })(_strategiesSection2.default);
-
-/***/ },
-/* 188 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _strategiesList = __webpack_require__(186);
-
- var _strategiesList2 = _interopRequireDefault(_strategiesList);
-
- var _strategiesAdd = __webpack_require__(185);
-
- var _strategiesAdd2 = _interopRequireDefault(_strategiesAdd);
-
- 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"); } }
-
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
-
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { 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: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-
- var headerStyle = {
- marginBottom: '10px'
- };
-
- var StrategiesSection = function (_React$Component) {
- _inherits(StrategiesSection, _React$Component);
-
- function StrategiesSection() {
- _classCallCheck(this, StrategiesSection);
-
- return _possibleConstructorReturn(this, (StrategiesSection.__proto__ || Object.getPrototypeOf(StrategiesSection)).apply(this, arguments));
- }
-
- _createClass(StrategiesSection, [{
- key: 'componentWillMount',
- value: function componentWillMount() {
- this.props.fetchStrategies();
- }
- }, {
- key: 'render',
- value: function render() {
- if (!this.props.strategies || this.props.strategies.length === 0) {
- return _react2.default.createElement(
- 'i',
- null,
- 'Loding available strategies'
- );
- }
-
- return _react2.default.createElement(
- 'div',
- null,
- _react2.default.createElement(
- 'h5',
- { style: headerStyle },
- 'Activation strategies ',
- _react2.default.createElement(_strategiesAdd2.default, this.props),
- ' '
- ),
- _react2.default.createElement(_strategiesList2.default, this.props)
- );
- }
- }], [{
- key: 'propTypes',
- value: function propTypes() {
- return {
- strategies: _react.PropTypes.array.isRequired,
- addStrategy: _react.PropTypes.func.isRequired,
- removeStrategy: _react.PropTypes.func.isRequired,
- updateStrategy: _react.PropTypes.func.isRequired,
- fetchStrategies: _react.PropTypes.func.isRequired
- };
- }
- }]);
-
- return StrategiesSection;
- }(_react2.default.Component);
-
- exports.default = StrategiesSection;
-
-/***/ },
-/* 189 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _reactMdl = __webpack_require__(9);
-
- 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"); } }
-
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
-
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { 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: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-
- var StrategyConfigure = function (_React$Component) {
- _inherits(StrategyConfigure, _React$Component);
-
- function StrategyConfigure() {
- var _ref;
-
- var _temp, _this, _ret;
-
- _classCallCheck(this, StrategyConfigure);
-
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
-
- return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = StrategyConfigure.__proto__ || Object.getPrototypeOf(StrategyConfigure)).call.apply(_ref, [this].concat(args))), _this), _this.handleConfigChange = function (key, e) {
- var parameters = _this.props.strategy.parameters || {};
- parameters[key] = e.target.value;
-
- var updatedStrategy = Object.assign({}, _this.props.strategy, { parameters: parameters });
-
- _this.props.updateStrategy(updatedStrategy);
- }, _this.handleRemove = function (evt) {
- evt.preventDefault();
- _this.props.removeStrategy();
- }, _temp), _possibleConstructorReturn(_this, _ret);
- }
-
- _createClass(StrategyConfigure, [{
- key: 'renderInputFields',
- value: function renderInputFields(strategyDefinition) {
- var _this2 = this;
-
- if (strategyDefinition.parametersTemplate) {
- return Object.keys(strategyDefinition.parametersTemplate).map(function (field) {
- return _react2.default.createElement(_reactMdl.Textfield, {
- key: field,
- name: field,
- label: field,
- onChange: _this2.handleConfigChange.bind(_this2, field),
- value: _this2.props.strategy.parameters[field]
- });
- });
- }
- }
- }, {
- key: 'render',
- value: function render() {
- if (!this.props.strategyDefinition) {
- return _react2.default.createElement(
- 'div',
- null,
- _react2.default.createElement(
- 'h6',
- null,
- _react2.default.createElement(
- 'span',
- { style: { color: 'red' } },
- 'Strategy "',
- this.props.strategy.name,
- '" deleted'
- )
- ),
- _react2.default.createElement(_reactMdl.Button, { onClick: this.handleRemove, icon: 'remove', label: 'remove strategy', flat: true })
- );
- }
-
- var inputFields = this.renderInputFields(this.props.strategyDefinition) || [];
-
- return _react2.default.createElement(
- 'div',
- { style: { padding: '5px 15px', backgroundColor: '#f7f8ff', marginBottom: '10px' } },
- _react2.default.createElement(
- 'h6',
- null,
- _react2.default.createElement(
- 'strong',
- null,
- this.props.strategy.name,
- ' '
- ),
- '(',
- _react2.default.createElement(
- 'a',
- { style: { color: '#ff4081' }, onClick: this.handleRemove, href: '#remove-strat' },
- 'remove'
- ),
- ')'
- ),
- _react2.default.createElement(
- 'small',
- null,
- this.props.strategyDefinition.description
- ),
- _react2.default.createElement(
- 'div',
- null,
- inputFields
- )
- );
- }
- }], [{
- key: 'propTypes',
- value: function propTypes() {
- return {
- strategy: _react.PropTypes.object.isRequired,
- strategyDefinition: _react.PropTypes.object.isRequired,
- updateStrategy: _react.PropTypes.func.isRequired,
- removeStrategy: _react.PropTypes.func.isRequired
- };
- }
- }]);
-
- return StrategyConfigure;
- }(_react2.default.Component);
-
- exports.default = StrategyConfigure;
-
-/***/ },
-/* 190 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _featureListItemComponent = __webpack_require__(182);
-
- var _featureListItemComponent2 = _interopRequireDefault(_featureListItemComponent);
-
- var _reactRouter = __webpack_require__(25);
-
- var _reactMdl = __webpack_require__(9);
-
- var _feature = __webpack_require__(113);
-
- var _feature2 = _interopRequireDefault(_feature);
-
- 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"); } }
-
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
-
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { 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: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-
- var FeatureListComponent = function (_React$PureComponent) {
- _inherits(FeatureListComponent, _React$PureComponent);
-
- function FeatureListComponent() {
- _classCallCheck(this, FeatureListComponent);
-
- return _possibleConstructorReturn(this, (FeatureListComponent.__proto__ || Object.getPrototypeOf(FeatureListComponent)).apply(this, arguments));
- }
-
- _createClass(FeatureListComponent, [{
- key: 'componentDidMount',
- value: function componentDidMount() {
- var _this2 = this;
-
- this.props.fetchFeatureToggles();
- this.props.fetchFeatureMetrics();
- this.timer = setInterval(function () {
- _this2.props.fetchFeatureMetrics();
- }, 5000);
- }
- }, {
- key: 'componentWillUnmount',
- value: function componentWillUnmount() {
- clearInterval(this.timer);
- }
- }, {
- key: 'toggleMetrics',
- value: function toggleMetrics() {
- this.props.updateSetting('showLastHour', !this.props.settings.showLastHour);
- }
- }, {
- key: 'setFilter',
- value: function setFilter(v) {
- this.props.updateSetting('filter', typeof v === 'string' ? v.trim() : '');
- }
- }, {
- key: 'setSort',
- value: function setSort(v) {
- this.props.updateSetting('sort', typeof v === 'string' ? v.trim() : '');
- }
- }, {
- key: 'render',
- value: function render() {
- var _this3 = this;
-
- var _props = this.props,
- features = _props.features,
- onFeatureClick = _props.onFeatureClick,
- onFeatureRemove = _props.onFeatureRemove,
- featureMetrics = _props.featureMetrics,
- settings = _props.settings;
-
-
- return _react2.default.createElement(
- 'div',
- null,
- _react2.default.createElement(
- 'div',
- { className: _feature2.default.topList },
- _react2.default.createElement(
- _reactMdl.Chip,
- { onClick: function onClick() {
- return _this3.toggleMetrics();
- }, className: _feature2.default.topListItem0 },
- settings.showLastHour && _react2.default.createElement(
- _reactMdl.ChipContact,
- { className: 'mdl-color--teal mdl-color-text--white' },
- _react2.default.createElement(_reactMdl.Icon, { name: 'hourglass_full', style: { fontSize: '16px' } })
- ),
- '1 hour'
- ),
- '\xA0',
- _react2.default.createElement(
- _reactMdl.Chip,
- { onClick: function onClick() {
- return _this3.toggleMetrics();
- }, className: _feature2.default.topListItem0 },
- !settings.showLastHour && _react2.default.createElement(
- _reactMdl.ChipContact,
- { className: 'mdl-color--teal mdl-color-text--white' },
- _react2.default.createElement(_reactMdl.Icon, { name: 'hourglass_empty', style: { fontSize: '16px' } })
- ),
- '1 minute'
- ),
- _react2.default.createElement(
- 'div',
- { className: _feature2.default.topListItem2, style: { margin: '-10px 10px 0 10px' } },
- _react2.default.createElement(_reactMdl.Textfield, {
- floatingLabel: true,
- value: settings.filter,
- onChange: function onChange(e) {
- _this3.setFilter(e.target.value);
- },
- label: 'Filter toggles',
- style: { width: '100%' }
- })
- ),
- _react2.default.createElement(
- 'div',
- { style: { position: 'relative' }, className: _feature2.default.topListItem0 },
- _react2.default.createElement(_reactMdl.IconButton, { name: 'sort', id: 'demo-menu-top-right', colored: true, title: 'Sort' }),
- _react2.default.createElement(
- _reactMdl.Menu,
- { target: 'demo-menu-top-right', valign: 'bottom', align: 'right', ripple: true, onClick: function onClick(e) {
- return _this3.setSort(e.target.getAttribute('data-target'));
- } },
- _react2.default.createElement(
- _reactMdl.MenuItem,
- { disabled: true },
- 'Filter by:'
- ),
- _react2.default.createElement(
- _reactMdl.MenuItem,
- { disabled: !settings.sort || settings.sort === 'nosort', 'data-target': 'nosort' },
- 'Default'
- ),
- _react2.default.createElement(
- _reactMdl.MenuItem,
- { disabled: settings.sort === 'name', 'data-target': 'name' },
- 'Name'
- ),
- _react2.default.createElement(
- _reactMdl.MenuItem,
- { disabled: settings.sort === 'enabled', 'data-target': 'enabled' },
- 'Enabled'
- ),
- _react2.default.createElement(
- _reactMdl.MenuItem,
- { disabled: settings.sort === 'appName', 'data-target': 'appName' },
- 'Application name'
- ),
- _react2.default.createElement(
- _reactMdl.MenuItem,
- { disabled: settings.sort === 'created', 'data-target': 'created' },
- 'Created'
- ),
- _react2.default.createElement(
- _reactMdl.MenuItem,
- { disabled: settings.sort === 'strategies', 'data-target': 'strategies' },
- 'Strategies'
- ),
- _react2.default.createElement(
- _reactMdl.MenuItem,
- { disabled: settings.sort === 'metrics', 'data-target': 'metrics' },
- 'Metrics'
- )
- )
- ),
- _react2.default.createElement(
- _reactRouter.Link,
- { to: '/features/create', className: _feature2.default.topListItem0 },
- _react2.default.createElement(
- _reactMdl.FABButton,
- { ripple: true, component: 'span', mini: true },
- _react2.default.createElement(_reactMdl.Icon, { name: 'add' })
- )
- )
- ),
- _react2.default.createElement(
- 'ul',
- { className: 'demo-list-item mdl-list' },
- features.map(function (feature, i) {
- return _react2.default.createElement(_featureListItemComponent2.default, { key: i,
- settings: settings,
- metricsLastHour: featureMetrics.lastHour[feature.name],
- metricsLastMinute: featureMetrics.lastMinute[feature.name],
- feature: feature,
- onFeatureClick: onFeatureClick,
- onFeatureRemove: onFeatureRemove });
- })
- ),
- _react2.default.createElement('hr', null),
- _react2.default.createElement(
- _reactRouter.Link,
- { to: '/features/create', className: _feature2.default.topListItem0 },
- _react2.default.createElement(
- _reactMdl.FABButton,
- { ripple: true, component: 'span', mini: true },
- _react2.default.createElement(_reactMdl.Icon, { name: 'add' })
- )
- )
- );
- }
- }], [{
- key: 'propTypes',
- value: function propTypes() {
- return {
- onFeatureClick: _react.PropTypes.func.isRequired,
- onFeatureRemove: _react.PropTypes.func.isRequired,
- features: _react.PropTypes.array.isRequired,
- featureMetrics: _react.PropTypes.object.isRequired,
- fetchFeatureToggles: _react.PropTypes.func.isRequired,
- fetchFeatureMetrics: _react.PropTypes.func.isRequired
- };
- }
- }]);
-
- return FeatureListComponent;
- }(_react2.default.PureComponent);
-
- FeatureListComponent.contextTypes = {
- router: _react2.default.PropTypes.object
- };
- exports.default = FeatureListComponent;
-
-/***/ },
-/* 191 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _reactRedux = __webpack_require__(8);
-
- var _featureActions = __webpack_require__(29);
-
- var _featureMetricsActions = __webpack_require__(61);
-
- var _actions = __webpack_require__(62);
-
- var _listComponent = __webpack_require__(190);
-
- var _listComponent2 = _interopRequireDefault(_listComponent);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- var mapStateToProps = function mapStateToProps(state) {
- var featureMetrics = state.featureMetrics.toJS();
- var settings = state.settings.toJS().feature || {};
- var features = state.features.toJS();
- if (settings.filter) {
- features = features.filter(function (feature) {
- return feature.name.indexOf(settings.filter) > -1 || feature.description.indexOf(settings.filter) > -1 || feature.strategies.some(function (s) {
- return s && s.name && s.name.indexOf(settings.filter) > -1;
- });
- });
- }
-
- if (settings.sort) {
- if (settings.sort === 'enabled') {
- features = features.sort(function (a, b) {
- return (
- // eslint-disable-next-line
- a.enabled === b.enabled ? 0 : a.enabled ? -1 : 1
- );
- });
- } else if (settings.sort === 'appName') {
- // AppName
- // features = features.sort((a, b) => {
- // if (a.appName < b.appName) { return -1; }
- // if (a.appName > b.appName) { return 1; }
- // return 0;
- // });
- } else if (settings.sort === 'created') {
- features = features.sort(function (a, b) {
- return new Date(a.createdAt) > new Date(b.createdAt) ? -1 : 1;
- });
- } else if (settings.sort === 'name') {
- features = features.sort(function (a, b) {
- if (a.name < b.name) {
- return -1;
- }
- if (a.name > b.name) {
- return 1;
- }
- return 0;
- });
- } else if (settings.sort === 'strategies') {
- features = features.sort(function (a, b) {
- return a.strategies.length > b.strategies.length ? -1 : 1;
- });
- } else if (settings.sort === 'metrics') {
- (function () {
- var target = settings.showLastHour ? featureMetrics.lastHour : featureMetrics.lastMinute;
-
- features = features.sort(function (a, b) {
- if (!target[a.name]) {
- return 1;
- }
- if (!target[b.name]) {
- return -1;
- }
- if (target[a.name].yes > target[b.name].yes) {
- return -1;
- }
- return 1;
- });
- })();
- }
- }
-
- return {
- features: features,
- featureMetrics: featureMetrics,
- settings: settings
- };
- };
-
- var mapDispatchToProps = {
- onFeatureClick: _featureActions.toggleFeature,
- onFeatureRemove: _featureActions.removeFeatureToggle,
- fetchFeatureToggles: _featureActions.fetchFeatureToggles,
- fetchFeatureMetrics: _featureMetricsActions.fetchFeatureMetrics,
- updateSetting: (0, _actions.updateSettingForGroup)('feature')
- };
-
- var FeatureListContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(_listComponent2.default);
-
- exports.default = FeatureListContainer;
-
-/***/ },
-/* 192 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _reactMdl = __webpack_require__(9);
-
- var _reactRouter = __webpack_require__(25);
-
- var _percent = __webpack_require__(122);
-
- var _percent2 = _interopRequireDefault(_percent);
-
- var _progress = __webpack_require__(105);
-
- var _progress2 = _interopRequireDefault(_progress);
-
- var _reactRedux = __webpack_require__(8);
-
- var _formEditContainer = __webpack_require__(184);
-
- var _formEditContainer2 = _interopRequireDefault(_formEditContainer);
-
- var _featureActions = __webpack_require__(29);
-
- var _featureMetricsActions = __webpack_require__(61);
-
- 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"); } }
-
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
-
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { 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: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-
- var EditFeatureToggleWrapper = function (_React$Component) {
- _inherits(EditFeatureToggleWrapper, _React$Component);
-
- function EditFeatureToggleWrapper() {
- _classCallCheck(this, EditFeatureToggleWrapper);
-
- return _possibleConstructorReturn(this, (EditFeatureToggleWrapper.__proto__ || Object.getPrototypeOf(EditFeatureToggleWrapper)).apply(this, arguments));
- }
-
- _createClass(EditFeatureToggleWrapper, [{
- key: 'componentWillMount',
- value: function componentWillMount() {
- var _this2 = this;
-
- if (this.props.features.length === 0) {
- this.props.fetchFeatureToggles();
- }
- this.props.fetchSeenApps();
- this.props.fetchFeatureMetrics();
- this.timer = setInterval(function () {
- _this2.props.fetchSeenApps();
- _this2.props.fetchFeatureMetrics();
- }, 5000);
- }
- }, {
- key: 'componentWillUnmount',
- value: function componentWillUnmount() {
- clearInterval(this.timer);
- }
- }, {
- key: 'render',
- value: function render() {
- var _props = this.props,
- toggleFeature = _props.toggleFeature,
- features = _props.features,
- featureToggleName = _props.featureToggleName,
- _props$metrics = _props.metrics,
- metrics = _props$metrics === undefined ? {} : _props$metrics;
- var _metrics$lastHour = metrics.lastHour,
- lastHour = _metrics$lastHour === undefined ? { yes: 0, no: 0, isFallback: true } : _metrics$lastHour,
- _metrics$lastMinute = metrics.lastMinute,
- lastMinute = _metrics$lastMinute === undefined ? { yes: 0, no: 0, isFallback: true } : _metrics$lastMinute,
- _metrics$seenApps = metrics.seenApps,
- seenApps = _metrics$seenApps === undefined ? [] : _metrics$seenApps;
-
-
- var lastHourPercent = 1 * _percent2.default.calc(lastHour.yes, lastHour.yes + lastHour.no, 0);
- var lastMinutePercent = 1 * _percent2.default.calc(lastMinute.yes, lastMinute.yes + lastMinute.no, 0);
-
- var featureToggle = features.find(function (toggle) {
- return toggle.name === featureToggleName;
- });
-
- if (!featureToggle) {
- if (features.length === 0) {
- return _react2.default.createElement(
- 'span',
- null,
- 'Loading'
- );
- }
- return _react2.default.createElement(
- 'span',
- null,
- 'Could not find ',
- this.props.featureToggleName
- );
- }
-
- return _react2.default.createElement(
- 'div',
- null,
- _react2.default.createElement(
- 'h4',
- null,
- featureToggle.name,
- ' ',
- _react2.default.createElement(
- 'small',
- null,
- featureToggle.enabled ? 'is enabled' : 'is disabled'
- )
- ),
- _react2.default.createElement('hr', null),
- _react2.default.createElement(
- 'div',
- { style: { maxWidth: '200px' } },
- _react2.default.createElement(
- _reactMdl.Switch,
- { style: { cursor: 'pointer' }, onChange: function onChange() {
- return toggleFeature(featureToggle);
- }, checked: featureToggle.enabled },
- 'Toggle ',
- featureToggle.name
- )
- ),
- _react2.default.createElement('hr', null),
- _react2.default.createElement(
- _reactMdl.Grid,
- { style: { textAlign: 'center' } },
- _react2.default.createElement(
- _reactMdl.Cell,
- { col: 3 },
- lastMinute.isFallback ? _react2.default.createElement(_reactMdl.Icon, { style: { width: '100px', height: '100px', fontSize: '100px', color: '#ccc' }, name: 'report problem', title: 'No metrics avaiable' }) : _react2.default.createElement(
- 'div',
- null,
- _react2.default.createElement(_progress2.default, { strokeWidth: 10, percentage: lastMinutePercent, width: '50' })
- ),
- _react2.default.createElement(
- 'p',
- null,
- _react2.default.createElement(
- 'strong',
- null,
- 'Last minute'
- ),
- _react2.default.createElement('br', null),
- ' Yes ',
- lastMinute.yes,
- ', No: ',
- lastMinute.no
- )
- ),
- _react2.default.createElement(
- _reactMdl.Cell,
- { col: 3 },
- lastHour.isFallback ? _react2.default.createElement(_reactMdl.Icon, { style: { width: '100px', height: '100px', fontSize: '100px', color: '#ccc' }, name: 'report problem', title: 'No metrics avaiable' }) : _react2.default.createElement(
- 'div',
- null,
- _react2.default.createElement(_progress2.default, { strokeWidth: 10, percentage: lastHourPercent, width: '50' })
- ),
- _react2.default.createElement(
- 'p',
- null,
- _react2.default.createElement(
- 'strong',
- null,
- 'Last hour'
- ),
- _react2.default.createElement('br', null),
- ' Yes ',
- lastHour.yes,
- ', No: ',
- lastHour.no
- )
- ),
- _react2.default.createElement(
- _reactMdl.Cell,
- { col: 3 },
- seenApps.length > 0 ? _react2.default.createElement(
- 'div',
- null,
- _react2.default.createElement(
- 'strong',
- null,
- 'Seen in applications:'
- )
- ) : _react2.default.createElement(
- 'div',
- null,
- _react2.default.createElement(_reactMdl.Icon, { style: { width: '100px', height: '100px', fontSize: '100px', color: '#ccc' }, name: 'report problem', title: 'Not used in a app in the last hour' }),
- _react2.default.createElement(
- 'div',
- null,
- _react2.default.createElement(
- 'small',
- null,
- _react2.default.createElement(
- 'strong',
- null,
- 'Not used in a app in the last hour.'
- ),
- ' This might be due to your client implementation is not reporting usage.'
- )
- )
- ),
- seenApps.length > 0 && seenApps.map(function (appName) {
- return _react2.default.createElement(
- _reactRouter.Link,
- { key: appName, to: '/applications/' + appName },
- appName
- );
- }),
- _react2.default.createElement(
- 'p',
- null,
- 'add instances count?'
- )
- ),
- _react2.default.createElement(
- _reactMdl.Cell,
- { col: 3 },
- _react2.default.createElement(
- 'p',
- null,
- 'add history'
- )
- )
- ),
- _react2.default.createElement('hr', null),
- _react2.default.createElement(
- 'h4',
- null,
- 'Edit'
- ),
- _react2.default.createElement(_formEditContainer2.default, { featureToggle: featureToggle })
- );
- }
- }], [{
- key: 'propTypes',
- value: function propTypes() {
- return {
- featureToggleName: _react.PropTypes.string.isRequired,
- features: _react.PropTypes.array.isRequired,
- fetchFeatureToggles: _react.PropTypes.array.isRequired
- };
- }
- }]);
-
- return EditFeatureToggleWrapper;
- }(_react2.default.Component);
-
- function getMetricsForToggle(state, toggleName) {
- if (!toggleName) {
- return;
- }
- var result = {};
-
- if (state.featureMetrics.hasIn(['seenApps', toggleName])) {
- result.seenApps = state.featureMetrics.getIn(['seenApps', toggleName]);
- }
- if (state.featureMetrics.hasIn(['lastHour', toggleName])) {
- result.lastHour = state.featureMetrics.getIn(['lastHour', toggleName]);
- result.lastMinute = state.featureMetrics.getIn(['lastMinute', toggleName]);
- }
- return result;
- }
-
- exports.default = (0, _reactRedux.connect)(function (state, props) {
- return {
- features: state.features.toJS(),
- metrics: getMetricsForToggle(state, props.featureToggleName)
- };
- }, {
- fetchFeatureMetrics: _featureMetricsActions.fetchFeatureMetrics,
- fetchFeatureToggles: _featureActions.fetchFeatureToggles,
- toggleFeature: _featureActions.toggleFeature,
- fetchSeenApps: _featureMetricsActions.fetchSeenApps
- })(EditFeatureToggleWrapper);
-
-/***/ },
-/* 193 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _historyListContainer = __webpack_require__(106);
-
- var _historyListContainer2 = _interopRequireDefault(_historyListContainer);
-
- 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"); } }
-
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
-
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { 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: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-
- var History = function (_PureComponent) {
- _inherits(History, _PureComponent);
-
- function History() {
- _classCallCheck(this, History);
-
- return _possibleConstructorReturn(this, (History.__proto__ || Object.getPrototypeOf(History)).apply(this, arguments));
- }
-
- _createClass(History, [{
- key: 'componentDidMount',
- value: function componentDidMount() {
- this.props.fetchHistory();
- }
- }, {
- key: 'toggleShowDiff',
- value: function toggleShowDiff() {
- this.setState({ showData: !this.state.showData });
- }
- }, {
- key: 'render',
- value: function render() {
- var history = this.props.history;
-
- if (history.length < 0) {
- return;
- }
-
- return _react2.default.createElement(
- 'div',
- null,
- _react2.default.createElement(
- 'h5',
- null,
- 'Last 100 changes'
- ),
- _react2.default.createElement(_historyListContainer2.default, { history: history })
- );
- }
- }]);
-
- return History;
- }(_react.PureComponent);
-
- exports.default = History;
-
-/***/ },
-/* 194 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _reactRedux = __webpack_require__(8);
-
- var _historyComponent = __webpack_require__(193);
-
- var _historyComponent2 = _interopRequireDefault(_historyComponent);
-
- var _historyActions = __webpack_require__(111);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- var mapStateToProps = function mapStateToProps(state) {
- var history = state.history.get('list').toArray();
- return {
- history: history
- };
- };
-
- var HistoryListContainer = (0, _reactRedux.connect)(mapStateToProps, { fetchHistory: _historyActions.fetchHistory })(_historyComponent2.default);
-
- exports.default = HistoryListContainer;
-
-/***/ },
-/* 195 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _reactMdl = __webpack_require__(9);
-
- var _history = __webpack_require__(65);
-
- var _history2 = _interopRequireDefault(_history);
-
- 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"); } }
-
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
-
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { 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: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-
- var DIFF_PREFIXES = {
- A: ' ',
- E: ' ',
- D: '-',
- N: '+'
- };
-
- var SPADEN_CLASS = {
- A: _history2.default.blue, // array edited
- E: _history2.default.blue, // edited
- D: _history2.default.negative, // deleted
- N: _history2.default.positive };
-
- function getIcon(type) {
- switch (type) {
- case 'feature-updated':
- return 'autorenew';
- case 'feature-created':
- return 'add';
- case 'feature-deleted':
- return 'remove';
- case 'feature-archived':
- return 'archived';
- default:
- return 'star';
- }
- }
-
- function buildItemDiff(diff, key) {
- var change = void 0;
- if (diff.lhs !== undefined) {
- change = _react2.default.createElement(
- 'div',
- null,
- _react2.default.createElement(
- 'div',
- { className: SPADEN_CLASS.D },
- '- ',
- key,
- ': ',
- JSON.stringify(diff.lhs)
- )
- );
- } else if (diff.rhs !== undefined) {
- change = _react2.default.createElement(
- 'div',
- null,
- _react2.default.createElement(
- 'div',
- { className: SPADEN_CLASS.N },
- '+ ',
- key,
- ': ',
- JSON.stringify(diff.rhs)
- )
- );
- }
-
- return change;
- }
-
- function buildDiff(diff, idx) {
- var change = void 0;
- var key = diff.path.join('.');
-
- if (diff.item) {
- change = buildItemDiff(diff.item, key);
- } else if (diff.lhs !== undefined && diff.rhs !== undefined) {
- change = _react2.default.createElement(
- 'div',
- null,
- _react2.default.createElement(
- 'div',
- { className: SPADEN_CLASS.D },
- '- ',
- key,
- ': ',
- JSON.stringify(diff.lhs)
- ),
- _react2.default.createElement(
- 'div',
- { className: SPADEN_CLASS.N },
- '+ ',
- key,
- ': ',
- JSON.stringify(diff.rhs)
- )
- );
- } else {
- var spadenClass = SPADEN_CLASS[diff.kind];
- var prefix = DIFF_PREFIXES[diff.kind];
-
- change = _react2.default.createElement(
- 'div',
- { className: spadenClass },
- prefix,
- ' ',
- key,
- ': ',
- JSON.stringify(diff.rhs || diff.item)
- );
- }
-
- return _react2.default.createElement(
- 'div',
- { key: idx },
- change
- );
- }
-
- var HistoryItem = function (_PureComponent) {
- _inherits(HistoryItem, _PureComponent);
-
- function HistoryItem() {
- _classCallCheck(this, HistoryItem);
-
- return _possibleConstructorReturn(this, (HistoryItem.__proto__ || Object.getPrototypeOf(HistoryItem)).apply(this, arguments));
- }
-
- _createClass(HistoryItem, [{
- key: 'renderEventDiff',
- value: function renderEventDiff(logEntry) {
- var changes = void 0;
-
- if (logEntry.diffs) {
- changes = logEntry.diffs.map(buildDiff);
- } else {
- // Just show the data if there is no diff yet.
- changes = _react2.default.createElement(
- 'div',
- { className: SPADEN_CLASS.N },
- JSON.stringify(logEntry.data, null, 2)
- );
- }
-
- return _react2.default.createElement(
- 'code',
- { className: 'smalltext man' },
- changes.length === 0 ? '(no changes)' : changes
- );
- }
- }, {
- key: 'render',
- value: function render() {
- var _props$entry = this.props.entry,
- createdBy = _props$entry.createdBy,
- id = _props$entry.id,
- type = _props$entry.type;
-
-
- var createdAt = new Date(this.props.entry.createdAt).toLocaleString('nb-NO');
- var icon = getIcon(type);
-
- var data = this.renderEventDiff(this.props.entry);
-
- return _react2.default.createElement(
- 'div',
- { className: _history2.default['history-item'] },
- _react2.default.createElement(
- 'dl',
- null,
- _react2.default.createElement(
- 'dt',
- null,
- 'Id:'
- ),
- _react2.default.createElement(
- 'dd',
- null,
- id
- ),
- _react2.default.createElement(
- 'dt',
- null,
- 'Type:'
- ),
- _react2.default.createElement(
- 'dd',
- null,
- _react2.default.createElement(_reactMdl.Icon, { name: icon, title: type, style: { fontSize: '1.6rem' } }),
- _react2.default.createElement(
- 'span',
- null,
- ' ',
- type
- )
- ),
- _react2.default.createElement(
- 'dt',
- null,
- 'Timestamp:'
- ),
- _react2.default.createElement(
- 'dd',
- null,
- createdAt
- ),
- _react2.default.createElement(
- 'dt',
- null,
- 'Username:'
- ),
- _react2.default.createElement(
- 'dd',
- null,
- createdBy
- ),
- _react2.default.createElement(
- 'dt',
- null,
- 'Diff'
- ),
- _react2.default.createElement(
- 'dd',
- null,
- data
- )
- )
- );
- }
- }], [{
- key: 'propTypes',
- value: function propTypes() {
- return {
- entry: _react.PropTypes.object
- };
- }
- }]);
-
- return HistoryItem;
- }(_react.PureComponent);
-
- exports.default = HistoryItem;
-
-/***/ },
-/* 196 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _history = __webpack_require__(65);
-
- var _history2 = _interopRequireDefault(_history);
-
- 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"); } }
-
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
-
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { 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: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-
- var HistoryItem = function (_PureComponent) {
- _inherits(HistoryItem, _PureComponent);
-
- function HistoryItem() {
- _classCallCheck(this, HistoryItem);
-
- return _possibleConstructorReturn(this, (HistoryItem.__proto__ || Object.getPrototypeOf(HistoryItem)).apply(this, arguments));
- }
-
- _createClass(HistoryItem, [{
- key: 'render',
- value: function render() {
- var localEventData = JSON.parse(JSON.stringify(this.props.entry));
- delete localEventData.description;
- delete localEventData.name;
- delete localEventData.diffs;
-
- var prettyPrinted = JSON.stringify(localEventData, null, 2);
-
- return _react2.default.createElement(
- 'div',
- { className: _history2.default['history-item'] },
- _react2.default.createElement(
- 'div',
- null,
- _react2.default.createElement(
- 'code',
- { className: 'JSON smalltext man' },
- prettyPrinted
- )
- )
- );
- }
- }], [{
- key: 'propTypes',
- value: function propTypes() {
- return {
- entry: _react.PropTypes.object
- };
- }
- }]);
-
- return HistoryItem;
- }(_react.PureComponent);
-
- exports.default = HistoryItem;
-
-/***/ },
-/* 197 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _historyItemDiff = __webpack_require__(195);
-
- var _historyItemDiff2 = _interopRequireDefault(_historyItemDiff);
-
- var _historyItemJson = __webpack_require__(196);
-
- var _historyItemJson2 = _interopRequireDefault(_historyItemJson);
-
- var _reactMdl = __webpack_require__(9);
-
- var _history = __webpack_require__(65);
-
- var _history2 = _interopRequireDefault(_history);
-
- 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"); } }
-
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
-
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { 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: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-
- var HistoryList = function (_Component) {
- _inherits(HistoryList, _Component);
-
- function HistoryList() {
- _classCallCheck(this, HistoryList);
-
- return _possibleConstructorReturn(this, (HistoryList.__proto__ || Object.getPrototypeOf(HistoryList)).apply(this, arguments));
- }
-
- _createClass(HistoryList, [{
- key: 'toggleShowDiff',
- value: function toggleShowDiff() {
- this.props.updateSetting('showData', !this.props.settings.showData);
- }
- }, {
- key: 'render',
- value: function render() {
- var showData = this.props.settings.showData;
- var history = this.props.history;
-
- if (!history || history.length < 0) {
- return null;
- }
-
- var entries = void 0;
-
- if (showData) {
- entries = history.map(function (entry) {
- return _react2.default.createElement(_historyItemJson2.default, { key: 'log' + entry.id, entry: entry });
- });
- } else {
- entries = history.map(function (entry) {
- return _react2.default.createElement(_historyItemDiff2.default, { key: 'log' + entry.id, entry: entry });
- });
- }
-
- return _react2.default.createElement(
- 'div',
- { className: _history2.default.history },
- _react2.default.createElement(
- _reactMdl.Switch,
- { checked: showData, onChange: this.toggleShowDiff.bind(this) },
- 'Show full events'
- ),
- entries
- );
- }
- }]);
-
- return HistoryList;
- }(_react.Component);
-
- exports.default = HistoryList;
-
-/***/ },
-/* 198 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _historyListContainer = __webpack_require__(106);
-
- var _historyListContainer2 = _interopRequireDefault(_historyListContainer);
-
- var _historyApi = __webpack_require__(107);
-
- 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"); } }
-
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
-
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { 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: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-
- var HistoryListToggle = function (_Component) {
- _inherits(HistoryListToggle, _Component);
-
- function HistoryListToggle(props) {
- _classCallCheck(this, HistoryListToggle);
-
- var _this = _possibleConstructorReturn(this, (HistoryListToggle.__proto__ || Object.getPrototypeOf(HistoryListToggle)).call(this, props));
-
- _this.state = {
- fetching: true,
- history: undefined
- };
- return _this;
- }
-
- _createClass(HistoryListToggle, [{
- key: 'componentDidMount',
- value: function componentDidMount() {
- var _this2 = this;
-
- (0, _historyApi.fetchHistoryForToggle)(this.props.toggleName).then(function (res) {
- return _this2.setState({ history: res, fetching: false });
- });
- }
- }, {
- key: 'render',
- value: function render() {
- if (this.state.fetching) {
- return _react2.default.createElement(
- 'span',
- null,
- 'fetching..'
- );
- }
-
- return _react2.default.createElement(
- 'div',
- null,
- _react2.default.createElement(
- 'h5',
- null,
- 'Showing history for toggle: ',
- _react2.default.createElement(
- 'strong',
- null,
- this.props.toggleName
- )
- ),
- _react2.default.createElement(_historyListContainer2.default, { history: this.state.history })
- );
- }
- }], [{
- key: 'propTypes',
- value: function propTypes() {
- return {
- toggleName: _react.PropTypes.string.isRequired
- };
- }
- }]);
-
- return HistoryListToggle;
- }(_react.Component);
-
- exports.default = HistoryListToggle;
-
-/***/ },
-/* 199 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _reactRedux = __webpack_require__(8);
-
- var _inputHelpers = __webpack_require__(59);
-
- var _strategyActions = __webpack_require__(45);
-
- var _addStrategy = __webpack_require__(200);
-
- var _addStrategy2 = _interopRequireDefault(_addStrategy);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- var ID = 'add-strategy';
-
- var prepare = function prepare(methods, dispatch) {
- methods.onSubmit = function (input) {
- return function (e) {
- e.preventDefault();
-
- var parametersTemplate = {};
- Object.keys(input).forEach(function (key) {
- if (key.startsWith(_addStrategy.PARAM_PREFIX)) {
- parametersTemplate[input[key]] = 'string';
- }
- });
- input.parametersTemplate = parametersTemplate;
-
- (0, _strategyActions.createStrategy)(input)(dispatch).then(function () {
- return methods.clear();
- })
- // somewhat quickfix / hacky to go back..
- .then(function () {
- return window.history.back();
- });
- };
- };
-
- methods.onCancel = function (e) {
- e.preventDefault();
- methods.clear();
- // somewhat quickfix / hacky to go back..
- window.history.back();
- };
-
- return methods;
- };
-
- var actions = (0, _inputHelpers.createActions)({
- id: ID,
- prepare: prepare
- });
-
- exports.default = (0, _reactRedux.connect)((0, _inputHelpers.createMapper)({ id: ID }), actions)(_addStrategy2.default);
-
-/***/ },
-/* 200 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.PARAM_PREFIX = undefined;
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _reactMdl = __webpack_require__(9);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- var trim = function trim(value) {
- if (value && value.trim) {
- return value.trim();
- } else {
- return value;
- }
- };
-
- function gerArrayWithEntries(num) {
- return Array.from(Array(num));
- }
- var PARAM_PREFIX = exports.PARAM_PREFIX = 'param_';
-
- var genParams = function genParams(input) {
- var num = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
- var setValue = arguments[2];
- return _react2.default.createElement(
- 'div',
- null,
- gerArrayWithEntries(num).map(function (v, i) {
- var key = '' + PARAM_PREFIX + (i + 1);
- return _react2.default.createElement(_reactMdl.Textfield, {
- label: 'Parameter name ' + (i + 1),
- name: key, key: key,
- onChange: function onChange(_ref) {
- var target = _ref.target;
- return setValue(key, target.value);
- },
- value: input[key] });
- })
- );
- };
-
- var AddStrategy = function AddStrategy(_ref2) {
- var input = _ref2.input,
- setValue = _ref2.setValue,
- incValue = _ref2.incValue,
- onCancel = _ref2.onCancel,
- onSubmit = _ref2.onSubmit;
- return _react2.default.createElement(
- 'form',
- { onSubmit: onSubmit(input) },
- _react2.default.createElement(
- 'section',
- null,
- _react2.default.createElement(_reactMdl.Textfield, { label: 'Strategy name',
- name: 'name', required: true,
- pattern: '^[0-9a-zA-Z\\.\\-]+$',
- onChange: function onChange(_ref3) {
- var target = _ref3.target;
- return setValue('name', trim(target.value));
- },
- value: input.name
- }),
- _react2.default.createElement('br', null),
- _react2.default.createElement(_reactMdl.Textfield, {
- rows: 2,
- label: 'Description',
- name: 'description',
- onChange: function onChange(_ref4) {
- var target = _ref4.target;
- return setValue('description', target.value);
- },
- value: input.description
- })
- ),
- _react2.default.createElement(
- 'section',
- null,
- genParams(input, input._params, setValue),
- _react2.default.createElement(_reactMdl.IconButton, { name: 'add', title: 'Add parameter', onClick: function onClick(e) {
- e.preventDefault();
- incValue('_params');
- } })
- ),
- _react2.default.createElement('br', null),
- _react2.default.createElement('hr', null),
- _react2.default.createElement(
- 'section',
- null,
- _react2.default.createElement(
- _reactMdl.Button,
- { type: 'submit', raised: true, primary: true },
- 'Create'
- ),
- '\xA0',
- _react2.default.createElement(
- _reactMdl.Button,
- { type: 'cancel', raised: true, onClick: onCancel },
- 'Cancel'
- )
- )
- );
- };
-
- AddStrategy.propTypes = {
- input: _react.PropTypes.object,
- setValue: _react.PropTypes.func,
- incValue: _react.PropTypes.func,
- clear: _react.PropTypes.func,
- onCancel: _react.PropTypes.func,
- onSubmit: _react.PropTypes.func
- };
-
- exports.default = AddStrategy;
-
-/***/ },
-/* 201 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _reactMdl = __webpack_require__(9);
-
- var _strategies = __webpack_require__(245);
-
- var _strategies2 = _interopRequireDefault(_strategies);
-
- 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"); } }
-
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
-
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { 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: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-
- var StrategiesListComponent = function (_Component) {
- _inherits(StrategiesListComponent, _Component);
-
- function StrategiesListComponent() {
- _classCallCheck(this, StrategiesListComponent);
-
- return _possibleConstructorReturn(this, (StrategiesListComponent.__proto__ || Object.getPrototypeOf(StrategiesListComponent)).apply(this, arguments));
- }
-
- _createClass(StrategiesListComponent, [{
- key: 'componentDidMount',
- value: function componentDidMount() {
- this.props.fetchStrategies();
- }
- }, {
- key: 'getParameterMap',
- value: function getParameterMap(_ref) {
- var parametersTemplate = _ref.parametersTemplate;
-
- return Object.keys(parametersTemplate || {}).map(function (k) {
- return _react2.default.createElement(
- _reactMdl.Chip,
- { key: k },
- _react2.default.createElement(
- 'small',
- null,
- k
- )
- );
- });
- }
- }, {
- key: 'render',
- value: function render() {
- var _this2 = this;
-
- var _props = this.props,
- strategies = _props.strategies,
- removeStrategy = _props.removeStrategy;
-
-
- return _react2.default.createElement(
- 'div',
- null,
- _react2.default.createElement(
- 'h5',
- null,
- 'Strategies'
- ),
- _react2.default.createElement(_reactMdl.IconButton, { name: 'add', onClick: function onClick() {
- return _this2.context.router.push('/strategies/create');
- }, title: 'Add new strategy' }),
- _react2.default.createElement('hr', null),
- _react2.default.createElement(
- _reactMdl.List,
- null,
- strategies.length > 0 ? strategies.map(function (strategy, i) {
- return _react2.default.createElement(
- _reactMdl.ListItem,
- { key: i },
- _react2.default.createElement(
- _reactMdl.ListItemContent,
- null,
- _react2.default.createElement(
- 'strong',
- null,
- strategy.name
- ),
- ' ',
- strategy.description
- ),
- _react2.default.createElement(_reactMdl.IconButton, { name: 'delete', onClick: function onClick() {
- return removeStrategy(strategy);
- } })
- );
- }) : _react2.default.createElement(
- _reactMdl.ListItem,
- null,
- 'No entries'
- )
- )
- );
- }
- }]);
-
- return StrategiesListComponent;
- }(_react.Component);
-
- StrategiesListComponent.contextTypes = {
- router: _react2.default.PropTypes.object
- };
- exports.default = StrategiesListComponent;
-
-/***/ },
-/* 202 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _reactRedux = __webpack_require__(8);
-
- var _listComponent = __webpack_require__(201);
-
- var _listComponent2 = _interopRequireDefault(_listComponent);
-
- var _strategyActions = __webpack_require__(45);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- var mapStateToProps = function mapStateToProps(state) {
- var list = state.strategies.get('list').toArray();
-
- return {
- strategies: list
- };
- };
-
- var mapDispatchToProps = function mapDispatchToProps(dispatch) {
- return {
- removeStrategy: function removeStrategy(strategy) {
- if (window.confirm('Are you sure you want to remove this strategy?')) {
- // eslint-disable-line no-alert
- (0, _strategyActions.removeStrategy)(strategy)(dispatch);
- }
- },
- fetchStrategies: function fetchStrategies() {
- return (0, _strategyActions.fetchStrategies)()(dispatch);
- }
- };
- };
-
- var StrategiesListContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(_listComponent2.default);
-
- exports.default = StrategiesListContainer;
-
-/***/ },
-/* 203 */
-/***/ function(module, exports, __webpack_require__) {
-
- "use strict";
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- 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"); } }
-
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
-
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { 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: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-
- var ShowUserComponent = function (_React$Component) {
- _inherits(ShowUserComponent, _React$Component);
-
- function ShowUserComponent() {
- var _ref;
-
- var _temp, _this, _ret;
-
- _classCallCheck(this, ShowUserComponent);
-
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
-
- return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = ShowUserComponent.__proto__ || Object.getPrototypeOf(ShowUserComponent)).call.apply(_ref, [this].concat(args))), _this), _this.openEdit = function (evt) {
- evt.preventDefault();
- _this.props.openEdit();
- }, _temp), _possibleConstructorReturn(_this, _ret);
- }
-
- _createClass(ShowUserComponent, [{
- key: "render",
- value: function render() {
- return _react2.default.createElement(
- "a",
- { className: "mdl-navigation__link", href: "#edit-user", onClick: this.openEdit, style: {} },
- "Username:\xA0",
- _react2.default.createElement(
- "strong",
- null,
- this.props.user.userName || 'Unknown'
- )
- );
- }
- }], [{
- key: "propTypes",
- value: function propTypes() {
- return {
- user: _react.PropTypes.object.isRequired,
- openEdit: _react.PropTypes.func.isRequired
- };
- }
- }]);
-
- return ShowUserComponent;
- }(_react2.default.Component);
-
- exports.default = ShowUserComponent;
-
-/***/ },
-/* 204 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _reactRedux = __webpack_require__(8);
-
- var _showUserComponent = __webpack_require__(203);
-
- var _showUserComponent2 = _interopRequireDefault(_showUserComponent);
-
- var _actions = __webpack_require__(63);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- var mapDispatchToProps = {
- openEdit: _actions.openEdit
- };
-
- var mapStateToProps = function mapStateToProps(state) {
- return {
- user: state.user.toJS()
- };
- };
-
- exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(_showUserComponent2.default);
-
-/***/ },
-/* 205 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _reactMdl = __webpack_require__(9);
-
- 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"); } }
-
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
-
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { 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: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-
- var EditUserComponent = function (_React$Component) {
- _inherits(EditUserComponent, _React$Component);
-
- function EditUserComponent() {
- var _ref;
-
- var _temp, _this, _ret;
-
- _classCallCheck(this, EditUserComponent);
-
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
-
- return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = EditUserComponent.__proto__ || Object.getPrototypeOf(EditUserComponent)).call.apply(_ref, [this].concat(args))), _this), _this.handleSubmit = function (evt) {
- evt.preventDefault();
- _this.props.save();
- }, _temp), _possibleConstructorReturn(_this, _ret);
- }
-
- _createClass(EditUserComponent, [{
- key: 'render',
- value: function render() {
- var _this2 = this;
-
- return _react2.default.createElement(
- 'div',
- null,
- _react2.default.createElement(
- _reactMdl.Dialog,
- { open: this.props.user.showDialog },
- _react2.default.createElement(
- _reactMdl.DialogTitle,
- null,
- 'Action required'
- ),
- _react2.default.createElement(
- _reactMdl.DialogContent,
- null,
- _react2.default.createElement(
- 'p',
- null,
- 'You are logged in as:You hav to specify a username to use Unleash. This will allow us to track changes.'
- ),
- _react2.default.createElement(
- 'form',
- { onSubmit: this.handleSubmit },
- _react2.default.createElement(_reactMdl.Textfield, {
- label: 'USERNAME',
- name: 'username',
- required: true,
- value: this.props.user.userName,
- onChange: function onChange(e) {
- return _this2.props.updateUserName(e.target.value);
- }
- })
- )
- ),
- _react2.default.createElement(
- _reactMdl.DialogActions,
- null,
- _react2.default.createElement(
- _reactMdl.Button,
- { onClick: this.props.save },
- 'Save'
- )
- )
- )
- );
- }
- }], [{
- key: 'propTypes',
- value: function propTypes() {
- return {
- user: _react.PropTypes.object.isRequired,
- updateUserName: _react.PropTypes.func.isRequired
- };
- }
- }]);
-
- return EditUserComponent;
- }(_react2.default.Component);
-
- exports.default = EditUserComponent;
-
-/***/ },
-/* 206 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _reactRedux = __webpack_require__(8);
-
- var _userComponent = __webpack_require__(205);
-
- var _userComponent2 = _interopRequireDefault(_userComponent);
-
- var _actions = __webpack_require__(63);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- var mapDispatchToProps = {
- updateUserName: _actions.updateUserName,
- save: _actions.save
- };
-
- var mapStateToProps = function mapStateToProps(state) {
- return {
- user: state.user.toJS()
- };
- };
-
- exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(_userComponent2.default);
-
-/***/ },
-/* 207 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- var _helper = __webpack_require__(19);
-
- var URI = '/api/client/applications';
-
- function fetchAll() {
- return fetch(URI, { headers: _helper.headers }).then(_helper.throwIfNotSuccess).then(function (response) {
- return response.json();
- });
- }
-
- function fetchApplication(appName) {
- return fetch(URI + '/' + appName, { headers: _helper.headers }).then(_helper.throwIfNotSuccess).then(function (response) {
- return response.json();
- });
- }
-
- module.exports = {
- fetchApplication: fetchApplication,
- fetchAll: fetchAll
- };
-
-/***/ },
-/* 208 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- var _helper = __webpack_require__(19);
-
- var URI = '/api/archive';
-
- function fetchAll() {
- return fetch(URI + '/features').then(_helper.throwIfNotSuccess).then(function (response) {
- return response.json();
- });
- }
-
- function revive(feature) {
- return fetch(URI + '/revive', {
- method: 'POST',
- headers: _helper.headers,
- body: JSON.stringify(feature),
- credentials: 'include'
- }).then(_helper.throwIfNotSuccess);
- }
-
- module.exports = {
- fetchAll: fetchAll,
- revive: revive
- };
-
-/***/ },
-/* 209 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- var _helper = __webpack_require__(19);
-
- var URI = '/api/client/instances';
-
- function fetchAll() {
- return fetch(URI, { headers: _helper.headers }).then(_helper.throwIfNotSuccess).then(function (response) {
- return response.json();
- });
- }
-
- module.exports = {
- fetchAll: fetchAll
- };
-
-/***/ },
-/* 210 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- var _helper = __webpack_require__(19);
-
- var URI = '/api/client/strategies';
-
- function fetchAll() {
- return fetch(URI, { headers: _helper.headers }).then(_helper.throwIfNotSuccess).then(function (response) {
- return response.json();
- });
- }
-
- module.exports = {
- fetchAll: fetchAll
- };
-
-/***/ },
-/* 211 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- var _helper = __webpack_require__(19);
-
- var URI = '/api/features';
- var URI_VALIDATE = '/api/features-validate';
-
- function validateToggle(featureToggle) {
- return new Promise(function (resolve, reject) {
- if (!featureToggle.strategies || featureToggle.strategies.length === 0) {
- reject(new Error('You must add at least one activation strategy'));
- } else {
- resolve(featureToggle);
- }
- });
- }
-
- function fetchAll() {
- return fetch(URI).then(_helper.throwIfNotSuccess).then(function (response) {
- return response.json();
- });
- }
-
- function create(featureToggle) {
- return validateToggle(featureToggle).then(function () {
- return fetch(URI, {
- method: 'POST',
- headers: _helper.headers,
- credentials: 'include',
- body: JSON.stringify(featureToggle)
- });
- }).then(_helper.throwIfNotSuccess);
- }
-
- function validate(featureToggle) {
- return fetch(URI_VALIDATE, {
- method: 'POST',
- headers: _helper.headers,
- credentials: 'include',
- body: JSON.stringify(featureToggle)
- }).then(_helper.throwIfNotSuccess);
- }
-
- function update(featureToggle) {
- return validateToggle(featureToggle).then(function () {
- return fetch(URI + '/' + featureToggle.name, {
- method: 'PUT',
- headers: _helper.headers,
- credentials: 'include',
- body: JSON.stringify(featureToggle)
- });
- }).then(_helper.throwIfNotSuccess);
- }
-
- function remove(featureToggleName) {
- return fetch(URI + '/' + featureToggleName, {
- method: 'DELETE',
- credentials: 'include'
- }).then(_helper.throwIfNotSuccess);
- }
-
- module.exports = {
- fetchAll: fetchAll,
- create: create,
- validate: validate,
- update: update,
- remove: remove
- };
-
-/***/ },
-/* 212 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- var _require = __webpack_require__(19),
- throwIfNotSuccess = _require.throwIfNotSuccess;
-
- var URI = '/api/client/metrics/feature-toggles';
-
- function fetchFeatureMetrics() {
- return fetch(URI).then(throwIfNotSuccess).then(function (response) {
- return response.json();
- });
- }
-
- var seenURI = '/api/client/seen-apps';
-
- function fetchSeenApps() {
- return fetch(seenURI).then(throwIfNotSuccess).then(function (response) {
- return response.json();
- });
- }
-
- module.exports = {
- fetchFeatureMetrics: fetchFeatureMetrics,
- fetchSeenApps: fetchSeenApps
- };
-
-/***/ },
-/* 213 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- var _helper = __webpack_require__(19);
-
- var URI = '/api/metrics';
-
- function fetchAll() {
- return fetch(URI).then(_helper.throwIfNotSuccess).then(function (response) {
- return response.json();
- });
- }
-
- module.exports = {
- fetchAll: fetchAll
- };
-
-/***/ },
-/* 214 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- var _helper = __webpack_require__(19);
-
- var URI = '/api/strategies';
-
- function fetchAll() {
- return fetch(URI).then(_helper.throwIfNotSuccess).then(function (response) {
- return response.json();
- });
- }
-
- function create(strategy) {
- return fetch(URI, {
- method: 'POST',
- headers: _helper.headers,
- body: JSON.stringify(strategy),
- credentials: 'include'
- }).then(_helper.throwIfNotSuccess);
- }
-
- function remove(strategy) {
- return fetch(URI + '/' + strategy.name, {
- method: 'DELETE',
- headers: _helper.headers,
- credentials: 'include'
- }).then(_helper.throwIfNotSuccess);
- }
-
- module.exports = {
- fetchAll: fetchAll,
- create: create,
- remove: remove
- };
-
-/***/ },
-/* 215 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- __webpack_require__(170);
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _reactDom = __webpack_require__(15);
-
- var _reactDom2 = _interopRequireDefault(_reactDom);
-
- var _reactRouter = __webpack_require__(25);
-
- var _reactRedux = __webpack_require__(8);
-
- var _reduxThunk = __webpack_require__(405);
-
- var _reduxThunk2 = _interopRequireDefault(_reduxThunk);
-
- var _redux = __webpack_require__(103);
-
- var _store = __webpack_require__(236);
-
- var _store2 = _interopRequireDefault(_store);
-
- var _app = __webpack_require__(171);
-
- var _app2 = _interopRequireDefault(_app);
-
- var _features = __webpack_require__(222);
-
- var _features2 = _interopRequireDefault(_features);
-
- var _create = __webpack_require__(220);
-
- var _create2 = _interopRequireDefault(_create);
-
- var _edit = __webpack_require__(221);
-
- var _edit2 = _interopRequireDefault(_edit);
-
- var _strategies = __webpack_require__(226);
-
- var _strategies2 = _interopRequireDefault(_strategies);
-
- var _create3 = __webpack_require__(225);
-
- var _create4 = _interopRequireDefault(_create3);
-
- var _history = __webpack_require__(223);
-
- var _history2 = _interopRequireDefault(_history);
-
- var _toggle = __webpack_require__(224);
-
- var _toggle2 = _interopRequireDefault(_toggle);
-
- var _archive = __webpack_require__(218);
-
- var _archive2 = _interopRequireDefault(_archive);
-
- var _applications = __webpack_require__(216);
-
- var _applications2 = _interopRequireDefault(_applications);
-
- var _view = __webpack_require__(217);
-
- var _view2 = _interopRequireDefault(_view);
-
- var _clientStrategies = __webpack_require__(219);
-
- var _clientStrategies2 = _interopRequireDefault(_clientStrategies);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- var unleashStore = (0, _redux.createStore)(_store2.default, (0, _redux.applyMiddleware)(_reduxThunk2.default));
-
- _reactDom2.default.render(_react2.default.createElement(
- _reactRedux.Provider,
- { store: unleashStore },
- _react2.default.createElement(
- _reactRouter.Router,
- { history: _reactRouter.hashHistory },
- _react2.default.createElement(
- _reactRouter.Route,
- { path: '/', component: _app2.default },
- _react2.default.createElement(_reactRouter.IndexRedirect, { to: '/features' }),
- _react2.default.createElement(_reactRouter.Route, { pageTitle: 'Features', path: '/features', component: _features2.default }),
- _react2.default.createElement(_reactRouter.Route, { pageTitle: 'Features', path: '/features/create', component: _create2.default }),
- _react2.default.createElement(_reactRouter.Route, { pageTitle: 'Features', path: '/features/edit/:name', component: _edit2.default }),
- _react2.default.createElement(_reactRouter.Route, { pageTitle: 'Strategies', path: '/strategies', component: _strategies2.default }),
- _react2.default.createElement(_reactRouter.Route, { pageTitle: 'Strategies', path: '/strategies/create', component: _create4.default }),
- _react2.default.createElement(_reactRouter.Route, { pageTitle: 'History', path: '/history', component: _history2.default }),
- _react2.default.createElement(_reactRouter.Route, { pageTitle: 'History', path: '/history/:toggleName', component: _toggle2.default }),
- _react2.default.createElement(_reactRouter.Route, { pageTitle: 'Archive', path: '/archive', component: _archive2.default }),
- _react2.default.createElement(_reactRouter.Route, { pageTitle: 'Applications', path: '/applications', component: _applications2.default }),
- _react2.default.createElement(_reactRouter.Route, { pageTitle: 'Applications', path: '/applications/:name', component: _view2.default }),
- _react2.default.createElement(_reactRouter.Route, { pageTitle: 'Client strategies', ppath: '/client-strategies', component: _clientStrategies2.default })
- )
- )
- ), document.getElementById('app'));
-
-/***/ },
-/* 216 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _applicationListContainer = __webpack_require__(175);
-
- var _applicationListContainer2 = _interopRequireDefault(_applicationListContainer);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- var render = function render() {
- return _react2.default.createElement(_applicationListContainer2.default, null);
- };
-
- exports.default = render;
-
-/***/ },
-/* 217 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _applicationEditContainer = __webpack_require__(173);
-
- var _applicationEditContainer2 = _interopRequireDefault(_applicationEditContainer);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- var render = function render(_ref) {
- var params = _ref.params;
- return _react2.default.createElement(_applicationEditContainer2.default, { appName: params.name });
- };
-
- exports.default = render;
-
-/***/ },
-/* 218 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _archiveContainer = __webpack_require__(176);
-
- var _archiveContainer2 = _interopRequireDefault(_archiveContainer);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- var render = function render() {
- return _react2.default.createElement(_archiveContainer2.default, null);
- };
-
- exports.default = render;
-
-/***/ },
-/* 219 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _strategyContainer = __webpack_require__(179);
-
- var _strategyContainer2 = _interopRequireDefault(_strategyContainer);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- var render = function render() {
- return _react2.default.createElement(
- 'div',
- null,
- _react2.default.createElement(
- 'h5',
- null,
- 'Client Strategies'
- ),
- _react2.default.createElement(_strategyContainer2.default, null)
- );
- };
-
- exports.default = render;
-
-/***/ },
-/* 220 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _formAddContainer = __webpack_require__(183);
-
- var _formAddContainer2 = _interopRequireDefault(_formAddContainer);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- var render = function render() {
- return _react2.default.createElement(
- 'div',
- null,
- _react2.default.createElement(
- 'h6',
- null,
- 'Create feature toggle'
- ),
- _react2.default.createElement(_formAddContainer2.default, null)
- );
- };
-
- exports.default = render;
-
-/***/ },
-/* 221 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _viewEditContainer = __webpack_require__(192);
-
- var _viewEditContainer2 = _interopRequireDefault(_viewEditContainer);
-
- 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"); } }
-
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
-
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { 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: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-
- var Features = function (_Component) {
- _inherits(Features, _Component);
-
- function Features() {
- _classCallCheck(this, Features);
-
- return _possibleConstructorReturn(this, (Features.__proto__ || Object.getPrototypeOf(Features)).apply(this, arguments));
- }
-
- _createClass(Features, [{
- key: 'render',
- value: function render() {
- return _react2.default.createElement(_viewEditContainer2.default, { featureToggleName: this.props.params.name });
- }
- }], [{
- key: 'propTypes',
- value: function propTypes() {
- return {
- params: _react.PropTypes.object.isRequired
- };
- }
- }]);
-
- return Features;
- }(_react.Component);
-
- exports.default = Features;
- ;
-
-/***/ },
-/* 222 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _listContainer = __webpack_require__(191);
-
- var _listContainer2 = _interopRequireDefault(_listContainer);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- var render = function render() {
- return _react2.default.createElement(_listContainer2.default, null);
- };
-
- exports.default = render;
-
-/***/ },
-/* 223 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _historyContainer = __webpack_require__(194);
-
- var _historyContainer2 = _interopRequireDefault(_historyContainer);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- var render = function render() {
- return _react2.default.createElement(_historyContainer2.default, null);
- };
-
- exports.default = render;
-
-/***/ },
-/* 224 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _historyListToggleComponent = __webpack_require__(198);
-
- var _historyListToggleComponent2 = _interopRequireDefault(_historyListToggleComponent);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- var render = function render(_ref) {
- var params = _ref.params;
- return _react2.default.createElement(_historyListToggleComponent2.default, { toggleName: params.toggleName });
- };
-
- render.propTypes = {
- params: _react.PropTypes.object.isRequired
- };
-
- exports.default = render;
-
-/***/ },
-/* 225 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _addContainer = __webpack_require__(199);
-
- var _addContainer2 = _interopRequireDefault(_addContainer);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- exports.default = function () {
- return _react2.default.createElement(_addContainer2.default, null);
- };
-
-/***/ },
-/* 226 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _react = __webpack_require__(1);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _listContainer = __webpack_require__(202);
-
- var _listContainer2 = _interopRequireDefault(_listContainer);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- exports.default = function () {
- return _react2.default.createElement(_listContainer2.default, null);
- };
-
-/***/ },
-/* 227 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _immutable = __webpack_require__(12);
-
- var _actions = __webpack_require__(60);
-
- function getInitState() {
- return (0, _immutable.fromJS)({ list: [], apps: {} });
- }
-
- var store = function store() {
- var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getInitState();
- var action = arguments[1];
-
- switch (action.type) {
- case _actions.RECEIVE_APPLICATION:
- return state.setIn(['apps', action.value.appName], new _immutable.Map(action.value));
- case _actions.RECEIVE_ALL_APPLICATIONS:
- return state.set('list', new _immutable.List(action.value.applications));
- default:
- return state;
- }
- };
-
- exports.default = store;
-
-/***/ },
-/* 228 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _immutable = __webpack_require__(12);
-
- var _archiveActions = __webpack_require__(108);
-
- function getInitState() {
- return new _immutable.Map({ list: new _immutable.List() });
- }
-
- var archiveStore = function archiveStore() {
- var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getInitState();
- var action = arguments[1];
-
- switch (action.type) {
- case _archiveActions.REVIVE_TOGGLE:
- return state.update('list', function (list) {
- return list.remove(list.indexOf(action.value));
- });
- case _archiveActions.RECEIVE_ARCHIVE:
- return state.set('list', new _immutable.List(action.value));
- default:
- return state;
- }
- };
-
- exports.default = archiveStore;
-
-/***/ },
-/* 229 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.ERROR_RECEIVE_CLIENT_INSTANCES = exports.RECEIVE_CLIENT_INSTANCES = undefined;
- exports.fetchClientInstances = fetchClientInstances;
-
- var _clientInstanceApi = __webpack_require__(209);
-
- var _clientInstanceApi2 = _interopRequireDefault(_clientInstanceApi);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- var RECEIVE_CLIENT_INSTANCES = exports.RECEIVE_CLIENT_INSTANCES = 'RECEIVE_CLIENT_INSTANCES';
- var ERROR_RECEIVE_CLIENT_INSTANCES = exports.ERROR_RECEIVE_CLIENT_INSTANCES = 'ERROR_RECEIVE_CLIENT_INSTANCES';
-
- var receiveClientInstances = function receiveClientInstances(json) {
- return {
- type: RECEIVE_CLIENT_INSTANCES,
- value: json
- };
- };
-
- var errorReceiveClientInstances = function errorReceiveClientInstances(statusCode) {
- return {
- type: RECEIVE_CLIENT_INSTANCES,
- statusCode: statusCode
- };
- };
-
- function fetchClientInstances() {
- return function (dispatch) {
- return _clientInstanceApi2.default.fetchAll().then(function (json) {
- return dispatch(receiveClientInstances(json));
- }).catch(function (error) {
- return dispatch(errorReceiveClientInstances(error));
- });
- };
- }
-
-/***/ },
-/* 230 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _immutable = __webpack_require__(12);
-
- var _clientInstanceActions = __webpack_require__(229);
-
- function getInitState() {
- return (0, _immutable.fromJS)([]);
- }
-
- var store = function store() {
- var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getInitState();
- var action = arguments[1];
-
- switch (action.type) {
- case _clientInstanceActions.RECEIVE_CLIENT_INSTANCES:
- return (0, _immutable.fromJS)(action.value);
- default:
- return state;
- }
- };
-
- exports.default = store;
-
-/***/ },
-/* 231 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _immutable = __webpack_require__(12);
-
- var _clientStrategyActions = __webpack_require__(109);
-
- function getInitState() {
- return (0, _immutable.fromJS)([]);
- }
-
- var store = function store() {
- var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getInitState();
- var action = arguments[1];
-
- switch (action.type) {
- case _clientStrategyActions.RECEIVE_CLIENT_STRATEGIES:
- return (0, _immutable.fromJS)(action.value);
- default:
- return state;
- }
- };
-
- exports.default = store;
-
-/***/ },
-/* 232 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _immutable = __webpack_require__(12);
-
- var _errorActions = __webpack_require__(110);
-
- var _featureActions = __webpack_require__(29);
-
- var debug = __webpack_require__(64)('unleash:error-store');
-
- function getInitState() {
- return new _immutable.Map({
- list: new _immutable.List()
- });
- }
-
- function addErrorIfNotAlreadyInList(state, error) {
- debug('Got error', error);
- if (state.get('list').indexOf(error) < 0) {
- return state.update('list', function (list) {
- return list.push(error);
- });
- }
- return state;
- }
-
- var strategies = function strategies() {
- var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getInitState();
- var action = arguments[1];
-
- switch (action.type) {
- case _featureActions.ERROR_CREATING_FEATURE_TOGGLE:
- case _featureActions.ERROR_REMOVE_FEATURE_TOGGLE:
- case _featureActions.ERROR_FETCH_FEATURE_TOGGLES:
- case _featureActions.ERROR_UPDATE_FEATURE_TOGGLE:
- return addErrorIfNotAlreadyInList(state, action.error.message);
- case _errorActions.MUTE_ERROR:
- return state.update('list', function (list) {
- return list.remove(list.indexOf(action.error));
- });
- default:
- return state;
- }
- };
-
- exports.default = strategies;
-
-/***/ },
-/* 233 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _immutable = __webpack_require__(12);
-
- var _featureMetricsActions = __webpack_require__(61);
-
- var metrics = function metrics() {
- var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0, _immutable.fromJS)({ lastHour: {}, lastMinute: {}, seenApps: {} });
- var action = arguments[1];
-
- switch (action.type) {
- case _featureMetricsActions.RECEIVE_SEEN_APPS:
- return state.set('seenApps', new _immutable.Map(action.value));
- case _featureMetricsActions.RECEIVE_FEATURE_METRICS:
- return state.withMutations(function (ctx) {
- ctx.set('lastHour', new _immutable.Map(action.value.lastHour));
- ctx.set('lastMinute', new _immutable.Map(action.value.lastMinute));
- return ctx;
- });
- default:
- return state;
- }
- };
-
- exports.default = metrics;
-
-/***/ },
-/* 234 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _immutable = __webpack_require__(12);
-
- var _featureActions = __webpack_require__(29);
-
- var debug = __webpack_require__(64)('unleash:feature-store');
-
- var features = function features() {
- var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new _immutable.List([]);
- var action = arguments[1];
-
- switch (action.type) {
- case _featureActions.ADD_FEATURE_TOGGLE:
- debug(_featureActions.ADD_FEATURE_TOGGLE, action);
- return state.push(new _immutable.Map(action.featureToggle));
- case _featureActions.REMOVE_FEATURE_TOGGLE:
- debug(_featureActions.REMOVE_FEATURE_TOGGLE, action);
- return state.filter(function (toggle) {
- return toggle.get('name') !== action.featureToggleName;
- });
- case _featureActions.UPDATE_FEATURE_TOGGLE:
- debug(_featureActions.UPDATE_FEATURE_TOGGLE, action);
- return state.map(function (toggle) {
- if (toggle.get('name') === action.featureToggle.name) {
- return new _immutable.Map(action.featureToggle);
- } else {
- return toggle;
- }
- });
- case _featureActions.RECEIVE_FEATURE_TOGGLES:
- debug(_featureActions.RECEIVE_FEATURE_TOGGLES, action);
- return new _immutable.List(action.featureToggles.map(_immutable.Map));
- default:
- return state;
- }
- };
-
- exports.default = features;
-
-/***/ },
-/* 235 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _immutable = __webpack_require__(12);
-
- var _historyActions = __webpack_require__(111);
-
- function getInitState() {
- return new _immutable.Map({ list: new _immutable.List() });
- }
-
- var historyStore = function historyStore() {
- var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getInitState();
- var action = arguments[1];
-
- switch (action.type) {
- case _historyActions.RECEIVE_HISTORY:
- return state.set('list', new _immutable.List(action.value));
- default:
- return state;
- }
- };
-
- exports.default = historyStore;
-
-/***/ },
-/* 236 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _redux = __webpack_require__(103);
-
- var _featureStore = __webpack_require__(234);
-
- var _featureStore2 = _interopRequireDefault(_featureStore);
-
- var _featureMetricsStore = __webpack_require__(233);
-
- var _featureMetricsStore2 = _interopRequireDefault(_featureMetricsStore);
-
- var _strategyStore = __webpack_require__(241);
-
- var _strategyStore2 = _interopRequireDefault(_strategyStore);
-
- var _inputStore = __webpack_require__(237);
-
- var _inputStore2 = _interopRequireDefault(_inputStore);
-
- var _historyStore = __webpack_require__(235);
-
- var _historyStore2 = _interopRequireDefault(_historyStore);
-
- var _archiveStore = __webpack_require__(228);
-
- var _archiveStore2 = _interopRequireDefault(_archiveStore);
-
- var _errorStore = __webpack_require__(232);
-
- var _errorStore2 = _interopRequireDefault(_errorStore);
-
- var _metricsStore = __webpack_require__(239);
-
- var _metricsStore2 = _interopRequireDefault(_metricsStore);
-
- var _clientStrategyStore = __webpack_require__(231);
-
- var _clientStrategyStore2 = _interopRequireDefault(_clientStrategyStore);
-
- var _clientInstanceStore = __webpack_require__(230);
-
- var _clientInstanceStore2 = _interopRequireDefault(_clientInstanceStore);
-
- var _settings = __webpack_require__(240);
-
- var _settings2 = _interopRequireDefault(_settings);
-
- var _user = __webpack_require__(242);
-
- var _user2 = _interopRequireDefault(_user);
-
- var _application = __webpack_require__(227);
-
- var _application2 = _interopRequireDefault(_application);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- // eslint-disable-line
- var unleashStore = (0, _redux.combineReducers)({
- features: _featureStore2.default,
- featureMetrics: _featureMetricsStore2.default,
- strategies: _strategyStore2.default,
- input: _inputStore2.default,
- history: _historyStore2.default,
- archive: _archiveStore2.default,
- error: _errorStore2.default,
- metrics: _metricsStore2.default,
- clientStrategies: _clientStrategyStore2.default,
- clientInstances: _clientInstanceStore2.default,
- settings: _settings2.default,
- user: _user2.default,
- applications: _application2.default
- });
-
- exports.default = unleashStore;
-
-/***/ },
-/* 237 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _immutable = __webpack_require__(12);
-
- var _inputActions = __webpack_require__(112);
-
- var _inputActions2 = _interopRequireDefault(_inputActions);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- function getInitState() {
- return new _immutable.Map();
- }
-
- function init(state, _ref) {
- var id = _ref.id,
- value = _ref.value;
-
- state = assertId(state, id);
- return state.setIn(id, (0, _immutable.fromJS)(value));
- }
-
- function assertId(state, id) {
- if (!state.hasIn(id)) {
- return state.setIn(id, new _immutable.Map({ inputId: id }));
- }
- return state;
- }
-
- function assertList(state, id, key) {
- if (!state.getIn(id).has(key)) {
- return state.setIn(id.concat([key]), new _immutable.List());
- }
- return state;
- }
-
- function setKeyValue(state, _ref2) {
- var id = _ref2.id,
- key = _ref2.key,
- value = _ref2.value;
-
- state = assertId(state, id);
- return state.setIn(id.concat([key]), value);
- }
-
- function increment(state, _ref3) {
- var id = _ref3.id,
- key = _ref3.key;
-
- state = assertId(state, id);
- return state.updateIn(id.concat([key]), function () {
- var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
- return value + 1;
- });
- }
-
- function clear(state, _ref4) {
- var id = _ref4.id;
-
- if (state.hasIn(id)) {
- return state.removeIn(id);
- }
- return state;
- }
-
- function addToList(state, _ref5) {
- var id = _ref5.id,
- key = _ref5.key,
- value = _ref5.value;
-
- state = assertId(state, id);
- state = assertList(state, id, key);
-
- return state.updateIn(id.concat([key]), function (list) {
- return list.push(value);
- });
- }
-
- function updateInList(state, _ref6) {
- var id = _ref6.id,
- key = _ref6.key,
- index = _ref6.index,
- newValue = _ref6.newValue;
-
- state = assertId(state, id);
- state = assertList(state, id, key);
-
- return state.updateIn(id.concat([key]), function (list) {
- return list.set(index, newValue);
- });
- }
-
- function removeFromList(state, _ref7) {
- var id = _ref7.id,
- key = _ref7.key,
- index = _ref7.index;
-
- state = assertId(state, id);
- state = assertList(state, id, key);
-
- return state.updateIn(id.concat([key]), function (list) {
- return list.remove(index);
- });
- }
-
- var inputState = function inputState() {
- var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getInitState();
- var action = arguments[1];
-
- if (!action.id) {
- return state;
- }
-
- switch (action.type) {
- case _inputActions2.default.INIT:
- return init(state, action);
- case _inputActions2.default.SET_VALUE:
- if (_inputActions2.default.key != null && _inputActions2.default.value != null) {
- throw new Error('Missing required key / value');
- }
- return setKeyValue(state, action);
- case _inputActions2.default.INCREMENT_VALUE:
- return increment(state, action);
- case _inputActions2.default.LIST_PUSH:
- return addToList(state, action);
- case _inputActions2.default.LIST_POP:
- return removeFromList(state, action);
- case _inputActions2.default.LIST_UP:
- return updateInList(state, action);
- case _inputActions2.default.CLEAR:
- return clear(state, action);
- default:
- // console.log('TYPE', action.type, action);
- return state;
- }
- };
-
- exports.default = inputState;
-
-/***/ },
-/* 238 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.ERROR_RECEIVE_METRICS = exports.RECEIVE_METRICS = undefined;
- exports.fetchMetrics = fetchMetrics;
-
- var _metricsApi = __webpack_require__(213);
-
- var _metricsApi2 = _interopRequireDefault(_metricsApi);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- var RECEIVE_METRICS = exports.RECEIVE_METRICS = 'RECEIVE_METRICS';
- var ERROR_RECEIVE_METRICS = exports.ERROR_RECEIVE_METRICS = 'ERROR_RECEIVE_METRICS';
-
- var receiveMetrics = function receiveMetrics(json) {
- return {
- type: RECEIVE_METRICS,
- value: json
- };
- };
-
- var errorReceiveMetrics = function errorReceiveMetrics(statusCode) {
- return {
- type: ERROR_RECEIVE_METRICS,
- statusCode: statusCode
- };
- };
-
- function fetchMetrics() {
- return function (dispatch) {
- return _metricsApi2.default.fetchAll().then(function (json) {
- return dispatch(receiveMetrics(json));
- }).catch(function (error) {
- return dispatch(errorReceiveMetrics(error));
- });
- };
- }
-
-/***/ },
-/* 239 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _immutable = __webpack_require__(12);
-
- var _metricsActions = __webpack_require__(238);
-
- function getInitState() {
- return (0, _immutable.fromJS)({
- totalCount: 0,
- apps: [],
- clients: {}
- });
- }
-
- var historyStore = function historyStore() {
- var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getInitState();
- var action = arguments[1];
-
- switch (action.type) {
- case _metricsActions.RECEIVE_METRICS:
- return (0, _immutable.fromJS)(action.value);
- default:
- return state;
- }
- };
-
- exports.default = historyStore;
-
-/***/ },
-/* 240 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _immutable = __webpack_require__(12);
-
- var _actions = __webpack_require__(62);
-
- // TODO: provde a mock if localstorage does not exists?
- var localStorage = window.localStorage || {};
- var SETTINGS = 'settings';
-
- function getInitState() {
- try {
- var state = JSON.parse(localStorage.getItem(SETTINGS));
- return state ? (0, _immutable.fromJS)(state) : new _immutable.Map();
- } catch (e) {
- return new _immutable.Map();
- }
- }
-
- function updateSetting(state, action) {
- var newState = state.updateIn([action.group, action.field], function () {
- return action.value;
- });
-
- localStorage.setItem(SETTINGS, JSON.stringify(newState.toJSON()));
- return newState;
- }
-
- var settingStore = function settingStore() {
- var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getInitState();
- var action = arguments[1];
-
- switch (action.type) {
- case _actions.UPDATE_SETTING:
- return updateSetting(state, action);
- default:
- return state;
- }
- };
-
- exports.default = settingStore;
-
-/***/ },
-/* 241 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _immutable = __webpack_require__(12);
-
- var _strategyActions = __webpack_require__(45);
-
- function getInitState() {
- return new _immutable.Map({ list: new _immutable.List() });
- }
-
- function removeStrategy(state, action) {
- var indexToRemove = state.get('list').indexOf(action.strategy);
- if (indexToRemove !== -1) {
- return state.update('list', function (list) {
- return list.remove(indexToRemove);
- });
- }
- return state;
- }
-
- var strategies = function strategies() {
- var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getInitState();
- var action = arguments[1];
-
- switch (action.type) {
- case _strategyActions.RECEIVE_STRATEGIES:
- return state.set('list', new _immutable.List(action.value));
- case _strategyActions.REMOVE_STRATEGY:
- return removeStrategy(state, action);
- case _strategyActions.ADD_STRATEGY:
- return state.update('list', function (list) {
- return list.push(action.strategy);
- });
- default:
- return state;
- }
- };
-
- exports.default = strategies;
-
-/***/ },
-/* 242 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _immutable = __webpack_require__(12);
-
- var _actions = __webpack_require__(63);
-
- var COOKIE_NAME = 'username';
-
- // Ref: http://stackoverflow.com/questions/10730362/get-cookie-by-name
- function readCookie() {
- var nameEQ = COOKIE_NAME + '=';
- var ca = document.cookie.split(';');
- for (var i = 0; i < ca.length; i++) {
- var c = ca[i];
- while (c.charAt(0) == ' ') {
- // eslint-disable-line eqeqeq
- c = c.substring(1, c.length);
- }
- if (c.indexOf(nameEQ) === 0) {
- return c.substring(nameEQ.length, c.length);
- }
- }
- }
-
- function writeCookie(userName) {
- document.cookie = COOKIE_NAME + '=' + userName + '; expires=Thu, 18 Dec 2099 12:00:00 UTC';
- }
-
- function getInitState() {
- var userName = readCookie(COOKIE_NAME);
- var showDialog = !userName;
- return new _immutable.Map({ userName: userName, showDialog: showDialog });
- }
-
- function updateUserName(state, action) {
- return state.set('userName', action.value);
- }
-
- function save(state) {
- var userName = state.get('userName');
- if (userName) {
- writeCookie(userName);
- return state.set('showDialog', false);
- } else {
- return state;
- }
- }
-
- var settingStore = function settingStore() {
- var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getInitState();
- var action = arguments[1];
-
- switch (action.type) {
- case _actions.USER_UPDATE_USERNAME:
- return updateUserName(state, action);
- case _actions.USER_SAVE:
- return save(state);
- case _actions.USER_EDIT:
- return state.set('showDialog', true);
- default:
- return state;
- }
- };
-
- exports.default = settingStore;
-
-/***/ },
-/* 243 */
-/***/ function(module, exports, __webpack_require__) {
-
-
- /**
- * This is the common logic for both the Node.js and web browser
- * implementations of `debug()`.
- *
- * Expose `debug()` as the module.
- */
-
- exports = module.exports = debug.debug = debug;
- exports.coerce = coerce;
- exports.disable = disable;
- exports.enable = enable;
- exports.enabled = enabled;
- exports.humanize = __webpack_require__(274);
-
- /**
- * The currently active debug mode names, and names to skip.
- */
-
- exports.names = [];
- exports.skips = [];
-
- /**
- * Map of special "%n" handling functions, for the debug "format" argument.
- *
- * Valid key names are a single, lowercased letter, i.e. "n".
- */
-
- exports.formatters = {};
-
- /**
- * Previously assigned color.
- */
-
- var prevColor = 0;
-
- /**
- * Previous log timestamp.
- */
-
- var prevTime;
-
- /**
- * Select a color.
- *
- * @return {Number}
- * @api private
- */
-
- function selectColor() {
- return exports.colors[prevColor++ % exports.colors.length];
- }
-
- /**
- * Create a debugger with the given `namespace`.
- *
- * @param {String} namespace
- * @return {Function}
- * @api public
- */
-
- function debug(namespace) {
-
- // define the `disabled` version
- function disabled() {
- }
- disabled.enabled = false;
-
- // define the `enabled` version
- function enabled() {
-
- var self = enabled;
-
- // set `diff` timestamp
- var curr = +new Date();
- var ms = curr - (prevTime || curr);
- self.diff = ms;
- self.prev = prevTime;
- self.curr = curr;
- prevTime = curr;
-
- // add the `color` if not set
- if (null == self.useColors) self.useColors = exports.useColors();
- if (null == self.color && self.useColors) self.color = selectColor();
-
- var args = new Array(arguments.length);
- for (var i = 0; i < args.length; i++) {
- args[i] = arguments[i];
- }
-
- args[0] = exports.coerce(args[0]);
-
- if ('string' !== typeof args[0]) {
- // anything else let's inspect with %o
- args = ['%o'].concat(args);
- }
-
- // apply any `formatters` transformations
- var index = 0;
- args[0] = args[0].replace(/%([a-z%])/g, function(match, format) {
- // if we encounter an escaped % then don't increase the array index
- if (match === '%%') return match;
- index++;
- var formatter = exports.formatters[format];
- if ('function' === typeof formatter) {
- var val = args[index];
- match = formatter.call(self, val);
-
- // now we need to remove `args[index]` since it's inlined in the `format`
- args.splice(index, 1);
- index--;
- }
- return match;
- });
-
- // apply env-specific formatting
- args = exports.formatArgs.apply(self, args);
-
- var logFn = enabled.log || exports.log || console.log.bind(console);
- logFn.apply(self, args);
- }
- enabled.enabled = true;
-
- var fn = exports.enabled(namespace) ? enabled : disabled;
-
- fn.namespace = namespace;
-
- return fn;
- }
-
- /**
- * Enables a debug mode by namespaces. This can include modes
- * separated by a colon and wildcards.
- *
- * @param {String} namespaces
- * @api public
- */
-
- function enable(namespaces) {
- exports.save(namespaces);
-
- var split = (namespaces || '').split(/[\s,]+/);
- var len = split.length;
-
- for (var i = 0; i < len; i++) {
- if (!split[i]) continue; // ignore empty strings
- namespaces = split[i].replace(/[\\^$+?.()|[\]{}]/g, '\\$&').replace(/\*/g, '.*?');
- if (namespaces[0] === '-') {
- exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));
- } else {
- exports.names.push(new RegExp('^' + namespaces + '$'));
- }
- }
- }
-
- /**
- * Disable debug output.
- *
- * @api public
- */
-
- function disable() {
- exports.enable('');
- }
-
- /**
- * Returns true if the given mode name is enabled, false otherwise.
- *
- * @param {String} name
- * @return {Boolean}
- * @api public
- */
-
- function enabled(name) {
- var i, len;
- for (i = 0, len = exports.skips.length; i < len; i++) {
- if (exports.skips[i].test(name)) {
- return false;
- }
- }
- for (i = 0, len = exports.names.length; i < len; i++) {
- if (exports.names[i].test(name)) {
- return true;
- }
- }
- return false;
- }
-
- /**
- * Coerce `val`.
- *
- * @param {Mixed} val
- * @return {Mixed}
- * @api private
- */
-
- function coerce(val) {
- if (val instanceof Error) return val.stack || val.message;
- return val;
- }
-
-
-/***/ },
-/* 244 */
-/***/ function(module, exports) {
-
- // removed by extract-text-webpack-plugin
- module.exports = {"path":"progress-styles__path___EWzvx","trail":"progress-styles__trail___33CET","text":"progress-styles__text___2Ny4s"};
-
-/***/ },
-/* 245 */
-/***/ function(module, exports) {
-
- // removed by extract-text-webpack-plugin
- module.exports = {"non-style-button":"strategies__non-style-button___1iQRq"};
-
-/***/ },
-/* 246 */
-/***/ function(module, exports) {
-
- // removed by extract-text-webpack-plugin
- module.exports = {"container":"styles__container___3RbZD","navigation":"styles__navigation___NYjO2","active":"styles__active___2VGIV"};
-
-/***/ },
-/* 247 */
-/***/ function(module, exports) {
-
- "use strict";
-
- /**
- * Copyright (c) 2013-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- *
- * @typechecks
- */
-
- var _hyphenPattern = /-(.)/g;
-
- /**
- * Camelcases a hyphenated string, for example:
- *
- * > camelize('background-color')
- * < "backgroundColor"
- *
- * @param {string} string
- * @return {string}
- */
- function camelize(string) {
- return string.replace(_hyphenPattern, function (_, character) {
- return character.toUpperCase();
- });
- }
-
- module.exports = camelize;
-
-/***/ },
-/* 248 */
-/***/ function(module, exports, __webpack_require__) {
-
- /**
- * Copyright (c) 2013-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- *
- * @typechecks
- */
-
- 'use strict';
-
- var camelize = __webpack_require__(247);
-
- var msPattern = /^-ms-/;
-
- /**
- * Camelcases a hyphenated CSS property name, for example:
- *
- * > camelizeStyleName('background-color')
- * < "backgroundColor"
- * > camelizeStyleName('-moz-transition')
- * < "MozTransition"
- * > camelizeStyleName('-ms-transition')
- * < "msTransition"
- *
- * As Andi Smith suggests
- * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix
- * is converted to lowercase `ms`.
- *
- * @param {string} string
- * @return {string}
- */
- function camelizeStyleName(string) {
- return camelize(string.replace(msPattern, 'ms-'));
- }
-
- module.exports = camelizeStyleName;
-
-/***/ },
-/* 249 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- /**
- * Copyright (c) 2013-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- *
- *
- */
-
- var isTextNode = __webpack_require__(257);
-
- /*eslint-disable no-bitwise */
-
- /**
- * Checks if a given DOM node contains or is another DOM node.
- */
- function containsNode(outerNode, innerNode) {
- if (!outerNode || !innerNode) {
- return false;
- } else if (outerNode === innerNode) {
- return true;
- } else if (isTextNode(outerNode)) {
- return false;
- } else if (isTextNode(innerNode)) {
- return containsNode(outerNode, innerNode.parentNode);
- } else if ('contains' in outerNode) {
- return outerNode.contains(innerNode);
- } else if (outerNode.compareDocumentPosition) {
- return !!(outerNode.compareDocumentPosition(innerNode) & 16);
- } else {
- return false;
- }
- }
-
- module.exports = containsNode;
-
-/***/ },
-/* 250 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- /**
- * Copyright (c) 2013-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- *
- * @typechecks
- */
-
- var invariant = __webpack_require__(3);
-
- /**
- * Convert array-like objects to arrays.
- *
- * This API assumes the caller knows the contents of the data type. For less
- * well defined inputs use createArrayFromMixed.
- *
- * @param {object|function|filelist} obj
- * @return {array}
- */
- function toArray(obj) {
- var length = obj.length;
-
- // Some browsers builtin objects can report typeof 'function' (e.g. NodeList
- // in old versions of Safari).
- !(!Array.isArray(obj) && (typeof obj === 'object' || typeof obj === 'function')) ? false ? invariant(false, 'toArray: Array-like object expected') : invariant(false) : void 0;
-
- !(typeof length === 'number') ? false ? invariant(false, 'toArray: Object needs a length property') : invariant(false) : void 0;
-
- !(length === 0 || length - 1 in obj) ? false ? invariant(false, 'toArray: Object should have keys for indices') : invariant(false) : void 0;
-
- !(typeof obj.callee !== 'function') ? false ? invariant(false, 'toArray: Object can\'t be `arguments`. Use rest params ' + '(function(...args) {}) or Array.from() instead.') : invariant(false) : void 0;
-
- // Old IE doesn't give collections access to hasOwnProperty. Assume inputs
- // without method will throw during the slice call and skip straight to the
- // fallback.
- if (obj.hasOwnProperty) {
- try {
- return Array.prototype.slice.call(obj);
- } catch (e) {
- // IE < 9 does not support Array#slice on collections objects
- }
- }
-
- // Fall back to copying key by key. This assumes all keys have a value,
- // so will not preserve sparsely populated inputs.
- var ret = Array(length);
- for (var ii = 0; ii < length; ii++) {
- ret[ii] = obj[ii];
- }
- return ret;
- }
-
- /**
- * Perform a heuristic test to determine if an object is "array-like".
- *
- * A monk asked Joshu, a Zen master, "Has a dog Buddha nature?"
- * Joshu replied: "Mu."
- *
- * This function determines if its argument has "array nature": it returns
- * true if the argument is an actual array, an `arguments' object, or an
- * HTMLCollection (e.g. node.childNodes or node.getElementsByTagName()).
- *
- * It will return false for other array-like objects like Filelist.
- *
- * @param {*} obj
- * @return {boolean}
- */
- function hasArrayNature(obj) {
- return (
- // not null/false
- !!obj && (
- // arrays are objects, NodeLists are functions in Safari
- typeof obj == 'object' || typeof obj == 'function') &&
- // quacks like an array
- 'length' in obj &&
- // not window
- !('setInterval' in obj) &&
- // no DOM node should be considered an array-like
- // a 'select' element has 'length' and 'item' properties on IE8
- typeof obj.nodeType != 'number' && (
- // a real array
- Array.isArray(obj) ||
- // arguments
- 'callee' in obj ||
- // HTMLCollection/NodeList
- 'item' in obj)
- );
- }
-
- /**
- * Ensure that the argument is an array by wrapping it in an array if it is not.
- * Creates a copy of the argument if it is already an array.
- *
- * This is mostly useful idiomatically:
- *
- * var createArrayFromMixed = require('createArrayFromMixed');
- *
- * function takesOneOrMoreThings(things) {
- * things = createArrayFromMixed(things);
- * ...
- * }
- *
- * This allows you to treat `things' as an array, but accept scalars in the API.
- *
- * If you need to convert an array-like object, like `arguments`, into an array
- * use toArray instead.
- *
- * @param {*} obj
- * @return {array}
- */
- function createArrayFromMixed(obj) {
- if (!hasArrayNature(obj)) {
- return [obj];
- } else if (Array.isArray(obj)) {
- return obj.slice();
- } else {
- return toArray(obj);
- }
- }
-
- module.exports = createArrayFromMixed;
-
-/***/ },
-/* 251 */
-/***/ function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- /**
- * Copyright (c) 2013-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- *
- * @typechecks
- */
-
- /*eslint-disable fb-www/unsafe-html*/
-
- var ExecutionEnvironment = __webpack_require__(11);
-
- var createArrayFromMixed = __webpack_require__(250);
- var getMarkupWrap = __webpack_require__(252);
- var invariant = __webpack_require__(3);
-
- /**
- * Dummy container used to render all markup.
- */
- var dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;
-
- /**
- * Pattern used by `getNodeName`.
- */
- var nodeNamePattern = /^\s*<(\w+)/;
-
- /**
- * Extracts the `nodeName` of the first element in a string of markup.
- *
- * @param {string} markup String of markup.
- * @return {?string} Node name of the supplied markup.
- */
- function getNodeName(markup) {
- var nodeNameMatch = markup.match(nodeNamePattern);
- return nodeNameMatch && nodeNameMatch[1].toLowerCase();
- }
-
- /**
- * Creates an array containing the nodes rendered from the supplied markup. The
- * optionally supplied `handleScript` function will be invoked once for each
- *