@atlassian/aui 7.10.2 → 7.10.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/changelog.md +35 -0
- package/dist/aui/css/aui-experimental.css.map +1 -1
- package/dist/aui/css/aui-experimental.min.css +1 -1
- package/dist/aui/css/aui-experimental.min.css.map +1 -1
- package/dist/aui/css/aui-iconfonts.min.css.map +1 -1
- package/dist/aui/css/aui.css.map +1 -1
- package/dist/aui/css/aui.min.css +8 -8
- package/dist/aui/css/aui.min.css.map +1 -1
- package/dist/aui/js/aui-css-deprecations.js +6 -6
- package/dist/aui/js/aui-css-deprecations.min.js +1 -1
- package/dist/aui/js/aui-datepicker.js +13 -13
- package/dist/aui/js/aui-datepicker.min.js +1 -1
- package/dist/aui/js/aui-experimental.js +275 -275
- package/dist/aui/js/aui-experimental.min.js +1 -1
- package/dist/aui/js/aui-header-async.js +6 -6
- package/dist/aui/js/aui-header-async.min.js +1 -1
- package/dist/aui/js/aui-soy.js +56 -56
- package/dist/aui/js/aui-soy.min.js +1 -1
- package/dist/aui/js/aui.js +2278 -1544
- package/dist/aui/js/aui.min.js +1 -1
- package/lib/css/aui-date-picker.css.map +1 -1
- package/lib/css/aui-experimental-tooltip.css.map +1 -1
- package/lib/css/aui-page-typography-legacy1.css.map +1 -1
- package/lib/css/aui-page-typography.css.map +1 -1
- package/lib/css/batch/aui-experimental.css.map +1 -1
- package/lib/css/batch/aui.css.map +1 -1
- package/lib/css/forms.css.map +1 -1
- package/lib/css/imports/aui-theme/core/atlaskit-theme/borders.css +2 -0
- package/lib/css/imports/aui-theme/core/atlaskit-theme/borders.css.map +1 -0
- package/lib/css/imports/aui-theme/core/atlaskit-theme/colors.css +2 -0
- package/lib/css/imports/aui-theme/core/atlaskit-theme/colors.css.map +1 -0
- package/lib/css/imports/aui-theme/core/atlaskit-theme/fonts.css +2 -0
- package/lib/css/imports/aui-theme/core/atlaskit-theme/fonts.css.map +1 -0
- package/lib/css/imports/aui-theme/core/colors.css.map +1 -1
- package/lib/css/imports/aui-theme/core/text.css.map +1 -1
- package/lib/js/aui/backbone.js.map +1 -1
- package/lib/js/aui/binder.js.map +1 -1
- package/lib/js/aui/binders/placeholder.js.map +1 -1
- package/lib/js/aui/button.js.map +1 -1
- package/lib/js/aui/checkbox-multiselect.js.map +1 -1
- package/lib/js/aui/date-picker.js.map +1 -1
- package/lib/js/aui/dialog.js.map +1 -1
- package/lib/js/aui/dialog2.js.map +1 -1
- package/lib/js/aui/drop-down.js.map +1 -1
- package/lib/js/aui/dropdown2.js.map +1 -1
- package/lib/js/aui/fancy-file-input.js.map +1 -1
- package/lib/js/aui/flag.js.map +1 -1
- package/lib/js/aui/focus-manager-global.js.map +1 -1
- package/lib/js/aui/focus-manager.js.map +1 -1
- package/lib/js/aui/form-notification.js.map +1 -1
- package/lib/js/aui/form-validation/basic-validators.js.map +1 -1
- package/lib/js/aui/form-validation/validator-register.js.map +1 -1
- package/lib/js/aui/form-validation.js.map +1 -1
- package/lib/js/aui/header-async.js.map +1 -1
- package/lib/js/aui/i18n.js.map +1 -1
- package/lib/js/aui/inline-dialog.js.map +1 -1
- package/lib/js/aui/inline-dialog2.js.map +1 -1
- package/lib/js/aui/internal/alignment.js.map +1 -1
- package/lib/js/aui/internal/deprecation.js.map +1 -1
- package/lib/js/aui/internal/globalize.js.map +1 -1
- package/lib/js/aui/internal/header/create-header.js.map +1 -1
- package/lib/js/aui/internal/select/suggestion-model.js.map +1 -1
- package/lib/js/aui/internal/select/suggestions-view.js.map +1 -1
- package/lib/js/aui/internal/skate.js.map +1 -1
- package/lib/js/aui/internal/widget.js.map +1 -1
- package/lib/js/aui/label.js.map +1 -1
- package/lib/js/aui/layer-manager-global.js.map +1 -1
- package/lib/js/aui/layer-manager.js.map +1 -1
- package/lib/js/aui/layer.js.map +1 -1
- package/lib/js/aui/messages.js.map +1 -1
- package/lib/js/aui/navigation.js.map +1 -1
- package/lib/js/aui/polyfills/placeholder.js.map +1 -1
- package/lib/js/aui/populate-parameters.js.map +1 -1
- package/lib/js/aui/progress-indicator.js.map +1 -1
- package/lib/js/aui/progressive-data-set.js.map +1 -1
- package/lib/js/aui/query-input.js.map +1 -1
- package/lib/js/aui/restful-table/custom-create-view.js.map +1 -1
- package/lib/js/aui/restful-table/custom-edit-view.js.map +1 -1
- package/lib/js/aui/restful-table/custom-read-view.js.map +1 -1
- package/lib/js/aui/restful-table/edit-row.js.map +1 -1
- package/lib/js/aui/restful-table/entry-model.js.map +1 -1
- package/lib/js/aui/restful-table/row.js.map +1 -1
- package/lib/js/aui/restful-table.js.map +1 -1
- package/lib/js/aui/result-set.js.map +1 -1
- package/lib/js/aui/results-list.js.map +1 -1
- package/lib/js/aui/select.js.map +1 -1
- package/lib/js/aui/select2.js.map +1 -1
- package/lib/js/aui/setup.js.map +1 -1
- package/lib/js/aui/sidebar.js.map +1 -1
- package/lib/js/aui/spin.js.map +1 -1
- package/lib/js/aui/spinner.js.map +1 -1
- package/lib/js/aui/tables-sortable.js.map +1 -1
- package/lib/js/aui/tabs.js.map +1 -1
- package/lib/js/aui/template.js.map +1 -1
- package/lib/js/aui/toggle.js.map +1 -1
- package/lib/js/aui/tooltip.js.map +1 -1
- package/lib/js/aui/trigger.js.map +1 -1
- package/lib/js/aui/truncating-progressive-data-set.js.map +1 -1
- package/lib/js/aui/unbind-text-resize.js.map +1 -1
- package/lib/js/aui/underscore.js.map +1 -1
- package/lib/js/aui/version.js +1 -1
- package/lib/js/aui/version.js.map +1 -1
- package/lib/js/aui/when-i-type.js.map +1 -1
- package/lib/js/aui-css-deprecations.js.map +1 -1
- package/lib/js-vendor/jquery/plugins/jquery.form.js +7 -1
- package/package.json +64 -44
- package/src/js-vendor/jquery/plugins/jquery.form.js +7 -1
- package/src/less/imports/aui-theme/core/atlaskit-theme/borders.less +1 -0
- package/src/less/imports/aui-theme/core/atlaskit-theme/colors.less +112 -0
- package/src/less/imports/aui-theme/core/atlaskit-theme/fonts.less +3 -0
- package/src/less/imports/aui-theme/core/colors.less +1 -1
- package/src/less/imports/aui-theme/core/text.less +1 -1
- package/yarn.lock +8354 -3893
- package/lib/js-vendor/underscorejs/underscore.js +0 -1287
- package/src/js-vendor/underscorejs/underscore.js +0 -1287
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["js/aui/form-validation/basic-validators.js"],"names":["minMaxLength","field","fieldValueLength","el","value","length","fieldIsEmpty","minlength","parseInt","args","maxlength","exactlengthMessage","makeMessage","invalidate","minlengthMessage","maxlengthMessage","validate","register","thisFieldValue","matchingField","document","getElementById","matchingFieldValue","matchingFieldMessage","shouldHidePasswords","isPasswordField","getAttribute","doesNotContainMessage","indexOf","matchesRegex","val","regex","matches","match","isExactMatch","pattern","patternMessage","RegExp","required","requiredMessage","minOrMax","validNumberMessage","fieldValue","isNaN","minValue","maxValue","dateFormatSymbolic","dateFormatMessage","symbolRegexMap","dateFormatSymbolArray","split","dateFormatRegexString","forEach","dateSymbol","isRecognisedSymbol","hasOwnProperty","dateFormatRegex","isValidDate","amountChecked","find","aboveMin","belowMax","belowMinMessage","aboveMaxMessage","key","accessorFunction","customTokens","inFlatpackMode","AJS","I18n","keys","undefined","defaultMessage","pluginI18nMessages","messageTokens","customMessageUnformatted","formattingArguments","concat","format","apply","getText","exactlength","matchingfield","doesnotcontain","validnumber","min","max","dateformat","minchecked","maxchecked"],"mappings":"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","file":"basic-validators.js","sourcesContent":["'use strict';\n\nimport $ from '../jquery';\nimport amdify from '../internal/amdify';\nimport format from '../format'; // eslint-disable-line no-unused-vars\nimport i18n from '../i18n'; // eslint-disable-line no-unused-vars\nimport validatorRegister from './validator-register';\n\n//Input length\nfunction minMaxLength(field) {\n var fieldValueLength = field.el.value.length;\n let fieldIsEmpty = fieldValueLength === 0;\n var minlength = parseInt(field.args('minlength'), 10);\n var maxlength = parseInt(field.args('maxlength'), 10);\n\n if (minlength && maxlength && minlength === maxlength && (!fieldIsEmpty && fieldValueLength !== minlength)) {\n const exactlengthMessage = makeMessage('exactlength', field.args, [minlength]);\n field.invalidate(exactlengthMessage);\n } else if (minlength && (fieldValueLength < minlength && !fieldIsEmpty)) {\n const minlengthMessage = makeMessage('minlength', field.args);\n field.invalidate(minlengthMessage);\n } else if (maxlength && (fieldValueLength > maxlength)) {\n const maxlengthMessage = makeMessage('maxlength', field.args);\n field.invalidate(maxlengthMessage);\n } else {\n field.validate();\n }\n}\nvalidatorRegister.register(['maxlength', 'minlength'], minMaxLength); //AUI-prefixed attribute is deprecated as of 5.9.0\nvalidatorRegister.register('[maxlength],[minlength]', minMaxLength);\n\n//Field matching\nvalidatorRegister.register(['matchingfield'], function (field) {\n var thisFieldValue = field.el.value;\n var matchingField = document.getElementById(field.args('matchingfield'));\n var matchingFieldValue = matchingField.value;\n\n var matchingFieldMessage = makeMessage('matchingfield', field.args, [thisFieldValue, matchingFieldValue]);\n\n var shouldHidePasswords = isPasswordField(field.el) || isPasswordField(matchingField);\n if (shouldHidePasswords) {\n matchingFieldMessage = makeMessage('matchingfield-novalue', field.args);\n }\n\n if (!thisFieldValue || !matchingFieldValue){\n field.validate();\n } else if (matchingFieldValue !== thisFieldValue) {\n field.invalidate(matchingFieldMessage);\n } else {\n field.validate();\n }\n});\n\nfunction isPasswordField(field) {\n return field.getAttribute('type') === 'password';\n}\n\n//Banned words\nvalidatorRegister.register(['doesnotcontain'], function (field) {\n var doesNotContainMessage = makeMessage('doesnotcontain', field.args);\n\n if (field.el.value.indexOf(field.args('doesnotcontain')) === -1) {\n field.validate();\n } else {\n field.invalidate(doesNotContainMessage);\n }\n});\n\n//Matches regex\n\nfunction matchesRegex(val, regex){\n var matches = val.match(regex);\n if (!matches) {\n return false;\n }\n var isExactMatch = (val === matches[0]);\n return isExactMatch;\n}\n\nfunction pattern(field) {\n var patternMessage = makeMessage('pattern', field.args);\n\n if (matchesRegex(field.el.value, new RegExp(field.args('pattern')))) {\n field.validate();\n } else {\n field.invalidate(patternMessage);\n }\n}\n\nvalidatorRegister.register(['pattern'], pattern); //AUI-prefixed attribute is deprecated as of 5.9.0\nvalidatorRegister.register('[pattern]', pattern);\n\n//Native Required\nfunction required(field) {\n var requiredMessage = makeMessage('required', field.args);\n if (field.el.value) {\n field.validate();\n } else {\n field.invalidate(requiredMessage);\n }\n}\nvalidatorRegister.register(['required'], required); //AUI-prefixed attribute is deprecated as of 5.9.0\nvalidatorRegister.register('[required]', required);\n\n//Field value range (between min and max)\n\nfunction minOrMax(field) {\n var validNumberMessage = makeMessage('validnumber', field.args);\n\n var fieldValue = parseInt(field.el.value, 10);\n if (isNaN(fieldValue)) {\n field.invalidate(validNumberMessage);\n return;\n }\n\n var minValue = field.args('min');\n var maxValue = field.args('max');\n\n if (minValue && (fieldValue < parseInt(minValue, 10))) {\n field.invalidate(makeMessage('min', field.args));\n } else if (maxValue && (fieldValue > parseInt(maxValue, 10))){\n field.invalidate(makeMessage('max', field.args));\n } else {\n field.validate();\n }\n}\nvalidatorRegister.register(['min', 'max'], minOrMax); //AUI-prefixed attribute is deprecated as of 5.9.0\nvalidatorRegister.register('[min],[max]', minOrMax);\n\n//Date format\nvalidatorRegister.register(['dateformat'], function (field) {\n var dateFormatSymbolic = field.args('dateformat');\n var dateFormatMessage = makeMessage('dateformat', field.args);\n\n var symbolRegexMap = {\n 'Y': '[0-9]{4}',\n 'y': '[0-9]{2}',\n 'm': '(0?[1-9]|10|11|12)',\n 'M': '[Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec]',\n 'D': '[Mon|Tue|Wed|Thu|Fri|Sat|Sun]',\n 'd': '([0-2]?[1-9]|10|20|30|31)'\n };\n\n var dateFormatSymbolArray = dateFormatSymbolic.split('');\n var dateFormatRegexString = '';\n\n dateFormatSymbolArray.forEach(function (dateSymbol) {\n var isRecognisedSymbol = symbolRegexMap.hasOwnProperty(dateSymbol);\n if (isRecognisedSymbol) {\n dateFormatRegexString += symbolRegexMap[dateSymbol];\n } else {\n dateFormatRegexString += dateSymbol;\n }\n });\n\n var dateFormatRegex = new RegExp(dateFormatRegexString + '$', 'i');\n var isValidDate = matchesRegex(field.el.value, dateFormatRegex);\n\n if (isValidDate) {\n field.validate();\n } else {\n field.invalidate(dateFormatMessage);\n }\n});\n\n//Checkbox count\nvalidatorRegister.register(['minchecked', 'maxchecked'], function (field) {\n var amountChecked = $(field.el).find(':checked').length;\n var aboveMin = !field.args('minchecked') || (amountChecked >= field.args('minchecked'));\n var belowMax = !field.args('maxchecked') || (amountChecked <= field.args('maxchecked'));\n\n var belowMinMessage = makeMessage('minchecked', field.args);\n var aboveMaxMessage = makeMessage('maxchecked', field.args);\n\n if (aboveMin && belowMax) {\n field.validate();\n } else if (!aboveMin) {\n field.invalidate(belowMinMessage);\n } else if (!belowMax) {\n field.invalidate(aboveMaxMessage);\n }\n});\n\n/*\n Retrieves a message for a plugin validator through the data attributes or the default (which is in the i18n file)\n */\nfunction makeMessage(key, accessorFunction, customTokens) {\n var inFlatpackMode = AJS.I18n.keys !== undefined;\n var defaultMessage;\n if (inFlatpackMode) {\n defaultMessage = AJS.I18n.keys['aui.validation.message.' + key];\n } else {\n defaultMessage = pluginI18nMessages[key];\n }\n\n var messageTokens = customTokens;\n if (!customTokens) {\n messageTokens = [accessorFunction(key)];\n }\n\n var customMessageUnformatted = accessorFunction(key + '-msg');\n var formattingArguments;\n\n if (customMessageUnformatted) {\n formattingArguments = [customMessageUnformatted].concat(messageTokens);\n } else {\n formattingArguments = [defaultMessage].concat(messageTokens);\n }\n\n return AJS.format.apply(null, formattingArguments);\n}\n\n/*\n The value AJS.I18n.getText('aui.validation.message...') (defaultMessage) cannot be refactored as it\n must appear verbatim for the plugin I18n transformation to pick it up\n */\nvar pluginI18nMessages = {\n minlength: AJS.I18n.getText('aui.validation.message.minlength'),\n maxlength: AJS.I18n.getText('aui.validation.message.maxlength'),\n exactlength: AJS.I18n.getText('aui.validation.message.exactlength'),\n matchingfield: AJS.I18n.getText('aui.validation.message.matchingfield'),\n 'matchingfield-novalue': AJS.I18n.getText('aui.validation.message.matchingfield-novalue'),\n doesnotcontain: AJS.I18n.getText('aui.validation.message.doesnotcontain'),\n pattern: AJS.I18n.getText('aui.validation.message.pattern'),\n required: AJS.I18n.getText('aui.validation.message.required'),\n validnumber: AJS.I18n.getText('aui.validation.message.validnumber'),\n min: AJS.I18n.getText('aui.validation.message.min'),\n max: AJS.I18n.getText('aui.validation.message.max'),\n dateformat: AJS.I18n.getText('aui.validation.message.dateformat'),\n minchecked: AJS.I18n.getText('aui.validation.message.minchecked'),\n maxchecked: AJS.I18n.getText('aui.validation.message.maxchecked')\n};\n\namdify('aui/form-validation/basic-validators');\n"]}
|
|
1
|
+
{"version":3,"sources":["js/aui/form-validation/basic-validators.js"],"names":["minMaxLength","field","fieldValueLength","el","value","length","fieldIsEmpty","minlength","parseInt","args","maxlength","exactlengthMessage","makeMessage","invalidate","minlengthMessage","maxlengthMessage","validate","validatorRegister","register","thisFieldValue","matchingField","document","getElementById","matchingFieldValue","matchingFieldMessage","shouldHidePasswords","isPasswordField","getAttribute","doesNotContainMessage","indexOf","matchesRegex","val","regex","matches","match","isExactMatch","pattern","patternMessage","RegExp","required","requiredMessage","minOrMax","validNumberMessage","fieldValue","isNaN","minValue","maxValue","dateFormatSymbolic","dateFormatMessage","symbolRegexMap","dateFormatSymbolArray","split","dateFormatRegexString","forEach","dateSymbol","isRecognisedSymbol","hasOwnProperty","dateFormatRegex","isValidDate","amountChecked","find","aboveMin","belowMax","belowMinMessage","aboveMaxMessage","key","accessorFunction","customTokens","inFlatpackMode","AJS","I18n","keys","undefined","defaultMessage","pluginI18nMessages","messageTokens","customMessageUnformatted","formattingArguments","concat","format","apply","getText","exactlength","matchingfield","doesnotcontain","validnumber","min","max","dateformat","minchecked","maxchecked"],"mappings":";;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;AAQA;AAJgC;AAKhC,aAASA,YAAT,CAAsBC,KAAtB,EAA6B;AACzB,YAAIC,mBAAmBD,MAAME,EAAN,CAASC,KAAT,CAAeC,MAAtC;AACA,YAAIC,eAAeJ,qBAAqB,CAAxC;AACA,YAAIK,YAAYC,SAASP,MAAMQ,IAAN,CAAW,WAAX,CAAT,EAAkC,EAAlC,CAAhB;AACA,YAAIC,YAAYF,SAASP,MAAMQ,IAAN,CAAW,WAAX,CAAT,EAAkC,EAAlC,CAAhB;;AAEA,YAAIF,aAAaG,SAAb,IAA0BH,cAAcG,SAAxC,IAAsD,CAACJ,YAAD,IAAiBJ,qBAAqBK,SAAhG,EAA4G;AACxG,gBAAMI,qBAAqBC,YAAY,aAAZ,EAA2BX,MAAMQ,IAAjC,EAAuC,CAACF,SAAD,CAAvC,CAA3B;AACAN,kBAAMY,UAAN,CAAiBF,kBAAjB;AACH,SAHD,MAGO,IAAIJ,aAAcL,mBAAmBK,SAAnB,IAAgC,CAACD,YAAnD,EAAkE;AACrE,gBAAMQ,mBAAmBF,YAAY,WAAZ,EAAyBX,MAAMQ,IAA/B,CAAzB;AACAR,kBAAMY,UAAN,CAAiBC,gBAAjB;AACH,SAHM,MAGA,IAAIJ,aAAcR,mBAAmBQ,SAArC,EAAiD;AACpD,gBAAMK,mBAAmBH,YAAY,WAAZ,EAAyBX,MAAMQ,IAA/B,CAAzB;AACAR,kBAAMY,UAAN,CAAiBE,gBAAjB;AACH,SAHM,MAGA;AACHd,kBAAMe,QAAN;AACH;AACJ,K,CAtB2B;;AAuB5BC,gCAAkBC,QAAlB,CAA2B,CAAC,WAAD,EAAc,WAAd,CAA3B,EAAuDlB,YAAvD,E,CAAsE;AACtEiB,gCAAkBC,QAAlB,CAA2B,yBAA3B,EAAsDlB,YAAtD;;AAEA;AACAiB,gCAAkBC,QAAlB,CAA2B,CAAC,eAAD,CAA3B,EAA8C,UAAUjB,KAAV,EAAiB;AAC3D,YAAIkB,iBAAiBlB,MAAME,EAAN,CAASC,KAA9B;AACA,YAAIgB,gBAAgBC,SAASC,cAAT,CAAwBrB,MAAMQ,IAAN,CAAW,eAAX,CAAxB,CAApB;AACA,YAAIc,qBAAqBH,cAAchB,KAAvC;;AAEA,YAAIoB,uBAAuBZ,YAAY,eAAZ,EAA6BX,MAAMQ,IAAnC,EAAyC,CAACU,cAAD,EAAiBI,kBAAjB,CAAzC,CAA3B;;AAEA,YAAIE,sBAAsBC,gBAAgBzB,MAAME,EAAtB,KAA6BuB,gBAAgBN,aAAhB,CAAvD;AACA,YAAIK,mBAAJ,EAAyB;AACrBD,mCAAuBZ,YAAY,uBAAZ,EAAqCX,MAAMQ,IAA3C,CAAvB;AACH;;AAED,YAAI,CAACU,cAAD,IAAmB,CAACI,kBAAxB,EAA2C;AACvCtB,kBAAMe,QAAN;AACH,SAFD,MAEO,IAAIO,uBAAuBJ,cAA3B,EAA2C;AAC9ClB,kBAAMY,UAAN,CAAiBW,oBAAjB;AACH,SAFM,MAEA;AACHvB,kBAAMe,QAAN;AACH;AACJ,KAnBD;;AAqBA,aAASU,eAAT,CAAyBzB,KAAzB,EAAgC;AAC5B,eAAOA,MAAM0B,YAAN,CAAmB,MAAnB,MAA+B,UAAtC;AACH;;AAED;AACAV,gCAAkBC,QAAlB,CAA2B,CAAC,gBAAD,CAA3B,EAA+C,UAAUjB,KAAV,EAAiB;AAC5D,YAAI2B,wBAAwBhB,YAAY,gBAAZ,EAA8BX,MAAMQ,IAApC,CAA5B;;AAEA,YAAIR,MAAME,EAAN,CAASC,KAAT,CAAeyB,OAAf,CAAuB5B,MAAMQ,IAAN,CAAW,gBAAX,CAAvB,MAAyD,CAAC,CAA9D,EAAiE;AAC7DR,kBAAMe,QAAN;AACH,SAFD,MAEO;AACHf,kBAAMY,UAAN,CAAiBe,qBAAjB;AACH;AACJ,KARD;;AAUA;;AAEA,aAASE,YAAT,CAAsBC,GAAtB,EAA2BC,KAA3B,EAAiC;AAC7B,YAAIC,UAAUF,IAAIG,KAAJ,CAAUF,KAAV,CAAd;AACA,YAAI,CAACC,OAAL,EAAc;AACV,mBAAO,KAAP;AACH;AACD,YAAIE,eAAgBJ,QAAQE,QAAQ,CAAR,CAA5B;AACA,eAAOE,YAAP;AACH;;AAED,aAASC,OAAT,CAAiBnC,KAAjB,EAAwB;AACpB,YAAIoC,iBAAiBzB,YAAY,SAAZ,EAAuBX,MAAMQ,IAA7B,CAArB;;AAEA,YAAIqB,aAAa7B,MAAME,EAAN,CAASC,KAAtB,EAA6B,IAAIkC,MAAJ,CAAWrC,MAAMQ,IAAN,CAAW,SAAX,CAAX,CAA7B,CAAJ,EAAqE;AACjER,kBAAMe,QAAN;AACH,SAFD,MAEO;AACHf,kBAAMY,UAAN,CAAiBwB,cAAjB;AACH;AACJ;;AAEDpB,gCAAkBC,QAAlB,CAA2B,CAAC,SAAD,CAA3B,EAAwCkB,OAAxC,E,CAAkD;AAClDnB,gCAAkBC,QAAlB,CAA2B,WAA3B,EAAwCkB,OAAxC;;AAEA;AACA,aAASG,QAAT,CAAkBtC,KAAlB,EAAyB;AACrB,YAAIuC,kBAAkB5B,YAAY,UAAZ,EAAwBX,MAAMQ,IAA9B,CAAtB;AACA,YAAIR,MAAME,EAAN,CAASC,KAAb,EAAoB;AAChBH,kBAAMe,QAAN;AACH,SAFD,MAEO;AACHf,kBAAMY,UAAN,CAAiB2B,eAAjB;AACH;AACJ;AACDvB,gCAAkBC,QAAlB,CAA2B,CAAC,UAAD,CAA3B,EAAyCqB,QAAzC,E,CAAoD;AACpDtB,gCAAkBC,QAAlB,CAA2B,YAA3B,EAAyCqB,QAAzC;;AAEA;;AAEA,aAASE,QAAT,CAAkBxC,KAAlB,EAAyB;AACrB,YAAIyC,qBAAqB9B,YAAY,aAAZ,EAA2BX,MAAMQ,IAAjC,CAAzB;;AAEA,YAAIkC,aAAanC,SAASP,MAAME,EAAN,CAASC,KAAlB,EAAyB,EAAzB,CAAjB;AACA,YAAIwC,MAAMD,UAAN,CAAJ,EAAuB;AACnB1C,kBAAMY,UAAN,CAAiB6B,kBAAjB;AACA;AACH;;AAED,YAAIG,WAAW5C,MAAMQ,IAAN,CAAW,KAAX,CAAf;AACA,YAAIqC,WAAW7C,MAAMQ,IAAN,CAAW,KAAX,CAAf;;AAEA,YAAIoC,YAAaF,aAAanC,SAASqC,QAAT,EAAmB,EAAnB,CAA9B,EAAuD;AACnD5C,kBAAMY,UAAN,CAAiBD,YAAY,KAAZ,EAAmBX,MAAMQ,IAAzB,CAAjB;AACH,SAFD,MAEO,IAAIqC,YAAaH,aAAanC,SAASsC,QAAT,EAAmB,EAAnB,CAA9B,EAAsD;AACzD7C,kBAAMY,UAAN,CAAiBD,YAAY,KAAZ,EAAmBX,MAAMQ,IAAzB,CAAjB;AACH,SAFM,MAEA;AACHR,kBAAMe,QAAN;AACH;AACJ;AACDC,gCAAkBC,QAAlB,CAA2B,CAAC,KAAD,EAAQ,KAAR,CAA3B,EAA2CuB,QAA3C,E,CAAsD;AACtDxB,gCAAkBC,QAAlB,CAA2B,aAA3B,EAA0CuB,QAA1C;;AAEA;AACAxB,gCAAkBC,QAAlB,CAA2B,CAAC,YAAD,CAA3B,EAA2C,UAAUjB,KAAV,EAAiB;AACxD,YAAI8C,qBAAqB9C,MAAMQ,IAAN,CAAW,YAAX,CAAzB;AACA,YAAIuC,oBAAoBpC,YAAY,YAAZ,EAA0BX,MAAMQ,IAAhC,CAAxB;;AAEA,YAAIwC,iBAAiB;AACjB,iBAAK,UADY;AAEjB,iBAAK,UAFY;AAGjB,iBAAK,oBAHY;AAIjB,iBAAK,mDAJY;AAKjB,iBAAK,+BALY;AAMjB,iBAAK;AANY,SAArB;;AASA,YAAIC,wBAAwBH,mBAAmBI,KAAnB,CAAyB,EAAzB,CAA5B;AACA,YAAIC,wBAAwB,EAA5B;;AAEAF,8BAAsBG,OAAtB,CAA8B,UAAUC,UAAV,EAAsB;AAChD,gBAAIC,qBAAqBN,eAAeO,cAAf,CAA8BF,UAA9B,CAAzB;AACA,gBAAIC,kBAAJ,EAAwB;AACpBH,yCAAyBH,eAAeK,UAAf,CAAzB;AACH,aAFD,MAEO;AACHF,yCAAyBE,UAAzB;AACH;AACJ,SAPD;;AASA,YAAIG,kBAAkB,IAAInB,MAAJ,CAAWc,wBAAwB,GAAnC,EAAwC,GAAxC,CAAtB;AACA,YAAIM,cAAc5B,aAAa7B,MAAME,EAAN,CAASC,KAAtB,EAA6BqD,eAA7B,CAAlB;;AAEA,YAAIC,WAAJ,EAAiB;AACbzD,kBAAMe,QAAN;AACH,SAFD,MAEO;AACHf,kBAAMY,UAAN,CAAiBmC,iBAAjB;AACH;AACJ,KAjCD;;AAmCA;AACA/B,gCAAkBC,QAAlB,CAA2B,CAAC,YAAD,EAAe,YAAf,CAA3B,EAAyD,UAAUjB,KAAV,EAAiB;AACtE,YAAI0D,gBAAgB,sBAAE1D,MAAME,EAAR,EAAYyD,IAAZ,CAAiB,UAAjB,EAA6BvD,MAAjD;AACA,YAAIwD,WAAW,CAAC5D,MAAMQ,IAAN,CAAW,YAAX,CAAD,IAA8BkD,iBAAiB1D,MAAMQ,IAAN,CAAW,YAAX,CAA9D;AACA,YAAIqD,WAAW,CAAC7D,MAAMQ,IAAN,CAAW,YAAX,CAAD,IAA8BkD,iBAAiB1D,MAAMQ,IAAN,CAAW,YAAX,CAA9D;;AAEA,YAAIsD,kBAAkBnD,YAAY,YAAZ,EAA0BX,MAAMQ,IAAhC,CAAtB;AACA,YAAIuD,kBAAkBpD,YAAY,YAAZ,EAA0BX,MAAMQ,IAAhC,CAAtB;;AAEA,YAAIoD,YAAYC,QAAhB,EAA0B;AACtB7D,kBAAMe,QAAN;AACH,SAFD,MAEO,IAAI,CAAC6C,QAAL,EAAe;AAClB5D,kBAAMY,UAAN,CAAiBkD,eAAjB;AACH,SAFM,MAEA,IAAI,CAACD,QAAL,EAAe;AAClB7D,kBAAMY,UAAN,CAAiBmD,eAAjB;AACH;AACJ,KAfD;;AAiBA;;;AAGA,aAASpD,WAAT,CAAqBqD,GAArB,EAA0BC,gBAA1B,EAA4CC,YAA5C,EAA0D;AACtD,YAAIC,iBAAiBC,IAAIC,IAAJ,CAASC,IAAT,KAAkBC,SAAvC;AACA,YAAIC,cAAJ;AACA,YAAIL,cAAJ,EAAoB;AAChBK,6BAAiBJ,IAAIC,IAAJ,CAASC,IAAT,CAAc,4BAA4BN,GAA1C,CAAjB;AACH,SAFD,MAEO;AACHQ,6BAAiBC,mBAAmBT,GAAnB,CAAjB;AACH;;AAED,YAAIU,gBAAgBR,YAApB;AACA,YAAI,CAACA,YAAL,EAAmB;AACfQ,4BAAgB,CAACT,iBAAiBD,GAAjB,CAAD,CAAhB;AACH;;AAED,YAAIW,2BAA2BV,iBAAiBD,MAAM,MAAvB,CAA/B;AACA,YAAIY,mBAAJ;;AAEA,YAAID,wBAAJ,EAA8B;AAC1BC,kCAAsB,CAACD,wBAAD,EAA2BE,MAA3B,CAAkCH,aAAlC,CAAtB;AACH,SAFD,MAEO;AACHE,kCAAsB,CAACJ,cAAD,EAAiBK,MAAjB,CAAwBH,aAAxB,CAAtB;AACH;;AAED,eAAON,IAAIU,MAAJ,CAAWC,KAAX,CAAiB,IAAjB,EAAuBH,mBAAvB,CAAP;AACH;;AAED;;;;AAIA,QAAIH,qBAAqB;AACrBnE,mBAAW8D,IAAIC,IAAJ,CAASW,OAAT,CAAiB,kCAAjB,CADU;AAErBvE,mBAAW2D,IAAIC,IAAJ,CAASW,OAAT,CAAiB,kCAAjB,CAFU;AAGrBC,qBAAab,IAAIC,IAAJ,CAASW,OAAT,CAAiB,oCAAjB,CAHQ;AAIrBE,uBAAed,IAAIC,IAAJ,CAASW,OAAT,CAAiB,sCAAjB,CAJM;AAKrB,iCAAyBZ,IAAIC,IAAJ,CAASW,OAAT,CAAiB,8CAAjB,CALJ;AAMrBG,wBAAgBf,IAAIC,IAAJ,CAASW,OAAT,CAAiB,uCAAjB,CANK;AAOrB7C,iBAASiC,IAAIC,IAAJ,CAASW,OAAT,CAAiB,gCAAjB,CAPY;AAQrB1C,kBAAU8B,IAAIC,IAAJ,CAASW,OAAT,CAAiB,iCAAjB,CARW;AASrBI,qBAAahB,IAAIC,IAAJ,CAASW,OAAT,CAAiB,oCAAjB,CATQ;AAUrBK,aAAKjB,IAAIC,IAAJ,CAASW,OAAT,CAAiB,4BAAjB,CAVgB;AAWrBM,aAAKlB,IAAIC,IAAJ,CAASW,OAAT,CAAiB,4BAAjB,CAXgB;AAYrBO,oBAAYnB,IAAIC,IAAJ,CAASW,OAAT,CAAiB,mCAAjB,CAZS;AAarBQ,oBAAYpB,IAAIC,IAAJ,CAASW,OAAT,CAAiB,mCAAjB,CAbS;AAcrBS,oBAAYrB,IAAIC,IAAJ,CAASW,OAAT,CAAiB,mCAAjB;AAdS,KAAzB;;AAiBA,0BAAO,sCAAP","file":"basic-validators.js","sourcesContent":["'use strict';\n\nimport $ from '../jquery';\nimport amdify from '../internal/amdify';\nimport format from '../format'; // eslint-disable-line no-unused-vars\nimport i18n from '../i18n'; // eslint-disable-line no-unused-vars\nimport validatorRegister from './validator-register';\n\n//Input length\nfunction minMaxLength(field) {\n var fieldValueLength = field.el.value.length;\n let fieldIsEmpty = fieldValueLength === 0;\n var minlength = parseInt(field.args('minlength'), 10);\n var maxlength = parseInt(field.args('maxlength'), 10);\n\n if (minlength && maxlength && minlength === maxlength && (!fieldIsEmpty && fieldValueLength !== minlength)) {\n const exactlengthMessage = makeMessage('exactlength', field.args, [minlength]);\n field.invalidate(exactlengthMessage);\n } else if (minlength && (fieldValueLength < minlength && !fieldIsEmpty)) {\n const minlengthMessage = makeMessage('minlength', field.args);\n field.invalidate(minlengthMessage);\n } else if (maxlength && (fieldValueLength > maxlength)) {\n const maxlengthMessage = makeMessage('maxlength', field.args);\n field.invalidate(maxlengthMessage);\n } else {\n field.validate();\n }\n}\nvalidatorRegister.register(['maxlength', 'minlength'], minMaxLength); //AUI-prefixed attribute is deprecated as of 5.9.0\nvalidatorRegister.register('[maxlength],[minlength]', minMaxLength);\n\n//Field matching\nvalidatorRegister.register(['matchingfield'], function (field) {\n var thisFieldValue = field.el.value;\n var matchingField = document.getElementById(field.args('matchingfield'));\n var matchingFieldValue = matchingField.value;\n\n var matchingFieldMessage = makeMessage('matchingfield', field.args, [thisFieldValue, matchingFieldValue]);\n\n var shouldHidePasswords = isPasswordField(field.el) || isPasswordField(matchingField);\n if (shouldHidePasswords) {\n matchingFieldMessage = makeMessage('matchingfield-novalue', field.args);\n }\n\n if (!thisFieldValue || !matchingFieldValue){\n field.validate();\n } else if (matchingFieldValue !== thisFieldValue) {\n field.invalidate(matchingFieldMessage);\n } else {\n field.validate();\n }\n});\n\nfunction isPasswordField(field) {\n return field.getAttribute('type') === 'password';\n}\n\n//Banned words\nvalidatorRegister.register(['doesnotcontain'], function (field) {\n var doesNotContainMessage = makeMessage('doesnotcontain', field.args);\n\n if (field.el.value.indexOf(field.args('doesnotcontain')) === -1) {\n field.validate();\n } else {\n field.invalidate(doesNotContainMessage);\n }\n});\n\n//Matches regex\n\nfunction matchesRegex(val, regex){\n var matches = val.match(regex);\n if (!matches) {\n return false;\n }\n var isExactMatch = (val === matches[0]);\n return isExactMatch;\n}\n\nfunction pattern(field) {\n var patternMessage = makeMessage('pattern', field.args);\n\n if (matchesRegex(field.el.value, new RegExp(field.args('pattern')))) {\n field.validate();\n } else {\n field.invalidate(patternMessage);\n }\n}\n\nvalidatorRegister.register(['pattern'], pattern); //AUI-prefixed attribute is deprecated as of 5.9.0\nvalidatorRegister.register('[pattern]', pattern);\n\n//Native Required\nfunction required(field) {\n var requiredMessage = makeMessage('required', field.args);\n if (field.el.value) {\n field.validate();\n } else {\n field.invalidate(requiredMessage);\n }\n}\nvalidatorRegister.register(['required'], required); //AUI-prefixed attribute is deprecated as of 5.9.0\nvalidatorRegister.register('[required]', required);\n\n//Field value range (between min and max)\n\nfunction minOrMax(field) {\n var validNumberMessage = makeMessage('validnumber', field.args);\n\n var fieldValue = parseInt(field.el.value, 10);\n if (isNaN(fieldValue)) {\n field.invalidate(validNumberMessage);\n return;\n }\n\n var minValue = field.args('min');\n var maxValue = field.args('max');\n\n if (minValue && (fieldValue < parseInt(minValue, 10))) {\n field.invalidate(makeMessage('min', field.args));\n } else if (maxValue && (fieldValue > parseInt(maxValue, 10))){\n field.invalidate(makeMessage('max', field.args));\n } else {\n field.validate();\n }\n}\nvalidatorRegister.register(['min', 'max'], minOrMax); //AUI-prefixed attribute is deprecated as of 5.9.0\nvalidatorRegister.register('[min],[max]', minOrMax);\n\n//Date format\nvalidatorRegister.register(['dateformat'], function (field) {\n var dateFormatSymbolic = field.args('dateformat');\n var dateFormatMessage = makeMessage('dateformat', field.args);\n\n var symbolRegexMap = {\n 'Y': '[0-9]{4}',\n 'y': '[0-9]{2}',\n 'm': '(0?[1-9]|10|11|12)',\n 'M': '[Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec]',\n 'D': '[Mon|Tue|Wed|Thu|Fri|Sat|Sun]',\n 'd': '([0-2]?[1-9]|10|20|30|31)'\n };\n\n var dateFormatSymbolArray = dateFormatSymbolic.split('');\n var dateFormatRegexString = '';\n\n dateFormatSymbolArray.forEach(function (dateSymbol) {\n var isRecognisedSymbol = symbolRegexMap.hasOwnProperty(dateSymbol);\n if (isRecognisedSymbol) {\n dateFormatRegexString += symbolRegexMap[dateSymbol];\n } else {\n dateFormatRegexString += dateSymbol;\n }\n });\n\n var dateFormatRegex = new RegExp(dateFormatRegexString + '$', 'i');\n var isValidDate = matchesRegex(field.el.value, dateFormatRegex);\n\n if (isValidDate) {\n field.validate();\n } else {\n field.invalidate(dateFormatMessage);\n }\n});\n\n//Checkbox count\nvalidatorRegister.register(['minchecked', 'maxchecked'], function (field) {\n var amountChecked = $(field.el).find(':checked').length;\n var aboveMin = !field.args('minchecked') || (amountChecked >= field.args('minchecked'));\n var belowMax = !field.args('maxchecked') || (amountChecked <= field.args('maxchecked'));\n\n var belowMinMessage = makeMessage('minchecked', field.args);\n var aboveMaxMessage = makeMessage('maxchecked', field.args);\n\n if (aboveMin && belowMax) {\n field.validate();\n } else if (!aboveMin) {\n field.invalidate(belowMinMessage);\n } else if (!belowMax) {\n field.invalidate(aboveMaxMessage);\n }\n});\n\n/*\n Retrieves a message for a plugin validator through the data attributes or the default (which is in the i18n file)\n */\nfunction makeMessage(key, accessorFunction, customTokens) {\n var inFlatpackMode = AJS.I18n.keys !== undefined;\n var defaultMessage;\n if (inFlatpackMode) {\n defaultMessage = AJS.I18n.keys['aui.validation.message.' + key];\n } else {\n defaultMessage = pluginI18nMessages[key];\n }\n\n var messageTokens = customTokens;\n if (!customTokens) {\n messageTokens = [accessorFunction(key)];\n }\n\n var customMessageUnformatted = accessorFunction(key + '-msg');\n var formattingArguments;\n\n if (customMessageUnformatted) {\n formattingArguments = [customMessageUnformatted].concat(messageTokens);\n } else {\n formattingArguments = [defaultMessage].concat(messageTokens);\n }\n\n return AJS.format.apply(null, formattingArguments);\n}\n\n/*\n The value AJS.I18n.getText('aui.validation.message...') (defaultMessage) cannot be refactored as it\n must appear verbatim for the plugin I18n transformation to pick it up\n */\nvar pluginI18nMessages = {\n minlength: AJS.I18n.getText('aui.validation.message.minlength'),\n maxlength: AJS.I18n.getText('aui.validation.message.maxlength'),\n exactlength: AJS.I18n.getText('aui.validation.message.exactlength'),\n matchingfield: AJS.I18n.getText('aui.validation.message.matchingfield'),\n 'matchingfield-novalue': AJS.I18n.getText('aui.validation.message.matchingfield-novalue'),\n doesnotcontain: AJS.I18n.getText('aui.validation.message.doesnotcontain'),\n pattern: AJS.I18n.getText('aui.validation.message.pattern'),\n required: AJS.I18n.getText('aui.validation.message.required'),\n validnumber: AJS.I18n.getText('aui.validation.message.validnumber'),\n min: AJS.I18n.getText('aui.validation.message.min'),\n max: AJS.I18n.getText('aui.validation.message.max'),\n dateformat: AJS.I18n.getText('aui.validation.message.dateformat'),\n minchecked: AJS.I18n.getText('aui.validation.message.minchecked'),\n maxchecked: AJS.I18n.getText('aui.validation.message.maxchecked')\n};\n\namdify('aui/form-validation/basic-validators');\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["js/aui/form-validation/validator-register.js"],"names":["logger","ATTRIBUTE_RESERVED_ARGUMENTS","validators","getReservedArgument","validatorArguments","reservedArgument","some","arg","isReserved","inArray","registerValidator","trigger","validatorFunction","triggerSelector","warn","join","validator","validatorTrigger","push","validatorRegister","register"],"mappings":";;;;;;;;;;;;;AAAA;;;;;;;;QAGYA,M;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGZ,QAAIC,+BAA+B,CAAC,cAAD,EAAiB,YAAjB,EAA+B,MAA/B,EAAuC,YAAvC,EAAqD,OAArD,CAAnC;AACA,QAAIC,cAAa,EAAjB;;AAEA,aAASC,mBAAT,CAA8BC,kBAA9B,EAAkD;AAC9C,YAAIC,mBAAmB,KAAvB;;AAEAD,2BAAmBE,IAAnB,CAAwB,UAAUC,GAAV,EAAe;AACnC,gBAAIC,
|
|
1
|
+
{"version":3,"sources":["js/aui/form-validation/validator-register.js"],"names":["logger","ATTRIBUTE_RESERVED_ARGUMENTS","validators","getReservedArgument","validatorArguments","reservedArgument","some","arg","isReserved","$","inArray","registerValidator","trigger","validatorFunction","triggerSelector","warn","join","validator","validatorTrigger","push","validatorRegister","register"],"mappings":";;;;;;;;;;;;;AAAA;;;;;;;;QAGYA,M;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGZ,QAAIC,+BAA+B,CAAC,cAAD,EAAiB,YAAjB,EAA+B,MAA/B,EAAuC,YAAvC,EAAqD,OAArD,CAAnC;AACA,QAAIC,cAAa,EAAjB;;AAEA,aAASC,mBAAT,CAA8BC,kBAA9B,EAAkD;AAC9C,YAAIC,mBAAmB,KAAvB;;AAEAD,2BAAmBE,IAAnB,CAAwB,UAAUC,GAAV,EAAe;AACnC,gBAAIC,aAAaC,iBAAEC,OAAF,CAAUH,GAAV,EAAeN,4BAAf,MAAiD,CAAC,CAAnE;;AAEA,gBAAIO,UAAJ,EAAgB;AACZH,mCAAmBE,GAAnB;AACH;;AAED,mBAAOC,UAAP;AACH,SARD;;AAUA,eAAOH,gBAAP;AACH;;AAED;;;;;;;AAOA,aAASM,iBAAT,CAA4BC,OAA5B,EAAqCC,iBAArC,EAAwD;AACpD,YAAIC,eAAJ;;AAEA,YAAI,OAAOF,OAAP,KAAmB,QAAvB,EAAiC;AAC7BE,8BAAkBF,OAAlB;AACH,SAFD,MAEO;AACH,gBAAIP,mBAAmBF,oBAAoBS,OAApB,CAAvB;;AAEA,gBAAIP,gBAAJ,EAAsB;AAClBL,uBAAOe,IAAP,CAAY,wDAAwDV,gBAAxD,GAA2E,kCAAvF;AACA,uBAAO,KAAP;AACH;;AAEDS,8BAAkB,0BAA0BF,QAAQI,IAAR,CAAa,yBAAb,CAA1B,GAAoE,GAAtF;AACH;;AAED,YAAIC,YAAY;AACZJ,+BAAmBA,iBADP;AAEZK,8BAAkBJ;AAFN,SAAhB;;AAKAZ,oBAAWiB,IAAX,CAAgBF,SAAhB;;AAEA,eAAOA,SAAP;AACH;;AAED,QAAIG,oBAAoB;AACpBC,kBAAUV,iBADU;AAEpBT,oBAAY,sBAAY;AACpB,mBAAOA,WAAP;AACH;AAJmB,KAAxB;;AAOA,0BAAO,wCAAP,EAAiDkB,iBAAjD;;sBAEeA,iB","file":"validator-register.js","sourcesContent":["'use strict';\n\nimport $ from '../jquery';\nimport * as logger from '../internal/log';\nimport amdify from '../internal/amdify';\n\nvar ATTRIBUTE_RESERVED_ARGUMENTS = ['displayfield', 'watchfield', 'when', 'novalidate', 'state'];\nvar validators = [];\n\nfunction getReservedArgument (validatorArguments) {\n var reservedArgument = false;\n\n validatorArguments.some(function (arg) {\n var isReserved = $.inArray(arg, ATTRIBUTE_RESERVED_ARGUMENTS) !== -1;\n\n if (isReserved) {\n reservedArgument = arg;\n }\n\n return isReserved;\n });\n\n return reservedArgument;\n}\n\n/**\n * Register a validator that can be used to validate fields. The main entry point for validator plugins.\n * @param trigger - when to run the validator. Can be an array of arguments, or a selector\n * @param validatorFunction - the function that will be called on the field to determine validation. Receives\n * field - the field that is being validated\n * args - the arguments that have been specified in HTML markup.\n */\nfunction registerValidator (trigger, validatorFunction) {\n var triggerSelector;\n\n if (typeof trigger === 'string') {\n triggerSelector = trigger;\n } else {\n var reservedArgument = getReservedArgument(trigger);\n\n if (reservedArgument) {\n logger.warn('Validators cannot be registered with the argument \"' + reservedArgument + '\", as it is a reserved argument.');\n return false;\n }\n\n triggerSelector = '[data-aui-validation-' + trigger.join('],[data-aui-validation-') + ']';\n }\n\n var validator = {\n validatorFunction: validatorFunction,\n validatorTrigger: triggerSelector\n };\n\n validators.push(validator);\n\n return validator;\n}\n\nvar validatorRegister = {\n register: registerValidator,\n validators: function () {\n return validators;\n }\n};\n\namdify('aui/form-validation/validator-register', validatorRegister);\n\nexport default validatorRegister;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["js/aui/form-validation.js"],"names":["deprecate","ATTRIBUTE_VALIDATION_OPTION_PREFIX","ATTRIBUTE_NOTIFICATION_PREFIX","ATTRIBUTE_FIELD_STATE","INVALID","VALID","VALIDATING","UNVALIDATED","ATTRIBUTE_VALIDATION_FIELD_COMPONENT","CLASS_VALIDATION_INITIALISED","EVENT_FIELD_STATE_CHANGED","isFieldInitialised","$field","hasClass","initValidation","initialiseDisplayField","prepareFieldMarkup","bindFieldEvents","changeFieldState","getDisplayField","attr","addClass","bindStopTypingEvent","bindValidationEvent","keyUpTimer","triggerStopTypingEvent","trigger","on","clearTimeout","setTimeout","validateWhen","getValidationOption","watchedFieldID","elementsToWatch","add","startValidation","validationTriggeredHandler","noValidate","startValidating","option","defaults","optionValue","clearFieldMessages","validatorsToRun","getActivatedValidators","deferreds","runValidatorsAndGetDeferred","fieldValidators","when","apply","done","setFieldNotification","getValidators","validators","callList","forEach","validator","index","validatorTrigger","runThisValidator","is","push","allDeferreds","validatorIndex","validatorFunction","deferred","Deferred","validatorContext","createValidatorContext","validatorDeferred","context","validate","resolve","invalidate","message","reject","args","createArgumentAccessorFunction","el","$el","prop","sinceVersion","removeInVersion","alternativeName","extraInfo","arg","state","Event","$displayField","stateToNotificationTypeMap","notificationType","showSpinnerIfSlow","stillValidating","getFieldState","type","spinnerWasVisible","isSpinnerVisible","removeIconOnlyNotifications","skipShowingSuccessNotification","removeFieldNotification","previousMessage","newMessage","combineJSONMessages","removeAttr","newString","previousString","previousStackedMessageList","JSON","parse","newStackedMessageList","concat","newStackedMessage","stringify","displayFieldID","notifyOnSelf","undefined","validateField","document","e","form","target","$form","formState","getFormStateName","delaySubmitUntilStateChange","validateUnvalidatedFields","preventDefault","selectFirstInvalid","validSubmitEvent","preventNormalSubmit","isDefaultPrevented","event","one","$fieldCollection","find","fieldStates","getFieldCollectionStateNames","wholeFormState","mergeStates","$fields","states","map","field","stateNames","containsInvalidState","indexOf","containsUnvalidatedState","containsValidatingState","$unvalidatedElements","getFieldsInFormWithState","each","$firstInvalidField","first","focus","selector","register","attached","setAttribute","init","ATTRIBUTE"],"mappings":";;;;;;;;;;;;;AAAA;;;;;;;;;;QAMYA,S;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKZ;AACA,QAAIC,qCAAqC,iBAAzC;AACA,QAAIC,gCAAgC,wBAApC;;AAEA,QAAIC,wBAAwB,sBAA5B;AACA,QAAIC,UAAU,SAAd;AACA,QAAIC,QAAQ,OAAZ;AACA,QAAIC,aAAa,YAAjB;AACA,QAAIC,cAAc,aAAlB;;AAEA,QAAIC,uCAAuC,2BAA3C;;AAEA;AACA,QAAIC,+BAA+B,kCAAnC;;AAEA;AACA,QAAIC,4BAA4B,mCAAhC;;AAEA,aAASC,kBAAT,CAA4BC,MAA5B,EAAoC;AAChC,eAAOA,OAAOC,QAAP,CAAgBJ,4BAAhB,CAAP;AACH;;AAED,aAASK,cAAT,CAAwBF,MAAxB,EAAgC;AAC5B,YAAI,CAACD,mBAAmBC,MAAnB,CAAL,EAAiC;AAC7BG,mCAAuBH,MAAvB;AACAI,+BAAmBJ,MAAnB;AACAK,4BAAgBL,MAAhB;AACAM,6BAAiBN,MAAjB,EAAyBL,WAAzB;AACH;AACJ;;AAED,aAASQ,sBAAT,CAAgCH,MAAhC,EAAwC;AACpCO,wBAAgBP,MAAhB,EAAwBQ,IAAxB,CAA6B,6BAA7B,EAA4D,EAA5D;AACH;;AAED,aAASJ,kBAAT,CAA4BJ,MAA5B,EAAmC;AAC/BA,eAAOS,QAAP,CAAgBZ,4BAAhB;AACH;;AAED,aAASQ,eAAT,CAAyBL,MAAzB,EAAiC;AAC7BU,4BAAoBV,MAApB;AACAW,4BAAoBX,MAApB;AACH;;AAED,aAASU,mBAAT,CAA6BV,MAA7B,EAAoC;AAChC,YAAIY,UAAJ;;AAEA,YAAIC,yBAAyB,SAAzBA,sBAAyB,GAAY;AACrCb,mBAAOc,OAAP,CAAe,iBAAf;AACH,SAFD;;AAIAd,eAAOe,EAAP,CAAU,OAAV,EAAmB,YAAY;AAC3BC,yBAAaJ,UAAb;AACAA,yBAAaK,WAAWJ,sBAAX,EAAmC,IAAnC,CAAb;AACH,SAHD;AAIH;;AAED,aAASF,mBAAT,CAA6BX,MAA7B,EAAqC;AACjC,YAAIkB,eAAeC,oBAAoBnB,MAApB,EAA4B,MAA5B,CAAnB;AACA,YAAIoB,iBAAiBD,oBAAoBnB,MAApB,EAA4B,YAA5B,CAArB;;AAEA,YAAIqB,kBAAkBD,iBAAiBpB,OAAOsB,GAAP,CAAW,MAAMF,cAAjB,CAAjB,GAAoDpB,MAA1E;;AAEAqB,wBAAgBN,EAAhB,CAAmBG,YAAnB,EAAiC,SAASK,eAAT,GAA4B;AACzDC,uCAA2BxB,MAA3B;AACH,SAFD;AAGH;;AAED,aAASwB,0BAAT,CAAoCxB,MAApC,EAA4C;AACxC,YAAIyB,aAAaN,oBAAoBnB,MAApB,EAA4B,YAA5B,CAAjB;;AAEA,YAAIyB,UAAJ,EAAgB;AACZnB,6BAAiBN,MAAjB,EAAyBP,KAAzB;AACA;AACH;;AAED,eAAOiC,gBAAgB1B,MAAhB,CAAP;AACH;;AAED,aAASmB,mBAAT,CAA6BnB,MAA7B,EAAqC2B,MAArC,EAA6C;AACzC,YAAIC,WAAW;AACX,oBAAQ;AADG,SAAf;AAGA,YAAIC,cAAc7B,OAAOQ,IAAP,CAAY,UAAUnB,kCAAV,GAA+CsC,MAA3D,CAAlB;AACA,YAAI,CAACE,WAAL,EAAkB;AACdA,0BAAcD,SAASD,MAAT,CAAd;AACH;;AAED,eAAOE,WAAP;AACH;;AAED,aAASH,eAAT,CAAyB1B,MAAzB,EAAiC;AAC7B8B,2BAAmB9B,MAAnB;;AAEA,YAAI+B,kBAAkBC,uBAAuBhC,MAAvB,CAAtB;;AAEAM,yBAAiBN,MAAjB,EAAyBN,UAAzB;;AAEA,YAAIuC,YAAYC,4BAA4BlC,MAA5B,EAAoC+B,eAApC,CAAhB;AACA,YAAII,kBAAkB,iBAAEC,IAAF,CAAOC,KAAP,mBAAgBJ,SAAhB,CAAtB;AACAE,wBAAgBG,IAAhB,CAAqB,YAAY;AAC7BhC,6BAAiBN,MAAjB,EAAyBP,KAAzB;AACH,SAFD;;AAIA,eAAO0C,eAAP;AACH;;AAED,aAASL,kBAAT,CAA4B9B,MAA5B,EAAoC;AAChCuC,6BAAqBhC,gBAAgBP,MAAhB,CAArB,EAA8C,MAA9C;AACH;;AAED,aAASwC,aAAT,GAAyB;AACrB,eAAO,4BAAkBC,UAAlB,EAAP;AACH;;AAED,aAAST,sBAAT,CAAgChC,MAAhC,EAAwC;AACpC,YAAI0C,WAAW,EAAf;AACAF,wBAAgBG,OAAhB,CAAwB,UAAUC,SAAV,EAAqBC,KAArB,EAA4B;AAChD,gBAAIC,mBAAmBF,UAAUE,gBAAjC;AACA,gBAAIC,mBAAmB/C,OAAOgD,EAAP,CAAUF,gBAAV,CAAvB;AACA,gBAAIC,gBAAJ,EAAsB;AAClBL,yBAASO,IAAT,CAAcJ,KAAd;AACH;AACJ,SAND;;AAQA,eAAOH,QAAP;AACH;;AAED,aAASR,2BAAT,CAAqClC,MAArC,EAA6C+B,eAA7C,EAA8D;AAC1D,YAAImB,eAAe,EAAnB;;AAEAnB,wBAAgBY,OAAhB,CAAwB,UAAUQ,cAAV,EAA0B;AAC9C,gBAAIC,oBAAoBZ,gBAAgBW,cAAhB,EAAgCC,iBAAxD;AACA,gBAAIC,WAAW,IAAI,iBAAEC,QAAN,EAAf;AACA,gBAAIC,mBAAmBC,uBAAuBxD,MAAvB,EAA+BqD,QAA/B,CAAvB;AACAD,8BAAkBG,gBAAlB;;AAEAL,yBAAaD,IAAb,CAAkBI,QAAlB;AACH,SAPD;;AASA,eAAOH,YAAP;AACH;;AAED,aAASM,sBAAT,CAAgCxD,MAAhC,EAAwCyD,iBAAxC,EAA2D;AACvD,YAAIC,UAAU;AACVC,sBAAU,oBAAY;AAClBF,kCAAkBG,OAAlB;AACH,aAHS;AAIVC,wBAAY,oBAAUC,OAAV,EAAmB;AAC3BxD,iCAAiBN,MAAjB,EAAyBR,OAAzB,EAAkCsE,OAAlC;AACAL,kCAAkBM,MAAlB;AACH,aAPS;AAQVC,kBAAMC,+BAA+BjE,MAA/B,CARI;AASVkE,gBAAIlE,OAAO,CAAP,CATM;AAUVmE,iBAAKnE;AAVK,SAAd;;AAaAZ,kBAAUgF,IAAV,CAAeV,OAAf,EAAwB,KAAxB,EAA+B;AAC3BW,0BAAc,OADa;AAE3BC,6BAAiB,OAFU;AAG3BC,6BAAiB,IAHU;AAI3BC,uBAAW;AAJgB,SAA/B;;AAOA,eAAOd,OAAP;AACH;;AAED,aAASO,8BAAT,CAAwCjE,MAAxC,EAAgD;AAC5C,eAAO,UAAUyE,GAAV,EAAe;AAClB,mBAAOzE,OAAOQ,IAAP,CAAY,UAAUnB,kCAAV,GAA+CoF,GAA3D,KAAmEzE,OAAOQ,IAAP,CAAYiE,GAAZ,CAA1E;AACH,SAFD;AAGH;;AAED,aAASnE,gBAAT,CAA0BN,MAA1B,EAAkC0E,KAAlC,EAAyCZ,OAAzC,EAAkD;AAC9C9D,eAAOQ,IAAP,CAAY,UAAUjB,qBAAtB,EAA6CmF,KAA7C;;AAEA,YAAIA,UAAU/E,WAAd,EAA2B;AACvB;AACH;;AAEDK,eAAOc,OAAP,CAAe,iBAAE6D,KAAF,CAAQ7E,yBAAR,CAAf;;AAEA,YAAI8E,gBAAgBrE,gBAAgBP,MAAhB,CAApB;;AAEA,YAAI6E,6BAA6B,EAAjC;AACAA,mCAA2BnF,UAA3B,IAAyC,MAAzC;AACAmF,mCAA2BrF,OAA3B,IAAsC,OAAtC;AACAqF,mCAA2BpF,KAA3B,IAAoC,SAApC;;AAEA,YAAIqF,mBAAmBD,2BAA2BH,KAA3B,CAAvB;;AAEA,YAAIA,UAAUhF,UAAd,EAA0B;AACtBqF,8BAAkB/E,MAAlB;AACH,SAFD,MAEO;AACHuC,iCAAqBqC,aAArB,EAAoCE,gBAApC,EAAsDhB,OAAtD;AACH;AAEJ;;AAED,aAASiB,iBAAT,CAA2B/E,MAA3B,EAAmC;AAC/BiB,mBAAW,YAAY;AACnB,gBAAI+D,kBAAkBC,cAAcjF,MAAd,MAA0BN,UAAhD;AACA,gBAAIsF,eAAJ,EAAqB;AACjBzC,qCAAqBvC,MAArB,EAA6B,MAA7B;AACH;AACJ,SALD,EAKG,GALH;AAMH;;AAED,aAASuC,oBAAT,CAA8BvC,MAA9B,EAAsCkF,IAAtC,EAA4CpB,OAA5C,EAAqD;AACjD,YAAIqB,oBAAoBC,iBAAiBpF,MAAjB,CAAxB;AACAqF,oCAA4BrF,MAA5B;AACA,YAAIsF,iCAAkCJ,SAAS,SAAV,IAAwB,CAACC,iBAA9D;AACA,YAAIG,8BAAJ,EAAoC;AAChC;AACH;;AAED,YAAIJ,SAAS,MAAb,EAAqB;AACjBK,oCAAwBvF,MAAxB,EAAgC,OAAhC;AACH,SAFD,MAEO;AACH,gBAAIwF,kBAAkBxF,OAAOQ,IAAP,CAAYlB,gCAAgC4F,IAA5C,KAAqD,IAA3E;AACA,gBAAIO,aAAa3B,UAAU4B,oBAAoB5B,OAApB,EAA6B0B,eAA7B,CAAV,GAA0D,EAA3E;AACAxF,mBAAOQ,IAAP,CAAYlB,gCAAgC4F,IAA5C,EAAkDO,UAAlD;AACH;AACJ;;AAED,aAASJ,2BAAT,CAAqCrF,MAArC,EAA6C;AACzCuF,gCAAwBvF,MAAxB,EAAgC,MAAhC;AACAuF,gCAAwBvF,MAAxB,EAAgC,SAAhC;AACH;;AAED,aAASuF,uBAAT,CAAiCvF,MAAjC,EAAyCkF,IAAzC,EAA+C;AAC3ClF,eAAO2F,UAAP,CAAkBrG,gCAAgC4F,IAAlD;AACH;;AAED,aAASE,gBAAT,CAA0BpF,MAA1B,EAAkC;AAC9B,eAAOA,OAAOgD,EAAP,CAAU,MAAM1D,6BAAN,GAAsC,OAAhD,CAAP;AACH;;AAED,aAASoG,mBAAT,CAA6BE,SAA7B,EAAwCC,cAAxC,EAAwD;AACpD,YAAIC,6BAA6BC,KAAKC,KAAL,CAAWH,cAAX,CAAjC;AACA,YAAII,wBAAwBH,2BAA2BI,MAA3B,CAAkC,CAACN,SAAD,CAAlC,CAA5B;AACA,YAAIO,oBAAoBJ,KAAKK,SAAL,CAAeH,qBAAf,CAAxB;AACA,eAAOE,iBAAP;AACH;;AAED,aAAS5F,eAAT,CAAyBP,MAAzB,EAAiC;AAC7B,YAAIqG,iBAAiBlF,oBAAoBnB,MAApB,EAA4B,cAA5B,CAArB;AACA,YAAIsG,eAAgBD,mBAAmBE,SAAvC;AACA,eAAOD,eAAetG,MAAf,GAAwB,sBAAE,MAAMqG,cAAR,CAA/B;AACH;;AAED,aAASpB,aAAT,CAAuBjF,MAAvB,EAA+B;AAC3B,eAAOA,OAAOQ,IAAP,CAAY,UAAUjB,qBAAtB,CAAP;AACH;;AAED;;;;AAIA,aAASiH,aAAT,CAAuBxG,MAAvB,EAA+B;AAC3BA,iBAAS,sBAAEA,MAAF,CAAT;AACAwB,mCAA2BxB,MAA3B;AACH;;AAED;;;;;;;AAOA,0BAAEyG,QAAF,EAAY1F,EAAZ,CAAe,QAAf,EAAyB,UAAU2F,CAAV,EAAa;AAClC,YAAIC,OAAOD,EAAEE,MAAb;AACA,YAAIC,QAAQ,sBAAEF,IAAF,CAAZ;;AAEA,YAAIG,YAAYC,iBAAiBF,KAAjB,CAAhB;AACA,YAAIC,cAAcnH,WAAlB,EAA+B;AAC3BqH,wCAA4BH,KAA5B,EAAmCH,CAAnC;AACAO,sCAA0BJ,KAA1B;AACH,SAHD,MAGO,IAAIC,cAAcpH,UAAlB,EAA8B;AACjCsH,wCAA4BH,KAA5B,EAAmCH,CAAnC;AACH,SAFM,MAEA,IAAII,cAActH,OAAlB,EAA2B;AAC9BkH,cAAEQ,cAAF;AACAC,+BAAmBN,KAAnB;AACH,SAHM,MAGA,IAAIC,cAAcrH,KAAlB,EAAyB;AAC5B,gBAAI2H,mBAAmB,iBAAEzC,KAAF,CAAQ,kBAAR,CAAvB;AACAkC,kBAAM/F,OAAN,CAAcsG,gBAAd;AACA,gBAAIC,sBAAsBD,iBAAiBE,kBAAjB,EAA1B;AACA,gBAAID,mBAAJ,EAAyB;AACrBX,kBAAEQ,cAAF,GADqB,CACD;AACvB;AACJ;AACJ,KArBD;;AAuBA,aAASF,2BAAT,CAAqCH,KAArC,EAA4CU,KAA5C,EAAmD;AAC/CA,cAAML,cAAN;AACAL,cAAMW,GAAN,CAAU1H,yBAAV,EAAqC,YAAY;AAC7C+G,kBAAM/F,OAAN,CAAc,QAAd;AACH,SAFD;AAGH;;AAED,aAASiG,gBAAT,CAA0BF,KAA1B,EAAiC;AAC7B,YAAIY,mBAAmBZ,MAAMa,IAAN,CAAW,MAAM7H,4BAAjB,CAAvB;AACA,YAAI8H,cAAcC,6BAA6BH,gBAA7B,CAAlB;AACA,YAAII,iBAAiBC,YAAYH,WAAZ,CAArB;AACA,eAAOE,cAAP;AACH;;AAED,aAASD,4BAAT,CAAsCG,OAAtC,EAA+C;AAC3C,YAAIC,SAAS,iBAAEC,GAAF,CAAMF,OAAN,EAAe,UAAUG,KAAV,EAAiB;AACzC,mBAAOjD,cAAc,sBAAEiD,KAAF,CAAd,CAAP;AACH,SAFY,CAAb;AAGA,eAAOF,MAAP;AACH;;AAED,aAASF,WAAT,CAAqBK,UAArB,EAAiC;AAC7B,YAAIC,uBAAuBD,WAAWE,OAAX,CAAmB7I,OAAnB,MAAgC,CAAC,CAA5D;AACA,YAAI8I,2BAA2BH,WAAWE,OAAX,CAAmB1I,WAAnB,MAAoC,CAAC,CAApE;AACA,YAAI4I,0BAA0BJ,WAAWE,OAAX,CAAmB3I,UAAnB,MAAmC,CAAC,CAAlE;;AAEA,YAAI0I,oBAAJ,EAA0B;AACtB,mBAAO5I,OAAP;AACH,SAFD,MAEO,IAAI8I,wBAAJ,EAA8B;AACjC,mBAAO3I,WAAP;AACH,SAFM,MAEA,IAAI4I,uBAAJ,EAA6B;AAChC,mBAAO7I,UAAP;AACH,SAFM,MAEA;AACH,mBAAOD,KAAP;AACH;AACJ;;AAED,aAASwH,yBAAT,CAAmCJ,KAAnC,EAA0C;AACtC,YAAI2B,uBAAuBC,yBAAyB5B,KAAzB,EAAgClH,WAAhC,CAA3B;AACA6I,6BAAqBE,IAArB,CAA0B,UAAU7F,KAAV,EAAiBqB,EAAjB,EAAqB;AAC3CtB,sBAAUe,QAAV,CAAmB,sBAAEO,EAAF,CAAnB;AACH,SAFD;AAGH;;AAED,aAASiD,kBAAT,CAA4BN,KAA5B,EAAmC;AAC/B,YAAI8B,qBAAqBF,yBAAyB5B,KAAzB,EAAgCrH,OAAhC,EAAyCoJ,KAAzC,EAAzB;AACAD,2BAAmBE,KAAnB;AACH;;AAED,aAASJ,wBAAT,CAAkC5B,KAAlC,EAAyCnC,KAAzC,EAAgD;AAC5C,YAAIoE,WAAW,WAAWvJ,qBAAX,GAAmC,GAAnC,GAAyCmF,KAAzC,GAAiD,GAAhE;AACA,eAAOmC,MAAMa,IAAN,CAAWoB,QAAX,CAAP;AACH;;AAGD,QAAIlG,YAAY;AACZmG,kBAAU,4BAAkBA,QADhB;AAEZpF,kBAAU6C;AAFE,KAAhB;;AAKA,yBAAM5G,oCAAN,EAA4C;AACxCoJ,kBAAU,kBAAUd,KAAV,EAAiB;AACvB,gBAAIA,MAAMvB,IAAV,EAAgB;AACZuB,sBAAMvB,IAAN,CAAWsC,YAAX,CAAwB,YAAxB,EAAsC,YAAtC;AACH;AACD,gBAAIjJ,SAAS,sBAAEkI,KAAF,CAAb;AACAhI,2BAAeF,MAAf;AACA,4BAAMkJ,IAAN,CAAWhB,KAAX,EANuB,CAMJ;AACtB,SARuC;AASxChD,cAAM,gBAAMA,IAAN,CAAWiE;AATuB,KAA5C;;AAYA,0BAAO,qBAAP,EAA8BvG,SAA9B;AACA,6BAAU,gBAAV,EAA4BA,SAA5B;sBACeA,S","file":"form-validation.js","sourcesContent":["'use strict';\n\nimport $ from './jquery';\nimport './form-notification';\nimport './form-validation/basic-validators';\nimport amdify from './internal/amdify';\nimport * as deprecate from './internal/deprecation';\nimport globalize from './internal/globalize';\nimport skate from './internal/skate';\nimport validatorRegister from './form-validation/validator-register';\n\n//Attributes\nvar ATTRIBUTE_VALIDATION_OPTION_PREFIX = 'aui-validation-';\nvar ATTRIBUTE_NOTIFICATION_PREFIX = 'data-aui-notification-';\n\nvar ATTRIBUTE_FIELD_STATE = 'aui-validation-state';\nvar INVALID = 'invalid';\nvar VALID = 'valid';\nvar VALIDATING = 'validating';\nvar UNVALIDATED = 'unvalidated';\n\nvar ATTRIBUTE_VALIDATION_FIELD_COMPONENT = 'data-aui-validation-field';\n\n//Classes\nvar CLASS_VALIDATION_INITIALISED = '_aui-form-validation-initialised';\n\n//Events\nvar EVENT_FIELD_STATE_CHANGED = '_aui-internal-field-state-changed';\n\nfunction isFieldInitialised($field) {\n return $field.hasClass(CLASS_VALIDATION_INITIALISED);\n}\n\nfunction initValidation($field) {\n if (!isFieldInitialised($field)) {\n initialiseDisplayField($field);\n prepareFieldMarkup($field);\n bindFieldEvents($field);\n changeFieldState($field, UNVALIDATED);\n }\n}\n\nfunction initialiseDisplayField($field) {\n getDisplayField($field).attr('data-aui-notification-field', '');\n}\n\nfunction prepareFieldMarkup($field){\n $field.addClass(CLASS_VALIDATION_INITIALISED);\n}\n\nfunction bindFieldEvents($field) {\n bindStopTypingEvent($field);\n bindValidationEvent($field);\n}\n\nfunction bindStopTypingEvent($field){\n var keyUpTimer;\n\n var triggerStopTypingEvent = function () {\n $field.trigger('aui-stop-typing');\n };\n\n $field.on('keyup', function () {\n clearTimeout(keyUpTimer);\n keyUpTimer = setTimeout(triggerStopTypingEvent, 1500);\n });\n}\n\nfunction bindValidationEvent($field) {\n var validateWhen = getValidationOption($field, 'when');\n var watchedFieldID = getValidationOption($field, 'watchfield');\n\n var elementsToWatch = watchedFieldID ? $field.add('#' + watchedFieldID) : $field;\n\n elementsToWatch.on(validateWhen, function startValidation () {\n validationTriggeredHandler($field);\n });\n}\n\nfunction validationTriggeredHandler($field) {\n var noValidate = getValidationOption($field, 'novalidate');\n\n if (noValidate) {\n changeFieldState($field, VALID);\n return;\n }\n\n return startValidating($field);\n}\n\nfunction getValidationOption($field, option) {\n var defaults = {\n 'when': 'change'\n };\n var optionValue = $field.attr('data-' + ATTRIBUTE_VALIDATION_OPTION_PREFIX + option);\n if (!optionValue) {\n optionValue = defaults[option];\n }\n\n return optionValue;\n}\n\nfunction startValidating($field) {\n clearFieldMessages($field);\n\n var validatorsToRun = getActivatedValidators($field);\n\n changeFieldState($field, VALIDATING);\n\n var deferreds = runValidatorsAndGetDeferred($field, validatorsToRun);\n var fieldValidators = $.when.apply($, deferreds);\n fieldValidators.done(function () {\n changeFieldState($field, VALID);\n });\n\n return fieldValidators;\n}\n\nfunction clearFieldMessages($field) {\n setFieldNotification(getDisplayField($field), 'none');\n}\n\nfunction getValidators() {\n return validatorRegister.validators();\n}\n\nfunction getActivatedValidators($field) {\n var callList = [];\n getValidators().forEach(function (validator, index) {\n var validatorTrigger = validator.validatorTrigger;\n var runThisValidator = $field.is(validatorTrigger);\n if (runThisValidator) {\n callList.push(index);\n }\n });\n\n return callList;\n}\n\nfunction runValidatorsAndGetDeferred($field, validatorsToRun) {\n var allDeferreds = [];\n\n validatorsToRun.forEach(function (validatorIndex) {\n var validatorFunction = getValidators()[validatorIndex].validatorFunction;\n var deferred = new $.Deferred();\n var validatorContext = createValidatorContext($field, deferred);\n validatorFunction(validatorContext);\n\n allDeferreds.push(deferred);\n });\n\n return allDeferreds;\n}\n\nfunction createValidatorContext($field, validatorDeferred) {\n var context = {\n validate: function () {\n validatorDeferred.resolve();\n },\n invalidate: function (message) {\n changeFieldState($field, INVALID, message);\n validatorDeferred.reject();\n },\n args: createArgumentAccessorFunction($field),\n el: $field[0],\n $el: $field\n };\n\n deprecate.prop(context, '$el', {\n sinceVersion: '5.9.0',\n removeInVersion: '8.0.0',\n alternativeName: 'el',\n extraInfo: 'See https://ecosystem.atlassian.net/browse/AUI-3263.'\n });\n\n return context;\n}\n\nfunction createArgumentAccessorFunction($field) {\n return function (arg) {\n return $field.attr('data-' + ATTRIBUTE_VALIDATION_OPTION_PREFIX + arg) || $field.attr(arg);\n };\n}\n\nfunction changeFieldState($field, state, message) {\n $field.attr('data-' + ATTRIBUTE_FIELD_STATE, state);\n\n if (state === UNVALIDATED) {\n return;\n }\n\n $field.trigger($.Event(EVENT_FIELD_STATE_CHANGED));\n\n var $displayField = getDisplayField($field);\n\n var stateToNotificationTypeMap = {};\n stateToNotificationTypeMap[VALIDATING] = 'wait';\n stateToNotificationTypeMap[INVALID] = 'error';\n stateToNotificationTypeMap[VALID] = 'success';\n\n var notificationType = stateToNotificationTypeMap[state];\n\n if (state === VALIDATING) {\n showSpinnerIfSlow($field);\n } else {\n setFieldNotification($displayField, notificationType, message);\n }\n\n}\n\nfunction showSpinnerIfSlow($field) {\n setTimeout(function () {\n var stillValidating = getFieldState($field) === VALIDATING;\n if (stillValidating) {\n setFieldNotification($field, 'wait');\n }\n }, 500);\n}\n\nfunction setFieldNotification($field, type, message) {\n var spinnerWasVisible = isSpinnerVisible($field);\n removeIconOnlyNotifications($field);\n var skipShowingSuccessNotification = (type === 'success') && !spinnerWasVisible;\n if (skipShowingSuccessNotification) {\n return;\n }\n\n if (type === 'none') {\n removeFieldNotification($field, 'error');\n } else {\n var previousMessage = $field.attr(ATTRIBUTE_NOTIFICATION_PREFIX + type) || '[]';\n var newMessage = message ? combineJSONMessages(message, previousMessage) : '';\n $field.attr(ATTRIBUTE_NOTIFICATION_PREFIX + type, newMessage);\n }\n}\n\nfunction removeIconOnlyNotifications($field) {\n removeFieldNotification($field, 'wait');\n removeFieldNotification($field, 'success');\n}\n\nfunction removeFieldNotification($field, type) {\n $field.removeAttr(ATTRIBUTE_NOTIFICATION_PREFIX + type);\n}\n\nfunction isSpinnerVisible($field) {\n return $field.is('[' + ATTRIBUTE_NOTIFICATION_PREFIX + 'wait]');\n}\n\nfunction combineJSONMessages(newString, previousString) {\n var previousStackedMessageList = JSON.parse(previousString);\n var newStackedMessageList = previousStackedMessageList.concat([newString]);\n var newStackedMessage = JSON.stringify(newStackedMessageList);\n return newStackedMessage;\n}\n\nfunction getDisplayField($field) {\n var displayFieldID = getValidationOption($field, 'displayfield');\n var notifyOnSelf = (displayFieldID === undefined);\n return notifyOnSelf ? $field : $('#' + displayFieldID);\n}\n\nfunction getFieldState($field) {\n return $field.attr('data-' + ATTRIBUTE_FIELD_STATE);\n}\n\n/**\n * Trigger validation on a field manually\n * @param $field the field that validation should be triggered for\n */\nfunction validateField($field) {\n $field = $($field);\n validationTriggeredHandler($field);\n}\n\n/**\n * Form scrolling and submission prevent based on validation state\n * -If the form is unvalidated, validate all fields\n * -If the form is invalid, go to the first invalid element\n * -If the form is validating, wait for them to validate and then try submitting again\n * -If the form is valid, allow form submission\n */\n$(document).on('submit', function (e) {\n var form = e.target;\n var $form = $(form);\n\n var formState = getFormStateName($form);\n if (formState === UNVALIDATED) {\n delaySubmitUntilStateChange($form, e);\n validateUnvalidatedFields($form);\n } else if (formState === VALIDATING) {\n delaySubmitUntilStateChange($form, e);\n } else if (formState === INVALID) {\n e.preventDefault();\n selectFirstInvalid($form);\n } else if (formState === VALID) {\n var validSubmitEvent = $.Event('aui-valid-submit');\n $form.trigger(validSubmitEvent);\n var preventNormalSubmit = validSubmitEvent.isDefaultPrevented();\n if (preventNormalSubmit) {\n e.preventDefault(); //users can bind to aui-valid-submit for ajax forms\n }\n }\n});\n\nfunction delaySubmitUntilStateChange($form, event) {\n event.preventDefault();\n $form.one(EVENT_FIELD_STATE_CHANGED, function () {\n $form.trigger('submit');\n });\n}\n\nfunction getFormStateName($form) {\n var $fieldCollection = $form.find('.' + CLASS_VALIDATION_INITIALISED);\n var fieldStates = getFieldCollectionStateNames($fieldCollection);\n var wholeFormState = mergeStates(fieldStates);\n return wholeFormState;\n}\n\nfunction getFieldCollectionStateNames($fields) {\n var states = $.map($fields, function (field) {\n return getFieldState($(field));\n });\n return states;\n}\n\nfunction mergeStates(stateNames) {\n var containsInvalidState = stateNames.indexOf(INVALID) !== -1;\n var containsUnvalidatedState = stateNames.indexOf(UNVALIDATED) !== -1;\n var containsValidatingState = stateNames.indexOf(VALIDATING) !== -1;\n\n if (containsInvalidState) {\n return INVALID;\n } else if (containsUnvalidatedState) {\n return UNVALIDATED;\n } else if (containsValidatingState) {\n return VALIDATING;\n } else {\n return VALID;\n }\n}\n\nfunction validateUnvalidatedFields($form) {\n var $unvalidatedElements = getFieldsInFormWithState($form, UNVALIDATED);\n $unvalidatedElements.each(function (index, el) {\n validator.validate($(el));\n });\n}\n\nfunction selectFirstInvalid($form) {\n var $firstInvalidField = getFieldsInFormWithState($form, INVALID).first();\n $firstInvalidField.focus();\n}\n\nfunction getFieldsInFormWithState($form, state) {\n var selector = '[data-' + ATTRIBUTE_FIELD_STATE + '=' + state + ']';\n return $form.find(selector);\n}\n\n\nvar validator = {\n register: validatorRegister.register,\n validate: validateField\n};\n\nskate(ATTRIBUTE_VALIDATION_FIELD_COMPONENT, {\n attached: function (field) {\n if (field.form) {\n field.form.setAttribute('novalidate', 'novalidate');\n }\n var $field = $(field);\n initValidation($field);\n skate.init(field); //needed to kick off form notification skate initialisation\n },\n type: skate.type.ATTRIBUTE\n});\n\namdify('aui/form-validation', validator);\nglobalize('formValidation', validator);\nexport default validator;\n"]}
|
|
1
|
+
{"version":3,"sources":["js/aui/form-validation.js"],"names":["deprecate","ATTRIBUTE_VALIDATION_OPTION_PREFIX","ATTRIBUTE_NOTIFICATION_PREFIX","ATTRIBUTE_FIELD_STATE","INVALID","VALID","VALIDATING","UNVALIDATED","ATTRIBUTE_VALIDATION_FIELD_COMPONENT","CLASS_VALIDATION_INITIALISED","EVENT_FIELD_STATE_CHANGED","isFieldInitialised","$field","hasClass","initValidation","initialiseDisplayField","prepareFieldMarkup","bindFieldEvents","changeFieldState","getDisplayField","attr","addClass","bindStopTypingEvent","bindValidationEvent","keyUpTimer","triggerStopTypingEvent","trigger","on","clearTimeout","setTimeout","validateWhen","getValidationOption","watchedFieldID","elementsToWatch","add","startValidation","validationTriggeredHandler","noValidate","startValidating","option","defaults","optionValue","clearFieldMessages","validatorsToRun","getActivatedValidators","deferreds","runValidatorsAndGetDeferred","fieldValidators","$","when","apply","done","setFieldNotification","getValidators","validatorRegister","validators","callList","forEach","validator","index","validatorTrigger","runThisValidator","is","push","allDeferreds","validatorIndex","validatorFunction","deferred","Deferred","validatorContext","createValidatorContext","validatorDeferred","context","validate","resolve","invalidate","message","reject","args","createArgumentAccessorFunction","el","$el","prop","sinceVersion","removeInVersion","alternativeName","extraInfo","arg","state","Event","$displayField","stateToNotificationTypeMap","notificationType","showSpinnerIfSlow","stillValidating","getFieldState","type","spinnerWasVisible","isSpinnerVisible","removeIconOnlyNotifications","skipShowingSuccessNotification","removeFieldNotification","previousMessage","newMessage","combineJSONMessages","removeAttr","newString","previousString","previousStackedMessageList","JSON","parse","newStackedMessageList","concat","newStackedMessage","stringify","displayFieldID","notifyOnSelf","undefined","validateField","document","e","form","target","$form","formState","getFormStateName","delaySubmitUntilStateChange","validateUnvalidatedFields","preventDefault","selectFirstInvalid","validSubmitEvent","preventNormalSubmit","isDefaultPrevented","event","one","$fieldCollection","find","fieldStates","getFieldCollectionStateNames","wholeFormState","mergeStates","$fields","states","map","field","stateNames","containsInvalidState","indexOf","containsUnvalidatedState","containsValidatingState","$unvalidatedElements","getFieldsInFormWithState","each","$firstInvalidField","first","focus","selector","register","attached","setAttribute","skate","init","ATTRIBUTE"],"mappings":"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","file":"form-validation.js","sourcesContent":["'use strict';\n\nimport $ from './jquery';\nimport './form-notification';\nimport './form-validation/basic-validators';\nimport amdify from './internal/amdify';\nimport * as deprecate from './internal/deprecation';\nimport globalize from './internal/globalize';\nimport skate from './internal/skate';\nimport validatorRegister from './form-validation/validator-register';\n\n//Attributes\nvar ATTRIBUTE_VALIDATION_OPTION_PREFIX = 'aui-validation-';\nvar ATTRIBUTE_NOTIFICATION_PREFIX = 'data-aui-notification-';\n\nvar ATTRIBUTE_FIELD_STATE = 'aui-validation-state';\nvar INVALID = 'invalid';\nvar VALID = 'valid';\nvar VALIDATING = 'validating';\nvar UNVALIDATED = 'unvalidated';\n\nvar ATTRIBUTE_VALIDATION_FIELD_COMPONENT = 'data-aui-validation-field';\n\n//Classes\nvar CLASS_VALIDATION_INITIALISED = '_aui-form-validation-initialised';\n\n//Events\nvar EVENT_FIELD_STATE_CHANGED = '_aui-internal-field-state-changed';\n\nfunction isFieldInitialised($field) {\n return $field.hasClass(CLASS_VALIDATION_INITIALISED);\n}\n\nfunction initValidation($field) {\n if (!isFieldInitialised($field)) {\n initialiseDisplayField($field);\n prepareFieldMarkup($field);\n bindFieldEvents($field);\n changeFieldState($field, UNVALIDATED);\n }\n}\n\nfunction initialiseDisplayField($field) {\n getDisplayField($field).attr('data-aui-notification-field', '');\n}\n\nfunction prepareFieldMarkup($field){\n $field.addClass(CLASS_VALIDATION_INITIALISED);\n}\n\nfunction bindFieldEvents($field) {\n bindStopTypingEvent($field);\n bindValidationEvent($field);\n}\n\nfunction bindStopTypingEvent($field){\n var keyUpTimer;\n\n var triggerStopTypingEvent = function () {\n $field.trigger('aui-stop-typing');\n };\n\n $field.on('keyup', function () {\n clearTimeout(keyUpTimer);\n keyUpTimer = setTimeout(triggerStopTypingEvent, 1500);\n });\n}\n\nfunction bindValidationEvent($field) {\n var validateWhen = getValidationOption($field, 'when');\n var watchedFieldID = getValidationOption($field, 'watchfield');\n\n var elementsToWatch = watchedFieldID ? $field.add('#' + watchedFieldID) : $field;\n\n elementsToWatch.on(validateWhen, function startValidation () {\n validationTriggeredHandler($field);\n });\n}\n\nfunction validationTriggeredHandler($field) {\n var noValidate = getValidationOption($field, 'novalidate');\n\n if (noValidate) {\n changeFieldState($field, VALID);\n return;\n }\n\n return startValidating($field);\n}\n\nfunction getValidationOption($field, option) {\n var defaults = {\n 'when': 'change'\n };\n var optionValue = $field.attr('data-' + ATTRIBUTE_VALIDATION_OPTION_PREFIX + option);\n if (!optionValue) {\n optionValue = defaults[option];\n }\n\n return optionValue;\n}\n\nfunction startValidating($field) {\n clearFieldMessages($field);\n\n var validatorsToRun = getActivatedValidators($field);\n\n changeFieldState($field, VALIDATING);\n\n var deferreds = runValidatorsAndGetDeferred($field, validatorsToRun);\n var fieldValidators = $.when.apply($, deferreds);\n fieldValidators.done(function () {\n changeFieldState($field, VALID);\n });\n\n return fieldValidators;\n}\n\nfunction clearFieldMessages($field) {\n setFieldNotification(getDisplayField($field), 'none');\n}\n\nfunction getValidators() {\n return validatorRegister.validators();\n}\n\nfunction getActivatedValidators($field) {\n var callList = [];\n getValidators().forEach(function (validator, index) {\n var validatorTrigger = validator.validatorTrigger;\n var runThisValidator = $field.is(validatorTrigger);\n if (runThisValidator) {\n callList.push(index);\n }\n });\n\n return callList;\n}\n\nfunction runValidatorsAndGetDeferred($field, validatorsToRun) {\n var allDeferreds = [];\n\n validatorsToRun.forEach(function (validatorIndex) {\n var validatorFunction = getValidators()[validatorIndex].validatorFunction;\n var deferred = new $.Deferred();\n var validatorContext = createValidatorContext($field, deferred);\n validatorFunction(validatorContext);\n\n allDeferreds.push(deferred);\n });\n\n return allDeferreds;\n}\n\nfunction createValidatorContext($field, validatorDeferred) {\n var context = {\n validate: function () {\n validatorDeferred.resolve();\n },\n invalidate: function (message) {\n changeFieldState($field, INVALID, message);\n validatorDeferred.reject();\n },\n args: createArgumentAccessorFunction($field),\n el: $field[0],\n $el: $field\n };\n\n deprecate.prop(context, '$el', {\n sinceVersion: '5.9.0',\n removeInVersion: '8.0.0',\n alternativeName: 'el',\n extraInfo: 'See https://ecosystem.atlassian.net/browse/AUI-3263.'\n });\n\n return context;\n}\n\nfunction createArgumentAccessorFunction($field) {\n return function (arg) {\n return $field.attr('data-' + ATTRIBUTE_VALIDATION_OPTION_PREFIX + arg) || $field.attr(arg);\n };\n}\n\nfunction changeFieldState($field, state, message) {\n $field.attr('data-' + ATTRIBUTE_FIELD_STATE, state);\n\n if (state === UNVALIDATED) {\n return;\n }\n\n $field.trigger($.Event(EVENT_FIELD_STATE_CHANGED));\n\n var $displayField = getDisplayField($field);\n\n var stateToNotificationTypeMap = {};\n stateToNotificationTypeMap[VALIDATING] = 'wait';\n stateToNotificationTypeMap[INVALID] = 'error';\n stateToNotificationTypeMap[VALID] = 'success';\n\n var notificationType = stateToNotificationTypeMap[state];\n\n if (state === VALIDATING) {\n showSpinnerIfSlow($field);\n } else {\n setFieldNotification($displayField, notificationType, message);\n }\n\n}\n\nfunction showSpinnerIfSlow($field) {\n setTimeout(function () {\n var stillValidating = getFieldState($field) === VALIDATING;\n if (stillValidating) {\n setFieldNotification($field, 'wait');\n }\n }, 500);\n}\n\nfunction setFieldNotification($field, type, message) {\n var spinnerWasVisible = isSpinnerVisible($field);\n removeIconOnlyNotifications($field);\n var skipShowingSuccessNotification = (type === 'success') && !spinnerWasVisible;\n if (skipShowingSuccessNotification) {\n return;\n }\n\n if (type === 'none') {\n removeFieldNotification($field, 'error');\n } else {\n var previousMessage = $field.attr(ATTRIBUTE_NOTIFICATION_PREFIX + type) || '[]';\n var newMessage = message ? combineJSONMessages(message, previousMessage) : '';\n $field.attr(ATTRIBUTE_NOTIFICATION_PREFIX + type, newMessage);\n }\n}\n\nfunction removeIconOnlyNotifications($field) {\n removeFieldNotification($field, 'wait');\n removeFieldNotification($field, 'success');\n}\n\nfunction removeFieldNotification($field, type) {\n $field.removeAttr(ATTRIBUTE_NOTIFICATION_PREFIX + type);\n}\n\nfunction isSpinnerVisible($field) {\n return $field.is('[' + ATTRIBUTE_NOTIFICATION_PREFIX + 'wait]');\n}\n\nfunction combineJSONMessages(newString, previousString) {\n var previousStackedMessageList = JSON.parse(previousString);\n var newStackedMessageList = previousStackedMessageList.concat([newString]);\n var newStackedMessage = JSON.stringify(newStackedMessageList);\n return newStackedMessage;\n}\n\nfunction getDisplayField($field) {\n var displayFieldID = getValidationOption($field, 'displayfield');\n var notifyOnSelf = (displayFieldID === undefined);\n return notifyOnSelf ? $field : $('#' + displayFieldID);\n}\n\nfunction getFieldState($field) {\n return $field.attr('data-' + ATTRIBUTE_FIELD_STATE);\n}\n\n/**\n * Trigger validation on a field manually\n * @param $field the field that validation should be triggered for\n */\nfunction validateField($field) {\n $field = $($field);\n validationTriggeredHandler($field);\n}\n\n/**\n * Form scrolling and submission prevent based on validation state\n * -If the form is unvalidated, validate all fields\n * -If the form is invalid, go to the first invalid element\n * -If the form is validating, wait for them to validate and then try submitting again\n * -If the form is valid, allow form submission\n */\n$(document).on('submit', function (e) {\n var form = e.target;\n var $form = $(form);\n\n var formState = getFormStateName($form);\n if (formState === UNVALIDATED) {\n delaySubmitUntilStateChange($form, e);\n validateUnvalidatedFields($form);\n } else if (formState === VALIDATING) {\n delaySubmitUntilStateChange($form, e);\n } else if (formState === INVALID) {\n e.preventDefault();\n selectFirstInvalid($form);\n } else if (formState === VALID) {\n var validSubmitEvent = $.Event('aui-valid-submit');\n $form.trigger(validSubmitEvent);\n var preventNormalSubmit = validSubmitEvent.isDefaultPrevented();\n if (preventNormalSubmit) {\n e.preventDefault(); //users can bind to aui-valid-submit for ajax forms\n }\n }\n});\n\nfunction delaySubmitUntilStateChange($form, event) {\n event.preventDefault();\n $form.one(EVENT_FIELD_STATE_CHANGED, function () {\n $form.trigger('submit');\n });\n}\n\nfunction getFormStateName($form) {\n var $fieldCollection = $form.find('.' + CLASS_VALIDATION_INITIALISED);\n var fieldStates = getFieldCollectionStateNames($fieldCollection);\n var wholeFormState = mergeStates(fieldStates);\n return wholeFormState;\n}\n\nfunction getFieldCollectionStateNames($fields) {\n var states = $.map($fields, function (field) {\n return getFieldState($(field));\n });\n return states;\n}\n\nfunction mergeStates(stateNames) {\n var containsInvalidState = stateNames.indexOf(INVALID) !== -1;\n var containsUnvalidatedState = stateNames.indexOf(UNVALIDATED) !== -1;\n var containsValidatingState = stateNames.indexOf(VALIDATING) !== -1;\n\n if (containsInvalidState) {\n return INVALID;\n } else if (containsUnvalidatedState) {\n return UNVALIDATED;\n } else if (containsValidatingState) {\n return VALIDATING;\n } else {\n return VALID;\n }\n}\n\nfunction validateUnvalidatedFields($form) {\n var $unvalidatedElements = getFieldsInFormWithState($form, UNVALIDATED);\n $unvalidatedElements.each(function (index, el) {\n validator.validate($(el));\n });\n}\n\nfunction selectFirstInvalid($form) {\n var $firstInvalidField = getFieldsInFormWithState($form, INVALID).first();\n $firstInvalidField.focus();\n}\n\nfunction getFieldsInFormWithState($form, state) {\n var selector = '[data-' + ATTRIBUTE_FIELD_STATE + '=' + state + ']';\n return $form.find(selector);\n}\n\n\nvar validator = {\n register: validatorRegister.register,\n validate: validateField\n};\n\nskate(ATTRIBUTE_VALIDATION_FIELD_COMPONENT, {\n attached: function (field) {\n if (field.form) {\n field.form.setAttribute('novalidate', 'novalidate');\n }\n var $field = $(field);\n initValidation($field);\n skate.init(field); //needed to kick off form notification skate initialisation\n },\n type: skate.type.ATTRIBUTE\n});\n\namdify('aui/form-validation', validator);\nglobalize('formValidation', validator);\nexport default validator;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["js/aui/header-async.js"],"names":["Header","type","CLASSNAME","created","element"],"mappings":";;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;AAKA,QAAMA,SAAS,qBAAM,YAAN,EAAoB;AAC/BC,
|
|
1
|
+
{"version":3,"sources":["js/aui/header-async.js"],"names":["Header","type","skate","CLASSNAME","created","element"],"mappings":";;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;AAKA,QAAMA,SAAS,qBAAM,YAAN,EAAoB;AAC/BC,cAAMC,gBAAMD,IAAN,CAAWE,SADc;AAE/BC,iBAAS,iBAAUC,OAAV,EAAmB;AACxB,wCAAaA,OAAb;AACH;AAJ8B,KAApB,CAAf;;sBAOeL,M","file":"header-async.js","sourcesContent":["'use strict';\n\nimport createHeader from './internal/header/create-header';\nimport skate from './internal/skate';\n\nconst Header = skate('aui-header', {\n type: skate.type.CLASSNAME,\n created: function (element) {\n createHeader(element);\n }\n});\n\nexport default Header;\n"]}
|
package/lib/js/aui/i18n.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["js/aui/i18n.js"],"names":["i18n","keys","getText","key","params","Array","prototype","slice","call","arguments","Object","hasOwnProperty","apply","concat"],"mappings":";;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;AAMA;;;;;AAKA,QAAIA,OAAO;AACPC,
|
|
1
|
+
{"version":3,"sources":["js/aui/i18n.js"],"names":["i18n","keys","getText","key","params","Array","prototype","slice","call","arguments","Object","hasOwnProperty","format","apply","concat"],"mappings":";;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;AAMA;;;;;AAKA,QAAIA,OAAO;AACPC,cAAMA,aADC;AAEPC,iBAAS,iBAAUC,GAAV,EAAe;AACpB,gBAAIC,SAASC,MAAMC,SAAN,CAAgBC,KAAhB,CAAsBC,IAAtB,CAA2BC,SAA3B,EAAsC,CAAtC,CAAb;;AAEA,gBAAIC,OAAOJ,SAAP,CAAiBK,cAAjB,CAAgCH,IAAhC,CAAqC,KAAKP,IAA1C,EAAgDE,GAAhD,CAAJ,EAA0D;AACtD,uBAAOS,iBAAOC,KAAP,CAAa,IAAb,EAAmB,CAAC,KAAKZ,IAAL,CAAUE,GAAV,CAAD,EAAiBW,MAAjB,CAAwBV,MAAxB,CAAnB,CAAP;AACH;;AAED,mBAAOD,GAAP;AACH;AAVM,KAAX;;AAaA,6BAAU,MAAV,EAAkBH,IAAlB;;sBAEeA,I","file":"i18n.js","sourcesContent":["'use strict';\n\nimport format from './format';\nimport globalize from './internal/globalize';\nimport keys from './internal/i18n/aui';\n\n/**\n * Returns the value defined in AJS.I18n.keys for the given key. If AJS.I18n.keys does not exist, or if the given key does not exist,\n * the key is returned - this could occur in plugin mode if the I18n transform is not performed;\n * or in flatpack mode if the i18n JS file is not loaded.\n */\nvar i18n = {\n keys: keys,\n getText: function (key) {\n var params = Array.prototype.slice.call(arguments, 1);\n\n if (Object.prototype.hasOwnProperty.call(this.keys, key)) {\n return format.apply(null, [this.keys[key]].concat(params));\n }\n\n return key;\n }\n};\n\nglobalize('I18n', i18n);\n\nexport default i18n;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["js/aui/inline-dialog.js"],"names":["deprecate","logger","InlineDialog","items","identifier","url","options","hasOwnProperty","onTopDeprecationLogger","onTop","gravity","undefined","String","Math","random","replace","length","escapedIdentifier","opts","extend","offsetX","offsetY","hash","hideDelayTimer","showTimer","beingShown","shouldShow","contentLoaded","mousePosition","targetPosition","popup","arrow","contents","find","displayShadow","addClass","autoWidth","width","on","mouseenter","clearTimeout","unbind","mouseleave","hidePopup","getHash","hide","id","show","showPopup","persistent","reset","drawPopup","positions","css","popupCss","removeClass","hasClass","arrowCss","viewportHeight","window","height","popupMaxHeight","round","children","calculatePositions","displayAboveDeprecationLogger","displayAbove","fadeIn","fadeTime","jQueryCache","prepend","outerWidth","outerHeight","is","setTimeout","addActiveClass","bindHideEvents","current","document","trigger","showDelay","delay","get","_datePickerPopup","preHideCallback","call","hideDelay","unbindHideEvents","fadeOut","hideCallback","cacheContent","contentLoading","initPopup","e","$trigger","upfrontCallback","each","closeOthers","target","x","offset","left","y","top","pageX","pageY","doShowPopup","initCallback","isFunction","data","status","xhr","html","responseHandler","added","appendPopup","container","append","$items","onHover","useLiveEvents","selector","log","noBind","shouldCloseOnTriggerClick","closeOnTriggerClick","bindHideOnExternalClick","bindHideOnEscPressed","unbindHideOnExternalClick","unbindHideOnEscPressed","hasBoundOnExternalClick","externalClickNamespace","bind","$target","closest","onKeydown","keyCode","ESCAPE","off","stopPropagation","refresh","getOptions","dimensionsOf","el","$el","getDimensions","arrowOffsetX","arrowOffsetY","isConstrainedScroll","toLowerCase","$scrollContainer","$scrollWindow","parent","scrollContainerOffset","scrollWindowOffset","triggerOffset","triggerBBox","getBBox","screenPadding","arrowMargin","scrollTop","scrollLeft","scrollContainer","dialog","calculateWestPositions","dimensions","win","triggerScrollOffset","halfTriggerHeight","floor","halfPopupHeight","halfArrowHeight","spaceOnLeft","spaceOnRight","enoughSpaceOnLeft","enoughSpaceOnRight","arrowScreenTop","arrowScreenBottom","min","middleOfTrigger","spaceAboveMiddleOfTrigger","max","spaceBelowMiddleOfTrigger","isOverflowingAbove","isOverflowingBelow","calculateNorthSouthPositions","viewportDimensions","targetDimensions","popupDimensions","arrowDimensions","bottomOfViewablePage","pageYOffset","documentElement","SCREEN_PADDING","diff","enoughRoomAbove","enoughRoomBelow","isRelativeToMouse","right","popupRightEdge","popupLeftEdge","algorithm","construct","alternativeName","getMessageLogger","extraInfo"],"mappings":"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","file":"inline-dialog.js","sourcesContent":["/* eslint quotmark:off, eqeqeq:off, strict:off, complexity:off */\n\n'use strict';\n\nimport $ from './jquery';\nimport { needsLayeringShim } from './internal/browser';\nimport * as deprecate from './internal/deprecation';\nimport * as logger from './internal/log';\nimport globalize from './internal/globalize';\nimport keyCode from './key-code';\nimport cssEscape from 'css.escape';\n\n/**\n * Creates a new inline dialog.\n *\n * @param items jQuery object - the items that trigger the display of this popup when the user mouses over.\n * @param identifier A unique identifier for this popup. This should be unique across all popups on the page and a valid CSS class.\n * @param url The URL to retrieve popup contents.\n * @param options Custom options to change default behaviour. See InlineDialog.opts for default values and valid options.\n */\nfunction InlineDialog (items, identifier, url, options) {\n options = options || [];\n\n if (options.hasOwnProperty('onTop')) {\n onTopDeprecationLogger();\n if (options.onTop && options.gravity === undefined) {\n options.gravity = 's';\n }\n }\n\n // attempt to generate a random identifier if it doesn't exist\n if (typeof identifier === 'undefined') {\n identifier = String(Math.random()).replace('.', '');\n\n // if the generated supplied identifier already exists when combined with the prefixes we'll be using, then bail\n if ($('#inline-dialog-' + identifier + ', #arrow-' + identifier + ', #inline-dialog-shim-' + identifier).length) {\n throw 'GENERATED_IDENTIFIER_NOT_UNIQUE';\n }\n }\n\n const escapedIdentifier = cssEscape(identifier);\n\n var opts = $.extend(false, InlineDialog.opts, options);\n if (opts.gravity === 'w') {\n // TODO Once support for gravity: 'e' is added, it should also\n // transpose the defaults for offsetX and offsetY.\n opts.offsetX = options.offsetX === undefined ? 10 : options.offsetX;\n opts.offsetY = options.offsetY === undefined ? 0 : options.offsetY;\n }\n\n var hash;\n var hideDelayTimer;\n var showTimer;\n var beingShown = false;\n var shouldShow = false;\n var contentLoaded = false;\n var mousePosition;\n var targetPosition;\n var popup = $('<div id=\"inline-dialog-' + identifier +\n '\" class=\"aui-inline-dialog\"><div class=\"aui-inline-dialog-contents contents\"></div><div id=\"arrow-' +\n identifier + '\" class=\"aui-inline-dialog-arrow arrow aui-css-arrow\"></div></div>');\n\n var arrow = $('#arrow-' + escapedIdentifier, popup);\n var contents = popup.find('.contents');\n\n if (!opts.displayShadow) {\n contents.addClass('aui-inline-dialog-no-shadow');\n }\n\n if (opts.autoWidth) {\n contents.addClass('aui-inline-dialog-auto-width');\n } else {\n contents.width(opts.width);\n }\n\n contents.on({\n mouseenter: function () {\n clearTimeout(hideDelayTimer);\n popup.unbind('mouseenter');\n },\n mouseleave: function () {\n hidePopup();\n }\n });\n\n var getHash = function () {\n if (!hash) {\n hash = {\n popup: popup,\n hide: function () {\n hidePopup(0);\n },\n id: identifier,\n show: function () {\n showPopup();\n },\n persistent: opts.persistent ? true : false,\n reset: function () {\n\n function drawPopup (popup, positions) {\n //Position the popup using the left and right parameters\n popup.css(positions.popupCss);\n\n arrow.removeClass('aui-bottom-arrow aui-left-arrow aui-right-arrow');\n if (positions.gravity === 's' && !arrow.hasClass('aui-bottom-arrow')) {\n arrow.addClass('aui-bottom-arrow');\n } else if (positions.gravity === 'w') {\n arrow.addClass('aui-left-arrow');\n } else if (positions.gravity === 'e') {\n arrow.addClass('aui-right-arrow');\n }\n // Default styles are for 'n' gravity.\n\n arrow.css(positions.arrowCss);\n }\n\n //DRAW POPUP\n var viewportHeight = $(window).height();\n var popupMaxHeight = Math.round(viewportHeight * 0.75);\n popup.children('.aui-inline-dialog-contents')\n .css('max-height', popupMaxHeight);\n\n var positions = opts.calculatePositions(popup, targetPosition, mousePosition, opts);\n if (positions.hasOwnProperty('displayAbove')) {\n displayAboveDeprecationLogger();\n positions.gravity = positions.displayAbove ? 's' : 'n';\n }\n\n drawPopup(popup, positions);\n\n // reset position of popup box\n popup.fadeIn(opts.fadeTime, function () {\n // once the animation is complete, set the tracker variables\n // beingShown = false; // is this necessary? Maybe only the shouldShow will have to be reset?\n });\n\n if (needsLayeringShim()) {\n // iframeShim, prepend if it doesnt exist\n var jQueryCache = $('#inline-dialog-shim-' + escapedIdentifier);\n if (!jQueryCache.length) {\n $(popup).prepend($('<iframe class = \"inline-dialog-shim\" id=\"inline-dialog-shim-' + identifier + '\" frameBorder=\"0\" src=\"javascript:false;\"></iframe>'));\n }\n // adjust height and width of shim according to the popup\n jQueryCache.css({\n width: contents.outerWidth(),\n height: contents.outerHeight()\n });\n }\n }\n };\n }\n return hash;\n };\n\n var showPopup = function () {\n if (popup.is(':visible')) {\n return;\n }\n showTimer = setTimeout(function () {\n if (!contentLoaded || !shouldShow) {\n return;\n }\n opts.addActiveClass && $(items).addClass('active');\n beingShown = true;\n if (!opts.persistent) {\n bindHideEvents();\n }\n InlineDialog.current = getHash();\n $(document).trigger('showLayer', ['inlineDialog', getHash()]);\n // retrieve the position of the click target. The offsets might be different for different types of targets and therefore\n // either have to be customisable or we will have to be smarter about calculating the padding and elements around it\n\n getHash().reset();\n\n }, opts.showDelay);\n };\n\n var hidePopup = function (delay) {\n // do not auto hide the popup if persistent is set as true\n if (typeof delay === 'undefined' && opts.persistent) {\n return;\n }\n if (typeof popup.get(0)._datePickerPopup !== 'undefined') {\n // AUI-2696 - This inline dialog is host to a date picker... so we shouldn't close it.\n return;\n }\n\n shouldShow = false;\n // only exectute the below if the popup is currently being shown\n // and the arbitrator callback gives us the green light\n if (beingShown && opts.preHideCallback.call(popup[0].popup)) {\n delay = (delay == null) ? opts.hideDelay : delay;\n clearTimeout(hideDelayTimer);\n clearTimeout(showTimer);\n // store the timer so that it can be cleared in the mouseenter if required\n //disable auto-hide if user passes null for hideDelay\n if (delay != null) {\n hideDelayTimer = setTimeout(function () {\n unbindHideEvents();\n opts.addActiveClass && $(items).removeClass('active');\n popup.fadeOut(opts.fadeTime, function () {\n opts.hideCallback.call(popup[0].popup);\n });\n beingShown = false;\n shouldShow = false;\n $(document).trigger('hideLayer', ['inlineDialog', getHash()]);\n InlineDialog.current = null;\n if (!opts.cacheContent) {\n //if not caching the content, then reset the\n //flags to false so as to reload the content\n //on next mouse hover.\n contentLoaded = false;\n contentLoading = false;\n }\n\n }, delay);\n }\n\n }\n };\n\n // the trigger is the jquery element that is triggering the popup (i.e., the element that the mousemove event is bound to)\n var initPopup = function (e, trigger) {\n var $trigger = $(trigger);\n\n opts.upfrontCallback.call({\n popup: popup,\n hide: function () {\n hidePopup(0);\n },\n id: identifier,\n show: function () {\n showPopup();\n }\n });\n\n popup.each(function () {\n if (typeof this.popup !== 'undefined') {\n this.popup.hide();\n }\n });\n\n //Close all other popups if neccessary\n if (opts.closeOthers) {\n $('.aui-inline-dialog').each(function () {\n !this.popup.persistent && this.popup.hide();\n });\n }\n\n //handle programmatic showing where there is no event\n targetPosition = {target: $trigger};\n if (!e) {\n mousePosition = {x: $trigger.offset().left, y: $trigger.offset().top};\n } else {\n mousePosition = {x: e.pageX, y: e.pageY};\n }\n\n\n\n if (!beingShown) {\n clearTimeout(showTimer);\n }\n shouldShow = true;\n var doShowPopup = function () {\n contentLoading = false;\n contentLoaded = true;\n opts.initCallback.call({\n popup: popup,\n hide: function () {\n hidePopup(0);\n },\n id: identifier,\n show: function () {\n showPopup();\n }\n });\n showPopup();\n };\n // lazy load popup contents\n if (!contentLoading) {\n contentLoading = true;\n if ($.isFunction(url)) {\n // If the passed in URL is a function, execute it. Otherwise simply load the content.\n url(contents, trigger, doShowPopup);\n } else {\n //Retrive response from server\n $.get(url, function (data, status, xhr) {\n //Load HTML contents into the popup\n contents.html(opts.responseHandler(data, status, xhr));\n //Show the popup\n contentLoaded = true;\n opts.initCallback.call({\n popup: popup,\n hide: function () {\n hidePopup(0);\n },\n id: identifier,\n show: function () {\n showPopup();\n }\n });\n showPopup();\n });\n }\n }\n // stops the hide event if we move from the trigger to the popup element\n clearTimeout(hideDelayTimer);\n // don't trigger the animation again if we're being shown\n if (!beingShown) {\n showPopup();\n }\n return false;\n };\n\n popup[0].popup = getHash();\n\n var contentLoading = false;\n var added = false;\n var appendPopup = function () {\n if (!added) {\n $(opts.container).append(popup);\n added = true;\n }\n };\n var $items = $(items);\n\n if (opts.onHover) {\n if (opts.useLiveEvents) {\n // We're using .on() to emulate the behaviour of .live() here. on() requires the jQuery object to have\n // a selector - this is actually how .live() is implemented in jQuery 1.7+.\n // Note that .selector is deleted in jQuery 1.9+.\n // This means that jQuery objects created by selection eg $(\".my-class-selector\") will work, but\n // object created by DOM parsing eg $(\"<div class='.my-class'></div>\") will not work.\n // Ideally we should throw an error if the $items has no selector but that is backwards incompatible,\n // so we warn and do a no-op - this emulates the behaviour of live() but has the added warning.\n if ($items.selector) {\n $(document).on('mouseenter', $items.selector, function (e) {\n appendPopup();\n initPopup(e, this);\n }).on('mouseleave', $items.selector, function () {\n hidePopup();\n });\n } else {\n logger.log('Warning: inline dialog trigger elements must have a jQuery selector when the useLiveEvents option is enabled.');\n }\n } else {\n $items.on({\n mouseenter: function (e) {\n appendPopup();\n initPopup(e,this);\n },\n mouseleave: function () {\n hidePopup();\n }\n });\n }\n } else {\n if (!opts.noBind) { //Check if the noBind option is turned on\n if (opts.useLiveEvents) {\n // See above for why we filter by .selector\n if ($items.selector) {\n $(document).on('click', $items.selector, function (e) {\n appendPopup();\n if (shouldCloseOnTriggerClick()) {\n popup.hide();\n } else {\n initPopup(e,this);\n }\n return false;\n }).on('mouseleave', $items.selector, function () {\n hidePopup();\n });\n } else {\n logger.log('Warning: inline dialog trigger elements must have a jQuery selector when the useLiveEvents option is enabled.');\n }\n } else {\n $items.on('click', function (e) {\n appendPopup();\n if (shouldCloseOnTriggerClick()) {\n popup.hide();\n } else {\n initPopup(e,this);\n }\n return false;\n }).on('mouseleave', function () {\n hidePopup();\n });\n }\n }\n }\n\n var shouldCloseOnTriggerClick = function () {\n return beingShown && opts.closeOnTriggerClick;\n };\n\n var bindHideEvents = function () {\n bindHideOnExternalClick();\n bindHideOnEscPressed();\n };\n\n var unbindHideEvents = function () {\n unbindHideOnExternalClick();\n unbindHideOnEscPressed();\n };\n\n // Be defensive and make sure that we haven't already bound the event\n var hasBoundOnExternalClick = false;\n var externalClickNamespace = identifier + '.inline-dialog-check';\n\n /**\n * Catch click events on the body to see if the click target occurs outside of this popup\n * If it does, the popup will be hidden\n */\n var bindHideOnExternalClick = function () {\n if (!hasBoundOnExternalClick) {\n $('body').bind('click.' + externalClickNamespace, function (e) {\n var $target = $(e.target);\n // hide the popup if the target of the event is not in the dialog\n if ($target.closest('#inline-dialog-' + escapedIdentifier + ' .contents').length === 0) {\n hidePopup(0);\n }\n });\n hasBoundOnExternalClick = true;\n }\n };\n\n var unbindHideOnExternalClick = function () {\n if (hasBoundOnExternalClick) {\n $('body').unbind('click.' + externalClickNamespace);\n }\n hasBoundOnExternalClick = false;\n };\n\n var onKeydown = function (e) {\n if (e.keyCode === keyCode.ESCAPE) {\n hidePopup(0);\n }\n };\n\n var bindHideOnEscPressed = function () {\n $(document).on('keydown', onKeydown);\n };\n\n var unbindHideOnEscPressed = function () {\n $(document).off('keydown', onKeydown);\n };\n\n /**\n * Show the inline dialog.\n * @method show\n */\n popup.show = function (e, trigger) {\n if (e) {\n e.stopPropagation();\n }\n appendPopup();\n if (opts.noBind && !(items && items.length)) {\n initPopup(e, trigger === undefined ? e.target : trigger);\n } else {\n initPopup(e, items);\n }\n };\n /**\n * Hide the inline dialog.\n * @method hide\n */\n popup.hide = function () {\n hidePopup(0);\n };\n /**\n * Repositions the inline dialog if being shown.\n * @method refresh\n */\n popup.refresh = function () {\n if (beingShown) {\n getHash().reset();\n }\n };\n\n popup.getOptions = function () {\n return opts;\n };\n\n return popup;\n}\n\nfunction dimensionsOf(el) {\n var $el = $(el);\n var offset = $.extend({left: 0, top: 0}, $el.offset());\n return {\n left: offset.left,\n top: offset.top,\n width: $el.outerWidth(),\n height: $el.outerHeight()\n };\n}\n\nfunction getDimensions(popup, targetPosition, mousePosition, opts) {\n var offsetX = $.isFunction(opts.offsetX) ? opts.offsetX(popup, targetPosition, mousePosition, opts) : opts.offsetX;\n var offsetY = $.isFunction(opts.offsetY) ? opts.offsetY(popup, targetPosition, mousePosition, opts) : opts.offsetY;\n var arrowOffsetX = $.isFunction(opts.arrowOffsetX) ? opts.arrowOffsetX(popup, targetPosition, mousePosition, opts) : opts.arrowOffsetX;\n var arrowOffsetY = $.isFunction(opts.arrowOffsetY) ? opts.arrowOffsetY(popup, targetPosition, mousePosition, opts) : opts.arrowOffsetY;\n\n // Support positioning inside a scroll container other than <body>\n var isConstrainedScroll = opts.container.toLowerCase() !== 'body';\n var $scrollContainer = $(opts.container);\n var $scrollWindow = isConstrainedScroll ?\n $(opts.container).parent() :\n $(window);\n var scrollContainerOffset = isConstrainedScroll ?\n $scrollContainer.offset() : {left: 0, top: 0};\n var scrollWindowOffset = isConstrainedScroll ?\n $scrollWindow.offset() : {left: 0, top: 0};\n\n var trigger = targetPosition.target;\n var triggerOffset = trigger.offset();\n // Support SVG elements as triggers\n // TODO Should calculateNorthSouthPositions also try getBBox()?\n var triggerBBox = trigger[0].getBBox && trigger[0].getBBox();\n\n return {\n // determines how close to the edge the dialog needs to be before it is considered offscreen\n screenPadding: 10,\n // Min distance arrow needs to be from the edge of the dialog\n arrowMargin: 5,\n window: {\n top: scrollWindowOffset.top,\n left: scrollWindowOffset.left,\n scrollTop: $scrollWindow.scrollTop(),\n scrollLeft: $scrollWindow.scrollLeft(),\n width: $scrollWindow.width(),\n height: $scrollWindow.height()\n },\n scrollContainer: {\n width: $scrollContainer.width(),\n height: $scrollContainer.height()\n },\n // Position of the trigger is relative to the scroll container\n trigger: {\n top: triggerOffset.top - scrollContainerOffset.top,\n left: triggerOffset.left - scrollContainerOffset.left,\n width: triggerBBox ? triggerBBox.width : trigger.outerWidth(),\n height: triggerBBox ? triggerBBox.height : trigger.outerHeight()\n },\n dialog: {\n width: popup.width(),\n height: popup.height(),\n offset: {\n top: offsetY,\n left: offsetX\n }\n },\n arrow: {\n height: popup.find('.arrow').outerHeight(),\n offset: {\n top: arrowOffsetY,\n left: arrowOffsetX\n }\n }\n };\n}\n\nfunction calculateWestPositions(popup, targetPosition, mousePosition, opts) {\n var dimensions = getDimensions(popup, targetPosition, mousePosition, opts);\n var screenPadding = dimensions.screenPadding;\n var win = dimensions.window;\n var trigger = dimensions.trigger;\n var dialog = dimensions.dialog;\n var arrow = dimensions.arrow;\n var scrollContainer = dimensions.scrollContainer;\n\n var triggerScrollOffset = {\n top: trigger.top - win.scrollTop,\n left: trigger.left - win.scrollLeft\n };\n\n // Halves - because the browser doesn't do sub-pixel positioning, we need to consistently floor\n // all decimal values or you can get 1px jumps in arrow positioning when the dialog's height changes.\n var halfTriggerHeight = Math.floor(trigger.height / 2);\n var halfPopupHeight = Math.floor(dialog.height / 2);\n var halfArrowHeight = Math.floor(arrow.height / 2);\n\n // Figure out where to position the dialog, preferring the right (gravity: 'w').\n var spaceOnLeft = triggerScrollOffset.left - dialog.offset.left - screenPadding;\n\n // This implementation may not be suitable for horizontally scrolling containers\n var spaceOnRight = scrollContainer.width - triggerScrollOffset.left - trigger.width - dialog.offset.left - screenPadding;\n\n var enoughSpaceOnLeft = spaceOnLeft >= dialog.width;\n var enoughSpaceOnRight = spaceOnRight >= dialog.width;\n var gravity = !enoughSpaceOnRight && enoughSpaceOnLeft ? 'e' : 'w';\n\n // Screen padding needs to be adjusted if the arrow would extend into it\n var arrowScreenTop = triggerScrollOffset.top + halfTriggerHeight - halfArrowHeight;\n var arrowScreenBottom = win.height - arrowScreenTop - arrow.height;\n screenPadding = Math.min(screenPadding, arrowScreenTop - dimensions.arrowMargin);\n screenPadding = Math.min(screenPadding, arrowScreenBottom - dimensions.arrowMargin);\n\n // Figure out if the dialog needs to be adjusted up or down to fit on the screen\n var middleOfTrigger = triggerScrollOffset.top + halfTriggerHeight;\n var spaceAboveMiddleOfTrigger = Math.max(middleOfTrigger - screenPadding, 0);\n var spaceBelowMiddleOfTrigger = Math.max(win.height - middleOfTrigger - screenPadding, 0);\n\n var isOverflowingAbove = halfPopupHeight - dialog.offset.top > spaceAboveMiddleOfTrigger;\n var isOverflowingBelow = halfPopupHeight + dialog.offset.top > spaceBelowMiddleOfTrigger;\n\n var popupCss;\n var arrowCss;\n if (isOverflowingAbove) {\n popupCss = {\n top: win.scrollTop + screenPadding,\n left: gravity === 'w' ?\n trigger.left + trigger.width + dialog.offset.left :\n trigger.left - dialog.width - dialog.offset.left\n };\n arrowCss = {\n top: (trigger.top + halfTriggerHeight) - (popupCss.top + halfArrowHeight)\n };\n } else if (isOverflowingBelow) {\n popupCss = {\n top: win.scrollTop + win.height - dialog.height - screenPadding,\n left: gravity === 'w' ?\n trigger.left + trigger.width + dialog.offset.left :\n trigger.left - dialog.width - dialog.offset.left\n };\n arrowCss = {\n top: (trigger.top + halfTriggerHeight) - (popupCss.top + halfArrowHeight)\n };\n } else {\n popupCss = {\n top: trigger.top + halfTriggerHeight - halfPopupHeight + dialog.offset.top,\n left: gravity === 'w' ?\n trigger.left + trigger.width + dialog.offset.left :\n trigger.left - dialog.width - dialog.offset.left\n };\n arrowCss = {\n top: halfPopupHeight - halfArrowHeight + arrow.offset.top\n };\n }\n\n return {\n gravity: gravity,\n popupCss: popupCss,\n arrowCss: arrowCss\n };\n}\n\nfunction calculateNorthSouthPositions(popup, targetPosition, mousePosition, opts) {\n var offsetX = $.isFunction(opts.offsetX) ? opts.offsetX(popup, targetPosition, mousePosition, opts) : opts.offsetX;\n var offsetY = $.isFunction(opts.offsetY) ? opts.offsetY(popup, targetPosition, mousePosition, opts) : opts.offsetY;\n var arrowOffsetX = $.isFunction(opts.arrowOffsetX) ? opts.arrowOffsetX(popup, targetPosition, mousePosition, opts) : opts.arrowOffsetX;\n\n var viewportDimensions = dimensionsOf(window);\n var targetDimensions = dimensionsOf(targetPosition.target);\n var popupDimensions = dimensionsOf(popup);\n var arrowDimensions = dimensionsOf(popup.find('.aui-inline-dialog-arrow'));\n\n var middleOfTrigger = targetDimensions.left + targetDimensions.width / 2; //The absolute x position of the middle of the Trigger\n var bottomOfViewablePage = (window.pageYOffset || document.documentElement.scrollTop) + viewportDimensions.height;\n var SCREEN_PADDING = 10; //determines how close to the edge the dialog needs to be before it is considered offscreen\n\n // Set popup's position (within the viewport)\n popupDimensions.top = targetDimensions.top + targetDimensions.height + ~~offsetY;\n popupDimensions.left = targetDimensions.left + ~~offsetX;\n\n // Calculate if the popup would render off the side of the viewport\n var diff = viewportDimensions.width - (popupDimensions.left + popupDimensions.width + SCREEN_PADDING);\n\n // Set arrow's position (within the popup)\n arrowDimensions.left = middleOfTrigger - popupDimensions.left + ~~arrowOffsetX;\n // TODO arrowDimensions.top should also use arrowOffsetY.\n arrowDimensions.top = -(arrowDimensions.height / 2);\n\n // Check whether the popup should display above or below the trigger\n var enoughRoomAbove = targetDimensions.top > popupDimensions.height;\n var enoughRoomBelow = (popupDimensions.top + popupDimensions.height) < bottomOfViewablePage;\n var displayAbove = (!enoughRoomBelow && enoughRoomAbove) || (enoughRoomAbove && opts.gravity === 's');\n\n if (displayAbove) {\n popupDimensions.top = targetDimensions.top - popupDimensions.height - (arrowDimensions.height / 2);\n arrowDimensions.top = popupDimensions.height;\n }\n\n // Check if the popup should show up relative to the mouse\n if (opts.isRelativeToMouse){\n if (diff < 0){\n popupDimensions.right = SCREEN_PADDING;\n popupDimensions.left = 'auto';\n // TODO Why doesn't arrowDimentions.left here use arrowOffsetX?\n arrowDimensions.left = mousePosition.x - (viewportDimensions.width - popupDimensions.width);\n } else {\n popupDimensions.left = mousePosition.x - 20;\n // TODO Why doesn't arrowDimentions.left here use arrowOffsetX?\n arrowDimensions.left = mousePosition.x - popupDimensions.left;\n }\n } else {\n if (diff < 0){\n popupDimensions.right = SCREEN_PADDING;\n popupDimensions.left = 'auto';\n\n var popupRightEdge = viewportDimensions.width - popupDimensions.right;\n var popupLeftEdge = popupRightEdge - popupDimensions.width;\n\n //arrow's position must be relative to the popup's position and not of the screen.\n arrowDimensions.right = 'auto';\n // TODO Why doesn't arrowDimentions.left here use arrowOffsetX?\n arrowDimensions.left = middleOfTrigger - popupLeftEdge - arrowDimensions.width / 2;\n } else if (popupDimensions.width <= targetDimensions.width / 2){\n // TODO Why doesn't arrowDimentions.left here use arrowOffsetX?\n arrowDimensions.left = popupDimensions.width / 2;\n popupDimensions.left = middleOfTrigger - popupDimensions.width / 2;\n }\n }\n return {\n gravity: displayAbove ? 's' : 'n',\n displayAbove: displayAbove, // Replaced with gravity but remains for backward compatibility.\n popupCss: {\n left: popupDimensions.left,\n top: popupDimensions.top,\n right: popupDimensions.right\n },\n arrowCss: {\n left: arrowDimensions.left,\n top: arrowDimensions.top,\n right: arrowDimensions.right\n }\n };\n}\n\n\nInlineDialog.opts = {\n onTop: false,\n responseHandler: function (data) {\n //assume data is html\n return data;\n },\n closeOthers: true,\n isRelativeToMouse: false,\n addActiveClass: true, // if false, signifies that the triggers should not have the \"active\" class applied\n onHover: false,\n useLiveEvents: false,\n noBind: false,\n fadeTime: 100,\n persistent: false,\n hideDelay: 10000,\n showDelay: 0,\n width: 300,\n offsetX: 0,\n offsetY: 10,\n arrowOffsetX: 0,\n arrowOffsetY: 0,\n container: 'body',\n cacheContent: true,\n displayShadow: true,\n autoWidth: false,\n gravity: 'n',\n closeOnTriggerClick: false,\n preHideCallback: function () {\n return true;\n },\n hideCallback: function () {}, // if defined, this method will be exected after the popup has been faded out.\n initCallback: function () {}, // A function called after the popup contents are loaded. `this` will be the popup jQuery object, and the first argument is the popup identifier.\n upfrontCallback: function () {}, // A function called before the popup contents are loaded. `this` will be the popup jQuery object, and the first argument is the popup identifier.\n /**\n * Returns an object with the following attributes:\n * popupCss css attributes to apply on the popup element\n * arrowCss css attributes to apply on the arrow element\n *\n * @param popup\n * @param targetPosition position of the target element\n * @param mousePosition current mouse position\n * @param opts options\n */\n calculatePositions: function (popup, targetPosition, mousePosition, opts) {\n opts = opts || {};\n var algorithm = opts.gravity === 'w' ? calculateWestPositions : calculateNorthSouthPositions;\n return algorithm(popup, targetPosition, mousePosition, opts)\n }\n};\n\n\n// Deprecations\n// ------------\n\nInlineDialog = deprecate.construct(InlineDialog, 'Inline dialog constructor', {\n alternativeName: 'inline dialog 2'\n});\n\nvar displayAboveDeprecationLogger = deprecate.getMessageLogger('displayAbove', '[remove version]', {\n alternativeName: 'gravity',\n extraInfo: 'See https://ecosystem.atlassian.net/browse/AUI-2197.'\n});\n\nvar onTopDeprecationLogger = deprecate.getMessageLogger('onTop', '[remove version]', {\n alternativeName: 'gravity',\n extraInfo: 'See https://ecosystem.atlassian.net/browse/AUI-2197.'\n});\n\n\n// Exporting\n// ---------\n\nglobalize('InlineDialog', InlineDialog);\n\nexport default InlineDialog;\n"]}
|
|
1
|
+
{"version":3,"sources":["js/aui/inline-dialog.js"],"names":["deprecate","logger","InlineDialog","items","identifier","url","options","hasOwnProperty","onTopDeprecationLogger","onTop","gravity","undefined","String","Math","random","replace","length","escapedIdentifier","opts","$","extend","offsetX","offsetY","hash","hideDelayTimer","showTimer","beingShown","shouldShow","contentLoaded","mousePosition","targetPosition","popup","arrow","contents","find","displayShadow","addClass","autoWidth","width","on","mouseenter","clearTimeout","unbind","mouseleave","hidePopup","getHash","hide","id","show","showPopup","persistent","reset","drawPopup","positions","css","popupCss","removeClass","hasClass","arrowCss","viewportHeight","window","height","popupMaxHeight","round","children","calculatePositions","displayAboveDeprecationLogger","displayAbove","fadeIn","fadeTime","jQueryCache","prepend","outerWidth","outerHeight","is","setTimeout","addActiveClass","bindHideEvents","current","document","trigger","showDelay","delay","get","_datePickerPopup","preHideCallback","call","hideDelay","unbindHideEvents","fadeOut","hideCallback","cacheContent","contentLoading","initPopup","e","$trigger","upfrontCallback","each","closeOthers","target","x","offset","left","y","top","pageX","pageY","doShowPopup","initCallback","isFunction","data","status","xhr","html","responseHandler","added","appendPopup","container","append","$items","onHover","useLiveEvents","selector","log","noBind","shouldCloseOnTriggerClick","closeOnTriggerClick","bindHideOnExternalClick","bindHideOnEscPressed","unbindHideOnExternalClick","unbindHideOnEscPressed","hasBoundOnExternalClick","externalClickNamespace","bind","$target","closest","onKeydown","keyCode","ESCAPE","off","stopPropagation","refresh","getOptions","dimensionsOf","el","$el","getDimensions","arrowOffsetX","arrowOffsetY","isConstrainedScroll","toLowerCase","$scrollContainer","$scrollWindow","parent","scrollContainerOffset","scrollWindowOffset","triggerOffset","triggerBBox","getBBox","screenPadding","arrowMargin","scrollTop","scrollLeft","scrollContainer","dialog","calculateWestPositions","dimensions","win","triggerScrollOffset","halfTriggerHeight","floor","halfPopupHeight","halfArrowHeight","spaceOnLeft","spaceOnRight","enoughSpaceOnLeft","enoughSpaceOnRight","arrowScreenTop","arrowScreenBottom","min","middleOfTrigger","spaceAboveMiddleOfTrigger","max","spaceBelowMiddleOfTrigger","isOverflowingAbove","isOverflowingBelow","calculateNorthSouthPositions","viewportDimensions","targetDimensions","popupDimensions","arrowDimensions","bottomOfViewablePage","pageYOffset","documentElement","SCREEN_PADDING","diff","enoughRoomAbove","enoughRoomBelow","isRelativeToMouse","right","popupRightEdge","popupLeftEdge","algorithm","construct","alternativeName","getMessageLogger","extraInfo"],"mappings":"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","file":"inline-dialog.js","sourcesContent":["/* eslint quotmark:off, eqeqeq:off, strict:off, complexity:off */\n\n'use strict';\n\nimport $ from './jquery';\nimport { needsLayeringShim } from './internal/browser';\nimport * as deprecate from './internal/deprecation';\nimport * as logger from './internal/log';\nimport globalize from './internal/globalize';\nimport keyCode from './key-code';\nimport cssEscape from 'css.escape';\n\n/**\n * Creates a new inline dialog.\n *\n * @param items jQuery object - the items that trigger the display of this popup when the user mouses over.\n * @param identifier A unique identifier for this popup. This should be unique across all popups on the page and a valid CSS class.\n * @param url The URL to retrieve popup contents.\n * @param options Custom options to change default behaviour. See InlineDialog.opts for default values and valid options.\n */\nfunction InlineDialog (items, identifier, url, options) {\n options = options || [];\n\n if (options.hasOwnProperty('onTop')) {\n onTopDeprecationLogger();\n if (options.onTop && options.gravity === undefined) {\n options.gravity = 's';\n }\n }\n\n // attempt to generate a random identifier if it doesn't exist\n if (typeof identifier === 'undefined') {\n identifier = String(Math.random()).replace('.', '');\n\n // if the generated supplied identifier already exists when combined with the prefixes we'll be using, then bail\n if ($('#inline-dialog-' + identifier + ', #arrow-' + identifier + ', #inline-dialog-shim-' + identifier).length) {\n throw 'GENERATED_IDENTIFIER_NOT_UNIQUE';\n }\n }\n\n const escapedIdentifier = cssEscape(identifier);\n\n var opts = $.extend(false, InlineDialog.opts, options);\n if (opts.gravity === 'w') {\n // TODO Once support for gravity: 'e' is added, it should also\n // transpose the defaults for offsetX and offsetY.\n opts.offsetX = options.offsetX === undefined ? 10 : options.offsetX;\n opts.offsetY = options.offsetY === undefined ? 0 : options.offsetY;\n }\n\n var hash;\n var hideDelayTimer;\n var showTimer;\n var beingShown = false;\n var shouldShow = false;\n var contentLoaded = false;\n var mousePosition;\n var targetPosition;\n var popup = $('<div id=\"inline-dialog-' + identifier +\n '\" class=\"aui-inline-dialog\"><div class=\"aui-inline-dialog-contents contents\"></div><div id=\"arrow-' +\n identifier + '\" class=\"aui-inline-dialog-arrow arrow aui-css-arrow\"></div></div>');\n\n var arrow = $('#arrow-' + escapedIdentifier, popup);\n var contents = popup.find('.contents');\n\n if (!opts.displayShadow) {\n contents.addClass('aui-inline-dialog-no-shadow');\n }\n\n if (opts.autoWidth) {\n contents.addClass('aui-inline-dialog-auto-width');\n } else {\n contents.width(opts.width);\n }\n\n contents.on({\n mouseenter: function () {\n clearTimeout(hideDelayTimer);\n popup.unbind('mouseenter');\n },\n mouseleave: function () {\n hidePopup();\n }\n });\n\n var getHash = function () {\n if (!hash) {\n hash = {\n popup: popup,\n hide: function () {\n hidePopup(0);\n },\n id: identifier,\n show: function () {\n showPopup();\n },\n persistent: opts.persistent ? true : false,\n reset: function () {\n\n function drawPopup (popup, positions) {\n //Position the popup using the left and right parameters\n popup.css(positions.popupCss);\n\n arrow.removeClass('aui-bottom-arrow aui-left-arrow aui-right-arrow');\n if (positions.gravity === 's' && !arrow.hasClass('aui-bottom-arrow')) {\n arrow.addClass('aui-bottom-arrow');\n } else if (positions.gravity === 'w') {\n arrow.addClass('aui-left-arrow');\n } else if (positions.gravity === 'e') {\n arrow.addClass('aui-right-arrow');\n }\n // Default styles are for 'n' gravity.\n\n arrow.css(positions.arrowCss);\n }\n\n //DRAW POPUP\n var viewportHeight = $(window).height();\n var popupMaxHeight = Math.round(viewportHeight * 0.75);\n popup.children('.aui-inline-dialog-contents')\n .css('max-height', popupMaxHeight);\n\n var positions = opts.calculatePositions(popup, targetPosition, mousePosition, opts);\n if (positions.hasOwnProperty('displayAbove')) {\n displayAboveDeprecationLogger();\n positions.gravity = positions.displayAbove ? 's' : 'n';\n }\n\n drawPopup(popup, positions);\n\n // reset position of popup box\n popup.fadeIn(opts.fadeTime, function () {\n // once the animation is complete, set the tracker variables\n // beingShown = false; // is this necessary? Maybe only the shouldShow will have to be reset?\n });\n\n if (needsLayeringShim()) {\n // iframeShim, prepend if it doesnt exist\n var jQueryCache = $('#inline-dialog-shim-' + escapedIdentifier);\n if (!jQueryCache.length) {\n $(popup).prepend($('<iframe class = \"inline-dialog-shim\" id=\"inline-dialog-shim-' + identifier + '\" frameBorder=\"0\" src=\"javascript:false;\"></iframe>'));\n }\n // adjust height and width of shim according to the popup\n jQueryCache.css({\n width: contents.outerWidth(),\n height: contents.outerHeight()\n });\n }\n }\n };\n }\n return hash;\n };\n\n var showPopup = function () {\n if (popup.is(':visible')) {\n return;\n }\n showTimer = setTimeout(function () {\n if (!contentLoaded || !shouldShow) {\n return;\n }\n opts.addActiveClass && $(items).addClass('active');\n beingShown = true;\n if (!opts.persistent) {\n bindHideEvents();\n }\n InlineDialog.current = getHash();\n $(document).trigger('showLayer', ['inlineDialog', getHash()]);\n // retrieve the position of the click target. The offsets might be different for different types of targets and therefore\n // either have to be customisable or we will have to be smarter about calculating the padding and elements around it\n\n getHash().reset();\n\n }, opts.showDelay);\n };\n\n var hidePopup = function (delay) {\n // do not auto hide the popup if persistent is set as true\n if (typeof delay === 'undefined' && opts.persistent) {\n return;\n }\n if (typeof popup.get(0)._datePickerPopup !== 'undefined') {\n // AUI-2696 - This inline dialog is host to a date picker... so we shouldn't close it.\n return;\n }\n\n shouldShow = false;\n // only exectute the below if the popup is currently being shown\n // and the arbitrator callback gives us the green light\n if (beingShown && opts.preHideCallback.call(popup[0].popup)) {\n delay = (delay == null) ? opts.hideDelay : delay;\n clearTimeout(hideDelayTimer);\n clearTimeout(showTimer);\n // store the timer so that it can be cleared in the mouseenter if required\n //disable auto-hide if user passes null for hideDelay\n if (delay != null) {\n hideDelayTimer = setTimeout(function () {\n unbindHideEvents();\n opts.addActiveClass && $(items).removeClass('active');\n popup.fadeOut(opts.fadeTime, function () {\n opts.hideCallback.call(popup[0].popup);\n });\n beingShown = false;\n shouldShow = false;\n $(document).trigger('hideLayer', ['inlineDialog', getHash()]);\n InlineDialog.current = null;\n if (!opts.cacheContent) {\n //if not caching the content, then reset the\n //flags to false so as to reload the content\n //on next mouse hover.\n contentLoaded = false;\n contentLoading = false;\n }\n\n }, delay);\n }\n\n }\n };\n\n // the trigger is the jquery element that is triggering the popup (i.e., the element that the mousemove event is bound to)\n var initPopup = function (e, trigger) {\n var $trigger = $(trigger);\n\n opts.upfrontCallback.call({\n popup: popup,\n hide: function () {\n hidePopup(0);\n },\n id: identifier,\n show: function () {\n showPopup();\n }\n });\n\n popup.each(function () {\n if (typeof this.popup !== 'undefined') {\n this.popup.hide();\n }\n });\n\n //Close all other popups if neccessary\n if (opts.closeOthers) {\n $('.aui-inline-dialog').each(function () {\n !this.popup.persistent && this.popup.hide();\n });\n }\n\n //handle programmatic showing where there is no event\n targetPosition = {target: $trigger};\n if (!e) {\n mousePosition = {x: $trigger.offset().left, y: $trigger.offset().top};\n } else {\n mousePosition = {x: e.pageX, y: e.pageY};\n }\n\n\n\n if (!beingShown) {\n clearTimeout(showTimer);\n }\n shouldShow = true;\n var doShowPopup = function () {\n contentLoading = false;\n contentLoaded = true;\n opts.initCallback.call({\n popup: popup,\n hide: function () {\n hidePopup(0);\n },\n id: identifier,\n show: function () {\n showPopup();\n }\n });\n showPopup();\n };\n // lazy load popup contents\n if (!contentLoading) {\n contentLoading = true;\n if ($.isFunction(url)) {\n // If the passed in URL is a function, execute it. Otherwise simply load the content.\n url(contents, trigger, doShowPopup);\n } else {\n //Retrive response from server\n $.get(url, function (data, status, xhr) {\n //Load HTML contents into the popup\n contents.html(opts.responseHandler(data, status, xhr));\n //Show the popup\n contentLoaded = true;\n opts.initCallback.call({\n popup: popup,\n hide: function () {\n hidePopup(0);\n },\n id: identifier,\n show: function () {\n showPopup();\n }\n });\n showPopup();\n });\n }\n }\n // stops the hide event if we move from the trigger to the popup element\n clearTimeout(hideDelayTimer);\n // don't trigger the animation again if we're being shown\n if (!beingShown) {\n showPopup();\n }\n return false;\n };\n\n popup[0].popup = getHash();\n\n var contentLoading = false;\n var added = false;\n var appendPopup = function () {\n if (!added) {\n $(opts.container).append(popup);\n added = true;\n }\n };\n var $items = $(items);\n\n if (opts.onHover) {\n if (opts.useLiveEvents) {\n // We're using .on() to emulate the behaviour of .live() here. on() requires the jQuery object to have\n // a selector - this is actually how .live() is implemented in jQuery 1.7+.\n // Note that .selector is deleted in jQuery 1.9+.\n // This means that jQuery objects created by selection eg $(\".my-class-selector\") will work, but\n // object created by DOM parsing eg $(\"<div class='.my-class'></div>\") will not work.\n // Ideally we should throw an error if the $items has no selector but that is backwards incompatible,\n // so we warn and do a no-op - this emulates the behaviour of live() but has the added warning.\n if ($items.selector) {\n $(document).on('mouseenter', $items.selector, function (e) {\n appendPopup();\n initPopup(e, this);\n }).on('mouseleave', $items.selector, function () {\n hidePopup();\n });\n } else {\n logger.log('Warning: inline dialog trigger elements must have a jQuery selector when the useLiveEvents option is enabled.');\n }\n } else {\n $items.on({\n mouseenter: function (e) {\n appendPopup();\n initPopup(e,this);\n },\n mouseleave: function () {\n hidePopup();\n }\n });\n }\n } else {\n if (!opts.noBind) { //Check if the noBind option is turned on\n if (opts.useLiveEvents) {\n // See above for why we filter by .selector\n if ($items.selector) {\n $(document).on('click', $items.selector, function (e) {\n appendPopup();\n if (shouldCloseOnTriggerClick()) {\n popup.hide();\n } else {\n initPopup(e,this);\n }\n return false;\n }).on('mouseleave', $items.selector, function () {\n hidePopup();\n });\n } else {\n logger.log('Warning: inline dialog trigger elements must have a jQuery selector when the useLiveEvents option is enabled.');\n }\n } else {\n $items.on('click', function (e) {\n appendPopup();\n if (shouldCloseOnTriggerClick()) {\n popup.hide();\n } else {\n initPopup(e,this);\n }\n return false;\n }).on('mouseleave', function () {\n hidePopup();\n });\n }\n }\n }\n\n var shouldCloseOnTriggerClick = function () {\n return beingShown && opts.closeOnTriggerClick;\n };\n\n var bindHideEvents = function () {\n bindHideOnExternalClick();\n bindHideOnEscPressed();\n };\n\n var unbindHideEvents = function () {\n unbindHideOnExternalClick();\n unbindHideOnEscPressed();\n };\n\n // Be defensive and make sure that we haven't already bound the event\n var hasBoundOnExternalClick = false;\n var externalClickNamespace = identifier + '.inline-dialog-check';\n\n /**\n * Catch click events on the body to see if the click target occurs outside of this popup\n * If it does, the popup will be hidden\n */\n var bindHideOnExternalClick = function () {\n if (!hasBoundOnExternalClick) {\n $('body').bind('click.' + externalClickNamespace, function (e) {\n var $target = $(e.target);\n // hide the popup if the target of the event is not in the dialog\n if ($target.closest('#inline-dialog-' + escapedIdentifier + ' .contents').length === 0) {\n hidePopup(0);\n }\n });\n hasBoundOnExternalClick = true;\n }\n };\n\n var unbindHideOnExternalClick = function () {\n if (hasBoundOnExternalClick) {\n $('body').unbind('click.' + externalClickNamespace);\n }\n hasBoundOnExternalClick = false;\n };\n\n var onKeydown = function (e) {\n if (e.keyCode === keyCode.ESCAPE) {\n hidePopup(0);\n }\n };\n\n var bindHideOnEscPressed = function () {\n $(document).on('keydown', onKeydown);\n };\n\n var unbindHideOnEscPressed = function () {\n $(document).off('keydown', onKeydown);\n };\n\n /**\n * Show the inline dialog.\n * @method show\n */\n popup.show = function (e, trigger) {\n if (e) {\n e.stopPropagation();\n }\n appendPopup();\n if (opts.noBind && !(items && items.length)) {\n initPopup(e, trigger === undefined ? e.target : trigger);\n } else {\n initPopup(e, items);\n }\n };\n /**\n * Hide the inline dialog.\n * @method hide\n */\n popup.hide = function () {\n hidePopup(0);\n };\n /**\n * Repositions the inline dialog if being shown.\n * @method refresh\n */\n popup.refresh = function () {\n if (beingShown) {\n getHash().reset();\n }\n };\n\n popup.getOptions = function () {\n return opts;\n };\n\n return popup;\n}\n\nfunction dimensionsOf(el) {\n var $el = $(el);\n var offset = $.extend({left: 0, top: 0}, $el.offset());\n return {\n left: offset.left,\n top: offset.top,\n width: $el.outerWidth(),\n height: $el.outerHeight()\n };\n}\n\nfunction getDimensions(popup, targetPosition, mousePosition, opts) {\n var offsetX = $.isFunction(opts.offsetX) ? opts.offsetX(popup, targetPosition, mousePosition, opts) : opts.offsetX;\n var offsetY = $.isFunction(opts.offsetY) ? opts.offsetY(popup, targetPosition, mousePosition, opts) : opts.offsetY;\n var arrowOffsetX = $.isFunction(opts.arrowOffsetX) ? opts.arrowOffsetX(popup, targetPosition, mousePosition, opts) : opts.arrowOffsetX;\n var arrowOffsetY = $.isFunction(opts.arrowOffsetY) ? opts.arrowOffsetY(popup, targetPosition, mousePosition, opts) : opts.arrowOffsetY;\n\n // Support positioning inside a scroll container other than <body>\n var isConstrainedScroll = opts.container.toLowerCase() !== 'body';\n var $scrollContainer = $(opts.container);\n var $scrollWindow = isConstrainedScroll ?\n $(opts.container).parent() :\n $(window);\n var scrollContainerOffset = isConstrainedScroll ?\n $scrollContainer.offset() : {left: 0, top: 0};\n var scrollWindowOffset = isConstrainedScroll ?\n $scrollWindow.offset() : {left: 0, top: 0};\n\n var trigger = targetPosition.target;\n var triggerOffset = trigger.offset();\n // Support SVG elements as triggers\n // TODO Should calculateNorthSouthPositions also try getBBox()?\n var triggerBBox = trigger[0].getBBox && trigger[0].getBBox();\n\n return {\n // determines how close to the edge the dialog needs to be before it is considered offscreen\n screenPadding: 10,\n // Min distance arrow needs to be from the edge of the dialog\n arrowMargin: 5,\n window: {\n top: scrollWindowOffset.top,\n left: scrollWindowOffset.left,\n scrollTop: $scrollWindow.scrollTop(),\n scrollLeft: $scrollWindow.scrollLeft(),\n width: $scrollWindow.width(),\n height: $scrollWindow.height()\n },\n scrollContainer: {\n width: $scrollContainer.width(),\n height: $scrollContainer.height()\n },\n // Position of the trigger is relative to the scroll container\n trigger: {\n top: triggerOffset.top - scrollContainerOffset.top,\n left: triggerOffset.left - scrollContainerOffset.left,\n width: triggerBBox ? triggerBBox.width : trigger.outerWidth(),\n height: triggerBBox ? triggerBBox.height : trigger.outerHeight()\n },\n dialog: {\n width: popup.width(),\n height: popup.height(),\n offset: {\n top: offsetY,\n left: offsetX\n }\n },\n arrow: {\n height: popup.find('.arrow').outerHeight(),\n offset: {\n top: arrowOffsetY,\n left: arrowOffsetX\n }\n }\n };\n}\n\nfunction calculateWestPositions(popup, targetPosition, mousePosition, opts) {\n var dimensions = getDimensions(popup, targetPosition, mousePosition, opts);\n var screenPadding = dimensions.screenPadding;\n var win = dimensions.window;\n var trigger = dimensions.trigger;\n var dialog = dimensions.dialog;\n var arrow = dimensions.arrow;\n var scrollContainer = dimensions.scrollContainer;\n\n var triggerScrollOffset = {\n top: trigger.top - win.scrollTop,\n left: trigger.left - win.scrollLeft\n };\n\n // Halves - because the browser doesn't do sub-pixel positioning, we need to consistently floor\n // all decimal values or you can get 1px jumps in arrow positioning when the dialog's height changes.\n var halfTriggerHeight = Math.floor(trigger.height / 2);\n var halfPopupHeight = Math.floor(dialog.height / 2);\n var halfArrowHeight = Math.floor(arrow.height / 2);\n\n // Figure out where to position the dialog, preferring the right (gravity: 'w').\n var spaceOnLeft = triggerScrollOffset.left - dialog.offset.left - screenPadding;\n\n // This implementation may not be suitable for horizontally scrolling containers\n var spaceOnRight = scrollContainer.width - triggerScrollOffset.left - trigger.width - dialog.offset.left - screenPadding;\n\n var enoughSpaceOnLeft = spaceOnLeft >= dialog.width;\n var enoughSpaceOnRight = spaceOnRight >= dialog.width;\n var gravity = !enoughSpaceOnRight && enoughSpaceOnLeft ? 'e' : 'w';\n\n // Screen padding needs to be adjusted if the arrow would extend into it\n var arrowScreenTop = triggerScrollOffset.top + halfTriggerHeight - halfArrowHeight;\n var arrowScreenBottom = win.height - arrowScreenTop - arrow.height;\n screenPadding = Math.min(screenPadding, arrowScreenTop - dimensions.arrowMargin);\n screenPadding = Math.min(screenPadding, arrowScreenBottom - dimensions.arrowMargin);\n\n // Figure out if the dialog needs to be adjusted up or down to fit on the screen\n var middleOfTrigger = triggerScrollOffset.top + halfTriggerHeight;\n var spaceAboveMiddleOfTrigger = Math.max(middleOfTrigger - screenPadding, 0);\n var spaceBelowMiddleOfTrigger = Math.max(win.height - middleOfTrigger - screenPadding, 0);\n\n var isOverflowingAbove = halfPopupHeight - dialog.offset.top > spaceAboveMiddleOfTrigger;\n var isOverflowingBelow = halfPopupHeight + dialog.offset.top > spaceBelowMiddleOfTrigger;\n\n var popupCss;\n var arrowCss;\n if (isOverflowingAbove) {\n popupCss = {\n top: win.scrollTop + screenPadding,\n left: gravity === 'w' ?\n trigger.left + trigger.width + dialog.offset.left :\n trigger.left - dialog.width - dialog.offset.left\n };\n arrowCss = {\n top: (trigger.top + halfTriggerHeight) - (popupCss.top + halfArrowHeight)\n };\n } else if (isOverflowingBelow) {\n popupCss = {\n top: win.scrollTop + win.height - dialog.height - screenPadding,\n left: gravity === 'w' ?\n trigger.left + trigger.width + dialog.offset.left :\n trigger.left - dialog.width - dialog.offset.left\n };\n arrowCss = {\n top: (trigger.top + halfTriggerHeight) - (popupCss.top + halfArrowHeight)\n };\n } else {\n popupCss = {\n top: trigger.top + halfTriggerHeight - halfPopupHeight + dialog.offset.top,\n left: gravity === 'w' ?\n trigger.left + trigger.width + dialog.offset.left :\n trigger.left - dialog.width - dialog.offset.left\n };\n arrowCss = {\n top: halfPopupHeight - halfArrowHeight + arrow.offset.top\n };\n }\n\n return {\n gravity: gravity,\n popupCss: popupCss,\n arrowCss: arrowCss\n };\n}\n\nfunction calculateNorthSouthPositions(popup, targetPosition, mousePosition, opts) {\n var offsetX = $.isFunction(opts.offsetX) ? opts.offsetX(popup, targetPosition, mousePosition, opts) : opts.offsetX;\n var offsetY = $.isFunction(opts.offsetY) ? opts.offsetY(popup, targetPosition, mousePosition, opts) : opts.offsetY;\n var arrowOffsetX = $.isFunction(opts.arrowOffsetX) ? opts.arrowOffsetX(popup, targetPosition, mousePosition, opts) : opts.arrowOffsetX;\n\n var viewportDimensions = dimensionsOf(window);\n var targetDimensions = dimensionsOf(targetPosition.target);\n var popupDimensions = dimensionsOf(popup);\n var arrowDimensions = dimensionsOf(popup.find('.aui-inline-dialog-arrow'));\n\n var middleOfTrigger = targetDimensions.left + targetDimensions.width / 2; //The absolute x position of the middle of the Trigger\n var bottomOfViewablePage = (window.pageYOffset || document.documentElement.scrollTop) + viewportDimensions.height;\n var SCREEN_PADDING = 10; //determines how close to the edge the dialog needs to be before it is considered offscreen\n\n // Set popup's position (within the viewport)\n popupDimensions.top = targetDimensions.top + targetDimensions.height + ~~offsetY;\n popupDimensions.left = targetDimensions.left + ~~offsetX;\n\n // Calculate if the popup would render off the side of the viewport\n var diff = viewportDimensions.width - (popupDimensions.left + popupDimensions.width + SCREEN_PADDING);\n\n // Set arrow's position (within the popup)\n arrowDimensions.left = middleOfTrigger - popupDimensions.left + ~~arrowOffsetX;\n // TODO arrowDimensions.top should also use arrowOffsetY.\n arrowDimensions.top = -(arrowDimensions.height / 2);\n\n // Check whether the popup should display above or below the trigger\n var enoughRoomAbove = targetDimensions.top > popupDimensions.height;\n var enoughRoomBelow = (popupDimensions.top + popupDimensions.height) < bottomOfViewablePage;\n var displayAbove = (!enoughRoomBelow && enoughRoomAbove) || (enoughRoomAbove && opts.gravity === 's');\n\n if (displayAbove) {\n popupDimensions.top = targetDimensions.top - popupDimensions.height - (arrowDimensions.height / 2);\n arrowDimensions.top = popupDimensions.height;\n }\n\n // Check if the popup should show up relative to the mouse\n if (opts.isRelativeToMouse){\n if (diff < 0){\n popupDimensions.right = SCREEN_PADDING;\n popupDimensions.left = 'auto';\n // TODO Why doesn't arrowDimentions.left here use arrowOffsetX?\n arrowDimensions.left = mousePosition.x - (viewportDimensions.width - popupDimensions.width);\n } else {\n popupDimensions.left = mousePosition.x - 20;\n // TODO Why doesn't arrowDimentions.left here use arrowOffsetX?\n arrowDimensions.left = mousePosition.x - popupDimensions.left;\n }\n } else {\n if (diff < 0){\n popupDimensions.right = SCREEN_PADDING;\n popupDimensions.left = 'auto';\n\n var popupRightEdge = viewportDimensions.width - popupDimensions.right;\n var popupLeftEdge = popupRightEdge - popupDimensions.width;\n\n //arrow's position must be relative to the popup's position and not of the screen.\n arrowDimensions.right = 'auto';\n // TODO Why doesn't arrowDimentions.left here use arrowOffsetX?\n arrowDimensions.left = middleOfTrigger - popupLeftEdge - arrowDimensions.width / 2;\n } else if (popupDimensions.width <= targetDimensions.width / 2){\n // TODO Why doesn't arrowDimentions.left here use arrowOffsetX?\n arrowDimensions.left = popupDimensions.width / 2;\n popupDimensions.left = middleOfTrigger - popupDimensions.width / 2;\n }\n }\n return {\n gravity: displayAbove ? 's' : 'n',\n displayAbove: displayAbove, // Replaced with gravity but remains for backward compatibility.\n popupCss: {\n left: popupDimensions.left,\n top: popupDimensions.top,\n right: popupDimensions.right\n },\n arrowCss: {\n left: arrowDimensions.left,\n top: arrowDimensions.top,\n right: arrowDimensions.right\n }\n };\n}\n\n\nInlineDialog.opts = {\n onTop: false,\n responseHandler: function (data) {\n //assume data is html\n return data;\n },\n closeOthers: true,\n isRelativeToMouse: false,\n addActiveClass: true, // if false, signifies that the triggers should not have the \"active\" class applied\n onHover: false,\n useLiveEvents: false,\n noBind: false,\n fadeTime: 100,\n persistent: false,\n hideDelay: 10000,\n showDelay: 0,\n width: 300,\n offsetX: 0,\n offsetY: 10,\n arrowOffsetX: 0,\n arrowOffsetY: 0,\n container: 'body',\n cacheContent: true,\n displayShadow: true,\n autoWidth: false,\n gravity: 'n',\n closeOnTriggerClick: false,\n preHideCallback: function () {\n return true;\n },\n hideCallback: function () {}, // if defined, this method will be exected after the popup has been faded out.\n initCallback: function () {}, // A function called after the popup contents are loaded. `this` will be the popup jQuery object, and the first argument is the popup identifier.\n upfrontCallback: function () {}, // A function called before the popup contents are loaded. `this` will be the popup jQuery object, and the first argument is the popup identifier.\n /**\n * Returns an object with the following attributes:\n * popupCss css attributes to apply on the popup element\n * arrowCss css attributes to apply on the arrow element\n *\n * @param popup\n * @param targetPosition position of the target element\n * @param mousePosition current mouse position\n * @param opts options\n */\n calculatePositions: function (popup, targetPosition, mousePosition, opts) {\n opts = opts || {};\n var algorithm = opts.gravity === 'w' ? calculateWestPositions : calculateNorthSouthPositions;\n return algorithm(popup, targetPosition, mousePosition, opts)\n }\n};\n\n\n// Deprecations\n// ------------\n\nInlineDialog = deprecate.construct(InlineDialog, 'Inline dialog constructor', {\n alternativeName: 'inline dialog 2'\n});\n\nvar displayAboveDeprecationLogger = deprecate.getMessageLogger('displayAbove', '[remove version]', {\n alternativeName: 'gravity',\n extraInfo: 'See https://ecosystem.atlassian.net/browse/AUI-2197.'\n});\n\nvar onTopDeprecationLogger = deprecate.getMessageLogger('onTop', '[remove version]', {\n alternativeName: 'gravity',\n extraInfo: 'See https://ecosystem.atlassian.net/browse/AUI-2197.'\n});\n\n\n// Exporting\n// ---------\n\nglobalize('InlineDialog', InlineDialog);\n\nexport default InlineDialog;\n"]}
|