{"version":3,"file":"js/init-91d55d26c7a65c7684fd.js","sources":["webpack:///webpack/bootstrap","webpack:///./app/javascript/packs/common/datatable_init.coffee","webpack:///./app/javascript/packs/init.coffee"],"sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./app/javascript/packs/init.coffee\");\n","module.exports.datatable_init = (selector) -> new App.DatatableInit(selector)\n\nclass App.DatatableInit\n\n set_selected_id: (value) -> window[\"##{@selector}_selected_id\"] = value\n\n get_selected_id: -> window[\"##{@selector}_selected_id\"]\n\n datatable_api: -> @table.dataTable().api()\n\n constructor: (selector) ->\n self = @\n @selector = selector\n @table = $(\"##{selector}\")\n datatable = self.table.dataTable({\n ajax: self.table.data('url')\n processing: true\n serverSide: true\n lengthChange: true\n ordering: true\n autoWidth: true\n scrollX: true\n stateSave: true\n order: [[0, 'asc']]\n columnDefs: [\n {\n targets: [-1, -2] # last two columns\n orderable: false\n searchable: false\n className: 'text-center'\n }\n ]\n fnPreDrawCallback: (e, settings) ->\n # page length select has up/down and dropdown buttons\n $('select.custom-select').removeClass('custom-select custom-select-sm')\n fnDrawCallback: (data) ->\n $('.btn_edit, .btn_delete').addClass('disabled') if $(this).data('readonly')\n $(\"##{self.selector} tbody tr\").removeClass('table-active')\n # if a row was selected, select and display\n for tr in $(\"##{self.selector} tbody tr\")\n candidate = $(tr).find('td:first >a:first')\n if $(candidate).data('id') == self.datatable_api().state()[\"#{self.selector}_selected_id\"]\n $(tr).addClass('table-active')\n top\n $('html').scrollTop($(tr).offset().top)\n break\n stateSaveCallback: (settings, data) ->\n sessionStorage.setItem('DataTables_' + settings.sInstance, JSON.stringify(data))\n stateLoadCallback: (settings) ->\n JSON.parse(sessionStorage.getItem('DataTables_' + settings.sInstance))\n }).on 'stateSaveParams.dt', (e, settings, data) ->\n # save current selected row for restoring when back\n data[\"#{self.selector}_selected_id\"] = self.get_selected_id()\n\n # dynamically add a clear filter button\n $(\"##{@selector}_filter\").append(\n \"\"\n ).on 'click', (e) ->\n $('input[type=search]').val('').focus()\n datatable.fnFilter('')\n $('input[type=search]').css('width', '170px')\n\n # set active a row when clicked\n $(\"##{@selector} tbody\").on 'click', 'tr', (e) ->\n self.set_selected_id($(this).find('td:first >a:first').data('id'))\n $(\"##{self.selector} tbody tr\").removeClass('table-active')\n $(this).addClass('table-active')\n\n","# require here all exported coffeescript modules\nDatatableInit = require('./common/datatable_init').datatable_init\n\nwindow.App ||= {}\n\nclass Page\n controller: (check) ->\n if check\n $('body').data('controller') == check\n else\n $('body').data('controller')\n\n action: (check) ->\n if check\n $('body').data('action') == check\n else\n $('body').data('action')\n\n\n# I18n = {}\n# I18n.defaultLocale = 'es'\n# I18n.locale = \"<%= I18n.locale %>\"\n# $.datepicker.setDefaults($.datepicker.regional[I18n.locale])\n\nApp.init = ->\n self = @\n page = new Page\n # main inits\n #\n # sets min-with for body to show footer aligned to bottom\n adminlte.Layout._jQueryInterface.call($('body'))\n # iCheck\n $('.icheck').iCheck {\n checkboxClass: 'icheckbox_square-blue'\n radioClass: 'iradio_square-blue'\n increaseArea: '20%' # optional\n }\n $('.datepicker').datepicker($.datepicker.regional['es'])\n\n # Override the default confirm dialog by rails\n $.rails.allowAction = (link) ->\n return true unless link.data('confirm')\n $.rails.showConfirmationDialog link\n false\n\n # User click confirm button\n $.rails.confirmed = (link) ->\n link.data 'confirm', null\n link.trigger 'click.rails'\n\n # Display the confirmation dialog\n $.rails.showConfirmationDialog = (link) ->\n message = link.data('confirm')\n swal.fire(\n {\n title: message\n type: 'warning'\n showCancelButton: true\n reverseButtons: true\n }\n ).then (result) ->\n $.rails.confirmed link if result.value\n\n # page specific js\n new App.DatatableInit('customers_table') if page.controller('customers') && page.action('index')\n\n# event binding\n$(document).on \"turbolinks:load\", -> App.init()\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AClFA;AAAA;AAAA;AACA;AACA;AAEA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AADA;AAEA;AACA;AACA;AAJA;AAXA;AAkBA;;AAEA;AAFA;AAGA;AACA;AAAA;AAAA;;AACA;AAEA;;AAAA;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAAA;;AAFA;;AAJA;AAWA;AACA;AADA;AAEA;AACA;AADA;AAlCA;;AAsCA;AAFA;;AAKA;AAIA;AACA;AAFA;AAGA;;AAGA;AACA;AACA;AACA;AAHA;AAtDA;AACA;AATA;;;;;;;;;;;;ACFA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;;AAJA;AACA;AAKA;AACA;AACA;AADA;AAGA;;AAJA;AACA;AARA;AACA;;;;;AAkBA;AACA;AAAA;AACA;;;;AAIA;;AAEA;AACA;AACA;AACA;AAHA;AAKA;;AAGA;AACA;AAAA;;AACA;AACA;AAHA;;AAMA;AACA;AACA;AAFA;;AAKA;AACA;AAAA;AACA;AAEA;AACA;AACA;AACA;AAJA;AAOA;AAAA;;AADA;AATA;AAaA;;AAAA;;AAxCA;AACA;;AA0CA;AAAA;AAAA;;;;;A","sourceRoot":""}