From 413f33c9b3b2d5d1ef418b65149b83617ddde14d Mon Sep 17 00:00:00 2001 From: Paulo Gustavo Veiga Date: Sat, 26 Feb 2022 16:43:25 -0800 Subject: [PATCH 01/32] Migration to TS --- .../mindplot/src/components/ActionIcon.js | 64 ------------------- packages/mindplot/src/components/Designer.ts | 6 +- ...ctionRunner.js => DesignerActionRunner.ts} | 23 +++++-- packages/mindplot/src/components/DragPivot.ts | 5 +- .../src/components/DragTopicConfig.js | 5 -- ...ditorProperties.js => EditorProperties.ts} | 9 +-- packages/mindplot/src/components/Icon.ts | 4 +- .../mindplot/src/components/NodeGraphUtils.js | 37 ----------- packages/mindplot/src/components/Topic.ts | 57 ++++++----------- .../mindplot/src/components/TopicFactory.ts | 27 ++++++++ .../mindplot/src/components/TopicFeature.js | 4 +- .../src/components/model/INodeModel.ts | 2 +- .../mindplot/src/components/util/index.js | 7 -- 13 files changed, 80 insertions(+), 170 deletions(-) delete mode 100644 packages/mindplot/src/components/ActionIcon.js rename packages/mindplot/src/components/{DesignerActionRunner.js => DesignerActionRunner.ts} (75%) delete mode 100644 packages/mindplot/src/components/DragTopicConfig.js rename packages/mindplot/src/components/{EditorProperties.js => EditorProperties.ts} (90%) delete mode 100644 packages/mindplot/src/components/NodeGraphUtils.js create mode 100644 packages/mindplot/src/components/TopicFactory.ts delete mode 100644 packages/mindplot/src/components/util/index.js diff --git a/packages/mindplot/src/components/ActionIcon.js b/packages/mindplot/src/components/ActionIcon.js deleted file mode 100644 index 6f303f3d..00000000 --- a/packages/mindplot/src/components/ActionIcon.js +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright [2021] [wisemapping] - * - * Licensed under WiseMapping Public License, Version 1.0 (the "License"). - * It is basically the Apache License, Version 2.0 (the "License") plus the - * "powered by wisemapping" text requirement on every single page; - * you may not use this file except in compliance with the License. - * You may obtain a copy of the license at - * - * http://www.wisemapping.org/license - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import Icon from './Icon'; - -class ActionIcon extends Icon { - constructor(topic, url) { - super(url); - this._node = topic; - } - - getNode() { - return this._node; - } - - setPosition(x, y) { - const size = this.getSize(); - this.getImage().setPosition(x - size.width / 2, y - size.height / 2); - } - - addEvent(event, fn) { - this.getImage().addEvent(event, fn); - } - - addToGroup(group) { - group.append(this.getImage()); - } - - setVisibility(visible) { - this.getImage().setVisibility(visible); - } - - isVisible() { - return this.getImage().isVisible(); - } - - setCursor(cursor) { - return this.getImage().setCursor(cursor); - } - - moveToBack(cursor) { - return this.getImage().moveToBack(cursor); - } - - moveToFront(cursor) { - return this.getImage().moveToFront(cursor); - } -} - -export default ActionIcon; diff --git a/packages/mindplot/src/components/Designer.ts b/packages/mindplot/src/components/Designer.ts index 4c47beec..fef23da9 100644 --- a/packages/mindplot/src/components/Designer.ts +++ b/packages/mindplot/src/components/Designer.ts @@ -39,7 +39,7 @@ import Relationship from './Relationship'; import TopicEventDispatcher, { TopicEvent } from './TopicEventDispatcher'; import TopicFeatureFactory from './TopicFeature'; -import { create } from './NodeGraphUtils'; +import TopicFactory from './TopicFactory'; import EventBus from './layout/EventBus'; import EventBusDispatcher from './layout/EventBusDispatcher'; @@ -225,9 +225,9 @@ class Designer extends Events { return dragManager; } - private _buildNodeGraph(model: NodeModel, readOnly: boolean): MainTopic { + private _buildNodeGraph(model: NodeModel, readOnly: boolean): Topic { // Create node graph ... - const topic = create(model, { readOnly }); + const topic = TopicFactory.create(model, { readOnly }); this.getModel().addTopic(topic); const me = this; // Add Topic events ... diff --git a/packages/mindplot/src/components/DesignerActionRunner.js b/packages/mindplot/src/components/DesignerActionRunner.ts similarity index 75% rename from packages/mindplot/src/components/DesignerActionRunner.js rename to packages/mindplot/src/components/DesignerActionRunner.ts index d679146f..cd578c30 100644 --- a/packages/mindplot/src/components/DesignerActionRunner.js +++ b/packages/mindplot/src/components/DesignerActionRunner.ts @@ -16,19 +16,28 @@ * limitations under the License. */ import { $assert } from '@wisemapping/core-js'; +import ActionDispatcher from './ActionDispatcher'; +import Command from './Command'; +import CommandContext from './CommandContext'; import DesignerUndoManager from './DesignerUndoManager'; import EventBus from './layout/EventBus'; class DesignerActionRunner { - constructor(commandContext, notifier) { + private _undoManager: DesignerUndoManager; + + private _context: CommandContext; + + private _actionDisplatcher: ActionDispatcher; + + constructor(commandContext: CommandContext, notifier: ActionDispatcher) { $assert(commandContext, 'commandContext can not be null'); this._undoManager = new DesignerUndoManager(); this._context = commandContext; - this._notifier = notifier; + this._actionDisplatcher = notifier; } - execute(command) { + execute(command: Command): void { $assert(command, 'command can not be null'); command.execute(this._context); this._undoManager.enqueue(command); @@ -36,21 +45,21 @@ class DesignerActionRunner { EventBus.instance.fireEvent(EventBus.events.DoLayout); } - undo() { + undo(): void { this._undoManager.execUndo(this._context); this.fireChangeEvent(); EventBus.instance.fireEvent(EventBus.events.DoLayout); } - redo() { + redo(): void { this._undoManager.execRedo(this._context); this.fireChangeEvent(); EventBus.instance.fireEvent(EventBus.events.DoLayout); } - fireChangeEvent() { + fireChangeEvent(): void { const event = this._undoManager.buildEvent(); - this._notifier.fireEvent('modelUpdate', event); + this._actionDisplatcher.fireEvent('modelUpdate', event); } } diff --git a/packages/mindplot/src/components/DragPivot.ts b/packages/mindplot/src/components/DragPivot.ts index 15191854..deabd39f 100644 --- a/packages/mindplot/src/components/DragPivot.ts +++ b/packages/mindplot/src/components/DragPivot.ts @@ -18,7 +18,6 @@ import { $assert, $defined } from '@wisemapping/core-js'; import { Point, CurvedLine, Rect } from '@wisemapping/web2d'; -import DragTopicConfig from './DragTopicConfig'; import SizeType from './SizeType'; import Topic from './Topic'; import Shape from './util/Shape'; @@ -43,7 +42,7 @@ class DragPivot { constructor() { this._position = new Point(); - this._size = DragTopicConfig.PIVOT_SIZE; + this._size = DragPivot.DEFAULT_PIVOT_SIZE; this._straightLine = this._buildStraightLine(); this._curvedLine = this._buildCurvedLine(); @@ -251,6 +250,8 @@ class DragPivot { this.setVisibility(false); this._targetTopic = null; } + + static DEFAULT_PIVOT_SIZE = { width: 50, height: 6 }; } export default DragPivot; diff --git a/packages/mindplot/src/components/DragTopicConfig.js b/packages/mindplot/src/components/DragTopicConfig.js deleted file mode 100644 index 6f2d6a03..00000000 --- a/packages/mindplot/src/components/DragTopicConfig.js +++ /dev/null @@ -1,5 +0,0 @@ -const PIVOT_SIZE = { width: 50, height: 6 }; - -export default { - PIVOT_SIZE, -}; diff --git a/packages/mindplot/src/components/EditorProperties.js b/packages/mindplot/src/components/EditorProperties.ts similarity index 90% rename from packages/mindplot/src/components/EditorProperties.js rename to packages/mindplot/src/components/EditorProperties.ts index 35a77fc0..31a47626 100644 --- a/packages/mindplot/src/components/EditorProperties.js +++ b/packages/mindplot/src/components/EditorProperties.ts @@ -17,20 +17,21 @@ */ class EditorProperties { + private _zoom: number; + constructor() { this._zoom = 0; - this._position = 0; } - setZoom(zoom) { + setZoom(zoom: number) { this._zoom = zoom; } - getZoom() { + getZoom(): number { return this._zoom; } - asProperties() { + asProperties(): string { return `zoom=${this._zoom}\n`; } } diff --git a/packages/mindplot/src/components/Icon.ts b/packages/mindplot/src/components/Icon.ts index b1b5a65d..7365a9cb 100644 --- a/packages/mindplot/src/components/Icon.ts +++ b/packages/mindplot/src/components/Icon.ts @@ -16,14 +16,14 @@ * limitations under the License. */ import { $assert } from '@wisemapping/core-js'; -import { Image } from '@wisemapping/web2d'; +import { Image, Point } from '@wisemapping/web2d'; import IconGroup from './IconGroup'; -import { Point } from '@wisemapping/web2d'; import SizeType from './SizeType'; import FeatureModel from './model/FeatureModel'; abstract class Icon { protected _image: Image; + protected _group: IconGroup; constructor(url: string) { diff --git a/packages/mindplot/src/components/NodeGraphUtils.js b/packages/mindplot/src/components/NodeGraphUtils.js deleted file mode 100644 index 9cb034d8..00000000 --- a/packages/mindplot/src/components/NodeGraphUtils.js +++ /dev/null @@ -1,37 +0,0 @@ -import { $assert } from '@wisemapping/core-js'; - -import CentralTopic from './CentralTopic'; -import MainTopic from './MainTopic'; - -/** - * creates a new topic from the given node model - * @memberof mindplot.Nodegraph - * @param {mindplot.model.NodeModel} nodeModel - * @param {Object} options - * @throws will throw an error if nodeModel is null or undefined - * @throws will throw an error if the nodeModel's type is null or undefined - * @throws will throw an error if the node type cannot be recognized as either central or main - * topic type - * @return {mindplot.CentralTopic|mindplot.MainTopic} the new topic - */ -export const create = (nodeModel, options) => { - $assert(nodeModel, 'Model can not be null'); - - const type = nodeModel.getType(); - $assert(type, 'Node model type can not be null'); - - let result; - if (type === 'CentralTopic') { - result = new CentralTopic(nodeModel, options); - } else if (type === 'MainTopic') { - result = new MainTopic(nodeModel, options); - } else { - $assert(false, `unsupported node type:${type}`); - } - - return result; -}; - -export default { - create, -}; diff --git a/packages/mindplot/src/components/Topic.ts b/packages/mindplot/src/components/Topic.ts index e9cb8c5d..c31fd1bc 100644 --- a/packages/mindplot/src/components/Topic.ts +++ b/packages/mindplot/src/components/Topic.ts @@ -431,7 +431,6 @@ abstract class Topic extends NodeGraph { this.adjustShapes(); } - /** */ setFontSize(value: number, updateModel?: boolean) { const textShape = this.getTextShape(); textShape.setSize(value); @@ -443,8 +442,7 @@ abstract class Topic extends NodeGraph { this.adjustShapes(); } - /** */ - setFontStyle(value, updateModel) { + setFontStyle(value: string, updateModel?: boolean) { const textShape = this.getTextShape(); textShape.setStyle(value); if ($defined(updateModel) && updateModel) { @@ -454,8 +452,7 @@ abstract class Topic extends NodeGraph { this.adjustShapes(); } - /** */ - setFontWeight(value, updateModel) { + setFontWeight(value: string, updateModel?: boolean) { const textShape = this.getTextShape(); textShape.setWeight(value); if ($defined(updateModel) && updateModel) { @@ -465,7 +462,6 @@ abstract class Topic extends NodeGraph { this.adjustShapes(); } - /** */ getFontWeight() { const model = this.getModel(); let result = model.getFontWeight(); @@ -476,8 +472,7 @@ abstract class Topic extends NodeGraph { return result; } - /** */ - getFontFamily() { + getFontFamily(): string { const model = this.getModel(); let result = model.getFontFamily(); if (!$defined(result)) { @@ -487,8 +482,7 @@ abstract class Topic extends NodeGraph { return result; } - /** */ - getFontColor() { + getFontColor(): string { const model = this.getModel(); let result = model.getFontColor(); if (!$defined(result)) { @@ -498,8 +492,7 @@ abstract class Topic extends NodeGraph { return result; } - /** */ - getFontStyle() { + getFontStyle(): string { const model = this.getModel(); let result = model.getFontStyle(); if (!$defined(result)) { @@ -509,8 +502,7 @@ abstract class Topic extends NodeGraph { return result; } - /** */ - getFontSize() { + getFontSize(): number { const model = this.getModel(); let result = model.getFontSize(); if (!$defined(result)) { @@ -520,8 +512,7 @@ abstract class Topic extends NodeGraph { return result; } - /** */ - setFontColor(value, updateModel) { + setFontColor(value: string, updateModel?: boolean) { const textShape = this.getTextShape(); textShape.setColor(value); if ($defined(updateModel) && updateModel) { @@ -530,7 +521,7 @@ abstract class Topic extends NodeGraph { } } - _setText(text: string, updateModel: boolean) { + private _setText(text: string, updateModel?: boolean) { const textShape = this.getTextShape(); textShape.setText(text == null ? TopicStyle.defaultText(this) : text); @@ -540,7 +531,6 @@ abstract class Topic extends NodeGraph { } } - /** */ setText(text: string) { // Avoid empty nodes ... if (!text || $.trim(text).length === 0) { @@ -552,7 +542,6 @@ abstract class Topic extends NodeGraph { this.adjustShapes(); } - /** */ getText(): string { const model = this.getModel(); let result = model.getText(); @@ -562,12 +551,11 @@ abstract class Topic extends NodeGraph { return result; } - /** */ setBackgroundColor(color: string) { this._setBackgroundColor(color, true); } - _setBackgroundColor(color: string, updateModel: boolean) { + private _setBackgroundColor(color: string, updateModel: boolean) { const innerShape = this.getInnerShape(); innerShape.setFill(color); @@ -593,11 +581,11 @@ abstract class Topic extends NodeGraph { } /** */ - setBorderColor(color: string) { + setBorderColor(color: string): void { this._setBorderColor(color, true); } - _setBorderColor(color: string, updateModel: boolean) { + private _setBorderColor(color: string, updateModel: boolean): void { const innerShape = this.getInnerShape(); innerShape.setAttribute('strokeColor', color); @@ -612,8 +600,7 @@ abstract class Topic extends NodeGraph { } } - /** */ - getBorderColor() { + getBorderColor(): string { const model = this.getModel(); let result = model.getBorderColor(); if (!$defined(result)) { @@ -622,7 +609,7 @@ abstract class Topic extends NodeGraph { return result; } - _buildTopicShape() { + _buildTopicShape(): ElementClass { const groupAttributes = { width: 100, height: 100, @@ -660,17 +647,17 @@ abstract class Topic extends NodeGraph { group.setTestId(model.getId()); } - _registerDefaultListenersToElement(elem, topic) { - const mouseOver = function mouseOver(event) { + _registerDefaultListenersToElement(elem: ElementClass, topic: Topic) { + const mouseOver = function mouseOver() { if (topic.isMouseEventsEnabled()) { - topic.handleMouseOver(event); + topic.handleMouseOver(); } }; elem.addEvent('mouseover', mouseOver); - const outout = function outout(event) { + const outout = function outout() { if (topic.isMouseEventsEnabled()) { - topic.handleMouseOut(event); + topic.handleMouseOut(); } }; elem.addEvent('mouseout', outout); @@ -697,13 +684,12 @@ abstract class Topic extends NodeGraph { } /** */ - areChildrenShrunken() { + areChildrenShrunken(): boolean { const model = this.getModel(); return model.areChildrenShrunken() && !this.isCentralTopic(); } - /** */ - isCollapsed() { + isCollapsed(): boolean { let result = false; let current = this.getParent(); @@ -714,8 +700,7 @@ abstract class Topic extends NodeGraph { return result; } - /** */ - setChildrenShrunken(value) { + setChildrenShrunken(value: boolean) { // Update Model ... const model = this.getModel(); model.setChildrenShrunken(value); diff --git a/packages/mindplot/src/components/TopicFactory.ts b/packages/mindplot/src/components/TopicFactory.ts new file mode 100644 index 00000000..03a7199c --- /dev/null +++ b/packages/mindplot/src/components/TopicFactory.ts @@ -0,0 +1,27 @@ +import { $assert } from '@wisemapping/core-js'; + +import CentralTopic from './CentralTopic'; +import MainTopic from './MainTopic'; +import NodeModel from './model/NodeModel'; +import Topic from './Topic'; + +class TopicFactory { + static create(nodeModel: NodeModel, options: object): Topic { + $assert(nodeModel, 'Model can not be null'); + + const type = nodeModel.getType(); + $assert(type, 'Node model type can not be null'); + + let result: Topic; + if (type === 'CentralTopic') { + result = new CentralTopic(nodeModel, options); + } else if (type === 'MainTopic') { + result = new MainTopic(nodeModel, options); + } else { + $assert(false, `unsupported node type:${type}`); + } + return result; + } +} + +export default TopicFactory; diff --git a/packages/mindplot/src/components/TopicFeature.js b/packages/mindplot/src/components/TopicFeature.js index 59161426..cf63f48b 100644 --- a/packages/mindplot/src/components/TopicFeature.js +++ b/packages/mindplot/src/components/TopicFeature.js @@ -45,8 +45,8 @@ const TopicFeatureFactory = { * @param {mindplot.model.FeatureModel} model * @param {Boolean} readOnly true if the editor is running in read-only mode * @throws will throw an error if topic is null or undefined - * @throws will throw an error if model is null or undefined - * @return {mindplot.Icon} a new instance of the icon subclass matching the topic feature + * @throws will throw v an error if model is null or undefined + * @return {mindplot.n,nmn mn4 r be5qnwwddwsz5on} a new instance of the icon subclass matching the topic feature */ createIcon(topic, model, readOnly) { $assert(topic, 'topic can not be null'); diff --git a/packages/mindplot/src/components/model/INodeModel.ts b/packages/mindplot/src/components/model/INodeModel.ts index df7c2e0d..9cc60bab 100644 --- a/packages/mindplot/src/components/model/INodeModel.ts +++ b/packages/mindplot/src/components/model/INodeModel.ts @@ -287,7 +287,7 @@ abstract class INodeModel { abstract getPropertiesKeys(): string[]; - abstract getProperty(key: string): number | string | boolean; + abstract getProperty(key: string): number | string | boolean | undefined; abstract putProperty(key: string, value: number | string | boolean): void; diff --git a/packages/mindplot/src/components/util/index.js b/packages/mindplot/src/components/util/index.js deleted file mode 100644 index 0dedb597..00000000 --- a/packages/mindplot/src/components/util/index.js +++ /dev/null @@ -1,7 +0,0 @@ -import fadeEffect from './FadeEffect'; -import shape from './Shape'; - -export default { - FadeEffect: fadeEffect, - Shape: shape, -}; From 58c08b467eb1680cf0c4d741457925fcbcf69180 Mon Sep 17 00:00:00 2001 From: Paulo Gustavo Veiga Date: Mon, 28 Feb 2022 16:12:45 -0800 Subject: [PATCH 02/32] Change to typescript --- .../mindplot/src/components/CommandContext.ts | 2 +- .../mindplot/src/components/ConnectionLine.ts | 4 +- packages/mindplot/src/components/Designer.ts | 38 ++---- .../src/components/DesignerActionRunner.ts | 6 +- .../mindplot/src/components/DragManager.ts | 15 +-- packages/mindplot/src/components/DragTopic.ts | 42 +++--- packages/mindplot/src/components/Events.ts | 30 ++--- .../mindplot/src/components/Relationship.ts | 6 +- .../src/components/ShrinkConnector.ts | 4 +- .../components/StandaloneActionDispatcher.ts | 3 +- packages/mindplot/src/components/Topic.ts | 80 +++++------- .../mindplot/src/components/TopicFeature.js | 8 -- .../commands/AddFeatureToTopicCommand.ts | 7 - .../layout/ChildrenSorterStrategy.ts | 24 ++-- .../layout/{EventBus.js => EventBus.ts} | 33 +++-- ...BusDispatcher.js => EventBusDispatcher.ts} | 55 ++++---- .../{LayoutManager.js => LayoutManager.ts} | 121 +++++------------- .../src/components/layout/RootedTreeSet.ts | 15 +-- packages/web2d/src/components/ElementClass.js | 16 +-- .../src/components/peer/svg/ElementPeer.js | 13 +- packages/web2d/test/playground/shapes.html | 2 +- packages/web2d/test/playground/shapes.js | 13 +- 22 files changed, 191 insertions(+), 346 deletions(-) rename packages/mindplot/src/components/layout/{EventBus.js => EventBus.ts} (60%) rename packages/mindplot/src/components/layout/{EventBusDispatcher.js => EventBusDispatcher.ts} (57%) rename packages/mindplot/src/components/layout/{LayoutManager.js => LayoutManager.ts} (64%) diff --git a/packages/mindplot/src/components/CommandContext.ts b/packages/mindplot/src/components/CommandContext.ts index 549d1306..3d489b78 100644 --- a/packages/mindplot/src/components/CommandContext.ts +++ b/packages/mindplot/src/components/CommandContext.ts @@ -116,7 +116,7 @@ class CommandContext { moveTopic(topic: Topic, position: Point) { $assert(topic, 'topic cannot be null'); $assert(position, 'position cannot be null'); - EventBus.instance.fireEvent(EventBus.events.NodeMoveEvent, { + EventBus.instance.fireEvent('topicMoved', { node: topic.getModel(), position, }); diff --git a/packages/mindplot/src/components/ConnectionLine.ts b/packages/mindplot/src/components/ConnectionLine.ts index d54817f5..8edd38d6 100644 --- a/packages/mindplot/src/components/ConnectionLine.ts +++ b/packages/mindplot/src/components/ConnectionLine.ts @@ -93,8 +93,8 @@ class ConnectionLine { return line; } - setVisibility(value: boolean): void { - this._line2d.setVisibility(value); + setVisibility(value: boolean, fade = 0): void { + this._line2d.setVisibility(value, fade); } isVisible() { diff --git a/packages/mindplot/src/components/Designer.ts b/packages/mindplot/src/components/Designer.ts index fef23da9..b1ab5dae 100644 --- a/packages/mindplot/src/components/Designer.ts +++ b/packages/mindplot/src/components/Designer.ts @@ -53,7 +53,6 @@ import Mindmap from './model/Mindmap'; import NodeModel from './model/NodeModel'; import Topic from './Topic'; import { DesignerOptions } from './DesignerOptionsBuilder'; -import MainTopic from './MainTopic'; import DragTopic from './DragTopic'; import CentralTopic from './CentralTopic'; import FeatureType from './model/FeatureType'; @@ -606,7 +605,7 @@ class Designer extends Events { this.goToNode(centralTopic); // Finally, sort the map ... - EventBus.instance.fireEvent(EventBus.events.DoLayout); + EventBus.instance.fireEvent('forceLayout'); this.fireEvent('loadSuccess'); } @@ -695,12 +694,6 @@ class Designer extends Events { mindmap.deleteRelationship(rel.getModel()); } - /** - * @private - * @param {mindplot.model.RelationshipModel} model - * @return {mindplot.Relationship} the new relationship with events registered - * @throws will throw an error if the target topic cannot be found - */ private _buildRelationshipShape(model: RelationshipModel): Relationship { const dmodel = this.getModel(); @@ -744,13 +737,9 @@ class Designer extends Events { return result; } - /** - * @param {mindplot.Topic} node the topic to remove - * removes the given topic and its children from Workspace, DesignerModel and NodeModel - */ - removeTopic(node) { + removeTopic(node: Topic): void { if (!node.isCentralTopic()) { - const parent = node._parent; + const parent = node.getParent(); node.disconnect(this._workspace); // remove children @@ -771,17 +760,13 @@ class Designer extends Events { } } - /** - * @private - */ - _resetEdition() { + private _resetEdition() { const screenManager = this._workspace.getScreenManager(); screenManager.fireEvent('update'); screenManager.fireEvent('mouseup'); this._relPivot.dispose(); } - /** */ deleteSelectedEntities() { // Is there some action in progress ?. this._resetEdition(); @@ -840,7 +825,7 @@ class Designer extends Events { /** */ changeBackgroundColor(color: string) { - const validateFunc = (topic) => topic.getShapeType() !== TopicShape.LINE; + const validateFunc = (topic: Topic) => topic.getShapeType() !== TopicShape.LINE; const validateError = 'Color can not be set to line topics.'; const topicsIds = this.getModel().filterTopicsIds(validateFunc, validateError); @@ -849,9 +834,8 @@ class Designer extends Events { } } - /** */ changeBorderColor(color: string) { - const validateFunc = (topic) => topic.getShapeType() !== TopicShape.LINE; + const validateFunc = (topic: Topic) => topic.getShapeType() !== TopicShape.LINE; const validateError = 'Color can not be set to line topics.'; const topicsIds = this.getModel().filterTopicsIds(validateFunc, validateError); if (topicsIds.length > 0) { @@ -859,7 +843,6 @@ class Designer extends Events { } } - /** */ changeFontSize(size: number) { const topicsIds = this.getModel().filterTopicsIds(); if (topicsIds.length > 0) { @@ -895,11 +878,7 @@ class Designer extends Events { } } - /** - * lets the selected topic open the link editor where the user can define or modify an - * existing link - */ - addLink() { + addLink(): void { const model = this.getModel(); const topic = model.selectedTopic(); if (topic) { @@ -908,8 +887,7 @@ class Designer extends Events { } } - /** */ - addNote() { + addNote(): void { const model = this.getModel(); const topic = model.selectedTopic(); if (topic) { diff --git a/packages/mindplot/src/components/DesignerActionRunner.ts b/packages/mindplot/src/components/DesignerActionRunner.ts index cd578c30..5f5c2096 100644 --- a/packages/mindplot/src/components/DesignerActionRunner.ts +++ b/packages/mindplot/src/components/DesignerActionRunner.ts @@ -42,19 +42,19 @@ class DesignerActionRunner { command.execute(this._context); this._undoManager.enqueue(command); this.fireChangeEvent(); - EventBus.instance.fireEvent(EventBus.events.DoLayout); + EventBus.instance.fireEvent('forceLayout'); } undo(): void { this._undoManager.execUndo(this._context); this.fireChangeEvent(); - EventBus.instance.fireEvent(EventBus.events.DoLayout); + EventBus.instance.fireEvent('forceLayout'); } redo(): void { this._undoManager.execRedo(this._context); this.fireChangeEvent(); - EventBus.instance.fireEvent(EventBus.events.DoLayout); + EventBus.instance.fireEvent('forceLayout'); } fireChangeEvent(): void { diff --git a/packages/mindplot/src/components/DragManager.ts b/packages/mindplot/src/components/DragManager.ts index 56bb3021..41607fcd 100644 --- a/packages/mindplot/src/components/DragManager.ts +++ b/packages/mindplot/src/components/DragManager.ts @@ -24,8 +24,6 @@ import Workspace from './Workspace'; class DragManager { private _workspace: Workspace; - private _designerModel: Workspace; - private _isDragInProcess: boolean; private _eventDispatcher: EventBusDispatcher; @@ -38,7 +36,6 @@ class DragManager { constructor(workspace: Workspace, eventDispatcher: EventBusDispatcher) { this._workspace = workspace; - this._designerModel = workspace; this._listeners = {}; this._isDragInProcess = false; this._eventDispatcher = eventDispatcher; @@ -68,7 +65,7 @@ class DragManager { // Register mouse up listeners ... const mouseUpListener = dragManager._buildMouseUpListener( - workspace, topic, dragNode, dragManager, + workspace, dragNode, dragManager, ); screen.addEvent('mouseup', mouseUpListener); @@ -115,7 +112,7 @@ class DragManager { return result; } - protected _buildMouseUpListener(workspace: Workspace, topic: Topic, dragNode, dragManager: DragManager) { + protected _buildMouseUpListener(workspace: Workspace, dragNode, dragManager: DragManager) { const screen = workspace.getScreenManager(); const me = this; const result = (event: Event) => { @@ -149,13 +146,7 @@ class DragManager { return result; } - /** - * type: - * - startdragging. - * - dragging - * - enddragging - */ - addEvent(type: string, listener) { + addEvent(type: 'startdragging' | 'dragging' | 'enddragging', listener) { this._listeners[type] = listener; } } diff --git a/packages/mindplot/src/components/DragTopic.ts b/packages/mindplot/src/components/DragTopic.ts index 9d9c23a4..be51a848 100644 --- a/packages/mindplot/src/components/DragTopic.ts +++ b/packages/mindplot/src/components/DragTopic.ts @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { $assert, $defined } from '@wisemapping/core-js'; +import { $assert } from '@wisemapping/core-js'; import { Point, ElementClass } from '@wisemapping/web2d'; import ActionDispatcher from './ActionDispatcher'; @@ -27,12 +27,19 @@ import Workspace from './Workspace'; class DragTopic { private _elem2d: ElementClass; + private _order: number | null; + private _draggedNode: NodeGraph; + private _layoutManager: LayoutManager; - private _position: any; + + private _position: Point; + private _isInWorkspace: boolean; - static _dragPivot: any; + + static _dragPivot: DragPivot = new DragPivot(); + constructor(dragShape: ElementClass, draggedNode: NodeGraph, layoutManger: LayoutManager) { $assert(dragShape, 'Rect can not be null.'); $assert(draggedNode, 'draggedNode can not be null.'); @@ -46,13 +53,13 @@ class DragTopic { this._isInWorkspace = false; } - setOrder(order: number) { + setOrder(order: number): void { this._order = order; } - setPosition(x: number, y: number) { + setPosition(x: number, y: number): void { // Update drag shadow position .... - let position = { x, y }; + const position = { x, y }; this._position.setValue(position.x, position.y); // Elements are positioned in the center. @@ -104,11 +111,7 @@ class DragTopic { $assert(parent, 'Parent connection node can not be null.'); // Where it should be connected ? - - // @todo: This is a hack for the access of the editor. - // It's required to review why this is needed forcing the declaration of a global variable. - - const predict = global.designer._eventBussDispatcher._layoutManager.predict( + const predict = this._layoutManager.predict( parent.getId(), this._draggedNode.getId(), this.getPosition(), @@ -154,8 +157,8 @@ class DragTopic { } } - _getDragPivot(): DragPivot { - return DragTopic.__getDragPivot(); + private _getDragPivot(): DragPivot { + return DragTopic._dragPivot; } getPosition(): Point { @@ -206,18 +209,9 @@ class DragTopic { static init(workspace: Workspace) { $assert(workspace, 'workspace can not be null'); - const pivot = DragTopic.__getDragPivot(); + const pivot = DragTopic._dragPivot; workspace.append(pivot); - }; - - static __getDragPivot() { - let result = DragTopic._dragPivot; - if (!$defined(result)) { - result = new DragPivot(); - DragTopic._dragPivot = result; - } - return result; - }; + } } export default DragTopic; diff --git a/packages/mindplot/src/components/Events.ts b/packages/mindplot/src/components/Events.ts index 80c39d12..41cf1277 100644 --- a/packages/mindplot/src/components/Events.ts +++ b/packages/mindplot/src/components/Events.ts @@ -17,24 +17,24 @@ */ class Events { - private $events; + private _handlerByType; constructor() { - this.$events = {}; + this._handlerByType = {}; } - static _removeOn(string: string) { - return string.replace(/^on([A-Z])/, (full, first) => first.toLowerCase()); + static _normalizeEventName(string: string) { + return string.replace(/^on([A-Z])/, (_full, first) => first.toLowerCase()); } addEvent(typeName: string, fn?, internal?: boolean): Events { - const type = Events._removeOn(typeName); + const type = Events._normalizeEventName(typeName); // Add function had not been added yet - const funByType = this.$events[type] ? this.$events[type] : []; + const funByType = this._handlerByType[type] ? this._handlerByType[type] : []; if (!funByType.includes(fn)) { funByType.push(fn); - this.$events[type] = funByType; + this._handlerByType[type] = funByType; } // Mark reference ... @@ -42,25 +42,21 @@ class Events { return this; } - fireEvent(typeName: string, eventArgs?, delay?: boolean): Events { - const type = Events._removeOn(typeName); - const events = this.$events[type]; + fireEvent(typeName: string, eventArgs?): Events { + const type = Events._normalizeEventName(typeName); + const events = this._handlerByType[type]; if (!events) return this; const args = Array.isArray(eventArgs) ? eventArgs : [eventArgs]; events.forEach(((fn) => { - if (delay) { - fn.delay(delay, this, args); - } else { - fn.apply(this, args); - } + fn.apply(this, args); })); return this; } removeEvent(typeName: string, fn?): Events { - const type = Events._removeOn(typeName); - const events = this.$events[type]; + const type = Events._normalizeEventName(typeName); + const events = this._handlerByType[type]; if (events && !fn.internal) { const index = events.indexOf(fn); if (index !== -1) events.splice(index, 1); diff --git a/packages/mindplot/src/components/Relationship.ts b/packages/mindplot/src/components/Relationship.ts index 782477e1..8b6cd4d7 100644 --- a/packages/mindplot/src/components/Relationship.ts +++ b/packages/mindplot/src/components/Relationship.ts @@ -277,10 +277,10 @@ class Relationship extends ConnectionLine { return this._isInWorkspace; } - setVisibility(value: boolean) { - super.setVisibility(value); + setVisibility(value: boolean, fade = 0) { + super.setVisibility(value, fade); if (this._showEndArrow) this._endArrow.setVisibility(this._showEndArrow); - this._startArrow.setVisibility(this._showStartArrow && value); + this._startArrow.setVisibility(this._showStartArrow && value, fade); } setOpacity(opacity: number) { diff --git a/packages/mindplot/src/components/ShrinkConnector.ts b/packages/mindplot/src/components/ShrinkConnector.ts index 271e690c..6d354722 100644 --- a/packages/mindplot/src/components/ShrinkConnector.ts +++ b/packages/mindplot/src/components/ShrinkConnector.ts @@ -78,8 +78,8 @@ class ShirinkConnector { this._isShrink = isShrink; } - setVisibility(value: boolean): void { - this._ellipse.setVisibility(value); + setVisibility(value: boolean, fade = 0): void { + this._ellipse.setVisibility(value, fade); } setOpacity(opacity: number): void { diff --git a/packages/mindplot/src/components/StandaloneActionDispatcher.ts b/packages/mindplot/src/components/StandaloneActionDispatcher.ts index 6d8c8f2e..011f8d44 100644 --- a/packages/mindplot/src/components/StandaloneActionDispatcher.ts +++ b/packages/mindplot/src/components/StandaloneActionDispatcher.ts @@ -81,7 +81,7 @@ class StandaloneActionDispatcher extends ActionDispatcher { const commandFunc = (topic: Topic, pos: Point) => { const result = topic.getPosition(); - EventBus.instance.fireEvent(EventBus.events.NodeMoveEvent, { + EventBus.instance.fireEvent('topicMoved', { node: topic.getModel(), position: pos, }); @@ -252,7 +252,6 @@ class StandaloneActionDispatcher extends ActionDispatcher { this.execute(command); } - /** */ addFeatureToTopic(topicId: number, featureType: FeatureType, attributes) { const command = new AddFeatureToTopicCommand(topicId, featureType, attributes); this.execute(command); diff --git a/packages/mindplot/src/components/Topic.ts b/packages/mindplot/src/components/Topic.ts index c31fd1bc..92b0080e 100644 --- a/packages/mindplot/src/components/Topic.ts +++ b/packages/mindplot/src/components/Topic.ts @@ -28,7 +28,6 @@ import TopicStyle from './TopicStyle'; import TopicFeatureFactory from './TopicFeature'; import ConnectionLine from './ConnectionLine'; import IconGroup from './IconGroup'; -import FadeEffect from './util/FadeEffect'; import EventBus from './layout/EventBus'; import ShirinkConnector from './ShrinkConnector'; import NoteEditor from './widget/NoteEditor'; @@ -337,11 +336,6 @@ abstract class Topic extends NodeGraph { return result; } - /** - * assigns the new feature model to the topic's node model and adds the respective icon - * @param {mindplot.model.FeatureModel} featureModel - * @return {mindplot.Icon} the icon corresponding to the feature model - */ addFeature(featureModel: FeatureModel): Icon { const iconGroup = this.getOrBuildIconGroup(); this.closeEditors(); @@ -350,7 +344,7 @@ abstract class Topic extends NodeGraph { const model = this.getModel(); model.addFeature(featureModel); - const result = TopicFeatureFactory.createIcon(this, featureModel, this.isReadOnly()); + const result: Icon = TopicFeatureFactory.createIcon(this, featureModel, this.isReadOnly()); iconGroup.addIcon( result, featureModel.getType() === TopicFeatureFactory.Icon.id && !this.isReadOnly(), @@ -360,7 +354,6 @@ abstract class Topic extends NodeGraph { return result; } - /** */ findFeatureById(id: number) { const model = this.getModel(); return model.findFeatureById(id); @@ -707,34 +700,21 @@ abstract class Topic extends NodeGraph { // Change render base on the state. const shrinkConnector = this.getShrinkConnector(); - if ($defined(shrinkConnector)) { + if (shrinkConnector) { shrinkConnector.changeRender(value); } // Do some fancy animation .... const elements = this._flatten2DElements(this); - const fade = new FadeEffect(elements, !value); - const me = this; - fade.addEvent('complete', () => { - // Set focus on the parent node ... - if (value) { - me.setOnFocus(true); - } - - // Set focus in false for all the children ... - elements.forEach((elem) => { - if (elem.setOnFocus) { - elem.setOnFocus(false); - } - }); + elements.forEach((elem) => { + elem.setVisibility(!value, 250) }); - fade.start(); - EventBus.instance.fireEvent(EventBus.events.NodeShrinkEvent, model); + EventBus.instance.fireEvent('childShrinked', model); + } - /** */ - getShrinkConnector(): ShirinkConnector { + getShrinkConnector(): ShirinkConnector | undefined { let result = this._connector; if (this._connector == null) { this._connector = new ShirinkConnector(this); @@ -925,19 +905,19 @@ abstract class Topic extends NodeGraph { } /** */ - setVisibility(value: boolean): void { - this._setTopicVisibility(value); + setVisibility(value: boolean, fade = 0): void { + this._setTopicVisibility(value, fade); // Hide all children... - this._setChildrenVisibility(value); + this._setChildrenVisibility(value, fade); // If there there are connection to the node, topic must be hidden. - this._setRelationshipLinesVisibility(value); + this._setRelationshipLinesVisibility(value, fade); // If it's connected, the connection must be rendered. const outgoingLine = this.getOutgoingLine(); if (outgoingLine) { - outgoingLine.setVisibility(value); + outgoingLine.setVisibility(value, fade); } } @@ -971,7 +951,7 @@ abstract class Topic extends NodeGraph { return elem.isVisible(); } - private _setRelationshipLinesVisibility(value: boolean): void { + private _setRelationshipLinesVisibility(value: boolean, fade = 0): void { this._relationships.forEach((relationship) => { const sourceTopic = relationship.getSourceTopic(); const targetTopic = relationship.getTargetTopic(); @@ -981,28 +961,28 @@ abstract class Topic extends NodeGraph { relationship.setVisibility( value && (targetParent == null || !targetParent.areChildrenShrunken()) - && (sourceParent == null || !sourceParent.areChildrenShrunken()), - ); + && (sourceParent == null || !sourceParent.areChildrenShrunken()) + , fade); }); } - private _setTopicVisibility(value: boolean) { + private _setTopicVisibility(value: boolean, fade = 0) { const elem = this.get2DElement(); - elem.setVisibility(value); + elem.setVisibility(value, fade); if (this.getIncomingLines().length > 0) { const connector = this.getShrinkConnector(); if ($defined(connector)) { - connector.setVisibility(value); + connector.setVisibility(value, fade); } } // Hide inner shape ... - this.getInnerShape().setVisibility(value); + this.getInnerShape().setVisibility(value, fade); // Hide text shape ... const textShape = this.getTextShape(); - textShape.setVisibility(this.getShapeType() !== TopicShape.IMAGE ? value : false); + textShape.setVisibility(this.getShapeType() !== TopicShape.IMAGE ? value : false, fade); } /** */ @@ -1018,14 +998,14 @@ abstract class Topic extends NodeGraph { textShape.setOpacity(opacity); } - private _setChildrenVisibility(isVisible: boolean) { + private _setChildrenVisibility(value: boolean, fade = 0) { // Hide all children. const children = this.getChildren(); const model = this.getModel(); - const visibility = isVisible ? !model.areChildrenShrunken() : isVisible; + const visibility = value ? !model.areChildrenShrunken() : value; children.forEach((child) => { - child.setVisibility(visibility); + child.setVisibility(visibility, fade); const outgoingLine = child.getOutgoingLine(); outgoingLine.setVisibility(visibility); }); @@ -1066,7 +1046,7 @@ abstract class Topic extends NodeGraph { this._updatePositionOnChangeSize(oldSize, roundedSize); if (hasSizeChanged) { - EventBus.instance.fireEvent(EventBus.events.NodeResizeEvent, { + EventBus.instance.fireEvent('topicResize', { node: this.getModel(), size: roundedSize, }); @@ -1097,7 +1077,7 @@ abstract class Topic extends NodeGraph { outgoingLine.removeFromWorkspace(workspace); // Remove from workspace. - EventBus.instance.fireEvent(EventBus.events.NodeDisconnectEvent, this.getModel()); + EventBus.instance.fireEvent('topicDisconect', this.getModel()); // Change text based on the current connection ... const model = this.getModel(); @@ -1180,7 +1160,7 @@ abstract class Topic extends NodeGraph { // Fire connection event ... if (this.isInWorkspace()) { - EventBus.instance.fireEvent(EventBus.events.NodeConnectEvent, { + EventBus.instance.fireEvent('topicConnected', { parentNode: targetTopic.getModel(), childNode: this.getModel(), }); @@ -1218,7 +1198,7 @@ abstract class Topic extends NodeGraph { workspace.removeChild(line); } this._isInWorkspace = false; - EventBus.instance.fireEvent(EventBus.events.NodeRemoved, this.getModel()); + EventBus.instance.fireEvent('topicRemoved', this.getModel()); } addToWorkspace(workspace: Workspace) { @@ -1226,11 +1206,11 @@ abstract class Topic extends NodeGraph { workspace.append(elem); if (!this.isInWorkspace()) { if (!this.isCentralTopic()) { - EventBus.instance.fireEvent(EventBus.events.NodeAdded, this.getModel()); + EventBus.instance.fireEvent('topicAdded', this.getModel()); } if (this.getModel().isConnected()) { - EventBus.instance.fireEvent(EventBus.events.NodeConnectEvent, { + EventBus.instance.fireEvent('topicConnected', { parentNode: this.getOutgoingConnectedTopic().getModel(), childNode: this.getModel(), }); @@ -1300,7 +1280,7 @@ abstract class Topic extends NodeGraph { } } - private _flatten2DElements(topic: Topic) { + private _flatten2DElements(topic: Topic): (Topic | Relationship)[] { let result = []; const children = topic.getChildren(); diff --git a/packages/mindplot/src/components/TopicFeature.js b/packages/mindplot/src/components/TopicFeature.js index cf63f48b..96c3e3a6 100644 --- a/packages/mindplot/src/components/TopicFeature.js +++ b/packages/mindplot/src/components/TopicFeature.js @@ -40,14 +40,6 @@ const TopicFeatureFactory = { icon: NoteIcon, }, - /** - * @param {mindplot.Topic} topic - * @param {mindplot.model.FeatureModel} model - * @param {Boolean} readOnly true if the editor is running in read-only mode - * @throws will throw an error if topic is null or undefined - * @throws will throw v an error if model is null or undefined - * @return {mindplot.n,nmn mn4 r be5qnwwddwsz5on} a new instance of the icon subclass matching the topic feature - */ createIcon(topic, model, readOnly) { $assert(topic, 'topic can not be null'); $assert(model, 'model can not be null'); diff --git a/packages/mindplot/src/components/commands/AddFeatureToTopicCommand.ts b/packages/mindplot/src/components/commands/AddFeatureToTopicCommand.ts index 952e6562..539edf5a 100644 --- a/packages/mindplot/src/components/commands/AddFeatureToTopicCommand.ts +++ b/packages/mindplot/src/components/commands/AddFeatureToTopicCommand.ts @@ -52,9 +52,6 @@ class AddFeatureToTopicCommand extends Command { this._featureModel = null; } - /** - * Overrides abstract parent method - */ execute(commandContext: CommandContext) { const topic = commandContext.findTopics([this._topicId])[0]; @@ -66,10 +63,6 @@ class AddFeatureToTopicCommand extends Command { topic.addFeature(this._featureModel); } - /** - * Overrides abstract parent method - * @see {@link mindplot.Command.undoExecute} - */ undoExecute(commandContext: CommandContext) { const topic = commandContext.findTopics([this._topicId])[0]; topic.removeFeature(this._featureModel); diff --git a/packages/mindplot/src/components/layout/ChildrenSorterStrategy.ts b/packages/mindplot/src/components/layout/ChildrenSorterStrategy.ts index 0f69ea38..34419adb 100644 --- a/packages/mindplot/src/components/layout/ChildrenSorterStrategy.ts +++ b/packages/mindplot/src/components/layout/ChildrenSorterStrategy.ts @@ -1,6 +1,4 @@ -/* eslint-disable no-unused-vars */ -/* eslint-disable class-methods-use-this */ -/* +/** * Copyright [2021] [wisemapping] * * Licensed under WiseMapping Public License, Version 1.0 (the "License"). @@ -17,22 +15,26 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +import RootedTreeSet from "./RootedTreeSet"; +import Node from './Node'; +import PositionType from "../PositionType"; + abstract class ChildrenSorterStrategy { - abstract computeChildrenIdByHeights(treeSet, node); + abstract computeChildrenIdByHeights(treeSet: RootedTreeSet, node: Node); - abstract computeOffsets(treeSet, node); + abstract computeOffsets(treeSet: RootedTreeSet, node: Node); - abstract insert(treeSet, parent, child, order); + abstract insert(treeSet: RootedTreeSet, parent: Node, child: Node, order: number); - abstract detach(treeSet, node); + abstract detach(treeSet: RootedTreeSet, node: Node); - abstract predict(treeSet, parent, node, position, free); + abstract predict(treeSet: RootedTreeSet, parent, node: Node, position: PositionType); - abstract verify(treeSet, node); + abstract verify(treeSet: RootedTreeSet, node: Node); - abstract getChildDirection(treeSet, node); + abstract getChildDirection(treeSet: RootedTreeSet, node: Node); - abstract toString(); + abstract toString(): string; } export default ChildrenSorterStrategy; diff --git a/packages/mindplot/src/components/layout/EventBus.js b/packages/mindplot/src/components/layout/EventBus.ts similarity index 60% rename from packages/mindplot/src/components/layout/EventBus.js rename to packages/mindplot/src/components/layout/EventBus.ts index dca98b13..efb5c202 100644 --- a/packages/mindplot/src/components/layout/EventBus.js +++ b/packages/mindplot/src/components/layout/EventBus.ts @@ -17,25 +17,22 @@ */ import Events from '../Events'; +export type EventType = 'topicResize' | 'topicMoved' | 'childShrinked' | 'topicConnected' | 'topicAdded' | 'topicRemoved' | 'forceLayout' | 'topicDisconect'; class EventBus extends Events { + // eslint-disable-next-line no-use-before-define + static _instance: EventBus = new EventBus(); + + static get instance(): EventBus { + return this._instance; + } + + fireEvent(type: EventType, eventArgs?: unknown[] | unknown): Events { + return super.fireEvent(type, eventArgs); + } + + addEvent(type: EventType, fn?, internal?: boolean): Events { + return super.addEvent(type, fn, internal); + } } -/** - * Enum for events - * @enum {String} - */ -EventBus.events = { - NodeResizeEvent: 'NodeResizeEvent', - NodeMoveEvent: 'NodeMoveEvent', - NodeShrinkEvent: 'NodeShrinkEvent', - NodeConnectEvent: 'NodeConnectEvent', - NodeDisconnectEvent: 'NodeDisconnectEvent', - NodeAdded: 'NodeAdded', - NodeRemoved: 'NodeRemoved', - DoLayout: 'DoLayout', -}; - -/** instance */ -EventBus.instance = new EventBus(); - export default EventBus; diff --git a/packages/mindplot/src/components/layout/EventBusDispatcher.js b/packages/mindplot/src/components/layout/EventBusDispatcher.ts similarity index 57% rename from packages/mindplot/src/components/layout/EventBusDispatcher.js rename to packages/mindplot/src/components/layout/EventBusDispatcher.ts index e635a426..81b83ef9 100644 --- a/packages/mindplot/src/components/layout/EventBusDispatcher.js +++ b/packages/mindplot/src/components/layout/EventBusDispatcher.ts @@ -15,59 +15,57 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +import PositionType from '../PositionType'; +import SizeType from '../SizeType'; +import Topic from '../Topic'; import EventBus from './EventBus'; +import LayoutManager from './LayoutManager'; class EventBusDispatcher { + private _layoutManager: LayoutManager; + constructor() { this.registerBusEvents(); } - /** - * @param {mindplot.layout.LayoutManager} layoutManager - */ - setLayoutManager(layoutManager) { + setLayoutManager(layoutManager: LayoutManager) { this._layoutManager = layoutManager; } - /** - * register bus events - */ registerBusEvents() { - EventBus.instance.addEvent(EventBus.events.NodeAdded, this._nodeAdded.bind(this)); - EventBus.instance.addEvent(EventBus.events.NodeRemoved, this._nodeRemoved.bind(this)); - EventBus.instance.addEvent(EventBus.events.NodeResizeEvent, this._nodeResizeEvent.bind(this)); - EventBus.instance.addEvent(EventBus.events.NodeMoveEvent, this._nodeMoveEvent.bind(this)); - EventBus.instance.addEvent( - EventBus.events.NodeDisconnectEvent, this._nodeDisconnectEvent.bind(this), - ); - EventBus.instance.addEvent(EventBus.events.NodeConnectEvent, this._nodeConnectEvent.bind(this)); - EventBus.instance.addEvent(EventBus.events.NodeShrinkEvent, this._nodeShrinkEvent.bind(this)); - EventBus.instance.addEvent(EventBus.events.DoLayout, this._doLayout.bind(this)); + EventBus.instance.addEvent('topicAdded', this._topicAdded.bind(this)); + EventBus.instance.addEvent('topicRemoved', this._topicRemoved.bind(this)); + EventBus.instance.addEvent('topicResize', this._topicResizeEvent.bind(this)); + EventBus.instance.addEvent('topicMoved', this._topicMoved.bind(this)); + EventBus.instance.addEvent('topicDisconect', this._topicDisconect.bind(this)); + EventBus.instance.addEvent('topicConnected', this._topicConnected.bind(this)); + EventBus.instance.addEvent('childShrinked', this._childShrinked.bind(this)); + EventBus.instance.addEvent('forceLayout', this._forceLayout.bind(this)); } - _nodeResizeEvent(args) { + private _topicResizeEvent(args: { node: Topic, size: SizeType }) { this._layoutManager.updateNodeSize(args.node.getId(), args.size); } - _nodeMoveEvent(args) { + private _topicMoved(args: { node: Topic, position: PositionType }) { this._layoutManager.moveNode(args.node.getId(), args.position); } - _nodeDisconnectEvent(node) { + private _topicDisconect(node: Topic) { this._layoutManager.disconnectNode(node.getId()); } - _nodeConnectEvent(args) { + private _topicConnected(args: { parentNode: Topic, childNode: Topic }) { this._layoutManager.connectNode( args.parentNode.getId(), args.childNode.getId(), args.childNode.getOrder(), ); } - _nodeShrinkEvent(node) { + private _childShrinked(node: Topic) { this._layoutManager.updateShrinkState(node.getId(), node.areChildrenShrunken()); } - _nodeAdded(node) { + private _topicAdded(node: Topic) { // Central topic must not be added twice ... if (node.getId() !== 0) { this._layoutManager.addNode(node.getId(), { width: 10, height: 10 }, node.getPosition()); @@ -75,21 +73,14 @@ class EventBusDispatcher { } } - _nodeRemoved(node) { + private _topicRemoved(node: Topic) { this._layoutManager.removeNode(node.getId()); } - _doLayout() { - // (function() { + private _forceLayout() { this._layoutManager.layout(true); - // console.log("---------"); - // this._layoutManager.dump(); - // console.log("---------"); - // console.log("---------"); - // }).delay(0, this); } - /** @return layout manager */ getLayoutManager() { return this._layoutManager; } diff --git a/packages/mindplot/src/components/layout/LayoutManager.js b/packages/mindplot/src/components/layout/LayoutManager.ts similarity index 64% rename from packages/mindplot/src/components/layout/LayoutManager.js rename to packages/mindplot/src/components/layout/LayoutManager.ts index 4f38b269..64c9a1b9 100644 --- a/packages/mindplot/src/components/layout/LayoutManager.js +++ b/packages/mindplot/src/components/layout/LayoutManager.ts @@ -21,9 +21,18 @@ import Events from '../Events'; import RootedTreeSet from './RootedTreeSet'; import OriginalLayout from './OriginalLayout'; import ChangeEvent from './ChangeEvent'; +import SizeType from '../SizeType'; +import Node from './Node'; +import PositionType from '../PositionType'; class LayoutManager extends Events { - constructor(rootNodeId, rootSize) { + private _treeSet: RootedTreeSet; + + private _layout: OriginalLayout; + + private _events: ChangeEvent[]; + + constructor(rootNodeId: number, rootSize: SizeType) { super(); $assert($defined(rootNodeId), 'rootNodeId can not be null'); $assert(rootSize, 'rootSize can not be null'); @@ -36,40 +45,22 @@ class LayoutManager extends Events { this._events = []; } - /** - * @param id - * @param size - * @throws will throw an error if id is null or undefined - */ - updateNodeSize(id, size) { + updateNodeSize(id: number, size: SizeType): void { $assert($defined(id), 'id can not be null'); const node = this._treeSet.find(id); node.setSize(size); } - /** - * @param id - * @param value - * @throws will throw an error if id is null or undefined - * @throws will throw an error if value is null or undefined - * @return this - */ - updateShrinkState(id, value) { + updateShrinkState(id: number, value: boolean): void { $assert($defined(id), 'id can not be null'); $assert($defined(value), 'value can not be null'); const node = this._treeSet.find(id); node.setShrunken(value); - - return this; } - /** - * @param id - * @return {@link RootedTreeSet}.find(id) - */ - find(id) { + find(id: number): Node { return this._treeSet.find(id); } @@ -81,31 +72,17 @@ class LayoutManager extends Events { * @throws will throw an error if the position's x property is null or undefined * @throws will throw an error if the position's y property is null or undefined */ - moveNode(id, position) { + moveNode(id: number, position: PositionType) { $assert($defined(id), 'id cannot be null'); $assert($defined(position), 'position cannot be null'); $assert($defined(position.x), 'x can not be null'); $assert($defined(position.y), 'y can not be null'); const node = this._treeSet.find(id); - // @Todo: this should not be here. This is broking the isolated node support... - // node.setFree(true); - // node.setFreeDisplacement( - // {x:position.x - node.getPosition().x, y:position.y - node.getPosition().y} - // ); node.setPosition(position); } - /** - * @param parentId - * @param childId - * @param order - * @throws will throw an error if parentId is null or undefined - * @throws will throw an error if childId is null or undefined - * @throws will throw an error if order is null or undefined - * @return this - */ - connectNode(parentId, childId, order) { + connectNode(parentId: number, childId: number, order: number) { $assert($defined(parentId), 'parentId cannot be null'); $assert($defined(childId), 'childId cannot be null'); $assert($defined(order), 'order cannot be null'); @@ -115,16 +92,9 @@ class LayoutManager extends Events { return this; } - /** - * @param id - * @throws will throw an error if id is null or undefined - * @return this - */ - disconnectNode(id) { + disconnectNode(id: number): void { $assert($defined(id), 'id can not be null'); this._layout.disconnectNode(id); - - return this; } /** @@ -134,7 +104,7 @@ class LayoutManager extends Events { * @throws will throw an error if id is null or undefined * @return this */ - addNode(id, size, position) { + addNode(id: number, size: SizeType, position: PositionType) { $assert($defined(id), 'id can not be null'); const result = this._layout.createNode(id, size, position, 'topic'); this._treeSet.add(result); @@ -142,13 +112,7 @@ class LayoutManager extends Events { return this; } - /** - * removes a node and its connection to parent if existing - * @param id - * @throws will throw an error if id is null or undefined - * @return this - */ - removeNode(id) { + removeNode(id: number) { $assert($defined(id), 'id can not be null'); const node = this._treeSet.find(id); @@ -163,47 +127,31 @@ class LayoutManager extends Events { return this; } - /** - * @param {Number} parentId - * @param {Number=} nodeId - * @param {String=} position the position to use as mindplot.layout.Node.properties position - * property as '(x,y)' - * @param {Boolean=} free true specifies free node positioning - * @throws will throw an error if parentId is null or undefined - */ - predict(parentId, nodeId, position, free) { + predict(parentId: number, nodeId: number, position: PositionType): { order: number, position: PositionType } { $assert($defined(parentId), 'parentId can not be null'); const parent = this._treeSet.find(parentId); const node = nodeId ? this._treeSet.find(nodeId) : null; const sorter = parent.getSorter(); - const result = sorter.predict(this._treeSet, parent, node, position, free); + const result = sorter.predict(this._treeSet, parent, node, position); return { order: result[0], position: result[1] }; } - /** - * logs dump to console - */ dump() { console.log(this._treeSet.dump()); } - /** - * @param containerId - * @param {width:Number, height:Number} size - * @throws will throw an error if containerId is null or undefined - * @return canvas - */ - plot(containerId, size = { width: 200, height: 200 }) { + plot(containerId: string, size = { width: 200, height: 200 }) { // this method is only used from tests that include Raphael - if (!global.Raphael) { + + if (!globalThis.Raphael) { console.warn('Raphael.js not found, exiting plot()'); return null; } $assert(containerId, 'containerId cannot be null'); const squaresize = 10; - const canvas = global.Raphael(containerId, size.width, size.height); + const canvas = globalThis.Raphael(containerId, size.width, size.height); canvas.drawGrid( 0, 0, @@ -217,40 +165,33 @@ class LayoutManager extends Events { return canvas; } - /** - * initializes the layout to be updated - * @param fireEvents - * @return this - */ - layout(fireEvents) { + layout(flush: boolean): LayoutManager { // File repositioning ... this._layout.layout(); // Collect changes ... - this._collectChanges(); + this._collectChanges(this._treeSet.getTreeRoots()); - if ($(fireEvents).length > 0 || fireEvents) { + if (flush) { this._flushEvents(); } return this; } - _flushEvents() { + private _flushEvents() { this._events.forEach(((event) => { this.fireEvent('change', event); })); this._events = []; } - _collectChanges(nodes) { - const nodesToCollect = nodes || this._treeSet.getTreeRoots(); - - nodesToCollect.forEach(((node) => { + private _collectChanges(nodes: Node[]) { + nodes.forEach(((node) => { if (node.hasOrderChanged() || node.hasPositionChanged()) { // Find or create a event ... const id = node.getId(); - let event = this._events.some((e) => e.id === id); + let event: ChangeEvent = this._events.find((e) => e.getId() === id); if (!event) { event = new ChangeEvent(id); } diff --git a/packages/mindplot/src/components/layout/RootedTreeSet.ts b/packages/mindplot/src/components/layout/RootedTreeSet.ts index 8fb53fce..4637fe96 100644 --- a/packages/mindplot/src/components/layout/RootedTreeSet.ts +++ b/packages/mindplot/src/components/layout/RootedTreeSet.ts @@ -28,31 +28,20 @@ class RootedTreeSet { this._rootNodes = []; } - /** - * @param root - * @throws will throw an error if root is null or undefined - */ setRoot(root: Node) { $assert(root, 'root can not be null'); this._rootNodes.push(this._decodate(root)); } - /** getter */ - getTreeRoots() { + getTreeRoots(): Node[] { return this._rootNodes; } - _decodate(node: Node) { + _decodate(node: Node): Node { node._children = []; return node; } - /** - * @param {mindplot.model.NodeModel} node - * @throws will throw an error if node is null or undefined - * @throws will throw an error if node with id already exists - * @throws will throw an error if node has been added already - */ add(node: Node) { $assert(node, 'node can not be null'); if (this.find(node.getId(), false)) { diff --git a/packages/web2d/src/components/ElementClass.js b/packages/web2d/src/components/ElementClass.js index ca38d4af..7ff3dd97 100644 --- a/packages/web2d/src/components/ElementClass.js +++ b/packages/web2d/src/components/ElementClass.js @@ -161,12 +161,12 @@ class ElementClass { setStroke(width, style, color, opacity) { if ( style != null - && style !== undefined - && style !== 'dash' - && style !== 'dot' - && style !== 'solid' - && style !== 'longdash' - && style !== 'dashdot' + && style !== undefined + && style !== 'dash' + && style !== 'dot' + && style !== 'solid' + && style !== 'longdash' + && style !== 'dashdot' ) { throw new Error(`Unsupported stroke style: '${style}'`); } @@ -255,8 +255,8 @@ class ElementClass { this.peer.setFill(null, opacity); } - setVisibility(isVisible) { - this.peer.setVisibility(isVisible); + setVisibility(value, fade) { + this.peer.setVisibility(value, fade); } isVisible() { diff --git a/packages/web2d/src/components/peer/svg/ElementPeer.js b/packages/web2d/src/components/peer/svg/ElementPeer.js index e09f4058..77901330 100644 --- a/packages/web2d/src/components/peer/svg/ElementPeer.js +++ b/packages/web2d/src/components/peer/svg/ElementPeer.js @@ -181,11 +181,14 @@ class ElementPeer { } } - /* - * style='visibility: visible' - */ - setVisibility(isVisible) { - this._native.setAttribute('visibility', isVisible ? 'visible' : 'hidden'); + setVisibility(value, fade) { + this._native.setAttribute('visibility', value ? 'visible' : 'hidden'); + this._native.style.opacity = value ? 1 : 0; + if (fade) { + this._native.style.transition = `visibility ${fade}ms, opacity ${fade}ms`; + } else { + this._native.style.transition = null; + } } isVisible() { diff --git a/packages/web2d/test/playground/shapes.html b/packages/web2d/test/playground/shapes.html index c2708db0..2e5e5f09 100755 --- a/packages/web2d/test/playground/shapes.html +++ b/packages/web2d/test/playground/shapes.html @@ -66,7 +66,7 @@ - Visibility. + Visibility with CSS Transition
diff --git a/packages/web2d/test/playground/shapes.js b/packages/web2d/test/playground/shapes.js index 5b086e3c..8fbbe031 100644 --- a/packages/web2d/test/playground/shapes.js +++ b/packages/web2d/test/playground/shapes.js @@ -225,15 +225,14 @@ const visibilityTest = () => { rect.setPosition(120, 20); workspace.append(rect); rect.addEvent('mouseover', () => { - alert('Mouse Over'); + rect.setVisibility(false, 500); }); - let isVisible = true; - const executer = function () { - isVisible = !isVisible; - rect.setVisibility(isVisible); - }; - // executer.periodical(100); + rect.addEvent('mouseout', () => { + rect.setVisibility(true, 500); + }); + + // executer.periodical(100); workspace.addItAsChildTo($('#visibility')); }; visibilityTest(); From e9a23bb1e2c71a00d65d8bf027eb056fd1e7d3c9 Mon Sep 17 00:00:00 2001 From: Matias Arriola Date: Wed, 2 Mar 2022 22:25:51 +0000 Subject: [PATCH 03/32] Fix css style issue due to bootstrap. --- packages/editor/src/bootstrap-fixes.css | 20 +++++++++++++++++++ packages/editor/src/bootstrap-prefix.min.css | 10 ++++++++++ packages/editor/src/bootstrap.min.css | 7 ------- .../editor/src/components/toolbar/index.tsx | 2 +- packages/editor/src/global-styled.css | 5 +++-- packages/editor/src/index.tsx | 3 ++- packages/mindplot/src/components/NoteIcon.ts | 1 - .../libraries/bootstrap/BootstrapDialog.js | 2 ++ .../src/components/widget/FloatingTip.js | 2 +- .../src/components/widget/LinkIconTooltip.js | 1 - 10 files changed, 39 insertions(+), 14 deletions(-) create mode 100644 packages/editor/src/bootstrap-fixes.css create mode 100644 packages/editor/src/bootstrap-prefix.min.css delete mode 100644 packages/editor/src/bootstrap.min.css diff --git a/packages/editor/src/bootstrap-fixes.css b/packages/editor/src/bootstrap-fixes.css new file mode 100644 index 00000000..9e1d5cdf --- /dev/null +++ b/packages/editor/src/bootstrap-fixes.css @@ -0,0 +1,20 @@ +/* + These are patches or hacks to avoid boostrap interfering with Mui styles + This file is meant to be removed when removing bootstrap +*/ +/* +/* bootstrap modal */ + +.wise-editor .modal { + overflow: hidden; +} + +.modal-backdrop { + position: fixed; + left: 0; + top: 0; + width: 100vw; + height: 100vh; + background: rgba(0,0,0,0.5); + z-index: 1000; +} \ No newline at end of file diff --git a/packages/editor/src/bootstrap-prefix.min.css b/packages/editor/src/bootstrap-prefix.min.css new file mode 100644 index 00000000..cfd4ef9f --- /dev/null +++ b/packages/editor/src/bootstrap-prefix.min.css @@ -0,0 +1,10 @@ +/*! + * Bootstrap v3.1.1 (http://getbootstrap.com) + * Copyright 2011-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +/* + Custom-generated to include .wise-editor as prefix for all rules so scoping to that section is possible + based on https://stackoverflow.com/a/20051649/58128 +*/ +.wise-editor{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;}.wise-editor{margin:0;}.wise-editor article,.wise-editor aside,.wise-editor details,.wise-editor figcaption,.wise-editor figure,.wise-editor footer,.wise-editor header,.wise-editor hgroup,.wise-editor main,.wise-editor nav,.wise-editor section,.wise-editor summary{display:block;}.wise-editor audio,.wise-editor canvas,.wise-editor progress,.wise-editor video{display:inline-block;vertical-align:baseline;}.wise-editor audio:not([controls]){display:none;height:0;}.wise-editor [hidden],.wise-editor template{display:none;}.wise-editor a{background:0 0;}.wise-editor a:active,.wise-editor a:hover{outline:0;}.wise-editor abbr[title]{border-bottom:1px dotted;}.wise-editor b,.wise-editor strong{font-weight:700;}.wise-editor dfn{font-style:italic;}.wise-editor h1{font-size:2em;margin:.67em 0;}.wise-editor mark{background:#ff0;color:#000;}.wise-editor small{font-size:80%;}.wise-editor sub,.wise-editor sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}.wise-editor sup{top:-.5em;}.wise-editor sub{bottom:-.25em;}.wise-editor img{border:0;}.wise-editor svg:not(:root){overflow:hidden;}.wise-editor figure{margin:1em 40px;}.wise-editor hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0;}.wise-editor pre{overflow:auto;}.wise-editor code,.wise-editor kbd,.wise-editor pre,.wise-editor samp{font-family:monospace,monospace;font-size:1em;}.wise-editor button,.wise-editor input,.wise-editor optgroup,.wise-editor select,.wise-editor textarea{color:inherit;font:inherit;margin:0;}.wise-editor button{overflow:visible;}.wise-editor button,.wise-editor select{text-transform:none;}.wise-editor button,.wise-editor input[type=button],.wise-editor input[type=reset],.wise-editor input[type=submit]{-webkit-appearance:button;cursor:pointer;}.wise-editor button[disabled],.wise-editor input[disabled]{cursor:default;}.wise-editor button::-moz-focus-inner,.wise-editor input::-moz-focus-inner{border:0;padding:0;}.wise-editor input{line-height:normal;}.wise-editor input[type=checkbox],.wise-editor input[type=radio]{box-sizing:border-box;padding:0;}.wise-editor input[type=number]::-webkit-inner-spin-button,.wise-editor input[type=number]::-webkit-outer-spin-button{height:auto;}.wise-editor input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;}.wise-editor input[type=search]::-webkit-search-cancel-button,.wise-editor input[type=search]::-webkit-search-decoration{-webkit-appearance:none;}.wise-editor fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em;}.wise-editor legend{border:0;padding:0;}.wise-editor textarea{overflow:auto;}.wise-editor optgroup{font-weight:700;}.wise-editor table{border-collapse:collapse;border-spacing:0;}.wise-editor td,.wise-editor th{padding:0;}@media print{.wise-editor *{text-shadow:none!important;color:#000!important;background:transparent!important;box-shadow:none!important;}.wise-editor a,.wise-editor a:visited{text-decoration:underline;}.wise-editor a[href]:after{content:" (" attr(href) ")";}.wise-editor abbr[title]:after{content:" (" attr(title) ")";}.wise-editor a[href^="javascript:"]:after,.wise-editor a[href^="#"]:after{content:"";}.wise-editor pre,.wise-editor blockquote{border:1px solid #999;page-break-inside:avoid;}.wise-editor thead{display:table-header-group;}.wise-editor tr,.wise-editor img{page-break-inside:avoid;}.wise-editor img{max-width:100%!important;}.wise-editor p,.wise-editor h2,.wise-editor h3{orphans:3;widows:3;}.wise-editor h2,.wise-editor h3{page-break-after:avoid;}.wise-editor select{background:#fff!important;}.wise-editor .navbar{display:none;}.wise-editor .table td,.wise-editor .table th{background-color:#fff!important;}.wise-editor .btn>.caret,.wise-editor .dropup>.btn>.caret{border-top-color:#000!important;}.wise-editor .label{border:1px solid #000;}.wise-editor .table{border-collapse:collapse!important;}.wise-editor .table-bordered th,.wise-editor .table-bordered td{border:1px solid #ddd!important;}}.wise-editor *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}.wise-editor :before,.wise-editor :after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}.wise-editor{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0);}.wise-editor{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:1.42857143;color:#333;background-color:#fff;}.wise-editor input,.wise-editor button,.wise-editor select,.wise-editor textarea{font-family:inherit;font-size:inherit;line-height:inherit;}.wise-editor a{color:#428bca;text-decoration:none;}.wise-editor a:hover,.wise-editor a:focus{color:#2a6496;text-decoration:underline;}.wise-editor a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}.wise-editor figure{margin:0;}.wise-editor img{vertical-align:middle;}.wise-editor .img-responsive,.wise-editor .thumbnail>img,.wise-editor .thumbnail a>img,.wise-editor .carousel-inner>.item>img,.wise-editor .carousel-inner>.item>a>img{display:block;max-width:100%;height:auto;}.wise-editor .img-rounded{border-radius:6px;}.wise-editor .img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto;}.wise-editor .img-circle{border-radius:50%;}.wise-editor hr{margin-top:18px;margin-bottom:18px;border:0;border-top:1px solid #eee;}.wise-editor .sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0;}.wise-editor h1,.wise-editor h2,.wise-editor h3,.wise-editor h4,.wise-editor h5,.wise-editor h6,.wise-editor .h1,.wise-editor .h2,.wise-editor .h3,.wise-editor .h4,.wise-editor .h5,.wise-editor .h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit;}.wise-editor h1 small,.wise-editor h2 small,.wise-editor h3 small,.wise-editor h4 small,.wise-editor h5 small,.wise-editor h6 small,.wise-editor .h1 small,.wise-editor .h2 small,.wise-editor .h3 small,.wise-editor .h4 small,.wise-editor .h5 small,.wise-editor .h6 small,.wise-editor h1 .small,.wise-editor h2 .small,.wise-editor h3 .small,.wise-editor h4 .small,.wise-editor h5 .small,.wise-editor h6 .small,.wise-editor .h1 .small,.wise-editor .h2 .small,.wise-editor .h3 .small,.wise-editor .h4 .small,.wise-editor .h5 .small,.wise-editor .h6 .small{font-weight:400;line-height:1;color:#999;}.wise-editor h1,.wise-editor .h1,.wise-editor h2,.wise-editor .h2,.wise-editor h3,.wise-editor .h3{margin-top:18px;margin-bottom:9px;}.wise-editor h1 small,.wise-editor .h1 small,.wise-editor h2 small,.wise-editor .h2 small,.wise-editor h3 small,.wise-editor .h3 small,.wise-editor h1 .small,.wise-editor .h1 .small,.wise-editor h2 .small,.wise-editor .h2 .small,.wise-editor h3 .small,.wise-editor .h3 .small{font-size:65%;}.wise-editor h4,.wise-editor .h4,.wise-editor h5,.wise-editor .h5,.wise-editor h6,.wise-editor .h6{margin-top:9px;margin-bottom:9px;}.wise-editor h4 small,.wise-editor .h4 small,.wise-editor h5 small,.wise-editor .h5 small,.wise-editor h6 small,.wise-editor .h6 small,.wise-editor h4 .small,.wise-editor .h4 .small,.wise-editor h5 .small,.wise-editor .h5 .small,.wise-editor h6 .small,.wise-editor .h6 .small{font-size:75%;}.wise-editor h1,.wise-editor .h1{font-size:33px;}.wise-editor h2,.wise-editor .h2{font-size:27px;}.wise-editor h3,.wise-editor .h3{font-size:23px;}.wise-editor h4,.wise-editor .h4{font-size:17px;}.wise-editor h5,.wise-editor .h5{font-size:13px;}.wise-editor h6,.wise-editor .h6{font-size:12px;}.wise-editor p{margin:0 0 9px;}.wise-editor .lead{margin-bottom:18px;font-size:14px;font-weight:200;line-height:1.4;}@media (min-width:768px){.wise-editor .lead{font-size:19.5px;}}.wise-editor small,.wise-editor .small{font-size:85%;}.wise-editor cite{font-style:normal;}.wise-editor .text-left{text-align:left;}.wise-editor .text-right{text-align:right;}.wise-editor .text-center{text-align:center;}.wise-editor .text-justify{text-align:justify;}.wise-editor .text-muted{color:#999;}.wise-editor .text-primary{color:#428bca;}.wise-editor a.text-primary:hover{color:#3071a9;}.wise-editor .text-success{color:#3c763d;}.wise-editor a.text-success:hover{color:#2b542c;}.wise-editor .text-info{color:#31708f;}.wise-editor a.text-info:hover{color:#245269;}.wise-editor .text-warning{color:#8a6d3b;}.wise-editor a.text-warning:hover{color:#66512c;}.wise-editor .text-danger{color:#a94442;}.wise-editor a.text-danger:hover{color:#843534;}.wise-editor .bg-primary{color:#fff;background-color:#428bca;}.wise-editor a.bg-primary:hover{background-color:#3071a9;}.wise-editor .bg-success{background-color:#dff0d8;}.wise-editor a.bg-success:hover{background-color:#c1e2b3;}.wise-editor .bg-info{background-color:#d9edf7;}.wise-editor a.bg-info:hover{background-color:#afd9ee;}.wise-editor .bg-warning{background-color:#fcf8e3;}.wise-editor a.bg-warning:hover{background-color:#f7ecb5;}.wise-editor .bg-danger{background-color:#f2dede;}.wise-editor a.bg-danger:hover{background-color:#e4b9b9;}.wise-editor .page-header{padding-bottom:8px;margin:36px 0 18px;border-bottom:1px solid #eee;}.wise-editor ul,.wise-editor ol{margin-top:0;margin-bottom:9px;}.wise-editor ul ul,.wise-editor ol ul,.wise-editor ul ol,.wise-editor ol ol{margin-bottom:0;}.wise-editor .list-unstyled{padding-left:0;list-style:none;}.wise-editor .list-inline{padding-left:0;list-style:none;margin-left:-5px;}.wise-editor .list-inline>li{display:inline-block;padding-left:5px;padding-right:5px;}.wise-editor dl{margin-top:0;margin-bottom:18px;}.wise-editor dt,.wise-editor dd{line-height:1.42857143;}.wise-editor dt{font-weight:700;}.wise-editor dd{margin-left:0;}@media (min-width:768px){.wise-editor .dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.wise-editor .dl-horizontal dd{margin-left:180px;}}.wise-editor abbr[title],.wise-editor abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999;}.wise-editor .initialism{font-size:90%;text-transform:uppercase;}.wise-editor blockquote{padding:9px 18px;margin:0 0 18px;font-size:16.25px;border-left:5px solid #eee;}.wise-editor blockquote p:last-child,.wise-editor blockquote ul:last-child,.wise-editor blockquote ol:last-child{margin-bottom:0;}.wise-editor blockquote footer,.wise-editor blockquote small,.wise-editor blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999;}.wise-editor blockquote footer:before,.wise-editor blockquote small:before,.wise-editor blockquote .small:before{content:'\2014 \00A0';}.wise-editor .blockquote-reverse,.wise-editor blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right;}.wise-editor .blockquote-reverse footer:before,.wise-editor blockquote.pull-right footer:before,.wise-editor .blockquote-reverse small:before,.wise-editor blockquote.pull-right small:before,.wise-editor .blockquote-reverse .small:before,.wise-editor blockquote.pull-right .small:before{content:'';}.wise-editor .blockquote-reverse footer:after,.wise-editor blockquote.pull-right footer:after,.wise-editor .blockquote-reverse small:after,.wise-editor blockquote.pull-right small:after,.wise-editor .blockquote-reverse .small:after,.wise-editor blockquote.pull-right .small:after{content:'\00A0 \2014';}.wise-editor blockquote:before,.wise-editor blockquote:after{content:"";}.wise-editor address{margin-bottom:18px;font-style:normal;line-height:1.42857143;}.wise-editor code,.wise-editor kbd,.wise-editor pre,.wise-editor samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace;}.wise-editor code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px;}.wise-editor kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);}.wise-editor pre{display:block;padding:8.5px;margin:0 0 9px;font-size:12px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px;}.wise-editor pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0;}.wise-editor .pre-scrollable{max-height:340px;overflow-y:scroll;}.wise-editor .container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px;}@media (min-width:768px){.wise-editor .container{width:750px;}}@media (min-width:992px){.wise-editor .container{width:970px;}}@media (min-width:1200px){.wise-editor .container{width:1170px;}}.wise-editor .container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px;}.wise-editor .row{margin-left:-15px;margin-right:-15px;}.wise-editor .col-xs-1,.wise-editor .col-sm-1,.wise-editor .col-md-1,.wise-editor .col-lg-1,.wise-editor .col-xs-2,.wise-editor .col-sm-2,.wise-editor .col-md-2,.wise-editor .col-lg-2,.wise-editor .col-xs-3,.wise-editor .col-sm-3,.wise-editor .col-md-3,.wise-editor .col-lg-3,.wise-editor .col-xs-4,.wise-editor .col-sm-4,.wise-editor .col-md-4,.wise-editor .col-lg-4,.wise-editor .col-xs-5,.wise-editor .col-sm-5,.wise-editor .col-md-5,.wise-editor .col-lg-5,.wise-editor .col-xs-6,.wise-editor .col-sm-6,.wise-editor .col-md-6,.wise-editor .col-lg-6,.wise-editor .col-xs-7,.wise-editor .col-sm-7,.wise-editor .col-md-7,.wise-editor .col-lg-7,.wise-editor .col-xs-8,.wise-editor .col-sm-8,.wise-editor .col-md-8,.wise-editor .col-lg-8,.wise-editor .col-xs-9,.wise-editor .col-sm-9,.wise-editor .col-md-9,.wise-editor .col-lg-9,.wise-editor .col-xs-10,.wise-editor .col-sm-10,.wise-editor .col-md-10,.wise-editor .col-lg-10,.wise-editor .col-xs-11,.wise-editor .col-sm-11,.wise-editor .col-md-11,.wise-editor .col-lg-11,.wise-editor .col-xs-12,.wise-editor .col-sm-12,.wise-editor .col-md-12,.wise-editor .col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px;}.wise-editor .col-xs-1,.wise-editor .col-xs-2,.wise-editor .col-xs-3,.wise-editor .col-xs-4,.wise-editor .col-xs-5,.wise-editor .col-xs-6,.wise-editor .col-xs-7,.wise-editor .col-xs-8,.wise-editor .col-xs-9,.wise-editor .col-xs-10,.wise-editor .col-xs-11,.wise-editor .col-xs-12{float:left;}.wise-editor .col-xs-12{width:100%;}.wise-editor .col-xs-11{width:91.66666667%;}.wise-editor .col-xs-10{width:83.33333333%;}.wise-editor .col-xs-9{width:75%;}.wise-editor .col-xs-8{width:66.66666667%;}.wise-editor .col-xs-7{width:58.33333333%;}.wise-editor .col-xs-6{width:50%;}.wise-editor .col-xs-5{width:41.66666667%;}.wise-editor .col-xs-4{width:33.33333333%;}.wise-editor .col-xs-3{width:25%;}.wise-editor .col-xs-2{width:16.66666667%;}.wise-editor .col-xs-1{width:8.33333333%;}.wise-editor .col-xs-pull-12{right:100%;}.wise-editor .col-xs-pull-11{right:91.66666667%;}.wise-editor .col-xs-pull-10{right:83.33333333%;}.wise-editor .col-xs-pull-9{right:75%;}.wise-editor .col-xs-pull-8{right:66.66666667%;}.wise-editor .col-xs-pull-7{right:58.33333333%;}.wise-editor .col-xs-pull-6{right:50%;}.wise-editor .col-xs-pull-5{right:41.66666667%;}.wise-editor .col-xs-pull-4{right:33.33333333%;}.wise-editor .col-xs-pull-3{right:25%;}.wise-editor .col-xs-pull-2{right:16.66666667%;}.wise-editor .col-xs-pull-1{right:8.33333333%;}.wise-editor .col-xs-pull-0{right:0;}.wise-editor .col-xs-push-12{left:100%;}.wise-editor .col-xs-push-11{left:91.66666667%;}.wise-editor .col-xs-push-10{left:83.33333333%;}.wise-editor .col-xs-push-9{left:75%;}.wise-editor .col-xs-push-8{left:66.66666667%;}.wise-editor .col-xs-push-7{left:58.33333333%;}.wise-editor .col-xs-push-6{left:50%;}.wise-editor .col-xs-push-5{left:41.66666667%;}.wise-editor .col-xs-push-4{left:33.33333333%;}.wise-editor .col-xs-push-3{left:25%;}.wise-editor .col-xs-push-2{left:16.66666667%;}.wise-editor .col-xs-push-1{left:8.33333333%;}.wise-editor .col-xs-push-0{left:0;}.wise-editor .col-xs-offset-12{margin-left:100%;}.wise-editor .col-xs-offset-11{margin-left:91.66666667%;}.wise-editor .col-xs-offset-10{margin-left:83.33333333%;}.wise-editor .col-xs-offset-9{margin-left:75%;}.wise-editor .col-xs-offset-8{margin-left:66.66666667%;}.wise-editor .col-xs-offset-7{margin-left:58.33333333%;}.wise-editor .col-xs-offset-6{margin-left:50%;}.wise-editor .col-xs-offset-5{margin-left:41.66666667%;}.wise-editor .col-xs-offset-4{margin-left:33.33333333%;}.wise-editor .col-xs-offset-3{margin-left:25%;}.wise-editor .col-xs-offset-2{margin-left:16.66666667%;}.wise-editor .col-xs-offset-1{margin-left:8.33333333%;}.wise-editor .col-xs-offset-0{margin-left:0;}@media (min-width:768px){.wise-editor .col-sm-1,.wise-editor .col-sm-2,.wise-editor .col-sm-3,.wise-editor .col-sm-4,.wise-editor .col-sm-5,.wise-editor .col-sm-6,.wise-editor .col-sm-7,.wise-editor .col-sm-8,.wise-editor .col-sm-9,.wise-editor .col-sm-10,.wise-editor .col-sm-11,.wise-editor .col-sm-12{float:left;}.wise-editor .col-sm-12{width:100%;}.wise-editor .col-sm-11{width:91.66666667%;}.wise-editor .col-sm-10{width:83.33333333%;}.wise-editor .col-sm-9{width:75%;}.wise-editor .col-sm-8{width:66.66666667%;}.wise-editor .col-sm-7{width:58.33333333%;}.wise-editor .col-sm-6{width:50%;}.wise-editor .col-sm-5{width:41.66666667%;}.wise-editor .col-sm-4{width:33.33333333%;}.wise-editor .col-sm-3{width:25%;}.wise-editor .col-sm-2{width:16.66666667%;}.wise-editor .col-sm-1{width:8.33333333%;}.wise-editor .col-sm-pull-12{right:100%;}.wise-editor .col-sm-pull-11{right:91.66666667%;}.wise-editor .col-sm-pull-10{right:83.33333333%;}.wise-editor .col-sm-pull-9{right:75%;}.wise-editor .col-sm-pull-8{right:66.66666667%;}.wise-editor .col-sm-pull-7{right:58.33333333%;}.wise-editor .col-sm-pull-6{right:50%;}.wise-editor .col-sm-pull-5{right:41.66666667%;}.wise-editor .col-sm-pull-4{right:33.33333333%;}.wise-editor .col-sm-pull-3{right:25%;}.wise-editor .col-sm-pull-2{right:16.66666667%;}.wise-editor .col-sm-pull-1{right:8.33333333%;}.wise-editor .col-sm-pull-0{right:0;}.wise-editor .col-sm-push-12{left:100%;}.wise-editor .col-sm-push-11{left:91.66666667%;}.wise-editor .col-sm-push-10{left:83.33333333%;}.wise-editor .col-sm-push-9{left:75%;}.wise-editor .col-sm-push-8{left:66.66666667%;}.wise-editor .col-sm-push-7{left:58.33333333%;}.wise-editor .col-sm-push-6{left:50%;}.wise-editor .col-sm-push-5{left:41.66666667%;}.wise-editor .col-sm-push-4{left:33.33333333%;}.wise-editor .col-sm-push-3{left:25%;}.wise-editor .col-sm-push-2{left:16.66666667%;}.wise-editor .col-sm-push-1{left:8.33333333%;}.wise-editor .col-sm-push-0{left:0;}.wise-editor .col-sm-offset-12{margin-left:100%;}.wise-editor .col-sm-offset-11{margin-left:91.66666667%;}.wise-editor .col-sm-offset-10{margin-left:83.33333333%;}.wise-editor .col-sm-offset-9{margin-left:75%;}.wise-editor .col-sm-offset-8{margin-left:66.66666667%;}.wise-editor .col-sm-offset-7{margin-left:58.33333333%;}.wise-editor .col-sm-offset-6{margin-left:50%;}.wise-editor .col-sm-offset-5{margin-left:41.66666667%;}.wise-editor .col-sm-offset-4{margin-left:33.33333333%;}.wise-editor .col-sm-offset-3{margin-left:25%;}.wise-editor .col-sm-offset-2{margin-left:16.66666667%;}.wise-editor .col-sm-offset-1{margin-left:8.33333333%;}.wise-editor .col-sm-offset-0{margin-left:0;}}@media (min-width:992px){.wise-editor .col-md-1,.wise-editor .col-md-2,.wise-editor .col-md-3,.wise-editor .col-md-4,.wise-editor .col-md-5,.wise-editor .col-md-6,.wise-editor .col-md-7,.wise-editor .col-md-8,.wise-editor .col-md-9,.wise-editor .col-md-10,.wise-editor .col-md-11,.wise-editor .col-md-12{float:left;}.wise-editor .col-md-12{width:100%;}.wise-editor .col-md-11{width:91.66666667%;}.wise-editor .col-md-10{width:83.33333333%;}.wise-editor .col-md-9{width:75%;}.wise-editor .col-md-8{width:66.66666667%;}.wise-editor .col-md-7{width:58.33333333%;}.wise-editor .col-md-6{width:50%;}.wise-editor .col-md-5{width:41.66666667%;}.wise-editor .col-md-4{width:33.33333333%;}.wise-editor .col-md-3{width:25%;}.wise-editor .col-md-2{width:16.66666667%;}.wise-editor .col-md-1{width:8.33333333%;}.wise-editor .col-md-pull-12{right:100%;}.wise-editor .col-md-pull-11{right:91.66666667%;}.wise-editor .col-md-pull-10{right:83.33333333%;}.wise-editor .col-md-pull-9{right:75%;}.wise-editor .col-md-pull-8{right:66.66666667%;}.wise-editor .col-md-pull-7{right:58.33333333%;}.wise-editor .col-md-pull-6{right:50%;}.wise-editor .col-md-pull-5{right:41.66666667%;}.wise-editor .col-md-pull-4{right:33.33333333%;}.wise-editor .col-md-pull-3{right:25%;}.wise-editor .col-md-pull-2{right:16.66666667%;}.wise-editor .col-md-pull-1{right:8.33333333%;}.wise-editor .col-md-pull-0{right:0;}.wise-editor .col-md-push-12{left:100%;}.wise-editor .col-md-push-11{left:91.66666667%;}.wise-editor .col-md-push-10{left:83.33333333%;}.wise-editor .col-md-push-9{left:75%;}.wise-editor .col-md-push-8{left:66.66666667%;}.wise-editor .col-md-push-7{left:58.33333333%;}.wise-editor .col-md-push-6{left:50%;}.wise-editor .col-md-push-5{left:41.66666667%;}.wise-editor .col-md-push-4{left:33.33333333%;}.wise-editor .col-md-push-3{left:25%;}.wise-editor .col-md-push-2{left:16.66666667%;}.wise-editor .col-md-push-1{left:8.33333333%;}.wise-editor .col-md-push-0{left:0;}.wise-editor .col-md-offset-12{margin-left:100%;}.wise-editor .col-md-offset-11{margin-left:91.66666667%;}.wise-editor .col-md-offset-10{margin-left:83.33333333%;}.wise-editor .col-md-offset-9{margin-left:75%;}.wise-editor .col-md-offset-8{margin-left:66.66666667%;}.wise-editor .col-md-offset-7{margin-left:58.33333333%;}.wise-editor .col-md-offset-6{margin-left:50%;}.wise-editor .col-md-offset-5{margin-left:41.66666667%;}.wise-editor .col-md-offset-4{margin-left:33.33333333%;}.wise-editor .col-md-offset-3{margin-left:25%;}.wise-editor .col-md-offset-2{margin-left:16.66666667%;}.wise-editor .col-md-offset-1{margin-left:8.33333333%;}.wise-editor .col-md-offset-0{margin-left:0;}}@media (min-width:1200px){.wise-editor .col-lg-1,.wise-editor .col-lg-2,.wise-editor .col-lg-3,.wise-editor .col-lg-4,.wise-editor .col-lg-5,.wise-editor .col-lg-6,.wise-editor .col-lg-7,.wise-editor .col-lg-8,.wise-editor .col-lg-9,.wise-editor .col-lg-10,.wise-editor .col-lg-11,.wise-editor .col-lg-12{float:left;}.wise-editor .col-lg-12{width:100%;}.wise-editor .col-lg-11{width:91.66666667%;}.wise-editor .col-lg-10{width:83.33333333%;}.wise-editor .col-lg-9{width:75%;}.wise-editor .col-lg-8{width:66.66666667%;}.wise-editor .col-lg-7{width:58.33333333%;}.wise-editor .col-lg-6{width:50%;}.wise-editor .col-lg-5{width:41.66666667%;}.wise-editor .col-lg-4{width:33.33333333%;}.wise-editor .col-lg-3{width:25%;}.wise-editor .col-lg-2{width:16.66666667%;}.wise-editor .col-lg-1{width:8.33333333%;}.wise-editor .col-lg-pull-12{right:100%;}.wise-editor .col-lg-pull-11{right:91.66666667%;}.wise-editor .col-lg-pull-10{right:83.33333333%;}.wise-editor .col-lg-pull-9{right:75%;}.wise-editor .col-lg-pull-8{right:66.66666667%;}.wise-editor .col-lg-pull-7{right:58.33333333%;}.wise-editor .col-lg-pull-6{right:50%;}.wise-editor .col-lg-pull-5{right:41.66666667%;}.wise-editor .col-lg-pull-4{right:33.33333333%;}.wise-editor .col-lg-pull-3{right:25%;}.wise-editor .col-lg-pull-2{right:16.66666667%;}.wise-editor .col-lg-pull-1{right:8.33333333%;}.wise-editor .col-lg-pull-0{right:0;}.wise-editor .col-lg-push-12{left:100%;}.wise-editor .col-lg-push-11{left:91.66666667%;}.wise-editor .col-lg-push-10{left:83.33333333%;}.wise-editor .col-lg-push-9{left:75%;}.wise-editor .col-lg-push-8{left:66.66666667%;}.wise-editor .col-lg-push-7{left:58.33333333%;}.wise-editor .col-lg-push-6{left:50%;}.wise-editor .col-lg-push-5{left:41.66666667%;}.wise-editor .col-lg-push-4{left:33.33333333%;}.wise-editor .col-lg-push-3{left:25%;}.wise-editor .col-lg-push-2{left:16.66666667%;}.wise-editor .col-lg-push-1{left:8.33333333%;}.wise-editor .col-lg-push-0{left:0;}.wise-editor .col-lg-offset-12{margin-left:100%;}.wise-editor .col-lg-offset-11{margin-left:91.66666667%;}.wise-editor .col-lg-offset-10{margin-left:83.33333333%;}.wise-editor .col-lg-offset-9{margin-left:75%;}.wise-editor .col-lg-offset-8{margin-left:66.66666667%;}.wise-editor .col-lg-offset-7{margin-left:58.33333333%;}.wise-editor .col-lg-offset-6{margin-left:50%;}.wise-editor .col-lg-offset-5{margin-left:41.66666667%;}.wise-editor .col-lg-offset-4{margin-left:33.33333333%;}.wise-editor .col-lg-offset-3{margin-left:25%;}.wise-editor .col-lg-offset-2{margin-left:16.66666667%;}.wise-editor .col-lg-offset-1{margin-left:8.33333333%;}.wise-editor .col-lg-offset-0{margin-left:0;}}.wise-editor table{max-width:100%;background-color:transparent;}.wise-editor th{text-align:left;}.wise-editor .table{width:100%;margin-bottom:18px;}.wise-editor .table>thead>tr>th,.wise-editor .table>tbody>tr>th,.wise-editor .table>tfoot>tr>th,.wise-editor .table>thead>tr>td,.wise-editor .table>tbody>tr>td,.wise-editor .table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd;}.wise-editor .table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd;}.wise-editor .table>caption+thead>tr:first-child>th,.wise-editor .table>colgroup+thead>tr:first-child>th,.wise-editor .table>thead:first-child>tr:first-child>th,.wise-editor .table>caption+thead>tr:first-child>td,.wise-editor .table>colgroup+thead>tr:first-child>td,.wise-editor .table>thead:first-child>tr:first-child>td{border-top:0;}.wise-editor .table>tbody+tbody{border-top:2px solid #ddd;}.wise-editor .table .table{background-color:#fff;}.wise-editor .table-condensed>thead>tr>th,.wise-editor .table-condensed>tbody>tr>th,.wise-editor .table-condensed>tfoot>tr>th,.wise-editor .table-condensed>thead>tr>td,.wise-editor .table-condensed>tbody>tr>td,.wise-editor .table-condensed>tfoot>tr>td{padding:5px;}.wise-editor .table-bordered{border:1px solid #ddd;}.wise-editor .table-bordered>thead>tr>th,.wise-editor .table-bordered>tbody>tr>th,.wise-editor .table-bordered>tfoot>tr>th,.wise-editor .table-bordered>thead>tr>td,.wise-editor .table-bordered>tbody>tr>td,.wise-editor .table-bordered>tfoot>tr>td{border:1px solid #ddd;}.wise-editor .table-bordered>thead>tr>th,.wise-editor .table-bordered>thead>tr>td{border-bottom-width:2px;}.wise-editor .table-striped>tbody>tr:nth-child(odd)>td,.wise-editor .table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9;}.wise-editor .table-hover>tbody>tr:hover>td,.wise-editor .table-hover>tbody>tr:hover>th{background-color:#f5f5f5;}.wise-editor table col[class*=col-]{position:static;float:none;display:table-column;}.wise-editor table td[class*=col-],.wise-editor table th[class*=col-]{position:static;float:none;display:table-cell;}.wise-editor .table>thead>tr>td.active,.wise-editor .table>tbody>tr>td.active,.wise-editor .table>tfoot>tr>td.active,.wise-editor .table>thead>tr>th.active,.wise-editor .table>tbody>tr>th.active,.wise-editor .table>tfoot>tr>th.active,.wise-editor .table>thead>tr.active>td,.wise-editor .table>tbody>tr.active>td,.wise-editor .table>tfoot>tr.active>td,.wise-editor .table>thead>tr.active>th,.wise-editor .table>tbody>tr.active>th,.wise-editor .table>tfoot>tr.active>th{background-color:#f5f5f5;}.wise-editor .table-hover>tbody>tr>td.active:hover,.wise-editor .table-hover>tbody>tr>th.active:hover,.wise-editor .table-hover>tbody>tr.active:hover>td,.wise-editor .table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8;}.wise-editor .table>thead>tr>td.success,.wise-editor .table>tbody>tr>td.success,.wise-editor .table>tfoot>tr>td.success,.wise-editor .table>thead>tr>th.success,.wise-editor .table>tbody>tr>th.success,.wise-editor .table>tfoot>tr>th.success,.wise-editor .table>thead>tr.success>td,.wise-editor .table>tbody>tr.success>td,.wise-editor .table>tfoot>tr.success>td,.wise-editor .table>thead>tr.success>th,.wise-editor .table>tbody>tr.success>th,.wise-editor .table>tfoot>tr.success>th{background-color:#dff0d8;}.wise-editor .table-hover>tbody>tr>td.success:hover,.wise-editor .table-hover>tbody>tr>th.success:hover,.wise-editor .table-hover>tbody>tr.success:hover>td,.wise-editor .table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6;}.wise-editor .table>thead>tr>td.info,.wise-editor .table>tbody>tr>td.info,.wise-editor .table>tfoot>tr>td.info,.wise-editor .table>thead>tr>th.info,.wise-editor .table>tbody>tr>th.info,.wise-editor .table>tfoot>tr>th.info,.wise-editor .table>thead>tr.info>td,.wise-editor .table>tbody>tr.info>td,.wise-editor .table>tfoot>tr.info>td,.wise-editor .table>thead>tr.info>th,.wise-editor .table>tbody>tr.info>th,.wise-editor .table>tfoot>tr.info>th{background-color:#d9edf7;}.wise-editor .table-hover>tbody>tr>td.info:hover,.wise-editor .table-hover>tbody>tr>th.info:hover,.wise-editor .table-hover>tbody>tr.info:hover>td,.wise-editor .table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3;}.wise-editor .table>thead>tr>td.warning,.wise-editor .table>tbody>tr>td.warning,.wise-editor .table>tfoot>tr>td.warning,.wise-editor .table>thead>tr>th.warning,.wise-editor .table>tbody>tr>th.warning,.wise-editor .table>tfoot>tr>th.warning,.wise-editor .table>thead>tr.warning>td,.wise-editor .table>tbody>tr.warning>td,.wise-editor .table>tfoot>tr.warning>td,.wise-editor .table>thead>tr.warning>th,.wise-editor .table>tbody>tr.warning>th,.wise-editor .table>tfoot>tr.warning>th{background-color:#fcf8e3;}.wise-editor .table-hover>tbody>tr>td.warning:hover,.wise-editor .table-hover>tbody>tr>th.warning:hover,.wise-editor .table-hover>tbody>tr.warning:hover>td,.wise-editor .table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc;}.wise-editor .table>thead>tr>td.danger,.wise-editor .table>tbody>tr>td.danger,.wise-editor .table>tfoot>tr>td.danger,.wise-editor .table>thead>tr>th.danger,.wise-editor .table>tbody>tr>th.danger,.wise-editor .table>tfoot>tr>th.danger,.wise-editor .table>thead>tr.danger>td,.wise-editor .table>tbody>tr.danger>td,.wise-editor .table>tfoot>tr.danger>td,.wise-editor .table>thead>tr.danger>th,.wise-editor .table>tbody>tr.danger>th,.wise-editor .table>tfoot>tr.danger>th{background-color:#f2dede;}.wise-editor .table-hover>tbody>tr>td.danger:hover,.wise-editor .table-hover>tbody>tr>th.danger:hover,.wise-editor .table-hover>tbody>tr.danger:hover>td,.wise-editor .table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc;}@media (max-width:767px){.wise-editor .table-responsive{width:100%;margin-bottom:13.5px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch;}.wise-editor .table-responsive>.table{margin-bottom:0;}.wise-editor .table-responsive>.table>thead>tr>th,.wise-editor .table-responsive>.table>tbody>tr>th,.wise-editor .table-responsive>.table>tfoot>tr>th,.wise-editor .table-responsive>.table>thead>tr>td,.wise-editor .table-responsive>.table>tbody>tr>td,.wise-editor .table-responsive>.table>tfoot>tr>td{white-space:nowrap;}.wise-editor .table-responsive>.table-bordered{border:0;}.wise-editor .table-responsive>.table-bordered>thead>tr>th:first-child,.wise-editor .table-responsive>.table-bordered>tbody>tr>th:first-child,.wise-editor .table-responsive>.table-bordered>tfoot>tr>th:first-child,.wise-editor .table-responsive>.table-bordered>thead>tr>td:first-child,.wise-editor .table-responsive>.table-bordered>tbody>tr>td:first-child,.wise-editor .table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0;}.wise-editor .table-responsive>.table-bordered>thead>tr>th:last-child,.wise-editor .table-responsive>.table-bordered>tbody>tr>th:last-child,.wise-editor .table-responsive>.table-bordered>tfoot>tr>th:last-child,.wise-editor .table-responsive>.table-bordered>thead>tr>td:last-child,.wise-editor .table-responsive>.table-bordered>tbody>tr>td:last-child,.wise-editor .table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0;}.wise-editor .table-responsive>.table-bordered>tbody>tr:last-child>th,.wise-editor .table-responsive>.table-bordered>tfoot>tr:last-child>th,.wise-editor .table-responsive>.table-bordered>tbody>tr:last-child>td,.wise-editor .table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0;}}.wise-editor fieldset{padding:0;margin:0;border:0;min-width:0;}.wise-editor legend{display:block;width:100%;padding:0;margin-bottom:18px;font-size:19.5px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5;}.wise-editor label{display:inline-block;margin-bottom:5px;font-weight:700;}.wise-editor input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}.wise-editor input[type=radio],.wise-editor input[type=checkbox]{margin:4px 0 0;margin-top:1px \9;line-height:normal;}.wise-editor input[type=file]{display:block;}.wise-editor input[type=range]{display:block;width:100%;}.wise-editor select[multiple],.wise-editor select[size]{height:auto;}.wise-editor input[type=file]:focus,.wise-editor input[type=radio]:focus,.wise-editor input[type=checkbox]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}.wise-editor output{display:block;padding-top:7px;font-size:13px;line-height:1.42857143;color:#555;}.wise-editor .form-control{display:block;width:100%;height:32px;padding:6px 12px;font-size:13px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;}.wise-editor .form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);}.wise-editor .form-control::-moz-placeholder{color:#999;opacity:1;}.wise-editor .form-control:-ms-input-placeholder{color:#999;}.wise-editor .form-control::-webkit-input-placeholder{color:#999;}.wise-editor .form-control[disabled],.wise-editor .form-control[readonly],.wise-editor fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1;}.wise-editor textarea.form-control{height:auto;}.wise-editor input[type=search]{-webkit-appearance:none;}.wise-editor input[type=date]{line-height:32px;}.wise-editor .form-group{margin-bottom:15px;}.wise-editor .radio,.wise-editor .checkbox{display:block;min-height:18px;margin-top:10px;margin-bottom:10px;padding-left:20px;}.wise-editor .radio label,.wise-editor .checkbox label{display:inline;font-weight:400;cursor:pointer;}.wise-editor .radio input[type=radio],.wise-editor .radio-inline input[type=radio],.wise-editor .checkbox input[type=checkbox],.wise-editor .checkbox-inline input[type=checkbox]{float:left;margin-left:-20px;}.wise-editor .radio+.radio,.wise-editor .checkbox+.checkbox{margin-top:-5px;}.wise-editor .radio-inline,.wise-editor .checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer;}.wise-editor .radio-inline+.radio-inline,.wise-editor .checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px;}.wise-editor input[type=radio][disabled],.wise-editor input[type=checkbox][disabled],.wise-editor .radio[disabled],.wise-editor .radio-inline[disabled],.wise-editor .checkbox[disabled],.wise-editor .checkbox-inline[disabled],.wise-editor fieldset[disabled] input[type=radio],.wise-editor fieldset[disabled] input[type=checkbox],.wise-editor fieldset[disabled] .radio,.wise-editor fieldset[disabled] .radio-inline,.wise-editor fieldset[disabled] .checkbox,.wise-editor fieldset[disabled] .checkbox-inline{cursor:not-allowed;}.wise-editor .input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px;}.wise-editor select.input-sm{height:30px;line-height:30px;}.wise-editor textarea.input-sm,.wise-editor select[multiple].input-sm{height:auto;}.wise-editor .input-lg{height:45px;padding:10px 16px;font-size:17px;line-height:1.33;border-radius:6px;}.wise-editor select.input-lg{height:45px;line-height:45px;}.wise-editor textarea.input-lg,.wise-editor select[multiple].input-lg{height:auto;}.wise-editor .has-feedback{position:relative;}.wise-editor .has-feedback .form-control{padding-right:40px;}.wise-editor .has-feedback .form-control-feedback{position:absolute;top:23px;right:0;display:block;width:32px;height:32px;line-height:32px;text-align:center;}.wise-editor .has-success .help-block,.wise-editor .has-success .control-label,.wise-editor .has-success .radio,.wise-editor .has-success .checkbox,.wise-editor .has-success .radio-inline,.wise-editor .has-success .checkbox-inline{color:#3c763d;}.wise-editor .has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);}.wise-editor .has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;}.wise-editor .has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8;}.wise-editor .has-success .form-control-feedback{color:#3c763d;}.wise-editor .has-warning .help-block,.wise-editor .has-warning .control-label,.wise-editor .has-warning .radio,.wise-editor .has-warning .checkbox,.wise-editor .has-warning .radio-inline,.wise-editor .has-warning .checkbox-inline{color:#8a6d3b;}.wise-editor .has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);}.wise-editor .has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;}.wise-editor .has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3;}.wise-editor .has-warning .form-control-feedback{color:#8a6d3b;}.wise-editor .has-error .help-block,.wise-editor .has-error .control-label,.wise-editor .has-error .radio,.wise-editor .has-error .checkbox,.wise-editor .has-error .radio-inline,.wise-editor .has-error .checkbox-inline{color:#a94442;}.wise-editor .has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);}.wise-editor .has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;}.wise-editor .has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede;}.wise-editor .has-error .form-control-feedback{color:#a94442;}.wise-editor .form-control-static{margin-bottom:0;}.wise-editor .help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373;}@media (min-width:768px){.wise-editor .form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle;}.wise-editor .form-inline .form-control{display:inline-block;width:auto;vertical-align:middle;}.wise-editor .form-inline .input-group>.form-control{width:100%;}.wise-editor .form-inline .control-label{margin-bottom:0;vertical-align:middle;}.wise-editor .form-inline .radio,.wise-editor .form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle;}.wise-editor .form-inline .radio input[type=radio],.wise-editor .form-inline .checkbox input[type=checkbox]{float:none;margin-left:0;}.wise-editor .form-inline .has-feedback .form-control-feedback{top:0;}}.wise-editor .form-horizontal .control-label,.wise-editor .form-horizontal .radio,.wise-editor .form-horizontal .checkbox,.wise-editor .form-horizontal .radio-inline,.wise-editor .form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px;}.wise-editor .form-horizontal .radio,.wise-editor .form-horizontal .checkbox{min-height:25px;}.wise-editor .form-horizontal .form-group{margin-left:-15px;margin-right:-15px;}.wise-editor .form-horizontal .form-control-static{padding-top:7px;}@media (min-width:768px){.wise-editor .form-horizontal .control-label{text-align:right;}}.wise-editor .form-horizontal .has-feedback .form-control-feedback{top:0;right:15px;}.wise-editor .btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:13px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.wise-editor .btn:focus,.wise-editor .btn:active:focus,.wise-editor .btn.active:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}.wise-editor .btn:hover,.wise-editor .btn:focus{color:#333;text-decoration:none;}.wise-editor .btn:active,.wise-editor .btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125);}.wise-editor .btn.disabled,.wise-editor .btn[disabled],.wise-editor fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;}.wise-editor .btn-default{color:#333;background-color:#fff;border-color:#ccc;}.wise-editor .btn-default:hover,.wise-editor .btn-default:focus,.wise-editor .btn-default:active,.wise-editor .btn-default.active,.wise-editor .open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad;}.wise-editor .btn-default:active,.wise-editor .btn-default.active,.wise-editor .open .dropdown-toggle.btn-default{background-image:none;}.wise-editor .btn-default.disabled,.wise-editor .btn-default[disabled],.wise-editor fieldset[disabled] .btn-default,.wise-editor .btn-default.disabled:hover,.wise-editor .btn-default[disabled]:hover,.wise-editor fieldset[disabled] .btn-default:hover,.wise-editor .btn-default.disabled:focus,.wise-editor .btn-default[disabled]:focus,.wise-editor fieldset[disabled] .btn-default:focus,.wise-editor .btn-default.disabled:active,.wise-editor .btn-default[disabled]:active,.wise-editor fieldset[disabled] .btn-default:active,.wise-editor .btn-default.disabled.active,.wise-editor .btn-default[disabled].active,.wise-editor fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc;}.wise-editor .btn-default .badge{color:#fff;background-color:#333;}.wise-editor .btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd;}.wise-editor .btn-primary:hover,.wise-editor .btn-primary:focus,.wise-editor .btn-primary:active,.wise-editor .btn-primary.active,.wise-editor .open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e;}.wise-editor .btn-primary:active,.wise-editor .btn-primary.active,.wise-editor .open .dropdown-toggle.btn-primary{background-image:none;}.wise-editor .btn-primary.disabled,.wise-editor .btn-primary[disabled],.wise-editor fieldset[disabled] .btn-primary,.wise-editor .btn-primary.disabled:hover,.wise-editor .btn-primary[disabled]:hover,.wise-editor fieldset[disabled] .btn-primary:hover,.wise-editor .btn-primary.disabled:focus,.wise-editor .btn-primary[disabled]:focus,.wise-editor fieldset[disabled] .btn-primary:focus,.wise-editor .btn-primary.disabled:active,.wise-editor .btn-primary[disabled]:active,.wise-editor fieldset[disabled] .btn-primary:active,.wise-editor .btn-primary.disabled.active,.wise-editor .btn-primary[disabled].active,.wise-editor fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd;}.wise-editor .btn-primary .badge{color:#428bca;background-color:#fff;}.wise-editor .btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c;}.wise-editor .btn-success:hover,.wise-editor .btn-success:focus,.wise-editor .btn-success:active,.wise-editor .btn-success.active,.wise-editor .open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439;}.wise-editor .btn-success:active,.wise-editor .btn-success.active,.wise-editor .open .dropdown-toggle.btn-success{background-image:none;}.wise-editor .btn-success.disabled,.wise-editor .btn-success[disabled],.wise-editor fieldset[disabled] .btn-success,.wise-editor .btn-success.disabled:hover,.wise-editor .btn-success[disabled]:hover,.wise-editor fieldset[disabled] .btn-success:hover,.wise-editor .btn-success.disabled:focus,.wise-editor .btn-success[disabled]:focus,.wise-editor fieldset[disabled] .btn-success:focus,.wise-editor .btn-success.disabled:active,.wise-editor .btn-success[disabled]:active,.wise-editor fieldset[disabled] .btn-success:active,.wise-editor .btn-success.disabled.active,.wise-editor .btn-success[disabled].active,.wise-editor fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c;}.wise-editor .btn-success .badge{color:#5cb85c;background-color:#fff;}.wise-editor .btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da;}.wise-editor .btn-info:hover,.wise-editor .btn-info:focus,.wise-editor .btn-info:active,.wise-editor .btn-info.active,.wise-editor .open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc;}.wise-editor .btn-info:active,.wise-editor .btn-info.active,.wise-editor .open .dropdown-toggle.btn-info{background-image:none;}.wise-editor .btn-info.disabled,.wise-editor .btn-info[disabled],.wise-editor fieldset[disabled] .btn-info,.wise-editor .btn-info.disabled:hover,.wise-editor .btn-info[disabled]:hover,.wise-editor fieldset[disabled] .btn-info:hover,.wise-editor .btn-info.disabled:focus,.wise-editor .btn-info[disabled]:focus,.wise-editor fieldset[disabled] .btn-info:focus,.wise-editor .btn-info.disabled:active,.wise-editor .btn-info[disabled]:active,.wise-editor fieldset[disabled] .btn-info:active,.wise-editor .btn-info.disabled.active,.wise-editor .btn-info[disabled].active,.wise-editor fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da;}.wise-editor .btn-info .badge{color:#5bc0de;background-color:#fff;}.wise-editor .btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236;}.wise-editor .btn-warning:hover,.wise-editor .btn-warning:focus,.wise-editor .btn-warning:active,.wise-editor .btn-warning.active,.wise-editor .open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512;}.wise-editor .btn-warning:active,.wise-editor .btn-warning.active,.wise-editor .open .dropdown-toggle.btn-warning{background-image:none;}.wise-editor .btn-warning.disabled,.wise-editor .btn-warning[disabled],.wise-editor fieldset[disabled] .btn-warning,.wise-editor .btn-warning.disabled:hover,.wise-editor .btn-warning[disabled]:hover,.wise-editor fieldset[disabled] .btn-warning:hover,.wise-editor .btn-warning.disabled:focus,.wise-editor .btn-warning[disabled]:focus,.wise-editor fieldset[disabled] .btn-warning:focus,.wise-editor .btn-warning.disabled:active,.wise-editor .btn-warning[disabled]:active,.wise-editor fieldset[disabled] .btn-warning:active,.wise-editor .btn-warning.disabled.active,.wise-editor .btn-warning[disabled].active,.wise-editor fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236;}.wise-editor .btn-warning .badge{color:#f0ad4e;background-color:#fff;}.wise-editor .btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a;}.wise-editor .btn-danger:hover,.wise-editor .btn-danger:focus,.wise-editor .btn-danger:active,.wise-editor .btn-danger.active,.wise-editor .open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925;}.wise-editor .btn-danger:active,.wise-editor .btn-danger.active,.wise-editor .open .dropdown-toggle.btn-danger{background-image:none;}.wise-editor .btn-danger.disabled,.wise-editor .btn-danger[disabled],.wise-editor fieldset[disabled] .btn-danger,.wise-editor .btn-danger.disabled:hover,.wise-editor .btn-danger[disabled]:hover,.wise-editor fieldset[disabled] .btn-danger:hover,.wise-editor .btn-danger.disabled:focus,.wise-editor .btn-danger[disabled]:focus,.wise-editor fieldset[disabled] .btn-danger:focus,.wise-editor .btn-danger.disabled:active,.wise-editor .btn-danger[disabled]:active,.wise-editor fieldset[disabled] .btn-danger:active,.wise-editor .btn-danger.disabled.active,.wise-editor .btn-danger[disabled].active,.wise-editor fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a;}.wise-editor .btn-danger .badge{color:#d9534f;background-color:#fff;}.wise-editor .btn-link{color:#428bca;font-weight:400;cursor:pointer;border-radius:0;}.wise-editor .btn-link,.wise-editor .btn-link:active,.wise-editor .btn-link[disabled],.wise-editor fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none;}.wise-editor .btn-link,.wise-editor .btn-link:hover,.wise-editor .btn-link:focus,.wise-editor .btn-link:active{border-color:transparent;}.wise-editor .btn-link:hover,.wise-editor .btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent;}.wise-editor .btn-link[disabled]:hover,.wise-editor fieldset[disabled] .btn-link:hover,.wise-editor .btn-link[disabled]:focus,.wise-editor fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none;}.wise-editor .btn-lg,.wise-editor .btn-group-lg>.btn{padding:10px 16px;font-size:17px;line-height:1.33;border-radius:6px;}.wise-editor .btn-sm,.wise-editor .btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px;}.wise-editor .btn-xs,.wise-editor .btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px;}.wise-editor .btn-block{display:block;width:100%;padding-left:0;padding-right:0;}.wise-editor .btn-block+.btn-block{margin-top:5px;}.wise-editor input[type=submit].btn-block,.wise-editor input[type=reset].btn-block,.wise-editor input[type=button].btn-block{width:100%;}.wise-editor .fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear;}.wise-editor .fade.in{opacity:1;}.wise-editor .collapse{display:none;}.wise-editor .collapse.in{display:block;}.wise-editor .collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease;}.wise-editor .glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}.wise-editor .glyphicon-asterisk:before{content:"\2a";}.wise-editor .glyphicon-plus:before{content:"\2b";}.wise-editor .glyphicon-euro:before{content:"\20ac";}.wise-editor .glyphicon-minus:before{content:"\2212";}.wise-editor .glyphicon-cloud:before{content:"\2601";}.wise-editor .glyphicon-envelope:before{content:"\2709";}.wise-editor .glyphicon-pencil:before{content:"\270f";}.wise-editor .glyphicon-glass:before{content:"\e001";}.wise-editor .glyphicon-music:before{content:"\e002";}.wise-editor .glyphicon-search:before{content:"\e003";}.wise-editor .glyphicon-heart:before{content:"\e005";}.wise-editor .glyphicon-star:before{content:"\e006";}.wise-editor .glyphicon-star-empty:before{content:"\e007";}.wise-editor .glyphicon-user:before{content:"\e008";}.wise-editor .glyphicon-film:before{content:"\e009";}.wise-editor .glyphicon-th-large:before{content:"\e010";}.wise-editor .glyphicon-th:before{content:"\e011";}.wise-editor .glyphicon-th-list:before{content:"\e012";}.wise-editor .glyphicon-ok:before{content:"\e013";}.wise-editor .glyphicon-remove:before{content:"\e014";}.wise-editor .glyphicon-zoom-in:before{content:"\e015";}.wise-editor .glyphicon-zoom-out:before{content:"\e016";}.wise-editor .glyphicon-off:before{content:"\e017";}.wise-editor .glyphicon-signal:before{content:"\e018";}.wise-editor .glyphicon-cog:before{content:"\e019";}.wise-editor .glyphicon-trash:before{content:"\e020";}.wise-editor .glyphicon-home:before{content:"\e021";}.wise-editor .glyphicon-file:before{content:"\e022";}.wise-editor .glyphicon-time:before{content:"\e023";}.wise-editor .glyphicon-road:before{content:"\e024";}.wise-editor .glyphicon-download-alt:before{content:"\e025";}.wise-editor .glyphicon-download:before{content:"\e026";}.wise-editor .glyphicon-upload:before{content:"\e027";}.wise-editor .glyphicon-inbox:before{content:"\e028";}.wise-editor .glyphicon-play-circle:before{content:"\e029";}.wise-editor .glyphicon-repeat:before{content:"\e030";}.wise-editor .glyphicon-refresh:before{content:"\e031";}.wise-editor .glyphicon-list-alt:before{content:"\e032";}.wise-editor .glyphicon-lock:before{content:"\e033";}.wise-editor .glyphicon-flag:before{content:"\e034";}.wise-editor .glyphicon-headphones:before{content:"\e035";}.wise-editor .glyphicon-volume-off:before{content:"\e036";}.wise-editor .glyphicon-volume-down:before{content:"\e037";}.wise-editor .glyphicon-volume-up:before{content:"\e038";}.wise-editor .glyphicon-qrcode:before{content:"\e039";}.wise-editor .glyphicon-barcode:before{content:"\e040";}.wise-editor .glyphicon-tag:before{content:"\e041";}.wise-editor .glyphicon-tags:before{content:"\e042";}.wise-editor .glyphicon-book:before{content:"\e043";}.wise-editor .glyphicon-bookmark:before{content:"\e044";}.wise-editor .glyphicon-print:before{content:"\e045";}.wise-editor .glyphicon-camera:before{content:"\e046";}.wise-editor .glyphicon-font:before{content:"\e047";}.wise-editor .glyphicon-bold:before{content:"\e048";}.wise-editor .glyphicon-italic:before{content:"\e049";}.wise-editor .glyphicon-text-height:before{content:"\e050";}.wise-editor .glyphicon-text-width:before{content:"\e051";}.wise-editor .glyphicon-align-left:before{content:"\e052";}.wise-editor .glyphicon-align-center:before{content:"\e053";}.wise-editor .glyphicon-align-right:before{content:"\e054";}.wise-editor .glyphicon-align-justify:before{content:"\e055";}.wise-editor .glyphicon-list:before{content:"\e056";}.wise-editor .glyphicon-indent-left:before{content:"\e057";}.wise-editor .glyphicon-indent-right:before{content:"\e058";}.wise-editor .glyphicon-facetime-video:before{content:"\e059";}.wise-editor .glyphicon-picture:before{content:"\e060";}.wise-editor .glyphicon-map-marker:before{content:"\e062";}.wise-editor .glyphicon-adjust:before{content:"\e063";}.wise-editor .glyphicon-tint:before{content:"\e064";}.wise-editor .glyphicon-edit:before{content:"\e065";}.wise-editor .glyphicon-share:before{content:"\e066";}.wise-editor .glyphicon-check:before{content:"\e067";}.wise-editor .glyphicon-move:before{content:"\e068";}.wise-editor .glyphicon-step-backward:before{content:"\e069";}.wise-editor .glyphicon-fast-backward:before{content:"\e070";}.wise-editor .glyphicon-backward:before{content:"\e071";}.wise-editor .glyphicon-play:before{content:"\e072";}.wise-editor .glyphicon-pause:before{content:"\e073";}.wise-editor .glyphicon-stop:before{content:"\e074";}.wise-editor .glyphicon-forward:before{content:"\e075";}.wise-editor .glyphicon-fast-forward:before{content:"\e076";}.wise-editor .glyphicon-step-forward:before{content:"\e077";}.wise-editor .glyphicon-eject:before{content:"\e078";}.wise-editor .glyphicon-chevron-left:before{content:"\e079";}.wise-editor .glyphicon-chevron-right:before{content:"\e080";}.wise-editor .glyphicon-plus-sign:before{content:"\e081";}.wise-editor .glyphicon-minus-sign:before{content:"\e082";}.wise-editor .glyphicon-remove-sign:before{content:"\e083";}.wise-editor .glyphicon-ok-sign:before{content:"\e084";}.wise-editor .glyphicon-question-sign:before{content:"\e085";}.wise-editor .glyphicon-info-sign:before{content:"\e086";}.wise-editor .glyphicon-screenshot:before{content:"\e087";}.wise-editor .glyphicon-remove-circle:before{content:"\e088";}.wise-editor .glyphicon-ok-circle:before{content:"\e089";}.wise-editor .glyphicon-ban-circle:before{content:"\e090";}.wise-editor .glyphicon-arrow-left:before{content:"\e091";}.wise-editor .glyphicon-arrow-right:before{content:"\e092";}.wise-editor .glyphicon-arrow-up:before{content:"\e093";}.wise-editor .glyphicon-arrow-down:before{content:"\e094";}.wise-editor .glyphicon-share-alt:before{content:"\e095";}.wise-editor .glyphicon-resize-full:before{content:"\e096";}.wise-editor .glyphicon-resize-small:before{content:"\e097";}.wise-editor .glyphicon-exclamation-sign:before{content:"\e101";}.wise-editor .glyphicon-gift:before{content:"\e102";}.wise-editor .glyphicon-leaf:before{content:"\e103";}.wise-editor .glyphicon-fire:before{content:"\e104";}.wise-editor .glyphicon-eye-open:before{content:"\e105";}.wise-editor .glyphicon-eye-close:before{content:"\e106";}.wise-editor .glyphicon-warning-sign:before{content:"\e107";}.wise-editor .glyphicon-plane:before{content:"\e108";}.wise-editor .glyphicon-calendar:before{content:"\e109";}.wise-editor .glyphicon-random:before{content:"\e110";}.wise-editor .glyphicon-comment:before{content:"\e111";}.wise-editor .glyphicon-magnet:before{content:"\e112";}.wise-editor .glyphicon-chevron-up:before{content:"\e113";}.wise-editor .glyphicon-chevron-down:before{content:"\e114";}.wise-editor .glyphicon-retweet:before{content:"\e115";}.wise-editor .glyphicon-shopping-cart:before{content:"\e116";}.wise-editor .glyphicon-folder-close:before{content:"\e117";}.wise-editor .glyphicon-folder-open:before{content:"\e118";}.wise-editor .glyphicon-resize-vertical:before{content:"\e119";}.wise-editor .glyphicon-resize-horizontal:before{content:"\e120";}.wise-editor .glyphicon-hdd:before{content:"\e121";}.wise-editor .glyphicon-bullhorn:before{content:"\e122";}.wise-editor .glyphicon-bell:before{content:"\e123";}.wise-editor .glyphicon-certificate:before{content:"\e124";}.wise-editor .glyphicon-thumbs-up:before{content:"\e125";}.wise-editor .glyphicon-thumbs-down:before{content:"\e126";}.wise-editor .glyphicon-hand-right:before{content:"\e127";}.wise-editor .glyphicon-hand-left:before{content:"\e128";}.wise-editor .glyphicon-hand-up:before{content:"\e129";}.wise-editor .glyphicon-hand-down:before{content:"\e130";}.wise-editor .glyphicon-circle-arrow-right:before{content:"\e131";}.wise-editor .glyphicon-circle-arrow-left:before{content:"\e132";}.wise-editor .glyphicon-circle-arrow-up:before{content:"\e133";}.wise-editor .glyphicon-circle-arrow-down:before{content:"\e134";}.wise-editor .glyphicon-globe:before{content:"\e135";}.wise-editor .glyphicon-wrench:before{content:"\e136";}.wise-editor .glyphicon-tasks:before{content:"\e137";}.wise-editor .glyphicon-filter:before{content:"\e138";}.wise-editor .glyphicon-briefcase:before{content:"\e139";}.wise-editor .glyphicon-fullscreen:before{content:"\e140";}.wise-editor .glyphicon-dashboard:before{content:"\e141";}.wise-editor .glyphicon-paperclip:before{content:"\e142";}.wise-editor .glyphicon-heart-empty:before{content:"\e143";}.wise-editor .glyphicon-link:before{content:"\e144";}.wise-editor .glyphicon-phone:before{content:"\e145";}.wise-editor .glyphicon-pushpin:before{content:"\e146";}.wise-editor .glyphicon-usd:before{content:"\e148";}.wise-editor .glyphicon-gbp:before{content:"\e149";}.wise-editor .glyphicon-sort:before{content:"\e150";}.wise-editor .glyphicon-sort-by-alphabet:before{content:"\e151";}.wise-editor .glyphicon-sort-by-alphabet-alt:before{content:"\e152";}.wise-editor .glyphicon-sort-by-order:before{content:"\e153";}.wise-editor .glyphicon-sort-by-order-alt:before{content:"\e154";}.wise-editor .glyphicon-sort-by-attributes:before{content:"\e155";}.wise-editor .glyphicon-sort-by-attributes-alt:before{content:"\e156";}.wise-editor .glyphicon-unchecked:before{content:"\e157";}.wise-editor .glyphicon-expand:before{content:"\e158";}.wise-editor .glyphicon-collapse-down:before{content:"\e159";}.wise-editor .glyphicon-collapse-up:before{content:"\e160";}.wise-editor .glyphicon-log-in:before{content:"\e161";}.wise-editor .glyphicon-flash:before{content:"\e162";}.wise-editor .glyphicon-log-out:before{content:"\e163";}.wise-editor .glyphicon-new-window:before{content:"\e164";}.wise-editor .glyphicon-record:before{content:"\e165";}.wise-editor .glyphicon-save:before{content:"\e166";}.wise-editor .glyphicon-open:before{content:"\e167";}.wise-editor .glyphicon-saved:before{content:"\e168";}.wise-editor .glyphicon-import:before{content:"\e169";}.wise-editor .glyphicon-export:before{content:"\e170";}.wise-editor .glyphicon-send:before{content:"\e171";}.wise-editor .glyphicon-floppy-disk:before{content:"\e172";}.wise-editor .glyphicon-floppy-saved:before{content:"\e173";}.wise-editor .glyphicon-floppy-remove:before{content:"\e174";}.wise-editor .glyphicon-floppy-save:before{content:"\e175";}.wise-editor .glyphicon-floppy-open:before{content:"\e176";}.wise-editor .glyphicon-credit-card:before{content:"\e177";}.wise-editor .glyphicon-transfer:before{content:"\e178";}.wise-editor .glyphicon-cutlery:before{content:"\e179";}.wise-editor .glyphicon-header:before{content:"\e180";}.wise-editor .glyphicon-compressed:before{content:"\e181";}.wise-editor .glyphicon-earphone:before{content:"\e182";}.wise-editor .glyphicon-phone-alt:before{content:"\e183";}.wise-editor .glyphicon-tower:before{content:"\e184";}.wise-editor .glyphicon-stats:before{content:"\e185";}.wise-editor .glyphicon-sd-video:before{content:"\e186";}.wise-editor .glyphicon-hd-video:before{content:"\e187";}.wise-editor .glyphicon-subtitles:before{content:"\e188";}.wise-editor .glyphicon-sound-stereo:before{content:"\e189";}.wise-editor .glyphicon-sound-dolby:before{content:"\e190";}.wise-editor .glyphicon-sound-5-1:before{content:"\e191";}.wise-editor .glyphicon-sound-6-1:before{content:"\e192";}.wise-editor .glyphicon-sound-7-1:before{content:"\e193";}.wise-editor .glyphicon-copyright-mark:before{content:"\e194";}.wise-editor .glyphicon-registration-mark:before{content:"\e195";}.wise-editor .glyphicon-cloud-download:before{content:"\e197";}.wise-editor .glyphicon-cloud-upload:before{content:"\e198";}.wise-editor .glyphicon-tree-conifer:before{content:"\e199";}.wise-editor .glyphicon-tree-deciduous:before{content:"\e200";}.wise-editor .caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent;}.wise-editor .dropdown{position:relative;}.wise-editor .dropdown-toggle:focus{outline:0;}.wise-editor .dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:13px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box;}.wise-editor .dropdown-menu.pull-right{right:0;left:auto;}.wise-editor .dropdown-menu .divider{height:1px;margin:8px 0;overflow:hidden;background-color:#e5e5e5;}.wise-editor .dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap;}.wise-editor .dropdown-menu>li>a:hover,.wise-editor .dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5;}.wise-editor .dropdown-menu>.active>a,.wise-editor .dropdown-menu>.active>a:hover,.wise-editor .dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#428bca;}.wise-editor .dropdown-menu>.disabled>a,.wise-editor .dropdown-menu>.disabled>a:hover,.wise-editor .dropdown-menu>.disabled>a:focus{color:#999;}.wise-editor .dropdown-menu>.disabled>a:hover,.wise-editor .dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed;}.wise-editor .open>.dropdown-menu{display:block;}.wise-editor .open>a{outline:0;}.wise-editor .dropdown-menu-right{left:auto;right:0;}.wise-editor .dropdown-menu-left{left:0;right:auto;}.wise-editor .dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#999;}.wise-editor .dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990;}.wise-editor .pull-right>.dropdown-menu{right:0;left:auto;}.wise-editor .dropup .caret,.wise-editor .navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:"";}.wise-editor .dropup .dropdown-menu,.wise-editor .navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px;}@media (min-width:768px){.wise-editor .navbar-right .dropdown-menu{left:auto;right:0;}.wise-editor .navbar-right .dropdown-menu-left{left:0;right:auto;}}.wise-editor .btn-group,.wise-editor .btn-group-vertical{position:relative;display:inline-block;vertical-align:middle;}.wise-editor .btn-group>.btn,.wise-editor .btn-group-vertical>.btn{position:relative;float:left;}.wise-editor .btn-group>.btn:hover,.wise-editor .btn-group-vertical>.btn:hover,.wise-editor .btn-group>.btn:focus,.wise-editor .btn-group-vertical>.btn:focus,.wise-editor .btn-group>.btn:active,.wise-editor .btn-group-vertical>.btn:active,.wise-editor .btn-group>.btn.active,.wise-editor .btn-group-vertical>.btn.active{z-index:2;}.wise-editor .btn-group>.btn:focus,.wise-editor .btn-group-vertical>.btn:focus{outline:0;}.wise-editor .btn-group .btn+.btn,.wise-editor .btn-group .btn+.btn-group,.wise-editor .btn-group .btn-group+.btn,.wise-editor .btn-group .btn-group+.btn-group{margin-left:-1px;}.wise-editor .btn-toolbar{margin-left:-5px;}.wise-editor .btn-toolbar .btn-group,.wise-editor .btn-toolbar .input-group{float:left;}.wise-editor .btn-toolbar>.btn,.wise-editor .btn-toolbar>.btn-group,.wise-editor .btn-toolbar>.input-group{margin-left:5px;}.wise-editor .btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0;}.wise-editor .btn-group>.btn:first-child{margin-left:0;}.wise-editor .btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0;}.wise-editor .btn-group>.btn:last-child:not(:first-child),.wise-editor .btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;}.wise-editor .btn-group>.btn-group{float:left;}.wise-editor .btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0;}.wise-editor .btn-group>.btn-group:first-child>.btn:last-child,.wise-editor .btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0;}.wise-editor .btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0;}.wise-editor .btn-group .dropdown-toggle:active,.wise-editor .btn-group.open .dropdown-toggle{outline:0;}.wise-editor .btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px;}.wise-editor .btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px;}.wise-editor .btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125);}.wise-editor .btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none;}.wise-editor .btn .caret{margin-left:0;}.wise-editor .btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0;}.wise-editor .dropup .btn-lg .caret{border-width:0 5px 5px;}.wise-editor .btn-group-vertical>.btn,.wise-editor .btn-group-vertical>.btn-group,.wise-editor .btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%;}.wise-editor .btn-group-vertical>.btn-group>.btn{float:none;}.wise-editor .btn-group-vertical>.btn+.btn,.wise-editor .btn-group-vertical>.btn+.btn-group,.wise-editor .btn-group-vertical>.btn-group+.btn,.wise-editor .btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0;}.wise-editor .btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0;}.wise-editor .btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0;}.wise-editor .btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0;}.wise-editor .btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0;}.wise-editor .btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.wise-editor .btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0;}.wise-editor .btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0;}.wise-editor .btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate;}.wise-editor .btn-group-justified>.btn,.wise-editor .btn-group-justified>.btn-group{float:none;display:table-cell;width:1%;}.wise-editor .btn-group-justified>.btn-group .btn{width:100%;}.wise-editor [data-toggle=buttons]>.btn>input[type=radio],.wise-editor [data-toggle=buttons]>.btn>input[type=checkbox]{display:none;}.wise-editor .input-group{position:relative;display:table;border-collapse:separate;}.wise-editor .input-group[class*=col-]{float:none;padding-left:0;padding-right:0;}.wise-editor .input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0;}.wise-editor .input-group-lg>.form-control,.wise-editor .input-group-lg>.input-group-addon,.wise-editor .input-group-lg>.input-group-btn>.btn{height:45px;padding:10px 16px;font-size:17px;line-height:1.33;border-radius:6px;}.wise-editor select.input-group-lg>.form-control,.wise-editor select.input-group-lg>.input-group-addon,.wise-editor select.input-group-lg>.input-group-btn>.btn{height:45px;line-height:45px;}.wise-editor textarea.input-group-lg>.form-control,.wise-editor textarea.input-group-lg>.input-group-addon,.wise-editor textarea.input-group-lg>.input-group-btn>.btn,.wise-editor select[multiple].input-group-lg>.form-control,.wise-editor select[multiple].input-group-lg>.input-group-addon,.wise-editor select[multiple].input-group-lg>.input-group-btn>.btn{height:auto;}.wise-editor .input-group-sm>.form-control,.wise-editor .input-group-sm>.input-group-addon,.wise-editor .input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px;}.wise-editor select.input-group-sm>.form-control,.wise-editor select.input-group-sm>.input-group-addon,.wise-editor select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px;}.wise-editor textarea.input-group-sm>.form-control,.wise-editor textarea.input-group-sm>.input-group-addon,.wise-editor textarea.input-group-sm>.input-group-btn>.btn,.wise-editor select[multiple].input-group-sm>.form-control,.wise-editor select[multiple].input-group-sm>.input-group-addon,.wise-editor select[multiple].input-group-sm>.input-group-btn>.btn{height:auto;}.wise-editor .input-group-addon,.wise-editor .input-group-btn,.wise-editor .input-group .form-control{display:table-cell;}.wise-editor .input-group-addon:not(:first-child):not(:last-child),.wise-editor .input-group-btn:not(:first-child):not(:last-child),.wise-editor .input-group .form-control:not(:first-child):not(:last-child){border-radius:0;}.wise-editor .input-group-addon,.wise-editor .input-group-btn{width:1%;white-space:nowrap;vertical-align:middle;}.wise-editor .input-group-addon{padding:6px 12px;font-size:13px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px;}.wise-editor .input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px;}.wise-editor .input-group-addon.input-lg{padding:10px 16px;font-size:17px;border-radius:6px;}.wise-editor .input-group-addon input[type=radio],.wise-editor .input-group-addon input[type=checkbox]{margin-top:0;}.wise-editor .input-group .form-control:first-child,.wise-editor .input-group-addon:first-child,.wise-editor .input-group-btn:first-child>.btn,.wise-editor .input-group-btn:first-child>.btn-group>.btn,.wise-editor .input-group-btn:first-child>.dropdown-toggle,.wise-editor .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.wise-editor .input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0;}.wise-editor .input-group-addon:first-child{border-right:0;}.wise-editor .input-group .form-control:last-child,.wise-editor .input-group-addon:last-child,.wise-editor .input-group-btn:last-child>.btn,.wise-editor .input-group-btn:last-child>.btn-group>.btn,.wise-editor .input-group-btn:last-child>.dropdown-toggle,.wise-editor .input-group-btn:first-child>.btn:not(:first-child),.wise-editor .input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0;}.wise-editor .input-group-addon:last-child{border-left:0;}.wise-editor .input-group-btn{position:relative;font-size:0;white-space:nowrap;}.wise-editor .input-group-btn>.btn{position:relative;}.wise-editor .input-group-btn>.btn+.btn{margin-left:-1px;}.wise-editor .input-group-btn>.btn:hover,.wise-editor .input-group-btn>.btn:focus,.wise-editor .input-group-btn>.btn:active{z-index:2;}.wise-editor .input-group-btn:first-child>.btn,.wise-editor .input-group-btn:first-child>.btn-group{margin-right:-1px;}.wise-editor .input-group-btn:last-child>.btn,.wise-editor .input-group-btn:last-child>.btn-group{margin-left:-1px;}.wise-editor .nav{margin-bottom:0;padding-left:0;list-style:none;}.wise-editor .nav>li{position:relative;display:block;}.wise-editor .nav>li>a{position:relative;display:block;padding:10px 15px;}.wise-editor .nav>li>a:hover,.wise-editor .nav>li>a:focus{text-decoration:none;background-color:#eee;}.wise-editor .nav>li.disabled>a{color:#999;}.wise-editor .nav>li.disabled>a:hover,.wise-editor .nav>li.disabled>a:focus{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed;}.wise-editor .nav .open>a,.wise-editor .nav .open>a:hover,.wise-editor .nav .open>a:focus{background-color:#eee;border-color:#428bca;}.wise-editor .nav .nav-divider{height:1px;margin:8px 0;overflow:hidden;background-color:#e5e5e5;}.wise-editor .nav>li>a>img{max-width:none;}.wise-editor .nav-tabs{border-bottom:1px solid #ddd;}.wise-editor .nav-tabs>li{float:left;margin-bottom:-1px;}.wise-editor .nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0;}.wise-editor .nav-tabs>li>a:hover{border-color:#eee #eee #ddd;}.wise-editor .nav-tabs>li.active>a,.wise-editor .nav-tabs>li.active>a:hover,.wise-editor .nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default;}.wise-editor .nav-tabs.nav-justified{width:100%;border-bottom:0;}.wise-editor .nav-tabs.nav-justified>li{float:none;}.wise-editor .nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px;}.wise-editor .nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto;}@media (min-width:768px){.wise-editor .nav-tabs.nav-justified>li{display:table-cell;width:1%;}.wise-editor .nav-tabs.nav-justified>li>a{margin-bottom:0;}}.wise-editor .nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px;}.wise-editor .nav-tabs.nav-justified>.active>a,.wise-editor .nav-tabs.nav-justified>.active>a:hover,.wise-editor .nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd;}@media (min-width:768px){.wise-editor .nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0;}.wise-editor .nav-tabs.nav-justified>.active>a,.wise-editor .nav-tabs.nav-justified>.active>a:hover,.wise-editor .nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff;}}.wise-editor .nav-pills>li{float:left;}.wise-editor .nav-pills>li>a{border-radius:4px;}.wise-editor .nav-pills>li+li{margin-left:2px;}.wise-editor .nav-pills>li.active>a,.wise-editor .nav-pills>li.active>a:hover,.wise-editor .nav-pills>li.active>a:focus{color:#fff;background-color:#428bca;}.wise-editor .nav-stacked>li{float:none;}.wise-editor .nav-stacked>li+li{margin-top:2px;margin-left:0;}.wise-editor .nav-justified{width:100%;}.wise-editor .nav-justified>li{float:none;}.wise-editor .nav-justified>li>a{text-align:center;margin-bottom:5px;}.wise-editor .nav-justified>.dropdown .dropdown-menu{top:auto;left:auto;}@media (min-width:768px){.wise-editor .nav-justified>li{display:table-cell;width:1%;}.wise-editor .nav-justified>li>a{margin-bottom:0;}}.wise-editor .nav-tabs-justified{border-bottom:0;}.wise-editor .nav-tabs-justified>li>a{margin-right:0;border-radius:4px;}.wise-editor .nav-tabs-justified>.active>a,.wise-editor .nav-tabs-justified>.active>a:hover,.wise-editor .nav-tabs-justified>.active>a:focus{border:1px solid #ddd;}@media (min-width:768px){.wise-editor .nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0;}.wise-editor .nav-tabs-justified>.active>a,.wise-editor .nav-tabs-justified>.active>a:hover,.wise-editor .nav-tabs-justified>.active>a:focus{border-bottom-color:#fff;}}.wise-editor .tab-content>.tab-pane{display:none;}.wise-editor .tab-content>.active{display:block;}.wise-editor .nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0;}.wise-editor .navbar{position:relative;min-height:50px;margin-bottom:18px;border:1px solid transparent;}@media (min-width:768px){.wise-editor .navbar{border-radius:4px;}}@media (min-width:768px){.wise-editor .navbar-header{float:left;}}.wise-editor .navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch;}.wise-editor .navbar-collapse.in{overflow-y:auto;}@media (min-width:768px){.wise-editor .navbar-collapse{width:auto;border-top:0;box-shadow:none;}.wise-editor .navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important;}.wise-editor .navbar-collapse.in{overflow-y:visible;}.wise-editor .navbar-fixed-top .navbar-collapse,.wise-editor .navbar-static-top .navbar-collapse,.wise-editor .navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0;}}.wise-editor .container>.navbar-header,.wise-editor .container-fluid>.navbar-header,.wise-editor .container>.navbar-collapse,.wise-editor .container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px;}@media (min-width:768px){.wise-editor .container>.navbar-header,.wise-editor .container-fluid>.navbar-header,.wise-editor .container>.navbar-collapse,.wise-editor .container-fluid>.navbar-collapse{margin-right:0;margin-left:0;}}.wise-editor .navbar-static-top{z-index:1000;border-width:0 0 1px;}@media (min-width:768px){.wise-editor .navbar-static-top{border-radius:0;}}.wise-editor .navbar-fixed-top,.wise-editor .navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;}@media (min-width:768px){.wise-editor .navbar-fixed-top,.wise-editor .navbar-fixed-bottom{border-radius:0;}}.wise-editor .navbar-fixed-top{top:0;border-width:0 0 1px;}.wise-editor .navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0;}.wise-editor .navbar-brand{float:left;padding:16px 15px;font-size:17px;line-height:18px;height:50px;}.wise-editor .navbar-brand:hover,.wise-editor .navbar-brand:focus{text-decoration:none;}@media (min-width:768px){.wise-editor .navbar>.container .navbar-brand,.wise-editor .navbar>.container-fluid .navbar-brand{margin-left:-15px;}}.wise-editor .navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px;}.wise-editor .navbar-toggle:focus{outline:0;}.wise-editor .navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px;}.wise-editor .navbar-toggle .icon-bar+.icon-bar{margin-top:4px;}@media (min-width:768px){.wise-editor .navbar-toggle{display:none;}}.wise-editor .navbar-nav{margin:8px -15px;}.wise-editor .navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:18px;}@media (max-width:767px){.wise-editor .navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none;}.wise-editor .navbar-nav .open .dropdown-menu>li>a,.wise-editor .navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px;}.wise-editor .navbar-nav .open .dropdown-menu>li>a{line-height:18px;}.wise-editor .navbar-nav .open .dropdown-menu>li>a:hover,.wise-editor .navbar-nav .open .dropdown-menu>li>a:focus{background-image:none;}}@media (min-width:768px){.wise-editor .navbar-nav{float:left;margin:0;}.wise-editor .navbar-nav>li{float:left;}.wise-editor .navbar-nav>li>a{padding-top:16px;padding-bottom:16px;}.wise-editor .navbar-nav.navbar-right:last-child{margin-right:-15px;}}@media (min-width:768px){.wise-editor .navbar-left{float:left!important;}.wise-editor .navbar-right{float:right!important;}}.wise-editor .navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:9px;margin-bottom:9px;}@media (min-width:768px){.wise-editor .navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle;}.wise-editor .navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle;}.wise-editor .navbar-form .input-group>.form-control{width:100%;}.wise-editor .navbar-form .control-label{margin-bottom:0;vertical-align:middle;}.wise-editor .navbar-form .radio,.wise-editor .navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle;}.wise-editor .navbar-form .radio input[type=radio],.wise-editor .navbar-form .checkbox input[type=checkbox]{float:none;margin-left:0;}.wise-editor .navbar-form .has-feedback .form-control-feedback{top:0;}}@media (max-width:767px){.wise-editor .navbar-form .form-group{margin-bottom:5px;}}@media (min-width:768px){.wise-editor .navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none;}.wise-editor .navbar-form.navbar-right:last-child{margin-right:-15px;}}.wise-editor .navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0;}.wise-editor .navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0;}.wise-editor .navbar-btn{margin-top:9px;margin-bottom:9px;}.wise-editor .navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px;}.wise-editor .navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px;}.wise-editor .navbar-text{margin-top:16px;margin-bottom:16px;}@media (min-width:768px){.wise-editor .navbar-text{float:left;margin-left:15px;margin-right:15px;}.wise-editor .navbar-text.navbar-right:last-child{margin-right:0;}}.wise-editor .navbar-default{background-color:#f8f8f8;border-color:#e7e7e7;}.wise-editor .navbar-default .navbar-brand{color:#777;}.wise-editor .navbar-default .navbar-brand:hover,.wise-editor .navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent;}.wise-editor .navbar-default .navbar-text{color:#777;}.wise-editor .navbar-default .navbar-nav>li>a{color:#777;}.wise-editor .navbar-default .navbar-nav>li>a:hover,.wise-editor .navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent;}.wise-editor .navbar-default .navbar-nav>.active>a,.wise-editor .navbar-default .navbar-nav>.active>a:hover,.wise-editor .navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7;}.wise-editor .navbar-default .navbar-nav>.disabled>a,.wise-editor .navbar-default .navbar-nav>.disabled>a:hover,.wise-editor .navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent;}.wise-editor .navbar-default .navbar-toggle{border-color:#ddd;}.wise-editor .navbar-default .navbar-toggle:hover,.wise-editor .navbar-default .navbar-toggle:focus{background-color:#ddd;}.wise-editor .navbar-default .navbar-toggle .icon-bar{background-color:#888;}.wise-editor .navbar-default .navbar-collapse,.wise-editor .navbar-default .navbar-form{border-color:#e7e7e7;}.wise-editor .navbar-default .navbar-nav>.open>a,.wise-editor .navbar-default .navbar-nav>.open>a:hover,.wise-editor .navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555;}@media (max-width:767px){.wise-editor .navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777;}.wise-editor .navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.wise-editor .navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent;}.wise-editor .navbar-default .navbar-nav .open .dropdown-menu>.active>a,.wise-editor .navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.wise-editor .navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7;}.wise-editor .navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.wise-editor .navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.wise-editor .navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent;}}.wise-editor .navbar-default .navbar-link{color:#777;}.wise-editor .navbar-default .navbar-link:hover{color:#333;}.wise-editor .navbar-inverse{background-color:#222;border-color:#080808;}.wise-editor .navbar-inverse .navbar-brand{color:#999;}.wise-editor .navbar-inverse .navbar-brand:hover,.wise-editor .navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent;}.wise-editor .navbar-inverse .navbar-text{color:#999;}.wise-editor .navbar-inverse .navbar-nav>li>a{color:#999;}.wise-editor .navbar-inverse .navbar-nav>li>a:hover,.wise-editor .navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent;}.wise-editor .navbar-inverse .navbar-nav>.active>a,.wise-editor .navbar-inverse .navbar-nav>.active>a:hover,.wise-editor .navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808;}.wise-editor .navbar-inverse .navbar-nav>.disabled>a,.wise-editor .navbar-inverse .navbar-nav>.disabled>a:hover,.wise-editor .navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent;}.wise-editor .navbar-inverse .navbar-toggle{border-color:#333;}.wise-editor .navbar-inverse .navbar-toggle:hover,.wise-editor .navbar-inverse .navbar-toggle:focus{background-color:#333;}.wise-editor .navbar-inverse .navbar-toggle .icon-bar{background-color:#fff;}.wise-editor .navbar-inverse .navbar-collapse,.wise-editor .navbar-inverse .navbar-form{border-color:#101010;}.wise-editor .navbar-inverse .navbar-nav>.open>a,.wise-editor .navbar-inverse .navbar-nav>.open>a:hover,.wise-editor .navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#fff;}@media (max-width:767px){.wise-editor .navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808;}.wise-editor .navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808;}.wise-editor .navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999;}.wise-editor .navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.wise-editor .navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent;}.wise-editor .navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.wise-editor .navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.wise-editor .navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808;}.wise-editor .navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.wise-editor .navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.wise-editor .navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent;}}.wise-editor .navbar-inverse .navbar-link{color:#999;}.wise-editor .navbar-inverse .navbar-link:hover{color:#fff;}.wise-editor .breadcrumb{padding:8px 15px;margin-bottom:18px;list-style:none;background-color:#f5f5f5;border-radius:4px;}.wise-editor .breadcrumb>li{display:inline-block;}.wise-editor .breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc;}.wise-editor .breadcrumb>.active{color:#999;}.wise-editor .pagination{display:inline-block;padding-left:0;margin:18px 0;border-radius:4px;}.wise-editor .pagination>li{display:inline;}.wise-editor .pagination>li>a,.wise-editor .pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#428bca;background-color:#fff;border:1px solid #ddd;margin-left:-1px;}.wise-editor .pagination>li:first-child>a,.wise-editor .pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px;}.wise-editor .pagination>li:last-child>a,.wise-editor .pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px;}.wise-editor .pagination>li>a:hover,.wise-editor .pagination>li>span:hover,.wise-editor .pagination>li>a:focus,.wise-editor .pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd;}.wise-editor .pagination>.active>a,.wise-editor .pagination>.active>span,.wise-editor .pagination>.active>a:hover,.wise-editor .pagination>.active>span:hover,.wise-editor .pagination>.active>a:focus,.wise-editor .pagination>.active>span:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default;}.wise-editor .pagination>.disabled>span,.wise-editor .pagination>.disabled>span:hover,.wise-editor .pagination>.disabled>span:focus,.wise-editor .pagination>.disabled>a,.wise-editor .pagination>.disabled>a:hover,.wise-editor .pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed;}.wise-editor .pagination-lg>li>a,.wise-editor .pagination-lg>li>span{padding:10px 16px;font-size:17px;}.wise-editor .pagination-lg>li:first-child>a,.wise-editor .pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px;}.wise-editor .pagination-lg>li:last-child>a,.wise-editor .pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px;}.wise-editor .pagination-sm>li>a,.wise-editor .pagination-sm>li>span{padding:5px 10px;font-size:12px;}.wise-editor .pagination-sm>li:first-child>a,.wise-editor .pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px;}.wise-editor .pagination-sm>li:last-child>a,.wise-editor .pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px;}.wise-editor .pager{padding-left:0;margin:18px 0;list-style:none;text-align:center;}.wise-editor .pager li{display:inline;}.wise-editor .pager li>a,.wise-editor .pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px;}.wise-editor .pager li>a:hover,.wise-editor .pager li>a:focus{text-decoration:none;background-color:#eee;}.wise-editor .pager .next>a,.wise-editor .pager .next>span{float:right;}.wise-editor .pager .previous>a,.wise-editor .pager .previous>span{float:left;}.wise-editor .pager .disabled>a,.wise-editor .pager .disabled>a:hover,.wise-editor .pager .disabled>a:focus,.wise-editor .pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed;}.wise-editor .label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em;}.wise-editor .label[href]:hover,.wise-editor .label[href]:focus{color:#fff;text-decoration:none;cursor:pointer;}.wise-editor .label:empty{display:none;}.wise-editor .btn .label{position:relative;top:-1px;}.wise-editor .label-default{background-color:#999;}.wise-editor .label-default[href]:hover,.wise-editor .label-default[href]:focus{background-color:gray;}.wise-editor .label-primary{background-color:#428bca;}.wise-editor .label-primary[href]:hover,.wise-editor .label-primary[href]:focus{background-color:#3071a9;}.wise-editor .label-success{background-color:#5cb85c;}.wise-editor .label-success[href]:hover,.wise-editor .label-success[href]:focus{background-color:#449d44;}.wise-editor .label-info{background-color:#5bc0de;}.wise-editor .label-info[href]:hover,.wise-editor .label-info[href]:focus{background-color:#31b0d5;}.wise-editor .label-warning{background-color:#f0ad4e;}.wise-editor .label-warning[href]:hover,.wise-editor .label-warning[href]:focus{background-color:#ec971f;}.wise-editor .label-danger{background-color:#d9534f;}.wise-editor .label-danger[href]:hover,.wise-editor .label-danger[href]:focus{background-color:#c9302c;}.wise-editor .badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px;}.wise-editor .badge:empty{display:none;}.wise-editor .btn .badge{position:relative;top:-1px;}.wise-editor .btn-xs .badge{top:0;padding:1px 5px;}.wise-editor a.badge:hover,.wise-editor a.badge:focus{color:#fff;text-decoration:none;cursor:pointer;}.wise-editor a.list-group-item.active>.badge,.wise-editor .nav-pills>.active>a>.badge{color:#428bca;background-color:#fff;}.wise-editor .nav-pills>li>a>.badge{margin-left:3px;}.wise-editor .jumbotron{padding:30px;margin-bottom:30px;color:inherit;background-color:#eee;}.wise-editor .jumbotron h1,.wise-editor .jumbotron .h1{color:inherit;}.wise-editor .jumbotron p{margin-bottom:15px;font-size:20px;font-weight:200;}.wise-editor .container .jumbotron{border-radius:6px;}.wise-editor .jumbotron .container{max-width:100%;}@media screen and (min-width:768px){.wise-editor .jumbotron{padding-top:48px;padding-bottom:48px;}.wise-editor .container .jumbotron{padding-left:60px;padding-right:60px;}.wise-editor .jumbotron h1,.wise-editor .jumbotron .h1{font-size:58.5px;}}.wise-editor .thumbnail{display:block;padding:4px;margin-bottom:18px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;}.wise-editor .thumbnail>img,.wise-editor .thumbnail a>img{margin-left:auto;margin-right:auto;}.wise-editor a.thumbnail:hover,.wise-editor a.thumbnail:focus,.wise-editor a.thumbnail.active{border-color:#428bca;}.wise-editor .thumbnail .caption{padding:9px;color:#333;}.wise-editor .alert{padding:15px;margin-bottom:18px;border:1px solid transparent;border-radius:4px;}.wise-editor .alert h4{margin-top:0;color:inherit;}.wise-editor .alert .alert-link{font-weight:700;}.wise-editor .alert>p,.wise-editor .alert>ul{margin-bottom:0;}.wise-editor .alert>p+p{margin-top:5px;}.wise-editor .alert-dismissable{padding-right:35px;}.wise-editor .alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit;}.wise-editor .alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d;}.wise-editor .alert-success hr{border-top-color:#c9e2b3;}.wise-editor .alert-success .alert-link{color:#2b542c;}.wise-editor .alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f;}.wise-editor .alert-info hr{border-top-color:#a6e1ec;}.wise-editor .alert-info .alert-link{color:#245269;}.wise-editor .alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b;}.wise-editor .alert-warning hr{border-top-color:#f7e1b5;}.wise-editor .alert-warning .alert-link{color:#66512c;}.wise-editor .alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442;}.wise-editor .alert-danger hr{border-top-color:#e4b9c0;}.wise-editor .alert-danger .alert-link{color:#843534;}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0;}to{background-position:0 0;}}@keyframes progress-bar-stripes{from{background-position:40px 0;}to{background-position:0 0;}}.wise-editor .progress{overflow:hidden;height:18px;margin-bottom:18px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1);}.wise-editor .progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:18px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease;}.wise-editor .progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px;}.wise-editor .progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite;}.wise-editor .progress-bar-success{background-color:#5cb85c;}.wise-editor .progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);}.wise-editor .progress-bar-info{background-color:#5bc0de;}.wise-editor .progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);}.wise-editor .progress-bar-warning{background-color:#f0ad4e;}.wise-editor .progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);}.wise-editor .progress-bar-danger{background-color:#d9534f;}.wise-editor .progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);}.wise-editor .media,.wise-editor .media-body{overflow:hidden;zoom:1;}.wise-editor .media,.wise-editor .media .media{margin-top:15px;}.wise-editor .media:first-child{margin-top:0;}.wise-editor .media-object{display:block;}.wise-editor .media-heading{margin:0 0 5px;}.wise-editor .media>.pull-left{margin-right:10px;}.wise-editor .media>.pull-right{margin-left:10px;}.wise-editor .media-list{padding-left:0;list-style:none;}.wise-editor .list-group{margin-bottom:20px;padding-left:0;}.wise-editor .list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd;}.wise-editor .list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px;}.wise-editor .list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px;}.wise-editor .list-group-item>.badge{float:right;}.wise-editor .list-group-item>.badge+.badge{margin-right:5px;}.wise-editor a.list-group-item{color:#555;}.wise-editor a.list-group-item .list-group-item-heading{color:#333;}.wise-editor a.list-group-item:hover,.wise-editor a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5;}.wise-editor a.list-group-item.active,.wise-editor a.list-group-item.active:hover,.wise-editor a.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;}.wise-editor a.list-group-item.active .list-group-item-heading,.wise-editor a.list-group-item.active:hover .list-group-item-heading,.wise-editor a.list-group-item.active:focus .list-group-item-heading{color:inherit;}.wise-editor a.list-group-item.active .list-group-item-text,.wise-editor a.list-group-item.active:hover .list-group-item-text,.wise-editor a.list-group-item.active:focus .list-group-item-text{color:#e1edf7;}.wise-editor .list-group-item-success{color:#3c763d;background-color:#dff0d8;}.wise-editor a.list-group-item-success{color:#3c763d;}.wise-editor a.list-group-item-success .list-group-item-heading{color:inherit;}.wise-editor a.list-group-item-success:hover,.wise-editor a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6;}.wise-editor a.list-group-item-success.active,.wise-editor a.list-group-item-success.active:hover,.wise-editor a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d;}.wise-editor .list-group-item-info{color:#31708f;background-color:#d9edf7;}.wise-editor a.list-group-item-info{color:#31708f;}.wise-editor a.list-group-item-info .list-group-item-heading{color:inherit;}.wise-editor a.list-group-item-info:hover,.wise-editor a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3;}.wise-editor a.list-group-item-info.active,.wise-editor a.list-group-item-info.active:hover,.wise-editor a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f;}.wise-editor .list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3;}.wise-editor a.list-group-item-warning{color:#8a6d3b;}.wise-editor a.list-group-item-warning .list-group-item-heading{color:inherit;}.wise-editor a.list-group-item-warning:hover,.wise-editor a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc;}.wise-editor a.list-group-item-warning.active,.wise-editor a.list-group-item-warning.active:hover,.wise-editor a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b;}.wise-editor .list-group-item-danger{color:#a94442;background-color:#f2dede;}.wise-editor a.list-group-item-danger{color:#a94442;}.wise-editor a.list-group-item-danger .list-group-item-heading{color:inherit;}.wise-editor a.list-group-item-danger:hover,.wise-editor a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc;}.wise-editor a.list-group-item-danger.active,.wise-editor a.list-group-item-danger.active:hover,.wise-editor a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442;}.wise-editor .list-group-item-heading{margin-top:0;margin-bottom:5px;}.wise-editor .list-group-item-text{margin-bottom:0;line-height:1.3;}.wise-editor .panel{margin-bottom:18px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05);}.wise-editor .panel-body{padding:15px;}.wise-editor .panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px;}.wise-editor .panel-heading>.dropdown .dropdown-toggle{color:inherit;}.wise-editor .panel-title{margin-top:0;margin-bottom:0;font-size:15px;color:inherit;}.wise-editor .panel-title>a{color:inherit;}.wise-editor .panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px;}.wise-editor .panel>.list-group{margin-bottom:0;}.wise-editor .panel>.list-group .list-group-item{border-width:1px 0;border-radius:0;}.wise-editor .panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px;}.wise-editor .panel>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px;}.wise-editor .panel-heading+.list-group .list-group-item:first-child{border-top-width:0;}.wise-editor .panel>.table,.wise-editor .panel>.table-responsive>.table{margin-bottom:0;}.wise-editor .panel>.table:first-child,.wise-editor .panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px;}.wise-editor .panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.wise-editor .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.wise-editor .panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.wise-editor .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.wise-editor .panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.wise-editor .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.wise-editor .panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.wise-editor .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px;}.wise-editor .panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.wise-editor .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.wise-editor .panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.wise-editor .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.wise-editor .panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.wise-editor .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.wise-editor .panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.wise-editor .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px;}.wise-editor .panel>.table:last-child,.wise-editor .panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px;}.wise-editor .panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.wise-editor .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.wise-editor .panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.wise-editor .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.wise-editor .panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.wise-editor .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.wise-editor .panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.wise-editor .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px;}.wise-editor .panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.wise-editor .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.wise-editor .panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.wise-editor .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.wise-editor .panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.wise-editor .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.wise-editor .panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.wise-editor .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px;}.wise-editor .panel>.panel-body+.table,.wise-editor .panel>.panel-body+.table-responsive{border-top:1px solid #ddd;}.wise-editor .panel>.table>tbody:first-child>tr:first-child th,.wise-editor .panel>.table>tbody:first-child>tr:first-child td{border-top:0;}.wise-editor .panel>.table-bordered,.wise-editor .panel>.table-responsive>.table-bordered{border:0;}.wise-editor .panel>.table-bordered>thead>tr>th:first-child,.wise-editor .panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.wise-editor .panel>.table-bordered>tbody>tr>th:first-child,.wise-editor .panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.wise-editor .panel>.table-bordered>tfoot>tr>th:first-child,.wise-editor .panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.wise-editor .panel>.table-bordered>thead>tr>td:first-child,.wise-editor .panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.wise-editor .panel>.table-bordered>tbody>tr>td:first-child,.wise-editor .panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.wise-editor .panel>.table-bordered>tfoot>tr>td:first-child,.wise-editor .panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0;}.wise-editor .panel>.table-bordered>thead>tr>th:last-child,.wise-editor .panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.wise-editor .panel>.table-bordered>tbody>tr>th:last-child,.wise-editor .panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.wise-editor .panel>.table-bordered>tfoot>tr>th:last-child,.wise-editor .panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.wise-editor .panel>.table-bordered>thead>tr>td:last-child,.wise-editor .panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.wise-editor .panel>.table-bordered>tbody>tr>td:last-child,.wise-editor .panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.wise-editor .panel>.table-bordered>tfoot>tr>td:last-child,.wise-editor .panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0;}.wise-editor .panel>.table-bordered>thead>tr:first-child>td,.wise-editor .panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.wise-editor .panel>.table-bordered>tbody>tr:first-child>td,.wise-editor .panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.wise-editor .panel>.table-bordered>thead>tr:first-child>th,.wise-editor .panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.wise-editor .panel>.table-bordered>tbody>tr:first-child>th,.wise-editor .panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0;}.wise-editor .panel>.table-bordered>tbody>tr:last-child>td,.wise-editor .panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.wise-editor .panel>.table-bordered>tfoot>tr:last-child>td,.wise-editor .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.wise-editor .panel>.table-bordered>tbody>tr:last-child>th,.wise-editor .panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.wise-editor .panel>.table-bordered>tfoot>tr:last-child>th,.wise-editor .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0;}.wise-editor .panel>.table-responsive{border:0;margin-bottom:0;}.wise-editor .panel-group{margin-bottom:18px;}.wise-editor .panel-group .panel{margin-bottom:0;border-radius:4px;overflow:hidden;}.wise-editor .panel-group .panel+.panel{margin-top:5px;}.wise-editor .panel-group .panel-heading{border-bottom:0;}.wise-editor .panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd;}.wise-editor .panel-group .panel-footer{border-top:0;}.wise-editor .panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd;}.wise-editor .panel-default{border-color:#ddd;}.wise-editor .panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd;}.wise-editor .panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd;}.wise-editor .panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd;}.wise-editor .panel-primary{border-color:#428bca;}.wise-editor .panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca;}.wise-editor .panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca;}.wise-editor .panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca;}.wise-editor .panel-success{border-color:#d6e9c6;}.wise-editor .panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6;}.wise-editor .panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6;}.wise-editor .panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6;}.wise-editor .panel-info{border-color:#bce8f1;}.wise-editor .panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1;}.wise-editor .panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1;}.wise-editor .panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1;}.wise-editor .panel-warning{border-color:#faebcc;}.wise-editor .panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc;}.wise-editor .panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc;}.wise-editor .panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc;}.wise-editor .panel-danger{border-color:#ebccd1;}.wise-editor .panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1;}.wise-editor .panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1;}.wise-editor .panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1;}.wise-editor .well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05);}.wise-editor .well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15);}.wise-editor .well-lg{padding:24px;border-radius:6px;}.wise-editor .well-sm{padding:9px;border-radius:3px;}.wise-editor .close{float:right;font-size:19.5px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20);}.wise-editor .close:hover,.wise-editor .close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50);}.wise-editor button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none;}.wise-editor .modal-open{overflow:hidden;}.wise-editor .modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0;}.wise-editor .modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;}.wise-editor .modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);}.wise-editor .modal-dialog{position:relative;width:auto;margin:10px;}.wise-editor .modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0;}.wise-editor .modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000;}.wise-editor .modal-backdrop.fade{opacity:0;filter:alpha(opacity=0);}.wise-editor .modal-backdrop.in{opacity:.5;filter:alpha(opacity=50);}.wise-editor .modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px;}.wise-editor .modal-header .close{margin-top:-2px;}.wise-editor .modal-title{margin:0;line-height:1.42857143;}.wise-editor .modal-body{position:relative;padding:20px;}.wise-editor .modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5;}.wise-editor .modal-footer .btn+.btn{margin-left:5px;margin-bottom:0;}.wise-editor .modal-footer .btn-group .btn+.btn{margin-left:-1px;}.wise-editor .modal-footer .btn-block+.btn-block{margin-left:0;}@media (min-width:768px){.wise-editor .modal-dialog{width:600px;margin:30px auto;}.wise-editor .modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5);}.wise-editor .modal-sm{width:300px;}}@media (min-width:992px){.wise-editor .modal-lg{width:900px;}}.wise-editor .tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0);}.wise-editor .tooltip.in{opacity:.9;filter:alpha(opacity=90);}.wise-editor .tooltip.top{margin-top:-3px;padding:5px 0;}.wise-editor .tooltip.right{margin-left:3px;padding:0 5px;}.wise-editor .tooltip.bottom{margin-top:3px;padding:5px 0;}.wise-editor .tooltip.left{margin-left:-3px;padding:0 5px;}.wise-editor .tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px;}.wise-editor .tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;}.wise-editor .tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000;}.wise-editor .tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000;}.wise-editor .tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000;}.wise-editor .tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000;}.wise-editor .tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000;}.wise-editor .tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000;}.wise-editor .tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000;}.wise-editor .tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000;}.wise-editor .popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);white-space:normal;}.wise-editor .popover.top{margin-top:-10px;}.wise-editor .popover.right{margin-left:10px;}.wise-editor .popover.bottom{margin-top:10px;}.wise-editor .popover.left{margin-left:-10px;}.wise-editor .popover-title{margin:0;padding:8px 14px;font-size:13px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0;}.wise-editor .popover-content{padding:4px 6px;}.wise-editor .popover>.arrow,.wise-editor .popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid;}.wise-editor .popover>.arrow{border-width:11px;}.wise-editor .popover>.arrow:after{border-width:10px;content:"";}.wise-editor .popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px;}.wise-editor .popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff;}.wise-editor .popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25);}.wise-editor .popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff;}.wise-editor .popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px;}.wise-editor .popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff;}.wise-editor .popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25);}.wise-editor .popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px;}.wise-editor .carousel{position:relative;}.wise-editor .carousel-inner{position:relative;overflow:hidden;width:100%;}.wise-editor .carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left;}.wise-editor .carousel-inner>.item>img,.wise-editor .carousel-inner>.item>a>img{line-height:1;}.wise-editor .carousel-inner>.active,.wise-editor .carousel-inner>.next,.wise-editor .carousel-inner>.prev{display:block;}.wise-editor .carousel-inner>.active{left:0;}.wise-editor .carousel-inner>.next,.wise-editor .carousel-inner>.prev{position:absolute;top:0;width:100%;}.wise-editor .carousel-inner>.next{left:100%;}.wise-editor .carousel-inner>.prev{left:-100%;}.wise-editor .carousel-inner>.next.left,.wise-editor .carousel-inner>.prev.right{left:0;}.wise-editor .carousel-inner>.active.left{left:-100%;}.wise-editor .carousel-inner>.active.right{left:100%;}.wise-editor .carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);}.wise-editor .carousel-control.left{background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.5) 0),color-stop(rgba(0,0,0,.0001) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);}.wise-editor .carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.0001) 0),color-stop(rgba(0,0,0,.5) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);}.wise-editor .carousel-control:hover,.wise-editor .carousel-control:focus{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90);}.wise-editor .carousel-control .icon-prev,.wise-editor .carousel-control .icon-next,.wise-editor .carousel-control .glyphicon-chevron-left,.wise-editor .carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block;}.wise-editor .carousel-control .icon-prev,.wise-editor .carousel-control .glyphicon-chevron-left{left:50%;}.wise-editor .carousel-control .icon-next,.wise-editor .carousel-control .glyphicon-chevron-right{right:50%;}.wise-editor .carousel-control .icon-prev,.wise-editor .carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif;}.wise-editor .carousel-control .icon-prev:before{content:'\2039';}.wise-editor .carousel-control .icon-next:before{content:'\203a';}.wise-editor .carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center;}.wise-editor .carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);}.wise-editor .carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff;}.wise-editor .carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);}.wise-editor .carousel-caption .btn{text-shadow:none;}@media screen and (min-width:768px){.wise-editor .carousel-control .glyphicon-chevron-left,.wise-editor .carousel-control .glyphicon-chevron-right,.wise-editor .carousel-control .icon-prev,.wise-editor .carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px;}.wise-editor .carousel-caption{left:20%;right:20%;padding-bottom:30px;}.wise-editor .carousel-indicators{bottom:20px;}}.wise-editor .clearfix:before,.wise-editor .clearfix:after,.wise-editor .container:before,.wise-editor .container:after,.wise-editor .container-fluid:before,.wise-editor .container-fluid:after,.wise-editor .row:before,.wise-editor .row:after,.wise-editor .form-horizontal .form-group:before,.wise-editor .form-horizontal .form-group:after,.wise-editor .btn-toolbar:before,.wise-editor .btn-toolbar:after,.wise-editor .btn-group-vertical>.btn-group:before,.wise-editor .btn-group-vertical>.btn-group:after,.wise-editor .nav:before,.wise-editor .nav:after,.wise-editor .navbar:before,.wise-editor .navbar:after,.wise-editor .navbar-header:before,.wise-editor .navbar-header:after,.wise-editor .navbar-collapse:before,.wise-editor .navbar-collapse:after,.wise-editor .pager:before,.wise-editor .pager:after,.wise-editor .panel-body:before,.wise-editor .panel-body:after,.wise-editor .modal-footer:before,.wise-editor .modal-footer:after{content:" ";display:table;}.wise-editor .clearfix:after,.wise-editor .container:after,.wise-editor .container-fluid:after,.wise-editor .row:after,.wise-editor .form-horizontal .form-group:after,.wise-editor .btn-toolbar:after,.wise-editor .btn-group-vertical>.btn-group:after,.wise-editor .nav:after,.wise-editor .navbar:after,.wise-editor .navbar-header:after,.wise-editor .navbar-collapse:after,.wise-editor .pager:after,.wise-editor .panel-body:after,.wise-editor .modal-footer:after{clear:both;}.wise-editor .center-block{display:block;margin-left:auto;margin-right:auto;}.wise-editor .pull-right{float:right!important;}.wise-editor .pull-left{float:left!important;}.wise-editor .hide{display:none!important;}.wise-editor .show{display:block!important;}.wise-editor .invisible{visibility:hidden;}.wise-editor .text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}.wise-editor .hidden{display:none!important;visibility:hidden!important;}.wise-editor .affix{position:fixed;}@-ms-viewport{width:device-width;}.wise-editor .visible-xs,.wise-editor .visible-sm,.wise-editor .visible-md,.wise-editor .visible-lg{display:none!important;}@media (max-width:767px){.wise-editor .visible-xs{display:block!important;}.wise-editor table.visible-xs{display:table;}.wise-editor tr.visible-xs{display:table-row!important;}.wise-editor th.visible-xs,.wise-editor td.visible-xs{display:table-cell!important;}}@media (min-width:768px) and (max-width:991px){.wise-editor .visible-sm{display:block!important;}.wise-editor table.visible-sm{display:table;}.wise-editor tr.visible-sm{display:table-row!important;}.wise-editor th.visible-sm,.wise-editor td.visible-sm{display:table-cell!important;}}@media (min-width:992px) and (max-width:1199px){.wise-editor .visible-md{display:block!important;}.wise-editor table.visible-md{display:table;}.wise-editor tr.visible-md{display:table-row!important;}.wise-editor th.visible-md,.wise-editor td.visible-md{display:table-cell!important;}}@media (min-width:1200px){.wise-editor .visible-lg{display:block!important;}.wise-editor table.visible-lg{display:table;}.wise-editor tr.visible-lg{display:table-row!important;}.wise-editor th.visible-lg,.wise-editor td.visible-lg{display:table-cell!important;}}@media (max-width:767px){.wise-editor .hidden-xs{display:none!important;}}@media (min-width:768px) and (max-width:991px){.wise-editor .hidden-sm{display:none!important;}}@media (min-width:992px) and (max-width:1199px){.wise-editor .hidden-md{display:none!important;}}@media (min-width:1200px){.wise-editor .hidden-lg{display:none!important;}}.wise-editor .visible-print{display:none!important;}@media print{.wise-editor .visible-print{display:block!important;}.wise-editor table.visible-print{display:table;}.wise-editor tr.visible-print{display:table-row!important;}.wise-editor th.visible-print,.wise-editor td.visible-print{display:table-cell!important;}}@media print{.wise-editor .hidden-print{display:none!important;}} diff --git a/packages/editor/src/bootstrap.min.css b/packages/editor/src/bootstrap.min.css deleted file mode 100644 index 04f50092..00000000 --- a/packages/editor/src/bootstrap.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap v3.1.1 (http://getbootstrap.com) - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ - -/*! normalize.css v3.0.0 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@media print{*{text-shadow:none!important;color:#000!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:18px;margin-bottom:18px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:400;line-height:1;color:#999}h1,.h1,h2,.h2,h3,.h3{margin-top:18px;margin-bottom:9px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:9px;margin-bottom:9px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:33px}h2,.h2{font-size:27px}h3,.h3{font-size:23px}h4,.h4{font-size:17px}h5,.h5{font-size:13px}h6,.h6{font-size:12px}p{margin:0 0 9px}.lead{margin-bottom:18px;font-size:14px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:19.5px}}small,.small{font-size:85%}cite{font-style:normal}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-muted{color:#999}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:8px;margin:36px 0 18px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:9px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:18px}dt,dd{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:9px 18px;margin:0 0 18px;font-size:16.25px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:18px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}pre{display:block;padding:8.5px;margin:0 0 9px;font-size:12px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:0}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:0}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:0}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:0}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:0}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:18px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}@media (max-width:767px){.table-responsive{width:100%;margin-bottom:13.5px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:18px;font-size:19.5px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=radio],input[type=checkbox]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:13px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:32px;padding:6px 12px;font-size:13px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}input[type=date]{line-height:32px}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:18px;margin-top:10px;margin-bottom:10px;padding-left:20px}.radio label,.checkbox label{display:inline;font-weight:400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type=radio][disabled],input[type=checkbox][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.input-lg{height:45px;padding:10px 16px;font-size:17px;line-height:1.33;border-radius:6px}select.input-lg{height:45px;line-height:45px}textarea.input-lg,select[multiple].input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:40px}.has-feedback .form-control-feedback{position:absolute;top:23px;right:0;display:block;width:32px;height:32px;line-height:32px;text-align:center}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.form-control-static{margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{float:none;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:25px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:13px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#428bca;font-weight:400;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:17px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:13px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:8px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#999}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}[data-toggle=buttons]>.btn>input[type=radio],[data-toggle=buttons]>.btn>input[type=checkbox]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:45px;padding:10px 16px;font-size:17px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:45px;line-height:45px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:13px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:17px;border-radius:6px}.input-group-addon input[type=radio],.input-group-addon input[type=checkbox]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:8px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:18px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:16px 15px;font-size:17px;line-height:18px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:8px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:18px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:18px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:16px;padding-bottom:16px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:9px;margin-bottom:9px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{float:none;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:9px;margin-bottom:9px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:16px;margin-bottom:16px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:18px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:18px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#428bca;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:17px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:18px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:gray}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:20px;font-weight:200}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:58.5px}}.thumbnail{display:block;padding:4px;margin-bottom:18px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:18px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:18px;margin-bottom:18px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:18px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}a.list-group-item.active .list-group-item-heading,a.list-group-item.active:hover .list-group-item-heading,a.list-group-item.active:focus .list-group-item-heading{color:inherit}a.list-group-item.active .list-group-item-text,a.list-group-item.active:hover .list-group-item-text,a.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:18px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:15px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:18px}.panel-group .panel{margin-bottom:0;border-radius:4px;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:19.5px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:13px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:4px 6px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.5) 0),color-stop(rgba(0,0,0,.0001) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.0001) 0),color-stop(rgba(0,0,0,.5) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}@media print{.hidden-print{display:none!important}} \ No newline at end of file diff --git a/packages/editor/src/components/toolbar/index.tsx b/packages/editor/src/components/toolbar/index.tsx index c86ae3ed..2363e3ea 100644 --- a/packages/editor/src/components/toolbar/index.tsx +++ b/packages/editor/src/components/toolbar/index.tsx @@ -43,7 +43,7 @@ export default function Toolbar({ }: ToolbarPropsType): React.ReactElement { const intl = useIntl(); return ( - +
diff --git a/packages/editor/src/global-styled.css b/packages/editor/src/global-styled.css index 6da5344f..d978078e 100644 --- a/packages/editor/src/global-styled.css +++ b/packages/editor/src/global-styled.css @@ -1,7 +1,8 @@ /********************************************************************************/ /* Header & Toolbar Styles */ /********************************************************************************/ -@import "bootstrap.min.css"; +@import "bootstrap-prefix.min.css"; +@import "bootstrap-fixes.css"; html { /* avoid bootstrap overriding font-size and breaking Mui */ @@ -129,7 +130,7 @@ div.shareModalDialog { background-color: #efefef; } -.popover { +.wise-editor .popover { font-size: 13px; max-width: none; } diff --git a/packages/editor/src/index.tsx b/packages/editor/src/index.tsx index 9ac7bb9e..ab54a3a7 100644 --- a/packages/editor/src/index.tsx +++ b/packages/editor/src/index.tsx @@ -100,7 +100,8 @@ const Editor = ({ onAction={onAction} /> } -
+
+
); diff --git a/packages/mindplot/src/components/NoteIcon.ts b/packages/mindplot/src/components/NoteIcon.ts index 144b6edc..363fd9ec 100644 --- a/packages/mindplot/src/components/NoteIcon.ts +++ b/packages/mindplot/src/components/NoteIcon.ts @@ -55,7 +55,6 @@ class NoteIcon extends Icon { } this._tip = new FloatingTip($(me.getImage().peer._native), { title: $msg('NOTE'), - container: 'body', // Content can also be a function of the target element! content() { return me._buildTooltipContent(); diff --git a/packages/mindplot/src/components/libraries/bootstrap/BootstrapDialog.js b/packages/mindplot/src/components/libraries/bootstrap/BootstrapDialog.js index 303c5221..3ba59482 100644 --- a/packages/mindplot/src/components/libraries/bootstrap/BootstrapDialog.js +++ b/packages/mindplot/src/components/libraries/bootstrap/BootstrapDialog.js @@ -59,6 +59,8 @@ class BootstrapDialog extends Options { $(this).remove(); }); this._native.on('shown.bs.modal', this.onDialogShown); + + this._native.appendTo('#mindplot-tooltips'); } _buildFooter() { diff --git a/packages/mindplot/src/components/widget/FloatingTip.js b/packages/mindplot/src/components/widget/FloatingTip.js index 535a5fde..edec13cb 100644 --- a/packages/mindplot/src/components/widget/FloatingTip.js +++ b/packages/mindplot/src/components/widget/FloatingTip.js @@ -27,7 +27,7 @@ const defaultOptions = { title: '', content: '', delay: 0, - container: false, + container: '#mindplot-tooltips', destroyOnExit: false, }; diff --git a/packages/mindplot/src/components/widget/LinkIconTooltip.js b/packages/mindplot/src/components/widget/LinkIconTooltip.js index 3cdca104..62e28a9c 100644 --- a/packages/mindplot/src/components/widget/LinkIconTooltip.js +++ b/packages/mindplot/src/components/widget/LinkIconTooltip.js @@ -31,7 +31,6 @@ class LinkIconTooltip extends FloatingTip { }, html: true, placement: 'bottom', - container: 'body', title: $msg('LINK'), trigger: 'manual', template: '', From c6db14b99af8c25fb77915e07b537ce58ba1ed16 Mon Sep 17 00:00:00 2001 From: Paulo Veiga Date: Sat, 5 Mar 2022 16:10:03 +0000 Subject: [PATCH 04/32] Merged in feature/remove_actions (pull request #45) Remove actions in toobar when user is not owner. * Fix eslit errors --- .../editor/src/components/toolbar/index.tsx | 79 ++--- packages/editor/src/index.tsx | 1 - .../test/playground/map-render/js/editor.tsx | 2 +- packages/mindplot/src/@types/custom.d.ts | 4 +- .../mindplot/src/components/CommandContext.ts | 11 +- .../src/components/DesignerBuilder.ts | 2 +- .../src/components/DesignerOptionsBuilder.ts | 2 +- .../src/components/EditorRenderMode.ts | 2 +- packages/mindplot/src/components/IconGroup.ts | 12 +- packages/mindplot/src/components/LinkIcon.ts | 5 +- packages/mindplot/src/components/NodeGraph.ts | 2 +- packages/mindplot/src/components/NoteIcon.ts | 4 +- .../components/StandaloneActionDispatcher.ts | 3 +- packages/mindplot/src/components/Topic.ts | 10 +- .../commands/GenericFunctionCommand.ts | 8 +- .../layout/ChildrenSorterStrategy.ts | 4 +- .../src/components/layout/LayoutManager.ts | 1 - .../src/components/model/FeatureModel.ts | 6 +- .../src/components/model/INodeModel.ts | 10 +- .../src/components/model/RelationshipModel.ts | 6 +- .../mindplot/src/components/widget/Menu.ts | 301 ++++++++---------- packages/webapp/src/app.tsx | 2 +- .../src/classes/client/rest-client/index.ts | 10 +- .../editor-page/EditorOptionsBuider.ts | 23 +- .../src/components/editor-page/index.tsx | 38 ++- 25 files changed, 270 insertions(+), 278 deletions(-) diff --git a/packages/editor/src/components/toolbar/index.tsx b/packages/editor/src/components/toolbar/index.tsx index 2363e3ea..df27da4f 100644 --- a/packages/editor/src/components/toolbar/index.tsx +++ b/packages/editor/src/components/toolbar/index.tsx @@ -48,7 +48,7 @@ export default function Toolbar({
- {editorMode === 'edition' && ( + {(editorMode === 'edition-editor' || editorMode === 'edition-owner') && (
@@ -112,44 +112,51 @@ export default function Toolbar({
- {editorMode === 'edition' && ( - - onAction('export')} - > - - - onAction('publish')} - > - - - onAction('history')} - > - - - onAction('print')} - > - - - - - + + onAction('export')} + > + + + onAction('print')} + > + + + {editorMode === 'edition-owner' && ( + <> + onAction('history')} + > + + + onAction('publish')} + > + + + + )} + {(editorMode === 'edition-owner' || editorMode === 'edition-editor') && ( + + + + )} + {editorMode === 'edition-owner' && ( onAction('share')}> {intl.formatMessage({ id: 'action.share', defaultMessage: 'Share' })} - - )} + + )} +
); diff --git a/packages/editor/src/index.tsx b/packages/editor/src/index.tsx index ab54a3a7..79b0fd87 100644 --- a/packages/editor/src/index.tsx +++ b/packages/editor/src/index.tsx @@ -13,7 +13,6 @@ import { } from '@wisemapping/mindplot'; import './global-styled.css'; import I18nMsg from './classes/i18n-msg'; -import Messages from '@wisemapping/mindplot/src/components/Messages'; declare global { // used in mindplot diff --git a/packages/editor/test/playground/map-render/js/editor.tsx b/packages/editor/test/playground/map-render/js/editor.tsx index ab06149b..bc09334b 100644 --- a/packages/editor/test/playground/map-render/js/editor.tsx +++ b/packages/editor/test/playground/map-render/js/editor.tsx @@ -36,7 +36,7 @@ const options: EditorOptions = { zoom: 0.8, locked: false, mapTitle: "Develop Mindnap", - mode: 'edition', + mode: 'edition-owner', locale: 'en', enableKeyboardEvents: true }; diff --git a/packages/mindplot/src/@types/custom.d.ts b/packages/mindplot/src/@types/custom.d.ts index e2013b53..60bd434c 100644 --- a/packages/mindplot/src/@types/custom.d.ts +++ b/packages/mindplot/src/@types/custom.d.ts @@ -1,4 +1,4 @@ -declare module "*.svg" { +declare module '*.svg' { const content: any; export default content; -} \ No newline at end of file +} diff --git a/packages/mindplot/src/components/CommandContext.ts b/packages/mindplot/src/components/CommandContext.ts index 3d489b78..054f491e 100644 --- a/packages/mindplot/src/components/CommandContext.ts +++ b/packages/mindplot/src/components/CommandContext.ts @@ -41,20 +41,15 @@ class CommandContext { } findTopics(topicIds: number[]): Topic[] { - $assert($defined(topicIds), 'topicsIds can not be null'); const topicsIds = Array.isArray(topicIds) ? topicIds : [topicIds]; const designerTopics = this._designer.getModel().getTopics(); const result = designerTopics.filter((topic) => topicsIds.includes(topic.getId())); if (result.length !== topicsIds.length) { const ids = designerTopics.map((topic) => topic.getId()); - $assert( - result.length === topicsIds.length, - `Could not find topic. Result:${result - } Filter Criteria:${topicsIds - } Current Topics: [${ids - }]`, - ); + throw new Error(`Could not find topic. Result:${result + } Filter Criteria:${topicsIds + } Current Topics: [${ids}])`); } return result; } diff --git a/packages/mindplot/src/components/DesignerBuilder.ts b/packages/mindplot/src/components/DesignerBuilder.ts index ae720d51..a657b24a 100644 --- a/packages/mindplot/src/components/DesignerBuilder.ts +++ b/packages/mindplot/src/components/DesignerBuilder.ts @@ -37,7 +37,7 @@ export function buildDesigner(options: DesignerOptions): Designer { PersistenceManager.init(persistence); // Register toolbar event ... - if (options.mode === 'edition' || options.mode === 'showcase') { + if (options.mode === 'edition-owner' || options.mode === 'edition-editor' || options.mode === 'showcase') { const menu = new Menu(designer, 'toolbar'); // If a node has focus, focus can be move to another node using the keys. diff --git a/packages/mindplot/src/components/DesignerOptionsBuilder.ts b/packages/mindplot/src/components/DesignerOptionsBuilder.ts index 877e7dec..02a1a2e1 100644 --- a/packages/mindplot/src/components/DesignerOptionsBuilder.ts +++ b/packages/mindplot/src/components/DesignerOptionsBuilder.ts @@ -46,7 +46,7 @@ class OptionsBuilder { } const defaultOptions: DesignerOptions = { - mode: 'edition', + mode: 'edition-owner', zoom: 0.85, saveOnLoad: true, containerSize, diff --git a/packages/mindplot/src/components/EditorRenderMode.ts b/packages/mindplot/src/components/EditorRenderMode.ts index 80cbd2c4..4986dae6 100644 --- a/packages/mindplot/src/components/EditorRenderMode.ts +++ b/packages/mindplot/src/components/EditorRenderMode.ts @@ -1,2 +1,2 @@ -type EditorRenderMode = 'viewonly' | 'edition' | 'showcase'; +type EditorRenderMode = 'viewonly' | 'edition-owner' | 'edition-editor' | 'showcase'; export default EditorRenderMode; diff --git a/packages/mindplot/src/components/IconGroup.ts b/packages/mindplot/src/components/IconGroup.ts index b4ac5691..3f0c506d 100644 --- a/packages/mindplot/src/components/IconGroup.ts +++ b/packages/mindplot/src/components/IconGroup.ts @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -// eslint-disable-next-line max-classes-per-file + import { $assert, $defined, @@ -23,12 +23,11 @@ import { import { Group, ElementClass, + Point, } from '@wisemapping/web2d'; import IconGroupRemoveTip from './IconGroupRemoveTip'; -import { Point } from '@wisemapping/web2d'; import Icon from './Icon'; import SizeType from './SizeType'; -import IconModel from './model/IconModel'; import FeatureModel from './model/FeatureModel'; const ORDER_BY_TYPE = new Map(); @@ -38,10 +37,15 @@ ORDER_BY_TYPE.set('link', 2); class IconGroup { private _icons: Icon[]; + private _group: any; + private _removeTip: IconGroupRemoveTip; + private _iconSize: SizeType; + private _topicId: number; + constructor(topicId: number, iconSize: number) { $assert($defined(topicId), 'topicId can not be null'); $assert($defined(iconSize), 'iconSize can not be null'); @@ -59,7 +63,6 @@ class IconGroup { this._removeTip = new IconGroupRemoveTip(this._group); this.seIconSize(iconSize, iconSize); this._registerListeners(); - } setPosition(x: number, y: number): void { @@ -189,7 +192,6 @@ class IconGroup { } static ICON_PADDING = 5; - } export default IconGroup; diff --git a/packages/mindplot/src/components/LinkIcon.ts b/packages/mindplot/src/components/LinkIcon.ts index f49df66b..c47bba87 100644 --- a/packages/mindplot/src/components/LinkIcon.ts +++ b/packages/mindplot/src/components/LinkIcon.ts @@ -26,8 +26,11 @@ import FeatureModel from './model/FeatureModel'; class LinkIcon extends Icon { private _linksModel: FeatureModel; + private _topic: Topic; + private _readOnly: boolean; + private _tip: LinkIconTooltip; constructor(topic: Topic, linkModel: LinkModel, readOnly: boolean) { @@ -73,8 +76,8 @@ class LinkIcon extends Icon { getModel(): FeatureModel { return this._linksModel; } - static IMAGE_URL = LinksImage; + static IMAGE_URL = LinksImage; } export default LinkIcon; diff --git a/packages/mindplot/src/components/NodeGraph.ts b/packages/mindplot/src/components/NodeGraph.ts index ed4bf609..d0a00db6 100644 --- a/packages/mindplot/src/components/NodeGraph.ts +++ b/packages/mindplot/src/components/NodeGraph.ts @@ -161,7 +161,7 @@ abstract class NodeGraph { createDragNode(layoutManager: LayoutManager) { const dragShape = this._buildDragShape(); - + return new DragTopic(dragShape, this, layoutManager); } diff --git a/packages/mindplot/src/components/NoteIcon.ts b/packages/mindplot/src/components/NoteIcon.ts index 363fd9ec..6d891fcc 100644 --- a/packages/mindplot/src/components/NoteIcon.ts +++ b/packages/mindplot/src/components/NoteIcon.ts @@ -27,8 +27,11 @@ import FeatureModel from './model/FeatureModel'; class NoteIcon extends Icon { private _linksModel: NoteModel; + private _topic: Topic; + private _readOnly: boolean; + private _tip: FloatingTip; constructor(topic: Topic, noteModel: NoteModel, readOnly: boolean) { @@ -87,7 +90,6 @@ class NoteIcon extends Icon { } static IMAGE_URL = NotesImage; - } export default NoteIcon; diff --git a/packages/mindplot/src/components/StandaloneActionDispatcher.ts b/packages/mindplot/src/components/StandaloneActionDispatcher.ts index 011f8d44..f38c9b77 100644 --- a/packages/mindplot/src/components/StandaloneActionDispatcher.ts +++ b/packages/mindplot/src/components/StandaloneActionDispatcher.ts @@ -110,8 +110,7 @@ class StandaloneActionDispatcher extends ActionDispatcher { this.execute(command); } - /** */ - changeTextToTopic(topicsIds: number[], text: string) { + changeTextToTopic(topicsIds: number[], text: string): void { $assert($defined(topicsIds), 'topicsIds can not be null'); const commandFunc = (topic: Topic, value: string) => { diff --git a/packages/mindplot/src/components/Topic.ts b/packages/mindplot/src/components/Topic.ts index 92b0080e..f646ce1d 100644 --- a/packages/mindplot/src/components/Topic.ts +++ b/packages/mindplot/src/components/Topic.ts @@ -707,11 +707,10 @@ abstract class Topic extends NodeGraph { // Do some fancy animation .... const elements = this._flatten2DElements(this); elements.forEach((elem) => { - elem.setVisibility(!value, 250) + elem.setVisibility(!value, 250); }); EventBus.instance.fireEvent('childShrinked', model); - } getShrinkConnector(): ShirinkConnector | undefined { @@ -893,7 +892,6 @@ abstract class Topic extends NodeGraph { this._relationships.forEach((r) => r.redraw()); } - /** */ setBranchVisibility(value: boolean): void { let current: Topic = this; let parent: Topic = this; @@ -904,7 +902,6 @@ abstract class Topic extends NodeGraph { current.setVisibility(value); } - /** */ setVisibility(value: boolean, fade = 0): void { this._setTopicVisibility(value, fade); @@ -961,8 +958,9 @@ abstract class Topic extends NodeGraph { relationship.setVisibility( value && (targetParent == null || !targetParent.areChildrenShrunken()) - && (sourceParent == null || !sourceParent.areChildrenShrunken()) - , fade); + && (sourceParent == null || !sourceParent.areChildrenShrunken()), + fade, + ); }); } diff --git a/packages/mindplot/src/components/commands/GenericFunctionCommand.ts b/packages/mindplot/src/components/commands/GenericFunctionCommand.ts index b7887967..ab198609 100644 --- a/packages/mindplot/src/components/commands/GenericFunctionCommand.ts +++ b/packages/mindplot/src/components/commands/GenericFunctionCommand.ts @@ -25,7 +25,7 @@ type CommandTypes = string | object | boolean | number; class GenericFunctionCommand extends Command { private _value: CommandTypes; - private _topicsId: number[]; + private _topicsIds: number[]; private _commandFunc: (topic: Topic, value: CommandTypes) => CommandTypes; @@ -39,7 +39,7 @@ class GenericFunctionCommand extends Command { super(); this._value = value; - this._topicsId = topicsIds; + this._topicsIds = topicsIds; this._commandFunc = commandFunc; this._oldValues = []; } @@ -49,7 +49,7 @@ class GenericFunctionCommand extends Command { */ execute(commandContext: CommandContext) { if (!this._applied) { - const topics = commandContext.findTopics(this._topicsId); + const topics = commandContext.findTopics(this._topicsIds); if (topics != null) { const me = this; @@ -66,7 +66,7 @@ class GenericFunctionCommand extends Command { undoExecute(commandContext: CommandContext): void { if (this._applied) { - const topics = commandContext.findTopics(this._topicsId); + const topics = commandContext.findTopics(this._topicsIds); topics.forEach(((topic: Topic, index: number) => { this._commandFunc(topic, this._oldValues[index]); diff --git a/packages/mindplot/src/components/layout/ChildrenSorterStrategy.ts b/packages/mindplot/src/components/layout/ChildrenSorterStrategy.ts index 34419adb..fbf2cb25 100644 --- a/packages/mindplot/src/components/layout/ChildrenSorterStrategy.ts +++ b/packages/mindplot/src/components/layout/ChildrenSorterStrategy.ts @@ -15,9 +15,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import RootedTreeSet from "./RootedTreeSet"; +import RootedTreeSet from './RootedTreeSet'; import Node from './Node'; -import PositionType from "../PositionType"; +import PositionType from '../PositionType'; abstract class ChildrenSorterStrategy { abstract computeChildrenIdByHeights(treeSet: RootedTreeSet, node: Node); diff --git a/packages/mindplot/src/components/layout/LayoutManager.ts b/packages/mindplot/src/components/layout/LayoutManager.ts index 64c9a1b9..94c6964c 100644 --- a/packages/mindplot/src/components/layout/LayoutManager.ts +++ b/packages/mindplot/src/components/layout/LayoutManager.ts @@ -15,7 +15,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import $ from 'jquery'; import { $assert, $defined } from '@wisemapping/core-js'; import Events from '../Events'; import RootedTreeSet from './RootedTreeSet'; diff --git a/packages/mindplot/src/components/model/FeatureModel.ts b/packages/mindplot/src/components/model/FeatureModel.ts index 0652d319..8fb14a55 100644 --- a/packages/mindplot/src/components/model/FeatureModel.ts +++ b/packages/mindplot/src/components/model/FeatureModel.ts @@ -19,7 +19,7 @@ import { $assert } from '@wisemapping/core-js'; import FeatureType from './FeatureType'; class FeatureModel { - static _next_id = 0; + static _nextId = 0; private _id: number; @@ -85,8 +85,8 @@ class FeatureModel { } static _nextUUID(): number { - const result = FeatureModel._next_id + 1; - FeatureModel._next_id = result; + const result = FeatureModel._nextId + 1; + FeatureModel._nextId = result; return result; } } diff --git a/packages/mindplot/src/components/model/INodeModel.ts b/packages/mindplot/src/components/model/INodeModel.ts index 9cc60bab..46bb9e3a 100644 --- a/packages/mindplot/src/components/model/INodeModel.ts +++ b/packages/mindplot/src/components/model/INodeModel.ts @@ -29,7 +29,7 @@ const parseJsObject = (str: string) => JSON.parse(str.replace(/(['"])?([a-z0-9A- abstract class INodeModel { static MAIN_TOPIC_TO_MAIN_TOPIC_DISTANCE = 220; - private static _next_uuid = 0; + private static _nextUuid = 0; protected _mindmap: Mindmap; @@ -49,9 +49,9 @@ abstract class INodeModel { const newId = INodeModel._nextUUID(); this.putProperty('id', newId); } else { - if (id > INodeModel._next_uuid) { + if (id > INodeModel._nextUuid) { $assert(Number.isFinite(id)); - INodeModel._next_uuid = id; + INodeModel._nextUuid = id; } this.putProperty('id', id); } @@ -358,8 +358,8 @@ abstract class INodeModel { abstract removeChild(child: INodeModel); static _nextUUID(): number { - INodeModel._next_uuid += 1; - return INodeModel._next_uuid; + INodeModel._nextUuid += 1; + return INodeModel._nextUuid; } } diff --git a/packages/mindplot/src/components/model/RelationshipModel.ts b/packages/mindplot/src/components/model/RelationshipModel.ts index fa6d150c..ddf34d7d 100644 --- a/packages/mindplot/src/components/model/RelationshipModel.ts +++ b/packages/mindplot/src/components/model/RelationshipModel.ts @@ -20,7 +20,7 @@ import Point from '@wisemapping/web2d'; import ConnectionLine from '../ConnectionLine'; class RelationshipModel { - static _next_uuid = 0; + static _nextUuid = 0; private _id: number; @@ -133,8 +133,8 @@ class RelationshipModel { } static _nextUUID() { - RelationshipModel._next_uuid += 1; - return RelationshipModel._next_uuid; + RelationshipModel._nextUuid += 1; + return RelationshipModel._nextUuid; } } diff --git a/packages/mindplot/src/components/widget/Menu.ts b/packages/mindplot/src/components/widget/Menu.ts index 25ef72cb..f14efca9 100644 --- a/packages/mindplot/src/components/widget/Menu.ts +++ b/packages/mindplot/src/components/widget/Menu.ts @@ -39,170 +39,145 @@ class Menu extends IMenu { // Create panels ... const designerModel = designer.getModel(); - - const fontFamilyBtn = $('#fontFamily'); - if (fontFamilyBtn) { - const fontFamilyModel = { - getValue() { - const nodes = designerModel.filterSelectedTopics(); - let result = null; - for (let i = 0; i < nodes.length; i++) { - const fontFamily = nodes[i].getFontFamily(); - if (result != null && result !== fontFamily) { - result = null; - break; - } - result = fontFamily; + const fontFamilyModel = { + getValue() { + const nodes = designerModel.filterSelectedTopics(); + let result = null; + for (let i = 0; i < nodes.length; i++) { + const fontFamily = nodes[i].getFontFamily(); + if (result != null && result !== fontFamily) { + result = null; + break; } - return result; - }, + result = fontFamily; + } + return result; + }, - setValue(value: string) { - designer.changeFontFamily(value); - }, - }; - this._toolbarElems.push(new FontFamilyPanel('fontFamily', fontFamilyModel)); - Menu._registerTooltip('fontFamily', $msg('FONT_FAMILY')); - } + setValue(value: string) { + designer.changeFontFamily(value); + }, + }; + this._toolbarElems.push(new FontFamilyPanel('fontFamily', fontFamilyModel)); + Menu._registerTooltip('fontFamily', $msg('FONT_FAMILY')); - const fontSizeBtn = $('#fontSize'); - if (fontSizeBtn) { - const fontSizeModel = { - getValue(): number { - const nodes = designerModel.filterSelectedTopics(); + const fontSizeModel = { + getValue(): number { + const nodes = designerModel.filterSelectedTopics(); - let result = null; - for (let i = 0; i < nodes.length; i++) { - const fontSize = nodes[i].getFontSize(); - if (result != null && result !== fontSize) { - result = null; - break; - } - result = fontSize; + let result = null; + for (let i = 0; i < nodes.length; i++) { + const fontSize = nodes[i].getFontSize(); + if (result != null && result !== fontSize) { + result = null; + break; } - return result; - }, - setValue(value: number) { - designer.changeFontSize(value); - }, - }; - this._toolbarElems.push(new FontSizePanel('fontSize', fontSizeModel)); - Menu._registerTooltip('fontSize', $msg('FONT_SIZE')); - } + result = fontSize; + } + return result; + }, + setValue(value: number) { + designer.changeFontSize(value); + }, + }; + this._toolbarElems.push(new FontSizePanel('fontSize', fontSizeModel)); + Menu._registerTooltip('fontSize', $msg('FONT_SIZE')); - const topicShapeBtn = $('#topicShape'); - if (topicShapeBtn) { - const topicShapeModel = { - getValue() { - const nodes = designerModel.filterSelectedTopics(); - let result = null; - for (let i = 0; i < nodes.length; i++) { - const shapeType = nodes[i].getShapeType(); - if (result != null && result !== shapeType) { - result = null; - break; - } - result = shapeType; + const topicShapeModel = { + getValue() { + const nodes = designerModel.filterSelectedTopics(); + let result = null; + for (let i = 0; i < nodes.length; i++) { + const shapeType = nodes[i].getShapeType(); + if (result != null && result !== shapeType) { + result = null; + break; } - return result; - }, - setValue(value: string) { - designer.changeTopicShape(value); - }, - }; - this._toolbarElems.push(new TopicShapePanel('topicShape', topicShapeModel)); - Menu._registerTooltip('topicShape', $msg('TOPIC_SHAPE')); - } + result = shapeType; + } + return result; + }, + setValue(value: string) { + designer.changeTopicShape(value); + }, + }; + this._toolbarElems.push(new TopicShapePanel('topicShape', topicShapeModel)); + Menu._registerTooltip('topicShape', $msg('TOPIC_SHAPE')); - const topicIconBtn = $('#topicIcon'); - if (topicIconBtn) { - // Create icon panel dialog ... - const topicIconModel = { - getValue() { - return null; - }, - setValue(value: string) { - designer.addIconType(value); - }, - }; - this._toolbarElems.push(new IconPanel('topicIcon', topicIconModel)); - Menu._registerTooltip('topicIcon', $msg('TOPIC_ICON')); - } + // Create icon panel dialog ... + const topicIconModel = { + getValue() { + return null; + }, + setValue(value: string) { + designer.addIconType(value); + }, + }; + this._toolbarElems.push(new IconPanel('topicIcon', topicIconModel)); + Menu._registerTooltip('topicIcon', $msg('TOPIC_ICON')); - // Topic color item ... - const topicColorBtn = $('#topicColor'); - if (topicColorBtn) { - const topicColorModel = { - getValue() { - const nodes = designerModel.filterSelectedTopics(); - let result = null; - for (let i = 0; i < nodes.length; i++) { - const color = nodes[i].getBackgroundColor(); - if (result != null && result !== color) { - result = null; - break; - } - result = color; + const topicColorModel = { + getValue() { + const nodes = designerModel.filterSelectedTopics(); + let result = null; + for (let i = 0; i < nodes.length; i++) { + const color = nodes[i].getBackgroundColor(); + if (result != null && result !== color) { + result = null; + break; } - return result; - }, - setValue(hex: string) { - designer.changeBackgroundColor(hex); - }, - }; - this._toolbarElems.push(new ColorPalettePanel('topicColor', topicColorModel, widgetsBaseUrl)); - Menu._registerTooltip('topicColor', $msg('TOPIC_COLOR')); - } + result = color; + } + return result; + }, + setValue(hex: string) { + designer.changeBackgroundColor(hex); + }, + }; + this._toolbarElems.push(new ColorPalettePanel('topicColor', topicColorModel, widgetsBaseUrl)); + Menu._registerTooltip('topicColor', $msg('TOPIC_COLOR')); - // Border color item ... - const topicBorderBtn = $('#topicBorder'); - if (topicBorderBtn) { - const borderColorModel = { - getValue() { - const nodes = designerModel.filterSelectedTopics(); - let result = null; - for (let i = 0; i < nodes.length; i++) { - const color = nodes[i].getBorderColor(); - if (result != null && result !== color) { - result = null; - break; - } - result = color; + const borderColorModel = { + getValue() { + const nodes = designerModel.filterSelectedTopics(); + let result = null; + for (let i = 0; i < nodes.length; i++) { + const color = nodes[i].getBorderColor(); + if (result != null && result !== color) { + result = null; + break; } - return result; - }, - setValue(hex: string) { - designer.changeBorderColor(hex); - }, - }; - this._toolbarElems.push(new ColorPalettePanel('topicBorder', borderColorModel, widgetsBaseUrl)); - Menu._registerTooltip('topicBorder', $msg('TOPIC_BORDER_COLOR')); - } + result = color; + } + return result; + }, + setValue(hex: string) { + designer.changeBorderColor(hex); + }, + }; + this._toolbarElems.push(new ColorPalettePanel('topicBorder', borderColorModel, widgetsBaseUrl)); + Menu._registerTooltip('topicBorder', $msg('TOPIC_BORDER_COLOR')); - // Font color item ... - const fontColorBtn = $('#fontColor'); - if (fontColorBtn) { - const fontColorModel = { - getValue() { - let result = null; - const nodes = designerModel.filterSelectedTopics(); - for (let i = 0; i < nodes.length; i++) { - const color = nodes[i].getFontColor(); - if (result != null && result !== color) { - result = null; - break; - } - result = color; + const fontColorModel = { + getValue() { + let result = null; + const nodes = designerModel.filterSelectedTopics(); + for (let i = 0; i < nodes.length; i++) { + const color = nodes[i].getFontColor(); + if (result != null && result !== color) { + result = null; + break; } - return result; - }, - setValue(hex) { - designer.changeFontColor(hex); - }, - }; - this._toolbarElems.push(new ColorPalettePanel('fontColor', fontColorModel, baseUrl)); - Menu._registerTooltip('fontColor', $msg('FONT_COLOR')); - } + result = color; + } + return result; + }, + setValue(hex) { + designer.changeFontColor(hex); + }, + }; + this._toolbarElems.push(new ColorPalettePanel('fontColor', fontColorModel, baseUrl)); + Menu._registerTooltip('fontColor', $msg('FONT_COLOR')); Menu._registerTooltip('export', $msg('EXPORT')); @@ -315,14 +290,6 @@ class Menu extends IMenu { } } - const discardElem = $('#discard'); - if (discardElem.length !== 0) { - this._addButton('discard', false, false, () => { - this.discardChanges(designer); - }); - Menu._registerTooltip('discard', $msg('DISCARD_CHANGES')); - } - const shareElem = $('#shareIt'); if (shareElem.length !== 0) { Menu._registerTooltip('shareIt', $msg('COLLABORATE')); @@ -350,14 +317,12 @@ class Menu extends IMenu { } const backTolist = $('#backToList'); - if (backTolist.length !== 0) { - backTolist.bind('click', (event) => { - event.stopPropagation(); - window.location.href = '/c/maps/'; - return false; - }); - Menu._registerTooltip('backToList', $msg('BACK_TO_MAP_LIST')); - } + backTolist.bind('click', (event) => { + event.stopPropagation(); + window.location.href = '/c/maps/'; + return false; + }); + Menu._registerTooltip('backToList', $msg('BACK_TO_MAP_LIST')); // Account dialog ... const accountSettings = $('#account'); @@ -367,9 +332,9 @@ class Menu extends IMenu { }); this._toolbarElems.push(new AccountSettingsPanel('account')); Menu._registerTooltip('account', `${global.accountEmail}`); - } - this._registerEvents(designer); + this._registerEvents(designer); + } } private _registerEvents(designer: Designer) { diff --git a/packages/webapp/src/app.tsx b/packages/webapp/src/app.tsx index 7733404e..f5b1ac02 100644 --- a/packages/webapp/src/app.tsx +++ b/packages/webapp/src/app.tsx @@ -81,7 +81,7 @@ const App = (): ReactElement => { component={withSessionExpirationHandling(MapsPage)} /> - + diff --git a/packages/webapp/src/classes/client/rest-client/index.ts b/packages/webapp/src/classes/client/rest-client/index.ts index 38273db6..eb7f7fa3 100644 --- a/packages/webapp/src/classes/client/rest-client/index.ts +++ b/packages/webapp/src/classes/client/rest-client/index.ts @@ -611,12 +611,12 @@ export default class RestClient implements Client { } } - buildPersistenceManager(editorMode: EditorRenderMode ): PersistenceManager { + buildPersistenceManager(editorMode: EditorRenderMode): PersistenceManager { if (this.persistenceManager) { return this.persistenceManager; } let persistence: PersistenceManager; - if (editorMode === 'edition') { + if (editorMode === 'edition-owner' || editorMode === 'edition-editor') { persistence = new RESTPersistenceManager({ documentUrl: '/c/restful/maps/{id}/document', revertUrl: '/c/restful/maps/{id}/history/latest', @@ -645,13 +645,15 @@ export default class RestClient implements Client { // eslint-disable-next-line @typescript-eslint/no-explicit-any private parseResponseOnError = (response: any): ErrorInfo => { - console.error("Backend error=>"); - console.error(response.data); + console.error(`Performing backend action error: ${JSON.stringify(response)}`); let result: ErrorInfo | undefined; if (response) { const status: number = response.status; const data = response.data; + console.error(`Status Code: ${status}`); + console.error(`Status Data: ${response.data}`); + console.error(`Status Message: ${response.message}`); switch (status) { case 401: diff --git a/packages/webapp/src/components/editor-page/EditorOptionsBuider.ts b/packages/webapp/src/components/editor-page/EditorOptionsBuider.ts index be3e0cea..894b7a6f 100644 --- a/packages/webapp/src/components/editor-page/EditorOptionsBuider.ts +++ b/packages/webapp/src/components/editor-page/EditorOptionsBuider.ts @@ -1,25 +1,16 @@ import { EditorOptions } from '@wisemapping/editor'; +import { EditorRenderMode } from '@wisemapping/mindplot'; import AppConfig from '../../classes/app-config'; export default class EditorOptionsBulder { - static build(locale: string, hotkeys: boolean, isTryMode: boolean): { options: EditorOptions, mapId: number } { + static build(locale: string, mode: EditorRenderMode, hotkeys: boolean): EditorOptions { let options: EditorOptions = { enableKeyboardEvents: hotkeys, locale: locale, + mode: mode, }; - if (isTryMode) { - // Sent to try mode ... - options.mode = 'showcase'; - } else if (global.mindmapLocked) { - // Map locked, open for view mode ... - options.mode = 'viewonly'; - } else { - options.mode = 'edition'; - } - - let mapId: number; if (!AppConfig.isDevelopEnv()) { options = { zoom: (global.userOptions?.zoom != undefined @@ -30,7 +21,6 @@ export default class EditorOptionsBulder { mapTitle: global.mapTitle, ...options } - mapId = global.mapId; } else { // Running in a development mode. console.log('Running editor in development mode'); @@ -40,8 +30,11 @@ export default class EditorOptionsBulder { mapTitle: "Develop Mindnap", ...options } - mapId = 666; } - return { options, mapId }; + return options; + } + + static loadMapId(): number { + return !AppConfig.isDevelopEnv() ? global.mapId : 555; } } \ No newline at end of file diff --git a/packages/webapp/src/components/editor-page/index.tsx b/packages/webapp/src/components/editor-page/index.tsx index 326bcb09..5e521c86 100644 --- a/packages/webapp/src/components/editor-page/index.tsx +++ b/packages/webapp/src/components/editor-page/index.tsx @@ -2,13 +2,14 @@ import React, { useEffect } from 'react'; import ActionDispatcher from '../maps-page/action-dispatcher'; import { ActionType } from '../maps-page/action-chooser'; import Editor from '@wisemapping/editor'; +import { EditorRenderMode, PersistenceManager } from '@wisemapping/mindplot'; + import AppI18n from '../../classes/app-i18n'; import { useSelector } from 'react-redux'; import { hotkeysEnabled } from '../../redux/editorSlice'; import ReactGA from 'react-ga'; import Client from '../../classes/client'; -import { activeInstance, fetchAccount } from '../../redux/clientSlice'; -import { PersistenceManager } from '@wisemapping/mindplot'; +import { activeInstance, fetchAccount, fetchMapById } from '../../redux/clientSlice'; import EditorOptionsBulder from './EditorOptionsBuider'; export type EditorPropsType = { @@ -20,16 +21,43 @@ const EditorPage = ({ isTryMode }: EditorPropsType): React.ReactElement => { const hotkey = useSelector(hotkeysEnabled); const userLocale = AppI18n.getUserLocale(); const client: Client = useSelector(activeInstance); - const { mapId, options } = EditorOptionsBulder.build(userLocale.code, hotkey, isTryMode); useEffect(() => { ReactGA.pageview(window.location.pathname + window.location.search); }, []); + const findEditorMode = (isTryMode: boolean, mapId: number): EditorRenderMode | null => { + let result: EditorRenderMode = null; + if (isTryMode) { + result = 'showcase'; + } else if (global.mindmapLocked) { + result = 'viewonly'; + } else { + const fetchResult = fetchMapById(mapId); + if (!fetchResult.isLoading) { + if (fetchResult.error) { + throw new Error(`User coild not be loaded: ${JSON.stringify(fetchResult.error)}`); + } + result = fetchResult.map.role === 'owner' ? 'edition-owner' : 'edition-editor'; + } + } + return result; + } + + // What is the role ? + const mapId = EditorOptionsBulder.loadMapId(); + const mode = findEditorMode(isTryMode, mapId); + // Account settings can be null and editor cannot be initilized multiple times. This creates problems // at the i18n resource loading. - const persistence = client.buildPersistenceManager(options.mode); - const loadCompleted = persistence && (options.mode === 'showcase' || fetchAccount()); + const isAccountLoaded = mode === 'showcase' || fetchAccount; + const loadCompleted = mode && isAccountLoaded; + + let options, persistence: PersistenceManager; + if (loadCompleted) { + options = EditorOptionsBulder.build(userLocale.code, mode, hotkey); + persistence = client.buildPersistenceManager(mode); + } return loadCompleted ? ( <> From 40ecda12fe7573db7abb136bd00ed743ab1ac48e Mon Sep 17 00:00:00 2001 From: Paulo Gustavo Veiga Date: Sat, 5 Mar 2022 09:08:19 -0800 Subject: [PATCH 05/32] Remove print button on try --- .../editor/src/components/toolbar/index.tsx | 22 ++++++++++--------- .../src/components/EditorRenderMode.ts | 2 +- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/packages/editor/src/components/toolbar/index.tsx b/packages/editor/src/components/toolbar/index.tsx index df27da4f..9a08ea4f 100644 --- a/packages/editor/src/components/toolbar/index.tsx +++ b/packages/editor/src/components/toolbar/index.tsx @@ -120,13 +120,15 @@ export default function Toolbar({ > - onAction('print')} - > - - + {(editorMode === 'edition-owner' || editorMode === 'edition-editor' || editorMode === 'edition-viewer') && ( + onAction('print')} + > + + + )} {editorMode === 'edition-owner' && ( <> )} {(editorMode === 'edition-owner' || editorMode === 'edition-editor') && ( - - - + + + )} {editorMode === 'edition-owner' && ( onAction('share')}> diff --git a/packages/mindplot/src/components/EditorRenderMode.ts b/packages/mindplot/src/components/EditorRenderMode.ts index 4986dae6..70696093 100644 --- a/packages/mindplot/src/components/EditorRenderMode.ts +++ b/packages/mindplot/src/components/EditorRenderMode.ts @@ -1,2 +1,2 @@ -type EditorRenderMode = 'viewonly' | 'edition-owner' | 'edition-editor' | 'showcase'; +type EditorRenderMode = 'viewonly' | 'edition-owner' | 'edition-editor' | 'edition-viewer' | 'showcase'; export default EditorRenderMode; From 2b4356d0ded8969052d3927adedf92a68665249c Mon Sep 17 00:00:00 2001 From: Paulo Veiga Date: Sat, 5 Mar 2022 20:09:25 +0000 Subject: [PATCH 06/32] Merged in features/move_menu (pull request #47) Move Menu to editor * Move Menu --- .../assets/images/shape-circle.svg | 0 .../assets/images/shape-line.svg | 0 .../assets/images/shape-rectangle-round.svg | 0 .../assets/images/shape-rectangle.svg | 0 .../src/classes/bootstrap/BootstrapDialog.js | 156 ++++++++++++++++++ .../bootstrap/BootstrapDialogRequest.js | 0 .../src/classes/menu}/AccountSettingsPanel.js | 0 .../src/classes/menu}/ColorPaletteHtml.js | 0 .../src/classes/menu}/ColorPalettePanel.js | 0 packages/editor/src/classes/menu/Events.ts | 68 ++++++++ .../src/classes/menu}/FontFamilyPanel.js | 0 .../src/classes/menu}/FontSizePanel.js | 0 .../src/classes/menu}/IMenu.ts | 12 +- .../src/classes/menu}/IconPanel.js | 3 +- .../classes/menu}/KeyboardShortcutDialog.js | 21 +-- .../classes/menu}/KeyboardShortcutTooltip.js | 2 +- .../src/classes/menu}/ListToolbarPanel.js | 0 .../src/classes/menu}/Menu.ts | 6 +- .../src/classes/menu}/ModalDialogNotifier.js | 2 - .../src/classes/menu}/ToolbarItem.js | 2 +- .../src/classes/menu}/ToolbarPaneItem.js | 2 +- .../src/classes/menu}/TopicShapePanel.js | 0 packages/editor/src/index.tsx | 16 +- packages/editor/tsconfig.json | 2 +- .../mindplot/assets/images/alert-sign.png | Bin 5000 -> 0 bytes .../src/components/DesignerBuilder.ts | 11 -- packages/mindplot/src/components/NoteIcon.ts | 3 +- .../widget/{FloatingTip.js => FloatingTip.ts} | 6 +- .../src/components/widget/LinkEditor.js | 2 +- .../src/components/widget/NoteEditor.js | 2 +- .../bootstrap/BootstrapDialog.js | 0 packages/mindplot/src/index.ts | 10 +- packages/mindplot/tsconfig.json | 2 +- .../editor-page/EditorOptionsBuider.ts | 2 +- 34 files changed, 284 insertions(+), 46 deletions(-) rename packages/{mindplot => editor}/assets/images/shape-circle.svg (100%) rename packages/{mindplot => editor}/assets/images/shape-line.svg (100%) rename packages/{mindplot => editor}/assets/images/shape-rectangle-round.svg (100%) rename packages/{mindplot => editor}/assets/images/shape-rectangle.svg (100%) create mode 100644 packages/editor/src/classes/bootstrap/BootstrapDialog.js rename packages/{mindplot/src/components/libraries => editor/src/classes}/bootstrap/BootstrapDialogRequest.js (100%) rename packages/{mindplot/src/components/widget => editor/src/classes/menu}/AccountSettingsPanel.js (100%) rename packages/{mindplot/src/components/widget => editor/src/classes/menu}/ColorPaletteHtml.js (100%) rename packages/{mindplot/src/components/widget => editor/src/classes/menu}/ColorPalettePanel.js (100%) create mode 100644 packages/editor/src/classes/menu/Events.ts rename packages/{mindplot/src/components/widget => editor/src/classes/menu}/FontFamilyPanel.js (100%) rename packages/{mindplot/src/components/widget => editor/src/classes/menu}/FontSizePanel.js (100%) rename packages/{mindplot/src/components/widget => editor/src/classes/menu}/IMenu.ts (88%) rename packages/{mindplot/src/components/widget => editor/src/classes/menu}/IconPanel.js (97%) rename packages/{mindplot/src/components/widget => editor/src/classes/menu}/KeyboardShortcutDialog.js (92%) rename packages/{mindplot/src/components/widget => editor/src/classes/menu}/KeyboardShortcutTooltip.js (96%) rename packages/{mindplot/src/components/widget => editor/src/classes/menu}/ListToolbarPanel.js (100%) rename packages/{mindplot/src/components/widget => editor/src/classes/menu}/Menu.ts (99%) rename packages/{mindplot/src/components/widget => editor/src/classes/menu}/ModalDialogNotifier.js (94%) rename packages/{mindplot/src/components/widget => editor/src/classes/menu}/ToolbarItem.js (98%) rename packages/{mindplot/src/components/widget => editor/src/classes/menu}/ToolbarPaneItem.js (97%) rename packages/{mindplot/src/components/widget => editor/src/classes/menu}/TopicShapePanel.js (100%) delete mode 100644 packages/mindplot/assets/images/alert-sign.png rename packages/mindplot/src/components/widget/{FloatingTip.js => FloatingTip.ts} (97%) rename packages/mindplot/src/components/{libraries => widget}/bootstrap/BootstrapDialog.js (100%) diff --git a/packages/mindplot/assets/images/shape-circle.svg b/packages/editor/assets/images/shape-circle.svg similarity index 100% rename from packages/mindplot/assets/images/shape-circle.svg rename to packages/editor/assets/images/shape-circle.svg diff --git a/packages/mindplot/assets/images/shape-line.svg b/packages/editor/assets/images/shape-line.svg similarity index 100% rename from packages/mindplot/assets/images/shape-line.svg rename to packages/editor/assets/images/shape-line.svg diff --git a/packages/mindplot/assets/images/shape-rectangle-round.svg b/packages/editor/assets/images/shape-rectangle-round.svg similarity index 100% rename from packages/mindplot/assets/images/shape-rectangle-round.svg rename to packages/editor/assets/images/shape-rectangle-round.svg diff --git a/packages/mindplot/assets/images/shape-rectangle.svg b/packages/editor/assets/images/shape-rectangle.svg similarity index 100% rename from packages/mindplot/assets/images/shape-rectangle.svg rename to packages/editor/assets/images/shape-rectangle.svg diff --git a/packages/editor/src/classes/bootstrap/BootstrapDialog.js b/packages/editor/src/classes/bootstrap/BootstrapDialog.js new file mode 100644 index 00000000..33099fd5 --- /dev/null +++ b/packages/editor/src/classes/bootstrap/BootstrapDialog.js @@ -0,0 +1,156 @@ +/* + * Copyright [2021] [wisemapping] + * + * Licensed under WiseMapping Public License, Version 1.0 (the "License"). + * It is basically the Apache License, Version 2.0 (the "License") plus the + * "powered by wisemapping" text requirement on every single page; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the license at + * + * http://www.wisemapping.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import $ from 'jquery'; +import Options from '@wisemapping/mindplot/src/components/Options'; +import { $msg } from '@wisemapping/mindplot/src/components/Messages'; + +class BootstrapDialog extends Options { + constructor(title, options) { + super(); + this.options = { + cancelButton: false, + closeButton: false, + acceptButton: true, + removeButton: false, + errorMessage: false, + onEventData: {}, + }; + + this.setOptions(options); + this.options.onEventData.dialog = this; + this._native = $('').append( + '', + ); + const content = $(''); + const header = this._buildHeader(title); + + if (header) { + content.append(header); + } + const body = $(''); + if (this.options.errorMessage) { + const error = $('
'); + error.hide(); + body.append(error); + } + content.append(body); + const footer = this._buildFooter(); + if (footer) { + content.append(footer); + } + this._native.find('.modal-dialog').append(content); + this._native.on('hidden.bs.modal', function remove() { + $(this).remove(); + }); + this._native.on('shown.bs.modal', this.onDialogShown); + + this._native.appendTo('#mindplot-tooltips'); + } + + _buildFooter() { + let footer = null; + if (this.options.acceptButton || this.options.removeButton || this.options.cancelButton) { + footer = $('