@atlassian/aui 7.10.0 → 7.10.3

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.
Files changed (128) hide show
  1. package/changelog.md +51 -5
  2. package/dist/aui/css/aui-experimental.css.map +1 -1
  3. package/dist/aui/css/aui-experimental.min.css +1 -1
  4. package/dist/aui/css/aui-experimental.min.css.map +1 -1
  5. package/dist/aui/css/aui-iconfonts.min.css.map +1 -1
  6. package/dist/aui/css/aui.css.map +1 -1
  7. package/dist/aui/css/aui.min.css +8 -8
  8. package/dist/aui/css/aui.min.css.map +1 -1
  9. package/dist/aui/js/aui-css-deprecations.js +6 -6
  10. package/dist/aui/js/aui-css-deprecations.min.js +1 -1
  11. package/dist/aui/js/aui-datepicker.js +81 -39
  12. package/dist/aui/js/aui-datepicker.min.js +1 -1
  13. package/dist/aui/js/aui-experimental.js +279 -277
  14. package/dist/aui/js/aui-experimental.min.js +1 -1
  15. package/dist/aui/js/aui-header-async.js +6 -6
  16. package/dist/aui/js/aui-header-async.min.js +1 -1
  17. package/dist/aui/js/aui-soy.js +56 -56
  18. package/dist/aui/js/aui-soy.min.js +1 -1
  19. package/dist/aui/js/aui.js +2283 -1540
  20. package/dist/aui/js/aui.min.js +1 -1
  21. package/lib/css/aui-date-picker.css.map +1 -1
  22. package/lib/css/aui-experimental-tooltip.css.map +1 -1
  23. package/lib/css/aui-page-typography-legacy1.css.map +1 -1
  24. package/lib/css/aui-page-typography.css.map +1 -1
  25. package/lib/css/batch/aui-experimental.css.map +1 -1
  26. package/lib/css/batch/aui.css.map +1 -1
  27. package/lib/css/forms.css.map +1 -1
  28. package/lib/css/imports/aui-theme/core/atlaskit-theme/borders.css +2 -0
  29. package/lib/css/imports/aui-theme/core/atlaskit-theme/borders.css.map +1 -0
  30. package/lib/css/imports/aui-theme/core/atlaskit-theme/colors.css +2 -0
  31. package/lib/css/imports/aui-theme/core/atlaskit-theme/colors.css.map +1 -0
  32. package/lib/css/imports/aui-theme/core/atlaskit-theme/fonts.css +2 -0
  33. package/lib/css/imports/aui-theme/core/atlaskit-theme/fonts.css.map +1 -0
  34. package/lib/css/imports/aui-theme/core/colors.css.map +1 -1
  35. package/lib/css/imports/aui-theme/core/text.css.map +1 -1
  36. package/lib/js/aui/backbone.js.map +1 -1
  37. package/lib/js/aui/binder.js.map +1 -1
  38. package/lib/js/aui/binders/placeholder.js.map +1 -1
  39. package/lib/js/aui/button.js.map +1 -1
  40. package/lib/js/aui/checkbox-multiselect.js.map +1 -1
  41. package/lib/js/aui/date-picker.js +72 -26
  42. package/lib/js/aui/date-picker.js.map +1 -1
  43. package/lib/js/aui/dialog.js.map +1 -1
  44. package/lib/js/aui/dialog2.js.map +1 -1
  45. package/lib/js/aui/drop-down.js.map +1 -1
  46. package/lib/js/aui/dropdown2.js +7 -5
  47. package/lib/js/aui/dropdown2.js.map +1 -1
  48. package/lib/js/aui/fancy-file-input.js.map +1 -1
  49. package/lib/js/aui/flag.js.map +1 -1
  50. package/lib/js/aui/focus-manager-global.js.map +1 -1
  51. package/lib/js/aui/focus-manager.js.map +1 -1
  52. package/lib/js/aui/form-notification.js.map +1 -1
  53. package/lib/js/aui/form-validation/basic-validators.js.map +1 -1
  54. package/lib/js/aui/form-validation/validator-register.js.map +1 -1
  55. package/lib/js/aui/form-validation.js.map +1 -1
  56. package/lib/js/aui/header-async.js.map +1 -1
  57. package/lib/js/aui/i18n.js.map +1 -1
  58. package/lib/js/aui/inline-dialog.js.map +1 -1
  59. package/lib/js/aui/inline-dialog2.js.map +1 -1
  60. package/lib/js/aui/internal/alignment.js.map +1 -1
  61. package/lib/js/aui/internal/deprecation.js.map +1 -1
  62. package/lib/js/aui/internal/globalize.js.map +1 -1
  63. package/lib/js/aui/internal/header/create-header.js.map +1 -1
  64. package/lib/js/aui/internal/select/option.js +1 -1
  65. package/lib/js/aui/internal/select/option.js.map +1 -1
  66. package/lib/js/aui/internal/select/suggestion-model.js.map +1 -1
  67. package/lib/js/aui/internal/select/suggestions-view.js.map +1 -1
  68. package/lib/js/aui/internal/skate.js.map +1 -1
  69. package/lib/js/aui/internal/widget.js.map +1 -1
  70. package/lib/js/aui/label.js.map +1 -1
  71. package/lib/js/aui/layer-manager-global.js.map +1 -1
  72. package/lib/js/aui/layer-manager.js.map +1 -1
  73. package/lib/js/aui/layer.js.map +1 -1
  74. package/lib/js/aui/messages.js.map +1 -1
  75. package/lib/js/aui/navigation.js.map +1 -1
  76. package/lib/js/aui/polyfills/placeholder.js.map +1 -1
  77. package/lib/js/aui/populate-parameters.js.map +1 -1
  78. package/lib/js/aui/progress-indicator.js.map +1 -1
  79. package/lib/js/aui/progressive-data-set.js.map +1 -1
  80. package/lib/js/aui/query-input.js.map +1 -1
  81. package/lib/js/aui/restful-table/custom-create-view.js.map +1 -1
  82. package/lib/js/aui/restful-table/custom-edit-view.js.map +1 -1
  83. package/lib/js/aui/restful-table/custom-read-view.js.map +1 -1
  84. package/lib/js/aui/restful-table/edit-row.js.map +1 -1
  85. package/lib/js/aui/restful-table/entry-model.js.map +1 -1
  86. package/lib/js/aui/restful-table/row.js.map +1 -1
  87. package/lib/js/aui/restful-table.js +3 -1
  88. package/lib/js/aui/restful-table.js.map +1 -1
  89. package/lib/js/aui/result-set.js.map +1 -1
  90. package/lib/js/aui/results-list.js.map +1 -1
  91. package/lib/js/aui/select.js.map +1 -1
  92. package/lib/js/aui/select2.js.map +1 -1
  93. package/lib/js/aui/setup.js.map +1 -1
  94. package/lib/js/aui/sidebar.js.map +1 -1
  95. package/lib/js/aui/spin.js.map +1 -1
  96. package/lib/js/aui/spinner.js.map +1 -1
  97. package/lib/js/aui/tables-sortable.js.map +1 -1
  98. package/lib/js/aui/tabs.js +6 -1
  99. package/lib/js/aui/tabs.js.map +1 -1
  100. package/lib/js/aui/template.js.map +1 -1
  101. package/lib/js/aui/toggle.js.map +1 -1
  102. package/lib/js/aui/tooltip.js.map +1 -1
  103. package/lib/js/aui/trigger.js.map +1 -1
  104. package/lib/js/aui/truncating-progressive-data-set.js.map +1 -1
  105. package/lib/js/aui/unbind-text-resize.js.map +1 -1
  106. package/lib/js/aui/underscore.js.map +1 -1
  107. package/lib/js/aui/version.js +1 -1
  108. package/lib/js/aui/version.js.map +1 -1
  109. package/lib/js/aui/when-i-type.js.map +1 -1
  110. package/lib/js/aui-css-deprecations.js.map +1 -1
  111. package/lib/js-vendor/jquery/jquery-ui/jquery.ui.dialog.js +30 -3
  112. package/package.json +57 -44
  113. package/src/js/aui/date-picker.js +64 -25
  114. package/src/js/aui/dropdown2.js +2 -1
  115. package/src/js/aui/internal/select/option.js +1 -1
  116. package/src/js/aui/restful-table.js +3 -1
  117. package/src/js/aui/tabs.js +6 -1
  118. package/src/js-vendor/jquery/jquery-ui/jquery.ui.dialog.js +30 -3
  119. package/src/less/imports/aui-theme/core/atlaskit-theme/borders.less +1 -0
  120. package/src/less/imports/aui-theme/core/atlaskit-theme/colors.less +112 -0
  121. package/src/less/imports/aui-theme/core/atlaskit-theme/fonts.less +3 -0
  122. package/src/less/imports/aui-theme/core/colors.less +1 -1
  123. package/src/less/imports/aui-theme/core/text.less +1 -1
  124. package/yarn.lock +8161 -3856
  125. package/lib/js-vendor/jquery/jquery-ui/jquery-ui.js +0 -11396
  126. package/lib/js-vendor/underscorejs/underscore.js +0 -1287
  127. package/src/js-vendor/jquery/jquery-ui/jquery-ui.js +0 -11396
  128. package/src/js-vendor/underscorejs/underscore.js +0 -1287
@@ -1 +1 @@
1
- {"version":3,"sources":["js/aui/date-picker.js"],"names":["logger","datePickerCounter","DatePicker","field","options","datePicker","initPolyfill","$field","datePickerUUID","parentPopup","attr","extend","undefined","prototype","defaultOptions","getField","getOptions","calendar","handleDatePickerFocus","handleFieldBlur","handleFieldFocus","handleFieldUpdate","initCalendar","isSuppressingShow","isTrackingDatePickerFocus","popup","popupContents","hide","show","setDate","value","datepicker","getDate","i18nConfig","off","hint","$hint","addClass","append","text","config","dateFormat","val","dateText","change","focus","onSelect","call","onChangeMonthYear","setTimeout","refresh","firstDay","log","on","event","$eventTarget","target","isTargetInput","closest","length","is","isTargetPopup","keyCode","ESCAPE","preventDefault","destroyPolyfill","browserSupportsDateField","type","languageCode","localisations","containerClass","width","size","dialogOptions","_datePickerPopup","position","calculatePositions","targetPosition","vanilla","contents","trigger","showPopup","get","overrideBrowserDefault","getAttribute","reset","W3C","getText","fn"],"mappings":"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","file":"date-picker.js","sourcesContent":["'use strict';\n\nimport $ from './jquery';\nimport '../../js-vendor/jquery/jquery-ui/jquery.ui.datepicker';\nimport * as logger from './internal/log';\nimport { supportsDateField } from './internal/browser';\nimport globalize from './internal/globalize';\nimport InlineDialog from './inline-dialog';\nimport keyCode from './key-code';\nimport i18n from './i18n';\n\n\nvar datePickerCounter = 0;\n\nfunction DatePicker (field, options) {\n var datePicker;\n var initPolyfill;\n var $field;\n var datePickerUUID;\n var parentPopup;\n\n datePicker = {};\n datePickerUUID = datePickerCounter++;\n\n // ---------------------------------------------------------------------\n // fix up arguments ----------------------------------------------------\n // ---------------------------------------------------------------------\n\n $field = $(field);\n $field.attr('data-aui-dp-uuid', datePickerUUID);\n options = $.extend(undefined, DatePicker.prototype.defaultOptions, options);\n\n // ---------------------------------------------------------------------\n // expose arguments with getters ---------------------------------------\n // ---------------------------------------------------------------------\n\n datePicker.getField = function () {\n return $field;\n };\n\n datePicker.getOptions = function () {\n return options;\n };\n\n // ---------------------------------------------------------------------\n // exposed methods -----------------------------------------------------\n // ---------------------------------------------------------------------\n\n initPolyfill = function () {\n\n var calendar;\n var handleDatePickerFocus;\n var handleFieldBlur;\n var handleFieldFocus;\n var handleFieldUpdate;\n var initCalendar;\n var isSuppressingShow;\n var isTrackingDatePickerFocus;\n var popup;\n var popupContents;\n\n // -----------------------------------------------------------------\n // expose methods for controlling the popup ------------------------\n // -----------------------------------------------------------------\n\n datePicker.hide = function () {\n popup.hide();\n };\n\n datePicker.show = function () {\n popup.show();\n };\n\n datePicker.setDate = function (value) {\n if (typeof calendar !== 'undefined') {\n calendar.datepicker('setDate', value);\n }\n };\n\n datePicker.getDate = function () {\n if (typeof calendar !== 'undefined') {\n return calendar.datepicker('getDate');\n }\n };\n\n // -----------------------------------------------------------------\n // initialise the calendar -----------------------------------------\n // -----------------------------------------------------------------\n\n initCalendar = function (i18nConfig) {\n\n popupContents.off();\n if (options.hint) {\n var $hint = $('<div/>').addClass('aui-datepicker-hint');\n $hint.append('<span/>').text(options.hint);\n popupContents.append($hint);\n }\n calendar = $('<div/>');\n calendar.attr('data-aui-dp-popup-uuid', datePickerUUID);\n popupContents.append(calendar);\n\n var config = {\n 'dateFormat': options.dateFormat,\n 'defaultDate': $field.val(),\n 'maxDate': $field.attr('max'),\n 'minDate': $field.attr('min'),\n 'nextText': '>',\n 'onSelect': function (dateText) {\n $field.val(dateText);\n $field.change();\n datePicker.hide();\n isSuppressingShow = true;\n $field.focus();\n options.onSelect && options.onSelect.call(this, dateText);\n },\n onChangeMonthYear: function () {\n // defer rehresh call until current stack has cleared (after month has rendered)\n setTimeout(popup.refresh, 0);\n },\n 'prevText': '<'\n };\n\n $.extend(config, i18nConfig);\n\n if (options.firstDay > -1) {\n config.firstDay = options.firstDay;\n }\n\n if (typeof $field.attr('step') !== 'undefined') {\n logger.log('WARNING: The date picker polyfill currently does not support the step attribute!');\n }\n\n calendar.datepicker(config);\n\n // bind additional field processing events\n $('body').on('keydown', handleDatePickerFocus);\n $field.on('focusout keydown', handleFieldBlur);\n $field.on('propertychange keyup input paste', handleFieldUpdate);\n\n };\n\n // -----------------------------------------------------------------\n // event handler wrappers ------------------------------------------\n // -----------------------------------------------------------------\n\n handleDatePickerFocus = function (event) {\n var $eventTarget = $(event.target);\n var isTargetInput = $eventTarget.closest(popupContents).length || $eventTarget.is($field);\n var isTargetPopup = $eventTarget.closest('.ui-datepicker-header').length;\n\n // Hide if we're clicking anywhere else but the input or popup OR if esc is pressed.\n if ((!isTargetInput && !isTargetPopup) || event.keyCode === keyCode.ESCAPE) {\n datePicker.hide();\n return;\n }\n\n if ($eventTarget[0] !== $field[0]) {\n event.preventDefault();\n }\n };\n\n handleFieldBlur = function () {\n // Trigger blur if event is keydown and esc OR is focusout.\n if (!(isTrackingDatePickerFocus)) {\n $('body').on('focus blur click mousedown', '*', handleDatePickerFocus);\n isTrackingDatePickerFocus = true;\n }\n };\n\n handleFieldFocus = function () {\n if (!(isSuppressingShow)) {\n datePicker.show();\n } else {\n isSuppressingShow = false;\n }\n };\n\n handleFieldUpdate = function () {\n var val = $(this).val();\n // IE10/11 fire the 'input' event when internally showing and hiding\n // the placeholder of an input. This was cancelling the inital click\n // event and preventing the selection of the first date. The val check here\n // is a workaround to assure we have legitimate user input that should update\n // the calendar\n if (val) {\n calendar.datepicker('setDate', $field.val());\n calendar.datepicker('option', {\n 'maxDate': $field.attr('max'),\n 'minDate': $field.attr('min')\n });\n }\n };\n\n // -----------------------------------------------------------------\n // undo (almost) everything ----------------------------------------\n // -----------------------------------------------------------------\n\n datePicker.destroyPolyfill = function () {\n\n // goodbye, cruel world!\n datePicker.hide();\n\n $field.attr('placeholder', null);\n\n $field.off('propertychange keyup input paste', handleFieldUpdate);\n $field.off('focus click', handleFieldFocus);\n $field.off('focusout keydown', handleFieldBlur);\n $('body').off('keydown', handleFieldBlur);\n\n if (DatePicker.prototype.browserSupportsDateField) {\n $field[0].type = 'date';\n }\n\n if (typeof calendar !== 'undefined') {\n calendar.datepicker('destroy');\n }\n\n // TODO: figure out a way to tear down the popup (if necessary)\n\n delete datePicker.destroyPolyfill;\n\n delete datePicker.show;\n delete datePicker.hide;\n\n };\n\n // -----------------------------------------------------------------\n // polyfill bootstrap ----------------------------------------------\n // -----------------------------------------------------------------\n\n isSuppressingShow = false; // used to stop the popover from showing when focus is restored to the field after a date has been selected\n isTrackingDatePickerFocus = false; // used to prevent multiple bindings of handleDatePickerFocus within handleFieldBlur\n\n if (!(options.languageCode in DatePicker.prototype.localisations)) {\n options.languageCode = '';\n }\n var i18nConfig = DatePicker.prototype.localisations;\n\n var containerClass = '';\n var width = 240;\n\n if (i18nConfig.size === 'large') {\n width = 325;\n containerClass = 'aui-datepicker-dialog-large';\n }\n var dialogOptions = {\n 'hideCallback': function () {\n $('body').off('focus blur click mousedown', '*', handleDatePickerFocus);\n isTrackingDatePickerFocus = false;\n if (parentPopup && parentPopup._datePickerPopup) {\n delete parentPopup._datePickerPopup;\n }\n },\n 'hideDelay': null,\n 'noBind': true,\n 'persistent': true,\n 'closeOthers': false,\n 'width': width\n };\n\n if (options.position) {\n dialogOptions.calculatePositions = function (popup, targetPosition) {\n // create a jQuery object from the internal\n var vanilla = $(popup[0]);\n return options.position.call(this, vanilla, targetPosition);\n }\n }\n\n popup = InlineDialog($field, undefined, function (contents, trigger, showPopup) {\n if (typeof calendar === 'undefined') {\n popupContents = contents;\n initCalendar(i18nConfig);\n }\n parentPopup = $(trigger).closest('.aui-inline-dialog').get(0);\n if (parentPopup) {\n parentPopup._datePickerPopup = popup; // AUI-2696 - hackish coupling to control inline-dialog close behaviour.\n }\n\n showPopup();\n }, dialogOptions);\n\n popup.addClass('aui-datepicker-dialog');\n popup.addClass(containerClass);\n\n // bind what we need to start off with\n $field.on('focus click', handleFieldFocus); // the click is for fucking opera... Y U NO FIRE FOCUS EVENTS PROPERLY???\n\n // give users a hint that this is a date field; note that placeholder isn't technically a valid attribute\n // according to the spec...\n $field.attr('placeholder', options.dateFormat);\n\n // override the browser's default date field implementation (if applicable)\n // since IE doesn't support date input fields, we should be fine...\n if (options.overrideBrowserDefault && DatePicker.prototype.browserSupportsDateField) {\n $field[0].type = 'text';\n\n //workaround for this issue in Edge: https://connect.microsoft.com/IE/feedback/details/1603512/changing-an-input-type-to-text-does-not-set-the-value\n var value = $field[0].getAttribute('value'); //can't use jquery to get the attribute because it doesn't work in Edge\n if (value) {\n $field[0].value = value;\n }\n }\n\n };\n\n datePicker.reset = function () {\n\n if (typeof datePicker.destroyPolyfill === 'function') {\n datePicker.destroyPolyfill();\n }\n\n if ((!(DatePicker.prototype.browserSupportsDateField)) || options.overrideBrowserDefault) {\n initPolyfill();\n }\n\n };\n\n // ---------------------------------------------------------------------\n // bootstrap -----------------------------------------------------------\n // ---------------------------------------------------------------------\n\n datePicker.reset();\n\n return datePicker;\n\n};\n\n// -------------------------------------------------------------------------\n// things that should be common --------------------------------------------\n// -------------------------------------------------------------------------\n\nDatePicker.prototype.browserSupportsDateField = supportsDateField();\n\nDatePicker.prototype.defaultOptions = {\n overrideBrowserDefault: false,\n firstDay: -1,\n languageCode: $('html').attr('lang') || 'en-AU',\n dateFormat: $.datepicker.W3C // same as $.datepicker.ISO_8601\n};\n\n// adapted from the jQuery UI Datepicker widget (v1.8.16), with the following changes:\n// - dayNamesShort -> dayNamesMin\n// - unnecessary attributes omitted\n/*\nCODE to extract codes out:\n\nvar langCode, langs, out;\nlangs = jQuery.datepicker.regional;\nout = {};\n\nfor (langCode in langs) {\n if (langs.hasOwnProperty(langCode)) {\n out[langCode] = {\n 'dayNames': langs[langCode].dayNames,\n 'dayNamesMin': langs[langCode].dayNamesShort, // this is deliberate\n 'firstDay': langs[langCode].firstDay,\n 'isRTL': langs[langCode].isRTL,\n 'monthNames': langs[langCode].monthNames,\n 'showMonthAfterYear': langs[langCode].showMonthAfterYear,\n 'yearSuffix': langs[langCode].yearSuffix\n };\n }\n}\n\n */\n\nDatePicker.prototype.localisations = {\n \"dayNames\": [i18n.getText('ajs.datepicker.localisations.day-names.sunday'),\n i18n.getText('ajs.datepicker.localisations.day-names.monday'),\n i18n.getText('ajs.datepicker.localisations.day-names.tuesday'),\n i18n.getText('ajs.datepicker.localisations.day-names.wednesday'),\n i18n.getText('ajs.datepicker.localisations.day-names.thursday'),\n i18n.getText('ajs.datepicker.localisations.day-names.friday'),\n i18n.getText('ajs.datepicker.localisations.day-names.saturday')],\n \"dayNamesMin\": [i18n.getText('ajs.datepicker.localisations.day-names-min.sunday'),\n i18n.getText('ajs.datepicker.localisations.day-names-min.monday'),\n i18n.getText('ajs.datepicker.localisations.day-names-min.tuesday'),\n i18n.getText('ajs.datepicker.localisations.day-names-min.wednesday'),\n i18n.getText('ajs.datepicker.localisations.day-names-min.thursday'),\n i18n.getText('ajs.datepicker.localisations.day-names-min.friday'),\n i18n.getText('ajs.datepicker.localisations.day-names-min.saturday')],\n \"firstDay\": i18n.getText('ajs.datepicker.localisations.first-day'),\n \"isRTL\": i18n.getText('ajs.datepicker.localisations.is-RTL') === \"true\" ? true : false,\n \"monthNames\": [i18n.getText('ajs.datepicker.localisations.month-names.january'),\n i18n.getText('ajs.datepicker.localisations.month-names.february'),\n i18n.getText('ajs.datepicker.localisations.month-names.march'),\n i18n.getText('ajs.datepicker.localisations.month-names.april'),\n i18n.getText('ajs.datepicker.localisations.month-names.may'),\n i18n.getText('ajs.datepicker.localisations.month-names.june'),\n i18n.getText('ajs.datepicker.localisations.month-names.july'),\n i18n.getText('ajs.datepicker.localisations.month-names.august'),\n i18n.getText('ajs.datepicker.localisations.month-names.september'),\n i18n.getText('ajs.datepicker.localisations.month-names.october'),\n i18n.getText('ajs.datepicker.localisations.month-names.november'),\n i18n.getText('ajs.datepicker.localisations.month-names.december')],\n \"showMonthAfterYear\": i18n.getText('ajs.datepicker.localisations.show-month-after-year') === \"true\" ? true : false,\n \"yearSuffix\": i18n.getText('ajs.datepicker.localisations.year-suffix')\n}\n\n\n// -------------------------------------------------------------------------\n// finally, integrate with jQuery for convenience --------------------------\n// -------------------------------------------------------------------------\n\n$.fn.datePicker = function (options) {\n return new DatePicker(this, options);\n};\n\nglobalize('DatePicker', DatePicker);\n\nexport default DatePicker;\n"]}
1
+ {"version":3,"sources":["js/aui/date-picker.js"],"names":["logger","datePickerCounter","DatePicker","field","baseOptions","datePicker","initPolyfill","$field","datePickerUUID","options","attr","getField","getOptions","calendar","attributeHandler","handleDatePickerFocus","handleFieldBlur","handleFieldFocus","handleFieldUpdate","initCalendar","isSuppressingShow","isTrackingDatePickerFocus","popup","parentPopup","popupContents","hide","show","setDate","value","datepicker","getDate","setMin","setMax","i18nConfig","off","hint","$hint","addClass","append","text","config","dateFormat","val","dateText","trigger","focus","onSelect","call","onChangeMonthYear","setTimeout","refresh","$","extend","firstDay","log","on","MutationObserver","mutationsList","forEach","mutation","attributeName","target","getAttribute","observe","attributes","event","$eventTarget","isTargetInput","closest","length","is","isTargetPopup","keyCode","ESCAPE","preventDefault","destroyPolyfill","disconnect","prototype","browserSupportsDateField","type","languageCode","localisations","containerClass","width","size","dialogOptions","_datePickerPopup","position","calculatePositions","targetPosition","vanilla","undefined","contents","showPopup","get","overrideBrowserDefault","reset","reconfigure","newOptions","defaultOptions","W3C","i18n","getText","key","fn","picker","data"],"mappings":"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","file":"date-picker.js","sourcesContent":["'use strict';\n\nimport $ from './jquery';\nimport '../../js-vendor/jquery/jquery-ui/jquery.ui.datepicker';\nimport * as logger from './internal/log';\nimport { supportsDateField } from './internal/browser';\nimport globalize from './internal/globalize';\nimport InlineDialog from './inline-dialog';\nimport keyCode from './key-code';\nimport i18n from './i18n';\n\n\nlet datePickerCounter = 0;\n\nfunction DatePicker (field, baseOptions) {\n let datePicker;\n let initPolyfill;\n let $field;\n let datePickerUUID;\n let options = {};\n\n datePicker = {};\n datePickerUUID = datePickerCounter++;\n\n // ---------------------------------------------------------------------\n // fix up arguments ----------------------------------------------------\n // ---------------------------------------------------------------------\n\n $field = $(field);\n $field.attr('data-aui-dp-uuid', datePickerUUID);\n\n // ---------------------------------------------------------------------\n // expose arguments with getters ---------------------------------------\n // ---------------------------------------------------------------------\n\n datePicker.getField = function () {\n return $field;\n };\n\n datePicker.getOptions = function () {\n return options;\n };\n\n // ---------------------------------------------------------------------\n // exposed methods -----------------------------------------------------\n // ---------------------------------------------------------------------\n\n initPolyfill = function () {\n\n let calendar;\n let attributeHandler;\n let handleDatePickerFocus;\n let handleFieldBlur;\n let handleFieldFocus;\n let handleFieldUpdate;\n let initCalendar;\n let isSuppressingShow;\n let isTrackingDatePickerFocus;\n let popup;\n let parentPopup;\n let popupContents;\n\n // -----------------------------------------------------------------\n // expose methods for controlling the popup ------------------------\n // -----------------------------------------------------------------\n\n datePicker.hide = function () {\n popup.hide();\n };\n\n datePicker.show = function () {\n popup.show();\n };\n\n datePicker.setDate = function (value) {\n if (typeof calendar !== 'undefined') {\n calendar.datepicker('setDate', value);\n }\n };\n\n datePicker.getDate = function () {\n if (typeof calendar !== 'undefined') {\n return calendar.datepicker('getDate');\n }\n };\n\n datePicker.setMin = function (value) {\n if (typeof calendar !== 'undefined') {\n return calendar.datepicker('option', 'minDate', value);\n }\n };\n\n datePicker.setMax = function (value) {\n if (typeof calendar !== 'undefined') {\n return calendar.datepicker('option', 'maxDate', value);\n }\n };\n\n // -----------------------------------------------------------------\n // initialise the calendar -----------------------------------------\n // -----------------------------------------------------------------\n\n initCalendar = function (i18nConfig) {\n\n popupContents.off();\n if (options.hint) {\n var $hint = $('<div/>').addClass('aui-datepicker-hint');\n $hint.append('<span/>').text(options.hint);\n popupContents.append($hint);\n }\n calendar = $('<div/>');\n calendar.attr('data-aui-dp-popup-uuid', datePickerUUID);\n popupContents.append(calendar);\n\n var config = {\n 'dateFormat': options.dateFormat,\n 'defaultDate': $field.val(),\n 'maxDate': $field.attr('max'),\n 'minDate': $field.attr('min'),\n 'nextText': '>',\n 'onSelect': function (dateText) {\n $field.val(dateText);\n $field.trigger('change');\n datePicker.hide();\n isSuppressingShow = true;\n $field.focus();\n options.onSelect && options.onSelect.call(this, dateText);\n },\n onChangeMonthYear: function () {\n // defer rehresh call until current stack has cleared (after month has rendered)\n setTimeout(popup.refresh, 0);\n },\n 'prevText': '<'\n };\n\n $.extend(config, i18nConfig);\n\n if (options.firstDay > -1) {\n config.firstDay = options.firstDay;\n }\n\n if (typeof $field.attr('step') !== 'undefined') {\n logger.log('WARNING: The date picker polyfill currently does not support the step attribute!');\n }\n\n calendar.datepicker(config);\n\n // bind additional field processing events\n $('body').on('keydown', handleDatePickerFocus);\n $field.on('focusout keydown', handleFieldBlur);\n $field.on('propertychange keyup input paste', handleFieldUpdate);\n\n // bind attribute handlers to account for html5 attributes\n attributeHandler = new MutationObserver(function (mutationsList) {\n mutationsList.forEach(function(mutation) {\n if (mutation.attributeName === 'min') {\n datePicker.setMin(mutation.target.getAttribute('min'));\n } else if (mutation.attributeName === 'max') {\n datePicker.setMax(mutation.target.getAttribute('max'));\n }\n });\n });\n attributeHandler.observe($field[0], { attributes: true });\n };\n\n // -----------------------------------------------------------------\n // event handler wrappers ------------------------------------------\n // -----------------------------------------------------------------\n\n handleDatePickerFocus = function (event) {\n var $eventTarget = $(event.target);\n var isTargetInput = $eventTarget.closest(popupContents).length || $eventTarget.is($field);\n var isTargetPopup = $eventTarget.closest('.ui-datepicker-header').length;\n\n // Hide if we're clicking anywhere else but the input or popup OR if esc is pressed.\n if ((!isTargetInput && !isTargetPopup) || event.keyCode === keyCode.ESCAPE) {\n datePicker.hide();\n return;\n }\n\n if ($eventTarget[0] !== $field[0]) {\n event.preventDefault();\n }\n };\n\n handleFieldBlur = function () {\n // Trigger blur if event is keydown and esc OR is focusout.\n if (!(isTrackingDatePickerFocus)) {\n $('body').on('focus blur click mousedown', '*', handleDatePickerFocus);\n isTrackingDatePickerFocus = true;\n }\n };\n\n handleFieldFocus = function () {\n if (!(isSuppressingShow)) {\n datePicker.show();\n } else {\n isSuppressingShow = false;\n }\n };\n\n handleFieldUpdate = function () {\n var val = $(this).val();\n // IE10/11 fire the 'input' event when internally showing and hiding\n // the placeholder of an input. This was cancelling the inital click\n // event and preventing the selection of the first date. The val check here\n // is a workaround to assure we have legitimate user input that should update\n // the calendar\n if (val) {\n calendar.datepicker('setDate', $field.val());\n }\n };\n\n // -----------------------------------------------------------------\n // undo (almost) everything ----------------------------------------\n // -----------------------------------------------------------------\n\n datePicker.destroyPolyfill = function () {\n\n // goodbye, cruel world!\n datePicker.hide();\n\n if (attributeHandler) {\n attributeHandler.disconnect();\n attributeHandler = null;\n }\n\n $field.attr('placeholder', null);\n\n $field.off('propertychange keyup input paste', handleFieldUpdate);\n $field.off('focus click', handleFieldFocus);\n $field.off('focusout keydown', handleFieldBlur);\n $('body').off('keydown', handleFieldBlur);\n $('body').off('focus blur click mousedown keydown', handleDatePickerFocus);\n\n if (DatePicker.prototype.browserSupportsDateField) {\n $field[0].type = 'date';\n }\n\n if (typeof calendar !== 'undefined') {\n calendar.datepicker('destroy');\n }\n\n // TODO: figure out a way to tear down the popup (if necessary)\n\n delete datePicker.destroyPolyfill;\n\n delete datePicker.show;\n delete datePicker.hide;\n\n };\n\n // -----------------------------------------------------------------\n // polyfill bootstrap ----------------------------------------------\n // -----------------------------------------------------------------\n\n isSuppressingShow = false; // used to stop the popover from showing when focus is restored to the field after a date has been selected\n isTrackingDatePickerFocus = false; // used to prevent multiple bindings of handleDatePickerFocus within handleFieldBlur\n\n if (!(options.languageCode in DatePicker.prototype.localisations)) {\n options.languageCode = '';\n }\n var i18nConfig = DatePicker.prototype.localisations;\n\n var containerClass = '';\n var width = 240;\n\n if (i18nConfig.size === 'large') {\n width = 325;\n containerClass = 'aui-datepicker-dialog-large';\n }\n var dialogOptions = {\n 'hideCallback': function () {\n $('body').off('focus blur click mousedown', '*', handleDatePickerFocus);\n isTrackingDatePickerFocus = false;\n if (parentPopup && parentPopup._datePickerPopup) {\n delete parentPopup._datePickerPopup;\n }\n },\n 'hideDelay': null,\n 'noBind': true,\n 'persistent': true,\n 'closeOthers': false,\n 'width': width\n };\n\n if (options.position) {\n dialogOptions.calculatePositions = function (popup, targetPosition) {\n // create a jQuery object from the internal\n var vanilla = $(popup[0]);\n return options.position.call(this, vanilla, targetPosition);\n }\n }\n\n popup = InlineDialog($field, undefined, function (contents, trigger, showPopup) {\n if (typeof calendar === 'undefined') {\n popupContents = contents;\n initCalendar(i18nConfig);\n }\n parentPopup = $(trigger).closest('.aui-inline-dialog').get(0);\n if (parentPopup) {\n parentPopup._datePickerPopup = popup; // AUI-2696 - hackish coupling to control inline-dialog close behaviour.\n }\n\n showPopup();\n }, dialogOptions);\n\n popup.addClass('aui-datepicker-dialog');\n popup.addClass(containerClass);\n\n // bind what we need to start off with\n $field.on('focus click', handleFieldFocus); // the click is for fucking opera... Y U NO FIRE FOCUS EVENTS PROPERLY???\n\n // give users a hint that this is a date field; note that placeholder isn't technically a valid attribute\n // according to the spec...\n $field.attr('placeholder', options.dateFormat);\n\n // override the browser's default date field implementation (if applicable)\n // since IE doesn't support date input fields, we should be fine...\n if (options.overrideBrowserDefault && DatePicker.prototype.browserSupportsDateField) {\n $field[0].type = 'text';\n\n //workaround for this issue in Edge: https://connect.microsoft.com/IE/feedback/details/1603512/changing-an-input-type-to-text-does-not-set-the-value\n var value = $field[0].getAttribute('value'); //can't use jquery to get the attribute because it doesn't work in Edge\n if (value) {\n $field[0].value = value;\n }\n }\n\n };\n\n datePicker.reset = function () {\n\n if (typeof datePicker.destroyPolyfill === 'function') {\n datePicker.destroyPolyfill();\n }\n\n if ((!(DatePicker.prototype.browserSupportsDateField)) || options.overrideBrowserDefault) {\n initPolyfill();\n }\n\n };\n\n datePicker.reconfigure = function (newOptions) {\n options = $.extend(undefined, DatePicker.prototype.defaultOptions, newOptions);\n datePicker.reset();\n };\n\n // ---------------------------------------------------------------------\n // bootstrap -----------------------------------------------------------\n // ---------------------------------------------------------------------\n\n datePicker.reconfigure(baseOptions);\n\n return datePicker;\n\n};\n\n// -------------------------------------------------------------------------\n// things that should be common --------------------------------------------\n// -------------------------------------------------------------------------\n\nDatePicker.prototype.browserSupportsDateField = supportsDateField();\n\nDatePicker.prototype.defaultOptions = {\n overrideBrowserDefault: false,\n firstDay: -1,\n languageCode: $('html').attr('lang') || 'en-AU',\n dateFormat: $.datepicker.W3C // same as $.datepicker.ISO_8601\n};\n\n// adapted from the jQuery UI Datepicker widget (v1.8.16), with the following changes:\n// - dayNamesShort -> dayNamesMin\n// - unnecessary attributes omitted\n/*\nCODE to extract codes out:\n\nvar langCode, langs, out;\nlangs = jQuery.datepicker.regional;\nout = {};\n\nfor (langCode in langs) {\n if (langs.hasOwnProperty(langCode)) {\n out[langCode] = {\n 'dayNames': langs[langCode].dayNames,\n 'dayNamesMin': langs[langCode].dayNamesShort, // this is deliberate\n 'firstDay': langs[langCode].firstDay,\n 'isRTL': langs[langCode].isRTL,\n 'monthNames': langs[langCode].monthNames,\n 'showMonthAfterYear': langs[langCode].showMonthAfterYear,\n 'yearSuffix': langs[langCode].yearSuffix\n };\n }\n}\n\n */\n\nDatePicker.prototype.localisations = {\n \"dayNames\": [i18n.getText('ajs.datepicker.localisations.day-names.sunday'),\n i18n.getText('ajs.datepicker.localisations.day-names.monday'),\n i18n.getText('ajs.datepicker.localisations.day-names.tuesday'),\n i18n.getText('ajs.datepicker.localisations.day-names.wednesday'),\n i18n.getText('ajs.datepicker.localisations.day-names.thursday'),\n i18n.getText('ajs.datepicker.localisations.day-names.friday'),\n i18n.getText('ajs.datepicker.localisations.day-names.saturday')],\n \"dayNamesMin\": [i18n.getText('ajs.datepicker.localisations.day-names-min.sunday'),\n i18n.getText('ajs.datepicker.localisations.day-names-min.monday'),\n i18n.getText('ajs.datepicker.localisations.day-names-min.tuesday'),\n i18n.getText('ajs.datepicker.localisations.day-names-min.wednesday'),\n i18n.getText('ajs.datepicker.localisations.day-names-min.thursday'),\n i18n.getText('ajs.datepicker.localisations.day-names-min.friday'),\n i18n.getText('ajs.datepicker.localisations.day-names-min.saturday')],\n \"firstDay\": i18n.getText('ajs.datepicker.localisations.first-day'),\n \"isRTL\": i18n.getText('ajs.datepicker.localisations.is-RTL') === \"true\" ? true : false,\n \"monthNames\": [i18n.getText('ajs.datepicker.localisations.month-names.january'),\n i18n.getText('ajs.datepicker.localisations.month-names.february'),\n i18n.getText('ajs.datepicker.localisations.month-names.march'),\n i18n.getText('ajs.datepicker.localisations.month-names.april'),\n i18n.getText('ajs.datepicker.localisations.month-names.may'),\n i18n.getText('ajs.datepicker.localisations.month-names.june'),\n i18n.getText('ajs.datepicker.localisations.month-names.july'),\n i18n.getText('ajs.datepicker.localisations.month-names.august'),\n i18n.getText('ajs.datepicker.localisations.month-names.september'),\n i18n.getText('ajs.datepicker.localisations.month-names.october'),\n i18n.getText('ajs.datepicker.localisations.month-names.november'),\n i18n.getText('ajs.datepicker.localisations.month-names.december')],\n \"showMonthAfterYear\": i18n.getText('ajs.datepicker.localisations.show-month-after-year') === \"true\" ? true : false,\n \"yearSuffix\": i18n.getText('ajs.datepicker.localisations.year-suffix')\n}\n\n\n// -------------------------------------------------------------------------\n// finally, integrate with jQuery for convenience --------------------------\n// -------------------------------------------------------------------------\nconst key = 'aui-datepicker';\n\n$.fn.datePicker = function (options) {\n let picker = this.data(key);\n if (!picker) {\n picker = new DatePicker(this, options);\n this.data(key, picker);\n } else if (typeof options === 'object') {\n picker.reconfigure(options);\n }\n return picker;\n};\n\nglobalize('DatePicker', DatePicker);\n\nexport default DatePicker;\n"]}
@@ -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\", \"&lt;p&gt;&lt;/p&gt;\")\n * .addPanel(\"Some\", \"&lt;p&gt;&lt;/p&gt;\")\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\", \"&lt;p&gt;&lt;/p&gt;\")\n * .addPanel(\"Some\", \"&lt;p&gt;&lt;/p&gt;\")\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;AACxB,yBAAEC,IAAF,CAAOH,QAAP,EAAiB,UAAUI,GAAV,EAAeC,KAAf,EAAsB;AACnC,gBAAIC,UAAU,UAAUF,GAAxB;AACA,gBAAI,CAACF,IAAI,CAAJ,EAAOK,YAAP,CAAoBD,OAApB,CAAL,EAAmC;AAC/BJ,oBAAIM,IAAJ,CAASF,OAAT,EAAkBD,KAAlB;AACH;AACJ,SALD;AAMH;;AAED,aAASI,OAAT,CAAiBC,QAAjB,EAA2B;AACvB,YAAIA,QAAJ,EAAc;AACV,iBAAKR,GAAL,GAAW,sBAAEQ,QAAF,CAAX;AACH,SAFD,MAEO;AACH,iBAAKR,GAAL,GAAW,sBAAES,IAAIC,MAAJ,CAAWC,OAAX,CAAmB,EAAnB,CAAF,CAAX;AACH;AACDZ,sBAAc,KAAKC,GAAnB;AACH;;AAEDO,YAAQK,SAAR,CAAkBC,EAAlB,GAAuB,UAAUC,KAAV,EAAiBC,EAAjB,EAAqB;AACxC,6BAAY,KAAKf,GAAjB,EAAsBa,EAAtB,CAAyBC,KAAzB,EAAgCC,EAAhC;AACA,eAAO,IAAP;AACH,KAHD;;AAKAR,YAAQK,SAAR,CAAkBI,GAAlB,GAAwB,UAAUF,KAAV,EAAiBC,EAAjB,EAAqB;AACzC,6BAAY,KAAKf,GAAjB,EAAsBgB,GAAtB,CAA0BF,KAA1B,EAAiCC,EAAjC;AACA,eAAO,IAAP;AACH,KAHD;;AAKAR,YAAQK,SAAR,CAAkBK,IAAlB,GAAyB,YAAY;AACjC,6BAAY,KAAKjB,GAAjB,EAAsBiB,IAAtB;AACA,eAAO,IAAP;AACH,KAHD;;AAKAV,YAAQK,SAAR,CAAkBM,IAAlB,GAAyB,YAAY;AACjC,6BAAY,KAAKlB,GAAjB,EAAsBkB,IAAtB;AACA,eAAO,IAAP;AACH,KAHD;;AAKAX,YAAQK,SAAR,CAAkBO,MAAlB,GAA2B,YAAY;AACnC,6BAAY,KAAKnB,GAAjB,EAAsBmB,MAAtB;AACA,eAAO,IAAP;AACH,KAHD;;AAKAZ,YAAQK,SAAR,CAAkBQ,SAAlB,GAA8B,YAAY;AACtC,eAAO,qBAAY,KAAKpB,GAAjB,EAAsBoB,SAAtB,EAAP;AACH,KAFD;;AAIA,QAAIC,gBAAgB,sBAAO,SAAP,EAAkBd,OAAlB,CAApB;;AAEAc,kBAAcR,EAAd,GAAmB,UAAUS,SAAV,EAAqBP,EAArB,EAAyB;AACxC,wBAAYF,EAAZ,CAAeS,SAAf,EAA0B,cAA1B,EAA0CP,EAA1C;AACA,eAAO,IAAP;AACH,KAHD;;AAKAM,kBAAcL,GAAd,GAAoB,UAAUM,SAAV,EAAqBP,EAArB,EAAyB;AACzC,wBAAYC,GAAZ,CAAgBM,SAAhB,EAA2B,cAA3B,EAA2CP,EAA3C;AACA,eAAO,IAAP;AACH,KAHD;;AAKA;;AAEA,0BAAEQ,QAAF,EAAYV,EAAZ,CAAe,OAAf,EAAwB,2BAAxB,EAAqD,UAAUW,CAAV,EAAa;AAC9DA,UAAEC,cAAF;AACAJ,sBAAc,sBAAE,IAAF,EAAQK,OAAR,CAAgB,cAAhB,CAAd,EAA+CR,IAA/C;AACH,KAHD;;AAKAG,kBAAcR,EAAd,CAAiB,MAAjB,EAAyB,UAAUW,CAAV,EAAaxB,GAAb,EAAkB;AACvC,YAAI2B,YAAY,CAAC,sBAAD,EAAyB,qBAAzB,EAAgD,qBAAhD,CAAhB;AACA,YAAIC,SAAJ;AACAD,kBAAUE,IAAV,CAAe,UAAUrB,QAAV,EAAoB;AAC/BoB,wBAAY5B,IAAI8B,IAAJ,CAAStB,WAAW,gBAApB,CAAZ;AACA,mBAAOoB,UAAUG,MAAjB;AACH,SAHD;AAIAH,qBAAaA,UAAUI,KAAV,GAAkBC,KAAlB,EAAb;AACH,KARD;;AAUAZ,kBAAcR,EAAd,CAAiB,MAAjB,EAAyB,UAAUW,CAAV,EAAYxB,GAAZ,EAAiB;AACtC,YAAIkC,QAAQ,qBAAYlC,GAAZ,CAAZ;;AAEA,YAAIA,IAAImC,IAAJ,CAAS,oBAAT,CAAJ,EAAoC;AAChCD,kBAAMf,MAAN;AACH;AACJ,KAND;;AAQA,0BAAO,aAAP,EAAsBE,aAAtB;AACA,6BAAU,SAAV,EAAqBA,aAArB;sBACeA,a","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
+ {"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"]}