@atlassian/aui 7.10.2 → 7.10.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/changelog.md +35 -0
- package/dist/aui/css/aui-experimental.css.map +1 -1
- package/dist/aui/css/aui-experimental.min.css +1 -1
- package/dist/aui/css/aui-experimental.min.css.map +1 -1
- package/dist/aui/css/aui-iconfonts.min.css.map +1 -1
- package/dist/aui/css/aui.css.map +1 -1
- package/dist/aui/css/aui.min.css +8 -8
- package/dist/aui/css/aui.min.css.map +1 -1
- package/dist/aui/js/aui-css-deprecations.js +6 -6
- package/dist/aui/js/aui-css-deprecations.min.js +1 -1
- package/dist/aui/js/aui-datepicker.js +13 -13
- package/dist/aui/js/aui-datepicker.min.js +1 -1
- package/dist/aui/js/aui-experimental.js +275 -275
- package/dist/aui/js/aui-experimental.min.js +1 -1
- package/dist/aui/js/aui-header-async.js +6 -6
- package/dist/aui/js/aui-header-async.min.js +1 -1
- package/dist/aui/js/aui-soy.js +56 -56
- package/dist/aui/js/aui-soy.min.js +1 -1
- package/dist/aui/js/aui.js +2278 -1544
- package/dist/aui/js/aui.min.js +1 -1
- package/lib/css/aui-date-picker.css.map +1 -1
- package/lib/css/aui-experimental-tooltip.css.map +1 -1
- package/lib/css/aui-page-typography-legacy1.css.map +1 -1
- package/lib/css/aui-page-typography.css.map +1 -1
- package/lib/css/batch/aui-experimental.css.map +1 -1
- package/lib/css/batch/aui.css.map +1 -1
- package/lib/css/forms.css.map +1 -1
- package/lib/css/imports/aui-theme/core/atlaskit-theme/borders.css +2 -0
- package/lib/css/imports/aui-theme/core/atlaskit-theme/borders.css.map +1 -0
- package/lib/css/imports/aui-theme/core/atlaskit-theme/colors.css +2 -0
- package/lib/css/imports/aui-theme/core/atlaskit-theme/colors.css.map +1 -0
- package/lib/css/imports/aui-theme/core/atlaskit-theme/fonts.css +2 -0
- package/lib/css/imports/aui-theme/core/atlaskit-theme/fonts.css.map +1 -0
- package/lib/css/imports/aui-theme/core/colors.css.map +1 -1
- package/lib/css/imports/aui-theme/core/text.css.map +1 -1
- package/lib/js/aui/backbone.js.map +1 -1
- package/lib/js/aui/binder.js.map +1 -1
- package/lib/js/aui/binders/placeholder.js.map +1 -1
- package/lib/js/aui/button.js.map +1 -1
- package/lib/js/aui/checkbox-multiselect.js.map +1 -1
- package/lib/js/aui/date-picker.js.map +1 -1
- package/lib/js/aui/dialog.js.map +1 -1
- package/lib/js/aui/dialog2.js.map +1 -1
- package/lib/js/aui/drop-down.js.map +1 -1
- package/lib/js/aui/dropdown2.js.map +1 -1
- package/lib/js/aui/fancy-file-input.js.map +1 -1
- package/lib/js/aui/flag.js.map +1 -1
- package/lib/js/aui/focus-manager-global.js.map +1 -1
- package/lib/js/aui/focus-manager.js.map +1 -1
- package/lib/js/aui/form-notification.js.map +1 -1
- package/lib/js/aui/form-validation/basic-validators.js.map +1 -1
- package/lib/js/aui/form-validation/validator-register.js.map +1 -1
- package/lib/js/aui/form-validation.js.map +1 -1
- package/lib/js/aui/header-async.js.map +1 -1
- package/lib/js/aui/i18n.js.map +1 -1
- package/lib/js/aui/inline-dialog.js.map +1 -1
- package/lib/js/aui/inline-dialog2.js.map +1 -1
- package/lib/js/aui/internal/alignment.js.map +1 -1
- package/lib/js/aui/internal/deprecation.js.map +1 -1
- package/lib/js/aui/internal/globalize.js.map +1 -1
- package/lib/js/aui/internal/header/create-header.js.map +1 -1
- package/lib/js/aui/internal/select/suggestion-model.js.map +1 -1
- package/lib/js/aui/internal/select/suggestions-view.js.map +1 -1
- package/lib/js/aui/internal/skate.js.map +1 -1
- package/lib/js/aui/internal/widget.js.map +1 -1
- package/lib/js/aui/label.js.map +1 -1
- package/lib/js/aui/layer-manager-global.js.map +1 -1
- package/lib/js/aui/layer-manager.js.map +1 -1
- package/lib/js/aui/layer.js.map +1 -1
- package/lib/js/aui/messages.js.map +1 -1
- package/lib/js/aui/navigation.js.map +1 -1
- package/lib/js/aui/polyfills/placeholder.js.map +1 -1
- package/lib/js/aui/populate-parameters.js.map +1 -1
- package/lib/js/aui/progress-indicator.js.map +1 -1
- package/lib/js/aui/progressive-data-set.js.map +1 -1
- package/lib/js/aui/query-input.js.map +1 -1
- package/lib/js/aui/restful-table/custom-create-view.js.map +1 -1
- package/lib/js/aui/restful-table/custom-edit-view.js.map +1 -1
- package/lib/js/aui/restful-table/custom-read-view.js.map +1 -1
- package/lib/js/aui/restful-table/edit-row.js.map +1 -1
- package/lib/js/aui/restful-table/entry-model.js.map +1 -1
- package/lib/js/aui/restful-table/row.js.map +1 -1
- package/lib/js/aui/restful-table.js.map +1 -1
- package/lib/js/aui/result-set.js.map +1 -1
- package/lib/js/aui/results-list.js.map +1 -1
- package/lib/js/aui/select.js.map +1 -1
- package/lib/js/aui/select2.js.map +1 -1
- package/lib/js/aui/setup.js.map +1 -1
- package/lib/js/aui/sidebar.js.map +1 -1
- package/lib/js/aui/spin.js.map +1 -1
- package/lib/js/aui/spinner.js.map +1 -1
- package/lib/js/aui/tables-sortable.js.map +1 -1
- package/lib/js/aui/tabs.js.map +1 -1
- package/lib/js/aui/template.js.map +1 -1
- package/lib/js/aui/toggle.js.map +1 -1
- package/lib/js/aui/tooltip.js.map +1 -1
- package/lib/js/aui/trigger.js.map +1 -1
- package/lib/js/aui/truncating-progressive-data-set.js.map +1 -1
- package/lib/js/aui/unbind-text-resize.js.map +1 -1
- package/lib/js/aui/underscore.js.map +1 -1
- package/lib/js/aui/version.js +1 -1
- package/lib/js/aui/version.js.map +1 -1
- package/lib/js/aui/when-i-type.js.map +1 -1
- package/lib/js/aui-css-deprecations.js.map +1 -1
- package/lib/js-vendor/jquery/plugins/jquery.form.js +7 -1
- package/package.json +64 -44
- package/src/js-vendor/jquery/plugins/jquery.form.js +7 -1
- package/src/less/imports/aui-theme/core/atlaskit-theme/borders.less +1 -0
- package/src/less/imports/aui-theme/core/atlaskit-theme/colors.less +112 -0
- package/src/less/imports/aui-theme/core/atlaskit-theme/fonts.less +3 -0
- package/src/less/imports/aui-theme/core/colors.less +1 -1
- package/src/less/imports/aui-theme/core/text.less +1 -1
- package/yarn.lock +8354 -3893
- package/lib/js-vendor/underscorejs/underscore.js +0 -1287
- package/src/js-vendor/underscorejs/underscore.js +0 -1287
package/lib/js/aui/dialog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["js/aui/dialog.js"],"names":["logger","deprecate","createPopup","options","defaults","width","height","closeOnOutsideClick","keypressListener","e","keyCode","ESCAPE","popup","is","res","hide","arguments","id","extend","addClass","attr","highestZIndex","each","currentPopup","css","applySize","_applySize","marginTop","Math","round","marginLeft","parseInt","append","blanket","focusItem","selector","element","item","length","focus","focusDialog","find","focusSelector","defaultFocusSelector","changeSize","w","h","show","document","off","on","click","current","trigger","call","unbind","activeElement","has","blur","enable","remove","disable","disabled","popupBlanket","Dialog","Button","page","label","onclick","className","buttonpanel","addButtonPanel","_onclick","dialog","html","button","Link","url","itemMove","leftOrRight","target","dir","step","dtarget","splice","i","ii","curtab","itemRemove","prototype","moveUp","moveLeft","moveDown","moveRight","self","DEFAULT_PADDING","Panel","title","reference","panelButtonId","panel","body","padding","tab","menu","cur","removeClass","onblur","onselect","ontabchange","log","select","setPadding","isNaN","recalcSize","HEADER_HEIGHT","BUTTONS_HEIGHT","MIN_DIALOG_VERTICAL_BUFFER","Page","headerHeight","header","buttonHeight","dialogComponentsHeight","addPanel","addHeader","text","prepend","addButton","addLink","gotoPanel","getCurrentPanel","Object","curpage","addSubmit","addCancel","addPage","nextPage","prevPage","gotoPage","num","getPanel","pageorpanelId","panelId","pageid","getPage","pageorpanel","get","query","coll","nameExp","indexExp","typeExp","selectorExp","queryRE","RegExp","replace","all","name","justtitle","name2","title2","id2","justtitle2","toLowerCase","pages","push","j","concat","method","m","apply","updateHeight","maxDialogHeight","window","display","outerHeight","min","undefined","isMaximised","getCurPanel","getCurPanelButton","construct","alternativeName","alternatveName"],"mappings":"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","file":"dialog.js","sourcesContent":["// can't \"use strict\"\n\nimport $ from './jquery';\nimport keyCode from './key-code';\nimport * as logger from './internal/log';\nimport * as deprecate from './internal/deprecation';\nimport { trigger } from './event';\nimport { dim, undim } from './blanket';\nimport { enable } from './forms';\nimport globalize from './internal/globalize';\n\n/**\n * Creates a generic popup that will be displayed in the center of the screen with a\n * grey blanket in the background.\n * Usage:\n * <pre>\n * createPopup({\n * width: 800,\n * height: 400,\n * id: \"my-dialog\"\n * });\n * </pre>\n * @param options {object} [optional] Permitted options and defaults are as follows:\n * width (800), height (600), keypressListener (closes dialog on ESC).\n*/\nfunction createPopup (options) {\n var defaults = {\n width: 800,\n height: 600,\n closeOnOutsideClick: false,\n keypressListener: function (e) {\n if (e.keyCode === keyCode.ESCAPE && popup.is(':visible')) {\n res.hide();\n }\n }\n };\n // for backwards-compatibility\n if (typeof options !== 'object') {\n options = {\n width: arguments[0],\n height: arguments[1],\n id: arguments[2]\n };\n options = $.extend({}, options, arguments[3]);\n }\n options = $.extend({}, defaults, options);\n var popup = $('<div></div>').addClass('aui-popup');\n\n if (options.id) {\n popup.attr('id', options.id);\n }\n //find the highest z-index on the page to ensure any new popup that is shown is shown on top\n var highestZIndex = 3000;\n $('.aui-dialog').each(function () {\n var currentPopup = $(this);\n highestZIndex = (currentPopup.css('z-index') > highestZIndex) ? currentPopup.css('z-index') : highestZIndex;\n });\n\n var applySize = (function _applySize (width, height) {\n options.width = (width = (width || options.width));\n options.height = (height = (height || options.height));\n\n popup.css({\n marginTop: -Math.round(height / 2) + 'px',\n marginLeft: -Math.round(width / 2) + 'px',\n width: width,\n height: height,\n 'z-index': parseInt(highestZIndex,10) + 2 //+ 2 so that the shadow can be shown on +1 (underneath the popup but above everything else)\n });\n return _applySize;\n }(options.width, options.height));\n\n $('body').append(popup);\n\n popup.hide();\n enable(popup);\n\n /**\n * Popup object\n * @class Popup\n * @static\n */\n\n //blanket for reference further down\n var blanket = $('.aui-blanket');\n var focusItem = function (selector, element) {\n var item = $(selector, element);\n if (item.length) {\n item.focus();\n return true;\n }\n return false;\n };\n // we try and place focus, in the configured element or by looking for the first input\n // in page body, then button panel and finally page menu.\n var focusDialog = function (element) {\n if ($('.dialog-page-body', element).find(':focus').length !== 0) {\n return;\n }\n if (options.focusSelector) {\n return focusItem(options.focusSelector, element);\n }\n var defaultFocusSelector = ':input:visible:enabled:first';\n if (focusItem(defaultFocusSelector, $('.dialog-page-body', element))) { return; }\n if (focusItem(defaultFocusSelector, $('.dialog-button-panel', element))) { return; }\n\n focusItem(defaultFocusSelector, $('.dialog-page-menu', element));\n };\n\n var res = {\n\n changeSize: function (w, h) {\n if ((w && w != options.width) || (h && h != options.height)) {\n applySize(w, h);\n }\n this.show();\n },\n\n /**\n * Shows the popup\n * @method show\n */\n show: function () {\n\n var show = function () {\n $(document)\n .off('keydown', options.keypressListener)\n .on('keydown', options.keypressListener);\n dim();\n blanket = $('.aui-blanket');\n if (blanket.length !== 0 && options.closeOnOutsideClick){\n blanket.click(function () {\n if (popup.is(':visible')){\n res.hide();\n }\n });\n }\n popup.show();\n\n createPopup.current = this;\n focusDialog(popup);\n $(document).trigger('showLayer', ['popup', this]);\n };\n show.call(this);\n this.show = show;\n },\n /**\n * Hides the popup.\n * @method hide\n */\n hide: function () {\n $(document).unbind('keydown', options.keypressListener);\n blanket.unbind();\n this.element.hide();\n\n //only undim if no other dialogs are visible\n if ($('.aui-dialog:visible').length === 0) {\n undim();\n }\n\n // AUI-1059: remove focus from the active element when dialog is hidden\n var activeElement = document.activeElement;\n if (this.element.has(activeElement).length) {\n activeElement.blur();\n }\n\n $(document).trigger('hideLayer', ['popup', this]);\n createPopup.current = null;\n this.enable();\n },\n /**\n * jQuery object, representing popup DOM element\n * @property element\n */\n element: popup,\n /**\n * Removes popup elements from the DOM\n * @method remove\n */\n remove: function () {\n popup.remove();\n this.element = null;\n },\n /**\n * disables the popup\n * @method disable\n */\n disable: function () {\n if (!this.disabled){\n this.popupBlanket = $(\"<div class='dialog-blanket'> </div>\").css({\n height: popup.height(),\n width: popup.width()\n });\n popup.append(this.popupBlanket);\n this.disabled = true;\n }\n },\n /**\n * enables the popup if it is disabled\n * @method enable\n */\n enable: function () {\n if (this.disabled) {\n this.disabled = false;\n this.popupBlanket.remove();\n this.popupBlanket = null;\n }\n }\n };\n\n return res;\n}\n\n// Scoping function\nvar Dialog = (function () {\n /**\n * @class Button\n * @constructor Button\n * @param page {number} page id\n * @param label {string} button label\n * @param onclick {function} [optional] click event handler\n * @param className {string} [optional] class name\n * @private\n */\n function Button(page, label, onclick, className) {\n if (!page.buttonpanel) {\n page.addButtonPanel();\n }\n this.page = page;\n this.onclick = onclick;\n this._onclick = function (e) {\n return onclick.call(this, page.dialog, page, e) === true;\n };\n this.item = $('<button></button>').html(label).addClass('button-panel-button');\n if (className) {\n this.item.addClass(className);\n }\n if (typeof onclick === 'function') {\n this.item.click(this._onclick);\n }\n page.buttonpanel.append(this.item);\n this.id = page.button.length;\n page.button[this.id] = this;\n }\n\n /**\n * @class Link\n * @constructor Link\n * @param page {number} page id\n * @param label {string} button label\n * @param onclick {function} [optional] click event handler\n * @param className {string} [optional] class name\n * @private\n */\n function Link(page, label, onclick, className, url) {\n if (!page.buttonpanel) {\n page.addButtonPanel();\n }\n\n //if no url is given use # as default\n if (!url){\n url = '#';\n }\n\n this.page = page;\n this.onclick = onclick;\n this._onclick = function (e) {\n return onclick.call(this, page.dialog, page, e) === true;\n };\n this.item = $('<a></a>').html(label).attr('href', url).addClass('button-panel-link');\n if (className) {\n this.item.addClass(className);\n }\n if (typeof onclick === 'function') {\n this.item.click(this._onclick);\n }\n page.buttonpanel.append(this.item);\n this.id = page.button.length;\n page.button[this.id] = this;\n }\n\n function itemMove (leftOrRight, target) {\n var dir = leftOrRight == 'left' ? -1 : 1;\n return function (step) {\n var dtarget = this.page[target];\n if (this.id != ((dir == 1) ? dtarget.length - 1 : 0)) {\n dir *= (step || 1);\n dtarget[this.id + dir].item[(dir < 0 ? 'before' : 'after')](this.item);\n dtarget.splice(this.id, 1);\n dtarget.splice(this.id + dir, 0, this);\n for (var i = 0, ii = dtarget.length; i < ii; i++) {\n if (target == 'panel' && this.page.curtab == dtarget[i].id) {\n this.page.curtab = i;\n }\n dtarget[i].id = i;\n }\n }\n return this;\n };\n }\n function itemRemove(target) {\n return function () {\n this.page[target].splice(this.id, 1);\n for (var i = 0, ii = this.page[target].length; i < ii; i++) {\n this.page[target][i].id = i;\n }\n this.item.remove();\n };\n }\n /**\n * Moves item left in the hierarchy\n * @method moveUp\n * @method moveLeft\n * @param step {number} how many items to move, default is 1\n * @return {object} button\n */\n Button.prototype.moveUp = Button.prototype.moveLeft = itemMove('left', 'button');\n /**\n * Moves item right in the hierarchy\n * @method moveDown\n * @method moveRight\n * @param step {number} how many items to move, default is 1\n * @return {object} button\n */\n Button.prototype.moveDown = Button.prototype.moveRight = itemMove('right', 'button');\n /**\n * Removes item\n * @method remove\n */\n Button.prototype.remove = itemRemove('button');\n\n /**\n * Getter and setter for label\n * @method label\n * @param label {string} [optional] label of the button\n * @return {string} label, if nothing is passed in\n * @return {object} jQuery button object, if label is passed in\n */\n Button.prototype.html = function (label) {\n return this.item.html(label);\n };\n /**\n * Getter and setter of onclick event handler\n * @method onclick\n * @param onclick {function} [optional] new event handler, that is going to replace the old one\n * @return {function} existing event handler if new one is undefined\n */\n Button.prototype.onclick = function (onclick) {\n let self = this;\n if (typeof onclick === 'undefined') {\n return this.onclick;\n } else {\n this.item.unbind('click', this._onclick);\n this._onclick = function (e) {\n return onclick.call(this, self.page.dialog, self.page, e) === true;\n };\n if (typeof onclick === 'function') {\n this.item.click(this._onclick);\n }\n }\n };\n\n var DEFAULT_PADDING = 20;\n\n /**\n * Class for panels\n * @class Panel\n * @constructor\n * @param page {number} page id\n * @param title {string} panel title\n * @param reference {string} or {object} jQuery object or selector for the contents of the Panel\n * @param className {string} [optional] HTML class name\n * @param panelButtonId {string} the unique id that will be put on the button element for this panel.\n * @private\n */\n var Panel = function (page, title, reference, className, panelButtonId) {\n if (!(reference instanceof $)) {\n reference = $(reference);\n }\n\n this.dialog = page.dialog;\n this.page = page;\n this.id = page.panel.length;\n this.button = $('<button></button>').html(title).addClass('item-button');\n\n if (panelButtonId) {\n this.button[0].id = panelButtonId;\n }\n\n this.item = $('<li></li>').append(this.button).addClass('page-menu-item');\n this.body = $('<div></div>').append(reference).addClass('dialog-panel-body').css('height', page.dialog.height + 'px');\n this.padding = DEFAULT_PADDING;\n if (className) {\n this.body.addClass(className);\n }\n var i = page.panel.length;\n var tab = this;\n page.menu.append(this.item);\n page.body.append(this.body);\n page.panel[i] = this;\n var onclick = function () {\n var cur;\n if (page.curtab + 1) {\n cur = page.panel[page.curtab];\n cur.body.hide();\n cur.item.removeClass('selected');\n (typeof cur.onblur === 'function') && cur.onblur();\n }\n page.curtab = tab.id;\n tab.body.show();\n tab.item.addClass('selected');\n (typeof tab.onselect === 'function') && tab.onselect();\n (typeof page.ontabchange === 'function') && page.ontabchange(tab, cur);\n };\n if (!this.button.click) {\n logger.log('atlassian-dialog:Panel:constructor - this.button.click false');\n this.button.onclick = onclick;\n } else {\n this.button.click(onclick);\n }\n onclick();\n if (i == 0) {\n page.menu.css('display', 'none'); // don't use jQuery hide()\n } else {\n page.menu.show();\n }\n };\n /**\n * Selects current panel\n * @method select\n */\n Panel.prototype.select = function () {\n this.button.click();\n };\n /**\n * Moves item left in the hierarchy\n * @method moveUp\n * @method moveLeft\n * @param step {number} how many items to move, default is 1\n * @return {object} panel\n */\n Panel.prototype.moveUp = Panel.prototype.moveLeft = itemMove('left', 'panel');\n /**\n * Moves item right in the hierarchy\n * @method moveDown\n * @method moveRight\n * @param step {number} how many items to move, default is 1\n * @return {object} panel\n */\n Panel.prototype.moveDown = Panel.prototype.moveRight = itemMove('right', 'panel');\n /**\n * Removes item\n * @method remove\n */\n Panel.prototype.remove = itemRemove('panel');\n /**\n * Getter and setter of inner HTML of the panel\n * @method html\n * @param html {string} HTML source to set up\n * @return {object} panel\n * @return {string} current HTML source\n */\n Panel.prototype.html = function (html) {\n if (html) {\n this.body.html(html);\n return this;\n } else {\n return this.body.html();\n }\n };\n /**\n * This method gives you ability to overwrite default padding value. Use it with caution.\n * @method setPadding\n * @param padding {number} padding in pixels\n * @return {object} panel\n * @see DEFAULT_PADDING\n */\n Panel.prototype.setPadding = function (padding) {\n if (!isNaN(+padding)) {\n this.body.css('padding', +padding);\n this.padding = +padding;\n this.page.recalcSize();\n }\n return this;\n };\n\n var HEADER_HEIGHT = 62;\n var BUTTONS_HEIGHT = 52;\n var MIN_DIALOG_VERTICAL_BUFFER = 50;\n\n /**\n * Class for pages\n * @class Page\n * @constructor\n * @param dialog {object} dialog object\n * @param className {string} [optional] HTML class name\n * @private\n */\n var Page = function (dialog, className) {\n this.dialog = dialog;\n this.id = dialog.page.length;\n this.element = $('<div></div>').addClass('dialog-components');\n this.body = $('<div></div>').addClass('dialog-page-body');\n this.menu = $('<ul></ul>').addClass('dialog-page-menu').css('height', dialog.height + 'px');\n this.body.append(this.menu);\n this.curtab;\n this.panel = [];\n this.button = [];\n if (className) {\n this.body.addClass(className);\n }\n dialog.popup.element.append(this.element.append(this.menu).append(this.body));\n dialog.page[dialog.page.length] = this;\n };\n\n /**\n * Size updater for contents of the page. For internal use\n * @method recalcSize\n */\n Page.prototype.recalcSize = function () {\n var headerHeight = this.header ? HEADER_HEIGHT : 0;\n var buttonHeight = this.buttonpanel ? BUTTONS_HEIGHT : 0;\n for (var i = this.panel.length; i--;) {\n var dialogComponentsHeight = this.dialog.height - headerHeight - buttonHeight;\n this.panel[i].body.css('height', dialogComponentsHeight);\n this.menu.css('height', dialogComponentsHeight);\n }\n };\n\n /**\n * Adds a button panel to the bottom of dialog\n * @method addButtonPanel\n */\n Page.prototype.addButtonPanel = function () {\n this.buttonpanel = $('<div></div>').addClass('dialog-button-panel');\n this.element.append(this.buttonpanel);\n };\n\n /**\n * Method for adding new panel to the page\n * @method addPanel\n * @param title {string} panel title\n * @param reference {string} or {object} jQuery object or selector for the contents of the Panel\n * @param className {string} [optional] HTML class name\n * @param panelButtonId {string} [optional] The unique id for the panel's button.\n * @return {object} the page\n */\n Page.prototype.addPanel = function (title, reference, className, panelButtonId) {\n new Panel(this, title, reference, className, panelButtonId);\n this.recalcSize();\n return this;\n };\n /**\n * Method for adding header to the page\n * @method addHeader\n * @param title {string} panel title\n * @param className {string} [optional] CSS class name\n * @return {object} the page\n */\n Page.prototype.addHeader = function (title, className) {\n if (this.header) {\n this.header.remove();\n }\n this.header = $('<h2></h2>').text(title || '').addClass('dialog-title');\n className && this.header.addClass(className);\n this.element.prepend(this.header);\n this.recalcSize();\n return this;\n };\n /**\n * Method for adding new button to the page\n * @method addButton\n * @param label {string} button label\n * @param onclick {function} [optional] click event handler\n * @param className {string} [optional] class name\n * @return {object} the page\n */\n Page.prototype.addButton = function (label, onclick, className) {\n new Button(this, label, onclick, className);\n this.recalcSize();\n return this;\n };\n /**\n * Method for adding new link to the page\n * @method addLink\n * @param label {string} button label\n * @param onclick {function} [optional] click event handler\n * @param className {string} [optional] class name\n * @return {object} the page\n */\n Page.prototype.addLink = function (label, onclick, className, url) {\n new Link(this, label, onclick, className, url);\n this.recalcSize();\n return this;\n };\n\n /**\n * Selects corresponding panel\n * @method gotoPanel\n * @param panel {object} panel object\n * @param panel {number} id of the panel\n */\n Page.prototype.gotoPanel = function (panel) {\n this.panel[panel.id || panel].select();\n };\n /**\n * Returns current panel on the page\n * @method getCurrentPanel\n * @return panel {object} the panel\n */\n Page.prototype.getCurrentPanel = function () {\n return this.panel[this.curtab];\n };\n /**\n * Hides the page\n * @method hide\n */\n Page.prototype.hide = function () {\n this.element.hide();\n };\n /**\n * Shows the page, if it was hidden\n * @method show\n */\n Page.prototype.show = function () {\n this.element.show();\n };\n /**\n * Removes the page\n * @method remove\n */\n Page.prototype.remove = function () {\n this.element.remove();\n };\n\n\n\n /**\n * Constructor for a Dialog. A Dialog is a popup which consists of Pages, where each Page can consist of Panels,\n * Buttons and a Header. The dialog must be constructed in page order as it has a current page state. For example,\n * calling addButton() will add a button to the 'current' page.\n * <p>\n * By default, a new Dialog will have one page. If there are multiple Panels on a Page, a\n * menu is displayed on the left side of the dialog.\n * </p>\n * Usage:\n * <pre>\n * var dialog = new Dialog(860, 530);\n * dialog.addHeader(\"Insert Macro\")\n * .addPanel(\"All\", \"<p></p>\")\n * .addPanel(\"Some\", \"<p></p>\")\n * .addButton(\"Next\", function (dialog) {dialog.nextPage();})\n * .addButton(\"Cancel\", function (dialog) {dialog.hide();});\n *\n * dialog.addPage()\n * .addButton(\"Cancel\", function (dialog) {dialog.hide();});\n *\n * somebutton.click(function () {dialog.show();});\n * </pre>\n * @class Dialog\n * @constructor\n * @param width {number} dialog width in pixels, or an object containing the Dialog parameters\n * @param height {number} dialog height in pixels\n * @param id {number} [optional] dialog id\n */\n function Dialog (width, height, id) {\n var options = {};\n if (!+width) {\n options = Object(width);\n width = options.width;\n height = options.height;\n id = options.id;\n }\n this.height = height || 480;\n this.width = width || 640;\n this.id = id;\n options = $.extend({}, options, {\n width: this.width,\n height: this.height,\n id: this.id\n });\n this.popup = createPopup(options);\n\n this.popup.element.addClass('aui-dialog');\n this.page = [];\n this.curpage = 0;\n\n new Page(this);\n };\n\n\n /**\n * Method for adding header to the current page\n * @method addHeader\n * @param title {string} panel title\n * @param className {string} [optional] HTML class name\n * @return {object} the dialog\n */\n Dialog.prototype.addHeader = function (title, className) {\n this.page[this.curpage].addHeader(title, className);\n return this;\n };\n /**\n * Method for adding new button to the current page\n * @method addButton\n * @param label {string} button label\n * @param onclick {function} [optional] click event handler\n * @param className {string} [optional] class name\n * @return {object} the dialog\n */\n Dialog.prototype.addButton = function (label, onclick, className) {\n this.page[this.curpage].addButton(label, onclick, className);\n return this;\n };\n\n /**\n * Method for adding new link to the current page\n * @method addButton\n * @param label {string} link label\n * @param onclick {function} [optional] click event handler\n * @param className {string} [optional] class name\n * @return {object} the dialog\n */\n Dialog.prototype.addLink = function (label, onclick, className, url) {\n this.page[this.curpage].addLink(label, onclick, className, url);\n return this;\n };\n\n /**\n * Method for adding a submit button to the current page\n * @method addSubmit\n * @param label {string} link label\n * @param onclick {function} [optional] click event handler\n * @return {object} the dialog\n */\n Dialog.prototype.addSubmit = function (label, onclick) {\n this.page[this.curpage].addButton(label, onclick, 'button-panel-submit-button');\n return this;\n };\n\n /**\n * Method for adding a cancel link to the current page\n * @method addCancel\n * @param label {string} link label\n * @param onclick {function} [optional] click event handler\n * @return {object} the dialog\n */\n Dialog.prototype.addCancel = function (label, onclick) {\n this.page[this.curpage].addLink(label, onclick, 'button-panel-cancel-link');\n return this;\n };\n\n\n /**\n * Method for adding new button panel to the current page\n * @return {object} the dialog\n */\n Dialog.prototype.addButtonPanel = function () {\n this.page[this.curpage].addButtonPanel();\n return this;\n };\n\n\n /**\n * Method for adding new panel to the current page.\n * @method addPanel\n * @param title {string} panel title\n * @param reference {string} or {object} jQuery object or selector for the contents of the Panel\n * @param className {string} [optional] HTML class name\n * @param panelButtonId {String} [optional] The unique id for the panel's button.\n * @return {object} the dialog\n */\n Dialog.prototype.addPanel = function (title, reference, className, panelButtonId) {\n this.page[this.curpage].addPanel(title, reference, className, panelButtonId);\n return this;\n };\n /**\n * Adds a new page to the dialog and sets the new page as the current page\n * @method addPage\n * @param className {string} [optional] HTML class name\n * @return {object} the dialog\n */\n Dialog.prototype.addPage = function (className) {\n new Page(this, className);\n this.page[this.curpage].hide();\n this.curpage = this.page.length - 1;\n return this;\n };\n /**\n * Making next page in hierarchy visible and active\n * @method nextPage\n * @return {object} the dialog\n */\n Dialog.prototype.nextPage = function () {\n this.page[this.curpage++].hide();\n if (this.curpage >= this.page.length) {\n this.curpage = 0;\n }\n this.page[this.curpage].show();\n return this;\n };\n /**\n * Making previous page in hierarchy visible and active\n * @method prevPage\n * @return {object} the dialog\n */\n Dialog.prototype.prevPage = function () {\n this.page[this.curpage--].hide();\n if (this.curpage < 0) {\n this.curpage = this.page.length - 1;\n }\n this.page[this.curpage].show();\n return this;\n };\n /**\n * Making specified page visible and active\n * @method gotoPage\n * @param num {number} page id\n * @return {object} the dialog\n */\n Dialog.prototype.gotoPage = function (num) {\n this.page[this.curpage].hide();\n this.curpage = num;\n if (this.curpage < 0) {\n this.curpage = this.page.length - 1;\n } else if (this.curpage >= this.page.length) {\n this.curpage = 0;\n }\n this.page[this.curpage].show();\n return this;\n };\n /**\n * Returns specified panel at the current page\n * @method getPanel\n * @param pageorpanelId {number} page id or panel id\n * @param panelId {number} panel id\n * @return {object} the internal Panel object\n */\n Dialog.prototype.getPanel = function (pageorpanelId, panelId) {\n var pageid = (panelId == null) ? this.curpage : pageorpanelId;\n if (panelId == null) {\n panelId = pageorpanelId;\n }\n return this.page[pageid].panel[panelId];\n };\n /**\n * Returns specified page\n * @method getPage\n * @param pageid {number} page id\n * @return {object} the internal Page Object\n */\n Dialog.prototype.getPage = function (pageid) {\n return this.page[pageid];\n };\n /**\n * Returns current panel at the current page\n * @method getCurrentPanel\n * @return {object} the internal Panel object\n */\n Dialog.prototype.getCurrentPanel = function () {\n return this.page[this.curpage].getCurrentPanel();\n };\n\n /**\n * Selects corresponding panel\n * @method gotoPanel\n * @param pageorpanel {object} panel object or page object\n * @param panel {object} panel object\n * @param panel {number} id of the panel\n */\n Dialog.prototype.gotoPanel = function (pageorpanel, panel) {\n if (panel != null) {\n var pageid = pageorpanel.id || pageorpanel;\n this.gotoPage(pageid);\n }\n this.page[this.curpage].gotoPanel(typeof panel === 'undefined' ? pageorpanel : panel);\n };\n\n /**\n * Shows the dialog, if it is not visible\n * @method show\n * @return {object} the dialog\n */\n Dialog.prototype.show = function () {\n this.popup.show();\n trigger('show.dialog', {dialog: this});\n return this;\n };\n /**\n * Hides the dialog, if it was visible\n * @method hide\n * @return {object} the dialog\n */\n Dialog.prototype.hide = function () {\n this.popup.hide();\n trigger('hide.dialog', {dialog: this});\n return this;\n };\n /**\n * Removes the dialog elements from the DOM\n * @method remove\n */\n Dialog.prototype.remove = function () {\n this.popup.hide();\n this.popup.remove();\n trigger('remove.dialog', {dialog: this});\n };\n /**\n * Disables the dialog if enabled\n * @method disable\n */\n Dialog.prototype.disable = function () {\n this.popup.disable();\n return this;\n };\n /**\n * Enables the dialog if disabled\n * @method disable\n */\n Dialog.prototype.enable = function () {\n this.popup.enable();\n return this;\n };\n /**\n * Gets set of items depending on query\n * @method get\n * @param query {string} query to search for panels, pages, headers or buttons\n * e.g.\n * '#Name' will find all dialog components with the given name such as panels and buttons, etc\n * 'panel#Name' will find only panels with the given name\n * 'panel#\"Foo bar\"' will find only panels with given name\n * 'panel:3' will find the third panel\n */\n Dialog.prototype.get = function (query) {\n var coll = [];\n var dialog = this;\n var nameExp = '#([^\"][^ ]*|\"[^\"]*\")'; // a name is a hash followed by either a bare word or quoted string\n var indexExp = ':(\\\\d+)'; // an index is a colon followed by some digits\n var typeExp = 'page|panel|button|header'; // one of the allowed types\n var selectorExp = '(?:' + // a selector is either ...\n '(' + typeExp + ')(?:' + nameExp + '|' + indexExp + ')?' + // a type optionally followed by either #name or :index\n '|' + nameExp + // or just a #name\n ')';\n var queryRE = new RegExp('(?:^|,)' + // a comma or at the start of the line\n '\\\\s*' + selectorExp + // optional space and a selector\n '(?:\\\\s+' + selectorExp + ')?' + // optionally, followed by some space and a second selector\n '\\\\s*(?=,|$)', 'ig'); // followed by, but not including, a comma or the end of the string\n (query + '').replace(queryRE, function (all, name, title, id, justtitle, name2, title2, id2, justtitle2) {\n name = name && name.toLowerCase();\n var pages = [];\n if (name == 'page' && dialog.page[id]) {\n pages.push(dialog.page[id]);\n name = name2;\n name = name && name.toLowerCase();\n title = title2;\n id = id2;\n justtitle = justtitle2;\n } else {\n pages = dialog.page;\n }\n title = title && (title + '').replace(/\"/g, '');\n title2 = title2 && (title2 + '').replace(/\"/g, '');\n justtitle = justtitle && (justtitle + '').replace(/\"/g, '');\n justtitle2 = justtitle2 && (justtitle2 + '').replace(/\"/g, '');\n if (name || justtitle) {\n for (var i = pages.length; i--;) {\n if (justtitle || (name == 'panel' && (title || (!title && id == null)))) {\n for (var j = pages[i].panel.length; j--;) {\n if (pages[i].panel[j].button.html() == justtitle || pages[i].panel[j].button.html() == title || (name == 'panel' && !title && id == null)) {\n coll.push(pages[i].panel[j]);\n }\n }\n }\n if (justtitle || (name == 'button' && (title || (!title && id == null)))) {\n for (var j = pages[i].button.length; j--;) {\n if (pages[i].button[j].item.html() == justtitle || pages[i].button[j].item.html() == title || (name == 'button' && !title && id == null)) {\n coll.push(pages[i].button[j]);\n }\n }\n }\n if (pages[i][name] && pages[i][name][id]) {\n coll.push(pages[i][name][id]);\n }\n if (name == 'header' && pages[i].header) {\n coll.push(pages[i].header);\n }\n }\n } else {\n coll = coll.concat(pages);\n }\n });\n var res = {\n length: coll.length\n };\n for (var i = coll.length; i--;) {\n res[i] = coll[i];\n for (var method in coll[i]) {\n if (!(method in res)) {\n (function (m) {\n res[m] = function () {\n for (var j = this.length; j--;) {\n if (typeof this[j][m] === 'function') {\n this[j][m].apply(this[j], arguments);\n }\n }\n };\n }(method));\n }\n }\n }\n return res;\n };\n\n /**\n * Updates height of panels, to contain content without the need for scroll bars.\n *\n * @method updateHeight\n */\n Dialog.prototype.updateHeight = function () {\n var height = 0;\n var maxDialogHeight = $(window).height() - HEADER_HEIGHT - BUTTONS_HEIGHT - (MIN_DIALOG_VERTICAL_BUFFER * 2);\n for (var i = 0; this.getPanel(i); i++) {\n if (this.getPanel(i).body.css({height: 'auto', display: 'block'}).outerHeight() > height) {\n height = Math.min(maxDialogHeight, this.getPanel(i).body.outerHeight());\n }\n if (i !== this.page[this.curpage].curtab) {\n this.getPanel(i).body.css({display: 'none'});\n }\n }\n for (i = 0; this.getPanel(i); i++) {\n this.getPanel(i).body.css({height: height || this.height});\n }\n this.page[0].menu.height(height);\n this.height = height + HEADER_HEIGHT + BUTTONS_HEIGHT + 1;\n this.popup.changeSize(undefined, this.height);\n };\n\n /**\n * Returns whether the dialog has been resized to it's maximum height (has been capped by the viewport height and vertical buffer).\n *\n * @method isMaximised\n */\n Dialog.prototype.isMaximised = function () {\n return this.popup.element.outerHeight() >= $(window).height() - (MIN_DIALOG_VERTICAL_BUFFER * 2);\n };\n\n /**\n * Returns the current panel.\n * @deprecated Since 3.0.1 Use getCurrentPanel() instead.\n */\n Dialog.prototype.getCurPanel = function () {\n return this.getPanel(this.page[this.curpage].curtab);\n };\n\n /**\n * Returns the current button panel.\n * @deprecated Since 3.0.1 Use get() instead.\n */\n Dialog.prototype.getCurPanelButton = function () {\n return this.getCurPanel().button;\n };\n\n return Dialog;\n\n}());\n\nDialog = deprecate.construct(Dialog, 'Dialog constructor', {\n alternativeName: 'Dialog2'\n});\n\ncreatePopup = deprecate.construct(createPopup, 'Dialog popup constructor', {\n alternatveName: 'Dialog2'\n});\n\nglobalize('Dialog', Dialog);\nglobalize('popup', createPopup);\n\nexport {\n Dialog,\n createPopup as popup\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["js/aui/dialog.js"],"names":["logger","deprecate","createPopup","options","defaults","width","height","closeOnOutsideClick","keypressListener","e","keyCode","ESCAPE","popup","is","res","hide","arguments","id","$","extend","addClass","attr","highestZIndex","each","currentPopup","css","applySize","_applySize","marginTop","Math","round","marginLeft","parseInt","append","blanket","focusItem","selector","element","item","length","focus","focusDialog","find","focusSelector","defaultFocusSelector","changeSize","w","h","show","document","off","on","click","current","trigger","call","unbind","activeElement","has","blur","enable","remove","disable","disabled","popupBlanket","Dialog","Button","page","label","onclick","className","buttonpanel","addButtonPanel","_onclick","dialog","html","button","Link","url","itemMove","leftOrRight","target","dir","step","dtarget","splice","i","ii","curtab","itemRemove","prototype","moveUp","moveLeft","moveDown","moveRight","self","DEFAULT_PADDING","Panel","title","reference","panelButtonId","panel","body","padding","tab","menu","cur","removeClass","onblur","onselect","ontabchange","log","select","setPadding","isNaN","recalcSize","HEADER_HEIGHT","BUTTONS_HEIGHT","MIN_DIALOG_VERTICAL_BUFFER","Page","headerHeight","header","buttonHeight","dialogComponentsHeight","addPanel","addHeader","text","prepend","addButton","addLink","gotoPanel","getCurrentPanel","Object","curpage","addSubmit","addCancel","addPage","nextPage","prevPage","gotoPage","num","getPanel","pageorpanelId","panelId","pageid","getPage","pageorpanel","get","query","coll","nameExp","indexExp","typeExp","selectorExp","queryRE","RegExp","replace","all","name","justtitle","name2","title2","id2","justtitle2","toLowerCase","pages","push","j","concat","method","m","apply","updateHeight","maxDialogHeight","window","display","outerHeight","min","undefined","isMaximised","getCurPanel","getCurPanelButton","construct","alternativeName","alternatveName"],"mappings":"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","file":"dialog.js","sourcesContent":["// can't \"use strict\"\n\nimport $ from './jquery';\nimport keyCode from './key-code';\nimport * as logger from './internal/log';\nimport * as deprecate from './internal/deprecation';\nimport { trigger } from './event';\nimport { dim, undim } from './blanket';\nimport { enable } from './forms';\nimport globalize from './internal/globalize';\n\n/**\n * Creates a generic popup that will be displayed in the center of the screen with a\n * grey blanket in the background.\n * Usage:\n * <pre>\n * createPopup({\n * width: 800,\n * height: 400,\n * id: \"my-dialog\"\n * });\n * </pre>\n * @param options {object} [optional] Permitted options and defaults are as follows:\n * width (800), height (600), keypressListener (closes dialog on ESC).\n*/\nfunction createPopup (options) {\n var defaults = {\n width: 800,\n height: 600,\n closeOnOutsideClick: false,\n keypressListener: function (e) {\n if (e.keyCode === keyCode.ESCAPE && popup.is(':visible')) {\n res.hide();\n }\n }\n };\n // for backwards-compatibility\n if (typeof options !== 'object') {\n options = {\n width: arguments[0],\n height: arguments[1],\n id: arguments[2]\n };\n options = $.extend({}, options, arguments[3]);\n }\n options = $.extend({}, defaults, options);\n var popup = $('<div></div>').addClass('aui-popup');\n\n if (options.id) {\n popup.attr('id', options.id);\n }\n //find the highest z-index on the page to ensure any new popup that is shown is shown on top\n var highestZIndex = 3000;\n $('.aui-dialog').each(function () {\n var currentPopup = $(this);\n highestZIndex = (currentPopup.css('z-index') > highestZIndex) ? currentPopup.css('z-index') : highestZIndex;\n });\n\n var applySize = (function _applySize (width, height) {\n options.width = (width = (width || options.width));\n options.height = (height = (height || options.height));\n\n popup.css({\n marginTop: -Math.round(height / 2) + 'px',\n marginLeft: -Math.round(width / 2) + 'px',\n width: width,\n height: height,\n 'z-index': parseInt(highestZIndex,10) + 2 //+ 2 so that the shadow can be shown on +1 (underneath the popup but above everything else)\n });\n return _applySize;\n }(options.width, options.height));\n\n $('body').append(popup);\n\n popup.hide();\n enable(popup);\n\n /**\n * Popup object\n * @class Popup\n * @static\n */\n\n //blanket for reference further down\n var blanket = $('.aui-blanket');\n var focusItem = function (selector, element) {\n var item = $(selector, element);\n if (item.length) {\n item.focus();\n return true;\n }\n return false;\n };\n // we try and place focus, in the configured element or by looking for the first input\n // in page body, then button panel and finally page menu.\n var focusDialog = function (element) {\n if ($('.dialog-page-body', element).find(':focus').length !== 0) {\n return;\n }\n if (options.focusSelector) {\n return focusItem(options.focusSelector, element);\n }\n var defaultFocusSelector = ':input:visible:enabled:first';\n if (focusItem(defaultFocusSelector, $('.dialog-page-body', element))) { return; }\n if (focusItem(defaultFocusSelector, $('.dialog-button-panel', element))) { return; }\n\n focusItem(defaultFocusSelector, $('.dialog-page-menu', element));\n };\n\n var res = {\n\n changeSize: function (w, h) {\n if ((w && w != options.width) || (h && h != options.height)) {\n applySize(w, h);\n }\n this.show();\n },\n\n /**\n * Shows the popup\n * @method show\n */\n show: function () {\n\n var show = function () {\n $(document)\n .off('keydown', options.keypressListener)\n .on('keydown', options.keypressListener);\n dim();\n blanket = $('.aui-blanket');\n if (blanket.length !== 0 && options.closeOnOutsideClick){\n blanket.click(function () {\n if (popup.is(':visible')){\n res.hide();\n }\n });\n }\n popup.show();\n\n createPopup.current = this;\n focusDialog(popup);\n $(document).trigger('showLayer', ['popup', this]);\n };\n show.call(this);\n this.show = show;\n },\n /**\n * Hides the popup.\n * @method hide\n */\n hide: function () {\n $(document).unbind('keydown', options.keypressListener);\n blanket.unbind();\n this.element.hide();\n\n //only undim if no other dialogs are visible\n if ($('.aui-dialog:visible').length === 0) {\n undim();\n }\n\n // AUI-1059: remove focus from the active element when dialog is hidden\n var activeElement = document.activeElement;\n if (this.element.has(activeElement).length) {\n activeElement.blur();\n }\n\n $(document).trigger('hideLayer', ['popup', this]);\n createPopup.current = null;\n this.enable();\n },\n /**\n * jQuery object, representing popup DOM element\n * @property element\n */\n element: popup,\n /**\n * Removes popup elements from the DOM\n * @method remove\n */\n remove: function () {\n popup.remove();\n this.element = null;\n },\n /**\n * disables the popup\n * @method disable\n */\n disable: function () {\n if (!this.disabled){\n this.popupBlanket = $(\"<div class='dialog-blanket'> </div>\").css({\n height: popup.height(),\n width: popup.width()\n });\n popup.append(this.popupBlanket);\n this.disabled = true;\n }\n },\n /**\n * enables the popup if it is disabled\n * @method enable\n */\n enable: function () {\n if (this.disabled) {\n this.disabled = false;\n this.popupBlanket.remove();\n this.popupBlanket = null;\n }\n }\n };\n\n return res;\n}\n\n// Scoping function\nvar Dialog = (function () {\n /**\n * @class Button\n * @constructor Button\n * @param page {number} page id\n * @param label {string} button label\n * @param onclick {function} [optional] click event handler\n * @param className {string} [optional] class name\n * @private\n */\n function Button(page, label, onclick, className) {\n if (!page.buttonpanel) {\n page.addButtonPanel();\n }\n this.page = page;\n this.onclick = onclick;\n this._onclick = function (e) {\n return onclick.call(this, page.dialog, page, e) === true;\n };\n this.item = $('<button></button>').html(label).addClass('button-panel-button');\n if (className) {\n this.item.addClass(className);\n }\n if (typeof onclick === 'function') {\n this.item.click(this._onclick);\n }\n page.buttonpanel.append(this.item);\n this.id = page.button.length;\n page.button[this.id] = this;\n }\n\n /**\n * @class Link\n * @constructor Link\n * @param page {number} page id\n * @param label {string} button label\n * @param onclick {function} [optional] click event handler\n * @param className {string} [optional] class name\n * @private\n */\n function Link(page, label, onclick, className, url) {\n if (!page.buttonpanel) {\n page.addButtonPanel();\n }\n\n //if no url is given use # as default\n if (!url){\n url = '#';\n }\n\n this.page = page;\n this.onclick = onclick;\n this._onclick = function (e) {\n return onclick.call(this, page.dialog, page, e) === true;\n };\n this.item = $('<a></a>').html(label).attr('href', url).addClass('button-panel-link');\n if (className) {\n this.item.addClass(className);\n }\n if (typeof onclick === 'function') {\n this.item.click(this._onclick);\n }\n page.buttonpanel.append(this.item);\n this.id = page.button.length;\n page.button[this.id] = this;\n }\n\n function itemMove (leftOrRight, target) {\n var dir = leftOrRight == 'left' ? -1 : 1;\n return function (step) {\n var dtarget = this.page[target];\n if (this.id != ((dir == 1) ? dtarget.length - 1 : 0)) {\n dir *= (step || 1);\n dtarget[this.id + dir].item[(dir < 0 ? 'before' : 'after')](this.item);\n dtarget.splice(this.id, 1);\n dtarget.splice(this.id + dir, 0, this);\n for (var i = 0, ii = dtarget.length; i < ii; i++) {\n if (target == 'panel' && this.page.curtab == dtarget[i].id) {\n this.page.curtab = i;\n }\n dtarget[i].id = i;\n }\n }\n return this;\n };\n }\n function itemRemove(target) {\n return function () {\n this.page[target].splice(this.id, 1);\n for (var i = 0, ii = this.page[target].length; i < ii; i++) {\n this.page[target][i].id = i;\n }\n this.item.remove();\n };\n }\n /**\n * Moves item left in the hierarchy\n * @method moveUp\n * @method moveLeft\n * @param step {number} how many items to move, default is 1\n * @return {object} button\n */\n Button.prototype.moveUp = Button.prototype.moveLeft = itemMove('left', 'button');\n /**\n * Moves item right in the hierarchy\n * @method moveDown\n * @method moveRight\n * @param step {number} how many items to move, default is 1\n * @return {object} button\n */\n Button.prototype.moveDown = Button.prototype.moveRight = itemMove('right', 'button');\n /**\n * Removes item\n * @method remove\n */\n Button.prototype.remove = itemRemove('button');\n\n /**\n * Getter and setter for label\n * @method label\n * @param label {string} [optional] label of the button\n * @return {string} label, if nothing is passed in\n * @return {object} jQuery button object, if label is passed in\n */\n Button.prototype.html = function (label) {\n return this.item.html(label);\n };\n /**\n * Getter and setter of onclick event handler\n * @method onclick\n * @param onclick {function} [optional] new event handler, that is going to replace the old one\n * @return {function} existing event handler if new one is undefined\n */\n Button.prototype.onclick = function (onclick) {\n let self = this;\n if (typeof onclick === 'undefined') {\n return this.onclick;\n } else {\n this.item.unbind('click', this._onclick);\n this._onclick = function (e) {\n return onclick.call(this, self.page.dialog, self.page, e) === true;\n };\n if (typeof onclick === 'function') {\n this.item.click(this._onclick);\n }\n }\n };\n\n var DEFAULT_PADDING = 20;\n\n /**\n * Class for panels\n * @class Panel\n * @constructor\n * @param page {number} page id\n * @param title {string} panel title\n * @param reference {string} or {object} jQuery object or selector for the contents of the Panel\n * @param className {string} [optional] HTML class name\n * @param panelButtonId {string} the unique id that will be put on the button element for this panel.\n * @private\n */\n var Panel = function (page, title, reference, className, panelButtonId) {\n if (!(reference instanceof $)) {\n reference = $(reference);\n }\n\n this.dialog = page.dialog;\n this.page = page;\n this.id = page.panel.length;\n this.button = $('<button></button>').html(title).addClass('item-button');\n\n if (panelButtonId) {\n this.button[0].id = panelButtonId;\n }\n\n this.item = $('<li></li>').append(this.button).addClass('page-menu-item');\n this.body = $('<div></div>').append(reference).addClass('dialog-panel-body').css('height', page.dialog.height + 'px');\n this.padding = DEFAULT_PADDING;\n if (className) {\n this.body.addClass(className);\n }\n var i = page.panel.length;\n var tab = this;\n page.menu.append(this.item);\n page.body.append(this.body);\n page.panel[i] = this;\n var onclick = function () {\n var cur;\n if (page.curtab + 1) {\n cur = page.panel[page.curtab];\n cur.body.hide();\n cur.item.removeClass('selected');\n (typeof cur.onblur === 'function') && cur.onblur();\n }\n page.curtab = tab.id;\n tab.body.show();\n tab.item.addClass('selected');\n (typeof tab.onselect === 'function') && tab.onselect();\n (typeof page.ontabchange === 'function') && page.ontabchange(tab, cur);\n };\n if (!this.button.click) {\n logger.log('atlassian-dialog:Panel:constructor - this.button.click false');\n this.button.onclick = onclick;\n } else {\n this.button.click(onclick);\n }\n onclick();\n if (i == 0) {\n page.menu.css('display', 'none'); // don't use jQuery hide()\n } else {\n page.menu.show();\n }\n };\n /**\n * Selects current panel\n * @method select\n */\n Panel.prototype.select = function () {\n this.button.click();\n };\n /**\n * Moves item left in the hierarchy\n * @method moveUp\n * @method moveLeft\n * @param step {number} how many items to move, default is 1\n * @return {object} panel\n */\n Panel.prototype.moveUp = Panel.prototype.moveLeft = itemMove('left', 'panel');\n /**\n * Moves item right in the hierarchy\n * @method moveDown\n * @method moveRight\n * @param step {number} how many items to move, default is 1\n * @return {object} panel\n */\n Panel.prototype.moveDown = Panel.prototype.moveRight = itemMove('right', 'panel');\n /**\n * Removes item\n * @method remove\n */\n Panel.prototype.remove = itemRemove('panel');\n /**\n * Getter and setter of inner HTML of the panel\n * @method html\n * @param html {string} HTML source to set up\n * @return {object} panel\n * @return {string} current HTML source\n */\n Panel.prototype.html = function (html) {\n if (html) {\n this.body.html(html);\n return this;\n } else {\n return this.body.html();\n }\n };\n /**\n * This method gives you ability to overwrite default padding value. Use it with caution.\n * @method setPadding\n * @param padding {number} padding in pixels\n * @return {object} panel\n * @see DEFAULT_PADDING\n */\n Panel.prototype.setPadding = function (padding) {\n if (!isNaN(+padding)) {\n this.body.css('padding', +padding);\n this.padding = +padding;\n this.page.recalcSize();\n }\n return this;\n };\n\n var HEADER_HEIGHT = 62;\n var BUTTONS_HEIGHT = 52;\n var MIN_DIALOG_VERTICAL_BUFFER = 50;\n\n /**\n * Class for pages\n * @class Page\n * @constructor\n * @param dialog {object} dialog object\n * @param className {string} [optional] HTML class name\n * @private\n */\n var Page = function (dialog, className) {\n this.dialog = dialog;\n this.id = dialog.page.length;\n this.element = $('<div></div>').addClass('dialog-components');\n this.body = $('<div></div>').addClass('dialog-page-body');\n this.menu = $('<ul></ul>').addClass('dialog-page-menu').css('height', dialog.height + 'px');\n this.body.append(this.menu);\n this.curtab;\n this.panel = [];\n this.button = [];\n if (className) {\n this.body.addClass(className);\n }\n dialog.popup.element.append(this.element.append(this.menu).append(this.body));\n dialog.page[dialog.page.length] = this;\n };\n\n /**\n * Size updater for contents of the page. For internal use\n * @method recalcSize\n */\n Page.prototype.recalcSize = function () {\n var headerHeight = this.header ? HEADER_HEIGHT : 0;\n var buttonHeight = this.buttonpanel ? BUTTONS_HEIGHT : 0;\n for (var i = this.panel.length; i--;) {\n var dialogComponentsHeight = this.dialog.height - headerHeight - buttonHeight;\n this.panel[i].body.css('height', dialogComponentsHeight);\n this.menu.css('height', dialogComponentsHeight);\n }\n };\n\n /**\n * Adds a button panel to the bottom of dialog\n * @method addButtonPanel\n */\n Page.prototype.addButtonPanel = function () {\n this.buttonpanel = $('<div></div>').addClass('dialog-button-panel');\n this.element.append(this.buttonpanel);\n };\n\n /**\n * Method for adding new panel to the page\n * @method addPanel\n * @param title {string} panel title\n * @param reference {string} or {object} jQuery object or selector for the contents of the Panel\n * @param className {string} [optional] HTML class name\n * @param panelButtonId {string} [optional] The unique id for the panel's button.\n * @return {object} the page\n */\n Page.prototype.addPanel = function (title, reference, className, panelButtonId) {\n new Panel(this, title, reference, className, panelButtonId);\n this.recalcSize();\n return this;\n };\n /**\n * Method for adding header to the page\n * @method addHeader\n * @param title {string} panel title\n * @param className {string} [optional] CSS class name\n * @return {object} the page\n */\n Page.prototype.addHeader = function (title, className) {\n if (this.header) {\n this.header.remove();\n }\n this.header = $('<h2></h2>').text(title || '').addClass('dialog-title');\n className && this.header.addClass(className);\n this.element.prepend(this.header);\n this.recalcSize();\n return this;\n };\n /**\n * Method for adding new button to the page\n * @method addButton\n * @param label {string} button label\n * @param onclick {function} [optional] click event handler\n * @param className {string} [optional] class name\n * @return {object} the page\n */\n Page.prototype.addButton = function (label, onclick, className) {\n new Button(this, label, onclick, className);\n this.recalcSize();\n return this;\n };\n /**\n * Method for adding new link to the page\n * @method addLink\n * @param label {string} button label\n * @param onclick {function} [optional] click event handler\n * @param className {string} [optional] class name\n * @return {object} the page\n */\n Page.prototype.addLink = function (label, onclick, className, url) {\n new Link(this, label, onclick, className, url);\n this.recalcSize();\n return this;\n };\n\n /**\n * Selects corresponding panel\n * @method gotoPanel\n * @param panel {object} panel object\n * @param panel {number} id of the panel\n */\n Page.prototype.gotoPanel = function (panel) {\n this.panel[panel.id || panel].select();\n };\n /**\n * Returns current panel on the page\n * @method getCurrentPanel\n * @return panel {object} the panel\n */\n Page.prototype.getCurrentPanel = function () {\n return this.panel[this.curtab];\n };\n /**\n * Hides the page\n * @method hide\n */\n Page.prototype.hide = function () {\n this.element.hide();\n };\n /**\n * Shows the page, if it was hidden\n * @method show\n */\n Page.prototype.show = function () {\n this.element.show();\n };\n /**\n * Removes the page\n * @method remove\n */\n Page.prototype.remove = function () {\n this.element.remove();\n };\n\n\n\n /**\n * Constructor for a Dialog. A Dialog is a popup which consists of Pages, where each Page can consist of Panels,\n * Buttons and a Header. The dialog must be constructed in page order as it has a current page state. For example,\n * calling addButton() will add a button to the 'current' page.\n * <p>\n * By default, a new Dialog will have one page. If there are multiple Panels on a Page, a\n * menu is displayed on the left side of the dialog.\n * </p>\n * Usage:\n * <pre>\n * var dialog = new Dialog(860, 530);\n * dialog.addHeader(\"Insert Macro\")\n * .addPanel(\"All\", \"<p></p>\")\n * .addPanel(\"Some\", \"<p></p>\")\n * .addButton(\"Next\", function (dialog) {dialog.nextPage();})\n * .addButton(\"Cancel\", function (dialog) {dialog.hide();});\n *\n * dialog.addPage()\n * .addButton(\"Cancel\", function (dialog) {dialog.hide();});\n *\n * somebutton.click(function () {dialog.show();});\n * </pre>\n * @class Dialog\n * @constructor\n * @param width {number} dialog width in pixels, or an object containing the Dialog parameters\n * @param height {number} dialog height in pixels\n * @param id {number} [optional] dialog id\n */\n function Dialog (width, height, id) {\n var options = {};\n if (!+width) {\n options = Object(width);\n width = options.width;\n height = options.height;\n id = options.id;\n }\n this.height = height || 480;\n this.width = width || 640;\n this.id = id;\n options = $.extend({}, options, {\n width: this.width,\n height: this.height,\n id: this.id\n });\n this.popup = createPopup(options);\n\n this.popup.element.addClass('aui-dialog');\n this.page = [];\n this.curpage = 0;\n\n new Page(this);\n };\n\n\n /**\n * Method for adding header to the current page\n * @method addHeader\n * @param title {string} panel title\n * @param className {string} [optional] HTML class name\n * @return {object} the dialog\n */\n Dialog.prototype.addHeader = function (title, className) {\n this.page[this.curpage].addHeader(title, className);\n return this;\n };\n /**\n * Method for adding new button to the current page\n * @method addButton\n * @param label {string} button label\n * @param onclick {function} [optional] click event handler\n * @param className {string} [optional] class name\n * @return {object} the dialog\n */\n Dialog.prototype.addButton = function (label, onclick, className) {\n this.page[this.curpage].addButton(label, onclick, className);\n return this;\n };\n\n /**\n * Method for adding new link to the current page\n * @method addButton\n * @param label {string} link label\n * @param onclick {function} [optional] click event handler\n * @param className {string} [optional] class name\n * @return {object} the dialog\n */\n Dialog.prototype.addLink = function (label, onclick, className, url) {\n this.page[this.curpage].addLink(label, onclick, className, url);\n return this;\n };\n\n /**\n * Method for adding a submit button to the current page\n * @method addSubmit\n * @param label {string} link label\n * @param onclick {function} [optional] click event handler\n * @return {object} the dialog\n */\n Dialog.prototype.addSubmit = function (label, onclick) {\n this.page[this.curpage].addButton(label, onclick, 'button-panel-submit-button');\n return this;\n };\n\n /**\n * Method for adding a cancel link to the current page\n * @method addCancel\n * @param label {string} link label\n * @param onclick {function} [optional] click event handler\n * @return {object} the dialog\n */\n Dialog.prototype.addCancel = function (label, onclick) {\n this.page[this.curpage].addLink(label, onclick, 'button-panel-cancel-link');\n return this;\n };\n\n\n /**\n * Method for adding new button panel to the current page\n * @return {object} the dialog\n */\n Dialog.prototype.addButtonPanel = function () {\n this.page[this.curpage].addButtonPanel();\n return this;\n };\n\n\n /**\n * Method for adding new panel to the current page.\n * @method addPanel\n * @param title {string} panel title\n * @param reference {string} or {object} jQuery object or selector for the contents of the Panel\n * @param className {string} [optional] HTML class name\n * @param panelButtonId {String} [optional] The unique id for the panel's button.\n * @return {object} the dialog\n */\n Dialog.prototype.addPanel = function (title, reference, className, panelButtonId) {\n this.page[this.curpage].addPanel(title, reference, className, panelButtonId);\n return this;\n };\n /**\n * Adds a new page to the dialog and sets the new page as the current page\n * @method addPage\n * @param className {string} [optional] HTML class name\n * @return {object} the dialog\n */\n Dialog.prototype.addPage = function (className) {\n new Page(this, className);\n this.page[this.curpage].hide();\n this.curpage = this.page.length - 1;\n return this;\n };\n /**\n * Making next page in hierarchy visible and active\n * @method nextPage\n * @return {object} the dialog\n */\n Dialog.prototype.nextPage = function () {\n this.page[this.curpage++].hide();\n if (this.curpage >= this.page.length) {\n this.curpage = 0;\n }\n this.page[this.curpage].show();\n return this;\n };\n /**\n * Making previous page in hierarchy visible and active\n * @method prevPage\n * @return {object} the dialog\n */\n Dialog.prototype.prevPage = function () {\n this.page[this.curpage--].hide();\n if (this.curpage < 0) {\n this.curpage = this.page.length - 1;\n }\n this.page[this.curpage].show();\n return this;\n };\n /**\n * Making specified page visible and active\n * @method gotoPage\n * @param num {number} page id\n * @return {object} the dialog\n */\n Dialog.prototype.gotoPage = function (num) {\n this.page[this.curpage].hide();\n this.curpage = num;\n if (this.curpage < 0) {\n this.curpage = this.page.length - 1;\n } else if (this.curpage >= this.page.length) {\n this.curpage = 0;\n }\n this.page[this.curpage].show();\n return this;\n };\n /**\n * Returns specified panel at the current page\n * @method getPanel\n * @param pageorpanelId {number} page id or panel id\n * @param panelId {number} panel id\n * @return {object} the internal Panel object\n */\n Dialog.prototype.getPanel = function (pageorpanelId, panelId) {\n var pageid = (panelId == null) ? this.curpage : pageorpanelId;\n if (panelId == null) {\n panelId = pageorpanelId;\n }\n return this.page[pageid].panel[panelId];\n };\n /**\n * Returns specified page\n * @method getPage\n * @param pageid {number} page id\n * @return {object} the internal Page Object\n */\n Dialog.prototype.getPage = function (pageid) {\n return this.page[pageid];\n };\n /**\n * Returns current panel at the current page\n * @method getCurrentPanel\n * @return {object} the internal Panel object\n */\n Dialog.prototype.getCurrentPanel = function () {\n return this.page[this.curpage].getCurrentPanel();\n };\n\n /**\n * Selects corresponding panel\n * @method gotoPanel\n * @param pageorpanel {object} panel object or page object\n * @param panel {object} panel object\n * @param panel {number} id of the panel\n */\n Dialog.prototype.gotoPanel = function (pageorpanel, panel) {\n if (panel != null) {\n var pageid = pageorpanel.id || pageorpanel;\n this.gotoPage(pageid);\n }\n this.page[this.curpage].gotoPanel(typeof panel === 'undefined' ? pageorpanel : panel);\n };\n\n /**\n * Shows the dialog, if it is not visible\n * @method show\n * @return {object} the dialog\n */\n Dialog.prototype.show = function () {\n this.popup.show();\n trigger('show.dialog', {dialog: this});\n return this;\n };\n /**\n * Hides the dialog, if it was visible\n * @method hide\n * @return {object} the dialog\n */\n Dialog.prototype.hide = function () {\n this.popup.hide();\n trigger('hide.dialog', {dialog: this});\n return this;\n };\n /**\n * Removes the dialog elements from the DOM\n * @method remove\n */\n Dialog.prototype.remove = function () {\n this.popup.hide();\n this.popup.remove();\n trigger('remove.dialog', {dialog: this});\n };\n /**\n * Disables the dialog if enabled\n * @method disable\n */\n Dialog.prototype.disable = function () {\n this.popup.disable();\n return this;\n };\n /**\n * Enables the dialog if disabled\n * @method disable\n */\n Dialog.prototype.enable = function () {\n this.popup.enable();\n return this;\n };\n /**\n * Gets set of items depending on query\n * @method get\n * @param query {string} query to search for panels, pages, headers or buttons\n * e.g.\n * '#Name' will find all dialog components with the given name such as panels and buttons, etc\n * 'panel#Name' will find only panels with the given name\n * 'panel#\"Foo bar\"' will find only panels with given name\n * 'panel:3' will find the third panel\n */\n Dialog.prototype.get = function (query) {\n var coll = [];\n var dialog = this;\n var nameExp = '#([^\"][^ ]*|\"[^\"]*\")'; // a name is a hash followed by either a bare word or quoted string\n var indexExp = ':(\\\\d+)'; // an index is a colon followed by some digits\n var typeExp = 'page|panel|button|header'; // one of the allowed types\n var selectorExp = '(?:' + // a selector is either ...\n '(' + typeExp + ')(?:' + nameExp + '|' + indexExp + ')?' + // a type optionally followed by either #name or :index\n '|' + nameExp + // or just a #name\n ')';\n var queryRE = new RegExp('(?:^|,)' + // a comma or at the start of the line\n '\\\\s*' + selectorExp + // optional space and a selector\n '(?:\\\\s+' + selectorExp + ')?' + // optionally, followed by some space and a second selector\n '\\\\s*(?=,|$)', 'ig'); // followed by, but not including, a comma or the end of the string\n (query + '').replace(queryRE, function (all, name, title, id, justtitle, name2, title2, id2, justtitle2) {\n name = name && name.toLowerCase();\n var pages = [];\n if (name == 'page' && dialog.page[id]) {\n pages.push(dialog.page[id]);\n name = name2;\n name = name && name.toLowerCase();\n title = title2;\n id = id2;\n justtitle = justtitle2;\n } else {\n pages = dialog.page;\n }\n title = title && (title + '').replace(/\"/g, '');\n title2 = title2 && (title2 + '').replace(/\"/g, '');\n justtitle = justtitle && (justtitle + '').replace(/\"/g, '');\n justtitle2 = justtitle2 && (justtitle2 + '').replace(/\"/g, '');\n if (name || justtitle) {\n for (var i = pages.length; i--;) {\n if (justtitle || (name == 'panel' && (title || (!title && id == null)))) {\n for (var j = pages[i].panel.length; j--;) {\n if (pages[i].panel[j].button.html() == justtitle || pages[i].panel[j].button.html() == title || (name == 'panel' && !title && id == null)) {\n coll.push(pages[i].panel[j]);\n }\n }\n }\n if (justtitle || (name == 'button' && (title || (!title && id == null)))) {\n for (var j = pages[i].button.length; j--;) {\n if (pages[i].button[j].item.html() == justtitle || pages[i].button[j].item.html() == title || (name == 'button' && !title && id == null)) {\n coll.push(pages[i].button[j]);\n }\n }\n }\n if (pages[i][name] && pages[i][name][id]) {\n coll.push(pages[i][name][id]);\n }\n if (name == 'header' && pages[i].header) {\n coll.push(pages[i].header);\n }\n }\n } else {\n coll = coll.concat(pages);\n }\n });\n var res = {\n length: coll.length\n };\n for (var i = coll.length; i--;) {\n res[i] = coll[i];\n for (var method in coll[i]) {\n if (!(method in res)) {\n (function (m) {\n res[m] = function () {\n for (var j = this.length; j--;) {\n if (typeof this[j][m] === 'function') {\n this[j][m].apply(this[j], arguments);\n }\n }\n };\n }(method));\n }\n }\n }\n return res;\n };\n\n /**\n * Updates height of panels, to contain content without the need for scroll bars.\n *\n * @method updateHeight\n */\n Dialog.prototype.updateHeight = function () {\n var height = 0;\n var maxDialogHeight = $(window).height() - HEADER_HEIGHT - BUTTONS_HEIGHT - (MIN_DIALOG_VERTICAL_BUFFER * 2);\n for (var i = 0; this.getPanel(i); i++) {\n if (this.getPanel(i).body.css({height: 'auto', display: 'block'}).outerHeight() > height) {\n height = Math.min(maxDialogHeight, this.getPanel(i).body.outerHeight());\n }\n if (i !== this.page[this.curpage].curtab) {\n this.getPanel(i).body.css({display: 'none'});\n }\n }\n for (i = 0; this.getPanel(i); i++) {\n this.getPanel(i).body.css({height: height || this.height});\n }\n this.page[0].menu.height(height);\n this.height = height + HEADER_HEIGHT + BUTTONS_HEIGHT + 1;\n this.popup.changeSize(undefined, this.height);\n };\n\n /**\n * Returns whether the dialog has been resized to it's maximum height (has been capped by the viewport height and vertical buffer).\n *\n * @method isMaximised\n */\n Dialog.prototype.isMaximised = function () {\n return this.popup.element.outerHeight() >= $(window).height() - (MIN_DIALOG_VERTICAL_BUFFER * 2);\n };\n\n /**\n * Returns the current panel.\n * @deprecated Since 3.0.1 Use getCurrentPanel() instead.\n */\n Dialog.prototype.getCurPanel = function () {\n return this.getPanel(this.page[this.curpage].curtab);\n };\n\n /**\n * Returns the current button panel.\n * @deprecated Since 3.0.1 Use get() instead.\n */\n Dialog.prototype.getCurPanelButton = function () {\n return this.getCurPanel().button;\n };\n\n return Dialog;\n\n}());\n\nDialog = deprecate.construct(Dialog, 'Dialog constructor', {\n alternativeName: 'Dialog2'\n});\n\ncreatePopup = deprecate.construct(createPopup, 'Dialog popup constructor', {\n alternatveName: 'Dialog2'\n});\n\nglobalize('Dialog', Dialog);\nglobalize('popup', createPopup);\n\nexport {\n Dialog,\n createPopup as popup\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["js/aui/dialog2.js"],"names":["defaults","applyDefaults","$el","each","key","value","dataKey","hasAttribute","attr","Dialog2","selector","aui","dialog","dialog2","prototype","on","event","fn","off","show","hide","remove","isVisible","dialog2Widget","eventName","document","e","preventDefault","closest","selectors","$selected","some","find","length","first","focus","layer","data"],"mappings":";;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;AAQA,QAAIA,WAAW;AACX,qBAAa,OADF,EACW;AACtB,yBAAiB;AAFN,KAAf;;AAKA,aAASC,aAAT,CAAuBC,GAAvB,EAA4B;
|
|
1
|
+
{"version":3,"sources":["js/aui/dialog2.js"],"names":["defaults","applyDefaults","$el","$","each","key","value","dataKey","hasAttribute","attr","Dialog2","selector","aui","dialog","dialog2","prototype","on","event","fn","off","show","hide","remove","isVisible","dialog2Widget","eventName","layerWidget","document","e","preventDefault","closest","selectors","$selected","some","find","length","first","focus","layer","data"],"mappings":"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","file":"dialog2.js","sourcesContent":["'use strict';\n\nimport $ from './jquery';\nimport amdify from './internal/amdify';\nimport globalize from './internal/globalize';\nimport layerWidget from './layer';\nimport widget from './internal/widget';\n\nvar defaults = {\n 'aui-focus': 'false', // do not focus by default as it's overridden below\n 'aui-blanketed': 'true'\n};\n\nfunction applyDefaults($el) {\n $.each(defaults, function (key, value) {\n var dataKey = 'data-' + key;\n if (!$el[0].hasAttribute(dataKey)) {\n $el.attr(dataKey, value);\n }\n });\n}\n\nfunction Dialog2(selector) {\n if (selector) {\n this.$el = $(selector);\n } else {\n this.$el = $(aui.dialog.dialog2({}));\n }\n applyDefaults(this.$el);\n}\n\nDialog2.prototype.on = function (event, fn) {\n layerWidget(this.$el).on(event, fn);\n return this;\n};\n\nDialog2.prototype.off = function (event, fn) {\n layerWidget(this.$el).off(event, fn);\n return this;\n};\n\nDialog2.prototype.show = function () {\n layerWidget(this.$el).show();\n return this;\n};\n\nDialog2.prototype.hide = function () {\n layerWidget(this.$el).hide();\n return this;\n};\n\nDialog2.prototype.remove = function () {\n layerWidget(this.$el).remove();\n return this;\n};\n\nDialog2.prototype.isVisible = function () {\n return layerWidget(this.$el).isVisible();\n};\n\nvar dialog2Widget = widget('dialog2', Dialog2);\n\ndialog2Widget.on = function (eventName, fn) {\n layerWidget.on(eventName, '.aui-dialog2', fn);\n return this;\n};\n\ndialog2Widget.off = function (eventName, fn) {\n layerWidget.off(eventName, '.aui-dialog2', fn);\n return this;\n};\n\n/* Live events */\n\n$(document).on('click', '.aui-dialog2-header-close', function (e) {\n e.preventDefault();\n dialog2Widget($(this).closest('.aui-dialog2')).hide();\n});\n\ndialog2Widget.on('show', function (e, $el) {\n var selectors = ['.aui-dialog2-content', '.aui-dialog2-footer', '.aui-dialog2-header'];\n var $selected;\n selectors.some(function (selector) {\n $selected = $el.find(selector + ' :aui-tabbable');\n return $selected.length;\n });\n $selected && $selected.first().focus();\n});\n\ndialog2Widget.on('hide', function (e,$el) {\n var layer = layerWidget($el);\n\n if ($el.data('aui-remove-on-hide')) {\n layer.remove();\n }\n});\n\namdify('aui/dialog2', dialog2Widget);\nglobalize('dialog2', dialog2Widget);\nexport default dialog2Widget;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["js/aui/drop-down.js"],"names":["deprecate","logger","dropDown","obj","usroptions","dd","result","moving","$doc","document","options","item","activeClass","alignment","displayHandler","name","escapeHandler","hide","hideHandler","moveHandler","useDisabled","extend","left","right","toLowerCase","jquery","constructor","Array","addClass","toggleClass","isHiddenByDefault","i","ii","length","ol","j","jj","li","properties","href","append","html","attr","className","data","icon","prepend","insideSpanIcon","children","iconFontClass","Error","moveDown","move","moveUp","dir","trigger","cdd","current","$","links","oldFocus","focused","log","moveFocus","e","c","which","cleanActive","call","selectionHandler","stopPropagation","preventDefault","hider","button","active","cleanFocus","originalClass","handleClickSelection","metaKey","ctrlKey","shiftKey","isEventsBound","el","bound","each","handler","type","$cdd","res","methods","reset","removeClass","getFocusIndex","$this","hover","click","appear","fade","fadeIn","fadeOut","scroll","slideDown","slideUp","addControlProcess","method","process","aop","around","target","addCallback","callback","after","show","closest","hasClass","timer","setTimeout","keydown","firstSelected","offsetParent","css","zIndex","causer","get","unbind","iframes","createShims","idx","iframe","shim","appendTo","push","is","offset","height","width","top","getAdditionalPropertyValue","tagName","removeAllAdditionalProperties","Standard","selector","dropdownParents","hookUpDropDown","$trigger","$parent","$dropdown","ddcontrol","handleEvent","event","outerHeight","stopImmediatePropagation","useLiveEvents","keysCache","valuesCache","live","index","inArray","val","parent","dropdown","find","not","filter","Ajax","dropdowns","cache","getAjaxOptions","opts","success","response","formatResults","set","refreshSuccess","ajaxOptions","isFunction","url","replace","responseData","superMethod","ajax","throbber","end","iframeShim","resetCache","fn","match","toUpperCase","construct","alternativeName"],"mappings":"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","file":"drop-down.js","sourcesContent":["import $ from './jquery';\nimport '../../js-vendor/jquery/plugins/jquery.aop';\nimport * as deprecate from './internal/deprecation';\nimport * as logger from './internal/log';\nimport globalize from './internal/globalize';\n\n/**\n * Displays a drop down, typically used for menus.\n *\n * @param obj {jQuery Object|String|Array} object to populate the drop down from.\n * @param usroptions optional dropdown configuration. Supported properties are:\n * <li>alignment - \"left\" or \"right\" alignment of the drop down</li>\n * <li>escapeHandler - function to handle on escape key presses</li>\n * <li>activeClass - class name to be added to drop down items when 'active' ie. hover over</li>\n * <li>selectionHandler - function to handle when drop down items are selected on</li>\n * <li>hideHandler - function to handle when the drop down is hidden</li>\n * When an object of type Array is passed in, you can also configure:\n * <li>isHiddenByDefault - set to true if you would like to hide the drop down on initialisation</li>\n * <li>displayHandler - function to display text in the drop down</li>\n * <li>useDisabled - If set to true, the dropdown will not appear if a class of disabled is added to aui-dd-parent</li>\n *\n * @returns {Array} an array of jQuery objects, referring to the drop down container elements\n */\nfunction dropDown (obj, usroptions) {\n var dd = null;\n var result = [];\n var moving = false;\n var $doc = $(document);\n var options = {\n item: 'li:has(a)',\n activeClass: 'active',\n alignment: 'right',\n displayHandler: function (obj) {\n return obj.name;\n },\n escapeHandler: function () {\n this.hide('escape');\n return false;\n },\n hideHandler: function () {},\n moveHandler: function () {},\n useDisabled: false\n };\n\n $.extend(options, usroptions);\n options.alignment = {left: 'left',right: 'right'}[options.alignment.toLowerCase()] || 'left';\n\n if (obj && obj.jquery) { // if $\n dd = obj;\n } else if (typeof obj === 'string') { // if $ selector\n dd = $(obj);\n } else if (obj && obj.constructor === Array) { // if JSON\n dd = $('<div></div>').addClass('aui-dropdown').toggleClass('hidden', !!options.isHiddenByDefault);\n for (var i = 0, ii = obj.length; i < ii; i++) {\n var ol = $('<ol></ol>');\n for (var j = 0, jj = obj[i].length; j < jj; j++) {\n var li = $('<li></li>');\n var properties = obj[i][j];\n if (properties.href) {\n li.append($('<a></a>')\n .html('<span>' + options.displayHandler(properties) + '</span>')\n .attr({href: properties.href})\n .addClass(properties.className));\n\n // deprecated - use the properties on the li, not the span\n $.data($('a > span', li)[0], 'properties', properties);\n } else {\n li.html(properties.html).addClass(properties.className);\n }\n if (properties.icon) {\n li.prepend($('<img />').attr('src', properties.icon));\n }\n if (properties.insideSpanIcon){\n li.children('a').prepend($('<span></span>').attr('class','icon'));\n }\n if (properties.iconFontClass) {\n li.children('a').prepend($('<span></span>').addClass('aui-icon aui-icon-small aui-iconfont-' + properties.iconFontClass));\n }\n\n $.data(li[0], 'properties', properties);\n ol.append(li);\n }\n if (i === ii - 1) {\n ol.addClass('last');\n }\n dd.append(ol);\n }\n $('body').append(dd);\n } else {\n throw new Error('dropDown function was called with illegal parameter. Should be $ object, $ selector or array.');\n }\n\n var moveDown = function () {\n move(+1);\n };\n\n var moveUp = function () {\n move(-1);\n };\n\n var move = function (dir) {\n var trigger = !moving;\n var cdd = dropDown.current.$[0];\n var links = dropDown.current.links;\n var oldFocus = cdd.focused;\n\n moving = true;\n\n if (links.length === 0) {\n // Nothing to move focus to. Abort.\n return;\n }\n\n cdd.focused = (typeof oldFocus === 'number') ? oldFocus : -1;\n\n if (!dropDown.current) {\n logger.log('move - not current, aborting');\n return true;\n }\n\n cdd.focused += dir;\n\n // Resolve out of bounds values:\n if (cdd.focused < 0) {\n cdd.focused = links.length - 1;\n } else if (cdd.focused >= links.length) {\n cdd.focused = 0;\n }\n\n options.moveHandler($(links[cdd.focused]), dir < 0 ? 'up' : 'down');\n if (trigger && links.length) {\n $(links[cdd.focused]).addClass(options.activeClass);\n moving = false;\n } else if (!links.length) {\n moving = false;\n }\n };\n\n var moveFocus = function (e) {\n if (!dropDown.current) {\n return true;\n }\n var c = e.which;\n var cdd = dropDown.current.$[0];\n var links = dropDown.current.links;\n\n dropDown.current.cleanActive();\n switch (c) {\n case 40: {\n moveDown();\n break;\n }\n case 38:{\n moveUp();\n break;\n }\n case 27:{\n return options.escapeHandler.call(dropDown.current, e);\n }\n case 13:{\n if (cdd.focused >= 0) {\n if (!options.selectionHandler){\n if ($(links[cdd.focused]).attr('nodeName') != 'a'){\n return $('a', links[cdd.focused]).trigger('focus'); //focus on the \"a\" within the parent item elements\n } else {\n return $(links[cdd.focused]).trigger('focus'); //focus on the \"a\"\n }\n } else {\n return options.selectionHandler.call(dropDown.current, e, $(links[cdd.focused])); //call the selection handler\n }\n }\n return true;\n }\n default:{\n if (links.length) {\n $(links[cdd.focused]).addClass(options.activeClass);\n }\n return true;\n }\n }\n\n e.stopPropagation();\n e.preventDefault();\n return false;\n };\n\n var hider = function (e) {\n if (!((e && e.which && (e.which == 3)) || (e && e.button && (e.button == 2)) || false)) { // right click check\n if (dropDown.current) {\n dropDown.current.hide('click');\n }\n }\n };\n var active = function (i) {\n return function () {\n if (!dropDown.current) {\n return;\n }\n dropDown.current.cleanFocus();\n this.originalClass = this.className;\n $(this).addClass(options.activeClass);\n dropDown.current.$[0].focused = i;\n };\n };\n\n var handleClickSelection = function (e) {\n if (e.button || e.metaKey || e.ctrlKey || e.shiftKey) {\n return true;\n }\n if (dropDown.current && options.selectionHandler) {\n options.selectionHandler.call(dropDown.current, e, $(this));\n }\n };\n\n var isEventsBound = function (el) {\n var bound = false;\n if (el.data('events')) {\n $.each(el.data('events'), function (i, handler) {\n $.each(handler, function (type, handler) {\n if (handleClickSelection === handler) {\n bound = true;\n return false;\n }\n });\n });\n }\n return bound;\n };\n\n dd.each(function () {\n var cdd = this;\n var $cdd = $(this);\n var res = {};\n var methods = {\n reset: function () {\n res = $.extend(res, {\n $: $cdd,\n links: $(options.item || 'li:has(a)', cdd),\n cleanActive: function () {\n if (cdd.focused + 1 && res.links.length) {\n $(res.links[cdd.focused]).removeClass(options.activeClass);\n }\n },\n cleanFocus: function () {\n res.cleanActive();\n cdd.focused = -1;\n },\n moveDown: moveDown,\n moveUp: moveUp,\n moveFocus: moveFocus,\n getFocusIndex: function () {\n return (typeof cdd.focused === 'number') ? cdd.focused : -1;\n }\n });\n res.links.each(function (i) {\n var $this = $(this);\n if (!isEventsBound($this)) {\n $this.hover(active(i), res.cleanFocus);\n $this.click(handleClickSelection);\n }\n });\n },\n appear: function (dir) {\n if (dir) {\n $cdd.removeClass('hidden');\n //handle left or right alignment\n $cdd.addClass('aui-dropdown-' + options.alignment);\n } else {\n $cdd.addClass('hidden');\n }\n },\n fade: function (dir) {\n if (dir) {\n $cdd.fadeIn('fast');\n } else {\n $cdd.fadeOut('fast');\n }\n },\n scroll: function (dir) {\n if (dir) {\n $cdd.slideDown('fast');\n } else {\n $cdd.slideUp('fast');\n }\n }\n };\n\n res.reset = methods.reset;\n res.reset();\n\n /**\n * Uses Aspect Oriented Programming (AOP) to wrap a method around another method\n * Allows control of the execution of the wrapped method.\n * specified method has returned @see $.aop\n * @method addControlProcess\n * @param {String} methodName - Name of a public method\n * @param {Function} callback - Function to be executed\n * @return {Array} weaved aspect\n */\n res.addControlProcess = function (method, process) {\n $.aop.around({target: this, method: method}, process);\n };\n\n /**\n * Uses Aspect Oriented Programming (AOP) to insert callback <em>after</em> the\n * specified method has returned @see $.aop\n * @method addCallback\n * @param {String} methodName - Name of a public method\n * @param {Function} callback - Function to be executed\n * @return {Array} weaved aspect\n */\n res.addCallback = function (method, callback) {\n return $.aop.after({target: this, method: method}, callback);\n };\n\n res.show = function (method) {\n if (options.useDisabled && this.$.closest('.aui-dd-parent').hasClass('disabled')) {\n return\n }\n\n this.alignment = options.alignment;\n hider();\n dropDown.current = this;\n this.method = method || this.method || 'appear';\n\n this.timer = setTimeout(function () {\n $doc.click(hider);\n }, 0);\n\n $doc.keydown(moveFocus);\n\n if (options.firstSelected && this.links[0]) {\n active(0).call(this.links[0]);\n }\n\n $(cdd.offsetParent).css({zIndex: 2000});\n methods[this.method](true);\n\n $(document).trigger('showLayer', ['dropdown', dropDown.current]);\n };\n\n res.hide = function (causer) {\n this.method = this.method || 'appear';\n $($cdd.get(0).offsetParent).css({zIndex: ''});\n this.cleanFocus();\n methods[this.method](false);\n $doc.unbind('click', hider).unbind('keydown', moveFocus);\n $(document).trigger('hideLayer', ['dropdown', dropDown.current]);\n dropDown.current = null;\n return causer;\n };\n\n res.addCallback('reset', function () {\n if (options.firstSelected && this.links[0]) {\n active(0).call(this.links[0]);\n }\n });\n\n if (!dropDown.iframes) {\n dropDown.iframes = [];\n }\n\n dropDown.createShims = (function createShims () {\n $('iframe').each(function (idx) {\n var iframe = this;\n if (!iframe.shim) {\n iframe.shim = $('<div />')\n .addClass('shim hidden')\n .appendTo('body');\n dropDown.iframes.push(iframe);\n }\n });\n return createShims;\n }());\n\n res.addCallback('show', function () {\n $(dropDown.iframes).each(function () {\n var $this = $(this);\n\n if ($this.is(':visible')) {\n var offset = $this.offset();\n offset.height = $this.height();\n offset.width = $this.width();\n this.shim.css({\n left: offset.left + 'px',\n top: offset.top + 'px',\n height: offset.height + 'px',\n width: offset.width + 'px'\n }).removeClass('hidden');\n }\n });\n });\n\n res.addCallback('hide', function () {\n $(dropDown.iframes).each(function () {\n this.shim.addClass('hidden');\n });\n options.hideHandler();\n });\n result.push(res);\n });\n return result;\n};\n\n/**\n * For the given item in the drop down get the value of the named additional property. If there is no\n * property with the specified name then null will be returned.\n *\n * @method getAdditionalPropertyValue\n * @namespace dropDown\n * @param item {Object} jQuery Object of the drop down item. An LI element is expected.\n * @param name {String} name of the property to retrieve\n */\ndropDown.getAdditionalPropertyValue = function (item, name) {\n var el = item[0];\n if (!el || (typeof el.tagName !== 'string') || el.tagName.toLowerCase() !== 'li') {\n // we are moving the location of the properties and want to deprecate the attachment to the span\n // but are unsure where and how its being called so for now we just log\n logger.log('dropDown.getAdditionalPropertyValue : item passed in should be an LI element wrapped by jQuery');\n }\n var properties = $.data(el, 'properties');\n return properties ? properties[name] : null;\n};\n\n/**\n * Only here for backwards compatibility\n * @method removeAllAdditionalProperties\n * @namespace dropDown\n * @deprecated Since 3.0\n */\ndropDown.removeAllAdditionalProperties = function (item) {\n};\n\n/**\n * Base dropdown control. Enables you to identify triggers that when clicked, display dropdown.\n *\n * @class Standard\n * @constructor\n * @namespace dropDown\n * @param {Object} usroptions\n * @return {Object\n */\ndropDown.Standard = function (usroptions) {\n\n var res = [];\n var options = {\n selector: '.aui-dd-parent',\n dropDown: '.aui-dropdown',\n trigger: '.aui-dd-trigger'\n };\n var dropdownParents;\n\n // extend defaults with user options\n $.extend(options, usroptions);\n\n var hookUpDropDown = function ($trigger, $parent, $dropdown, ddcontrol) {\n // extend to control to have any additional properties/methods\n $.extend(ddcontrol, {trigger: $trigger});\n\n // flag it to prevent additional dd controls being applied\n $parent.addClass('dd-allocated');\n\n //hide dropdown if not already hidden\n $dropdown.addClass('hidden');\n\n //show the dropdown if isHiddenByDefault is set to false\n if (options.isHiddenByDefault == false) {\n ddcontrol.show();\n }\n\n ddcontrol.addCallback('show', function () {\n $parent.addClass('active');\n });\n\n ddcontrol.addCallback('hide', function () {\n $parent.removeClass('active');\n });\n };\n\n var handleEvent = function (event, $trigger, $dropdown, ddcontrol) {\n if (ddcontrol != dropDown.current) {\n $dropdown.css({top: $trigger.outerHeight()});\n ddcontrol.show();\n event.stopImmediatePropagation();\n }\n event.preventDefault();\n };\n\n if (options.useLiveEvents) {\n // cache arrays so that we don't have to recalculate the dropdowns. Since we can't store objects as keys in a map,\n // we have two arrays: keysCache stores keys of dropdown triggers; valuesCache stores a map of internally used objects\n var keysCache = [];\n var valuesCache = [];\n\n $(options.trigger).live('click', function (event) {\n var $trigger = $(this);\n var $parent;\n var $dropdown;\n var ddcontrol;\n\n // if we're cached, don't recalculate the dropdown and do all that funny shite.\n var index;\n if ((index = $.inArray(this, keysCache)) >= 0) {\n var val = valuesCache[index];\n $parent = val.parent;\n $dropdown = val.dropdown;\n ddcontrol = val.ddcontrol;\n } else {\n $parent = $trigger.closest(options.selector);\n $dropdown = $parent.find(options.dropDown);\n // Sanity checking\n if ($dropdown.length === 0) {\n return;\n }\n\n ddcontrol = dropDown($dropdown, options)[0];\n // Sanity checking\n if (!ddcontrol) {\n return;\n }\n\n // cache\n keysCache.push(this);\n val = {\n parent: $parent,\n dropdown: $dropdown,\n ddcontrol: ddcontrol\n };\n\n hookUpDropDown($trigger, $parent, $dropdown, ddcontrol);\n\n valuesCache.push(val);\n }\n\n handleEvent(event, $trigger, $dropdown, ddcontrol);\n });\n } else {\n // handling for jQuery collections\n if (this instanceof $) {\n dropdownParents = this;\n // handling for selectors\n } else {\n dropdownParents = $(options.selector);\n }\n\n // a series of checks to ensure we are dealing with valid dropdowns\n dropdownParents = dropdownParents\n .not('.dd-allocated')\n .filter(':has(' + options.dropDown + ')')\n .filter(':has(' + options.trigger + ')');\n\n dropdownParents.each(function () {\n var $parent = $(this);\n var $dropdown = $(options.dropDown, this);\n var $trigger = $(options.trigger, this);\n var ddcontrol = dropDown($dropdown, options)[0];\n\n // extend to control to have any additional properties/methods\n $.extend(ddcontrol, {trigger: $trigger});\n\n hookUpDropDown($trigger, $parent, $dropdown, ddcontrol);\n\n $trigger.click(function (e) {\n handleEvent(e, $trigger, $dropdown, ddcontrol);\n });\n\n // add control to the response\n res.push(ddcontrol);\n\n });\n }\n return res;\n};\n\n\n/**\n * A NewStandard dropdown, however, with the ability to populate its content's via ajax.\n *\n * @class Ajax\n * @constructor\n * @namespace dropDown\n * @param {Object} options\n * @return {Object} dropDown instance\n */\ndropDown.Ajax = function (usroptions) {\n\n var dropdowns;\n var options = {cache: true};\n\n // extend defaults with user options\n $.extend(options, usroptions || {});\n\n // we call with \"this\" in case we are called in the context of a jQuery collection\n dropdowns = dropDown.Standard.call(this, options);\n\n $(dropdowns).each(function () {\n\n var ddcontrol = this;\n\n $.extend(ddcontrol, {\n getAjaxOptions: function (opts) {\n var success = function (response) {\n if (options.formatResults) {\n response = options.formatResults(response);\n }\n if (options.cache) {\n ddcontrol.cache.set(ddcontrol.getAjaxOptions(), response);\n }\n ddcontrol.refreshSuccess(response);\n };\n if (options.ajaxOptions) {\n\n\n if ($.isFunction(options.ajaxOptions)) {\n return $.extend(options.ajaxOptions.call(ddcontrol), {success: success});\n } else {\n return $.extend(options.ajaxOptions, {success: success});\n }\n }\n return $.extend(opts, {success: success});\n },\n\n refreshSuccess: function (response) {\n this.$.html(response);\n },\n\n cache: (function () {\n var c = {};\n return {\n get: function (ajaxOptions) {\n var data = ajaxOptions.data || '';\n return c[(ajaxOptions.url + data).replace(/[\\?\\&]/gi,'')];\n },\n set: function (ajaxOptions, responseData) {\n var data = ajaxOptions.data || '';\n c[(ajaxOptions.url + data).replace(/[\\?\\&]/gi,'')] = responseData;\n },\n reset: function () {\n c = {};\n }\n };\n }()),\n\n show: (function (superMethod) {\n return function () {\n if (options.cache && !!ddcontrol.cache.get(ddcontrol.getAjaxOptions())) {\n ddcontrol.refreshSuccess(ddcontrol.cache.get(ddcontrol.getAjaxOptions()));\n superMethod.call(ddcontrol);\n } else {\n $($.ajax(ddcontrol.getAjaxOptions())).throbber({target: ddcontrol.$,\n end: function () {\n ddcontrol.reset();\n }\n });\n superMethod.call(ddcontrol);\n if (ddcontrol.iframeShim) {\n ddcontrol.iframeShim.hide();\n }\n }\n };\n }(ddcontrol.show)),\n\n resetCache: function () {\n ddcontrol.cache.reset();\n }\n });\n ddcontrol.addCallback('refreshSuccess', function () {\n ddcontrol.reset();\n });\n });\n return dropdowns;\n};\n\n\n// OMG. No. Just no.\n$.fn.dropDown = function (type, options) {\n type = (type || 'Standard').replace(/^([a-z])/, function (match) {\n return match.toUpperCase();\n });\n return dropDown[type].call(this, options);\n};\n\n$.fn.dropDown = deprecate.construct($.fn.dropDown, 'Dropdown constructor', {\n alternativeName: 'Dropdown2'\n});\n\nglobalize('dropDown', dropDown);\n\nexport default dropDown;\n"]}
|
|
1
|
+
{"version":3,"sources":["js/aui/drop-down.js"],"names":["deprecate","logger","dropDown","obj","usroptions","dd","result","moving","$doc","document","options","item","activeClass","alignment","displayHandler","name","escapeHandler","hide","hideHandler","moveHandler","useDisabled","$","extend","left","right","toLowerCase","jquery","constructor","Array","addClass","toggleClass","isHiddenByDefault","i","ii","length","ol","j","jj","li","properties","href","append","html","attr","className","data","icon","prepend","insideSpanIcon","children","iconFontClass","Error","moveDown","move","moveUp","dir","trigger","cdd","current","links","oldFocus","focused","log","moveFocus","e","c","which","cleanActive","call","selectionHandler","stopPropagation","preventDefault","hider","button","active","cleanFocus","originalClass","handleClickSelection","metaKey","ctrlKey","shiftKey","isEventsBound","el","bound","each","handler","type","$cdd","res","methods","reset","removeClass","getFocusIndex","$this","hover","click","appear","fade","fadeIn","fadeOut","scroll","slideDown","slideUp","addControlProcess","method","process","aop","around","target","addCallback","callback","after","show","closest","hasClass","timer","setTimeout","keydown","firstSelected","offsetParent","css","zIndex","causer","get","unbind","iframes","createShims","idx","iframe","shim","appendTo","push","is","offset","height","width","top","getAdditionalPropertyValue","tagName","removeAllAdditionalProperties","Standard","selector","dropdownParents","hookUpDropDown","$trigger","$parent","$dropdown","ddcontrol","handleEvent","event","outerHeight","stopImmediatePropagation","useLiveEvents","keysCache","valuesCache","live","index","inArray","val","parent","dropdown","find","not","filter","Ajax","dropdowns","cache","getAjaxOptions","opts","success","response","formatResults","set","refreshSuccess","ajaxOptions","isFunction","url","replace","responseData","superMethod","ajax","throbber","end","iframeShim","resetCache","fn","match","toUpperCase","construct","alternativeName"],"mappings":"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","file":"drop-down.js","sourcesContent":["import $ from './jquery';\nimport '../../js-vendor/jquery/plugins/jquery.aop';\nimport * as deprecate from './internal/deprecation';\nimport * as logger from './internal/log';\nimport globalize from './internal/globalize';\n\n/**\n * Displays a drop down, typically used for menus.\n *\n * @param obj {jQuery Object|String|Array} object to populate the drop down from.\n * @param usroptions optional dropdown configuration. Supported properties are:\n * <li>alignment - \"left\" or \"right\" alignment of the drop down</li>\n * <li>escapeHandler - function to handle on escape key presses</li>\n * <li>activeClass - class name to be added to drop down items when 'active' ie. hover over</li>\n * <li>selectionHandler - function to handle when drop down items are selected on</li>\n * <li>hideHandler - function to handle when the drop down is hidden</li>\n * When an object of type Array is passed in, you can also configure:\n * <li>isHiddenByDefault - set to true if you would like to hide the drop down on initialisation</li>\n * <li>displayHandler - function to display text in the drop down</li>\n * <li>useDisabled - If set to true, the dropdown will not appear if a class of disabled is added to aui-dd-parent</li>\n *\n * @returns {Array} an array of jQuery objects, referring to the drop down container elements\n */\nfunction dropDown (obj, usroptions) {\n var dd = null;\n var result = [];\n var moving = false;\n var $doc = $(document);\n var options = {\n item: 'li:has(a)',\n activeClass: 'active',\n alignment: 'right',\n displayHandler: function (obj) {\n return obj.name;\n },\n escapeHandler: function () {\n this.hide('escape');\n return false;\n },\n hideHandler: function () {},\n moveHandler: function () {},\n useDisabled: false\n };\n\n $.extend(options, usroptions);\n options.alignment = {left: 'left',right: 'right'}[options.alignment.toLowerCase()] || 'left';\n\n if (obj && obj.jquery) { // if $\n dd = obj;\n } else if (typeof obj === 'string') { // if $ selector\n dd = $(obj);\n } else if (obj && obj.constructor === Array) { // if JSON\n dd = $('<div></div>').addClass('aui-dropdown').toggleClass('hidden', !!options.isHiddenByDefault);\n for (var i = 0, ii = obj.length; i < ii; i++) {\n var ol = $('<ol></ol>');\n for (var j = 0, jj = obj[i].length; j < jj; j++) {\n var li = $('<li></li>');\n var properties = obj[i][j];\n if (properties.href) {\n li.append($('<a></a>')\n .html('<span>' + options.displayHandler(properties) + '</span>')\n .attr({href: properties.href})\n .addClass(properties.className));\n\n // deprecated - use the properties on the li, not the span\n $.data($('a > span', li)[0], 'properties', properties);\n } else {\n li.html(properties.html).addClass(properties.className);\n }\n if (properties.icon) {\n li.prepend($('<img />').attr('src', properties.icon));\n }\n if (properties.insideSpanIcon){\n li.children('a').prepend($('<span></span>').attr('class','icon'));\n }\n if (properties.iconFontClass) {\n li.children('a').prepend($('<span></span>').addClass('aui-icon aui-icon-small aui-iconfont-' + properties.iconFontClass));\n }\n\n $.data(li[0], 'properties', properties);\n ol.append(li);\n }\n if (i === ii - 1) {\n ol.addClass('last');\n }\n dd.append(ol);\n }\n $('body').append(dd);\n } else {\n throw new Error('dropDown function was called with illegal parameter. Should be $ object, $ selector or array.');\n }\n\n var moveDown = function () {\n move(+1);\n };\n\n var moveUp = function () {\n move(-1);\n };\n\n var move = function (dir) {\n var trigger = !moving;\n var cdd = dropDown.current.$[0];\n var links = dropDown.current.links;\n var oldFocus = cdd.focused;\n\n moving = true;\n\n if (links.length === 0) {\n // Nothing to move focus to. Abort.\n return;\n }\n\n cdd.focused = (typeof oldFocus === 'number') ? oldFocus : -1;\n\n if (!dropDown.current) {\n logger.log('move - not current, aborting');\n return true;\n }\n\n cdd.focused += dir;\n\n // Resolve out of bounds values:\n if (cdd.focused < 0) {\n cdd.focused = links.length - 1;\n } else if (cdd.focused >= links.length) {\n cdd.focused = 0;\n }\n\n options.moveHandler($(links[cdd.focused]), dir < 0 ? 'up' : 'down');\n if (trigger && links.length) {\n $(links[cdd.focused]).addClass(options.activeClass);\n moving = false;\n } else if (!links.length) {\n moving = false;\n }\n };\n\n var moveFocus = function (e) {\n if (!dropDown.current) {\n return true;\n }\n var c = e.which;\n var cdd = dropDown.current.$[0];\n var links = dropDown.current.links;\n\n dropDown.current.cleanActive();\n switch (c) {\n case 40: {\n moveDown();\n break;\n }\n case 38:{\n moveUp();\n break;\n }\n case 27:{\n return options.escapeHandler.call(dropDown.current, e);\n }\n case 13:{\n if (cdd.focused >= 0) {\n if (!options.selectionHandler){\n if ($(links[cdd.focused]).attr('nodeName') != 'a'){\n return $('a', links[cdd.focused]).trigger('focus'); //focus on the \"a\" within the parent item elements\n } else {\n return $(links[cdd.focused]).trigger('focus'); //focus on the \"a\"\n }\n } else {\n return options.selectionHandler.call(dropDown.current, e, $(links[cdd.focused])); //call the selection handler\n }\n }\n return true;\n }\n default:{\n if (links.length) {\n $(links[cdd.focused]).addClass(options.activeClass);\n }\n return true;\n }\n }\n\n e.stopPropagation();\n e.preventDefault();\n return false;\n };\n\n var hider = function (e) {\n if (!((e && e.which && (e.which == 3)) || (e && e.button && (e.button == 2)) || false)) { // right click check\n if (dropDown.current) {\n dropDown.current.hide('click');\n }\n }\n };\n var active = function (i) {\n return function () {\n if (!dropDown.current) {\n return;\n }\n dropDown.current.cleanFocus();\n this.originalClass = this.className;\n $(this).addClass(options.activeClass);\n dropDown.current.$[0].focused = i;\n };\n };\n\n var handleClickSelection = function (e) {\n if (e.button || e.metaKey || e.ctrlKey || e.shiftKey) {\n return true;\n }\n if (dropDown.current && options.selectionHandler) {\n options.selectionHandler.call(dropDown.current, e, $(this));\n }\n };\n\n var isEventsBound = function (el) {\n var bound = false;\n if (el.data('events')) {\n $.each(el.data('events'), function (i, handler) {\n $.each(handler, function (type, handler) {\n if (handleClickSelection === handler) {\n bound = true;\n return false;\n }\n });\n });\n }\n return bound;\n };\n\n dd.each(function () {\n var cdd = this;\n var $cdd = $(this);\n var res = {};\n var methods = {\n reset: function () {\n res = $.extend(res, {\n $: $cdd,\n links: $(options.item || 'li:has(a)', cdd),\n cleanActive: function () {\n if (cdd.focused + 1 && res.links.length) {\n $(res.links[cdd.focused]).removeClass(options.activeClass);\n }\n },\n cleanFocus: function () {\n res.cleanActive();\n cdd.focused = -1;\n },\n moveDown: moveDown,\n moveUp: moveUp,\n moveFocus: moveFocus,\n getFocusIndex: function () {\n return (typeof cdd.focused === 'number') ? cdd.focused : -1;\n }\n });\n res.links.each(function (i) {\n var $this = $(this);\n if (!isEventsBound($this)) {\n $this.hover(active(i), res.cleanFocus);\n $this.click(handleClickSelection);\n }\n });\n },\n appear: function (dir) {\n if (dir) {\n $cdd.removeClass('hidden');\n //handle left or right alignment\n $cdd.addClass('aui-dropdown-' + options.alignment);\n } else {\n $cdd.addClass('hidden');\n }\n },\n fade: function (dir) {\n if (dir) {\n $cdd.fadeIn('fast');\n } else {\n $cdd.fadeOut('fast');\n }\n },\n scroll: function (dir) {\n if (dir) {\n $cdd.slideDown('fast');\n } else {\n $cdd.slideUp('fast');\n }\n }\n };\n\n res.reset = methods.reset;\n res.reset();\n\n /**\n * Uses Aspect Oriented Programming (AOP) to wrap a method around another method\n * Allows control of the execution of the wrapped method.\n * specified method has returned @see $.aop\n * @method addControlProcess\n * @param {String} methodName - Name of a public method\n * @param {Function} callback - Function to be executed\n * @return {Array} weaved aspect\n */\n res.addControlProcess = function (method, process) {\n $.aop.around({target: this, method: method}, process);\n };\n\n /**\n * Uses Aspect Oriented Programming (AOP) to insert callback <em>after</em> the\n * specified method has returned @see $.aop\n * @method addCallback\n * @param {String} methodName - Name of a public method\n * @param {Function} callback - Function to be executed\n * @return {Array} weaved aspect\n */\n res.addCallback = function (method, callback) {\n return $.aop.after({target: this, method: method}, callback);\n };\n\n res.show = function (method) {\n if (options.useDisabled && this.$.closest('.aui-dd-parent').hasClass('disabled')) {\n return\n }\n\n this.alignment = options.alignment;\n hider();\n dropDown.current = this;\n this.method = method || this.method || 'appear';\n\n this.timer = setTimeout(function () {\n $doc.click(hider);\n }, 0);\n\n $doc.keydown(moveFocus);\n\n if (options.firstSelected && this.links[0]) {\n active(0).call(this.links[0]);\n }\n\n $(cdd.offsetParent).css({zIndex: 2000});\n methods[this.method](true);\n\n $(document).trigger('showLayer', ['dropdown', dropDown.current]);\n };\n\n res.hide = function (causer) {\n this.method = this.method || 'appear';\n $($cdd.get(0).offsetParent).css({zIndex: ''});\n this.cleanFocus();\n methods[this.method](false);\n $doc.unbind('click', hider).unbind('keydown', moveFocus);\n $(document).trigger('hideLayer', ['dropdown', dropDown.current]);\n dropDown.current = null;\n return causer;\n };\n\n res.addCallback('reset', function () {\n if (options.firstSelected && this.links[0]) {\n active(0).call(this.links[0]);\n }\n });\n\n if (!dropDown.iframes) {\n dropDown.iframes = [];\n }\n\n dropDown.createShims = (function createShims () {\n $('iframe').each(function (idx) {\n var iframe = this;\n if (!iframe.shim) {\n iframe.shim = $('<div />')\n .addClass('shim hidden')\n .appendTo('body');\n dropDown.iframes.push(iframe);\n }\n });\n return createShims;\n }());\n\n res.addCallback('show', function () {\n $(dropDown.iframes).each(function () {\n var $this = $(this);\n\n if ($this.is(':visible')) {\n var offset = $this.offset();\n offset.height = $this.height();\n offset.width = $this.width();\n this.shim.css({\n left: offset.left + 'px',\n top: offset.top + 'px',\n height: offset.height + 'px',\n width: offset.width + 'px'\n }).removeClass('hidden');\n }\n });\n });\n\n res.addCallback('hide', function () {\n $(dropDown.iframes).each(function () {\n this.shim.addClass('hidden');\n });\n options.hideHandler();\n });\n result.push(res);\n });\n return result;\n};\n\n/**\n * For the given item in the drop down get the value of the named additional property. If there is no\n * property with the specified name then null will be returned.\n *\n * @method getAdditionalPropertyValue\n * @namespace dropDown\n * @param item {Object} jQuery Object of the drop down item. An LI element is expected.\n * @param name {String} name of the property to retrieve\n */\ndropDown.getAdditionalPropertyValue = function (item, name) {\n var el = item[0];\n if (!el || (typeof el.tagName !== 'string') || el.tagName.toLowerCase() !== 'li') {\n // we are moving the location of the properties and want to deprecate the attachment to the span\n // but are unsure where and how its being called so for now we just log\n logger.log('dropDown.getAdditionalPropertyValue : item passed in should be an LI element wrapped by jQuery');\n }\n var properties = $.data(el, 'properties');\n return properties ? properties[name] : null;\n};\n\n/**\n * Only here for backwards compatibility\n * @method removeAllAdditionalProperties\n * @namespace dropDown\n * @deprecated Since 3.0\n */\ndropDown.removeAllAdditionalProperties = function (item) {\n};\n\n/**\n * Base dropdown control. Enables you to identify triggers that when clicked, display dropdown.\n *\n * @class Standard\n * @constructor\n * @namespace dropDown\n * @param {Object} usroptions\n * @return {Object\n */\ndropDown.Standard = function (usroptions) {\n\n var res = [];\n var options = {\n selector: '.aui-dd-parent',\n dropDown: '.aui-dropdown',\n trigger: '.aui-dd-trigger'\n };\n var dropdownParents;\n\n // extend defaults with user options\n $.extend(options, usroptions);\n\n var hookUpDropDown = function ($trigger, $parent, $dropdown, ddcontrol) {\n // extend to control to have any additional properties/methods\n $.extend(ddcontrol, {trigger: $trigger});\n\n // flag it to prevent additional dd controls being applied\n $parent.addClass('dd-allocated');\n\n //hide dropdown if not already hidden\n $dropdown.addClass('hidden');\n\n //show the dropdown if isHiddenByDefault is set to false\n if (options.isHiddenByDefault == false) {\n ddcontrol.show();\n }\n\n ddcontrol.addCallback('show', function () {\n $parent.addClass('active');\n });\n\n ddcontrol.addCallback('hide', function () {\n $parent.removeClass('active');\n });\n };\n\n var handleEvent = function (event, $trigger, $dropdown, ddcontrol) {\n if (ddcontrol != dropDown.current) {\n $dropdown.css({top: $trigger.outerHeight()});\n ddcontrol.show();\n event.stopImmediatePropagation();\n }\n event.preventDefault();\n };\n\n if (options.useLiveEvents) {\n // cache arrays so that we don't have to recalculate the dropdowns. Since we can't store objects as keys in a map,\n // we have two arrays: keysCache stores keys of dropdown triggers; valuesCache stores a map of internally used objects\n var keysCache = [];\n var valuesCache = [];\n\n $(options.trigger).live('click', function (event) {\n var $trigger = $(this);\n var $parent;\n var $dropdown;\n var ddcontrol;\n\n // if we're cached, don't recalculate the dropdown and do all that funny shite.\n var index;\n if ((index = $.inArray(this, keysCache)) >= 0) {\n var val = valuesCache[index];\n $parent = val.parent;\n $dropdown = val.dropdown;\n ddcontrol = val.ddcontrol;\n } else {\n $parent = $trigger.closest(options.selector);\n $dropdown = $parent.find(options.dropDown);\n // Sanity checking\n if ($dropdown.length === 0) {\n return;\n }\n\n ddcontrol = dropDown($dropdown, options)[0];\n // Sanity checking\n if (!ddcontrol) {\n return;\n }\n\n // cache\n keysCache.push(this);\n val = {\n parent: $parent,\n dropdown: $dropdown,\n ddcontrol: ddcontrol\n };\n\n hookUpDropDown($trigger, $parent, $dropdown, ddcontrol);\n\n valuesCache.push(val);\n }\n\n handleEvent(event, $trigger, $dropdown, ddcontrol);\n });\n } else {\n // handling for jQuery collections\n if (this instanceof $) {\n dropdownParents = this;\n // handling for selectors\n } else {\n dropdownParents = $(options.selector);\n }\n\n // a series of checks to ensure we are dealing with valid dropdowns\n dropdownParents = dropdownParents\n .not('.dd-allocated')\n .filter(':has(' + options.dropDown + ')')\n .filter(':has(' + options.trigger + ')');\n\n dropdownParents.each(function () {\n var $parent = $(this);\n var $dropdown = $(options.dropDown, this);\n var $trigger = $(options.trigger, this);\n var ddcontrol = dropDown($dropdown, options)[0];\n\n // extend to control to have any additional properties/methods\n $.extend(ddcontrol, {trigger: $trigger});\n\n hookUpDropDown($trigger, $parent, $dropdown, ddcontrol);\n\n $trigger.click(function (e) {\n handleEvent(e, $trigger, $dropdown, ddcontrol);\n });\n\n // add control to the response\n res.push(ddcontrol);\n\n });\n }\n return res;\n};\n\n\n/**\n * A NewStandard dropdown, however, with the ability to populate its content's via ajax.\n *\n * @class Ajax\n * @constructor\n * @namespace dropDown\n * @param {Object} options\n * @return {Object} dropDown instance\n */\ndropDown.Ajax = function (usroptions) {\n\n var dropdowns;\n var options = {cache: true};\n\n // extend defaults with user options\n $.extend(options, usroptions || {});\n\n // we call with \"this\" in case we are called in the context of a jQuery collection\n dropdowns = dropDown.Standard.call(this, options);\n\n $(dropdowns).each(function () {\n\n var ddcontrol = this;\n\n $.extend(ddcontrol, {\n getAjaxOptions: function (opts) {\n var success = function (response) {\n if (options.formatResults) {\n response = options.formatResults(response);\n }\n if (options.cache) {\n ddcontrol.cache.set(ddcontrol.getAjaxOptions(), response);\n }\n ddcontrol.refreshSuccess(response);\n };\n if (options.ajaxOptions) {\n\n\n if ($.isFunction(options.ajaxOptions)) {\n return $.extend(options.ajaxOptions.call(ddcontrol), {success: success});\n } else {\n return $.extend(options.ajaxOptions, {success: success});\n }\n }\n return $.extend(opts, {success: success});\n },\n\n refreshSuccess: function (response) {\n this.$.html(response);\n },\n\n cache: (function () {\n var c = {};\n return {\n get: function (ajaxOptions) {\n var data = ajaxOptions.data || '';\n return c[(ajaxOptions.url + data).replace(/[\\?\\&]/gi,'')];\n },\n set: function (ajaxOptions, responseData) {\n var data = ajaxOptions.data || '';\n c[(ajaxOptions.url + data).replace(/[\\?\\&]/gi,'')] = responseData;\n },\n reset: function () {\n c = {};\n }\n };\n }()),\n\n show: (function (superMethod) {\n return function () {\n if (options.cache && !!ddcontrol.cache.get(ddcontrol.getAjaxOptions())) {\n ddcontrol.refreshSuccess(ddcontrol.cache.get(ddcontrol.getAjaxOptions()));\n superMethod.call(ddcontrol);\n } else {\n $($.ajax(ddcontrol.getAjaxOptions())).throbber({target: ddcontrol.$,\n end: function () {\n ddcontrol.reset();\n }\n });\n superMethod.call(ddcontrol);\n if (ddcontrol.iframeShim) {\n ddcontrol.iframeShim.hide();\n }\n }\n };\n }(ddcontrol.show)),\n\n resetCache: function () {\n ddcontrol.cache.reset();\n }\n });\n ddcontrol.addCallback('refreshSuccess', function () {\n ddcontrol.reset();\n });\n });\n return dropdowns;\n};\n\n\n// OMG. No. Just no.\n$.fn.dropDown = function (type, options) {\n type = (type || 'Standard').replace(/^([a-z])/, function (match) {\n return match.toUpperCase();\n });\n return dropDown[type].call(this, options);\n};\n\n$.fn.dropDown = deprecate.construct($.fn.dropDown, 'Dropdown constructor', {\n alternativeName: 'Dropdown2'\n});\n\nglobalize('dropDown', dropDown);\n\nexport default dropDown;\n"]}
|