diff --git a/.gitignore b/.gitignore index b733c45..256523a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ -/.idea -/*.iml -/bower_components -/node_modules \ No newline at end of file +.idea +*.iml +bower_components +node_modules +yarn.lock +package-lock.json diff --git a/dist/bootstrap-confirmation.js b/dist/bootstrap-confirmation.js index f53304c..771a393 100644 --- a/dist/bootstrap-confirmation.js +++ b/dist/bootstrap-confirmation.js @@ -1,5 +1,5 @@ /*! - * Bootstrap Confirmation (v4.0.1) + * Bootstrap Confirmation (v4.0.2) * @copyright 2013 Nimit Suwannagate * @copyright 2014-2018 Damien "Mistic" Sorel * @licence Apache License, Version 2.0 @@ -81,7 +81,7 @@ */ var NAME = 'confirmation'; - var VERSION = '4.0.1'; + var VERSION = '4.0.2'; var DATA_KEY = "bs." + NAME; var EVENT_KEY = "." + DATA_KEY; var JQUERY_NO_CONFLICT = $.fn[NAME]; @@ -377,7 +377,7 @@ $(self.config._selector).filter(function () { return $(this).data(DATA_KEY) !== undefined; }).confirmation('hide'); - $('body').off(Event.SHOWN + "." + self.uid); + $('body').off(Event.CLICK + "." + self.uid); self.eventBody = false; }); } diff --git a/dist/bootstrap-confirmation.js.map b/dist/bootstrap-confirmation.js.map index 0aa94c5..2edc401 100644 --- a/dist/bootstrap-confirmation.js.map +++ b/dist/bootstrap-confirmation.js.map @@ -1 +1 @@ -{"version":3,"file":"bootstrap-confirmation.js","sources":["../rollupPluginBabelHelpers","../src/popover.js","../src/confirmation.js"],"sourcesContent":["export { _createClass as createClass, _defineProperty as defineProperty, _objectSpread as objectSpread, _inheritsLoose as inheritsLoose, _assertThisInitialized as assertThisInitialized };\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import $ from 'jquery';\nimport 'bootstrap';\n\nif (typeof $.fn.popover === 'undefined' || $.fn.popover.Constructor.VERSION.split('.').shift() !== '4') {\n throw new Error('Bootstrap Confirmation 4 requires Bootstrap Popover 4');\n}\n\nconst Popover = $.fn.popover.Constructor;\n\nexport default Popover;\n","import $ from 'jquery';\nimport Popover from 'bootstrap/js/src/popover';\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'confirmation';\nconst VERSION = '4.0.1';\nconst DATA_KEY = `bs.${NAME}`;\nconst EVENT_KEY = `.${DATA_KEY}`;\nconst JQUERY_NO_CONFLICT = $.fn[NAME];\nconst BTN_CLASS_DEFAULT = 'btn btn-sm h-100 d-flex align-items-center';\n\nconst DefaultType = {\n ...Popover.DefaultType,\n singleton : 'boolean',\n popout : 'boolean',\n copyAttributes : '(string|array)',\n onConfirm : 'function',\n onCancel : 'function',\n btnOkClass : 'string',\n btnOkLabel : 'string',\n btnOkIconClass : 'string',\n btnOkIconContent : 'string',\n btnCancelClass : 'string',\n btnCancelLabel : 'string',\n btnCancelIconClass : 'string',\n btnCancelIconContent: 'string',\n buttons : 'array',\n};\n\nconst Default = {\n ...Popover.Default,\n _attributes : {},\n _selector : null,\n placement : 'top',\n title : 'Are you sure?',\n trigger : 'click',\n confirmationEvent : undefined,\n content : '',\n singleton : false,\n popout : false,\n copyAttributes : 'href target',\n onConfirm : $.noop,\n onCancel : $.noop,\n btnOkClass : 'btn-primary',\n btnOkLabel : 'Yes',\n btnOkIconClass : '',\n btnOkIconContent : '',\n btnCancelClass : 'btn-secondary',\n btnCancelLabel : 'No',\n btnCancelIconClass : '',\n btnCancelIconContent: '',\n buttons : [],\n // @formatter:off\n // href=\"#\" allows the buttons to be focused\n template : `\n
\n
\n

\n
\n

\n
\n
\n \n \n
\n
\n
\n
`,\n // @formatter:on\n};\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show',\n};\n\nconst Selector = {\n TITLE : '.popover-header',\n CONTENT : '.confirmation-content',\n BUTTONS : '.confirmation-buttons .btn-group',\n BTN_APPLY : '[data-apply=confirmation]',\n BTN_DISMISS: '[data-dismiss=confirmation]',\n};\n\nconst Keymap = {\n 13: 'Enter',\n 27: 'Escape',\n 39: 'ArrowRight',\n 40: 'ArrowDown',\n};\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n CONFIRMED : `confirmed${EVENT_KEY}`,\n CANCELED : `canceled${EVENT_KEY}`,\n KEYUP : `keyup${EVENT_KEY}`,\n};\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n// keep track of the last openned confirmation for keyboard navigation\nlet activeConfirmation;\n\nclass Confirmation extends Popover {\n // Getters\n\n static get VERSION() {\n return VERSION;\n }\n\n static get Default() {\n return Default;\n }\n\n static get NAME() {\n return NAME;\n }\n\n static get DATA_KEY() {\n return DATA_KEY;\n }\n\n static get Event() {\n return Event;\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY;\n }\n\n static get DefaultType() {\n return DefaultType;\n }\n\n // Constructor\n\n constructor(element, config) {\n super(element, config);\n\n if ((this.config.popout || this.config.singleton) && !this.config.rootSelector) {\n throw new Error('The rootSelector option is required to use popout and singleton features since jQuery 3.');\n }\n\n // keep trace of selectors\n this._isDelegate = false;\n\n if (config.selector) { // container of buttons\n config._selector = `${config.rootSelector} ${config.selector}`;\n this.config._selector = config._selector;\n }\n else if (config._selector) { // children of container\n this.config._selector = config._selector;\n this._isDelegate = true;\n }\n else { // standalone\n this.config._selector = config.rootSelector;\n }\n\n if (this.config.confirmationEvent === undefined) {\n this.config.confirmationEvent = this.config.trigger;\n }\n\n if (!this.config.selector) {\n this._copyAttributes();\n }\n\n this._setConfirmationListeners();\n }\n\n // Overrides\n\n isWithContent() {\n return true;\n }\n\n setContent() {\n const $tip = $(this.getTipElement());\n let content = this._getContent();\n\n if (typeof content === 'function') {\n content = content.call(this.element);\n }\n\n this.setElementContent($tip.find(Selector.TITLE), this.getTitle());\n\n $tip.find(Selector.CONTENT).toggle(!!content);\n if (content) {\n this.setElementContent($tip.find(Selector.CONTENT), content);\n }\n\n if (this.config.buttons.length > 0) {\n this._setCustomButtons($tip);\n }\n else {\n this._setStandardButtons($tip);\n }\n\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`);\n\n this._setupKeyupEvent();\n }\n\n dispose() {\n this._cleanKeyupEvent();\n super.dispose();\n }\n\n hide(callback) {\n this._cleanKeyupEvent();\n super.hide(callback);\n }\n\n // Private\n\n /**\n * Copy the value of `copyAttributes` on the config object\n * @private\n */\n _copyAttributes() {\n this.config._attributes = {};\n if (this.config.copyAttributes) {\n if (typeof this.config.copyAttributes === 'string') {\n this.config.copyAttributes = this.config.copyAttributes.split(' ');\n }\n }\n else {\n this.config.copyAttributes = [];\n }\n\n this.config.copyAttributes.forEach((attr) => {\n this.config._attributes[attr] = $(this.element).attr(attr);\n });\n }\n\n /**\n * Custom event listeners for popouts and singletons\n * @private\n */\n _setConfirmationListeners() {\n const self = this;\n\n if (!this.config.selector) {\n // cancel original event\n $(this.element).on(this.config.trigger, (e, ack) => {\n if (!ack) {\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n });\n\n // manage singleton\n $(this.element).on(Event.SHOWN, function () {\n if (self.config.singleton) {\n // close all other popover already initialized\n $(self.config._selector).not($(this)).filter(function () {\n return $(this).data(DATA_KEY) !== undefined;\n }).confirmation('hide');\n }\n });\n }\n else {\n // cancel original event\n $(this.element).on(this.config.trigger, this.config.selector, (e, ack) => {\n if (!ack) {\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n });\n }\n\n if (!this._isDelegate) {\n // manage popout\n this.eventBody = false;\n this.uid = this.element.id || Confirmation.getUID(`${NAME}_group`);\n\n $(this.element).on(Event.SHOWN, () => {\n if (self.config.popout && !self.eventBody) {\n self.eventBody = $('body').on(`${Event.CLICK}.${self.uid}`, (e) => {\n if ($(self.config._selector).is(e.target)) {\n return;\n }\n // close all popover already initialized\n $(self.config._selector).filter(function () {\n return $(this).data(DATA_KEY) !== undefined;\n }).confirmation('hide');\n\n $('body').off(`${Event.SHOWN}.${self.uid}`);\n self.eventBody = false;\n });\n }\n });\n }\n }\n\n /**\n * Init the standard ok/cancel buttons\n * @param $tip\n * @private\n */\n _setStandardButtons($tip) {\n const self = this;\n\n const btnApply = $tip.find(Selector.BTN_APPLY)\n .addClass(this.config.btnOkClass)\n .html(this.config.btnOkLabel)\n .attr(this.config._attributes);\n\n if (this.config.btnOkIconClass || this.config.btnOkIconContent) {\n btnApply.prepend($('')\n .addClass(this.config.btnOkIconClass || '')\n .text(this.config.btnOkIconContent || ''));\n }\n\n btnApply.off('click')\n .one('click', function (e) {\n if ($(this).attr('href') === '#') {\n e.preventDefault();\n }\n\n self.config.onConfirm.call(self.element);\n $(self.element).trigger(Event.CONFIRMED);\n $(self.element).trigger(self.config.confirmationEvent, [true]);\n\n self.hide();\n });\n\n const btnDismiss = $tip.find(Selector.BTN_DISMISS)\n .addClass(this.config.btnCancelClass)\n .html(this.config.btnCancelLabel);\n\n if (this.config.btnCancelIconClass || this.config.btnCancelIconContent) {\n btnDismiss.prepend($('')\n .addClass(this.config.btnCancelIconClass || '')\n .text(this.config.btnCancelIconContent || ''));\n }\n\n btnDismiss.off('click')\n .one('click', (e) => {\n e.preventDefault();\n\n self.config.onCancel.call(self.element);\n $(self.element).trigger(Event.CANCELED);\n\n self.hide();\n });\n }\n\n /**\n * Init the custom buttons\n * @param $tip\n * @private\n */\n _setCustomButtons($tip) {\n const self = this;\n const $group = $tip.find(Selector.BUTTONS).empty();\n\n this.config.buttons.forEach((button) => {\n const btn = $('')\n .addClass(BTN_CLASS_DEFAULT)\n .addClass(button.class || 'btn btn-secondary')\n .html(button.label || '')\n .attr(button.attr || {});\n\n if (button.iconClass || button.iconContent) {\n btn.prepend($('')\n .addClass(button.iconClass || '')\n .text(button.iconContent || ''));\n }\n\n btn.one('click', function (e) {\n if ($(this).attr('href') === '#') {\n e.preventDefault();\n }\n\n if (button.onClick) {\n button.onClick.call($(self.element));\n }\n\n if (button.cancel) {\n self.config.onCancel.call(self.element, button.value);\n $(self.element).trigger(Event.CANCELED, [button.value]);\n }\n else {\n self.config.onConfirm.call(self.element, button.value);\n $(self.element).trigger(Event.CONFIRMED, [button.value]);\n }\n\n self.hide();\n });\n\n $group.append(btn);\n });\n }\n\n /**\n * Install the keyboatd event handler\n * @private\n */\n _setupKeyupEvent() {\n activeConfirmation = this;\n $(window)\n .off(Event.KEYUP)\n .on(Event.KEYUP, this._onKeyup.bind(this));\n }\n\n /**\n * Remove the keyboard event handler\n * @private\n */\n _cleanKeyupEvent() {\n if (activeConfirmation === this) {\n activeConfirmation = undefined;\n $(window).off(Event.KEYUP);\n }\n }\n\n /**\n * Event handler for keyboard navigation\n * @param event\n * @private\n */\n _onKeyup(event) {\n if (!this.tip) {\n this._cleanKeyupEvent();\n return;\n }\n\n const $tip = $(this.getTipElement());\n const key = event.key || Keymap[event.keyCode || event.which];\n\n const $group = $tip.find(Selector.BUTTONS);\n const $active = $group.find('.active');\n let $next;\n\n switch (key) {\n case 'Escape':\n this.hide();\n break;\n\n case 'ArrowRight':\n if ($active.length && $active.next().length) {\n $next = $active.next();\n }\n else {\n $next = $group.children().first();\n }\n $active.removeClass('active');\n $next.addClass('active').focus();\n break;\n\n case 'ArrowLeft':\n if ($active.length && $active.prev().length) {\n $next = $active.prev();\n }\n else {\n $next = $group.children().last();\n }\n $active.removeClass('active');\n $next.addClass('active').focus();\n break;\n\n default:\n break;\n }\n }\n\n // Static\n\n /**\n * Generates an uui, copied from Bootrap's utils\n * @param {string} prefix\n * @returns {string}\n */\n static getUID(prefix) {\n let uid = prefix;\n do {\n // eslint-disable-next-line no-bitwise\n uid += ~~(Math.random() * 1000000); // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(uid));\n return uid;\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY);\n\n const _config = typeof config === 'object' ? config : {};\n _config.rootSelector = $(this).selector || _config.rootSelector; // this.selector removed in jQuery > 3\n\n if (!data && /destroy|hide/.test(config)) {\n return;\n }\n\n if (!data) {\n data = new Confirmation(this, _config);\n $(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n }\n });\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Confirmation._jQueryInterface;\n$.fn[NAME].Constructor = Confirmation;\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n return Confirmation._jQueryInterface;\n};\n\nexport default Confirmation;\n"],"names":["$","fn","popover","Constructor","VERSION","split","shift","Error","Popover","NAME","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","BTN_CLASS_DEFAULT","DefaultType","singleton","popout","copyAttributes","onConfirm","onCancel","btnOkClass","btnOkLabel","btnOkIconClass","btnOkIconContent","btnCancelClass","btnCancelLabel","btnCancelIconClass","btnCancelIconContent","buttons","Default","_attributes","_selector","placement","title","trigger","confirmationEvent","undefined","content","noop","template","ClassName","FADE","SHOW","Selector","TITLE","CONTENT","BUTTONS","BTN_APPLY","BTN_DISMISS","Keymap","Event","HIDE","HIDDEN","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CONFIRMED","CANCELED","KEYUP","activeConfirmation","Confirmation","element","config","rootSelector","_isDelegate","selector","_copyAttributes","_setConfirmationListeners","isWithContent","setContent","$tip","getTipElement","_getContent","call","setElementContent","find","getTitle","toggle","length","_setCustomButtons","_setStandardButtons","removeClass","_setupKeyupEvent","dispose","_cleanKeyupEvent","hide","callback","forEach","attr","self","on","e","ack","preventDefault","stopPropagation","stopImmediatePropagation","not","filter","data","confirmation","eventBody","uid","id","getUID","is","target","off","btnApply","addClass","html","prepend","text","one","btnDismiss","$group","empty","button","btn","class","label","iconClass","iconContent","onClick","cancel","value","append","window","_onKeyup","bind","event","tip","key","keyCode","which","$active","$next","next","children","first","focus","prev","last","prefix","Math","random","document","getElementById","_jQueryInterface","each","_config","test","TypeError","noConflict"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"bootstrap-confirmation.js","sources":["../rollupPluginBabelHelpers","../src/popover.js","../src/confirmation.js"],"sourcesContent":["export { _createClass as createClass, _defineProperty as defineProperty, _objectSpread as objectSpread, _inheritsLoose as inheritsLoose, _assertThisInitialized as assertThisInitialized };\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import $ from 'jquery';\nimport 'bootstrap';\n\nif (typeof $.fn.popover === 'undefined' || $.fn.popover.Constructor.VERSION.split('.').shift() !== '4') {\n throw new Error('Bootstrap Confirmation 4 requires Bootstrap Popover 4');\n}\n\nconst Popover = $.fn.popover.Constructor;\n\nexport default Popover;\n","import $ from 'jquery';\nimport Popover from 'bootstrap/js/src/popover';\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'confirmation';\nconst VERSION = '4.0.2';\nconst DATA_KEY = `bs.${NAME}`;\nconst EVENT_KEY = `.${DATA_KEY}`;\nconst JQUERY_NO_CONFLICT = $.fn[NAME];\nconst BTN_CLASS_DEFAULT = 'btn btn-sm h-100 d-flex align-items-center';\n\nconst DefaultType = {\n ...Popover.DefaultType,\n singleton : 'boolean',\n popout : 'boolean',\n copyAttributes : '(string|array)',\n onConfirm : 'function',\n onCancel : 'function',\n btnOkClass : 'string',\n btnOkLabel : 'string',\n btnOkIconClass : 'string',\n btnOkIconContent : 'string',\n btnCancelClass : 'string',\n btnCancelLabel : 'string',\n btnCancelIconClass : 'string',\n btnCancelIconContent: 'string',\n buttons : 'array',\n};\n\nconst Default = {\n ...Popover.Default,\n _attributes : {},\n _selector : null,\n placement : 'top',\n title : 'Are you sure?',\n trigger : 'click',\n confirmationEvent : undefined,\n content : '',\n singleton : false,\n popout : false,\n copyAttributes : 'href target',\n onConfirm : $.noop,\n onCancel : $.noop,\n btnOkClass : 'btn-primary',\n btnOkLabel : 'Yes',\n btnOkIconClass : '',\n btnOkIconContent : '',\n btnCancelClass : 'btn-secondary',\n btnCancelLabel : 'No',\n btnCancelIconClass : '',\n btnCancelIconContent: '',\n buttons : [],\n // @formatter:off\n // href=\"#\" allows the buttons to be focused\n template : `\n
\n
\n

\n
\n

\n
\n
\n \n \n
\n
\n
\n
`,\n // @formatter:on\n};\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show',\n};\n\nconst Selector = {\n TITLE : '.popover-header',\n CONTENT : '.confirmation-content',\n BUTTONS : '.confirmation-buttons .btn-group',\n BTN_APPLY : '[data-apply=confirmation]',\n BTN_DISMISS: '[data-dismiss=confirmation]',\n};\n\nconst Keymap = {\n 13: 'Enter',\n 27: 'Escape',\n 39: 'ArrowRight',\n 40: 'ArrowDown',\n};\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n CONFIRMED : `confirmed${EVENT_KEY}`,\n CANCELED : `canceled${EVENT_KEY}`,\n KEYUP : `keyup${EVENT_KEY}`,\n};\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n// keep track of the last openned confirmation for keyboard navigation\nlet activeConfirmation;\n\nclass Confirmation extends Popover {\n // Getters\n\n static get VERSION() {\n return VERSION;\n }\n\n static get Default() {\n return Default;\n }\n\n static get NAME() {\n return NAME;\n }\n\n static get DATA_KEY() {\n return DATA_KEY;\n }\n\n static get Event() {\n return Event;\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY;\n }\n\n static get DefaultType() {\n return DefaultType;\n }\n\n // Constructor\n\n constructor(element, config) {\n super(element, config);\n\n if ((this.config.popout || this.config.singleton) && !this.config.rootSelector) {\n throw new Error('The rootSelector option is required to use popout and singleton features since jQuery 3.');\n }\n\n // keep trace of selectors\n this._isDelegate = false;\n\n if (config.selector) { // container of buttons\n config._selector = `${config.rootSelector} ${config.selector}`;\n this.config._selector = config._selector;\n }\n else if (config._selector) { // children of container\n this.config._selector = config._selector;\n this._isDelegate = true;\n }\n else { // standalone\n this.config._selector = config.rootSelector;\n }\n\n if (this.config.confirmationEvent === undefined) {\n this.config.confirmationEvent = this.config.trigger;\n }\n\n if (!this.config.selector) {\n this._copyAttributes();\n }\n\n this._setConfirmationListeners();\n }\n\n // Overrides\n\n isWithContent() {\n return true;\n }\n\n setContent() {\n const $tip = $(this.getTipElement());\n let content = this._getContent();\n\n if (typeof content === 'function') {\n content = content.call(this.element);\n }\n\n this.setElementContent($tip.find(Selector.TITLE), this.getTitle());\n\n $tip.find(Selector.CONTENT).toggle(!!content);\n if (content) {\n this.setElementContent($tip.find(Selector.CONTENT), content);\n }\n\n if (this.config.buttons.length > 0) {\n this._setCustomButtons($tip);\n }\n else {\n this._setStandardButtons($tip);\n }\n\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`);\n\n this._setupKeyupEvent();\n }\n\n dispose() {\n this._cleanKeyupEvent();\n super.dispose();\n }\n\n hide(callback) {\n this._cleanKeyupEvent();\n super.hide(callback);\n }\n\n // Private\n\n /**\n * Copy the value of `copyAttributes` on the config object\n * @private\n */\n _copyAttributes() {\n this.config._attributes = {};\n if (this.config.copyAttributes) {\n if (typeof this.config.copyAttributes === 'string') {\n this.config.copyAttributes = this.config.copyAttributes.split(' ');\n }\n }\n else {\n this.config.copyAttributes = [];\n }\n\n this.config.copyAttributes.forEach((attr) => {\n this.config._attributes[attr] = $(this.element).attr(attr);\n });\n }\n\n /**\n * Custom event listeners for popouts and singletons\n * @private\n */\n _setConfirmationListeners() {\n const self = this;\n\n if (!this.config.selector) {\n // cancel original event\n $(this.element).on(this.config.trigger, (e, ack) => {\n if (!ack) {\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n });\n\n // manage singleton\n $(this.element).on(Event.SHOWN, function () {\n if (self.config.singleton) {\n // close all other popover already initialized\n $(self.config._selector).not($(this)).filter(function () {\n return $(this).data(DATA_KEY) !== undefined;\n }).confirmation('hide');\n }\n });\n }\n else {\n // cancel original event\n $(this.element).on(this.config.trigger, this.config.selector, (e, ack) => {\n if (!ack) {\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n });\n }\n\n if (!this._isDelegate) {\n // manage popout\n this.eventBody = false;\n this.uid = this.element.id || Confirmation.getUID(`${NAME}_group`);\n\n $(this.element).on(Event.SHOWN, () => {\n if (self.config.popout && !self.eventBody) {\n self.eventBody = $('body').on(`${Event.CLICK}.${self.uid}`, (e) => {\n if ($(self.config._selector).is(e.target)) {\n return;\n }\n // close all popover already initialized\n $(self.config._selector).filter(function () {\n return $(this).data(DATA_KEY) !== undefined;\n }).confirmation('hide');\n\n $('body').off(`${Event.CLICK}.${self.uid}`);\n self.eventBody = false;\n });\n }\n });\n }\n }\n\n /**\n * Init the standard ok/cancel buttons\n * @param $tip\n * @private\n */\n _setStandardButtons($tip) {\n const self = this;\n\n const btnApply = $tip.find(Selector.BTN_APPLY)\n .addClass(this.config.btnOkClass)\n .html(this.config.btnOkLabel)\n .attr(this.config._attributes);\n\n if (this.config.btnOkIconClass || this.config.btnOkIconContent) {\n btnApply.prepend($('')\n .addClass(this.config.btnOkIconClass || '')\n .text(this.config.btnOkIconContent || ''));\n }\n\n btnApply.off('click')\n .one('click', function (e) {\n if ($(this).attr('href') === '#') {\n e.preventDefault();\n }\n\n self.config.onConfirm.call(self.element);\n $(self.element).trigger(Event.CONFIRMED);\n $(self.element).trigger(self.config.confirmationEvent, [true]);\n\n self.hide();\n });\n\n const btnDismiss = $tip.find(Selector.BTN_DISMISS)\n .addClass(this.config.btnCancelClass)\n .html(this.config.btnCancelLabel);\n\n if (this.config.btnCancelIconClass || this.config.btnCancelIconContent) {\n btnDismiss.prepend($('')\n .addClass(this.config.btnCancelIconClass || '')\n .text(this.config.btnCancelIconContent || ''));\n }\n\n btnDismiss.off('click')\n .one('click', (e) => {\n e.preventDefault();\n\n self.config.onCancel.call(self.element);\n $(self.element).trigger(Event.CANCELED);\n\n self.hide();\n });\n }\n\n /**\n * Init the custom buttons\n * @param $tip\n * @private\n */\n _setCustomButtons($tip) {\n const self = this;\n const $group = $tip.find(Selector.BUTTONS).empty();\n\n this.config.buttons.forEach((button) => {\n const btn = $('')\n .addClass(BTN_CLASS_DEFAULT)\n .addClass(button.class || 'btn btn-secondary')\n .html(button.label || '')\n .attr(button.attr || {});\n\n if (button.iconClass || button.iconContent) {\n btn.prepend($('')\n .addClass(button.iconClass || '')\n .text(button.iconContent || ''));\n }\n\n btn.one('click', function (e) {\n if ($(this).attr('href') === '#') {\n e.preventDefault();\n }\n\n if (button.onClick) {\n button.onClick.call($(self.element));\n }\n\n if (button.cancel) {\n self.config.onCancel.call(self.element, button.value);\n $(self.element).trigger(Event.CANCELED, [button.value]);\n }\n else {\n self.config.onConfirm.call(self.element, button.value);\n $(self.element).trigger(Event.CONFIRMED, [button.value]);\n }\n\n self.hide();\n });\n\n $group.append(btn);\n });\n }\n\n /**\n * Install the keyboatd event handler\n * @private\n */\n _setupKeyupEvent() {\n activeConfirmation = this;\n $(window)\n .off(Event.KEYUP)\n .on(Event.KEYUP, this._onKeyup.bind(this));\n }\n\n /**\n * Remove the keyboard event handler\n * @private\n */\n _cleanKeyupEvent() {\n if (activeConfirmation === this) {\n activeConfirmation = undefined;\n $(window).off(Event.KEYUP);\n }\n }\n\n /**\n * Event handler for keyboard navigation\n * @param event\n * @private\n */\n _onKeyup(event) {\n if (!this.tip) {\n this._cleanKeyupEvent();\n return;\n }\n\n const $tip = $(this.getTipElement());\n const key = event.key || Keymap[event.keyCode || event.which];\n\n const $group = $tip.find(Selector.BUTTONS);\n const $active = $group.find('.active');\n let $next;\n\n switch (key) {\n case 'Escape':\n this.hide();\n break;\n\n case 'ArrowRight':\n if ($active.length && $active.next().length) {\n $next = $active.next();\n }\n else {\n $next = $group.children().first();\n }\n $active.removeClass('active');\n $next.addClass('active').focus();\n break;\n\n case 'ArrowLeft':\n if ($active.length && $active.prev().length) {\n $next = $active.prev();\n }\n else {\n $next = $group.children().last();\n }\n $active.removeClass('active');\n $next.addClass('active').focus();\n break;\n\n default:\n break;\n }\n }\n\n // Static\n\n /**\n * Generates an uui, copied from Bootrap's utils\n * @param {string} prefix\n * @returns {string}\n */\n static getUID(prefix) {\n let uid = prefix;\n do {\n // eslint-disable-next-line no-bitwise\n uid += ~~(Math.random() * 1000000); // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(uid));\n return uid;\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY);\n\n const _config = typeof config === 'object' ? config : {};\n _config.rootSelector = $(this).selector || _config.rootSelector; // this.selector removed in jQuery > 3\n\n if (!data && /destroy|hide/.test(config)) {\n return;\n }\n\n if (!data) {\n data = new Confirmation(this, _config);\n $(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n }\n });\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Confirmation._jQueryInterface;\n$.fn[NAME].Constructor = Confirmation;\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n return Confirmation._jQueryInterface;\n};\n\nexport default Confirmation;\n"],"names":["$","fn","popover","Constructor","VERSION","split","shift","Error","Popover","NAME","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","BTN_CLASS_DEFAULT","DefaultType","singleton","popout","copyAttributes","onConfirm","onCancel","btnOkClass","btnOkLabel","btnOkIconClass","btnOkIconContent","btnCancelClass","btnCancelLabel","btnCancelIconClass","btnCancelIconContent","buttons","Default","_attributes","_selector","placement","title","trigger","confirmationEvent","undefined","content","noop","template","ClassName","FADE","SHOW","Selector","TITLE","CONTENT","BUTTONS","BTN_APPLY","BTN_DISMISS","Keymap","Event","HIDE","HIDDEN","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CONFIRMED","CANCELED","KEYUP","activeConfirmation","Confirmation","element","config","rootSelector","_isDelegate","selector","_copyAttributes","_setConfirmationListeners","isWithContent","setContent","$tip","getTipElement","_getContent","call","setElementContent","find","getTitle","toggle","length","_setCustomButtons","_setStandardButtons","removeClass","_setupKeyupEvent","dispose","_cleanKeyupEvent","hide","callback","forEach","attr","self","on","e","ack","preventDefault","stopPropagation","stopImmediatePropagation","not","filter","data","confirmation","eventBody","uid","id","getUID","is","target","off","btnApply","addClass","html","prepend","text","one","btnDismiss","$group","empty","button","btn","class","label","iconClass","iconContent","onClick","cancel","value","append","window","_onKeyup","bind","event","tip","key","keyCode","which","$active","$next","next","children","first","focus","prev","last","prefix","Math","random","document","getElementById","_jQueryInterface","each","_config","test","TypeError","noConflict"],"mappings":"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"} \ No newline at end of file diff --git a/dist/bootstrap-confirmation.min.js b/dist/bootstrap-confirmation.min.js index 932ea43..1a6461c 100644 --- a/dist/bootstrap-confirmation.min.js +++ b/dist/bootstrap-confirmation.min.js @@ -1,8 +1,8 @@ /*! - * Bootstrap Confirmation (v4.0.1) + * Bootstrap Confirmation (v4.0.2) * @copyright 2013 Nimit Suwannagate * @copyright 2014-2018 Damien "Mistic" Sorel * @licence Apache License, Version 2.0 */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(require("jquery"),require("bootstrap")):"function"==typeof define&&define.amd?define(["jquery","bootstrap"],e):e(t.jQuery)}(this,function(a){"use strict";function l(t,e){for(var n=0;n\n
\n

\n
\n

\n
\n
\n \n \n
\n
\n
\n'}),C="fade",y="show",m=".popover-header",v=".confirmation-content",E=".confirmation-buttons .btn-group",_="[data-apply=confirmation]",O="[data-dismiss=confirmation]",k={13:"Enter",27:"Escape",39:"ArrowRight",40:"ArrowDown"},I={HIDE:"hide"+h,HIDDEN:"hidden"+h,SHOW:"show"+h,SHOWN:"shown"+h,INSERTED:"inserted"+h,CLICK:"click"+h,FOCUSIN:"focusin"+h,FOCUSOUT:"focusout"+h,MOUSEENTER:"mouseenter"+h,MOUSELEAVE:"mouseleave"+h,CONFIRMED:"confirmed"+h,CANCELED:"canceled"+h,KEYUP:"keyup"+h},o=function(o){var t,e,n,i,r;function s(t,e){var n;if(((n=o.call(this,t,e)||this).config.popout||n.config.singleton)&&!n.config.rootSelector)throw new Error("The rootSelector option is required to use popout and singleton features since jQuery 3.");return n._isDelegate=!1,e.selector?(e._selector=e.rootSelector+" "+e.selector,n.config._selector=e._selector):e._selector?(n.config._selector=e._selector,n._isDelegate=!0):n.config._selector=e.rootSelector,void 0===n.config.confirmationEvent&&(n.config.confirmationEvent=n.config.trigger),n.config.selector||n._copyAttributes(),n._setConfirmationListeners(),n}e=o,(t=s).prototype=Object.create(e.prototype),(t.prototype.constructor=t).__proto__=e,n=s,r=[{key:"VERSION",get:function(){return"4.0.1"}},{key:"Default",get:function(){return b}},{key:"NAME",get:function(){return u}},{key:"DATA_KEY",get:function(){return p}},{key:"Event",get:function(){return I}},{key:"EVENT_KEY",get:function(){return h}},{key:"DefaultType",get:function(){return g}}],(i=null)&&l(n.prototype,i),r&&l(n,r);var c=s.prototype;return c.isWithContent=function(){return!0},c.setContent=function(){var t=a(this.getTipElement()),e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(m),this.getTitle()),t.find(v).toggle(!!e),e&&this.setElementContent(t.find(v),e),0").addClass(this.config.btnOkIconClass||"").text(this.config.btnOkIconContent||"")),n.off("click").one("click",function(t){"#"===a(this).attr("href")&&t.preventDefault(),e.config.onConfirm.call(e.element),a(e.element).trigger(I.CONFIRMED),a(e.element).trigger(e.config.confirmationEvent,[!0]),e.hide()});var o=t.find(O).addClass(this.config.btnCancelClass).html(this.config.btnCancelLabel);(this.config.btnCancelIconClass||this.config.btnCancelIconContent)&&o.prepend(a("").addClass(this.config.btnCancelIconClass||"").text(this.config.btnCancelIconContent||"")),o.off("click").one("click",function(t){t.preventDefault(),e.config.onCancel.call(e.element),a(e.element).trigger(I.CANCELED),e.hide()})},c._setCustomButtons=function(t){var n=this,o=t.find(E).empty();this.config.buttons.forEach(function(e){var t=a('').addClass(d).addClass(e.class||"btn btn-secondary").html(e.label||"").attr(e.attr||{});(e.iconClass||e.iconContent)&&t.prepend(a("").addClass(e.iconClass||"").text(e.iconContent||"")),t.one("click",function(t){"#"===a(this).attr("href")&&t.preventDefault(),e.onClick&&e.onClick.call(a(n.element)),e.cancel?(n.config.onCancel.call(n.element,e.value),a(n.element).trigger(I.CANCELED,[e.value])):(n.config.onConfirm.call(n.element,e.value),a(n.element).trigger(I.CONFIRMED,[e.value])),n.hide()}),o.append(t)})},c._setupKeyupEvent=function(){f=this,a(window).off(I.KEYUP).on(I.KEYUP,this._onKeyup.bind(this))},c._cleanKeyupEvent=function(){f===this&&(f=void 0,a(window).off(I.KEYUP))},c._onKeyup=function(t){if(this.tip){var e,n=a(this.getTipElement()),o=t.key||k[t.keyCode||t.which],i=n.find(E),r=i.find(".active");switch(o){case"Escape":this.hide();break;case"ArrowRight":e=r.length&&r.next().length?r.next():i.children().first(),r.removeClass("active"),e.addClass("active").focus();break;case"ArrowLeft":e=r.length&&r.prev().length?r.prev():i.children().last(),r.removeClass("active"),e.addClass("active").focus()}}else this._cleanKeyupEvent()},s.getUID=function(t){for(var e=t;e+=~~(1e6*Math.random()),document.getElementById(e););return e},s._jQueryInterface=function(n){return this.each(function(){var t=a(this).data(p),e="object"==typeof n?n:{};if(e.rootSelector=a(this).selector||e.rootSelector,(t||!/destroy|hide/.test(n))&&(t||(t=new s(this,e),a(this).data(p,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},s}(e);a.fn[u]=o._jQueryInterface,a.fn[u].Constructor=o,a.fn[u].noConflict=function(){return a.fn[u]=n,o._jQueryInterface}}); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(require("jquery"),require("bootstrap")):"function"==typeof define&&define.amd?define(["jquery","bootstrap"],e):e(t.jQuery)}(this,function(a){"use strict";function l(t,e){for(var n=0;n\n
\n

\n
\n

\n
\n
\n \n \n
\n
\n
\n'}),b="fade",y="show",m=".popover-header",v=".confirmation-content",E=".confirmation-buttons .btn-group",_="[data-apply=confirmation]",O="[data-dismiss=confirmation]",k={13:"Enter",27:"Escape",39:"ArrowRight",40:"ArrowDown"},I={HIDE:"hide"+h,HIDDEN:"hidden"+h,SHOW:"show"+h,SHOWN:"shown"+h,INSERTED:"inserted"+h,CLICK:"click"+h,FOCUSIN:"focusin"+h,FOCUSOUT:"focusout"+h,MOUSEENTER:"mouseenter"+h,MOUSELEAVE:"mouseleave"+h,CONFIRMED:"confirmed"+h,CANCELED:"canceled"+h,KEYUP:"keyup"+h},o=function(o){var t,e,n,i,r;function s(t,e){var n;if(((n=o.call(this,t,e)||this).config.popout||n.config.singleton)&&!n.config.rootSelector)throw new Error("The rootSelector option is required to use popout and singleton features since jQuery 3.");return n._isDelegate=!1,e.selector?(e._selector=e.rootSelector+" "+e.selector,n.config._selector=e._selector):e._selector?(n.config._selector=e._selector,n._isDelegate=!0):n.config._selector=e.rootSelector,void 0===n.config.confirmationEvent&&(n.config.confirmationEvent=n.config.trigger),n.config.selector||n._copyAttributes(),n._setConfirmationListeners(),n}e=o,(t=s).prototype=Object.create(e.prototype),(t.prototype.constructor=t).__proto__=e,n=s,r=[{key:"VERSION",get:function(){return"4.0.2"}},{key:"Default",get:function(){return C}},{key:"NAME",get:function(){return u}},{key:"DATA_KEY",get:function(){return p}},{key:"Event",get:function(){return I}},{key:"EVENT_KEY",get:function(){return h}},{key:"DefaultType",get:function(){return g}}],(i=null)&&l(n.prototype,i),r&&l(n,r);var c=s.prototype;return c.isWithContent=function(){return!0},c.setContent=function(){var t=a(this.getTipElement()),e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(m),this.getTitle()),t.find(v).toggle(!!e),e&&this.setElementContent(t.find(v),e),0").addClass(this.config.btnOkIconClass||"").text(this.config.btnOkIconContent||"")),n.off("click").one("click",function(t){"#"===a(this).attr("href")&&t.preventDefault(),e.config.onConfirm.call(e.element),a(e.element).trigger(I.CONFIRMED),a(e.element).trigger(e.config.confirmationEvent,[!0]),e.hide()});var o=t.find(O).addClass(this.config.btnCancelClass).html(this.config.btnCancelLabel);(this.config.btnCancelIconClass||this.config.btnCancelIconContent)&&o.prepend(a("").addClass(this.config.btnCancelIconClass||"").text(this.config.btnCancelIconContent||"")),o.off("click").one("click",function(t){t.preventDefault(),e.config.onCancel.call(e.element),a(e.element).trigger(I.CANCELED),e.hide()})},c._setCustomButtons=function(t){var n=this,o=t.find(E).empty();this.config.buttons.forEach(function(e){var t=a('').addClass(d).addClass(e.class||"btn btn-secondary").html(e.label||"").attr(e.attr||{});(e.iconClass||e.iconContent)&&t.prepend(a("").addClass(e.iconClass||"").text(e.iconContent||"")),t.one("click",function(t){"#"===a(this).attr("href")&&t.preventDefault(),e.onClick&&e.onClick.call(a(n.element)),e.cancel?(n.config.onCancel.call(n.element,e.value),a(n.element).trigger(I.CANCELED,[e.value])):(n.config.onConfirm.call(n.element,e.value),a(n.element).trigger(I.CONFIRMED,[e.value])),n.hide()}),o.append(t)})},c._setupKeyupEvent=function(){f=this,a(window).off(I.KEYUP).on(I.KEYUP,this._onKeyup.bind(this))},c._cleanKeyupEvent=function(){f===this&&(f=void 0,a(window).off(I.KEYUP))},c._onKeyup=function(t){if(this.tip){var e,n=a(this.getTipElement()),o=t.key||k[t.keyCode||t.which],i=n.find(E),r=i.find(".active");switch(o){case"Escape":this.hide();break;case"ArrowRight":e=r.length&&r.next().length?r.next():i.children().first(),r.removeClass("active"),e.addClass("active").focus();break;case"ArrowLeft":e=r.length&&r.prev().length?r.prev():i.children().last(),r.removeClass("active"),e.addClass("active").focus()}}else this._cleanKeyupEvent()},s.getUID=function(t){for(var e=t;e+=~~(1e6*Math.random()),document.getElementById(e););return e},s._jQueryInterface=function(n){return this.each(function(){var t=a(this).data(p),e="object"==typeof n?n:{};if(e.rootSelector=a(this).selector||e.rootSelector,(t||!/destroy|hide/.test(n))&&(t||(t=new s(this,e),a(this).data(p,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},s}(e);a.fn[u]=o._jQueryInterface,a.fn[u].Constructor=o,a.fn[u].noConflict=function(){return a.fn[u]=n,o._jQueryInterface}}); //# sourceMappingURL=bootstrap-confirmation.min.js.map \ No newline at end of file diff --git a/dist/bootstrap-confirmation.min.js.map b/dist/bootstrap-confirmation.min.js.map index 2110b8c..4ca0137 100644 --- a/dist/bootstrap-confirmation.min.js.map +++ b/dist/bootstrap-confirmation.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../rollupPluginBabelHelpers","../src/popover.js","../src/confirmation.js"],"names":["_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_objectSpread","arguments","source","ownKeys","keys","getOwnPropertySymbols","concat","filter","sym","getOwnPropertyDescriptor","forEach","obj","value","fn","popover","$","Constructor","VERSION","split","shift","Error","activeConfirmation","Popover","NAME","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","BTN_CLASS_DEFAULT","DefaultType","singleton","popout","copyAttributes","onConfirm","onCancel","btnOkClass","btnOkLabel","btnOkIconClass","btnOkIconContent","btnCancelClass","btnCancelLabel","btnCancelIconClass","btnCancelIconContent","buttons","Default","_attributes","_selector","placement","title","trigger","confirmationEvent","undefined","content","noop","template","ClassName","Selector","Keymap","13","27","39","40","Event","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CONFIRMED","CANCELED","KEYUP","Confirmation","subClass","superClass","protoProps","staticProps","element","config","_this","_Popover","call","this","rootSelector","_isDelegate","selector","_copyAttributes","_setConfirmationListeners","prototype","create","constructor","__proto__","isWithContent","setContent","$tip","getTipElement","_getContent","setElementContent","find","getTitle","toggle","_setCustomButtons","_setStandardButtons","removeClass","_setupKeyupEvent","dispose","_cleanKeyupEvent","hide","callback","_this2","attr","self","on","e","ack","preventDefault","stopPropagation","stopImmediatePropagation","not","data","confirmation","eventBody","uid","id","getUID","is","off","btnApply","addClass","html","prepend","text","one","btnDismiss","$group","empty","button","btn","class","label","iconClass","iconContent","onClick","cancel","append","window","_onKeyup","bind","event","tip","$next","keyCode","which","$active","next","children","first","focus","prev","last","prefix","Math","random","document","getElementById","_jQueryInterface","each","_config","test","TypeError","noConflict"],"mappings":"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","sourcesContent":["export { _createClass as createClass, _defineProperty as defineProperty, _objectSpread as objectSpread, _inheritsLoose as inheritsLoose, _assertThisInitialized as assertThisInitialized };\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import $ from 'jquery';\nimport 'bootstrap';\n\nif (typeof $.fn.popover === 'undefined' || $.fn.popover.Constructor.VERSION.split('.').shift() !== '4') {\n throw new Error('Bootstrap Confirmation 4 requires Bootstrap Popover 4');\n}\n\nconst Popover = $.fn.popover.Constructor;\n\nexport default Popover;\n","import $ from 'jquery';\nimport Popover from 'bootstrap/js/src/popover';\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'confirmation';\nconst VERSION = '4.0.1';\nconst DATA_KEY = `bs.${NAME}`;\nconst EVENT_KEY = `.${DATA_KEY}`;\nconst JQUERY_NO_CONFLICT = $.fn[NAME];\nconst BTN_CLASS_DEFAULT = 'btn btn-sm h-100 d-flex align-items-center';\n\nconst DefaultType = {\n ...Popover.DefaultType,\n singleton : 'boolean',\n popout : 'boolean',\n copyAttributes : '(string|array)',\n onConfirm : 'function',\n onCancel : 'function',\n btnOkClass : 'string',\n btnOkLabel : 'string',\n btnOkIconClass : 'string',\n btnOkIconContent : 'string',\n btnCancelClass : 'string',\n btnCancelLabel : 'string',\n btnCancelIconClass : 'string',\n btnCancelIconContent: 'string',\n buttons : 'array',\n};\n\nconst Default = {\n ...Popover.Default,\n _attributes : {},\n _selector : null,\n placement : 'top',\n title : 'Are you sure?',\n trigger : 'click',\n confirmationEvent : undefined,\n content : '',\n singleton : false,\n popout : false,\n copyAttributes : 'href target',\n onConfirm : $.noop,\n onCancel : $.noop,\n btnOkClass : 'btn-primary',\n btnOkLabel : 'Yes',\n btnOkIconClass : '',\n btnOkIconContent : '',\n btnCancelClass : 'btn-secondary',\n btnCancelLabel : 'No',\n btnCancelIconClass : '',\n btnCancelIconContent: '',\n buttons : [],\n // @formatter:off\n // href=\"#\" allows the buttons to be focused\n template : `\n
\n
\n

\n
\n

\n
\n
\n \n \n
\n
\n
\n
`,\n // @formatter:on\n};\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show',\n};\n\nconst Selector = {\n TITLE : '.popover-header',\n CONTENT : '.confirmation-content',\n BUTTONS : '.confirmation-buttons .btn-group',\n BTN_APPLY : '[data-apply=confirmation]',\n BTN_DISMISS: '[data-dismiss=confirmation]',\n};\n\nconst Keymap = {\n 13: 'Enter',\n 27: 'Escape',\n 39: 'ArrowRight',\n 40: 'ArrowDown',\n};\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n CONFIRMED : `confirmed${EVENT_KEY}`,\n CANCELED : `canceled${EVENT_KEY}`,\n KEYUP : `keyup${EVENT_KEY}`,\n};\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n// keep track of the last openned confirmation for keyboard navigation\nlet activeConfirmation;\n\nclass Confirmation extends Popover {\n // Getters\n\n static get VERSION() {\n return VERSION;\n }\n\n static get Default() {\n return Default;\n }\n\n static get NAME() {\n return NAME;\n }\n\n static get DATA_KEY() {\n return DATA_KEY;\n }\n\n static get Event() {\n return Event;\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY;\n }\n\n static get DefaultType() {\n return DefaultType;\n }\n\n // Constructor\n\n constructor(element, config) {\n super(element, config);\n\n if ((this.config.popout || this.config.singleton) && !this.config.rootSelector) {\n throw new Error('The rootSelector option is required to use popout and singleton features since jQuery 3.');\n }\n\n // keep trace of selectors\n this._isDelegate = false;\n\n if (config.selector) { // container of buttons\n config._selector = `${config.rootSelector} ${config.selector}`;\n this.config._selector = config._selector;\n }\n else if (config._selector) { // children of container\n this.config._selector = config._selector;\n this._isDelegate = true;\n }\n else { // standalone\n this.config._selector = config.rootSelector;\n }\n\n if (this.config.confirmationEvent === undefined) {\n this.config.confirmationEvent = this.config.trigger;\n }\n\n if (!this.config.selector) {\n this._copyAttributes();\n }\n\n this._setConfirmationListeners();\n }\n\n // Overrides\n\n isWithContent() {\n return true;\n }\n\n setContent() {\n const $tip = $(this.getTipElement());\n let content = this._getContent();\n\n if (typeof content === 'function') {\n content = content.call(this.element);\n }\n\n this.setElementContent($tip.find(Selector.TITLE), this.getTitle());\n\n $tip.find(Selector.CONTENT).toggle(!!content);\n if (content) {\n this.setElementContent($tip.find(Selector.CONTENT), content);\n }\n\n if (this.config.buttons.length > 0) {\n this._setCustomButtons($tip);\n }\n else {\n this._setStandardButtons($tip);\n }\n\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`);\n\n this._setupKeyupEvent();\n }\n\n dispose() {\n this._cleanKeyupEvent();\n super.dispose();\n }\n\n hide(callback) {\n this._cleanKeyupEvent();\n super.hide(callback);\n }\n\n // Private\n\n /**\n * Copy the value of `copyAttributes` on the config object\n * @private\n */\n _copyAttributes() {\n this.config._attributes = {};\n if (this.config.copyAttributes) {\n if (typeof this.config.copyAttributes === 'string') {\n this.config.copyAttributes = this.config.copyAttributes.split(' ');\n }\n }\n else {\n this.config.copyAttributes = [];\n }\n\n this.config.copyAttributes.forEach((attr) => {\n this.config._attributes[attr] = $(this.element).attr(attr);\n });\n }\n\n /**\n * Custom event listeners for popouts and singletons\n * @private\n */\n _setConfirmationListeners() {\n const self = this;\n\n if (!this.config.selector) {\n // cancel original event\n $(this.element).on(this.config.trigger, (e, ack) => {\n if (!ack) {\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n });\n\n // manage singleton\n $(this.element).on(Event.SHOWN, function () {\n if (self.config.singleton) {\n // close all other popover already initialized\n $(self.config._selector).not($(this)).filter(function () {\n return $(this).data(DATA_KEY) !== undefined;\n }).confirmation('hide');\n }\n });\n }\n else {\n // cancel original event\n $(this.element).on(this.config.trigger, this.config.selector, (e, ack) => {\n if (!ack) {\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n });\n }\n\n if (!this._isDelegate) {\n // manage popout\n this.eventBody = false;\n this.uid = this.element.id || Confirmation.getUID(`${NAME}_group`);\n\n $(this.element).on(Event.SHOWN, () => {\n if (self.config.popout && !self.eventBody) {\n self.eventBody = $('body').on(`${Event.CLICK}.${self.uid}`, (e) => {\n if ($(self.config._selector).is(e.target)) {\n return;\n }\n // close all popover already initialized\n $(self.config._selector).filter(function () {\n return $(this).data(DATA_KEY) !== undefined;\n }).confirmation('hide');\n\n $('body').off(`${Event.SHOWN}.${self.uid}`);\n self.eventBody = false;\n });\n }\n });\n }\n }\n\n /**\n * Init the standard ok/cancel buttons\n * @param $tip\n * @private\n */\n _setStandardButtons($tip) {\n const self = this;\n\n const btnApply = $tip.find(Selector.BTN_APPLY)\n .addClass(this.config.btnOkClass)\n .html(this.config.btnOkLabel)\n .attr(this.config._attributes);\n\n if (this.config.btnOkIconClass || this.config.btnOkIconContent) {\n btnApply.prepend($('')\n .addClass(this.config.btnOkIconClass || '')\n .text(this.config.btnOkIconContent || ''));\n }\n\n btnApply.off('click')\n .one('click', function (e) {\n if ($(this).attr('href') === '#') {\n e.preventDefault();\n }\n\n self.config.onConfirm.call(self.element);\n $(self.element).trigger(Event.CONFIRMED);\n $(self.element).trigger(self.config.confirmationEvent, [true]);\n\n self.hide();\n });\n\n const btnDismiss = $tip.find(Selector.BTN_DISMISS)\n .addClass(this.config.btnCancelClass)\n .html(this.config.btnCancelLabel);\n\n if (this.config.btnCancelIconClass || this.config.btnCancelIconContent) {\n btnDismiss.prepend($('')\n .addClass(this.config.btnCancelIconClass || '')\n .text(this.config.btnCancelIconContent || ''));\n }\n\n btnDismiss.off('click')\n .one('click', (e) => {\n e.preventDefault();\n\n self.config.onCancel.call(self.element);\n $(self.element).trigger(Event.CANCELED);\n\n self.hide();\n });\n }\n\n /**\n * Init the custom buttons\n * @param $tip\n * @private\n */\n _setCustomButtons($tip) {\n const self = this;\n const $group = $tip.find(Selector.BUTTONS).empty();\n\n this.config.buttons.forEach((button) => {\n const btn = $('')\n .addClass(BTN_CLASS_DEFAULT)\n .addClass(button.class || 'btn btn-secondary')\n .html(button.label || '')\n .attr(button.attr || {});\n\n if (button.iconClass || button.iconContent) {\n btn.prepend($('')\n .addClass(button.iconClass || '')\n .text(button.iconContent || ''));\n }\n\n btn.one('click', function (e) {\n if ($(this).attr('href') === '#') {\n e.preventDefault();\n }\n\n if (button.onClick) {\n button.onClick.call($(self.element));\n }\n\n if (button.cancel) {\n self.config.onCancel.call(self.element, button.value);\n $(self.element).trigger(Event.CANCELED, [button.value]);\n }\n else {\n self.config.onConfirm.call(self.element, button.value);\n $(self.element).trigger(Event.CONFIRMED, [button.value]);\n }\n\n self.hide();\n });\n\n $group.append(btn);\n });\n }\n\n /**\n * Install the keyboatd event handler\n * @private\n */\n _setupKeyupEvent() {\n activeConfirmation = this;\n $(window)\n .off(Event.KEYUP)\n .on(Event.KEYUP, this._onKeyup.bind(this));\n }\n\n /**\n * Remove the keyboard event handler\n * @private\n */\n _cleanKeyupEvent() {\n if (activeConfirmation === this) {\n activeConfirmation = undefined;\n $(window).off(Event.KEYUP);\n }\n }\n\n /**\n * Event handler for keyboard navigation\n * @param event\n * @private\n */\n _onKeyup(event) {\n if (!this.tip) {\n this._cleanKeyupEvent();\n return;\n }\n\n const $tip = $(this.getTipElement());\n const key = event.key || Keymap[event.keyCode || event.which];\n\n const $group = $tip.find(Selector.BUTTONS);\n const $active = $group.find('.active');\n let $next;\n\n switch (key) {\n case 'Escape':\n this.hide();\n break;\n\n case 'ArrowRight':\n if ($active.length && $active.next().length) {\n $next = $active.next();\n }\n else {\n $next = $group.children().first();\n }\n $active.removeClass('active');\n $next.addClass('active').focus();\n break;\n\n case 'ArrowLeft':\n if ($active.length && $active.prev().length) {\n $next = $active.prev();\n }\n else {\n $next = $group.children().last();\n }\n $active.removeClass('active');\n $next.addClass('active').focus();\n break;\n\n default:\n break;\n }\n }\n\n // Static\n\n /**\n * Generates an uui, copied from Bootrap's utils\n * @param {string} prefix\n * @returns {string}\n */\n static getUID(prefix) {\n let uid = prefix;\n do {\n // eslint-disable-next-line no-bitwise\n uid += ~~(Math.random() * 1000000); // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(uid));\n return uid;\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY);\n\n const _config = typeof config === 'object' ? config : {};\n _config.rootSelector = $(this).selector || _config.rootSelector; // this.selector removed in jQuery > 3\n\n if (!data && /destroy|hide/.test(config)) {\n return;\n }\n\n if (!data) {\n data = new Confirmation(this, _config);\n $(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n }\n });\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Confirmation._jQueryInterface;\n$.fn[NAME].Constructor = Confirmation;\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n return Confirmation._jQueryInterface;\n};\n\nexport default Confirmation;\n"]} \ No newline at end of file +{"version":3,"sources":["../rollupPluginBabelHelpers","../src/popover.js","../src/confirmation.js"],"names":["_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_objectSpread","arguments","source","ownKeys","keys","getOwnPropertySymbols","concat","filter","sym","getOwnPropertyDescriptor","forEach","obj","value","fn","popover","$","Constructor","VERSION","split","shift","Error","activeConfirmation","Popover","NAME","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","BTN_CLASS_DEFAULT","DefaultType","singleton","popout","copyAttributes","onConfirm","onCancel","btnOkClass","btnOkLabel","btnOkIconClass","btnOkIconContent","btnCancelClass","btnCancelLabel","btnCancelIconClass","btnCancelIconContent","buttons","Default","_attributes","_selector","placement","title","trigger","confirmationEvent","undefined","content","noop","template","ClassName","Selector","Keymap","13","27","39","40","Event","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CONFIRMED","CANCELED","KEYUP","Confirmation","subClass","superClass","protoProps","staticProps","element","config","_this","_Popover","call","this","rootSelector","_isDelegate","selector","_copyAttributes","_setConfirmationListeners","prototype","create","constructor","__proto__","isWithContent","setContent","$tip","getTipElement","_getContent","setElementContent","find","getTitle","toggle","_setCustomButtons","_setStandardButtons","removeClass","_setupKeyupEvent","dispose","_cleanKeyupEvent","hide","callback","_this2","attr","self","on","e","ack","preventDefault","stopPropagation","stopImmediatePropagation","not","data","confirmation","eventBody","uid","id","getUID","is","off","btnApply","addClass","html","prepend","text","one","btnDismiss","$group","empty","button","btn","class","label","iconClass","iconContent","onClick","cancel","append","window","_onKeyup","bind","event","tip","$next","keyCode","which","$active","next","children","first","focus","prev","last","prefix","Math","random","document","getElementById","_jQueryInterface","each","_config","test","TypeError","noConflict"],"mappings":"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","sourcesContent":["export { _createClass as createClass, _defineProperty as defineProperty, _objectSpread as objectSpread, _inheritsLoose as inheritsLoose, _assertThisInitialized as assertThisInitialized };\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import $ from 'jquery';\nimport 'bootstrap';\n\nif (typeof $.fn.popover === 'undefined' || $.fn.popover.Constructor.VERSION.split('.').shift() !== '4') {\n throw new Error('Bootstrap Confirmation 4 requires Bootstrap Popover 4');\n}\n\nconst Popover = $.fn.popover.Constructor;\n\nexport default Popover;\n","import $ from 'jquery';\nimport Popover from 'bootstrap/js/src/popover';\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'confirmation';\nconst VERSION = '4.0.2';\nconst DATA_KEY = `bs.${NAME}`;\nconst EVENT_KEY = `.${DATA_KEY}`;\nconst JQUERY_NO_CONFLICT = $.fn[NAME];\nconst BTN_CLASS_DEFAULT = 'btn btn-sm h-100 d-flex align-items-center';\n\nconst DefaultType = {\n ...Popover.DefaultType,\n singleton : 'boolean',\n popout : 'boolean',\n copyAttributes : '(string|array)',\n onConfirm : 'function',\n onCancel : 'function',\n btnOkClass : 'string',\n btnOkLabel : 'string',\n btnOkIconClass : 'string',\n btnOkIconContent : 'string',\n btnCancelClass : 'string',\n btnCancelLabel : 'string',\n btnCancelIconClass : 'string',\n btnCancelIconContent: 'string',\n buttons : 'array',\n};\n\nconst Default = {\n ...Popover.Default,\n _attributes : {},\n _selector : null,\n placement : 'top',\n title : 'Are you sure?',\n trigger : 'click',\n confirmationEvent : undefined,\n content : '',\n singleton : false,\n popout : false,\n copyAttributes : 'href target',\n onConfirm : $.noop,\n onCancel : $.noop,\n btnOkClass : 'btn-primary',\n btnOkLabel : 'Yes',\n btnOkIconClass : '',\n btnOkIconContent : '',\n btnCancelClass : 'btn-secondary',\n btnCancelLabel : 'No',\n btnCancelIconClass : '',\n btnCancelIconContent: '',\n buttons : [],\n // @formatter:off\n // href=\"#\" allows the buttons to be focused\n template : `\n
\n
\n

\n
\n

\n
\n
\n \n \n
\n
\n
\n
`,\n // @formatter:on\n};\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show',\n};\n\nconst Selector = {\n TITLE : '.popover-header',\n CONTENT : '.confirmation-content',\n BUTTONS : '.confirmation-buttons .btn-group',\n BTN_APPLY : '[data-apply=confirmation]',\n BTN_DISMISS: '[data-dismiss=confirmation]',\n};\n\nconst Keymap = {\n 13: 'Enter',\n 27: 'Escape',\n 39: 'ArrowRight',\n 40: 'ArrowDown',\n};\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n CONFIRMED : `confirmed${EVENT_KEY}`,\n CANCELED : `canceled${EVENT_KEY}`,\n KEYUP : `keyup${EVENT_KEY}`,\n};\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n// keep track of the last openned confirmation for keyboard navigation\nlet activeConfirmation;\n\nclass Confirmation extends Popover {\n // Getters\n\n static get VERSION() {\n return VERSION;\n }\n\n static get Default() {\n return Default;\n }\n\n static get NAME() {\n return NAME;\n }\n\n static get DATA_KEY() {\n return DATA_KEY;\n }\n\n static get Event() {\n return Event;\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY;\n }\n\n static get DefaultType() {\n return DefaultType;\n }\n\n // Constructor\n\n constructor(element, config) {\n super(element, config);\n\n if ((this.config.popout || this.config.singleton) && !this.config.rootSelector) {\n throw new Error('The rootSelector option is required to use popout and singleton features since jQuery 3.');\n }\n\n // keep trace of selectors\n this._isDelegate = false;\n\n if (config.selector) { // container of buttons\n config._selector = `${config.rootSelector} ${config.selector}`;\n this.config._selector = config._selector;\n }\n else if (config._selector) { // children of container\n this.config._selector = config._selector;\n this._isDelegate = true;\n }\n else { // standalone\n this.config._selector = config.rootSelector;\n }\n\n if (this.config.confirmationEvent === undefined) {\n this.config.confirmationEvent = this.config.trigger;\n }\n\n if (!this.config.selector) {\n this._copyAttributes();\n }\n\n this._setConfirmationListeners();\n }\n\n // Overrides\n\n isWithContent() {\n return true;\n }\n\n setContent() {\n const $tip = $(this.getTipElement());\n let content = this._getContent();\n\n if (typeof content === 'function') {\n content = content.call(this.element);\n }\n\n this.setElementContent($tip.find(Selector.TITLE), this.getTitle());\n\n $tip.find(Selector.CONTENT).toggle(!!content);\n if (content) {\n this.setElementContent($tip.find(Selector.CONTENT), content);\n }\n\n if (this.config.buttons.length > 0) {\n this._setCustomButtons($tip);\n }\n else {\n this._setStandardButtons($tip);\n }\n\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`);\n\n this._setupKeyupEvent();\n }\n\n dispose() {\n this._cleanKeyupEvent();\n super.dispose();\n }\n\n hide(callback) {\n this._cleanKeyupEvent();\n super.hide(callback);\n }\n\n // Private\n\n /**\n * Copy the value of `copyAttributes` on the config object\n * @private\n */\n _copyAttributes() {\n this.config._attributes = {};\n if (this.config.copyAttributes) {\n if (typeof this.config.copyAttributes === 'string') {\n this.config.copyAttributes = this.config.copyAttributes.split(' ');\n }\n }\n else {\n this.config.copyAttributes = [];\n }\n\n this.config.copyAttributes.forEach((attr) => {\n this.config._attributes[attr] = $(this.element).attr(attr);\n });\n }\n\n /**\n * Custom event listeners for popouts and singletons\n * @private\n */\n _setConfirmationListeners() {\n const self = this;\n\n if (!this.config.selector) {\n // cancel original event\n $(this.element).on(this.config.trigger, (e, ack) => {\n if (!ack) {\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n });\n\n // manage singleton\n $(this.element).on(Event.SHOWN, function () {\n if (self.config.singleton) {\n // close all other popover already initialized\n $(self.config._selector).not($(this)).filter(function () {\n return $(this).data(DATA_KEY) !== undefined;\n }).confirmation('hide');\n }\n });\n }\n else {\n // cancel original event\n $(this.element).on(this.config.trigger, this.config.selector, (e, ack) => {\n if (!ack) {\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n });\n }\n\n if (!this._isDelegate) {\n // manage popout\n this.eventBody = false;\n this.uid = this.element.id || Confirmation.getUID(`${NAME}_group`);\n\n $(this.element).on(Event.SHOWN, () => {\n if (self.config.popout && !self.eventBody) {\n self.eventBody = $('body').on(`${Event.CLICK}.${self.uid}`, (e) => {\n if ($(self.config._selector).is(e.target)) {\n return;\n }\n // close all popover already initialized\n $(self.config._selector).filter(function () {\n return $(this).data(DATA_KEY) !== undefined;\n }).confirmation('hide');\n\n $('body').off(`${Event.CLICK}.${self.uid}`);\n self.eventBody = false;\n });\n }\n });\n }\n }\n\n /**\n * Init the standard ok/cancel buttons\n * @param $tip\n * @private\n */\n _setStandardButtons($tip) {\n const self = this;\n\n const btnApply = $tip.find(Selector.BTN_APPLY)\n .addClass(this.config.btnOkClass)\n .html(this.config.btnOkLabel)\n .attr(this.config._attributes);\n\n if (this.config.btnOkIconClass || this.config.btnOkIconContent) {\n btnApply.prepend($('')\n .addClass(this.config.btnOkIconClass || '')\n .text(this.config.btnOkIconContent || ''));\n }\n\n btnApply.off('click')\n .one('click', function (e) {\n if ($(this).attr('href') === '#') {\n e.preventDefault();\n }\n\n self.config.onConfirm.call(self.element);\n $(self.element).trigger(Event.CONFIRMED);\n $(self.element).trigger(self.config.confirmationEvent, [true]);\n\n self.hide();\n });\n\n const btnDismiss = $tip.find(Selector.BTN_DISMISS)\n .addClass(this.config.btnCancelClass)\n .html(this.config.btnCancelLabel);\n\n if (this.config.btnCancelIconClass || this.config.btnCancelIconContent) {\n btnDismiss.prepend($('')\n .addClass(this.config.btnCancelIconClass || '')\n .text(this.config.btnCancelIconContent || ''));\n }\n\n btnDismiss.off('click')\n .one('click', (e) => {\n e.preventDefault();\n\n self.config.onCancel.call(self.element);\n $(self.element).trigger(Event.CANCELED);\n\n self.hide();\n });\n }\n\n /**\n * Init the custom buttons\n * @param $tip\n * @private\n */\n _setCustomButtons($tip) {\n const self = this;\n const $group = $tip.find(Selector.BUTTONS).empty();\n\n this.config.buttons.forEach((button) => {\n const btn = $('')\n .addClass(BTN_CLASS_DEFAULT)\n .addClass(button.class || 'btn btn-secondary')\n .html(button.label || '')\n .attr(button.attr || {});\n\n if (button.iconClass || button.iconContent) {\n btn.prepend($('')\n .addClass(button.iconClass || '')\n .text(button.iconContent || ''));\n }\n\n btn.one('click', function (e) {\n if ($(this).attr('href') === '#') {\n e.preventDefault();\n }\n\n if (button.onClick) {\n button.onClick.call($(self.element));\n }\n\n if (button.cancel) {\n self.config.onCancel.call(self.element, button.value);\n $(self.element).trigger(Event.CANCELED, [button.value]);\n }\n else {\n self.config.onConfirm.call(self.element, button.value);\n $(self.element).trigger(Event.CONFIRMED, [button.value]);\n }\n\n self.hide();\n });\n\n $group.append(btn);\n });\n }\n\n /**\n * Install the keyboatd event handler\n * @private\n */\n _setupKeyupEvent() {\n activeConfirmation = this;\n $(window)\n .off(Event.KEYUP)\n .on(Event.KEYUP, this._onKeyup.bind(this));\n }\n\n /**\n * Remove the keyboard event handler\n * @private\n */\n _cleanKeyupEvent() {\n if (activeConfirmation === this) {\n activeConfirmation = undefined;\n $(window).off(Event.KEYUP);\n }\n }\n\n /**\n * Event handler for keyboard navigation\n * @param event\n * @private\n */\n _onKeyup(event) {\n if (!this.tip) {\n this._cleanKeyupEvent();\n return;\n }\n\n const $tip = $(this.getTipElement());\n const key = event.key || Keymap[event.keyCode || event.which];\n\n const $group = $tip.find(Selector.BUTTONS);\n const $active = $group.find('.active');\n let $next;\n\n switch (key) {\n case 'Escape':\n this.hide();\n break;\n\n case 'ArrowRight':\n if ($active.length && $active.next().length) {\n $next = $active.next();\n }\n else {\n $next = $group.children().first();\n }\n $active.removeClass('active');\n $next.addClass('active').focus();\n break;\n\n case 'ArrowLeft':\n if ($active.length && $active.prev().length) {\n $next = $active.prev();\n }\n else {\n $next = $group.children().last();\n }\n $active.removeClass('active');\n $next.addClass('active').focus();\n break;\n\n default:\n break;\n }\n }\n\n // Static\n\n /**\n * Generates an uui, copied from Bootrap's utils\n * @param {string} prefix\n * @returns {string}\n */\n static getUID(prefix) {\n let uid = prefix;\n do {\n // eslint-disable-next-line no-bitwise\n uid += ~~(Math.random() * 1000000); // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(uid));\n return uid;\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY);\n\n const _config = typeof config === 'object' ? config : {};\n _config.rootSelector = $(this).selector || _config.rootSelector; // this.selector removed in jQuery > 3\n\n if (!data && /destroy|hide/.test(config)) {\n return;\n }\n\n if (!data) {\n data = new Confirmation(this, _config);\n $(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n }\n });\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Confirmation._jQueryInterface;\n$.fn[NAME].Constructor = Confirmation;\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n return Confirmation._jQueryInterface;\n};\n\nexport default Confirmation;\n"]} \ No newline at end of file diff --git a/package.json b/package.json index 1313017..6e2249d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bootstrap-confirmation2", - "version": "4.0.1", + "version": "4.0.2", "homepage": "http://bootstrap-confirmation.js.org", "description": "Bootstrap plugin for on-place confirm boxes using Popover", "license": "Apache-2.0", diff --git a/src/confirmation.js b/src/confirmation.js index 4644708..a040f90 100644 --- a/src/confirmation.js +++ b/src/confirmation.js @@ -8,7 +8,7 @@ import Popover from 'bootstrap/js/src/popover'; */ const NAME = 'confirmation'; -const VERSION = '4.0.1'; +const VERSION = '4.0.2'; const DATA_KEY = `bs.${NAME}`; const EVENT_KEY = `.${DATA_KEY}`; const JQUERY_NO_CONFLICT = $.fn[NAME];