{"key":"introjs","name":"Intro JS","version":"1.0.0","instructions":"Add the settings in an html table of 3 columns between the introjs generico tags. Ignore the the first row but on each subsequent row and a step. Col1 = the css selector e.g .myclass or #myid, Col2  the text to display, and col3 the position of the text . Positons include\ntop,left,right,bottom,bottom-left-aligned,bottom-middle-aligned,bottom-right-aligned","requirecss":"//cdnjs.cloudflare.com/ajax/libs/intro.js/2.1.0/introjs.min.css","requirejs":"//cdnjs.cloudflare.com/ajax/libs/intro.js/2.1.0/intro.min.js","defaults":"caption=\"Quick Tour\"","jquery":"0","amd":"1","body":"<a href=\"#\" class=\"ishine_introjs_button\" id=\"@@AUTOID@@\"><i class=\"fa fa-graduation-cap\" aria-hidden=\"true\"></i>@@caption@@</a>\n<div id='@@AUTOID@@_datatable' style='display: none'>","bodyend":"</div>","script":"//extract an array of values from each row(tr)\nvar steps =[];\nvar stepindex=0;\n$('#' + @@AUTOID@@ + '_datatable > table tr').each(function(i, the_tr){\n\tvar cells= $(the_tr).find('td');\n\tif(cells.length>2){\n             var onestep = {};\n              onestep['element'] = $(cells[0]).text();\n              onestep['intro'] = $(cells[1]).text();\n              onestep['position'] = $(cells[2]).text();\n              steps[stepindex]=onestep;\n              stepindex++;\n\t};\n});\n\n$('#' + @@AUTOID@@ ).click(function(){\n        //var intro = introJs();\nvar intro = requiredjs_introjs();\n          intro.setOptions({\n            steps: steps,\n            nextLabel: 'next',\nprevLabel: 'previous,\nskipLabel: 'close',\ndoneLabel: 'end',\n          });\n          intro.start();\n      });","style":"","dataset":"","datasetvars":""}