/*! Bootstrap integration for DataTables' Editor * © SpryMedia Ltd - datatables.net/license */ (function( factory ){ if ( typeof define === 'function' && define.amd ) { // AMD define( ['jquery', 'datatables.net-bs5', 'datatables.net-editor'], function ( $ ) { return factory( $, window, document ); } ); } else if ( typeof exports === 'object' ) { // CommonJS var jq = require('jquery'); var cjsRequires = function (root, $) { if ( ! $.fn.dataTable ) { require('datatables.net-bs5')(root, $); } if ( ! $.fn.dataTable.Editor ) { require('datatables.net-editor')(root, $); } }; if (typeof window === 'undefined') { module.exports = function (root, $) { if ( ! root ) { // CommonJS environments without a window global must pass a // root. This will give an error otherwise root = window; } if ( ! $ ) { $ = jq( root ); } cjsRequires( root, $ ); return factory( $, root, root.document ); }; } else { cjsRequires( window, jq ); module.exports = factory( jq, window, window.document ); } } else { // Browser factory( jQuery, window, document ); } }(function( $, window, document, undefined ) { 'use strict'; var DataTable = $.fn.dataTable; var Editor = DataTable.Editor; /* * Set the default display controller to be our bootstrap control */ DataTable.Editor.defaults.display = "bootstrap"; /* * Change the default classes from Editor to be classes for Bootstrap */ $.extend( true, $.fn.dataTable.Editor.classes, { "header": { "wrapper": "DTE_Header", title: { tag: 'h5', class: 'modal-title' } }, "body": { "wrapper": "DTE_Body" }, "footer": { "wrapper": "DTE_Footer" }, "form": { "tag": "form-horizontal", "button": "btn", "buttonInternal": "btn btn-outline-secondary" }, "field": { "wrapper": "DTE_Field form-group row", "label": "col-lg-4 col-form-label", "input": "col-lg-8", "error": "error is-invalid", "msg-labelInfo": "form-text text-secondary small", "msg-info": "form-text text-secondary small", "msg-message": "form-text text-secondary small", "msg-error": "form-text text-danger small", "multiValue": "card multi-value", "multiInfo": "small", "multiRestore": "multi-restore" } } ); $.extend( true, DataTable.ext.buttons, { create: { formButtons: { className: 'btn-primary' } }, edit: { formButtons: { className: 'btn-primary' } }, remove: { formButtons: { className: 'btn-danger' } } } ); DataTable.Editor.fieldTypes.datatable.tableClass = 'table'; /* * Bootstrap display controller - this is effectively a proxy to the Bootstrap * modal control. */ let shown = false; let fullyShown = false; const dom = { content: $( '' ), close: $('