{"version":3,"sources":["plugins/rowlink.js"],"names":["RowLink","$","NAME","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","Default","rowlink","Event","CLICK","MOUSEUP","CLICK_DATA_API","MOUSEUP_DATA_API","Selector","CLASS_NAME","element","config","_config","_element","on","e","ctrlKey","_click","target","currentTarget","closest","find","type","which","preventDefault","click","document","createEvent","evt","initMouseEvent","window","dispatchEvent","removeData","each","$this","data","extend","length","_jQueryInterface","call","trigger","Constructor","noConflict","jQuery"],"mappings":"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","file":"rowlink.js","sourcesContent":["const RowLink = (($) => {\r\n\r\n const NAME = 'rowlink';\r\n const DATA_KEY = `bs.${NAME}`;\r\n const EVENT_KEY = `.${DATA_KEY}`;\r\n const DATA_API_KEY = '.data-api';\r\n const JQUERY_NO_CONFLICT = $.fn[NAME];\r\n\r\n const Default = {\r\n rowlink: 'a'\r\n };\r\n const Event = {\r\n CLICK: `click${EVENT_KEY}`,\r\n MOUSEUP: `mouseup${EVENT_KEY}`,\r\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\r\n MOUSEUP_DATA_API: `mouseup${EVENT_KEY}${DATA_API_KEY}`\r\n }\r\n const Selector = {\r\n CLASS_NAME: `.js-${NAME}`\r\n };\r\n\r\n class RowLink {\r\n constructor(element, config) {\r\n this._config = config;\r\n this._element = element;\r\n\r\n $(this._element).on(`${Event.CLICK} ${Event.MOUSEUP}`, 'td:not(.rowlink-skip)', (e, ctrlKey) => this._click(e, ctrlKey));\r\n }\r\n\r\n _click(e, ctrlKey) {\r\n const target = $(e.currentTarget).closest('tr').find(this._config.rowlink)[0];\r\n\r\n if ($(e.target)[0] === target) {\r\n return;\r\n }\r\n if (e.type === 'mouseup' && e.which !== 2) {\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n ctrlKey = ctrlKey || e.ctrlKey || (e.type === 'mouseup' && e.which === 2);\r\n\r\n if (!ctrlKey && target.click) {\r\n target.click();\r\n } else if (document.createEvent) {\r\n const evt = document.createEvent(\"MouseEvents\");\r\n evt.initMouseEvent(\"click\", true, true, window, 0, 0, 0, 0, 0, ctrlKey, false, false, false, 0, null);\r\n target.dispatchEvent(evt);\r\n }\r\n }\r\n\r\n dispose() {\r\n $.removeData(this._element, DATA_KEY);\r\n this._config = null;\r\n this._element = null;\r\n }\r\n\r\n\r\n static _jQueryInterface() {\r\n return this.each(function () {\r\n const $this = $(this);\r\n let data = $this.data(DATA_KEY);\r\n const config = $.extend({}, Default, $this.data());\r\n if (!data) {\r\n data = new RowLink(this, config);\r\n $this.data(DATA_KEY, data);\r\n }\r\n });\r\n }\r\n }\r\n\r\n $(document).on(`${Event.CLICK_DATA_API} ${Event.MOUSEUP_DATA_API}`, Selector.CLASS_NAME, function (e) {\r\n if (e.type === 'mouseup' && e.which !== 2) {\r\n return;\r\n }\r\n if ($(e.target).closest('.rowlink-skip').length !== 0) {\r\n return;\r\n }\r\n\r\n if ($(this).data(DATA_KEY)) {\r\n return;\r\n }\r\n RowLink._jQueryInterface.call($(this));\r\n\r\n const ctrlKey = e.ctrlKey || e.which === 2;\r\n $(e.target).trigger(Event.CLICK, [ctrlKey]);\r\n });\r\n\r\n $.fn[NAME] = RowLink._jQueryInterface;\r\n $.fn[NAME].Constructor = RowLink;\r\n $.fn[NAME].noConflict = function () {\r\n $.fn[NAME] = JQUERY_NO_CONFLICT;\r\n return RowLink._jQueryInterface;\r\n }\r\n\r\n return RowLink;\r\n})(jQuery);"]}