@@ -609,6 +609,324 @@ var LocationIndex = _location.LocationIndex;
609609        } 
610610    }); 
611611    */ 
612+     addLinter ( 'W018' ,  function  bs3ClassUsed ( $ ,  reporter )  { 
613+         var  bs3Selectors  =  [ 
614+             'td.active, th.active, tr.info' , 
615+             '.affix' , 
616+             '.alert-dismissable' , 
617+             '.blockquote-reverse' , 
618+             '.tooltip.bottom, .popover.bottom' , 
619+             '.bottom-left' , 
620+             '.bottom-right' , 
621+             '.btn-default' , 
622+             '.btn-group-justified' , 
623+             '.btn-group-xs' , 
624+             '.btn-xs' , 
625+             '.thumbnail .caption' , 
626+             '.caret' , 
627+             '.carousel-control' , 
628+             '.center-block' , 
629+             '.checkbox label' , 
630+             '.checkbox-inline label' , 
631+             '.col-lg-offset-0' , 
632+             '.col-lg-offset-1' , 
633+             '.col-lg-offset-2' , 
634+             '.col-lg-offset-3' , 
635+             '.col-lg-offset-4' , 
636+             '.col-lg-offset-5' , 
637+             '.col-lg-offset-6' , 
638+             '.col-lg-offset-7' , 
639+             '.col-lg-offset-8' , 
640+             '.col-lg-offset-9' , 
641+             '.col-lg-offset-10' , 
642+             '.col-lg-offset-11' , 
643+             '.col-lg-offset-12' , 
644+             '.col-lg-pull-0' , 
645+             '.col-lg-pull-1' , 
646+             '.col-lg-pull-2' , 
647+             '.col-lg-pull-3' , 
648+             '.col-lg-pull-4' , 
649+             '.col-lg-pull-5' , 
650+             '.col-lg-pull-6' , 
651+             '.col-lg-pull-7' , 
652+             '.col-lg-pull-8' , 
653+             '.col-lg-pull-9' , 
654+             '.col-lg-pull-10' , 
655+             '.col-lg-pull-11' , 
656+             '.col-lg-pull-12' , 
657+             '.col-lg-push-0' , 
658+             '.col-lg-push-1' , 
659+             '.col-lg-push-2' , 
660+             '.col-lg-push-3' , 
661+             '.col-lg-push-4' , 
662+             '.col-lg-push-5' , 
663+             '.col-lg-push-6' , 
664+             '.col-lg-push-7' , 
665+             '.col-lg-push-8' , 
666+             '.col-lg-push-9' , 
667+             '.col-lg-push-10' , 
668+             '.col-lg-push-11' , 
669+             '.col-lg-push-12' , 
670+             '.col-md-offset-0' , 
671+             '.col-md-offset-1' , 
672+             '.col-md-offset-2' , 
673+             '.col-md-offset-3' , 
674+             '.col-md-offset-4' , 
675+             '.col-md-offset-5' , 
676+             '.col-md-offset-6' , 
677+             '.col-md-offset-7' , 
678+             '.col-md-offset-8' , 
679+             '.col-md-offset-9' , 
680+             '.col-md-offset-10' , 
681+             '.col-md-offset-11' , 
682+             '.col-md-offset-12' , 
683+             '.col-md-pull-0' , 
684+             '.col-md-pull-1' , 
685+             '.col-md-pull-2' , 
686+             '.col-md-pull-3' , 
687+             '.col-md-pull-4' , 
688+             '.col-md-pull-5' , 
689+             '.col-md-pull-6' , 
690+             '.col-md-pull-7' , 
691+             '.col-md-pull-8' , 
692+             '.col-md-pull-9' , 
693+             '.col-md-pull-10' , 
694+             '.col-md-pull-11' , 
695+             '.col-md-pull-12' , 
696+             '.col-md-push-0' , 
697+             '.col-md-push-1' , 
698+             '.col-md-push-2' , 
699+             '.col-md-push-3' , 
700+             '.col-md-push-4' , 
701+             '.col-md-push-5' , 
702+             '.col-md-push-6' , 
703+             '.col-md-push-7' , 
704+             '.col-md-push-8' , 
705+             '.col-md-push-9' , 
706+             '.col-md-push-10' , 
707+             '.col-md-push-11' , 
708+             '.col-md-push-12' , 
709+             '.col-sm-offset-0' , 
710+             '.col-sm-offset-1' , 
711+             '.col-sm-offset-2' , 
712+             '.col-sm-offset-3' , 
713+             '.col-sm-offset-4' , 
714+             '.col-sm-offset-5' , 
715+             '.col-sm-offset-6' , 
716+             '.col-sm-offset-7' , 
717+             '.col-sm-offset-8' , 
718+             '.col-sm-offset-9' , 
719+             '.col-sm-offset-10' , 
720+             '.col-sm-offset-11' , 
721+             '.col-sm-offset-12' , 
722+             '.col-sm-pull-0' , 
723+             '.col-sm-pull-1' , 
724+             '.col-sm-pull-2' , 
725+             '.col-sm-pull-3' , 
726+             '.col-sm-pull-4' , 
727+             '.col-sm-pull-5' , 
728+             '.col-sm-pull-6' , 
729+             '.col-sm-pull-7' , 
730+             '.col-sm-pull-8' , 
731+             '.col-sm-pull-9' , 
732+             '.col-sm-pull-10' , 
733+             '.col-sm-pull-11' , 
734+             '.col-sm-pull-12' , 
735+             '.col-sm-push-0' , 
736+             '.col-sm-push-1' , 
737+             '.col-sm-push-2' , 
738+             '.col-sm-push-3' , 
739+             '.col-sm-push-4' , 
740+             '.col-sm-push-5' , 
741+             '.col-sm-push-6' , 
742+             '.col-sm-push-7' , 
743+             '.col-sm-push-8' , 
744+             '.col-sm-push-9' , 
745+             '.col-sm-push-10' , 
746+             '.col-sm-push-11' , 
747+             '.col-sm-push-12' , 
748+             '.col-xs-1' , 
749+             '.col-xs-2' , 
750+             '.col-xs-3' , 
751+             '.col-xs-4' , 
752+             '.col-xs-5' , 
753+             '.col-xs-6' , 
754+             '.col-xs-7' , 
755+             '.col-xs-8' , 
756+             '.col-xs-9' , 
757+             '.col-xs-10' , 
758+             '.col-xs-11' , 
759+             '.col-xs-12' , 
760+             '.col-xs-offset-0' , 
761+             '.col-xs-offset-1' , 
762+             '.col-xs-offset-2' , 
763+             '.col-xs-offset-3' , 
764+             '.col-xs-offset-4' , 
765+             '.col-xs-offset-5' , 
766+             '.col-xs-offset-6' , 
767+             '.col-xs-offset-7' , 
768+             '.col-xs-offset-8' , 
769+             '.col-xs-offset-9' , 
770+             '.col-xs-offset-10' , 
771+             '.col-xs-offset-11' , 
772+             '.col-xs-offset-12' , 
773+             '.col-xs-pull-0' , 
774+             '.col-xs-pull-1' , 
775+             '.col-xs-pull-2' , 
776+             '.col-xs-pull-3' , 
777+             '.col-xs-pull-4' , 
778+             '.col-xs-pull-5' , 
779+             '.col-xs-pull-6' , 
780+             '.col-xs-pull-7' , 
781+             '.col-xs-pull-8' , 
782+             '.col-xs-pull-9' , 
783+             '.col-xs-pull-10' , 
784+             '.col-xs-pull-11' , 
785+             '.col-xs-pull-12' , 
786+             '.col-xs-push-0' , 
787+             '.col-xs-push-1' , 
788+             '.col-xs-push-2' , 
789+             '.col-xs-push-3' , 
790+             '.col-xs-push-4' , 
791+             '.col-xs-push-5' , 
792+             '.col-xs-push-6' , 
793+             '.col-xs-push-7' , 
794+             '.col-xs-push-8' , 
795+             '.col-xs-push-9' , 
796+             '.col-xs-push-10' , 
797+             '.col-xs-push-11' , 
798+             '.col-xs-push-12' , 
799+             '.control-label' , 
800+             'td.danger, th.danger, tr.danger' , 
801+             '.dl-horizontal' , 
802+             '.dropdown-backdrop' , 
803+             '.dropdown-menu-left' , 
804+             '.form-control-static' , 
805+             '.form-group-lg' , 
806+             '.form-group-sm' , 
807+             '.form-horizontal' , 
808+             '.has-error' , 
809+             '.has-success' , 
810+             '.has-warning' , 
811+             '.help-block' , 
812+             '.hidden' , 
813+             '.hidden-lg' , 
814+             '.hidden-md' , 
815+             '.hidden-print' , 
816+             '.hidden-sm' , 
817+             '.hidden-xs' , 
818+             '.hide' , 
819+             '.icon-bar' , 
820+             '.icon-next' , 
821+             '.icon-prev' , 
822+             '.img-circle' , 
823+             '.img-responsive' , 
824+             '.img-rounded' , 
825+             '.fade.in, .collapse.in, .navbar-collapse.in, .modal.in, .modal-backdrop.in, .tooltip.in' , 
826+             'td.info, th.info, tr.info' , 
827+             '.input-lg' , 
828+             '.input-sm' , 
829+             '.carousel-inner > .item' , 
830+             '.label' , 
831+             '.label-danger' , 
832+             '.label-default' , 
833+             '.label-info' , 
834+             '.label-primary' , 
835+             '.label-success' , 
836+             '.label-warning' , 
837+             '.tooltip.left, .popover.left, .item.left' , 
838+             '.list-group-item-heading' , 
839+             '.list-group-item-text' , 
840+             '.media-bottom' , 
841+             '.media-heading' , 
842+             '.media-left' , 
843+             '.media-list' , 
844+             '.media-middle' , 
845+             '.media-object' , 
846+             '.media-right' , 
847+             '.navbar-btn' , 
848+             '.navbar-default' , 
849+             '.navbar-fixed-bottom' , 
850+             '.navbar-fixed-top' , 
851+             '.navbar-form' , 
852+             '.navbar-header' , 
853+             '.navbar-inverse' , 
854+             '.navbar-left' , 
855+             '.navbar-link' , 
856+             '.navbar-right' , 
857+             '.navbar-static-top' , 
858+             '.navbar-toggle' , 
859+             '.nav-divider' , 
860+             '.nav-stacked' , 
861+             '.nav-tabs-justified' , 
862+             '.item.next' , 
863+             '.btn-group.open' , 
864+             '.page-header' , 
865+             '.pager' , 
866+             '.panel' , 
867+             '.panel-body' , 
868+             '.panel-collapse' , 
869+             '.panel-danger' , 
870+             '.panel-default' , 
871+             '.panel-footer' , 
872+             '.panel-group' , 
873+             '.panel-heading' , 
874+             '.panel-info' , 
875+             '.panel-primary' , 
876+             '.panel-success' , 
877+             '.panel-title' , 
878+             '.panel-warning' , 
879+             '.popover-content' , 
880+             '.popover-title' , 
881+             '.item.prev, .carousel-inner > .prev' , 
882+             '.pager .previous' , 
883+             '.progress-bar-danger' , 
884+             '.progress-bar-info' , 
885+             '.progress-bar-success' , 
886+             '.progress-bar-warning' , 
887+             '.progress-striped' , 
888+             '.pull-left' , 
889+             '.pull-right' , 
890+             '.radio label' , 
891+             '.radio-inline label' , 
892+             '.row-no-gutters' , 
893+             'td.success, th.success, tr.success' , 
894+             '.table-condensed' , 
895+             '.thumbnail' , 
896+             '.tooltip-arrow' , 
897+             '.tooltip.top, .popover.top' , 
898+             '.tooltip.top-left' , 
899+             '.tooltip.top-right' , 
900+             '.visible-lg' , 
901+             '.visible-lg-block' , 
902+             '.visible-lg-inline' , 
903+             '.visible-lg-inline-block' , 
904+             '.visible-md' , 
905+             '.visible-md-block' , 
906+             '.visible-md-inline' , 
907+             '.visible-md-inline-block' , 
908+             '.visible-print' , 
909+             '.visible-print-block' , 
910+             '.visible-print-inline' , 
911+             '.visible-print-inline-block' , 
912+             '.visible-sm' , 
913+             '.visible-sm-block' , 
914+             '.visible-sm-inline' , 
915+             '.visible-sm-inline-block' , 
916+             '.visible-xs' , 
917+             '.visible-xs-block' , 
918+             '.visible-xs-inline' , 
919+             '.visible-xs-inline-block' , 
920+             'td.warning, th.warning, tr.warning' , 
921+             '.well' , 
922+             '.well-lg' , 
923+             '.well-sm' 
924+         ] ; 
925+         var  bs3Usage  =  $ ( bs3Selectors . join ( ', ' ) ) ; 
926+         if  ( bs3Usage . length )  { 
927+             reporter ( 'Found usage of CSS classes possibly indicative of Bootstrap 3 and not newer versions.' ,  bs3Usage ) ; 
928+         } 
929+     } ) ; 
612930    addLinter ( 'E001' ,  ( function  ( )  { 
613931        var  MISSING_DOCTYPE  =  'Document is missing a DOCTYPE declaration' ; 
614932        var  NON_HTML5_DOCTYPE  =  'Document declares a non-HTML5 DOCTYPE' ; 
0 commit comments