/*! Bootstrap integration for DataTables' Editor * ©2015 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 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 ( ! $ ) { $ = typeof window !== 'undefined' ? // jQuery's factory checks for a global window require('jquery') : require('jquery')( root ); } if ( ! $.fn.dataTable ) { require('datatables.net-bs5')(root, $); } if ( ! $.fn.dataTable ) { require('datatables.net-editor')(root, $); } return factory( $, root, root.document ); }; } else { // Browser factory( jQuery, window, document ); } }(function( $, window, document, undefined ) { 'use strict'; var DataTable = $.fn.dataTable; (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 module.exports = function (root, $) { if ( ! root ) { root = window; } if ( ! $ || ! $.fn.dataTable ) { $ = require('datatables.net-bs5')(root, $).$; } if ( ! $.fn.dataTable.Editor ) { require('datatables.net-editor')(root, $); } return factory( $, root, root.document ); }; } else { // Browser factory( jQuery, window, document ); } }(function( $, window, document, undefined ) { 'use strict'; var DataTable = $.fn.dataTable; /* * Set the default display controller to be our bootstrap control */ DataTable.Editor.defaults.display = "bootstrap"; /* * Alter the buttons that Editor adds to Buttons so they are suitable for bootstrap */ var i18nDefaults = DataTable.Editor.defaults.i18n; i18nDefaults.create.title = ''; i18nDefaults.edit.title = ''; i18nDefaults.remove.title = ''; /* * Change the default classes from Editor to be classes for Bootstrap */ $.extend( true, $.fn.dataTable.Editor.classes, { "header": { "wrapper": "DTE_Header modal-header" }, "body": { "wrapper": "DTE_Body modal-body" }, "footer": { "wrapper": "DTE_Footer modal-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: $('