",
546 | options: {
547 | disabled: false,
548 |
549 | // callbacks
550 | create: null
551 | },
552 | _createWidget: function( options, element ) {
553 | element = $( element || this.defaultElement || this )[ 0 ];
554 | this.element = $( element );
555 | this.uuid = widget_uuid++;
556 | this.eventNamespace = "." + this.widgetName + this.uuid;
557 |
558 | this.bindings = $();
559 | this.hoverable = $();
560 | this.focusable = $();
561 |
562 | if ( element !== this ) {
563 | $.data( element, this.widgetFullName, this );
564 | this._on( true, this.element, {
565 | remove: function( event ) {
566 | if ( event.target === element ) {
567 | this.destroy();
568 | }
569 | }
570 | });
571 | this.document = $( element.style ?
572 | // element within the document
573 | element.ownerDocument :
574 | // element is window or document
575 | element.document || element );
576 | this.window = $( this.document[0].defaultView || this.document[0].parentWindow );
577 | }
578 |
579 | this.options = $.widget.extend( {},
580 | this.options,
581 | this._getCreateOptions(),
582 | options );
583 |
584 | this._create();
585 | this._trigger( "create", null, this._getCreateEventData() );
586 | this._init();
587 | },
588 | _getCreateOptions: $.noop,
589 | _getCreateEventData: $.noop,
590 | _create: $.noop,
591 | _init: $.noop,
592 |
593 | destroy: function() {
594 | this._destroy();
595 | // we can probably remove the unbind calls in 2.0
596 | // all event bindings should go through this._on()
597 | this.element
598 | .unbind( this.eventNamespace )
599 | .removeData( this.widgetFullName )
600 | // support: jquery <1.6.3
601 | // http://bugs.jquery.com/ticket/9413
602 | .removeData( $.camelCase( this.widgetFullName ) );
603 | this.widget()
604 | .unbind( this.eventNamespace )
605 | .removeAttr( "aria-disabled" )
606 | .removeClass(
607 | this.widgetFullName + "-disabled " +
608 | "ui-state-disabled" );
609 |
610 | // clean up events and states
611 | this.bindings.unbind( this.eventNamespace );
612 | this.hoverable.removeClass( "ui-state-hover" );
613 | this.focusable.removeClass( "ui-state-focus" );
614 | },
615 | _destroy: $.noop,
616 |
617 | widget: function() {
618 | return this.element;
619 | },
620 |
621 | option: function( key, value ) {
622 | var options = key,
623 | parts,
624 | curOption,
625 | i;
626 |
627 | if ( arguments.length === 0 ) {
628 | // don't return a reference to the internal hash
629 | return $.widget.extend( {}, this.options );
630 | }
631 |
632 | if ( typeof key === "string" ) {
633 | // handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } }
634 | options = {};
635 | parts = key.split( "." );
636 | key = parts.shift();
637 | if ( parts.length ) {
638 | curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );
639 | for ( i = 0; i < parts.length - 1; i++ ) {
640 | curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};
641 | curOption = curOption[ parts[ i ] ];
642 | }
643 | key = parts.pop();
644 | if ( arguments.length === 1 ) {
645 | return curOption[ key ] === undefined ? null : curOption[ key ];
646 | }
647 | curOption[ key ] = value;
648 | } else {
649 | if ( arguments.length === 1 ) {
650 | return this.options[ key ] === undefined ? null : this.options[ key ];
651 | }
652 | options[ key ] = value;
653 | }
654 | }
655 |
656 | this._setOptions( options );
657 |
658 | return this;
659 | },
660 | _setOptions: function( options ) {
661 | var key;
662 |
663 | for ( key in options ) {
664 | this._setOption( key, options[ key ] );
665 | }
666 |
667 | return this;
668 | },
669 | _setOption: function( key, value ) {
670 | this.options[ key ] = value;
671 |
672 | if ( key === "disabled" ) {
673 | this.widget()
674 | .toggleClass( this.widgetFullName + "-disabled", !!value );
675 |
676 | // If the widget is becoming disabled, then nothing is interactive
677 | if ( value ) {
678 | this.hoverable.removeClass( "ui-state-hover" );
679 | this.focusable.removeClass( "ui-state-focus" );
680 | }
681 | }
682 |
683 | return this;
684 | },
685 |
686 | enable: function() {
687 | return this._setOptions({ disabled: false });
688 | },
689 | disable: function() {
690 | return this._setOptions({ disabled: true });
691 | },
692 |
693 | _on: function( suppressDisabledCheck, element, handlers ) {
694 | var delegateElement,
695 | instance = this;
696 |
697 | // no suppressDisabledCheck flag, shuffle arguments
698 | if ( typeof suppressDisabledCheck !== "boolean" ) {
699 | handlers = element;
700 | element = suppressDisabledCheck;
701 | suppressDisabledCheck = false;
702 | }
703 |
704 | // no element argument, shuffle and use this.element
705 | if ( !handlers ) {
706 | handlers = element;
707 | element = this.element;
708 | delegateElement = this.widget();
709 | } else {
710 | element = delegateElement = $( element );
711 | this.bindings = this.bindings.add( element );
712 | }
713 |
714 | $.each( handlers, function( event, handler ) {
715 | function handlerProxy() {
716 | // allow widgets to customize the disabled handling
717 | // - disabled as an array instead of boolean
718 | // - disabled class as method for disabling individual parts
719 | if ( !suppressDisabledCheck &&
720 | ( instance.options.disabled === true ||
721 | $( this ).hasClass( "ui-state-disabled" ) ) ) {
722 | return;
723 | }
724 | return ( typeof handler === "string" ? instance[ handler ] : handler )
725 | .apply( instance, arguments );
726 | }
727 |
728 | // copy the guid so direct unbinding works
729 | if ( typeof handler !== "string" ) {
730 | handlerProxy.guid = handler.guid =
731 | handler.guid || handlerProxy.guid || $.guid++;
732 | }
733 |
734 | var match = event.match( /^([\w:-]*)\s*(.*)$/ ),
735 | eventName = match[1] + instance.eventNamespace,
736 | selector = match[2];
737 | if ( selector ) {
738 | delegateElement.delegate( selector, eventName, handlerProxy );
739 | } else {
740 | element.bind( eventName, handlerProxy );
741 | }
742 | });
743 | },
744 |
745 | _off: function( element, eventName ) {
746 | eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) +
747 | this.eventNamespace;
748 | element.unbind( eventName ).undelegate( eventName );
749 |
750 | // Clear the stack to avoid memory leaks (#10056)
751 | this.bindings = $( this.bindings.not( element ).get() );
752 | this.focusable = $( this.focusable.not( element ).get() );
753 | this.hoverable = $( this.hoverable.not( element ).get() );
754 | },
755 |
756 | _delay: function( handler, delay ) {
757 | function handlerProxy() {
758 | return ( typeof handler === "string" ? instance[ handler ] : handler )
759 | .apply( instance, arguments );
760 | }
761 | var instance = this;
762 | return setTimeout( handlerProxy, delay || 0 );
763 | },
764 |
765 | _hoverable: function( element ) {
766 | this.hoverable = this.hoverable.add( element );
767 | this._on( element, {
768 | mouseenter: function( event ) {
769 | $( event.currentTarget ).addClass( "ui-state-hover" );
770 | },
771 | mouseleave: function( event ) {
772 | $( event.currentTarget ).removeClass( "ui-state-hover" );
773 | }
774 | });
775 | },
776 |
777 | _focusable: function( element ) {
778 | this.focusable = this.focusable.add( element );
779 | this._on( element, {
780 | focusin: function( event ) {
781 | $( event.currentTarget ).addClass( "ui-state-focus" );
782 | },
783 | focusout: function( event ) {
784 | $( event.currentTarget ).removeClass( "ui-state-focus" );
785 | }
786 | });
787 | },
788 |
789 | _trigger: function( type, event, data ) {
790 | var prop, orig,
791 | callback = this.options[ type ];
792 |
793 | data = data || {};
794 | event = $.Event( event );
795 | event.type = ( type === this.widgetEventPrefix ?
796 | type :
797 | this.widgetEventPrefix + type ).toLowerCase();
798 | // the original event may come from any element
799 | // so we need to reset the target on the new event
800 | event.target = this.element[ 0 ];
801 |
802 | // copy original event properties over to the new event
803 | orig = event.originalEvent;
804 | if ( orig ) {
805 | for ( prop in orig ) {
806 | if ( !( prop in event ) ) {
807 | event[ prop ] = orig[ prop ];
808 | }
809 | }
810 | }
811 |
812 | this.element.trigger( event, data );
813 | return !( $.isFunction( callback ) &&
814 | callback.apply( this.element[0], [ event ].concat( data ) ) === false ||
815 | event.isDefaultPrevented() );
816 | }
817 | };
818 |
819 | $.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) {
820 | $.Widget.prototype[ "_" + method ] = function( element, options, callback ) {
821 | if ( typeof options === "string" ) {
822 | options = { effect: options };
823 | }
824 | var hasOptions,
825 | effectName = !options ?
826 | method :
827 | options === true || typeof options === "number" ?
828 | defaultEffect :
829 | options.effect || defaultEffect;
830 | options = options || {};
831 | if ( typeof options === "number" ) {
832 | options = { duration: options };
833 | }
834 | hasOptions = !$.isEmptyObject( options );
835 | options.complete = callback;
836 | if ( options.delay ) {
837 | element.delay( options.delay );
838 | }
839 | if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {
840 | element[ method ]( options );
841 | } else if ( effectName !== method && element[ effectName ] ) {
842 | element[ effectName ]( options.duration, options.easing, callback );
843 | } else {
844 | element.queue(function( next ) {
845 | $( this )[ method ]();
846 | if ( callback ) {
847 | callback.call( element[ 0 ] );
848 | }
849 | next();
850 | });
851 | }
852 | };
853 | });
854 |
855 | var widget = $.widget;
856 |
857 |
858 | /*!
859 | * jQuery UI Position 1.11.2
860 | * http://jqueryui.com
861 | *
862 | * Copyright 2014 jQuery Foundation and other contributors
863 | * Released under the MIT license.
864 | * http://jquery.org/license
865 | *
866 | * http://api.jqueryui.com/position/
867 | */
868 |
869 | (function() {
870 |
871 | $.ui = $.ui || {};
872 |
873 | var cachedScrollbarWidth, supportsOffsetFractions,
874 | max = Math.max,
875 | abs = Math.abs,
876 | round = Math.round,
877 | rhorizontal = /left|center|right/,
878 | rvertical = /top|center|bottom/,
879 | roffset = /[\+\-]\d+(\.[\d]+)?%?/,
880 | rposition = /^\w+/,
881 | rpercent = /%$/,
882 | _position = $.fn.position;
883 |
884 | function getOffsets( offsets, width, height ) {
885 | return [
886 | parseFloat( offsets[ 0 ] ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ),
887 | parseFloat( offsets[ 1 ] ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 )
888 | ];
889 | }
890 |
891 | function parseCss( element, property ) {
892 | return parseInt( $.css( element, property ), 10 ) || 0;
893 | }
894 |
895 | function getDimensions( elem ) {
896 | var raw = elem[0];
897 | if ( raw.nodeType === 9 ) {
898 | return {
899 | width: elem.width(),
900 | height: elem.height(),
901 | offset: { top: 0, left: 0 }
902 | };
903 | }
904 | if ( $.isWindow( raw ) ) {
905 | return {
906 | width: elem.width(),
907 | height: elem.height(),
908 | offset: { top: elem.scrollTop(), left: elem.scrollLeft() }
909 | };
910 | }
911 | if ( raw.preventDefault ) {
912 | return {
913 | width: 0,
914 | height: 0,
915 | offset: { top: raw.pageY, left: raw.pageX }
916 | };
917 | }
918 | return {
919 | width: elem.outerWidth(),
920 | height: elem.outerHeight(),
921 | offset: elem.offset()
922 | };
923 | }
924 |
925 | $.position = {
926 | scrollbarWidth: function() {
927 | if ( cachedScrollbarWidth !== undefined ) {
928 | return cachedScrollbarWidth;
929 | }
930 | var w1, w2,
931 | div = $( "
" ),
932 | innerDiv = div.children()[0];
933 |
934 | $( "body" ).append( div );
935 | w1 = innerDiv.offsetWidth;
936 | div.css( "overflow", "scroll" );
937 |
938 | w2 = innerDiv.offsetWidth;
939 |
940 | if ( w1 === w2 ) {
941 | w2 = div[0].clientWidth;
942 | }
943 |
944 | div.remove();
945 |
946 | return (cachedScrollbarWidth = w1 - w2);
947 | },
948 | getScrollInfo: function( within ) {
949 | var overflowX = within.isWindow || within.isDocument ? "" :
950 | within.element.css( "overflow-x" ),
951 | overflowY = within.isWindow || within.isDocument ? "" :
952 | within.element.css( "overflow-y" ),
953 | hasOverflowX = overflowX === "scroll" ||
954 | ( overflowX === "auto" && within.width < within.element[0].scrollWidth ),
955 | hasOverflowY = overflowY === "scroll" ||
956 | ( overflowY === "auto" && within.height < within.element[0].scrollHeight );
957 | return {
958 | width: hasOverflowY ? $.position.scrollbarWidth() : 0,
959 | height: hasOverflowX ? $.position.scrollbarWidth() : 0
960 | };
961 | },
962 | getWithinInfo: function( element ) {
963 | var withinElement = $( element || window ),
964 | isWindow = $.isWindow( withinElement[0] ),
965 | isDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9;
966 | return {
967 | element: withinElement,
968 | isWindow: isWindow,
969 | isDocument: isDocument,
970 | offset: withinElement.offset() || { left: 0, top: 0 },
971 | scrollLeft: withinElement.scrollLeft(),
972 | scrollTop: withinElement.scrollTop(),
973 |
974 | // support: jQuery 1.6.x
975 | // jQuery 1.6 doesn't support .outerWidth/Height() on documents or windows
976 | width: isWindow || isDocument ? withinElement.width() : withinElement.outerWidth(),
977 | height: isWindow || isDocument ? withinElement.height() : withinElement.outerHeight()
978 | };
979 | }
980 | };
981 |
982 | $.fn.position = function( options ) {
983 | if ( !options || !options.of ) {
984 | return _position.apply( this, arguments );
985 | }
986 |
987 | // make a copy, we don't want to modify arguments
988 | options = $.extend( {}, options );
989 |
990 | var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions,
991 | target = $( options.of ),
992 | within = $.position.getWithinInfo( options.within ),
993 | scrollInfo = $.position.getScrollInfo( within ),
994 | collision = ( options.collision || "flip" ).split( " " ),
995 | offsets = {};
996 |
997 | dimensions = getDimensions( target );
998 | if ( target[0].preventDefault ) {
999 | // force left top to allow flipping
1000 | options.at = "left top";
1001 | }
1002 | targetWidth = dimensions.width;
1003 | targetHeight = dimensions.height;
1004 | targetOffset = dimensions.offset;
1005 | // clone to reuse original targetOffset later
1006 | basePosition = $.extend( {}, targetOffset );
1007 |
1008 | // force my and at to have valid horizontal and vertical positions
1009 | // if a value is missing or invalid, it will be converted to center
1010 | $.each( [ "my", "at" ], function() {
1011 | var pos = ( options[ this ] || "" ).split( " " ),
1012 | horizontalOffset,
1013 | verticalOffset;
1014 |
1015 | if ( pos.length === 1) {
1016 | pos = rhorizontal.test( pos[ 0 ] ) ?
1017 | pos.concat( [ "center" ] ) :
1018 | rvertical.test( pos[ 0 ] ) ?
1019 | [ "center" ].concat( pos ) :
1020 | [ "center", "center" ];
1021 | }
1022 | pos[ 0 ] = rhorizontal.test( pos[ 0 ] ) ? pos[ 0 ] : "center";
1023 | pos[ 1 ] = rvertical.test( pos[ 1 ] ) ? pos[ 1 ] : "center";
1024 |
1025 | // calculate offsets
1026 | horizontalOffset = roffset.exec( pos[ 0 ] );
1027 | verticalOffset = roffset.exec( pos[ 1 ] );
1028 | offsets[ this ] = [
1029 | horizontalOffset ? horizontalOffset[ 0 ] : 0,
1030 | verticalOffset ? verticalOffset[ 0 ] : 0
1031 | ];
1032 |
1033 | // reduce to just the positions without the offsets
1034 | options[ this ] = [
1035 | rposition.exec( pos[ 0 ] )[ 0 ],
1036 | rposition.exec( pos[ 1 ] )[ 0 ]
1037 | ];
1038 | });
1039 |
1040 | // normalize collision option
1041 | if ( collision.length === 1 ) {
1042 | collision[ 1 ] = collision[ 0 ];
1043 | }
1044 |
1045 | if ( options.at[ 0 ] === "right" ) {
1046 | basePosition.left += targetWidth;
1047 | } else if ( options.at[ 0 ] === "center" ) {
1048 | basePosition.left += targetWidth / 2;
1049 | }
1050 |
1051 | if ( options.at[ 1 ] === "bottom" ) {
1052 | basePosition.top += targetHeight;
1053 | } else if ( options.at[ 1 ] === "center" ) {
1054 | basePosition.top += targetHeight / 2;
1055 | }
1056 |
1057 | atOffset = getOffsets( offsets.at, targetWidth, targetHeight );
1058 | basePosition.left += atOffset[ 0 ];
1059 | basePosition.top += atOffset[ 1 ];
1060 |
1061 | return this.each(function() {
1062 | var collisionPosition, using,
1063 | elem = $( this ),
1064 | elemWidth = elem.outerWidth(),
1065 | elemHeight = elem.outerHeight(),
1066 | marginLeft = parseCss( this, "marginLeft" ),
1067 | marginTop = parseCss( this, "marginTop" ),
1068 | collisionWidth = elemWidth + marginLeft + parseCss( this, "marginRight" ) + scrollInfo.width,
1069 | collisionHeight = elemHeight + marginTop + parseCss( this, "marginBottom" ) + scrollInfo.height,
1070 | position = $.extend( {}, basePosition ),
1071 | myOffset = getOffsets( offsets.my, elem.outerWidth(), elem.outerHeight() );
1072 |
1073 | if ( options.my[ 0 ] === "right" ) {
1074 | position.left -= elemWidth;
1075 | } else if ( options.my[ 0 ] === "center" ) {
1076 | position.left -= elemWidth / 2;
1077 | }
1078 |
1079 | if ( options.my[ 1 ] === "bottom" ) {
1080 | position.top -= elemHeight;
1081 | } else if ( options.my[ 1 ] === "center" ) {
1082 | position.top -= elemHeight / 2;
1083 | }
1084 |
1085 | position.left += myOffset[ 0 ];
1086 | position.top += myOffset[ 1 ];
1087 |
1088 | // if the browser doesn't support fractions, then round for consistent results
1089 | if ( !supportsOffsetFractions ) {
1090 | position.left = round( position.left );
1091 | position.top = round( position.top );
1092 | }
1093 |
1094 | collisionPosition = {
1095 | marginLeft: marginLeft,
1096 | marginTop: marginTop
1097 | };
1098 |
1099 | $.each( [ "left", "top" ], function( i, dir ) {
1100 | if ( $.ui.position[ collision[ i ] ] ) {
1101 | $.ui.position[ collision[ i ] ][ dir ]( position, {
1102 | targetWidth: targetWidth,
1103 | targetHeight: targetHeight,
1104 | elemWidth: elemWidth,
1105 | elemHeight: elemHeight,
1106 | collisionPosition: collisionPosition,
1107 | collisionWidth: collisionWidth,
1108 | collisionHeight: collisionHeight,
1109 | offset: [ atOffset[ 0 ] + myOffset[ 0 ], atOffset [ 1 ] + myOffset[ 1 ] ],
1110 | my: options.my,
1111 | at: options.at,
1112 | within: within,
1113 | elem: elem
1114 | });
1115 | }
1116 | });
1117 |
1118 | if ( options.using ) {
1119 | // adds feedback as second argument to using callback, if present
1120 | using = function( props ) {
1121 | var left = targetOffset.left - position.left,
1122 | right = left + targetWidth - elemWidth,
1123 | top = targetOffset.top - position.top,
1124 | bottom = top + targetHeight - elemHeight,
1125 | feedback = {
1126 | target: {
1127 | element: target,
1128 | left: targetOffset.left,
1129 | top: targetOffset.top,
1130 | width: targetWidth,
1131 | height: targetHeight
1132 | },
1133 | element: {
1134 | element: elem,
1135 | left: position.left,
1136 | top: position.top,
1137 | width: elemWidth,
1138 | height: elemHeight
1139 | },
1140 | horizontal: right < 0 ? "left" : left > 0 ? "right" : "center",
1141 | vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle"
1142 | };
1143 | if ( targetWidth < elemWidth && abs( left + right ) < targetWidth ) {
1144 | feedback.horizontal = "center";
1145 | }
1146 | if ( targetHeight < elemHeight && abs( top + bottom ) < targetHeight ) {
1147 | feedback.vertical = "middle";
1148 | }
1149 | if ( max( abs( left ), abs( right ) ) > max( abs( top ), abs( bottom ) ) ) {
1150 | feedback.important = "horizontal";
1151 | } else {
1152 | feedback.important = "vertical";
1153 | }
1154 | options.using.call( this, props, feedback );
1155 | };
1156 | }
1157 |
1158 | elem.offset( $.extend( position, { using: using } ) );
1159 | });
1160 | };
1161 |
1162 | $.ui.position = {
1163 | fit: {
1164 | left: function( position, data ) {
1165 | var within = data.within,
1166 | withinOffset = within.isWindow ? within.scrollLeft : within.offset.left,
1167 | outerWidth = within.width,
1168 | collisionPosLeft = position.left - data.collisionPosition.marginLeft,
1169 | overLeft = withinOffset - collisionPosLeft,
1170 | overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset,
1171 | newOverRight;
1172 |
1173 | // element is wider than within
1174 | if ( data.collisionWidth > outerWidth ) {
1175 | // element is initially over the left side of within
1176 | if ( overLeft > 0 && overRight <= 0 ) {
1177 | newOverRight = position.left + overLeft + data.collisionWidth - outerWidth - withinOffset;
1178 | position.left += overLeft - newOverRight;
1179 | // element is initially over right side of within
1180 | } else if ( overRight > 0 && overLeft <= 0 ) {
1181 | position.left = withinOffset;
1182 | // element is initially over both left and right sides of within
1183 | } else {
1184 | if ( overLeft > overRight ) {
1185 | position.left = withinOffset + outerWidth - data.collisionWidth;
1186 | } else {
1187 | position.left = withinOffset;
1188 | }
1189 | }
1190 | // too far left -> align with left edge
1191 | } else if ( overLeft > 0 ) {
1192 | position.left += overLeft;
1193 | // too far right -> align with right edge
1194 | } else if ( overRight > 0 ) {
1195 | position.left -= overRight;
1196 | // adjust based on position and margin
1197 | } else {
1198 | position.left = max( position.left - collisionPosLeft, position.left );
1199 | }
1200 | },
1201 | top: function( position, data ) {
1202 | var within = data.within,
1203 | withinOffset = within.isWindow ? within.scrollTop : within.offset.top,
1204 | outerHeight = data.within.height,
1205 | collisionPosTop = position.top - data.collisionPosition.marginTop,
1206 | overTop = withinOffset - collisionPosTop,
1207 | overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset,
1208 | newOverBottom;
1209 |
1210 | // element is taller than within
1211 | if ( data.collisionHeight > outerHeight ) {
1212 | // element is initially over the top of within
1213 | if ( overTop > 0 && overBottom <= 0 ) {
1214 | newOverBottom = position.top + overTop + data.collisionHeight - outerHeight - withinOffset;
1215 | position.top += overTop - newOverBottom;
1216 | // element is initially over bottom of within
1217 | } else if ( overBottom > 0 && overTop <= 0 ) {
1218 | position.top = withinOffset;
1219 | // element is initially over both top and bottom of within
1220 | } else {
1221 | if ( overTop > overBottom ) {
1222 | position.top = withinOffset + outerHeight - data.collisionHeight;
1223 | } else {
1224 | position.top = withinOffset;
1225 | }
1226 | }
1227 | // too far up -> align with top
1228 | } else if ( overTop > 0 ) {
1229 | position.top += overTop;
1230 | // too far down -> align with bottom edge
1231 | } else if ( overBottom > 0 ) {
1232 | position.top -= overBottom;
1233 | // adjust based on position and margin
1234 | } else {
1235 | position.top = max( position.top - collisionPosTop, position.top );
1236 | }
1237 | }
1238 | },
1239 | flip: {
1240 | left: function( position, data ) {
1241 | var within = data.within,
1242 | withinOffset = within.offset.left + within.scrollLeft,
1243 | outerWidth = within.width,
1244 | offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left,
1245 | collisionPosLeft = position.left - data.collisionPosition.marginLeft,
1246 | overLeft = collisionPosLeft - offsetLeft,
1247 | overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft,
1248 | myOffset = data.my[ 0 ] === "left" ?
1249 | -data.elemWidth :
1250 | data.my[ 0 ] === "right" ?
1251 | data.elemWidth :
1252 | 0,
1253 | atOffset = data.at[ 0 ] === "left" ?
1254 | data.targetWidth :
1255 | data.at[ 0 ] === "right" ?
1256 | -data.targetWidth :
1257 | 0,
1258 | offset = -2 * data.offset[ 0 ],
1259 | newOverRight,
1260 | newOverLeft;
1261 |
1262 | if ( overLeft < 0 ) {
1263 | newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - outerWidth - withinOffset;
1264 | if ( newOverRight < 0 || newOverRight < abs( overLeft ) ) {
1265 | position.left += myOffset + atOffset + offset;
1266 | }
1267 | } else if ( overRight > 0 ) {
1268 | newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + atOffset + offset - offsetLeft;
1269 | if ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) {
1270 | position.left += myOffset + atOffset + offset;
1271 | }
1272 | }
1273 | },
1274 | top: function( position, data ) {
1275 | var within = data.within,
1276 | withinOffset = within.offset.top + within.scrollTop,
1277 | outerHeight = within.height,
1278 | offsetTop = within.isWindow ? within.scrollTop : within.offset.top,
1279 | collisionPosTop = position.top - data.collisionPosition.marginTop,
1280 | overTop = collisionPosTop - offsetTop,
1281 | overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop,
1282 | top = data.my[ 1 ] === "top",
1283 | myOffset = top ?
1284 | -data.elemHeight :
1285 | data.my[ 1 ] === "bottom" ?
1286 | data.elemHeight :
1287 | 0,
1288 | atOffset = data.at[ 1 ] === "top" ?
1289 | data.targetHeight :
1290 | data.at[ 1 ] === "bottom" ?
1291 | -data.targetHeight :
1292 | 0,
1293 | offset = -2 * data.offset[ 1 ],
1294 | newOverTop,
1295 | newOverBottom;
1296 | if ( overTop < 0 ) {
1297 | newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - outerHeight - withinOffset;
1298 | if ( ( position.top + myOffset + atOffset + offset) > overTop && ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) ) {
1299 | position.top += myOffset + atOffset + offset;
1300 | }
1301 | } else if ( overBottom > 0 ) {
1302 | newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + offset - offsetTop;
1303 | if ( ( position.top + myOffset + atOffset + offset) > overBottom && ( newOverTop > 0 || abs( newOverTop ) < overBottom ) ) {
1304 | position.top += myOffset + atOffset + offset;
1305 | }
1306 | }
1307 | }
1308 | },
1309 | flipfit: {
1310 | left: function() {
1311 | $.ui.position.flip.left.apply( this, arguments );
1312 | $.ui.position.fit.left.apply( this, arguments );
1313 | },
1314 | top: function() {
1315 | $.ui.position.flip.top.apply( this, arguments );
1316 | $.ui.position.fit.top.apply( this, arguments );
1317 | }
1318 | }
1319 | };
1320 |
1321 | // fraction support test
1322 | (function() {
1323 | var testElement, testElementParent, testElementStyle, offsetLeft, i,
1324 | body = document.getElementsByTagName( "body" )[ 0 ],
1325 | div = document.createElement( "div" );
1326 |
1327 | //Create a "fake body" for testing based on method used in jQuery.support
1328 | testElement = document.createElement( body ? "div" : "body" );
1329 | testElementStyle = {
1330 | visibility: "hidden",
1331 | width: 0,
1332 | height: 0,
1333 | border: 0,
1334 | margin: 0,
1335 | background: "none"
1336 | };
1337 | if ( body ) {
1338 | $.extend( testElementStyle, {
1339 | position: "absolute",
1340 | left: "-1000px",
1341 | top: "-1000px"
1342 | });
1343 | }
1344 | for ( i in testElementStyle ) {
1345 | testElement.style[ i ] = testElementStyle[ i ];
1346 | }
1347 | testElement.appendChild( div );
1348 | testElementParent = body || document.documentElement;
1349 | testElementParent.insertBefore( testElement, testElementParent.firstChild );
1350 |
1351 | div.style.cssText = "position: absolute; left: 10.7432222px;";
1352 |
1353 | offsetLeft = $( div ).offset().left;
1354 | supportsOffsetFractions = offsetLeft > 10 && offsetLeft < 11;
1355 |
1356 | testElement.innerHTML = "";
1357 | testElementParent.removeChild( testElement );
1358 | })();
1359 |
1360 | })();
1361 |
1362 | var position = $.ui.position;
1363 |
1364 |
1365 | /*!
1366 | * jQuery UI Menu 1.11.2
1367 | * http://jqueryui.com
1368 | *
1369 | * Copyright 2014 jQuery Foundation and other contributors
1370 | * Released under the MIT license.
1371 | * http://jquery.org/license
1372 | *
1373 | * http://api.jqueryui.com/menu/
1374 | */
1375 |
1376 |
1377 | var menu = $.widget( "ui.menu", {
1378 | version: "1.11.2",
1379 | defaultElement: "
",
1380 | delay: 300,
1381 | options: {
1382 | icons: {
1383 | submenu: "ui-icon-carat-1-e"
1384 | },
1385 | items: "> *",
1386 | menus: "ul",
1387 | position: {
1388 | my: "left-1 top",
1389 | at: "right top"
1390 | },
1391 | role: "menu",
1392 |
1393 | // callbacks
1394 | blur: null,
1395 | focus: null,
1396 | select: null
1397 | },
1398 |
1399 | _create: function() {
1400 | this.activeMenu = this.element;
1401 |
1402 | // Flag used to prevent firing of the click handler
1403 | // as the event bubbles up through nested menus
1404 | this.mouseHandled = false;
1405 | this.element
1406 | .uniqueId()
1407 | .addClass( "ui-menu ui-widget ui-widget-content" )
1408 | .toggleClass( "ui-menu-icons", !!this.element.find( ".ui-icon" ).length )
1409 | .attr({
1410 | role: this.options.role,
1411 | tabIndex: 0
1412 | });
1413 |
1414 | if ( this.options.disabled ) {
1415 | this.element
1416 | .addClass( "ui-state-disabled" )
1417 | .attr( "aria-disabled", "true" );
1418 | }
1419 |
1420 | this._on({
1421 | // Prevent focus from sticking to links inside menu after clicking
1422 | // them (focus should always stay on UL during navigation).
1423 | "mousedown .ui-menu-item": function( event ) {
1424 | event.preventDefault();
1425 | },
1426 | "click .ui-menu-item": function( event ) {
1427 | var target = $( event.target );
1428 | if ( !this.mouseHandled && target.not( ".ui-state-disabled" ).length ) {
1429 | this.select( event );
1430 |
1431 | // Only set the mouseHandled flag if the event will bubble, see #9469.
1432 | if ( !event.isPropagationStopped() ) {
1433 | this.mouseHandled = true;
1434 | }
1435 |
1436 | // Open submenu on click
1437 | if ( target.has( ".ui-menu" ).length ) {
1438 | this.expand( event );
1439 | } else if ( !this.element.is( ":focus" ) && $( this.document[ 0 ].activeElement ).closest( ".ui-menu" ).length ) {
1440 |
1441 | // Redirect focus to the menu
1442 | this.element.trigger( "focus", [ true ] );
1443 |
1444 | // If the active item is on the top level, let it stay active.
1445 | // Otherwise, blur the active item since it is no longer visible.
1446 | if ( this.active && this.active.parents( ".ui-menu" ).length === 1 ) {
1447 | clearTimeout( this.timer );
1448 | }
1449 | }
1450 | }
1451 | },
1452 | "mouseenter .ui-menu-item": function( event ) {
1453 | // Ignore mouse events while typeahead is active, see #10458.
1454 | // Prevents focusing the wrong item when typeahead causes a scroll while the mouse
1455 | // is over an item in the menu
1456 | if ( this.previousFilter ) {
1457 | return;
1458 | }
1459 | var target = $( event.currentTarget );
1460 | // Remove ui-state-active class from siblings of the newly focused menu item
1461 | // to avoid a jump caused by adjacent elements both having a class with a border
1462 | target.siblings( ".ui-state-active" ).removeClass( "ui-state-active" );
1463 | this.focus( event, target );
1464 | },
1465 | mouseleave: "collapseAll",
1466 | "mouseleave .ui-menu": "collapseAll",
1467 | focus: function( event, keepActiveItem ) {
1468 | // If there's already an active item, keep it active
1469 | // If not, activate the first item
1470 | var item = this.active || this.element.find( this.options.items ).eq( 0 );
1471 |
1472 | if ( !keepActiveItem ) {
1473 | this.focus( event, item );
1474 | }
1475 | },
1476 | blur: function( event ) {
1477 | this._delay(function() {
1478 | if ( !$.contains( this.element[0], this.document[0].activeElement ) ) {
1479 | this.collapseAll( event );
1480 | }
1481 | });
1482 | },
1483 | keydown: "_keydown"
1484 | });
1485 |
1486 | this.refresh();
1487 |
1488 | // Clicks outside of a menu collapse any open menus
1489 | this._on( this.document, {
1490 | click: function( event ) {
1491 | if ( this._closeOnDocumentClick( event ) ) {
1492 | this.collapseAll( event );
1493 | }
1494 |
1495 | // Reset the mouseHandled flag
1496 | this.mouseHandled = false;
1497 | }
1498 | });
1499 | },
1500 |
1501 | _destroy: function() {
1502 | // Destroy (sub)menus
1503 | this.element
1504 | .removeAttr( "aria-activedescendant" )
1505 | .find( ".ui-menu" ).addBack()
1506 | .removeClass( "ui-menu ui-widget ui-widget-content ui-menu-icons ui-front" )
1507 | .removeAttr( "role" )
1508 | .removeAttr( "tabIndex" )
1509 | .removeAttr( "aria-labelledby" )
1510 | .removeAttr( "aria-expanded" )
1511 | .removeAttr( "aria-hidden" )
1512 | .removeAttr( "aria-disabled" )
1513 | .removeUniqueId()
1514 | .show();
1515 |
1516 | // Destroy menu items
1517 | this.element.find( ".ui-menu-item" )
1518 | .removeClass( "ui-menu-item" )
1519 | .removeAttr( "role" )
1520 | .removeAttr( "aria-disabled" )
1521 | .removeUniqueId()
1522 | .removeClass( "ui-state-hover" )
1523 | .removeAttr( "tabIndex" )
1524 | .removeAttr( "role" )
1525 | .removeAttr( "aria-haspopup" )
1526 | .children().each( function() {
1527 | var elem = $( this );
1528 | if ( elem.data( "ui-menu-submenu-carat" ) ) {
1529 | elem.remove();
1530 | }
1531 | });
1532 |
1533 | // Destroy menu dividers
1534 | this.element.find( ".ui-menu-divider" ).removeClass( "ui-menu-divider ui-widget-content" );
1535 | },
1536 |
1537 | _keydown: function( event ) {
1538 | var match, prev, character, skip,
1539 | preventDefault = true;
1540 |
1541 | switch ( event.keyCode ) {
1542 | case $.ui.keyCode.PAGE_UP:
1543 | this.previousPage( event );
1544 | break;
1545 | case $.ui.keyCode.PAGE_DOWN:
1546 | this.nextPage( event );
1547 | break;
1548 | case $.ui.keyCode.HOME:
1549 | this._move( "first", "first", event );
1550 | break;
1551 | case $.ui.keyCode.END:
1552 | this._move( "last", "last", event );
1553 | break;
1554 | case $.ui.keyCode.UP:
1555 | this.previous( event );
1556 | break;
1557 | case $.ui.keyCode.DOWN:
1558 | this.next( event );
1559 | break;
1560 | case $.ui.keyCode.LEFT:
1561 | this.collapse( event );
1562 | break;
1563 | case $.ui.keyCode.RIGHT:
1564 | if ( this.active && !this.active.is( ".ui-state-disabled" ) ) {
1565 | this.expand( event );
1566 | }
1567 | break;
1568 | case $.ui.keyCode.ENTER:
1569 | case $.ui.keyCode.SPACE:
1570 | this._activate( event );
1571 | break;
1572 | case $.ui.keyCode.ESCAPE:
1573 | this.collapse( event );
1574 | break;
1575 | default:
1576 | preventDefault = false;
1577 | prev = this.previousFilter || "";
1578 | character = String.fromCharCode( event.keyCode );
1579 | skip = false;
1580 |
1581 | clearTimeout( this.filterTimer );
1582 |
1583 | if ( character === prev ) {
1584 | skip = true;
1585 | } else {
1586 | character = prev + character;
1587 | }
1588 |
1589 | match = this._filterMenuItems( character );
1590 | match = skip && match.index( this.active.next() ) !== -1 ?
1591 | this.active.nextAll( ".ui-menu-item" ) :
1592 | match;
1593 |
1594 | // If no matches on the current filter, reset to the last character pressed
1595 | // to move down the menu to the first item that starts with that character
1596 | if ( !match.length ) {
1597 | character = String.fromCharCode( event.keyCode );
1598 | match = this._filterMenuItems( character );
1599 | }
1600 |
1601 | if ( match.length ) {
1602 | this.focus( event, match );
1603 | this.previousFilter = character;
1604 | this.filterTimer = this._delay(function() {
1605 | delete this.previousFilter;
1606 | }, 1000 );
1607 | } else {
1608 | delete this.previousFilter;
1609 | }
1610 | }
1611 |
1612 | if ( preventDefault ) {
1613 | event.preventDefault();
1614 | }
1615 | },
1616 |
1617 | _activate: function( event ) {
1618 | if ( !this.active.is( ".ui-state-disabled" ) ) {
1619 | if ( this.active.is( "[aria-haspopup='true']" ) ) {
1620 | this.expand( event );
1621 | } else {
1622 | this.select( event );
1623 | }
1624 | }
1625 | },
1626 |
1627 | refresh: function() {
1628 | var menus, items,
1629 | that = this,
1630 | icon = this.options.icons.submenu,
1631 | submenus = this.element.find( this.options.menus );
1632 |
1633 | this.element.toggleClass( "ui-menu-icons", !!this.element.find( ".ui-icon" ).length );
1634 |
1635 | // Initialize nested menus
1636 | submenus.filter( ":not(.ui-menu)" )
1637 | .addClass( "ui-menu ui-widget ui-widget-content ui-front" )
1638 | .hide()
1639 | .attr({
1640 | role: this.options.role,
1641 | "aria-hidden": "true",
1642 | "aria-expanded": "false"
1643 | })
1644 | .each(function() {
1645 | var menu = $( this ),
1646 | item = menu.parent(),
1647 | submenuCarat = $( "" )
1648 | .addClass( "ui-menu-icon ui-icon " + icon )
1649 | .data( "ui-menu-submenu-carat", true );
1650 |
1651 | item
1652 | .attr( "aria-haspopup", "true" )
1653 | .prepend( submenuCarat );
1654 | menu.attr( "aria-labelledby", item.attr( "id" ) );
1655 | });
1656 |
1657 | menus = submenus.add( this.element );
1658 | items = menus.find( this.options.items );
1659 |
1660 | // Initialize menu-items containing spaces and/or dashes only as dividers
1661 | items.not( ".ui-menu-item" ).each(function() {
1662 | var item = $( this );
1663 | if ( that._isDivider( item ) ) {
1664 | item.addClass( "ui-widget-content ui-menu-divider" );
1665 | }
1666 | });
1667 |
1668 | // Don't refresh list items that are already adapted
1669 | items.not( ".ui-menu-item, .ui-menu-divider" )
1670 | .addClass( "ui-menu-item" )
1671 | .uniqueId()
1672 | .attr({
1673 | tabIndex: -1,
1674 | role: this._itemRole()
1675 | });
1676 |
1677 | // Add aria-disabled attribute to any disabled menu item
1678 | items.filter( ".ui-state-disabled" ).attr( "aria-disabled", "true" );
1679 |
1680 | // If the active item has been removed, blur the menu
1681 | if ( this.active && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) {
1682 | this.blur();
1683 | }
1684 | },
1685 |
1686 | _itemRole: function() {
1687 | return {
1688 | menu: "menuitem",
1689 | listbox: "option"
1690 | }[ this.options.role ];
1691 | },
1692 |
1693 | _setOption: function( key, value ) {
1694 | if ( key === "icons" ) {
1695 | this.element.find( ".ui-menu-icon" )
1696 | .removeClass( this.options.icons.submenu )
1697 | .addClass( value.submenu );
1698 | }
1699 | if ( key === "disabled" ) {
1700 | this.element
1701 | .toggleClass( "ui-state-disabled", !!value )
1702 | .attr( "aria-disabled", value );
1703 | }
1704 | this._super( key, value );
1705 | },
1706 |
1707 | focus: function( event, item ) {
1708 | var nested, focused;
1709 | this.blur( event, event && event.type === "focus" );
1710 |
1711 | this._scrollIntoView( item );
1712 |
1713 | this.active = item.first();
1714 | focused = this.active.addClass( "ui-state-focus" ).removeClass( "ui-state-active" );
1715 | // Only update aria-activedescendant if there's a role
1716 | // otherwise we assume focus is managed elsewhere
1717 | if ( this.options.role ) {
1718 | this.element.attr( "aria-activedescendant", focused.attr( "id" ) );
1719 | }
1720 |
1721 | // Highlight active parent menu item, if any
1722 | this.active
1723 | .parent()
1724 | .closest( ".ui-menu-item" )
1725 | .addClass( "ui-state-active" );
1726 |
1727 | if ( event && event.type === "keydown" ) {
1728 | this._close();
1729 | } else {
1730 | this.timer = this._delay(function() {
1731 | this._close();
1732 | }, this.delay );
1733 | }
1734 |
1735 | nested = item.children( ".ui-menu" );
1736 | if ( nested.length && event && ( /^mouse/.test( event.type ) ) ) {
1737 | this._startOpening(nested);
1738 | }
1739 | this.activeMenu = item.parent();
1740 |
1741 | this._trigger( "focus", event, { item: item } );
1742 | },
1743 |
1744 | _scrollIntoView: function( item ) {
1745 | var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight;
1746 | if ( this._hasScroll() ) {
1747 | borderTop = parseFloat( $.css( this.activeMenu[0], "borderTopWidth" ) ) || 0;
1748 | paddingTop = parseFloat( $.css( this.activeMenu[0], "paddingTop" ) ) || 0;
1749 | offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop;
1750 | scroll = this.activeMenu.scrollTop();
1751 | elementHeight = this.activeMenu.height();
1752 | itemHeight = item.outerHeight();
1753 |
1754 | if ( offset < 0 ) {
1755 | this.activeMenu.scrollTop( scroll + offset );
1756 | } else if ( offset + itemHeight > elementHeight ) {
1757 | this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight );
1758 | }
1759 | }
1760 | },
1761 |
1762 | blur: function( event, fromFocus ) {
1763 | if ( !fromFocus ) {
1764 | clearTimeout( this.timer );
1765 | }
1766 |
1767 | if ( !this.active ) {
1768 | return;
1769 | }
1770 |
1771 | this.active.removeClass( "ui-state-focus" );
1772 | this.active = null;
1773 |
1774 | this._trigger( "blur", event, { item: this.active } );
1775 | },
1776 |
1777 | _startOpening: function( submenu ) {
1778 | clearTimeout( this.timer );
1779 |
1780 | // Don't open if already open fixes a Firefox bug that caused a .5 pixel
1781 | // shift in the submenu position when mousing over the carat icon
1782 | if ( submenu.attr( "aria-hidden" ) !== "true" ) {
1783 | return;
1784 | }
1785 |
1786 | this.timer = this._delay(function() {
1787 | this._close();
1788 | this._open( submenu );
1789 | }, this.delay );
1790 | },
1791 |
1792 | _open: function( submenu ) {
1793 | var position = $.extend({
1794 | of: this.active
1795 | }, this.options.position );
1796 |
1797 | clearTimeout( this.timer );
1798 | this.element.find( ".ui-menu" ).not( submenu.parents( ".ui-menu" ) )
1799 | .hide()
1800 | .attr( "aria-hidden", "true" );
1801 |
1802 | submenu
1803 | .show()
1804 | .removeAttr( "aria-hidden" )
1805 | .attr( "aria-expanded", "true" )
1806 | .position( position );
1807 | },
1808 |
1809 | collapseAll: function( event, all ) {
1810 | clearTimeout( this.timer );
1811 | this.timer = this._delay(function() {
1812 | // If we were passed an event, look for the submenu that contains the event
1813 | var currentMenu = all ? this.element :
1814 | $( event && event.target ).closest( this.element.find( ".ui-menu" ) );
1815 |
1816 | // If we found no valid submenu ancestor, use the main menu to close all sub menus anyway
1817 | if ( !currentMenu.length ) {
1818 | currentMenu = this.element;
1819 | }
1820 |
1821 | this._close( currentMenu );
1822 |
1823 | this.blur( event );
1824 | this.activeMenu = currentMenu;
1825 | }, this.delay );
1826 | },
1827 |
1828 | // With no arguments, closes the currently active menu - if nothing is active
1829 | // it closes all menus. If passed an argument, it will search for menus BELOW
1830 | _close: function( startMenu ) {
1831 | if ( !startMenu ) {
1832 | startMenu = this.active ? this.active.parent() : this.element;
1833 | }
1834 |
1835 | startMenu
1836 | .find( ".ui-menu" )
1837 | .hide()
1838 | .attr( "aria-hidden", "true" )
1839 | .attr( "aria-expanded", "false" )
1840 | .end()
1841 | .find( ".ui-state-active" ).not( ".ui-state-focus" )
1842 | .removeClass( "ui-state-active" );
1843 | },
1844 |
1845 | _closeOnDocumentClick: function( event ) {
1846 | return !$( event.target ).closest( ".ui-menu" ).length;
1847 | },
1848 |
1849 | _isDivider: function( item ) {
1850 |
1851 | // Match hyphen, em dash, en dash
1852 | return !/[^\-\u2014\u2013\s]/.test( item.text() );
1853 | },
1854 |
1855 | collapse: function( event ) {
1856 | var newItem = this.active &&
1857 | this.active.parent().closest( ".ui-menu-item", this.element );
1858 | if ( newItem && newItem.length ) {
1859 | this._close();
1860 | this.focus( event, newItem );
1861 | }
1862 | },
1863 |
1864 | expand: function( event ) {
1865 | var newItem = this.active &&
1866 | this.active
1867 | .children( ".ui-menu " )
1868 | .find( this.options.items )
1869 | .first();
1870 |
1871 | if ( newItem && newItem.length ) {
1872 | this._open( newItem.parent() );
1873 |
1874 | // Delay so Firefox will not hide activedescendant change in expanding submenu from AT
1875 | this._delay(function() {
1876 | this.focus( event, newItem );
1877 | });
1878 | }
1879 | },
1880 |
1881 | next: function( event ) {
1882 | this._move( "next", "first", event );
1883 | },
1884 |
1885 | previous: function( event ) {
1886 | this._move( "prev", "last", event );
1887 | },
1888 |
1889 | isFirstItem: function() {
1890 | return this.active && !this.active.prevAll( ".ui-menu-item" ).length;
1891 | },
1892 |
1893 | isLastItem: function() {
1894 | return this.active && !this.active.nextAll( ".ui-menu-item" ).length;
1895 | },
1896 |
1897 | _move: function( direction, filter, event ) {
1898 | var next;
1899 | if ( this.active ) {
1900 | if ( direction === "first" || direction === "last" ) {
1901 | next = this.active
1902 | [ direction === "first" ? "prevAll" : "nextAll" ]( ".ui-menu-item" )
1903 | .eq( -1 );
1904 | } else {
1905 | next = this.active
1906 | [ direction + "All" ]( ".ui-menu-item" )
1907 | .eq( 0 );
1908 | }
1909 | }
1910 | if ( !next || !next.length || !this.active ) {
1911 | next = this.activeMenu.find( this.options.items )[ filter ]();
1912 | }
1913 |
1914 | this.focus( event, next );
1915 | },
1916 |
1917 | nextPage: function( event ) {
1918 | var item, base, height;
1919 |
1920 | if ( !this.active ) {
1921 | this.next( event );
1922 | return;
1923 | }
1924 | if ( this.isLastItem() ) {
1925 | return;
1926 | }
1927 | if ( this._hasScroll() ) {
1928 | base = this.active.offset().top;
1929 | height = this.element.height();
1930 | this.active.nextAll( ".ui-menu-item" ).each(function() {
1931 | item = $( this );
1932 | return item.offset().top - base - height < 0;
1933 | });
1934 |
1935 | this.focus( event, item );
1936 | } else {
1937 | this.focus( event, this.activeMenu.find( this.options.items )
1938 | [ !this.active ? "first" : "last" ]() );
1939 | }
1940 | },
1941 |
1942 | previousPage: function( event ) {
1943 | var item, base, height;
1944 | if ( !this.active ) {
1945 | this.next( event );
1946 | return;
1947 | }
1948 | if ( this.isFirstItem() ) {
1949 | return;
1950 | }
1951 | if ( this._hasScroll() ) {
1952 | base = this.active.offset().top;
1953 | height = this.element.height();
1954 | this.active.prevAll( ".ui-menu-item" ).each(function() {
1955 | item = $( this );
1956 | return item.offset().top - base + height > 0;
1957 | });
1958 |
1959 | this.focus( event, item );
1960 | } else {
1961 | this.focus( event, this.activeMenu.find( this.options.items ).first() );
1962 | }
1963 | },
1964 |
1965 | _hasScroll: function() {
1966 | return this.element.outerHeight() < this.element.prop( "scrollHeight" );
1967 | },
1968 |
1969 | select: function( event ) {
1970 | // TODO: It should never be possible to not have an active item at this
1971 | // point, but the tests don't trigger mouseenter before click.
1972 | this.active = this.active || $( event.target ).closest( ".ui-menu-item" );
1973 | var ui = { item: this.active };
1974 | if ( !this.active.has( ".ui-menu" ).length ) {
1975 | this.collapseAll( event, true );
1976 | }
1977 | this._trigger( "select", event, ui );
1978 | },
1979 |
1980 | _filterMenuItems: function(character) {
1981 | var escapedCharacter = character.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" ),
1982 | regex = new RegExp( "^" + escapedCharacter, "i" );
1983 |
1984 | return this.activeMenu
1985 | .find( this.options.items )
1986 |
1987 | // Only match on items, not dividers or other content (#10571)
1988 | .filter( ".ui-menu-item" )
1989 | .filter(function() {
1990 | return regex.test( $.trim( $( this ).text() ) );
1991 | });
1992 | }
1993 | });
1994 |
1995 |
1996 | /*!
1997 | * jQuery UI Autocomplete 1.11.2
1998 | * http://jqueryui.com
1999 | *
2000 | * Copyright 2014 jQuery Foundation and other contributors
2001 | * Released under the MIT license.
2002 | * http://jquery.org/license
2003 | *
2004 | * http://api.jqueryui.com/autocomplete/
2005 | */
2006 |
2007 |
2008 | $.widget( "ui.autocomplete", {
2009 | version: "1.11.2",
2010 | defaultElement: "",
2011 | options: {
2012 | appendTo: null,
2013 | autoFocus: false,
2014 | delay: 300,
2015 | minLength: 1,
2016 | position: {
2017 | my: "left top",
2018 | at: "left bottom",
2019 | collision: "none"
2020 | },
2021 | source: null,
2022 |
2023 | // callbacks
2024 | change: null,
2025 | close: null,
2026 | focus: null,
2027 | open: null,
2028 | response: null,
2029 | search: null,
2030 | select: null
2031 | },
2032 |
2033 | requestIndex: 0,
2034 | pending: 0,
2035 |
2036 | _create: function() {
2037 | // Some browsers only repeat keydown events, not keypress events,
2038 | // so we use the suppressKeyPress flag to determine if we've already
2039 | // handled the keydown event. #7269
2040 | // Unfortunately the code for & in keypress is the same as the up arrow,
2041 | // so we use the suppressKeyPressRepeat flag to avoid handling keypress
2042 | // events when we know the keydown event was used to modify the
2043 | // search term. #7799
2044 | var suppressKeyPress, suppressKeyPressRepeat, suppressInput,
2045 | nodeName = this.element[ 0 ].nodeName.toLowerCase(),
2046 | isTextarea = nodeName === "textarea",
2047 | isInput = nodeName === "input";
2048 |
2049 | this.isMultiLine =
2050 | // Textareas are always multi-line
2051 | isTextarea ? true :
2052 | // Inputs are always single-line, even if inside a contentEditable element
2053 | // IE also treats inputs as contentEditable
2054 | isInput ? false :
2055 | // All other element types are determined by whether or not they're contentEditable
2056 | this.element.prop( "isContentEditable" );
2057 |
2058 | this.valueMethod = this.element[ isTextarea || isInput ? "val" : "text" ];
2059 | this.isNewMenu = true;
2060 |
2061 | this.element
2062 | .addClass( "ui-autocomplete-input" )
2063 | .attr( "autocomplete", "off" );
2064 |
2065 | this._on( this.element, {
2066 | keydown: function( event ) {
2067 | if ( this.element.prop( "readOnly" ) ) {
2068 | suppressKeyPress = true;
2069 | suppressInput = true;
2070 | suppressKeyPressRepeat = true;
2071 | return;
2072 | }
2073 |
2074 | suppressKeyPress = false;
2075 | suppressInput = false;
2076 | suppressKeyPressRepeat = false;
2077 | var keyCode = $.ui.keyCode;
2078 | switch ( event.keyCode ) {
2079 | case keyCode.PAGE_UP:
2080 | suppressKeyPress = true;
2081 | this._move( "previousPage", event );
2082 | break;
2083 | case keyCode.PAGE_DOWN:
2084 | suppressKeyPress = true;
2085 | this._move( "nextPage", event );
2086 | break;
2087 | case keyCode.UP:
2088 | suppressKeyPress = true;
2089 | this._keyEvent( "previous", event );
2090 | break;
2091 | case keyCode.DOWN:
2092 | suppressKeyPress = true;
2093 | this._keyEvent( "next", event );
2094 | break;
2095 | case keyCode.ENTER:
2096 | // when menu is open and has focus
2097 | if ( this.menu.active ) {
2098 | // #6055 - Opera still allows the keypress to occur
2099 | // which causes forms to submit
2100 | suppressKeyPress = true;
2101 | event.preventDefault();
2102 | this.menu.select( event );
2103 | }
2104 | break;
2105 | case keyCode.TAB:
2106 | if ( this.menu.active ) {
2107 | this.menu.select( event );
2108 | }
2109 | break;
2110 | case keyCode.ESCAPE:
2111 | if ( this.menu.element.is( ":visible" ) ) {
2112 | if ( !this.isMultiLine ) {
2113 | this._value( this.term );
2114 | }
2115 | this.close( event );
2116 | // Different browsers have different default behavior for escape
2117 | // Single press can mean undo or clear
2118 | // Double press in IE means clear the whole form
2119 | event.preventDefault();
2120 | }
2121 | break;
2122 | default:
2123 | suppressKeyPressRepeat = true;
2124 | // search timeout should be triggered before the input value is changed
2125 | this._searchTimeout( event );
2126 | break;
2127 | }
2128 | },
2129 | keypress: function( event ) {
2130 | if ( suppressKeyPress ) {
2131 | suppressKeyPress = false;
2132 | if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) {
2133 | event.preventDefault();
2134 | }
2135 | return;
2136 | }
2137 | if ( suppressKeyPressRepeat ) {
2138 | return;
2139 | }
2140 |
2141 | // replicate some key handlers to allow them to repeat in Firefox and Opera
2142 | var keyCode = $.ui.keyCode;
2143 | switch ( event.keyCode ) {
2144 | case keyCode.PAGE_UP:
2145 | this._move( "previousPage", event );
2146 | break;
2147 | case keyCode.PAGE_DOWN:
2148 | this._move( "nextPage", event );
2149 | break;
2150 | case keyCode.UP:
2151 | this._keyEvent( "previous", event );
2152 | break;
2153 | case keyCode.DOWN:
2154 | this._keyEvent( "next", event );
2155 | break;
2156 | }
2157 | },
2158 | input: function( event ) {
2159 | if ( suppressInput ) {
2160 | suppressInput = false;
2161 | event.preventDefault();
2162 | return;
2163 | }
2164 | this._searchTimeout( event );
2165 | },
2166 | focus: function() {
2167 | this.selectedItem = null;
2168 | this.previous = this._value();
2169 | },
2170 | blur: function( event ) {
2171 | if ( this.cancelBlur ) {
2172 | delete this.cancelBlur;
2173 | return;
2174 | }
2175 |
2176 | clearTimeout( this.searching );
2177 | this.close( event );
2178 | this._change( event );
2179 | }
2180 | });
2181 |
2182 | this._initSource();
2183 | this.menu = $( "" )
2184 | .addClass( "ui-autocomplete ui-front" )
2185 | .appendTo( this._appendTo() )
2186 | .menu({
2187 | // disable ARIA support, the live region takes care of that
2188 | role: null
2189 | })
2190 | .hide()
2191 | .menu( "instance" );
2192 |
2193 | this._on( this.menu.element, {
2194 | mousedown: function( event ) {
2195 | // prevent moving focus out of the text field
2196 | event.preventDefault();
2197 |
2198 | // IE doesn't prevent moving focus even with event.preventDefault()
2199 | // so we set a flag to know when we should ignore the blur event
2200 | this.cancelBlur = true;
2201 | this._delay(function() {
2202 | delete this.cancelBlur;
2203 | });
2204 |
2205 | // clicking on the scrollbar causes focus to shift to the body
2206 | // but we can't detect a mouseup or a click immediately afterward
2207 | // so we have to track the next mousedown and close the menu if
2208 | // the user clicks somewhere outside of the autocomplete
2209 | var menuElement = this.menu.element[ 0 ];
2210 | if ( !$( event.target ).closest( ".ui-menu-item" ).length ) {
2211 | this._delay(function() {
2212 | var that = this;
2213 | this.document.one( "mousedown", function( event ) {
2214 | if ( event.target !== that.element[ 0 ] &&
2215 | event.target !== menuElement &&
2216 | !$.contains( menuElement, event.target ) ) {
2217 | that.close();
2218 | }
2219 | });
2220 | });
2221 | }
2222 | },
2223 | menufocus: function( event, ui ) {
2224 | var label, item;
2225 | // support: Firefox
2226 | // Prevent accidental activation of menu items in Firefox (#7024 #9118)
2227 | if ( this.isNewMenu ) {
2228 | this.isNewMenu = false;
2229 | if ( event.originalEvent && /^mouse/.test( event.originalEvent.type ) ) {
2230 | this.menu.blur();
2231 |
2232 | this.document.one( "mousemove", function() {
2233 | $( event.target ).trigger( event.originalEvent );
2234 | });
2235 |
2236 | return;
2237 | }
2238 | }
2239 |
2240 | item = ui.item.data( "ui-autocomplete-item" );
2241 | if ( false !== this._trigger( "focus", event, { item: item } ) ) {
2242 | // use value to match what will end up in the input, if it was a key event
2243 | if ( event.originalEvent && /^key/.test( event.originalEvent.type ) ) {
2244 | this._value( item.value );
2245 | }
2246 | }
2247 |
2248 | // Announce the value in the liveRegion
2249 | label = ui.item.attr( "aria-label" ) || item.value;
2250 | if ( label && $.trim( label ).length ) {
2251 | this.liveRegion.children().hide();
2252 | $( "" ).text( label ).appendTo( this.liveRegion );
2253 | }
2254 | },
2255 | menuselect: function( event, ui ) {
2256 | var item = ui.item.data( "ui-autocomplete-item" ),
2257 | previous = this.previous;
2258 |
2259 | // only trigger when focus was lost (click on menu)
2260 | if ( this.element[ 0 ] !== this.document[ 0 ].activeElement ) {
2261 | this.element.focus();
2262 | this.previous = previous;
2263 | // #6109 - IE triggers two focus events and the second
2264 | // is asynchronous, so we need to reset the previous
2265 | // term synchronously and asynchronously :-(
2266 | this._delay(function() {
2267 | this.previous = previous;
2268 | this.selectedItem = item;
2269 | });
2270 | }
2271 |
2272 | if ( false !== this._trigger( "select", event, { item: item } ) ) {
2273 | this._value( item.value );
2274 | }
2275 | // reset the term after the select event
2276 | // this allows custom select handling to work properly
2277 | this.term = this._value();
2278 |
2279 | this.close( event );
2280 | this.selectedItem = item;
2281 | }
2282 | });
2283 |
2284 | this.liveRegion = $( "
", {
2285 | role: "status",
2286 | "aria-live": "assertive",
2287 | "aria-relevant": "additions"
2288 | })
2289 | .addClass( "ui-helper-hidden-accessible" )
2290 | .appendTo( this.document[ 0 ].body );
2291 |
2292 | // turning off autocomplete prevents the browser from remembering the
2293 | // value when navigating through history, so we re-enable autocomplete
2294 | // if the page is unloaded before the widget is destroyed. #7790
2295 | this._on( this.window, {
2296 | beforeunload: function() {
2297 | this.element.removeAttr( "autocomplete" );
2298 | }
2299 | });
2300 | },
2301 |
2302 | _destroy: function() {
2303 | clearTimeout( this.searching );
2304 | this.element
2305 | .removeClass( "ui-autocomplete-input" )
2306 | .removeAttr( "autocomplete" );
2307 | this.menu.element.remove();
2308 | this.liveRegion.remove();
2309 | },
2310 |
2311 | _setOption: function( key, value ) {
2312 | this._super( key, value );
2313 | if ( key === "source" ) {
2314 | this._initSource();
2315 | }
2316 | if ( key === "appendTo" ) {
2317 | this.menu.element.appendTo( this._appendTo() );
2318 | }
2319 | if ( key === "disabled" && value && this.xhr ) {
2320 | this.xhr.abort();
2321 | }
2322 | },
2323 |
2324 | _appendTo: function() {
2325 | var element = this.options.appendTo;
2326 |
2327 | if ( element ) {
2328 | element = element.jquery || element.nodeType ?
2329 | $( element ) :
2330 | this.document.find( element ).eq( 0 );
2331 | }
2332 |
2333 | if ( !element || !element[ 0 ] ) {
2334 | element = this.element.closest( ".ui-front" );
2335 | }
2336 |
2337 | if ( !element.length ) {
2338 | element = this.document[ 0 ].body;
2339 | }
2340 |
2341 | return element;
2342 | },
2343 |
2344 | _initSource: function() {
2345 | var array, url,
2346 | that = this;
2347 | if ( $.isArray( this.options.source ) ) {
2348 | array = this.options.source;
2349 | this.source = function( request, response ) {
2350 | response( $.ui.autocomplete.filter( array, request.term ) );
2351 | };
2352 | } else if ( typeof this.options.source === "string" ) {
2353 | url = this.options.source;
2354 | this.source = function( request, response ) {
2355 | if ( that.xhr ) {
2356 | that.xhr.abort();
2357 | }
2358 | that.xhr = $.ajax({
2359 | url: url,
2360 | data: request,
2361 | dataType: "json",
2362 | success: function( data ) {
2363 | response( data );
2364 | },
2365 | error: function() {
2366 | response([]);
2367 | }
2368 | });
2369 | };
2370 | } else {
2371 | this.source = this.options.source;
2372 | }
2373 | },
2374 |
2375 | _searchTimeout: function( event ) {
2376 | clearTimeout( this.searching );
2377 | this.searching = this._delay(function() {
2378 |
2379 | // Search if the value has changed, or if the user retypes the same value (see #7434)
2380 | var equalValues = this.term === this._value(),
2381 | menuVisible = this.menu.element.is( ":visible" ),
2382 | modifierKey = event.altKey || event.ctrlKey || event.metaKey || event.shiftKey;
2383 |
2384 | if ( !equalValues || ( equalValues && !menuVisible && !modifierKey ) ) {
2385 | this.selectedItem = null;
2386 | this.search( null, event );
2387 | }
2388 | }, this.options.delay );
2389 | },
2390 |
2391 | search: function( value, event ) {
2392 | value = value != null ? value : this._value();
2393 |
2394 | // always save the actual value, not the one passed as an argument
2395 | this.term = this._value();
2396 |
2397 | if ( value.length < this.options.minLength ) {
2398 | return this.close( event );
2399 | }
2400 |
2401 | if ( this._trigger( "search", event ) === false ) {
2402 | return;
2403 | }
2404 |
2405 | return this._search( value );
2406 | },
2407 |
2408 | _search: function( value ) {
2409 | this.pending++;
2410 | this.element.addClass( "ui-autocomplete-loading" );
2411 | this.cancelSearch = false;
2412 |
2413 | this.source( { term: value }, this._response() );
2414 | },
2415 |
2416 | _response: function() {
2417 | var index = ++this.requestIndex;
2418 |
2419 | return $.proxy(function( content ) {
2420 | if ( index === this.requestIndex ) {
2421 | this.__response( content );
2422 | }
2423 |
2424 | this.pending--;
2425 | if ( !this.pending ) {
2426 | this.element.removeClass( "ui-autocomplete-loading" );
2427 | }
2428 | }, this );
2429 | },
2430 |
2431 | __response: function( content ) {
2432 | if ( content ) {
2433 | content = this._normalize( content );
2434 | }
2435 | this._trigger( "response", null, { content: content } );
2436 | if ( !this.options.disabled && content && content.length && !this.cancelSearch ) {
2437 | this._suggest( content );
2438 | this._trigger( "open" );
2439 | } else {
2440 | // use ._close() instead of .close() so we don't cancel future searches
2441 | this._close();
2442 | }
2443 | },
2444 |
2445 | close: function( event ) {
2446 | this.cancelSearch = true;
2447 | this._close( event );
2448 | },
2449 |
2450 | _close: function( event ) {
2451 | if ( this.menu.element.is( ":visible" ) ) {
2452 | this.menu.element.hide();
2453 | this.menu.blur();
2454 | this.isNewMenu = true;
2455 | this._trigger( "close", event );
2456 | }
2457 | },
2458 |
2459 | _change: function( event ) {
2460 | if ( this.previous !== this._value() ) {
2461 | this._trigger( "change", event, { item: this.selectedItem } );
2462 | }
2463 | },
2464 |
2465 | _normalize: function( items ) {
2466 | // assume all items have the right format when the first item is complete
2467 | if ( items.length && items[ 0 ].label && items[ 0 ].value ) {
2468 | return items;
2469 | }
2470 | return $.map( items, function( item ) {
2471 | if ( typeof item === "string" ) {
2472 | return {
2473 | label: item,
2474 | value: item
2475 | };
2476 | }
2477 | return $.extend( {}, item, {
2478 | label: item.label || item.value,
2479 | value: item.value || item.label
2480 | });
2481 | });
2482 | },
2483 |
2484 | _suggest: function( items ) {
2485 | var ul = this.menu.element.empty();
2486 | this._renderMenu( ul, items );
2487 | this.isNewMenu = true;
2488 | this.menu.refresh();
2489 |
2490 | // size and position menu
2491 | ul.show();
2492 | this._resizeMenu();
2493 | ul.position( $.extend({
2494 | of: this.element
2495 | }, this.options.position ) );
2496 |
2497 | if ( this.options.autoFocus ) {
2498 | this.menu.next();
2499 | }
2500 | },
2501 |
2502 | _resizeMenu: function() {
2503 | var ul = this.menu.element;
2504 | ul.outerWidth( Math.max(
2505 | // Firefox wraps long text (possibly a rounding bug)
2506 | // so we add 1px to avoid the wrapping (#7513)
2507 | ul.width( "" ).outerWidth() + 1,
2508 | this.element.outerWidth()
2509 | ) );
2510 | },
2511 |
2512 | _renderMenu: function( ul, items ) {
2513 | var that = this;
2514 | $.each( items, function( index, item ) {
2515 | that._renderItemData( ul, item );
2516 | });
2517 | },
2518 |
2519 | _renderItemData: function( ul, item ) {
2520 | return this._renderItem( ul, item ).data( "ui-autocomplete-item", item );
2521 | },
2522 |
2523 | _renderItem: function( ul, item ) {
2524 | return $( "- " ).text( item.label ).appendTo( ul );
2525 | },
2526 |
2527 | _move: function( direction, event ) {
2528 | if ( !this.menu.element.is( ":visible" ) ) {
2529 | this.search( null, event );
2530 | return;
2531 | }
2532 | if ( this.menu.isFirstItem() && /^previous/.test( direction ) ||
2533 | this.menu.isLastItem() && /^next/.test( direction ) ) {
2534 |
2535 | if ( !this.isMultiLine ) {
2536 | this._value( this.term );
2537 | }
2538 |
2539 | this.menu.blur();
2540 | return;
2541 | }
2542 | this.menu[ direction ]( event );
2543 | },
2544 |
2545 | widget: function() {
2546 | return this.menu.element;
2547 | },
2548 |
2549 | _value: function() {
2550 | return this.valueMethod.apply( this.element, arguments );
2551 | },
2552 |
2553 | _keyEvent: function( keyEvent, event ) {
2554 | if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) {
2555 | this._move( keyEvent, event );
2556 |
2557 | // prevents moving cursor to beginning/end of the text field in some browsers
2558 | event.preventDefault();
2559 | }
2560 | }
2561 | });
2562 |
2563 | $.extend( $.ui.autocomplete, {
2564 | escapeRegex: function( value ) {
2565 | return value.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" );
2566 | },
2567 | filter: function( array, term ) {
2568 | var matcher = new RegExp( $.ui.autocomplete.escapeRegex( term ), "i" );
2569 | return $.grep( array, function( value ) {
2570 | return matcher.test( value.label || value.value || value );
2571 | });
2572 | }
2573 | });
2574 |
2575 | // live region extension, adding a `messages` option
2576 | // NOTE: This is an experimental API. We are still investigating
2577 | // a full solution for string manipulation and internationalization.
2578 | $.widget( "ui.autocomplete", $.ui.autocomplete, {
2579 | options: {
2580 | messages: {
2581 | noResults: "No search results.",
2582 | results: function( amount ) {
2583 | return amount + ( amount > 1 ? " results are" : " result is" ) +
2584 | " available, use up and down arrow keys to navigate.";
2585 | }
2586 | }
2587 | },
2588 |
2589 | __response: function( content ) {
2590 | var message;
2591 | this._superApply( arguments );
2592 | if ( this.options.disabled || this.cancelSearch ) {
2593 | return;
2594 | }
2595 | if ( content && content.length ) {
2596 | message = this.options.messages.results( content.length );
2597 | } else {
2598 | message = this.options.messages.noResults;
2599 | }
2600 | this.liveRegion.children().hide();
2601 | $( "
" ).text( message ).appendTo( this.liveRegion );
2602 | }
2603 | });
2604 |
2605 | var autocomplete = $.ui.autocomplete;
2606 |
2607 |
2608 |
2609 | }));
--------------------------------------------------------------------------------
/custom-directives-2/autocomplete-jquery-ui.structure.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * jQuery UI CSS Framework 1.11.2
3 | * http://jqueryui.com
4 | *
5 | * Copyright 2014 jQuery Foundation and other contributors
6 | * Released under the MIT license.
7 | * http://jquery.org/license
8 | *
9 | * http://api.jqueryui.com/category/theming/
10 | */
11 |
12 | /* Layout helpers
13 | ----------------------------------*/
14 | .ui-helper-hidden {
15 | display: none;
16 | }
17 | .ui-helper-hidden-accessible {
18 | border: 0;
19 | clip: rect(0 0 0 0);
20 | height: 1px;
21 | margin: -1px;
22 | overflow: hidden;
23 | padding: 0;
24 | position: absolute;
25 | width: 1px;
26 | }
27 | .ui-helper-reset {
28 | margin: 0;
29 | padding: 0;
30 | border: 0;
31 | outline: 0;
32 | line-height: 1.3;
33 | text-decoration: none;
34 | font-size: 100%;
35 | list-style: none;
36 | }
37 | .ui-helper-clearfix:before,
38 | .ui-helper-clearfix:after {
39 | content: "";
40 | display: table;
41 | border-collapse: collapse;
42 | }
43 | .ui-helper-clearfix:after {
44 | clear: both;
45 | }
46 | .ui-helper-clearfix {
47 | min-height: 0; /* support: IE7 */
48 | }
49 | .ui-helper-zfix {
50 | width: 100%;
51 | height: 100%;
52 | top: 0;
53 | left: 0;
54 | position: absolute;
55 | opacity: 0;
56 | filter:Alpha(Opacity=0); /* support: IE8 */
57 | }
58 |
59 | .ui-front {
60 | z-index: 100;
61 | }
62 |
63 |
64 | /* Interaction Cues
65 | ----------------------------------*/
66 | .ui-state-disabled {
67 | cursor: default !important;
68 | }
69 |
70 |
71 | /* Icons
72 | ----------------------------------*/
73 |
74 | /* states and images */
75 | .ui-icon {
76 | display: block;
77 | text-indent: -99999px;
78 | overflow: hidden;
79 | background-repeat: no-repeat;
80 | }
81 |
82 |
83 | /* Misc visuals
84 | ----------------------------------*/
85 |
86 | /* Overlays */
87 | .ui-widget-overlay {
88 | position: fixed;
89 | top: 0;
90 | left: 0;
91 | width: 100%;
92 | height: 100%;
93 | }
94 | .ui-autocomplete {
95 | position: absolute;
96 | top: 0;
97 | left: 0;
98 | cursor: default;
99 | }
100 | .ui-menu {
101 | list-style: none;
102 | padding: 0;
103 | margin: 0;
104 | display: block;
105 | outline: none;
106 | }
107 | .ui-menu .ui-menu {
108 | position: absolute;
109 | }
110 | .ui-menu .ui-menu-item {
111 | position: relative;
112 | margin: 0;
113 | padding: 3px 1em 3px .4em;
114 | cursor: pointer;
115 | min-height: 0; /* support: IE7 */
116 | /* support: IE10, see #8844 */
117 | list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
118 | }
119 | .ui-menu .ui-menu-divider {
120 | margin: 5px 0;
121 | height: 0;
122 | font-size: 0;
123 | line-height: 0;
124 | border-width: 1px 0 0 0;
125 | }
126 | .ui-menu .ui-state-focus,
127 | .ui-menu .ui-state-active {
128 | margin: -1px;
129 | }
130 |
131 | /* icon support */
132 | .ui-menu-icons {
133 | position: relative;
134 | }
135 | .ui-menu-icons .ui-menu-item {
136 | padding-left: 2em;
137 | }
138 |
139 | /* left-aligned */
140 | .ui-menu .ui-icon {
141 | position: absolute;
142 | top: 0;
143 | bottom: 0;
144 | left: .2em;
145 | margin: auto 0;
146 | }
147 |
148 | /* right-aligned */
149 | .ui-menu .ui-menu-icon {
150 | left: auto;
151 | right: 0;
152 | }
153 |
--------------------------------------------------------------------------------
/resource/css/main.css:
--------------------------------------------------------------------------------
1 | a,a:visited{
2 | color: inherit;
3 | text-decoration: none;
4 | }
5 | .top-space{
6 | margin-top: 1em;
7 | }
--------------------------------------------------------------------------------
/resource/css/materialdesignicons.css:
--------------------------------------------------------------------------------
1 | /* MaterialDesignIcons.com */
2 | @font-face {
3 | font-family: 'MaterialDesignIcons';
4 | src: url("../fonts/materialdesignicons-webfont.eot?v=0.9.21");
5 | src: url("../fonts/materialdesignicons-webfont.eot?#iefix&v=0.9.21") format("embedded-opentype"), url("../fonts/materialdesignicons-webfont.woff2?v=0.9.21") format("woff2"), url("../fonts/materialdesignicons-webfont.woff?v=0.9.21") format("woff"), url("../fonts/materialdesignicons-webfont.ttf?v=0.9.21") format("truetype"), url("../fonts/materialdesignicons-webfont.svg?v=0.9.21#materialdesigniconsregular") format("svg");
6 | font-weight: normal;
7 | font-style: normal;
8 | }
9 | .mdi {
10 | display: inline-block;
11 | font: normal normal normal 24px/1 MaterialDesignIcons;
12 | font-size: inherit;
13 | text-rendering: auto;
14 | -webkit-font-smoothing: antialiased;
15 | -moz-osx-font-smoothing: grayscale;
16 | transform: translate(0, 0);
17 | }
18 |
19 | .mdi-account::before {
20 | content: "\f101";
21 | }
22 |
23 | .mdi-account-alert::before {
24 | content: "\f102";
25 | }
26 |
27 | .mdi-account-box::before {
28 | content: "\f103";
29 | }
30 |
31 | .mdi-account-box-outline::before {
32 | content: "\f104";
33 | }
34 |
35 | .mdi-account-check::before {
36 | content: "\f105";
37 | }
38 |
39 | .mdi-account-circle::before {
40 | content: "\f106";
41 | }
42 |
43 | .mdi-account-key::before {
44 | content: "\f107";
45 | }
46 |
47 | .mdi-account-location::before {
48 | content: "\f108";
49 | }
50 |
51 | .mdi-account-minus::before {
52 | content: "\f109";
53 | }
54 |
55 | .mdi-account-multiple::before {
56 | content: "\f10a";
57 | }
58 |
59 | .mdi-account-multiple-outline::before {
60 | content: "\f10b";
61 | }
62 |
63 | .mdi-account-multiple-plus::before {
64 | content: "\f10c";
65 | }
66 |
67 | .mdi-account-network::before {
68 | content: "\f10d";
69 | }
70 |
71 | .mdi-account-outline::before {
72 | content: "\f10e";
73 | }
74 |
75 | .mdi-account-plus::before {
76 | content: "\f10f";
77 | }
78 |
79 | .mdi-account-remove::before {
80 | content: "\f110";
81 | }
82 |
83 | .mdi-account-search::before {
84 | content: "\f111";
85 | }
86 |
87 | .mdi-account-star::before {
88 | content: "\f112";
89 | }
90 |
91 | .mdi-account-star-variant::before {
92 | content: "\f113";
93 | }
94 |
95 | .mdi-account-switch::before {
96 | content: "\f114";
97 | }
98 |
99 | .mdi-airballoon::before {
100 | content: "\f115";
101 | }
102 |
103 | .mdi-airplane::before {
104 | content: "\f116";
105 | }
106 |
107 | .mdi-airplane-off::before {
108 | content: "\f117";
109 | }
110 |
111 | .mdi-alarm::before {
112 | content: "\f118";
113 | }
114 |
115 | .mdi-alarm-check::before {
116 | content: "\f119";
117 | }
118 |
119 | .mdi-alarm-multiple::before {
120 | content: "\f11a";
121 | }
122 |
123 | .mdi-alarm-off::before {
124 | content: "\f11b";
125 | }
126 |
127 | .mdi-alarm-plus::before {
128 | content: "\f11c";
129 | }
130 |
131 | .mdi-album::before {
132 | content: "\f11d";
133 | }
134 |
135 | .mdi-alert::before {
136 | content: "\f11e";
137 | }
138 |
139 | .mdi-alert-box::before {
140 | content: "\f11f";
141 | }
142 |
143 | .mdi-alert-circle::before {
144 | content: "\f120";
145 | }
146 |
147 | .mdi-alert-octagon::before {
148 | content: "\f121";
149 | }
150 |
151 | .mdi-alphabetical::before {
152 | content: "\f122";
153 | }
154 |
155 | .mdi-amazon::before {
156 | content: "\f123";
157 | }
158 |
159 | .mdi-ambulance::before {
160 | content: "\f124";
161 | }
162 |
163 | .mdi-android::before {
164 | content: "\f125";
165 | }
166 |
167 | .mdi-android-debug-bridge::before {
168 | content: "\f126";
169 | }
170 |
171 | .mdi-apple::before {
172 | content: "\f127";
173 | }
174 |
175 | .mdi-apple-mobileme::before {
176 | content: "\f128";
177 | }
178 |
179 | .mdi-appnet::before {
180 | content: "\f129";
181 | }
182 |
183 | .mdi-apps::before {
184 | content: "\f12a";
185 | }
186 |
187 | .mdi-arrange-bring-forward::before {
188 | content: "\f12b";
189 | }
190 |
191 | .mdi-arrange-bring-to-front::before {
192 | content: "\f12c";
193 | }
194 |
195 | .mdi-arrange-send-backward::before {
196 | content: "\f12d";
197 | }
198 |
199 | .mdi-arrange-send-to-back::before {
200 | content: "\f12e";
201 | }
202 |
203 | .mdi-arrow-collapse::before {
204 | content: "\f12f";
205 | }
206 |
207 | .mdi-arrow-down::before {
208 | content: "\f130";
209 | }
210 |
211 | .mdi-arrow-down-bold-circle::before {
212 | content: "\f131";
213 | }
214 |
215 | .mdi-arrow-down-bold-circle-outline::before {
216 | content: "\f132";
217 | }
218 |
219 | .mdi-arrow-down-bold-hexagon-outline::before {
220 | content: "\f133";
221 | }
222 |
223 | .mdi-arrow-expand::before {
224 | content: "\f134";
225 | }
226 |
227 | .mdi-arrow-left::before {
228 | content: "\f135";
229 | }
230 |
231 | .mdi-arrow-left-bold-circle::before {
232 | content: "\f136";
233 | }
234 |
235 | .mdi-arrow-left-bold-circle-outline::before {
236 | content: "\f137";
237 | }
238 |
239 | .mdi-arrow-left-bold-hexagon-outline::before {
240 | content: "\f138";
241 | }
242 |
243 | .mdi-arrow-right::before {
244 | content: "\f139";
245 | }
246 |
247 | .mdi-arrow-right-bold-circle::before {
248 | content: "\f13a";
249 | }
250 |
251 | .mdi-arrow-right-bold-circle-outline::before {
252 | content: "\f13b";
253 | }
254 |
255 | .mdi-arrow-right-bold-hexagon-outline::before {
256 | content: "\f13c";
257 | }
258 |
259 | .mdi-arrow-up::before {
260 | content: "\f13d";
261 | }
262 |
263 | .mdi-arrow-up-bold-circle::before {
264 | content: "\f13e";
265 | }
266 |
267 | .mdi-arrow-up-bold-circle-outline::before {
268 | content: "\f13f";
269 | }
270 |
271 | .mdi-arrow-up-bold-hexagon-outline::before {
272 | content: "\f140";
273 | }
274 |
275 | .mdi-attachment::before {
276 | content: "\f141";
277 | }
278 |
279 | .mdi-auto-fix::before {
280 | content: "\f142";
281 | }
282 |
283 | .mdi-auto-upload::before {
284 | content: "\f143";
285 | }
286 |
287 | .mdi-backup-restore::before {
288 | content: "\f144";
289 | }
290 |
291 | .mdi-bank::before {
292 | content: "\f145";
293 | }
294 |
295 | .mdi-barcode::before {
296 | content: "\f146";
297 | }
298 |
299 | .mdi-barrel::before {
300 | content: "\f147";
301 | }
302 |
303 | .mdi-basecamp::before {
304 | content: "\f148";
305 | }
306 |
307 | .mdi-basket::before {
308 | content: "\f149";
309 | }
310 |
311 | .mdi-basket-fill::before {
312 | content: "\f14a";
313 | }
314 |
315 | .mdi-basket-unfill::before {
316 | content: "\f14b";
317 | }
318 |
319 | .mdi-battery::before {
320 | content: "\f14c";
321 | }
322 |
323 | .mdi-battery-20::before {
324 | content: "\f14d";
325 | }
326 |
327 | .mdi-battery-30::before {
328 | content: "\f14e";
329 | }
330 |
331 | .mdi-battery-40::before {
332 | content: "\f14f";
333 | }
334 |
335 | .mdi-battery-60::before {
336 | content: "\f150";
337 | }
338 |
339 | .mdi-battery-80::before {
340 | content: "\f151";
341 | }
342 |
343 | .mdi-battery-90::before {
344 | content: "\f152";
345 | }
346 |
347 | .mdi-battery-alert::before {
348 | content: "\f153";
349 | }
350 |
351 | .mdi-battery-charging-100::before {
352 | content: "\f154";
353 | }
354 |
355 | .mdi-battery-charging-20::before {
356 | content: "\f155";
357 | }
358 |
359 | .mdi-battery-charging-30::before {
360 | content: "\f156";
361 | }
362 |
363 | .mdi-battery-charging-40::before {
364 | content: "\f157";
365 | }
366 |
367 | .mdi-battery-charging-60::before {
368 | content: "\f158";
369 | }
370 |
371 | .mdi-battery-charging-80::before {
372 | content: "\f159";
373 | }
374 |
375 | .mdi-battery-charging-90::before {
376 | content: "\f15a";
377 | }
378 |
379 | .mdi-battery-minus::before {
380 | content: "\f15b";
381 | }
382 |
383 | .mdi-battery-negative::before {
384 | content: "\f15c";
385 | }
386 |
387 | .mdi-battery-outline::before {
388 | content: "\f15d";
389 | }
390 |
391 | .mdi-battery-plus::before {
392 | content: "\f15e";
393 | }
394 |
395 | .mdi-battery-positive::before {
396 | content: "\f15f";
397 | }
398 |
399 | .mdi-battery-unknown::before {
400 | content: "\f160";
401 | }
402 |
403 | .mdi-beaker::before {
404 | content: "\f161";
405 | }
406 |
407 | .mdi-beaker-empty::before {
408 | content: "\f162";
409 | }
410 |
411 | .mdi-beaker-empty-outline::before {
412 | content: "\f163";
413 | }
414 |
415 | .mdi-beaker-outline::before {
416 | content: "\f164";
417 | }
418 |
419 | .mdi-beats::before {
420 | content: "\f165";
421 | }
422 |
423 | .mdi-behance::before {
424 | content: "\f166";
425 | }
426 |
427 | .mdi-bell::before {
428 | content: "\f167";
429 | }
430 |
431 | .mdi-bell-off::before {
432 | content: "\f168";
433 | }
434 |
435 | .mdi-bell-outline::before {
436 | content: "\f169";
437 | }
438 |
439 | .mdi-bell-ring::before {
440 | content: "\f16a";
441 | }
442 |
443 | .mdi-bell-ring-outline::before {
444 | content: "\f16b";
445 | }
446 |
447 | .mdi-bell-sleep::before {
448 | content: "\f16c";
449 | }
450 |
451 | .mdi-bike::before {
452 | content: "\f16d";
453 | }
454 |
455 | .mdi-bing::before {
456 | content: "\f16e";
457 | }
458 |
459 | .mdi-bio::before {
460 | content: "\f16f";
461 | }
462 |
463 | .mdi-biohazard::before {
464 | content: "\f170";
465 | }
466 |
467 | .mdi-blackberry::before {
468 | content: "\f171";
469 | }
470 |
471 | .mdi-blinds::before {
472 | content: "\f172";
473 | }
474 |
475 | .mdi-block-helper::before {
476 | content: "\f173";
477 | }
478 |
479 | .mdi-blogger::before {
480 | content: "\f174";
481 | }
482 |
483 | .mdi-bluetooth::before {
484 | content: "\f175";
485 | }
486 |
487 | .mdi-bluetooth-audio::before {
488 | content: "\f176";
489 | }
490 |
491 | .mdi-bluetooth-connect::before {
492 | content: "\f177";
493 | }
494 |
495 | .mdi-bluetooth-settings::before {
496 | content: "\f178";
497 | }
498 |
499 | .mdi-blur::before {
500 | content: "\f179";
501 | }
502 |
503 | .mdi-blur-linear::before {
504 | content: "\f17a";
505 | }
506 |
507 | .mdi-blur-off::before {
508 | content: "\f17b";
509 | }
510 |
511 | .mdi-blur-radial::before {
512 | content: "\f17c";
513 | }
514 |
515 | .mdi-book::before {
516 | content: "\f17d";
517 | }
518 |
519 | .mdi-book-multiple::before {
520 | content: "\f17e";
521 | }
522 |
523 | .mdi-book-multiple-variant::before {
524 | content: "\f17f";
525 | }
526 |
527 | .mdi-book-variant::before {
528 | content: "\f180";
529 | }
530 |
531 | .mdi-bookmark::before {
532 | content: "\f181";
533 | }
534 |
535 | .mdi-bookmark-outline::before {
536 | content: "\f182";
537 | }
538 |
539 | .mdi-border-all::before {
540 | content: "\f183";
541 | }
542 |
543 | .mdi-border-bottom::before {
544 | content: "\f184";
545 | }
546 |
547 | .mdi-border-color::before {
548 | content: "\f185";
549 | }
550 |
551 | .mdi-border-horizontal::before {
552 | content: "\f186";
553 | }
554 |
555 | .mdi-border-inside::before {
556 | content: "\f187";
557 | }
558 |
559 | .mdi-border-left::before {
560 | content: "\f188";
561 | }
562 |
563 | .mdi-border-none::before {
564 | content: "\f189";
565 | }
566 |
567 | .mdi-border-outside::before {
568 | content: "\f18a";
569 | }
570 |
571 | .mdi-border-right::before {
572 | content: "\f18b";
573 | }
574 |
575 | .mdi-border-top::before {
576 | content: "\f18c";
577 | }
578 |
579 | .mdi-border-vertical::before {
580 | content: "\f18d";
581 | }
582 |
583 | .mdi-bowling::before {
584 | content: "\f18e";
585 | }
586 |
587 | .mdi-briefcase::before {
588 | content: "\f18f";
589 | }
590 |
591 | .mdi-briefcase-check::before {
592 | content: "\f190";
593 | }
594 |
595 | .mdi-briefcase-download::before {
596 | content: "\f191";
597 | }
598 |
599 | .mdi-briefcase-upload::before {
600 | content: "\f192";
601 | }
602 |
603 | .mdi-brightness-1::before {
604 | content: "\f193";
605 | }
606 |
607 | .mdi-brightness-2::before {
608 | content: "\f194";
609 | }
610 |
611 | .mdi-brightness-3::before {
612 | content: "\f195";
613 | }
614 |
615 | .mdi-brightness-4::before {
616 | content: "\f196";
617 | }
618 |
619 | .mdi-brightness-5::before {
620 | content: "\f197";
621 | }
622 |
623 | .mdi-brightness-6::before {
624 | content: "\f198";
625 | }
626 |
627 | .mdi-brightness-7::before {
628 | content: "\f199";
629 | }
630 |
631 | .mdi-brightness-auto::before {
632 | content: "\f19a";
633 | }
634 |
635 | .mdi-broom::before {
636 | content: "\f19b";
637 | }
638 |
639 | .mdi-brush::before {
640 | content: "\f19c";
641 | }
642 |
643 | .mdi-bug::before {
644 | content: "\f19d";
645 | }
646 |
647 | .mdi-bus::before {
648 | content: "\f19e";
649 | }
650 |
651 | .mdi-cake::before {
652 | content: "\f19f";
653 | }
654 |
655 | .mdi-cake-variant::before {
656 | content: "\f1a0";
657 | }
658 |
659 | .mdi-calculator::before {
660 | content: "\f1a1";
661 | }
662 |
663 | .mdi-calendar::before {
664 | content: "\f1a2";
665 | }
666 |
667 | .mdi-calendar-check::before {
668 | content: "\f1a3";
669 | }
670 |
671 | .mdi-calendar-remove::before {
672 | content: "\f1a4";
673 | }
674 |
675 | .mdi-calendar-text::before {
676 | content: "\f1a5";
677 | }
678 |
679 | .mdi-calendar-today::before {
680 | content: "\f1a6";
681 | }
682 |
683 | .mdi-camcorder::before {
684 | content: "\f1a7";
685 | }
686 |
687 | .mdi-camcorder-box::before {
688 | content: "\f1a8";
689 | }
690 |
691 | .mdi-camcorder-box-off::before {
692 | content: "\f1a9";
693 | }
694 |
695 | .mdi-camcorder-off::before {
696 | content: "\f1aa";
697 | }
698 |
699 | .mdi-camera::before {
700 | content: "\f1ab";
701 | }
702 |
703 | .mdi-camera-iris::before {
704 | content: "\f1ac";
705 | }
706 |
707 | .mdi-camera-party-mode::before {
708 | content: "\f1ad";
709 | }
710 |
711 | .mdi-camera-switch::before {
712 | content: "\f1ae";
713 | }
714 |
715 | .mdi-camera-timer::before {
716 | content: "\f1af";
717 | }
718 |
719 | .mdi-candycane::before {
720 | content: "\f1b0";
721 | }
722 |
723 | .mdi-car::before {
724 | content: "\f1b1";
725 | }
726 |
727 | .mdi-car-wash::before {
728 | content: "\f1b2";
729 | }
730 |
731 | .mdi-carrot::before {
732 | content: "\f1b3";
733 | }
734 |
735 | .mdi-cart::before {
736 | content: "\f1b4";
737 | }
738 |
739 | .mdi-cart-outline::before {
740 | content: "\f1b5";
741 | }
742 |
743 | .mdi-cash::before {
744 | content: "\f1b6";
745 | }
746 |
747 | .mdi-cast::before {
748 | content: "\f1b7";
749 | }
750 |
751 | .mdi-cast-connected::before {
752 | content: "\f1b8";
753 | }
754 |
755 | .mdi-cellphone::before {
756 | content: "\f1b9";
757 | }
758 |
759 | .mdi-cellphone-android::before {
760 | content: "\f1ba";
761 | }
762 |
763 | .mdi-cellphone-dock::before {
764 | content: "\f1bb";
765 | }
766 |
767 | .mdi-cellphone-iphone::before {
768 | content: "\f1bc";
769 | }
770 |
771 | .mdi-cellphone-link::before {
772 | content: "\f1bd";
773 | }
774 |
775 | .mdi-cellphone-link-off::before {
776 | content: "\f1be";
777 | }
778 |
779 | .mdi-cellphone-settings::before {
780 | content: "\f1bf";
781 | }
782 |
783 | .mdi-chart-bar::before {
784 | content: "\f1c0";
785 | }
786 |
787 | .mdi-chart-histogram::before {
788 | content: "\f1c1";
789 | }
790 |
791 | .mdi-chart-line::before {
792 | content: "\f1c2";
793 | }
794 |
795 | .mdi-check::before {
796 | content: "\f1c3";
797 | }
798 |
799 | .mdi-check-all::before {
800 | content: "\f1c4";
801 | }
802 |
803 | .mdi-checkbox-blank::before {
804 | content: "\f1c5";
805 | }
806 |
807 | .mdi-checkbox-blank-circle::before {
808 | content: "\f1c6";
809 | }
810 |
811 | .mdi-checkbox-blank-circle-outline::before {
812 | content: "\f1c7";
813 | }
814 |
815 | .mdi-checkbox-blank-outline::before {
816 | content: "\f1c8";
817 | }
818 |
819 | .mdi-checkbox-marked::before {
820 | content: "\f1c9";
821 | }
822 |
823 | .mdi-checkbox-marked-circle::before {
824 | content: "\f1ca";
825 | }
826 |
827 | .mdi-checkbox-marked-circle-outline::before {
828 | content: "\f1cb";
829 | }
830 |
831 | .mdi-checkbox-marked-outline::before {
832 | content: "\f1cc";
833 | }
834 |
835 | .mdi-checkbox-multiple-blank::before {
836 | content: "\f1cd";
837 | }
838 |
839 | .mdi-checkbox-multiple-blank-outline::before {
840 | content: "\f1ce";
841 | }
842 |
843 | .mdi-checkbox-multiple-marked::before {
844 | content: "\f1cf";
845 | }
846 |
847 | .mdi-checkbox-multiple-marked-outline::before {
848 | content: "\f1d0";
849 | }
850 |
851 | .mdi-chevron-down::before {
852 | content: "\f1d1";
853 | }
854 |
855 | .mdi-chevron-left::before {
856 | content: "\f1d2";
857 | }
858 |
859 | .mdi-chevron-right::before {
860 | content: "\f1d3";
861 | }
862 |
863 | .mdi-chevron-up::before {
864 | content: "\f1d4";
865 | }
866 |
867 | .mdi-city::before {
868 | content: "\f1d5";
869 | }
870 |
871 | .mdi-clipboard::before {
872 | content: "\f1d6";
873 | }
874 |
875 | .mdi-clipboard-account::before {
876 | content: "\f1d7";
877 | }
878 |
879 | .mdi-clipboard-alert::before {
880 | content: "\f1d8";
881 | }
882 |
883 | .mdi-clipboard-arrow-down::before {
884 | content: "\f1d9";
885 | }
886 |
887 | .mdi-clipboard-arrow-left::before {
888 | content: "\f1da";
889 | }
890 |
891 | .mdi-clipboard-check::before {
892 | content: "\f1db";
893 | }
894 |
895 | .mdi-clipboard-outline::before {
896 | content: "\f1dc";
897 | }
898 |
899 | .mdi-clipboard-text::before {
900 | content: "\f1dd";
901 | }
902 |
903 | .mdi-clippy::before {
904 | content: "\f1de";
905 | }
906 |
907 | .mdi-clock::before {
908 | content: "\f1df";
909 | }
910 |
911 | .mdi-clock-fast::before {
912 | content: "\f1e0";
913 | }
914 |
915 | .mdi-close::before {
916 | content: "\f1e1";
917 | }
918 |
919 | .mdi-close-box::before {
920 | content: "\f1e2";
921 | }
922 |
923 | .mdi-close-box-outline::before {
924 | content: "\f1e3";
925 | }
926 |
927 | .mdi-close-circle::before {
928 | content: "\f1e4";
929 | }
930 |
931 | .mdi-close-circle-outline::before {
932 | content: "\f1e5";
933 | }
934 |
935 | .mdi-close-network::before {
936 | content: "\f1e6";
937 | }
938 |
939 | .mdi-closed-caption::before {
940 | content: "\f1e7";
941 | }
942 |
943 | .mdi-cloud::before {
944 | content: "\f1e8";
945 | }
946 |
947 | .mdi-cloud-check::before {
948 | content: "\f1e9";
949 | }
950 |
951 | .mdi-cloud-circle::before {
952 | content: "\f1ea";
953 | }
954 |
955 | .mdi-cloud-download::before {
956 | content: "\f1eb";
957 | }
958 |
959 | .mdi-cloud-outline::before {
960 | content: "\f1ec";
961 | }
962 |
963 | .mdi-cloud-outline-off::before {
964 | content: "\f1ed";
965 | }
966 |
967 | .mdi-cloud-upload::before {
968 | content: "\f1ee";
969 | }
970 |
971 | .mdi-coffee::before {
972 | content: "\f1ef";
973 | }
974 |
975 | .mdi-coffee-to-go::before {
976 | content: "\f1f0";
977 | }
978 |
979 | .mdi-coin::before {
980 | content: "\f1f1";
981 | }
982 |
983 | .mdi-color-helper::before {
984 | content: "\f1f2";
985 | }
986 |
987 | .mdi-comment::before {
988 | content: "\f1f3";
989 | }
990 |
991 | .mdi-comment-account::before {
992 | content: "\f1f4";
993 | }
994 |
995 | .mdi-comment-account-outline::before {
996 | content: "\f1f5";
997 | }
998 |
999 | .mdi-comment-alert::before {
1000 | content: "\f1f6";
1001 | }
1002 |
1003 | .mdi-comment-alert-outline::before {
1004 | content: "\f1f7";
1005 | }
1006 |
1007 | .mdi-comment-check::before {
1008 | content: "\f1f8";
1009 | }
1010 |
1011 | .mdi-comment-check-outline::before {
1012 | content: "\f1f9";
1013 | }
1014 |
1015 | .mdi-comment-multipe-outline::before {
1016 | content: "\f1fa";
1017 | }
1018 |
1019 | .mdi-comment-outline::before {
1020 | content: "\f1fb";
1021 | }
1022 |
1023 | .mdi-comment-plus-outline::before {
1024 | content: "\f1fc";
1025 | }
1026 |
1027 | .mdi-comment-processing::before {
1028 | content: "\f1fd";
1029 | }
1030 |
1031 | .mdi-comment-processing-outline::before {
1032 | content: "\f1fe";
1033 | }
1034 |
1035 | .mdi-comment-remove-outline::before {
1036 | content: "\f1ff";
1037 | }
1038 |
1039 | .mdi-comment-text::before {
1040 | content: "\f200";
1041 | }
1042 |
1043 | .mdi-comment-text-outline::before {
1044 | content: "\f201";
1045 | }
1046 |
1047 | .mdi-compare::before {
1048 | content: "\f202";
1049 | }
1050 |
1051 | .mdi-compass::before {
1052 | content: "\f203";
1053 | }
1054 |
1055 | .mdi-compass-outline::before {
1056 | content: "\f204";
1057 | }
1058 |
1059 | .mdi-console::before {
1060 | content: "\f205";
1061 | }
1062 |
1063 | .mdi-content-copy::before {
1064 | content: "\f206";
1065 | }
1066 |
1067 | .mdi-content-cut::before {
1068 | content: "\f207";
1069 | }
1070 |
1071 | .mdi-content-paste::before {
1072 | content: "\f208";
1073 | }
1074 |
1075 | .mdi-content-save::before {
1076 | content: "\f209";
1077 | }
1078 |
1079 | .mdi-content-save-all::before {
1080 | content: "\f20a";
1081 | }
1082 |
1083 | .mdi-contrast::before {
1084 | content: "\f20b";
1085 | }
1086 |
1087 | .mdi-contrast-box::before {
1088 | content: "\f20c";
1089 | }
1090 |
1091 | .mdi-contrast-circle::before {
1092 | content: "\f20d";
1093 | }
1094 |
1095 | .mdi-cow::before {
1096 | content: "\f20e";
1097 | }
1098 |
1099 | .mdi-credit-card::before {
1100 | content: "\f20f";
1101 | }
1102 |
1103 | .mdi-crop::before {
1104 | content: "\f210";
1105 | }
1106 |
1107 | .mdi-crop-free::before {
1108 | content: "\f211";
1109 | }
1110 |
1111 | .mdi-crop-landscape::before {
1112 | content: "\f212";
1113 | }
1114 |
1115 | .mdi-crop-portrait::before {
1116 | content: "\f213";
1117 | }
1118 |
1119 | .mdi-crop-square::before {
1120 | content: "\f214";
1121 | }
1122 |
1123 | .mdi-crosshairs::before {
1124 | content: "\f215";
1125 | }
1126 |
1127 | .mdi-crosshairs-gps::before {
1128 | content: "\f216";
1129 | }
1130 |
1131 | .mdi-cube::before {
1132 | content: "\f217";
1133 | }
1134 |
1135 | .mdi-cube-outline::before {
1136 | content: "\f218";
1137 | }
1138 |
1139 | .mdi-cube-unfolded::before {
1140 | content: "\f219";
1141 | }
1142 |
1143 | .mdi-cup::before {
1144 | content: "\f21a";
1145 | }
1146 |
1147 | .mdi-cup-water::before {
1148 | content: "\f21b";
1149 | }
1150 |
1151 | .mdi-currency-btc::before {
1152 | content: "\f21c";
1153 | }
1154 |
1155 | .mdi-currency-usd::before {
1156 | content: "\f21d";
1157 | }
1158 |
1159 | .mdi-cursor-default::before {
1160 | content: "\f21e";
1161 | }
1162 |
1163 | .mdi-cursor-default-outline::before {
1164 | content: "\f21f";
1165 | }
1166 |
1167 | .mdi-cursor-pointer::before {
1168 | content: "\f220";
1169 | }
1170 |
1171 | .mdi-database::before {
1172 | content: "\f221";
1173 | }
1174 |
1175 | .mdi-database-minus::before {
1176 | content: "\f222";
1177 | }
1178 |
1179 | .mdi-database-outline::before {
1180 | content: "\f223";
1181 | }
1182 |
1183 | .mdi-database-plus::before {
1184 | content: "\f224";
1185 | }
1186 |
1187 | .mdi-debug-step-into::before {
1188 | content: "\f225";
1189 | }
1190 |
1191 | .mdi-debug-step-out::before {
1192 | content: "\f226";
1193 | }
1194 |
1195 | .mdi-debug-step-over::before {
1196 | content: "\f227";
1197 | }
1198 |
1199 | .mdi-delete::before {
1200 | content: "\f228";
1201 | }
1202 |
1203 | .mdi-deskphone::before {
1204 | content: "\f229";
1205 | }
1206 |
1207 | .mdi-desktop-mac::before {
1208 | content: "\f22a";
1209 | }
1210 |
1211 | .mdi-desktop-tower::before {
1212 | content: "\f22b";
1213 | }
1214 |
1215 | .mdi-details::before {
1216 | content: "\f22c";
1217 | }
1218 |
1219 | .mdi-deviantart::before {
1220 | content: "\f22d";
1221 | }
1222 |
1223 | .mdi-dice::before {
1224 | content: "\f22e";
1225 | }
1226 |
1227 | .mdi-dice-1::before {
1228 | content: "\f22f";
1229 | }
1230 |
1231 | .mdi-dice-2::before {
1232 | content: "\f230";
1233 | }
1234 |
1235 | .mdi-dice-3::before {
1236 | content: "\f231";
1237 | }
1238 |
1239 | .mdi-dice-4::before {
1240 | content: "\f232";
1241 | }
1242 |
1243 | .mdi-dice-5::before {
1244 | content: "\f233";
1245 | }
1246 |
1247 | .mdi-dice-6::before {
1248 | content: "\f234";
1249 | }
1250 |
1251 | .mdi-directions::before {
1252 | content: "\f235";
1253 | }
1254 |
1255 | .mdi-disk-alert::before {
1256 | content: "\f236";
1257 | }
1258 |
1259 | .mdi-disqus::before {
1260 | content: "\f237";
1261 | }
1262 |
1263 | .mdi-disqus-outline::before {
1264 | content: "\f238";
1265 | }
1266 |
1267 | .mdi-dns::before {
1268 | content: "\f239";
1269 | }
1270 |
1271 | .mdi-dots-horizontal::before {
1272 | content: "\f23a";
1273 | }
1274 |
1275 | .mdi-dots-vertical::before {
1276 | content: "\f23b";
1277 | }
1278 |
1279 | .mdi-download::before {
1280 | content: "\f23c";
1281 | }
1282 |
1283 | .mdi-drawing::before {
1284 | content: "\f23d";
1285 | }
1286 |
1287 | .mdi-drawing-box::before {
1288 | content: "\f23e";
1289 | }
1290 |
1291 | .mdi-dribbble::before {
1292 | content: "\f23f";
1293 | }
1294 |
1295 | .mdi-dribbble-box::before {
1296 | content: "\f240";
1297 | }
1298 |
1299 | .mdi-duck::before {
1300 | content: "\f241";
1301 | }
1302 |
1303 | .mdi-earth::before {
1304 | content: "\f242";
1305 | }
1306 |
1307 | .mdi-earth-off::before {
1308 | content: "\f243";
1309 | }
1310 |
1311 | .mdi-elevation-decline::before {
1312 | content: "\f244";
1313 | }
1314 |
1315 | .mdi-elevation-rise::before {
1316 | content: "\f245";
1317 | }
1318 |
1319 | .mdi-email::before {
1320 | content: "\f246";
1321 | }
1322 |
1323 | .mdi-email-outline::before {
1324 | content: "\f247";
1325 | }
1326 |
1327 | .mdi-emoticon::before {
1328 | content: "\f248";
1329 | }
1330 |
1331 | .mdi-emoticon-cool::before {
1332 | content: "\f249";
1333 | }
1334 |
1335 | .mdi-emoticon-devil::before {
1336 | content: "\f24a";
1337 | }
1338 |
1339 | .mdi-emoticon-happy::before {
1340 | content: "\f24b";
1341 | }
1342 |
1343 | .mdi-emoticon-neutral::before {
1344 | content: "\f24c";
1345 | }
1346 |
1347 | .mdi-emoticon-poop::before {
1348 | content: "\f24d";
1349 | }
1350 |
1351 | .mdi-emoticon-sad::before {
1352 | content: "\f24e";
1353 | }
1354 |
1355 | .mdi-emoticon-tongue::before {
1356 | content: "\f24f";
1357 | }
1358 |
1359 | .mdi-eraser::before {
1360 | content: "\f250";
1361 | }
1362 |
1363 | .mdi-etsy::before {
1364 | content: "\f251";
1365 | }
1366 |
1367 | .mdi-evernote::before {
1368 | content: "\f252";
1369 | }
1370 |
1371 | .mdi-exit-to-app::before {
1372 | content: "\f253";
1373 | }
1374 |
1375 | .mdi-eye::before {
1376 | content: "\f254";
1377 | }
1378 |
1379 | .mdi-eye-off::before {
1380 | content: "\f255";
1381 | }
1382 |
1383 | .mdi-eyedropper::before {
1384 | content: "\f256";
1385 | }
1386 |
1387 | .mdi-eyedropper-variant::before {
1388 | content: "\f257";
1389 | }
1390 |
1391 | .mdi-facebook::before {
1392 | content: "\f258";
1393 | }
1394 |
1395 | .mdi-facebook-box::before {
1396 | content: "\f259";
1397 | }
1398 |
1399 | .mdi-facebook-messenger::before {
1400 | content: "\f25a";
1401 | }
1402 |
1403 | .mdi-factory::before {
1404 | content: "\f25b";
1405 | }
1406 |
1407 | .mdi-fast-forward::before {
1408 | content: "\f25c";
1409 | }
1410 |
1411 | .mdi-ferry::before {
1412 | content: "\f25d";
1413 | }
1414 |
1415 | .mdi-file::before {
1416 | content: "\f25e";
1417 | }
1418 |
1419 | .mdi-file-cloud::before {
1420 | content: "\f25f";
1421 | }
1422 |
1423 | .mdi-file-delimited::before {
1424 | content: "\f260";
1425 | }
1426 |
1427 | .mdi-file-document::before {
1428 | content: "\f261";
1429 | }
1430 |
1431 | .mdi-file-document-box::before {
1432 | content: "\f262";
1433 | }
1434 |
1435 | .mdi-file-excel::before {
1436 | content: "\f263";
1437 | }
1438 |
1439 | .mdi-file-excel-box::before {
1440 | content: "\f264";
1441 | }
1442 |
1443 | .mdi-file-find::before {
1444 | content: "\f265";
1445 | }
1446 |
1447 | .mdi-file-image::before {
1448 | content: "\f266";
1449 | }
1450 |
1451 | .mdi-file-image-box::before {
1452 | content: "\f267";
1453 | }
1454 |
1455 | .mdi-file-music::before {
1456 | content: "\f268";
1457 | }
1458 |
1459 | .mdi-file-pdf::before {
1460 | content: "\f269";
1461 | }
1462 |
1463 | .mdi-file-pdf-box::before {
1464 | content: "\f26a";
1465 | }
1466 |
1467 | .mdi-file-powerpoint::before {
1468 | content: "\f26b";
1469 | }
1470 |
1471 | .mdi-file-powerpoint-box::before {
1472 | content: "\f26c";
1473 | }
1474 |
1475 | .mdi-file-presentation-box::before {
1476 | content: "\f26d";
1477 | }
1478 |
1479 | .mdi-file-video::before {
1480 | content: "\f26e";
1481 | }
1482 |
1483 | .mdi-file-word::before {
1484 | content: "\f26f";
1485 | }
1486 |
1487 | .mdi-file-word-box::before {
1488 | content: "\f270";
1489 | }
1490 |
1491 | .mdi-film::before {
1492 | content: "\f271";
1493 | }
1494 |
1495 | .mdi-filmstrip::before {
1496 | content: "\f272";
1497 | }
1498 |
1499 | .mdi-filmstrip-off::before {
1500 | content: "\f273";
1501 | }
1502 |
1503 | .mdi-filter::before {
1504 | content: "\f274";
1505 | }
1506 |
1507 | .mdi-filter-outline::before {
1508 | content: "\f275";
1509 | }
1510 |
1511 | .mdi-filter-remove::before {
1512 | content: "\f276";
1513 | }
1514 |
1515 | .mdi-filter-remove-outline::before {
1516 | content: "\f277";
1517 | }
1518 |
1519 | .mdi-filter-variant::before {
1520 | content: "\f278";
1521 | }
1522 |
1523 | .mdi-fire::before {
1524 | content: "\f279";
1525 | }
1526 |
1527 | .mdi-firefox::before {
1528 | content: "\f27a";
1529 | }
1530 |
1531 | .mdi-fish::before {
1532 | content: "\f27b";
1533 | }
1534 |
1535 | .mdi-flag::before {
1536 | content: "\f27c";
1537 | }
1538 |
1539 | .mdi-flag-checkered::before {
1540 | content: "\f27d";
1541 | }
1542 |
1543 | .mdi-flag-outline::before {
1544 | content: "\f27e";
1545 | }
1546 |
1547 | .mdi-flag-outline-variant::before {
1548 | content: "\f27f";
1549 | }
1550 |
1551 | .mdi-flag-variant::before {
1552 | content: "\f280";
1553 | }
1554 |
1555 | .mdi-flash::before {
1556 | content: "\f281";
1557 | }
1558 |
1559 | .mdi-flash-auto::before {
1560 | content: "\f282";
1561 | }
1562 |
1563 | .mdi-flash-off::before {
1564 | content: "\f283";
1565 | }
1566 |
1567 | .mdi-flip-to-back::before {
1568 | content: "\f284";
1569 | }
1570 |
1571 | .mdi-flip-to-front::before {
1572 | content: "\f285";
1573 | }
1574 |
1575 | .mdi-floppy::before {
1576 | content: "\f286";
1577 | }
1578 |
1579 | .mdi-flower::before {
1580 | content: "\f287";
1581 | }
1582 |
1583 | .mdi-folder::before {
1584 | content: "\f288";
1585 | }
1586 |
1587 | .mdi-folder-account::before {
1588 | content: "\f289";
1589 | }
1590 |
1591 | .mdi-folder-google-drive::before {
1592 | content: "\f28a";
1593 | }
1594 |
1595 | .mdi-folder-image::before {
1596 | content: "\f28b";
1597 | }
1598 |
1599 | .mdi-folder-move::before {
1600 | content: "\f28c";
1601 | }
1602 |
1603 | .mdi-folder-multiple::before {
1604 | content: "\f28d";
1605 | }
1606 |
1607 | .mdi-folder-multiple-image::before {
1608 | content: "\f28e";
1609 | }
1610 |
1611 | .mdi-folder-multiple-outline::before {
1612 | content: "\f28f";
1613 | }
1614 |
1615 | .mdi-folder-outline::before {
1616 | content: "\f290";
1617 | }
1618 |
1619 | .mdi-folder-plus::before {
1620 | content: "\f291";
1621 | }
1622 |
1623 | .mdi-folder-remove::before {
1624 | content: "\f292";
1625 | }
1626 |
1627 | .mdi-food::before {
1628 | content: "\f293";
1629 | }
1630 |
1631 | .mdi-food-apple::before {
1632 | content: "\f294";
1633 | }
1634 |
1635 | .mdi-food-variant::before {
1636 | content: "\f295";
1637 | }
1638 |
1639 | .mdi-format-align-center::before {
1640 | content: "\f296";
1641 | }
1642 |
1643 | .mdi-format-align-justify::before {
1644 | content: "\f297";
1645 | }
1646 |
1647 | .mdi-format-align-left::before {
1648 | content: "\f298";
1649 | }
1650 |
1651 | .mdi-format-align-right::before {
1652 | content: "\f299";
1653 | }
1654 |
1655 | .mdi-format-bold::before {
1656 | content: "\f29a";
1657 | }
1658 |
1659 | .mdi-format-clear::before {
1660 | content: "\f29b";
1661 | }
1662 |
1663 | .mdi-format-color-fill::before {
1664 | content: "\f29c";
1665 | }
1666 |
1667 | .mdi-format-italic::before {
1668 | content: "\f29d";
1669 | }
1670 |
1671 | .mdi-format-line-spacing::before {
1672 | content: "\f29e";
1673 | }
1674 |
1675 | .mdi-format-list-numbers::before {
1676 | content: "\f29f";
1677 | }
1678 |
1679 | .mdi-format-paint::before {
1680 | content: "\f2a0";
1681 | }
1682 |
1683 | .mdi-format-strikethrough::before {
1684 | content: "\f2a1";
1685 | }
1686 |
1687 | .mdi-format-subscript::before {
1688 | content: "\f2a2";
1689 | }
1690 |
1691 | .mdi-format-superscript::before {
1692 | content: "\f2a3";
1693 | }
1694 |
1695 | .mdi-format-underline::before {
1696 | content: "\f2a4";
1697 | }
1698 |
1699 | .mdi-foursquare::before {
1700 | content: "\f2a5";
1701 | }
1702 |
1703 | .mdi-fullscreen::before {
1704 | content: "\f2a6";
1705 | }
1706 |
1707 | .mdi-fullscreen-exit::before {
1708 | content: "\f2a7";
1709 | }
1710 |
1711 | .mdi-gamepad::before {
1712 | content: "\f2a8";
1713 | }
1714 |
1715 | .mdi-gamepad-variant::before {
1716 | content: "\f2a9";
1717 | }
1718 |
1719 | .mdi-gas-station::before {
1720 | content: "\f2aa";
1721 | }
1722 |
1723 | .mdi-gavel::before {
1724 | content: "\f2ab";
1725 | }
1726 |
1727 | .mdi-gender-female::before {
1728 | content: "\f2ac";
1729 | }
1730 |
1731 | .mdi-gender-male::before {
1732 | content: "\f2ad";
1733 | }
1734 |
1735 | .mdi-gender-transgender::before {
1736 | content: "\f2ae";
1737 | }
1738 |
1739 | .mdi-gift::before {
1740 | content: "\f2af";
1741 | }
1742 |
1743 | .mdi-github-box::before {
1744 | content: "\f2b0";
1745 | }
1746 |
1747 | .mdi-github-circle::before {
1748 | content: "\f2b1";
1749 | }
1750 |
1751 | .mdi-gmail::before {
1752 | content: "\f2b2";
1753 | }
1754 |
1755 | .mdi-google::before {
1756 | content: "\f2b3";
1757 | }
1758 |
1759 | .mdi-google-chrome::before {
1760 | content: "\f2b4";
1761 | }
1762 |
1763 | .mdi-google-circles::before {
1764 | content: "\f2b5";
1765 | }
1766 |
1767 | .mdi-google-circles-communities::before {
1768 | content: "\f2b6";
1769 | }
1770 |
1771 | .mdi-google-circles-extended::before {
1772 | content: "\f2b7";
1773 | }
1774 |
1775 | .mdi-google-drive::before {
1776 | content: "\f2b8";
1777 | }
1778 |
1779 | .mdi-google-earth::before {
1780 | content: "\f2b9";
1781 | }
1782 |
1783 | .mdi-google-glass::before {
1784 | content: "\f2ba";
1785 | }
1786 |
1787 | .mdi-google-maps::before {
1788 | content: "\f2bb";
1789 | }
1790 |
1791 | .mdi-google-pages::before {
1792 | content: "\f2bc";
1793 | }
1794 |
1795 | .mdi-google-play::before {
1796 | content: "\f2bd";
1797 | }
1798 |
1799 | .mdi-google-plus::before {
1800 | content: "\f2be";
1801 | }
1802 |
1803 | .mdi-google-plus-box::before {
1804 | content: "\f2bf";
1805 | }
1806 |
1807 | .mdi-guitar-pick::before {
1808 | content: "\f2c0";
1809 | }
1810 |
1811 | .mdi-guitar-pick-outline::before {
1812 | content: "\f2c1";
1813 | }
1814 |
1815 | .mdi-hand-pointing-right::before {
1816 | content: "\f2c2";
1817 | }
1818 |
1819 | .mdi-hanger::before {
1820 | content: "\f2c3";
1821 | }
1822 |
1823 | .mdi-hangouts::before {
1824 | content: "\f2c4";
1825 | }
1826 |
1827 | .mdi-harddisk::before {
1828 | content: "\f2c5";
1829 | }
1830 |
1831 | .mdi-headphones::before {
1832 | content: "\f2c6";
1833 | }
1834 |
1835 | .mdi-headphones-box::before {
1836 | content: "\f2c7";
1837 | }
1838 |
1839 | .mdi-headset::before {
1840 | content: "\f2c8";
1841 | }
1842 |
1843 | .mdi-headset-dock::before {
1844 | content: "\f2c9";
1845 | }
1846 |
1847 | .mdi-heart::before {
1848 | content: "\f2ca";
1849 | }
1850 |
1851 | .mdi-heart-box::before {
1852 | content: "\f2cb";
1853 | }
1854 |
1855 | .mdi-heart-box-outline::before {
1856 | content: "\f2cc";
1857 | }
1858 |
1859 | .mdi-heart-outline::before {
1860 | content: "\f2cd";
1861 | }
1862 |
1863 | .mdi-help::before {
1864 | content: "\f2ce";
1865 | }
1866 |
1867 | .mdi-help-circle::before {
1868 | content: "\f2cf";
1869 | }
1870 |
1871 | .mdi-hexagon::before {
1872 | content: "\f2d0";
1873 | }
1874 |
1875 | .mdi-hexagon-outline::before {
1876 | content: "\f2d1";
1877 | }
1878 |
1879 | .mdi-history::before {
1880 | content: "\f2d2";
1881 | }
1882 |
1883 | .mdi-home::before {
1884 | content: "\f2d3";
1885 | }
1886 |
1887 | .mdi-home-modern::before {
1888 | content: "\f2d4";
1889 | }
1890 |
1891 | .mdi-home-variant::before {
1892 | content: "\f2d5";
1893 | }
1894 |
1895 | .mdi-hospital::before {
1896 | content: "\f2d6";
1897 | }
1898 |
1899 | .mdi-hospital-building::before {
1900 | content: "\f2d7";
1901 | }
1902 |
1903 | .mdi-hospital-marker::before {
1904 | content: "\f2d8";
1905 | }
1906 |
1907 | .mdi-hotel::before {
1908 | content: "\f2d9";
1909 | }
1910 |
1911 | .mdi-houzz::before {
1912 | content: "\f2da";
1913 | }
1914 |
1915 | .mdi-houzz-box::before {
1916 | content: "\f2db";
1917 | }
1918 |
1919 | .mdi-human::before {
1920 | content: "\f2dc";
1921 | }
1922 |
1923 | .mdi-human-child::before {
1924 | content: "\f2dd";
1925 | }
1926 |
1927 | .mdi-human-male-female::before {
1928 | content: "\f2de";
1929 | }
1930 |
1931 | .mdi-image-album::before {
1932 | content: "\f2df";
1933 | }
1934 |
1935 | .mdi-image-area::before {
1936 | content: "\f2e0";
1937 | }
1938 |
1939 | .mdi-image-area-close::before {
1940 | content: "\f2e1";
1941 | }
1942 |
1943 | .mdi-image-filter::before {
1944 | content: "\f2e2";
1945 | }
1946 |
1947 | .mdi-image-filter-black-white::before {
1948 | content: "\f2e3";
1949 | }
1950 |
1951 | .mdi-image-filter-center-focus::before {
1952 | content: "\f2e4";
1953 | }
1954 |
1955 | .mdi-image-filter-drama::before {
1956 | content: "\f2e5";
1957 | }
1958 |
1959 | .mdi-image-filter-frames::before {
1960 | content: "\f2e6";
1961 | }
1962 |
1963 | .mdi-image-filter-hdr::before {
1964 | content: "\f2e7";
1965 | }
1966 |
1967 | .mdi-image-filter-none::before {
1968 | content: "\f2e8";
1969 | }
1970 |
1971 | .mdi-image-filter-tilt-shift::before {
1972 | content: "\f2e9";
1973 | }
1974 |
1975 | .mdi-image-filter-vintage::before {
1976 | content: "\f2ea";
1977 | }
1978 |
1979 | .mdi-information::before {
1980 | content: "\f2eb";
1981 | }
1982 |
1983 | .mdi-information-outline::before {
1984 | content: "\f2ec";
1985 | }
1986 |
1987 | .mdi-instagram::before {
1988 | content: "\f2ed";
1989 | }
1990 |
1991 | .mdi-instapaper::before {
1992 | content: "\f2ee";
1993 | }
1994 |
1995 | .mdi-internet-explorer::before {
1996 | content: "\f2ef";
1997 | }
1998 |
1999 | .mdi-invert-colors::before {
2000 | content: "\f2f0";
2001 | }
2002 |
2003 | .mdi-key::before {
2004 | content: "\f2f1";
2005 | }
2006 |
2007 | .mdi-key-change::before {
2008 | content: "\f2f2";
2009 | }
2010 |
2011 | .mdi-key-minus::before {
2012 | content: "\f2f3";
2013 | }
2014 |
2015 | .mdi-key-plus::before {
2016 | content: "\f2f4";
2017 | }
2018 |
2019 | .mdi-key-remove::before {
2020 | content: "\f2f5";
2021 | }
2022 |
2023 | .mdi-key-variant::before {
2024 | content: "\f2f6";
2025 | }
2026 |
2027 | .mdi-keyboard::before {
2028 | content: "\f2f7";
2029 | }
2030 |
2031 | .mdi-keyboard-backspace::before {
2032 | content: "\f2f8";
2033 | }
2034 |
2035 | .mdi-keyboard-caps::before {
2036 | content: "\f2f9";
2037 | }
2038 |
2039 | .mdi-keyboard-close::before {
2040 | content: "\f2fa";
2041 | }
2042 |
2043 | .mdi-keyboard-return::before {
2044 | content: "\f2fb";
2045 | }
2046 |
2047 | .mdi-keyboard-tab::before {
2048 | content: "\f2fc";
2049 | }
2050 |
2051 | .mdi-label::before {
2052 | content: "\f2fd";
2053 | }
2054 |
2055 | .mdi-label-outline::before {
2056 | content: "\f2fe";
2057 | }
2058 |
2059 | .mdi-laptop::before {
2060 | content: "\f2ff";
2061 | }
2062 |
2063 | .mdi-laptop-chromebook::before {
2064 | content: "\f300";
2065 | }
2066 |
2067 | .mdi-laptop-mac::before {
2068 | content: "\f301";
2069 | }
2070 |
2071 | .mdi-laptop-windows::before {
2072 | content: "\f302";
2073 | }
2074 |
2075 | .mdi-lastfm::before {
2076 | content: "\f303";
2077 | }
2078 |
2079 | .mdi-launch::before {
2080 | content: "\f304";
2081 | }
2082 |
2083 | .mdi-leaf::before {
2084 | content: "\f305";
2085 | }
2086 |
2087 | .mdi-library::before {
2088 | content: "\f306";
2089 | }
2090 |
2091 | .mdi-library-books::before {
2092 | content: "\f307";
2093 | }
2094 |
2095 | .mdi-library-music::before {
2096 | content: "\f308";
2097 | }
2098 |
2099 | .mdi-library-plus::before {
2100 | content: "\f309";
2101 | }
2102 |
2103 | .mdi-lightbulb::before {
2104 | content: "\f30a";
2105 | }
2106 |
2107 | .mdi-link::before {
2108 | content: "\f30b";
2109 | }
2110 |
2111 | .mdi-linkedin::before {
2112 | content: "\f30c";
2113 | }
2114 |
2115 | .mdi-linux::before {
2116 | content: "\f30d";
2117 | }
2118 |
2119 | .mdi-lock::before {
2120 | content: "\f30e";
2121 | }
2122 |
2123 | .mdi-lock-open::before {
2124 | content: "\f30f";
2125 | }
2126 |
2127 | .mdi-lock-open-outline::before {
2128 | content: "\f310";
2129 | }
2130 |
2131 | .mdi-lock-outline::before {
2132 | content: "\f311";
2133 | }
2134 |
2135 | .mdi-login::before {
2136 | content: "\f312";
2137 | }
2138 |
2139 | .mdi-logout::before {
2140 | content: "\f313";
2141 | }
2142 |
2143 | .mdi-looks::before {
2144 | content: "\f314";
2145 | }
2146 |
2147 | .mdi-loupe::before {
2148 | content: "\f315";
2149 | }
2150 |
2151 | .mdi-lumx::before {
2152 | content: "\f316";
2153 | }
2154 |
2155 | .mdi-magnify::before {
2156 | content: "\f317";
2157 | }
2158 |
2159 | .mdi-magnify-minus::before {
2160 | content: "\f318";
2161 | }
2162 |
2163 | .mdi-magnify-plus::before {
2164 | content: "\f319";
2165 | }
2166 |
2167 | .mdi-map::before {
2168 | content: "\f31a";
2169 | }
2170 |
2171 | .mdi-map-marker::before {
2172 | content: "\f31b";
2173 | }
2174 |
2175 | .mdi-map-marker-circle::before {
2176 | content: "\f31c";
2177 | }
2178 |
2179 | .mdi-map-marker-off::before {
2180 | content: "\f31d";
2181 | }
2182 |
2183 | .mdi-map-marker-radius::before {
2184 | content: "\f31e";
2185 | }
2186 |
2187 | .mdi-marker-check::before {
2188 | content: "\f31f";
2189 | }
2190 |
2191 | .mdi-martini::before {
2192 | content: "\f320";
2193 | }
2194 |
2195 | .mdi-material-ui::before {
2196 | content: "\f321";
2197 | }
2198 |
2199 | .mdi-math-compass::before {
2200 | content: "\f322";
2201 | }
2202 |
2203 | .mdi-memory::before {
2204 | content: "\f323";
2205 | }
2206 |
2207 | .mdi-menu::before {
2208 | content: "\f324";
2209 | }
2210 |
2211 | .mdi-menu-down::before {
2212 | content: "\f325";
2213 | }
2214 |
2215 | .mdi-menu-up::before {
2216 | content: "\f326";
2217 | }
2218 |
2219 | .mdi-message::before {
2220 | content: "\f327";
2221 | }
2222 |
2223 | .mdi-message-alert::before {
2224 | content: "\f328";
2225 | }
2226 |
2227 | .mdi-message-draw::before {
2228 | content: "\f329";
2229 | }
2230 |
2231 | .mdi-message-image::before {
2232 | content: "\f32a";
2233 | }
2234 |
2235 | .mdi-message-processing::before {
2236 | content: "\f32b";
2237 | }
2238 |
2239 | .mdi-message-reply::before {
2240 | content: "\f32c";
2241 | }
2242 |
2243 | .mdi-message-video::before {
2244 | content: "\f32d";
2245 | }
2246 |
2247 | .mdi-microphone::before {
2248 | content: "\f32e";
2249 | }
2250 |
2251 | .mdi-microphone-dots::before {
2252 | content: "\f32f";
2253 | }
2254 |
2255 | .mdi-microphone-off::before {
2256 | content: "\f330";
2257 | }
2258 |
2259 | .mdi-microphone-outline::before {
2260 | content: "\f331";
2261 | }
2262 |
2263 | .mdi-microphone-settings::before {
2264 | content: "\f332";
2265 | }
2266 |
2267 | .mdi-minus::before {
2268 | content: "\f333";
2269 | }
2270 |
2271 | .mdi-minus-box::before {
2272 | content: "\f334";
2273 | }
2274 |
2275 | .mdi-minus-circle::before {
2276 | content: "\f335";
2277 | }
2278 |
2279 | .mdi-minus-circle-outline::before {
2280 | content: "\f336";
2281 | }
2282 |
2283 | .mdi-minus-network::before {
2284 | content: "\f337";
2285 | }
2286 |
2287 | .mdi-monitor::before {
2288 | content: "\f338";
2289 | }
2290 |
2291 | .mdi-monitor-multiple::before {
2292 | content: "\f339";
2293 | }
2294 |
2295 | .mdi-more::before {
2296 | content: "\f33a";
2297 | }
2298 |
2299 | .mdi-motorbike::before {
2300 | content: "\f33b";
2301 | }
2302 |
2303 | .mdi-mouse::before {
2304 | content: "\f33c";
2305 | }
2306 |
2307 | .mdi-movie::before {
2308 | content: "\f33d";
2309 | }
2310 |
2311 | .mdi-music-box::before {
2312 | content: "\f33e";
2313 | }
2314 |
2315 | .mdi-music-box-outline::before {
2316 | content: "\f33f";
2317 | }
2318 |
2319 | .mdi-nature::before {
2320 | content: "\f340";
2321 | }
2322 |
2323 | .mdi-nature-people::before {
2324 | content: "\f341";
2325 | }
2326 |
2327 | .mdi-navigation::before {
2328 | content: "\f342";
2329 | }
2330 |
2331 | .mdi-needle::before {
2332 | content: "\f343";
2333 | }
2334 |
2335 | .mdi-nest-protect::before {
2336 | content: "\f344";
2337 | }
2338 |
2339 | .mdi-nest-thermostat::before {
2340 | content: "\f345";
2341 | }
2342 |
2343 | .mdi-newspaper::before {
2344 | content: "\f346";
2345 | }
2346 |
2347 | .mdi-nfc::before {
2348 | content: "\f347";
2349 | }
2350 |
2351 | .mdi-nfc-variant::before {
2352 | content: "\f348";
2353 | }
2354 |
2355 | .mdi-numeric::before {
2356 | content: "\f349";
2357 | }
2358 |
2359 | .mdi-numeric-0-box::before {
2360 | content: "\f34a";
2361 | }
2362 |
2363 | .mdi-numeric-0-box-multiple-outline::before {
2364 | content: "\f34b";
2365 | }
2366 |
2367 | .mdi-numeric-0-box-outline::before {
2368 | content: "\f34c";
2369 | }
2370 |
2371 | .mdi-numeric-1-box::before {
2372 | content: "\f34d";
2373 | }
2374 |
2375 | .mdi-numeric-1-box-multiple-outline::before {
2376 | content: "\f34e";
2377 | }
2378 |
2379 | .mdi-numeric-1-box-outline::before {
2380 | content: "\f34f";
2381 | }
2382 |
2383 | .mdi-numeric-2-box::before {
2384 | content: "\f350";
2385 | }
2386 |
2387 | .mdi-numeric-2-box-multiple-outline::before {
2388 | content: "\f351";
2389 | }
2390 |
2391 | .mdi-numeric-2-box-outline::before {
2392 | content: "\f352";
2393 | }
2394 |
2395 | .mdi-numeric-3-box::before {
2396 | content: "\f353";
2397 | }
2398 |
2399 | .mdi-numeric-3-box-multiple-outline::before {
2400 | content: "\f354";
2401 | }
2402 |
2403 | .mdi-numeric-3-box-outline::before {
2404 | content: "\f355";
2405 | }
2406 |
2407 | .mdi-numeric-4-box::before {
2408 | content: "\f356";
2409 | }
2410 |
2411 | .mdi-numeric-4-box-multiple-outline::before {
2412 | content: "\f357";
2413 | }
2414 |
2415 | .mdi-numeric-4-box-outline::before {
2416 | content: "\f358";
2417 | }
2418 |
2419 | .mdi-numeric-5-box::before {
2420 | content: "\f359";
2421 | }
2422 |
2423 | .mdi-numeric-5-box-multiple-outline::before {
2424 | content: "\f35a";
2425 | }
2426 |
2427 | .mdi-numeric-5-box-outline::before {
2428 | content: "\f35b";
2429 | }
2430 |
2431 | .mdi-numeric-6-box::before {
2432 | content: "\f35c";
2433 | }
2434 |
2435 | .mdi-numeric-6-box-multiple-outline::before {
2436 | content: "\f35d";
2437 | }
2438 |
2439 | .mdi-numeric-6-box-outline::before {
2440 | content: "\f35e";
2441 | }
2442 |
2443 | .mdi-numeric-7-box::before {
2444 | content: "\f35f";
2445 | }
2446 |
2447 | .mdi-numeric-7-box-multiple-outline::before {
2448 | content: "\f360";
2449 | }
2450 |
2451 | .mdi-numeric-7-box-outline::before {
2452 | content: "\f361";
2453 | }
2454 |
2455 | .mdi-numeric-8-box::before {
2456 | content: "\f362";
2457 | }
2458 |
2459 | .mdi-numeric-8-box-multiple-outline::before {
2460 | content: "\f363";
2461 | }
2462 |
2463 | .mdi-numeric-8-box-outline::before {
2464 | content: "\f364";
2465 | }
2466 |
2467 | .mdi-numeric-9-box::before {
2468 | content: "\f365";
2469 | }
2470 |
2471 | .mdi-numeric-9-box-multiple-outline::before {
2472 | content: "\f366";
2473 | }
2474 |
2475 | .mdi-numeric-9-box-outline::before {
2476 | content: "\f367";
2477 | }
2478 |
2479 | .mdi-numeric-9-plus-box::before {
2480 | content: "\f368";
2481 | }
2482 |
2483 | .mdi-numeric-9-plus-box-multiple-outline::before {
2484 | content: "\f369";
2485 | }
2486 |
2487 | .mdi-numeric-9-plus-box-outline::before {
2488 | content: "\f36a";
2489 | }
2490 |
2491 | .mdi-nutriton::before {
2492 | content: "\f36b";
2493 | }
2494 |
2495 | .mdi-oil::before {
2496 | content: "\f36c";
2497 | }
2498 |
2499 | .mdi-open-in-app::before {
2500 | content: "\f36d";
2501 | }
2502 |
2503 | .mdi-ornament::before {
2504 | content: "\f36e";
2505 | }
2506 |
2507 | .mdi-ornament-variant::before {
2508 | content: "\f36f";
2509 | }
2510 |
2511 | .mdi-package::before {
2512 | content: "\f370";
2513 | }
2514 |
2515 | .mdi-package-down::before {
2516 | content: "\f371";
2517 | }
2518 |
2519 | .mdi-package-up::before {
2520 | content: "\f372";
2521 | }
2522 |
2523 | .mdi-palette::before {
2524 | content: "\f373";
2525 | }
2526 |
2527 | .mdi-panda::before {
2528 | content: "\f374";
2529 | }
2530 |
2531 | .mdi-pandora::before {
2532 | content: "\f375";
2533 | }
2534 |
2535 | .mdi-panorama::before {
2536 | content: "\f376";
2537 | }
2538 |
2539 | .mdi-panorama-fisheye::before {
2540 | content: "\f377";
2541 | }
2542 |
2543 | .mdi-panorama-horizontal::before {
2544 | content: "\f378";
2545 | }
2546 |
2547 | .mdi-panorama-vertical::before {
2548 | content: "\f379";
2549 | }
2550 |
2551 | .mdi-panorama-wide-angle::before {
2552 | content: "\f37a";
2553 | }
2554 |
2555 | .mdi-paper-cut-vertical::before {
2556 | content: "\f37b";
2557 | }
2558 |
2559 | .mdi-paperclip::before {
2560 | content: "\f37c";
2561 | }
2562 |
2563 | .mdi-parking::before {
2564 | content: "\f37d";
2565 | }
2566 |
2567 | .mdi-pause::before {
2568 | content: "\f37e";
2569 | }
2570 |
2571 | .mdi-pause-circle::before {
2572 | content: "\f37f";
2573 | }
2574 |
2575 | .mdi-pause-circle-outline::before {
2576 | content: "\f380";
2577 | }
2578 |
2579 | .mdi-pause-octagon::before {
2580 | content: "\f381";
2581 | }
2582 |
2583 | .mdi-pause-octagon-outline::before {
2584 | content: "\f382";
2585 | }
2586 |
2587 | .mdi-pencil::before {
2588 | content: "\f383";
2589 | }
2590 |
2591 | .mdi-pencil-box::before {
2592 | content: "\f384";
2593 | }
2594 |
2595 | .mdi-pencil-box-outline::before {
2596 | content: "\f385";
2597 | }
2598 |
2599 | .mdi-pharmacy::before {
2600 | content: "\f386";
2601 | }
2602 |
2603 | .mdi-phone::before {
2604 | content: "\f387";
2605 | }
2606 |
2607 | .mdi-phone-bluetooth::before {
2608 | content: "\f388";
2609 | }
2610 |
2611 | .mdi-phone-forward::before {
2612 | content: "\f389";
2613 | }
2614 |
2615 | .mdi-phone-hangup::before {
2616 | content: "\f38a";
2617 | }
2618 |
2619 | .mdi-phone-in-talk::before {
2620 | content: "\f38b";
2621 | }
2622 |
2623 | .mdi-phone-locked::before {
2624 | content: "\f38c";
2625 | }
2626 |
2627 | .mdi-phone-missed::before {
2628 | content: "\f38d";
2629 | }
2630 |
2631 | .mdi-phone-paused::before {
2632 | content: "\f38e";
2633 | }
2634 |
2635 | .mdi-phone-settings::before {
2636 | content: "\f38f";
2637 | }
2638 |
2639 | .mdi-pig::before {
2640 | content: "\f390";
2641 | }
2642 |
2643 | .mdi-pill::before {
2644 | content: "\f391";
2645 | }
2646 |
2647 | .mdi-pin::before {
2648 | content: "\f392";
2649 | }
2650 |
2651 | .mdi-pin-off::before {
2652 | content: "\f393";
2653 | }
2654 |
2655 | .mdi-pine-tree::before {
2656 | content: "\f394";
2657 | }
2658 |
2659 | .mdi-pine-tree-box::before {
2660 | content: "\f395";
2661 | }
2662 |
2663 | .mdi-pinterest::before {
2664 | content: "\f396";
2665 | }
2666 |
2667 | .mdi-pizza::before {
2668 | content: "\f397";
2669 | }
2670 |
2671 | .mdi-play::before {
2672 | content: "\f398";
2673 | }
2674 |
2675 | .mdi-play-box-outline::before {
2676 | content: "\f399";
2677 | }
2678 |
2679 | .mdi-play-circle::before {
2680 | content: "\f39a";
2681 | }
2682 |
2683 | .mdi-play-circle-outline::before {
2684 | content: "\f39b";
2685 | }
2686 |
2687 | .mdi-playlist-plus::before {
2688 | content: "\f39c";
2689 | }
2690 |
2691 | .mdi-plus::before {
2692 | content: "\f39d";
2693 | }
2694 |
2695 | .mdi-plus-box::before {
2696 | content: "\f39e";
2697 | }
2698 |
2699 | .mdi-plus-circle::before {
2700 | content: "\f39f";
2701 | }
2702 |
2703 | .mdi-plus-circle-outline::before {
2704 | content: "\f3a0";
2705 | }
2706 |
2707 | .mdi-plus-network::before {
2708 | content: "\f3a1";
2709 | }
2710 |
2711 | .mdi-plus-one::before {
2712 | content: "\f3a2";
2713 | }
2714 |
2715 | .mdi-pocket::before {
2716 | content: "\f3a3";
2717 | }
2718 |
2719 | .mdi-poll::before {
2720 | content: "\f3a4";
2721 | }
2722 |
2723 | .mdi-poll-box::before {
2724 | content: "\f3a5";
2725 | }
2726 |
2727 | .mdi-polymer::before {
2728 | content: "\f3a6";
2729 | }
2730 |
2731 | .mdi-popcorn::before {
2732 | content: "\f3a7";
2733 | }
2734 |
2735 | .mdi-power::before {
2736 | content: "\f3a8";
2737 | }
2738 |
2739 | .mdi-power-settings::before {
2740 | content: "\f3a9";
2741 | }
2742 |
2743 | .mdi-presentation::before {
2744 | content: "\f3aa";
2745 | }
2746 |
2747 | .mdi-printer::before {
2748 | content: "\f3ab";
2749 | }
2750 |
2751 | .mdi-puzzle::before {
2752 | content: "\f3ac";
2753 | }
2754 |
2755 | .mdi-qrcode::before {
2756 | content: "\f3ad";
2757 | }
2758 |
2759 | .mdi-quality-high::before {
2760 | content: "\f3ae";
2761 | }
2762 |
2763 | .mdi-radiator::before {
2764 | content: "\f3af";
2765 | }
2766 |
2767 | .mdi-radioactive::before {
2768 | content: "\f3b0";
2769 | }
2770 |
2771 | .mdi-radiobox-blank::before {
2772 | content: "\f3b1";
2773 | }
2774 |
2775 | .mdi-radiobox-marked::before {
2776 | content: "\f3b2";
2777 | }
2778 |
2779 | .mdi-rdio::before {
2780 | content: "\f3b3";
2781 | }
2782 |
2783 | .mdi-read::before {
2784 | content: "\f3b4";
2785 | }
2786 |
2787 | .mdi-readability::before {
2788 | content: "\f3b5";
2789 | }
2790 |
2791 | .mdi-receipt::before {
2792 | content: "\f3b6";
2793 | }
2794 |
2795 | .mdi-recycle::before {
2796 | content: "\f3b7";
2797 | }
2798 |
2799 | .mdi-reddit::before {
2800 | content: "\f3b8";
2801 | }
2802 |
2803 | .mdi-redo::before {
2804 | content: "\f3b9";
2805 | }
2806 |
2807 | .mdi-redo-variant::before {
2808 | content: "\f3ba";
2809 | }
2810 |
2811 | .mdi-refresh::before {
2812 | content: "\f3bb";
2813 | }
2814 |
2815 | .mdi-relative-scale::before {
2816 | content: "\f3bc";
2817 | }
2818 |
2819 | .mdi-reload::before {
2820 | content: "\f3bd";
2821 | }
2822 |
2823 | .mdi-remote::before {
2824 | content: "\f3be";
2825 | }
2826 |
2827 | .mdi-rename-box::before {
2828 | content: "\f3bf";
2829 | }
2830 |
2831 | .mdi-repeat::before {
2832 | content: "\f3c0";
2833 | }
2834 |
2835 | .mdi-repeat-once::before {
2836 | content: "\f3c1";
2837 | }
2838 |
2839 | .mdi-replay::before {
2840 | content: "\f3c2";
2841 | }
2842 |
2843 | .mdi-reply::before {
2844 | content: "\f3c3";
2845 | }
2846 |
2847 | .mdi-reply-all::before {
2848 | content: "\f3c4";
2849 | }
2850 |
2851 | .mdi-responsive::before {
2852 | content: "\f3c5";
2853 | }
2854 |
2855 | .mdi-rewind::before {
2856 | content: "\f3c6";
2857 | }
2858 |
2859 | .mdi-ribbon::before {
2860 | content: "\f3c7";
2861 | }
2862 |
2863 | .mdi-rotate-3d::before {
2864 | content: "\f3c8";
2865 | }
2866 |
2867 | .mdi-rotate-left::before {
2868 | content: "\f3c9";
2869 | }
2870 |
2871 | .mdi-rotate-left-variant::before {
2872 | content: "\f3ca";
2873 | }
2874 |
2875 | .mdi-rotate-right::before {
2876 | content: "\f3cb";
2877 | }
2878 |
2879 | .mdi-rotate-right-variant::before {
2880 | content: "\f3cc";
2881 | }
2882 |
2883 | .mdi-routes::before {
2884 | content: "\f3cd";
2885 | }
2886 |
2887 | .mdi-rss::before {
2888 | content: "\f3ce";
2889 | }
2890 |
2891 | .mdi-rss-box::before {
2892 | content: "\f3cf";
2893 | }
2894 |
2895 | .mdi-run::before {
2896 | content: "\f3d0";
2897 | }
2898 |
2899 | .mdi-satellite::before {
2900 | content: "\f3d1";
2901 | }
2902 |
2903 | .mdi-school::before {
2904 | content: "\f3d2";
2905 | }
2906 |
2907 | .mdi-script::before {
2908 | content: "\f3d3";
2909 | }
2910 |
2911 | .mdi-sd::before {
2912 | content: "\f3d4";
2913 | }
2914 |
2915 | .mdi-security::before {
2916 | content: "\f3d5";
2917 | }
2918 |
2919 | .mdi-security-network::before {
2920 | content: "\f3d6";
2921 | }
2922 |
2923 | .mdi-send::before {
2924 | content: "\f3d7";
2925 | }
2926 |
2927 | .mdi-server::before {
2928 | content: "\f3d8";
2929 | }
2930 |
2931 | .mdi-server-minus::before {
2932 | content: "\f3d9";
2933 | }
2934 |
2935 | .mdi-server-network::before {
2936 | content: "\f3da";
2937 | }
2938 |
2939 | .mdi-server-network-off::before {
2940 | content: "\f3db";
2941 | }
2942 |
2943 | .mdi-server-off::before {
2944 | content: "\f3dc";
2945 | }
2946 |
2947 | .mdi-server-plus::before {
2948 | content: "\f3dd";
2949 | }
2950 |
2951 | .mdi-server-remove::before {
2952 | content: "\f3de";
2953 | }
2954 |
2955 | .mdi-server-security::before {
2956 | content: "\f3df";
2957 | }
2958 |
2959 | .mdi-settings::before {
2960 | content: "\f3e0";
2961 | }
2962 |
2963 | .mdi-settings-box::before {
2964 | content: "\f3e1";
2965 | }
2966 |
2967 | .mdi-shape-plus::before {
2968 | content: "\f3e2";
2969 | }
2970 |
2971 | .mdi-share::before {
2972 | content: "\f3e3";
2973 | }
2974 |
2975 | .mdi-share-variant::before {
2976 | content: "\f3e4";
2977 | }
2978 |
2979 | .mdi-shopping::before {
2980 | content: "\f3e5";
2981 | }
2982 |
2983 | .mdi-shopping-music::before {
2984 | content: "\f3e6";
2985 | }
2986 |
2987 | .mdi-shuffle::before {
2988 | content: "\f3e7";
2989 | }
2990 |
2991 | .mdi-sign-caution::before {
2992 | content: "\f3e8";
2993 | }
2994 |
2995 | .mdi-silverware::before {
2996 | content: "\f3e9";
2997 | }
2998 |
2999 | .mdi-silverware-fork::before {
3000 | content: "\f3ea";
3001 | }
3002 |
3003 | .mdi-silverware-spoon::before {
3004 | content: "\f3eb";
3005 | }
3006 |
3007 | .mdi-silverware-variant::before {
3008 | content: "\f3ec";
3009 | }
3010 |
3011 | .mdi-sim-alert::before {
3012 | content: "\f3ed";
3013 | }
3014 |
3015 | .mdi-skip-next::before {
3016 | content: "\f3ee";
3017 | }
3018 |
3019 | .mdi-skip-previous::before {
3020 | content: "\f3ef";
3021 | }
3022 |
3023 | .mdi-snowman::before {
3024 | content: "\f3f0";
3025 | }
3026 |
3027 | .mdi-sort::before {
3028 | content: "\f3f1";
3029 | }
3030 |
3031 | .mdi-sort-alphabetical::before {
3032 | content: "\f3f2";
3033 | }
3034 |
3035 | .mdi-sort-ascending::before {
3036 | content: "\f3f3";
3037 | }
3038 |
3039 | .mdi-sort-descending::before {
3040 | content: "\f3f4";
3041 | }
3042 |
3043 | .mdi-sort-numeric::before {
3044 | content: "\f3f5";
3045 | }
3046 |
3047 | .mdi-sort-variant::before {
3048 | content: "\f3f6";
3049 | }
3050 |
3051 | .mdi-soundcloud::before {
3052 | content: "\f3f7";
3053 | }
3054 |
3055 | .mdi-source-fork::before {
3056 | content: "\f3f8";
3057 | }
3058 |
3059 | .mdi-source-pull::before {
3060 | content: "\f3f9";
3061 | }
3062 |
3063 | .mdi-speaker::before {
3064 | content: "\f3fa";
3065 | }
3066 |
3067 | .mdi-speaker-off::before {
3068 | content: "\f3fb";
3069 | }
3070 |
3071 | .mdi-speedometer::before {
3072 | content: "\f3fc";
3073 | }
3074 |
3075 | .mdi-spellcheck::before {
3076 | content: "\f3fd";
3077 | }
3078 |
3079 | .mdi-spotify::before {
3080 | content: "\f3fe";
3081 | }
3082 |
3083 | .mdi-spotlight::before {
3084 | content: "\f3ff";
3085 | }
3086 |
3087 | .mdi-spotlight-beam::before {
3088 | content: "\f400";
3089 | }
3090 |
3091 | .mdi-star::before {
3092 | content: "\f401";
3093 | }
3094 |
3095 | .mdi-star-circle::before {
3096 | content: "\f402";
3097 | }
3098 |
3099 | .mdi-star-half::before {
3100 | content: "\f403";
3101 | }
3102 |
3103 | .mdi-star-outline::before {
3104 | content: "\f404";
3105 | }
3106 |
3107 | .mdi-stocking::before {
3108 | content: "\f405";
3109 | }
3110 |
3111 | .mdi-stop::before {
3112 | content: "\f406";
3113 | }
3114 |
3115 | .mdi-store::before {
3116 | content: "\f407";
3117 | }
3118 |
3119 | .mdi-store-24-hour::before {
3120 | content: "\f408";
3121 | }
3122 |
3123 | .mdi-stove::before {
3124 | content: "\f409";
3125 | }
3126 |
3127 | .mdi-subway::before {
3128 | content: "\f40a";
3129 | }
3130 |
3131 | .mdi-swap-horizontal::before {
3132 | content: "\f40b";
3133 | }
3134 |
3135 | .mdi-swap-vertical::before {
3136 | content: "\f40c";
3137 | }
3138 |
3139 | .mdi-swim::before {
3140 | content: "\f40d";
3141 | }
3142 |
3143 | .mdi-sword::before {
3144 | content: "\f40e";
3145 | }
3146 |
3147 | .mdi-sync::before {
3148 | content: "\f40f";
3149 | }
3150 |
3151 | .mdi-sync-alert::before {
3152 | content: "\f410";
3153 | }
3154 |
3155 | .mdi-sync-off::before {
3156 | content: "\f411";
3157 | }
3158 |
3159 | .mdi-tab::before {
3160 | content: "\f412";
3161 | }
3162 |
3163 | .mdi-tab-unselected::before {
3164 | content: "\f413";
3165 | }
3166 |
3167 | .mdi-table::before {
3168 | content: "\f414";
3169 | }
3170 |
3171 | .mdi-tablet::before {
3172 | content: "\f415";
3173 | }
3174 |
3175 | .mdi-tablet-android::before {
3176 | content: "\f416";
3177 | }
3178 |
3179 | .mdi-tablet-ipad::before {
3180 | content: "\f417";
3181 | }
3182 |
3183 | .mdi-tag::before {
3184 | content: "\f418";
3185 | }
3186 |
3187 | .mdi-tag-faces::before {
3188 | content: "\f419";
3189 | }
3190 |
3191 | .mdi-tag-outline::before {
3192 | content: "\f41a";
3193 | }
3194 |
3195 | .mdi-tag-text-outline::before {
3196 | content: "\f41b";
3197 | }
3198 |
3199 | .mdi-taxi::before {
3200 | content: "\f41c";
3201 | }
3202 |
3203 | .mdi-television::before {
3204 | content: "\f41d";
3205 | }
3206 |
3207 | .mdi-television-guide::before {
3208 | content: "\f41e";
3209 | }
3210 |
3211 | .mdi-temperature-celsius::before {
3212 | content: "\f41f";
3213 | }
3214 |
3215 | .mdi-temperature-fahrenheit::before {
3216 | content: "\f420";
3217 | }
3218 |
3219 | .mdi-temperature-kelvin::before {
3220 | content: "\f421";
3221 | }
3222 |
3223 | .mdi-tent::before {
3224 | content: "\f422";
3225 | }
3226 |
3227 | .mdi-terrain::before {
3228 | content: "\f423";
3229 | }
3230 |
3231 | .mdi-texture::before {
3232 | content: "\f424";
3233 | }
3234 |
3235 | .mdi-theater::before {
3236 | content: "\f425";
3237 | }
3238 |
3239 | .mdi-thermometer::before {
3240 | content: "\f426";
3241 | }
3242 |
3243 | .mdi-thermometer-lines::before {
3244 | content: "\f427";
3245 | }
3246 |
3247 | .mdi-thumb-down::before {
3248 | content: "\f428";
3249 | }
3250 |
3251 | .mdi-thumb-up::before {
3252 | content: "\f429";
3253 | }
3254 |
3255 | .mdi-thumbs-up-down::before {
3256 | content: "\f42a";
3257 | }
3258 |
3259 | .mdi-ticket::before {
3260 | content: "\f42b";
3261 | }
3262 |
3263 | .mdi-ticket-account::before {
3264 | content: "\f42c";
3265 | }
3266 |
3267 | .mdi-tie::before {
3268 | content: "\f42d";
3269 | }
3270 |
3271 | .mdi-timelapse::before {
3272 | content: "\f42e";
3273 | }
3274 |
3275 | .mdi-timer::before {
3276 | content: "\f42f";
3277 | }
3278 |
3279 | .mdi-timer-10::before {
3280 | content: "\f430";
3281 | }
3282 |
3283 | .mdi-timer-3::before {
3284 | content: "\f431";
3285 | }
3286 |
3287 | .mdi-timer-off::before {
3288 | content: "\f432";
3289 | }
3290 |
3291 | .mdi-timer-sand::before {
3292 | content: "\f433";
3293 | }
3294 |
3295 | .mdi-timetable::before {
3296 | content: "\f434";
3297 | }
3298 |
3299 | .mdi-toggle-switch::before {
3300 | content: "\f435";
3301 | }
3302 |
3303 | .mdi-toggle-switch-off::before {
3304 | content: "\f436";
3305 | }
3306 |
3307 | .mdi-tooltip::before {
3308 | content: "\f437";
3309 | }
3310 |
3311 | .mdi-tooltip-edit::before {
3312 | content: "\f438";
3313 | }
3314 |
3315 | .mdi-tooltip-image::before {
3316 | content: "\f439";
3317 | }
3318 |
3319 | .mdi-tooltip-outline::before {
3320 | content: "\f43a";
3321 | }
3322 |
3323 | .mdi-tooltip-text::before {
3324 | content: "\f43b";
3325 | }
3326 |
3327 | .mdi-tor::before {
3328 | content: "\f43c";
3329 | }
3330 |
3331 | .mdi-traffic-light::before {
3332 | content: "\f43d";
3333 | }
3334 |
3335 | .mdi-train::before {
3336 | content: "\f43e";
3337 | }
3338 |
3339 | .mdi-tram::before {
3340 | content: "\f43f";
3341 | }
3342 |
3343 | .mdi-transcribe::before {
3344 | content: "\f440";
3345 | }
3346 |
3347 | .mdi-transcribe-close::before {
3348 | content: "\f441";
3349 | }
3350 |
3351 | .mdi-trending-down::before {
3352 | content: "\f442";
3353 | }
3354 |
3355 | .mdi-trending-neutral::before {
3356 | content: "\f443";
3357 | }
3358 |
3359 | .mdi-trending-up::before {
3360 | content: "\f444";
3361 | }
3362 |
3363 | .mdi-trophy::before {
3364 | content: "\f445";
3365 | }
3366 |
3367 | .mdi-trophy-award::before {
3368 | content: "\f446";
3369 | }
3370 |
3371 | .mdi-trophy-variant::before {
3372 | content: "\f447";
3373 | }
3374 |
3375 | .mdi-truck::before {
3376 | content: "\f448";
3377 | }
3378 |
3379 | .mdi-tshirt-crew::before {
3380 | content: "\f449";
3381 | }
3382 |
3383 | .mdi-tshirt-v::before {
3384 | content: "\f44a";
3385 | }
3386 |
3387 | .mdi-tumblr::before {
3388 | content: "\f44b";
3389 | }
3390 |
3391 | .mdi-tumblr-reblog::before {
3392 | content: "\f44c";
3393 | }
3394 |
3395 | .mdi-twitch::before {
3396 | content: "\f44d";
3397 | }
3398 |
3399 | .mdi-twitter::before {
3400 | content: "\f44e";
3401 | }
3402 |
3403 | .mdi-twitter-box::before {
3404 | content: "\f44f";
3405 | }
3406 |
3407 | .mdi-twitter-retweet::before {
3408 | content: "\f450";
3409 | }
3410 |
3411 | .mdi-ubuntu::before {
3412 | content: "\f451";
3413 | }
3414 |
3415 | .mdi-undo::before {
3416 | content: "\f452";
3417 | }
3418 |
3419 | .mdi-undo-variant::before {
3420 | content: "\f453";
3421 | }
3422 |
3423 | .mdi-unfold-less::before {
3424 | content: "\f454";
3425 | }
3426 |
3427 | .mdi-unfold-more::before {
3428 | content: "\f455";
3429 | }
3430 |
3431 | .mdi-upload::before {
3432 | content: "\f456";
3433 | }
3434 |
3435 | .mdi-usb::before {
3436 | content: "\f457";
3437 | }
3438 |
3439 | .mdi-vector-curve::before {
3440 | content: "\f458";
3441 | }
3442 |
3443 | .mdi-vector-point::before {
3444 | content: "\f459";
3445 | }
3446 |
3447 | .mdi-vector-square::before {
3448 | content: "\f45a";
3449 | }
3450 |
3451 | .mdi-verified::before {
3452 | content: "\f45b";
3453 | }
3454 |
3455 | .mdi-vibrate::before {
3456 | content: "\f45c";
3457 | }
3458 |
3459 | .mdi-video::before {
3460 | content: "\f45d";
3461 | }
3462 |
3463 | .mdi-video-off::before {
3464 | content: "\f45e";
3465 | }
3466 |
3467 | .mdi-video-switch::before {
3468 | content: "\f45f";
3469 | }
3470 |
3471 | .mdi-view-agenda::before {
3472 | content: "\f460";
3473 | }
3474 |
3475 | .mdi-view-array::before {
3476 | content: "\f461";
3477 | }
3478 |
3479 | .mdi-view-carousel::before {
3480 | content: "\f462";
3481 | }
3482 |
3483 | .mdi-view-column::before {
3484 | content: "\f463";
3485 | }
3486 |
3487 | .mdi-view-dashboard::before {
3488 | content: "\f464";
3489 | }
3490 |
3491 | .mdi-view-day::before {
3492 | content: "\f465";
3493 | }
3494 |
3495 | .mdi-view-headline::before {
3496 | content: "\f466";
3497 | }
3498 |
3499 | .mdi-view-list::before {
3500 | content: "\f467";
3501 | }
3502 |
3503 | .mdi-view-module::before {
3504 | content: "\f468";
3505 | }
3506 |
3507 | .mdi-view-quilt::before {
3508 | content: "\f469";
3509 | }
3510 |
3511 | .mdi-view-stream::before {
3512 | content: "\f46a";
3513 | }
3514 |
3515 | .mdi-view-week::before {
3516 | content: "\f46b";
3517 | }
3518 |
3519 | .mdi-voicemail::before {
3520 | content: "\f46c";
3521 | }
3522 |
3523 | .mdi-volume-high::before {
3524 | content: "\f46d";
3525 | }
3526 |
3527 | .mdi-volume-low::before {
3528 | content: "\f46e";
3529 | }
3530 |
3531 | .mdi-volume-medium::before {
3532 | content: "\f46f";
3533 | }
3534 |
3535 | .mdi-volume-off::before {
3536 | content: "\f470";
3537 | }
3538 |
3539 | .mdi-walk::before {
3540 | content: "\f471";
3541 | }
3542 |
3543 | .mdi-wallet::before {
3544 | content: "\f472";
3545 | }
3546 |
3547 | .mdi-wallet-giftcard::before {
3548 | content: "\f473";
3549 | }
3550 |
3551 | .mdi-wallet-membership::before {
3552 | content: "\f474";
3553 | }
3554 |
3555 | .mdi-wallet-travel::before {
3556 | content: "\f475";
3557 | }
3558 |
3559 | .mdi-watch::before {
3560 | content: "\f476";
3561 | }
3562 |
3563 | .mdi-water::before {
3564 | content: "\f477";
3565 | }
3566 |
3567 | .mdi-water-off::before {
3568 | content: "\f478";
3569 | }
3570 |
3571 | .mdi-water-pump::before {
3572 | content: "\f479";
3573 | }
3574 |
3575 | .mdi-weather-cloudy::before {
3576 | content: "\f47a";
3577 | }
3578 |
3579 | .mdi-weather-hail::before {
3580 | content: "\f47b";
3581 | }
3582 |
3583 | .mdi-weather-lightning::before {
3584 | content: "\f47c";
3585 | }
3586 |
3587 | .mdi-weather-night::before {
3588 | content: "\f47d";
3589 | }
3590 |
3591 | .mdi-weather-partlycloudy::before {
3592 | content: "\f47e";
3593 | }
3594 |
3595 | .mdi-weather-pouring::before {
3596 | content: "\f47f";
3597 | }
3598 |
3599 | .mdi-weather-rainy::before {
3600 | content: "\f480";
3601 | }
3602 |
3603 | .mdi-weather-snowy::before {
3604 | content: "\f481";
3605 | }
3606 |
3607 | .mdi-weather-sunny::before {
3608 | content: "\f482";
3609 | }
3610 |
3611 | .mdi-weather-sunset::before {
3612 | content: "\f483";
3613 | }
3614 |
3615 | .mdi-weather-sunset-down::before {
3616 | content: "\f484";
3617 | }
3618 |
3619 | .mdi-weather-sunset-up::before {
3620 | content: "\f485";
3621 | }
3622 |
3623 | .mdi-weather-windy::before {
3624 | content: "\f486";
3625 | }
3626 |
3627 | .mdi-weather-windy-variant::before {
3628 | content: "\f487";
3629 | }
3630 |
3631 | .mdi-web::before {
3632 | content: "\f488";
3633 | }
3634 |
3635 | .mdi-webcam::before {
3636 | content: "\f489";
3637 | }
3638 |
3639 | .mdi-whatsapp::before {
3640 | content: "\f48a";
3641 | }
3642 |
3643 | .mdi-wheelchair-accessibility::before {
3644 | content: "\f48b";
3645 | }
3646 |
3647 | .mdi-white-balance-auto::before {
3648 | content: "\f48c";
3649 | }
3650 |
3651 | .mdi-white-balance-incandescent::before {
3652 | content: "\f48d";
3653 | }
3654 |
3655 | .mdi-white-balance-irradescent::before {
3656 | content: "\f48e";
3657 | }
3658 |
3659 | .mdi-white-balance-sunny::before {
3660 | content: "\f48f";
3661 | }
3662 |
3663 | .mdi-wifi::before {
3664 | content: "\f490";
3665 | }
3666 |
3667 | .mdi-wikipedia::before {
3668 | content: "\f491";
3669 | }
3670 |
3671 | .mdi-window-closed::before {
3672 | content: "\f492";
3673 | }
3674 |
3675 | .mdi-window-open::before {
3676 | content: "\f493";
3677 | }
3678 |
3679 | .mdi-windows::before {
3680 | content: "\f494";
3681 | }
3682 |
3683 | .mdi-xbox::before {
3684 | content: "\f495";
3685 | }
3686 |
3687 | .mdi-xda::before {
3688 | content: "\f496";
3689 | }
3690 |
3691 | .mdi-xml::before {
3692 | content: "\f497";
3693 | }
3694 |
3695 | .mdi-youtube-play::before {
3696 | content: "\f498";
3697 | }
3698 |
3699 | .mdi-zip-box::before {
3700 | content: "\f499";
3701 | }
3702 |
3703 | /*# sourceMappingURL=materialdesignicons.css.map */
3704 |
--------------------------------------------------------------------------------
/resource/fonts/materialdesignicons-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codigofacilito/angularjs/cb7facc636fb99d3b545f69afc096aad52012d81/resource/fonts/materialdesignicons-webfont.eot
--------------------------------------------------------------------------------
/resource/fonts/materialdesignicons-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codigofacilito/angularjs/cb7facc636fb99d3b545f69afc096aad52012d81/resource/fonts/materialdesignicons-webfont.ttf
--------------------------------------------------------------------------------
/resource/fonts/materialdesignicons-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codigofacilito/angularjs/cb7facc636fb99d3b545f69afc096aad52012d81/resource/fonts/materialdesignicons-webfont.woff
--------------------------------------------------------------------------------
/resource/fonts/materialdesignicons-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codigofacilito/angularjs/cb7facc636fb99d3b545f69afc096aad52012d81/resource/fonts/materialdesignicons-webfont.woff2
--------------------------------------------------------------------------------
/resource/imgs/user.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codigofacilito/angularjs/cb7facc636fb99d3b545f69afc096aad52012d81/resource/imgs/user.jpg
--------------------------------------------------------------------------------
/resource/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
Posts App
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/resource/js/app.js:
--------------------------------------------------------------------------------
1 | angular.module("FinalApp",["lumx","ngRoute"]);
--------------------------------------------------------------------------------
/resource/js/controllers.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codigofacilito/angularjs/cb7facc636fb99d3b545f69afc096aad52012d81/resource/js/controllers.js
--------------------------------------------------------------------------------
/resource/js/directives.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codigofacilito/angularjs/cb7facc636fb99d3b545f69afc096aad52012d81/resource/js/directives.js
--------------------------------------------------------------------------------
/resource/js/services.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codigofacilito/angularjs/cb7facc636fb99d3b545f69afc096aad52012d81/resource/js/services.js
--------------------------------------------------------------------------------