@atlassian/aui 7.10.0 → 7.10.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/changelog.md +51 -5
- 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 +81 -39
- package/dist/aui/js/aui-datepicker.min.js +1 -1
- package/dist/aui/js/aui-experimental.js +279 -277
- 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 +2283 -1540
- 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 +72 -26
- 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 +7 -5
- 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/option.js +1 -1
- package/lib/js/aui/internal/select/option.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 +3 -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 +6 -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/jquery-ui/jquery.ui.dialog.js +30 -3
- package/package.json +57 -44
- package/src/js/aui/date-picker.js +64 -25
- package/src/js/aui/dropdown2.js +2 -1
- package/src/js/aui/internal/select/option.js +1 -1
- package/src/js/aui/restful-table.js +3 -1
- package/src/js/aui/tabs.js +6 -1
- package/src/js-vendor/jquery/jquery-ui/jquery.ui.dialog.js +30 -3
- 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 +8161 -3856
- package/lib/js-vendor/jquery/jquery-ui/jquery-ui.js +0 -11396
- package/lib/js-vendor/underscorejs/underscore.js +0 -1287
- package/src/js-vendor/jquery/jquery-ui/jquery-ui.js +0 -11396
- package/src/js-vendor/underscorejs/underscore.js +0 -1287
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["js/aui/progress-indicator.js"],"names":["deprecate","afterTransitionEvent","beforeTransitionEvent","transitionEnd","updateProgress","$progressBar","$progressBarContainer","progressValue","css","attr","updateProgressElement","element","value","el","document","getElementById","first","children","valueAttribute","isIndeterminate","currentProgress","parseFloat","isProgressNotChanged","currentDemonstratedValue","get","style","width","transitionProgress","progressBar","progressBarContainer","trigger","one","setIndeterminateOnProgressElement","removeAttr","DEFAULTS","indeterminate","max","val","validNumeric","isNumber","isFinite","isNaN","parseNumeric","defaultVal","num","Number","parseDecimal","precision","toFixed","safeValue","Math","min","safeMax","calc","data","parsedMax","parsedVal","valAsFraction","valAsPercent","refresh","_data","bar","querySelector","oldVal","getAttribute","removeAttribute","setAttribute","setValue","newValue","oldValue","setMax","template","hasAttribute","legacyValue","innerHTML","attached","attributes","created","removed","fallback","_updating","prototype","__data","defaults","d","progressBars","update","fn","sinceVersion","extraInfo","setIndeterminate"],"mappings":";;;;;;;;;;;;;AAAA;;;;;;;;;;;;QAOYA,S;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGZ,QAAMC,uBAAuB,qCAA7B;AACA,QAAMC,wBAAwB,sCAA9B;AACA,QAAMC,gBAAgB,mCAAtB;;AAGA,aAASC,cAAT,CAAwBC,YAAxB,EAAsCC,qBAAtC,EAA6DC,aAA7D,EAA4E;AACxE,uCAAeF,YAAf;AACAA,qBAAaG,GAAb,CAAiB,OAAjB,EAA0BD,gBAAgB,GAAhB,GAAsB,GAAhD;AACAD,8BAAsBG,IAAtB,CAA2B,YAA3B,EAAyCF,aAAzC;AACH;;AAGD,aAASG,qBAAT,CAA+BC,OAA/B,EAAwCC,KAAxC,EAA+C;AAC3C,YAAI,OAAOD,OAAP,KAAmB,QAAvB,EAAiC;AAC7B,gBAAIE,KAAKC,SAASC,cAAT,CAAwBJ,OAAxB,CAAT;AACA,gBAAIE,EAAJ,EAAQ;AACJF,0BAAUE,EAAV;AACH;AACJ;AACD,YAAIP,wBAAwB,sBAAEK,OAAF,EAAWK,KAAX,EAA5B;AACA,YAAIX,eAAeC,sBAAsBW,QAAtB,CAA+B,+BAA/B,CAAnB;AACA,YAAIC,iBAAiBZ,sBAAsBG,IAAtB,CAA2B,YAA3B,CAArB;AACA,YAAIU,kBAAkB,CAACD,cAAvB;AACA,YAAIE,kBAAkBC,WAAWH,cAAX,KAA8B,CAApD;AACA,YAAII,uBAAuBJ,kBAAkBE,oBAAoBR,KAAjE;;AAEA;AACA,YAAIU,oBAAJ,EAA0B;AACtB,gBAAMC,2BAA2BF,WAAWhB,aAAamB,GAAb,CAAiB,CAAjB,EAAoBC,KAApB,CAA0BC,KAArC,KAA+C,CAAhF;AACAJ,mCAAuBF,oBAAqBG,2BAA2B,GAAvE;AACH;;AAED,YAAID,oBAAJ,EAA0B;AACtB;AACH;;AAED;AACA,YAAIH,eAAJ,EAAqB;AACjBd,yBAAaG,GAAb,CAAiB,OAAjB,EAA0B,CAA1B;AACH;;AAEDmB,2BAAmBtB,YAAnB,EAAiCC,qBAAjC,EAAwD,EAAEc,gCAAF,EAAmBR,YAAnB,EAAxD;;AAEA,eAAON,qBAAP;AACH;;AAED,aAASqB,kBAAT,CAA4BC,WAA5B,EAAyCC,oBAAzC,QAA2F;AAAA,YAA1BT,eAA0B,QAA1BA,eAA0B;AAAA,YAATR,KAAS,QAATA,KAAS;;AACvF,YAAMP,eAAe,sBAAEuB,WAAF,CAArB;AACA,YAAMtB,wBAAwB,sBAAEuB,oBAAF,CAA9B;;AAEA,YAAI,OAAOjB,KAAP,KAAiB,QAAjB,IAA6BA,SAAS,CAAtC,IAA2CA,SAAS,CAAxD,EAA2D;AACvDN,kCAAsBwB,OAAtB,CAA8B5B,qBAA9B,EAAqD,CAACkB,eAAD,EAAkBR,KAAlB,CAArD;;AAEA;AACA,gBAAI,qCAAJ,EAA6B;AACzBP,6BAAa0B,GAAb,CAAiB5B,aAAjB,EAAgC,YAAY;AACxCG,0CAAsBwB,OAAtB,CAA8B7B,oBAA9B,EAAoD,CAACmB,eAAD,EAAkBR,KAAlB,CAApD;AACH,iBAFD;AAGAR,+BAAeC,YAAf,EAA6BC,qBAA7B,EAAoDM,KAApD;AACH,aALD,MAKO;AACHR,+BAAeC,YAAf,EAA6BC,qBAA7B,EAAoDM,KAApD;AACAN,sCAAsBwB,OAAtB,CAA8B7B,oBAA9B,EAAoD,CAACmB,eAAD,EAAkBR,KAAlB,CAApD;AACH;AACJ;AACJ;;AAED,aAASoB,iCAAT,CAA2CrB,OAA3C,EAAoD;AAChD,YAAIL,wBAAwB,sBAAEK,OAAF,EAAWK,KAAX,EAA5B;AACA,YAAIX,eAAeC,sBAAsBW,QAAtB,CAA+B,+BAA/B,CAAnB;;AAEAX,8BAAsB2B,UAAtB,CAAiC,YAAjC;AACA,uCAAe3B,qBAAf;AACAD,qBAAaG,GAAb,CAAiB,OAAjB,EAA0B,EAA1B;AACH;;AAED,QAAM0B,WAAW;AACbC,uBAAe,KADF;AAEbC,aAAK,CAFQ;AAGbC,aAAK;AAHQ,KAAjB;;AAMA,aAASC,YAAT,CAAsBD,GAAtB,EAA2B;AACvB,eAAO,qBAAEE,QAAF,CAAWF,GAAX,KAAmB,qBAAEG,QAAF,CAAWH,GAAX,CAAnB,IAAsC,CAAC,qBAAEI,KAAF,CAAQJ,GAAR,CAA9C;AACH;;AAED,aAASK,YAAT,CAAsBL,GAAtB,EAA2C;AAAA,YAAhBM,UAAgB,uEAAH,CAAG;;AACvC,YAAMC,MAAMvB,WAAWgB,GAAX,CAAZ;AACA,eAAOC,aAAaM,GAAb,IAAoBA,GAApB,GAA0BC,OAAOF,UAAP,CAAjC;AACH;;AAED,aAASG,YAAT,CAAsBF,GAAtB,EAA0C;AAAA,YAAfG,SAAe,uEAAH,CAAG;;AACtC,eAAOF,OAAOxB,WAAWuB,GAAX,EAAgBI,OAAhB,CAAwBD,SAAxB,CAAP,CAAP;AACH;;AAED,aAASE,SAAT,CAAmBZ,GAAnB,EAAwBD,GAAxB,EAA6B;AACzB,eAAOc,KAAKd,GAAL,CAAS,CAAT,EAAYc,KAAKC,GAAL,CAASd,GAAT,EAAcD,GAAd,CAAZ,CAAP;AACH;;AAED,aAASgB,OAAT,CAAiBhB,GAAjB,EAAsB;AAClB,eAAOA,MAAM,CAAN,GAAUA,GAAV,GAAgBF,SAASE,GAAhC;AACH;;AAED;;;;AAIA,aAASiB,IAAT,CAAcC,IAAd,EAAoB;AAAA,YACRjB,GADQ,GACKiB,IADL,CACRjB,GADQ;AAAA,YACHD,GADG,GACKkB,IADL,CACHlB,GADG;;AAEhB,YAAMmB,YAAYH,QAAQhB,GAAR,CAAlB;AACA,YAAMoB,YAAYP,UAAUZ,GAAV,EAAekB,SAAf,CAAlB;AACA,YAAME,gBAAgBX,aAAaU,YAAYD,SAAzB,EAAoC,CAApC,CAAtB;AACA,YAAMG,eAAeZ,aAAaW,gBAAgB,GAA7B,EAAkC,CAAlC,CAArB;AACA,eAAO,EAACrB,KAAKmB,SAAN,EAAiBlB,KAAKmB,SAAtB,EAAiCC,4BAAjC,EAAgDC,0BAAhD,EAAP;AACH;;AAED,aAASC,OAAT,CAAiB9C,EAAjB,EAAqB;AAAA,oBACiBwC,KAAKxC,GAAG+C,KAAR,CADjB;AAAA,YACVvB,GADU,SACVA,GADU;AAAA,YACLoB,aADK,SACLA,aADK;AAAA,YACUrB,GADV,SACUA,GADV;;AAEjB,YAAMyB,MAAMhD,GAAGiD,aAAH,CAAiB,yBAAjB,CAAZ;AACA,YAAMC,SAASF,IAAIG,YAAJ,CAAiB,YAAjB,CAAf;;AAEA,YAAInD,GAAGsB,aAAP,EAAsB;AAClB0B,gBAAII,eAAJ,CAAoB,eAApB;AACAjC,8CAAkC6B,GAAlC;AACH,SAHD,MAGO;AACHA,gBAAIK,YAAJ,CAAiB,eAAjB,EAAkC7B,GAAlC;AACAwB,gBAAIK,YAAJ,CAAiB,eAAjB,EAAkC9B,GAAlC;AACAT,+BAAmBkC,IAAIC,aAAJ,CAAkB,+BAAlB,CAAnB,EAAuED,GAAvE,EAA4E;AACxEzC,iCAAiB2C,MADuD;AAExEnD,uBAAO6C;AAFiE,aAA5E;AAIH;AACJ;;AAED,aAASU,QAAT,CAAkBtD,EAAlB,EAAsByC,IAAtB,EAA4B;AACxBzC,WAAG+C,KAAH,CAASvB,GAAT,GAAeK,aAAaY,KAAKc,QAAlB,EAA4Bd,KAAKe,QAAL,IAAiBnC,SAASG,GAAtD,CAAf;AACAsB,gBAAQ9C,EAAR;AACH;;AAED,aAASyD,MAAT,CAAgBzD,EAAhB,EAAoByC,IAApB,EAA0B;AACtBzC,WAAG+C,KAAH,CAASxB,GAAT,GAAeM,aAAaY,KAAKc,QAAlB,EAA4Bd,KAAKe,QAAL,IAAiBnC,SAASE,GAAtD,CAAf;AACAuB,gBAAQ9C,EAAR;AACH;;AAED,2BAAM,iBAAN,EAAyB;AACrB0D,gBADqB,oBACZ1D,EADY,EACR;AACT;AACA;AACAA,eAAG+C,KAAH,CAASxB,GAAT,GAAeM,aAAa7B,GAAGmD,YAAH,CAAgB,KAAhB,CAAb,EAAqC9B,SAASE,GAA9C,CAAf;AACAvB,eAAG+C,KAAH,CAASvB,GAAT,GAAeK,aAAa7B,GAAGmD,YAAH,CAAgB,OAAhB,CAAb,EAAuC9B,SAASG,GAAhD,CAAf;AACAxB,eAAG+C,KAAH,CAASzB,aAAT,GAAyBtB,GAAG2D,YAAH,CAAgB,eAAhB,CAAzB;;AALS,yBAMuCnB,KAAKxC,GAAG+C,KAAR,CANvC;AAAA,gBAMFvB,GANE,UAMFA,GANE;AAAA,gBAMGD,GANH,UAMGA,GANH;AAAA,gBAMQqB,aANR,UAMQA,aANR;AAAA,gBAMuBC,YANvB,UAMuBA,YANvB;;AAQT,gBAAMe,cAAc5D,GAAG+C,KAAH,CAASzB,aAAT,GAAyB,EAAzB,oBAA6CsB,aAA7C,MAApB;;AAEA5C,eAAG6D,SAAH,sDACGD,WADH,2FAIkBpC,GAJlB,mCAKkBD,GALlB,2GAQ2DsB,YAR3D;AAUH,SArBoB;AAuBrBiB,gBAvBqB,oBAuBZ9D,EAvBY,EAuBR;AACT8C,oBAAQ9C,EAAR;AACH,SAzBoB;;;AA2BrB+D,oBAAY;AACRzC,2BAAe;AACX0C,yBAAS,iBAAShE,EAAT,EAAa;AAClBA,uBAAGsB,aAAH,GAAmB,IAAnB;AACH,iBAHU;AAIX2C,yBAAS,iBAASjE,EAAT,EAAa;AAClBA,uBAAGsB,aAAH,GAAmB,KAAnB;AACH;AANU,aADP;AASRvB,mBAAO;AACHA,uBAAOsB,SAASG,GADb;AAEH0C,0BAAU,kBAAUlE,EAAV,EAAcyC,IAAd,EAAoB;AAC1B,wBAAIzC,GAAGmE,SAAP,EAAkB,OAAO,KAAP;AAClBb,6BAAStD,EAAT,EAAayC,IAAb;AACH;AALE,aATC;AAgBRlB,iBAAK;AACDxB,uBAAOsB,SAASE,GADf;AAED2C,0BAAU,kBAAUlE,EAAV,EAAcyC,IAAd,EAAoB;AAC1B,wBAAIzC,GAAGmE,SAAP,EAAkB,OAAO,KAAP;AAClBV,2BAAOzD,EAAP,EAAWyC,IAAX;AACH;AALA;AAhBG,SA3BS;;AAoDrB2B,mBAAW;AACP,gBAAIrB,KAAJ,GAAY;AACR,uBAAO,KAAKsB,MAAL,KAAgB,KAAKtB,KAAL,GAAa,qBAAEuB,QAAF,CAAW,EAAX,EAAejD,QAAf,CAA7B,CAAP;AACH,aAHM;AAIP,gBAAI0B,KAAJ,CAAUwB,CAAV,EAAa;AACT,uBAAO,KAAKF,MAAL,GAAcE,CAArB;AACH,aANM;AAOP,gBAAIjD,aAAJ,GAAoB;AAChB,uBAAO,KAAKyB,KAAL,CAAWzB,aAAlB;AACH,aATM;AAUP,gBAAIA,aAAJ,CAAkBE,GAAlB,EAAuB;AACnB,qBAAKuB,KAAL,CAAWzB,aAAX,GAA2B,CAAC,CAACE,GAA7B;AACAsB,wBAAQ,IAAR;AACH,aAbM;AAcP,gBAAI/C,KAAJ,GAAY;AAAA,6BACQyC,KAAK,KAAKO,KAAV,CADR;AAAA,oBACAvB,GADA,UACAA,GADA;;AAER,uBAAOA,GAAP;AACH,aAjBM;AAkBP,gBAAIzB,KAAJ,CAAUgC,GAAV,EAAe;AACX,oBAAI,CAACN,aAAaM,GAAb,CAAL,EAAwB,OAAO,KAAP;AACxB,oBAAMU,OAAO,EAAEc,UAAUtB,aAAaF,GAAb,EAAkB,CAAlB,CAAZ,EAAb;AACA,qBAAKoC,SAAL,GAAiB,IAAjB;AACA;AACA,qBAAKd,YAAL,CAAkB,OAAlB,EAA2BZ,KAAKc,QAAhC;AACA,qBAAKY,SAAL,GAAiB,KAAjB;AACAb,yBAAS,IAAT,EAAeb,IAAf;AACH,aA1BM;AA2BP,gBAAIlB,GAAJ,GAAU;AAAA,6BACUiB,KAAK,KAAKO,KAAV,CADV;AAAA,oBACExB,GADF,UACEA,GADF;;AAEN,uBAAOA,GAAP;AACH,aA9BM;AA+BP,gBAAIA,GAAJ,CAAQQ,GAAR,EAAa;AACT,oBAAI,CAACN,aAAaM,GAAb,CAAL,EAAwB,OAAO,KAAP;AACxB,oBAAMU,OAAO,EAAEc,UAAUtB,aAAaF,GAAb,EAAkB,CAAlB,CAAZ,EAAb;AACA,qBAAKoC,SAAL,GAAiB,IAAjB;AACA;AACA,qBAAKd,YAAL,CAAkB,KAAlB,EAAyBZ,KAAKc,QAA9B;AACA,qBAAKY,SAAL,GAAiB,KAAjB;AACAV,uBAAO,IAAP,EAAahB,IAAb;AACH;AAvCM;AApDU,KAAzB;;AA+FA,QAAM+B,eAAe;AACjBC,gBAAQtF,UAAUuF,EAAV,CAAa7E,qBAAb,EAAoC,yBAApC,EAA+D;AACnE8E,0BAAc,OADqD;AAEnEC,uBAAW;AAFwD,SAA/D,CADS;AAKjBC,0BAAkB1F,UAAUuF,EAAV,CAAavD,iCAAb,EAAgD,mCAAhD,EAAqF;AACnGwD,0BAAc,OADqF;AAEnGC,uBAAW;AAFwF,SAArF;AALD,KAArB;;AAWA,6BAAU,cAAV,EAA0BJ,YAA1B;;sBAEeA,Y","file":"progress-indicator.js","sourcesContent":["'use strict';\n\nimport $ from './jquery';\nimport _ from './underscore';\nimport skate from 'skatejs';\nimport { recomputeStyle } from './internal/animation';\nimport { supportsCssTransition } from './internal/browser';\nimport * as deprecate from './internal/deprecation';\nimport globalize from './internal/globalize';\n\nconst afterTransitionEvent = 'aui-progress-indicator-after-update';\nconst beforeTransitionEvent = 'aui-progress-indicator-before-update';\nconst transitionEnd = 'transitionend webkitTransitionEnd';\n\n\nfunction updateProgress($progressBar, $progressBarContainer, progressValue) {\n recomputeStyle($progressBar);\n $progressBar.css('width', progressValue * 100 + '%');\n $progressBarContainer.attr('data-value', progressValue);\n}\n\n\nfunction updateProgressElement(element, value) {\n if (typeof element === 'string') {\n let el = document.getElementById(element);\n if (el) {\n element = el;\n }\n }\n var $progressBarContainer = $(element).first();\n var $progressBar = $progressBarContainer.children('.aui-progress-indicator-value');\n var valueAttribute = $progressBarContainer.attr('data-value');\n var isIndeterminate = !valueAttribute;\n var currentProgress = parseFloat(valueAttribute) || 0;\n var isProgressNotChanged = valueAttribute && currentProgress === value;\n\n // AUI-4771 - check for mis-configured legacy progress bar HTML.\n if (isProgressNotChanged) {\n const currentDemonstratedValue = parseFloat($progressBar.get(0).style.width) || 0;\n isProgressNotChanged = currentProgress === (currentDemonstratedValue * 100);\n }\n\n if (isProgressNotChanged) {\n return;\n }\n\n //if the progress bar is indeterminate switch it.\n if (isIndeterminate) {\n $progressBar.css('width', 0);\n }\n\n transitionProgress($progressBar, $progressBarContainer, { currentProgress, value });\n\n return $progressBarContainer;\n}\n\nfunction transitionProgress(progressBar, progressBarContainer, { currentProgress, value }) {\n const $progressBar = $(progressBar);\n const $progressBarContainer = $(progressBarContainer);\n\n if (typeof value === 'number' && value <= 1 && value >= 0) {\n $progressBarContainer.trigger(beforeTransitionEvent, [currentProgress, value]);\n\n //trigger the event after transition end if supported, otherwise just trigger it\n if (supportsCssTransition()) {\n $progressBar.one(transitionEnd, function () {\n $progressBarContainer.trigger(afterTransitionEvent, [currentProgress, value]);\n });\n updateProgress($progressBar, $progressBarContainer, value);\n } else {\n updateProgress($progressBar, $progressBarContainer, value);\n $progressBarContainer.trigger(afterTransitionEvent, [currentProgress, value]);\n }\n }\n}\n\nfunction setIndeterminateOnProgressElement(element) {\n var $progressBarContainer = $(element).first();\n var $progressBar = $progressBarContainer.children('.aui-progress-indicator-value');\n\n $progressBarContainer.removeAttr('data-value');\n recomputeStyle($progressBarContainer);\n $progressBar.css('width', '');\n}\n\nconst DEFAULTS = {\n indeterminate: false,\n max: 1,\n val: 0,\n};\n\nfunction validNumeric(val) {\n return _.isNumber(val) && _.isFinite(val) && !_.isNaN(val);\n}\n\nfunction parseNumeric(val, defaultVal = 1) {\n const num = parseFloat(val);\n return validNumeric(num) ? num : Number(defaultVal);\n}\n\nfunction parseDecimal(num, precision = 1) {\n return Number(parseFloat(num).toFixed(precision));\n}\n\nfunction safeValue(val, max) {\n return Math.max(0, Math.min(val, max));\n}\n\nfunction safeMax(max) {\n return max > 0 ? max : DEFAULTS.max;\n}\n\n/**\n * @param data the state\n * @returns {{max: number, val: number, valAsFraction: number, valAsPercent: number}}\n */\nfunction calc(data) {\n const { val, max } = data;\n const parsedMax = safeMax(max);\n const parsedVal = safeValue(val, parsedMax);\n const valAsFraction = parseDecimal(parsedVal / parsedMax, 6);\n const valAsPercent = parseDecimal(valAsFraction * 100, 2);\n return {max: parsedMax, val: parsedVal, valAsFraction, valAsPercent};\n}\n\nfunction refresh(el) {\n const {val, valAsFraction, max} = calc(el._data);\n const bar = el.querySelector('.aui-progress-indicator');\n const oldVal = bar.getAttribute('data-value');\n\n if (el.indeterminate) {\n bar.removeAttribute('aria-valuenow');\n setIndeterminateOnProgressElement(bar);\n } else {\n bar.setAttribute('aria-valuenow', val);\n bar.setAttribute('aria-valuemax', max);\n transitionProgress(bar.querySelector('.aui-progress-indicator-value'), bar, {\n currentProgress: oldVal,\n value: valAsFraction\n });\n }\n}\n\nfunction setValue(el, data) {\n el._data.val = parseNumeric(data.newValue, data.oldValue || DEFAULTS.val);\n refresh(el);\n}\n\nfunction setMax(el, data) {\n el._data.max = parseNumeric(data.newValue, data.oldValue || DEFAULTS.max);\n refresh(el);\n}\n\nskate('aui-progressbar', {\n template(el) {\n // Ensure max is set before value upon element creation and before rendering.\n // Why is this happening in 'template' and not 'created'? Because it gets called before 'created'!\n el._data.max = parseNumeric(el.getAttribute('max'), DEFAULTS.max);\n el._data.val = parseNumeric(el.getAttribute('value'), DEFAULTS.val);\n el._data.indeterminate = el.hasAttribute('indeterminate');\n const {val, max, valAsFraction, valAsPercent} = calc(el._data);\n\n const legacyValue = el._data.indeterminate ? '' : `data-value=\"${valAsFraction}\"`;\n\n el.innerHTML = `<div class=\"aui-progress-indicator\"\n ${legacyValue}\n role=\"progressbar\"\n aria-valuemin=\"0\"\n aria-valuenow=\"${val}\"\n aria-valuemax=\"${max}\"\n tabindex=\"0\"\n >\n <span class=\"aui-progress-indicator-value\" style=\"width: ${valAsPercent}%\"></span>\n </div>`;\n },\n\n attached(el) {\n refresh(el);\n },\n\n attributes: {\n indeterminate: {\n created: function(el) {\n el.indeterminate = true;\n },\n removed: function(el) {\n el.indeterminate = false;\n }\n },\n value: {\n value: DEFAULTS.val,\n fallback: function (el, data) {\n if (el._updating) return false;\n setValue(el, data);\n }\n },\n max: {\n value: DEFAULTS.max,\n fallback: function (el, data) {\n if (el._updating) return false;\n setMax(el, data);\n }\n },\n },\n\n prototype: {\n get _data() {\n return this.__data || (this._data = _.defaults({}, DEFAULTS));\n },\n set _data(d) {\n return this.__data = d;\n },\n get indeterminate() {\n return this._data.indeterminate;\n },\n set indeterminate(val) {\n this._data.indeterminate = !!val;\n refresh(this);\n },\n get value() {\n const { val } = calc(this._data);\n return val;\n },\n set value(num) {\n if (!validNumeric(num)) return false;\n const data = { newValue: parseDecimal(num, 6) };\n this._updating = true;\n // Reflect whatever value is set in the attributes.\n this.setAttribute('value', data.newValue);\n this._updating = false;\n setValue(this, data);\n },\n get max() {\n const { max } = calc(this._data);\n return max;\n },\n set max(num) {\n if (!validNumeric(num)) return false;\n const data = { newValue: parseDecimal(num, 6) };\n this._updating = true;\n // Reflect whatever value is set in the attributes.\n this.setAttribute('max', data.newValue);\n this._updating = false;\n setMax(this, data);\n },\n }\n});\n\nconst progressBars = {\n update: deprecate.fn(updateProgressElement, 'AJS.progressBars.update', {\n sinceVersion: '7.7.0',\n extraInfo: 'Use the <aui-progressbar> web component instead'\n }),\n setIndeterminate: deprecate.fn(setIndeterminateOnProgressElement, 'AJS.progressBars.setIndeterminate', {\n sinceVersion: '7.7.0',\n extraInfo: 'Use the <aui-progressbar> web component instead'\n })\n};\n\nglobalize('progressBars', progressBars);\n\nexport default progressBars;\n"]}
|
|
1
|
+
{"version":3,"sources":["js/aui/progress-indicator.js"],"names":["deprecate","afterTransitionEvent","beforeTransitionEvent","transitionEnd","updateProgress","$progressBar","$progressBarContainer","progressValue","css","attr","updateProgressElement","element","value","el","document","getElementById","first","children","valueAttribute","isIndeterminate","currentProgress","parseFloat","isProgressNotChanged","currentDemonstratedValue","get","style","width","transitionProgress","progressBar","progressBarContainer","trigger","one","setIndeterminateOnProgressElement","removeAttr","DEFAULTS","indeterminate","max","val","validNumeric","_","isNumber","isFinite","isNaN","parseNumeric","defaultVal","num","Number","parseDecimal","precision","toFixed","safeValue","Math","min","safeMax","calc","data","parsedMax","parsedVal","valAsFraction","valAsPercent","refresh","_data","bar","querySelector","oldVal","getAttribute","removeAttribute","setAttribute","setValue","newValue","oldValue","setMax","template","hasAttribute","legacyValue","innerHTML","attached","attributes","created","removed","fallback","_updating","prototype","__data","defaults","d","progressBars","update","fn","sinceVersion","extraInfo","setIndeterminate"],"mappings":"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","file":"progress-indicator.js","sourcesContent":["'use strict';\n\nimport $ from './jquery';\nimport _ from './underscore';\nimport skate from 'skatejs';\nimport { recomputeStyle } from './internal/animation';\nimport { supportsCssTransition } from './internal/browser';\nimport * as deprecate from './internal/deprecation';\nimport globalize from './internal/globalize';\n\nconst afterTransitionEvent = 'aui-progress-indicator-after-update';\nconst beforeTransitionEvent = 'aui-progress-indicator-before-update';\nconst transitionEnd = 'transitionend webkitTransitionEnd';\n\n\nfunction updateProgress($progressBar, $progressBarContainer, progressValue) {\n recomputeStyle($progressBar);\n $progressBar.css('width', progressValue * 100 + '%');\n $progressBarContainer.attr('data-value', progressValue);\n}\n\n\nfunction updateProgressElement(element, value) {\n if (typeof element === 'string') {\n let el = document.getElementById(element);\n if (el) {\n element = el;\n }\n }\n var $progressBarContainer = $(element).first();\n var $progressBar = $progressBarContainer.children('.aui-progress-indicator-value');\n var valueAttribute = $progressBarContainer.attr('data-value');\n var isIndeterminate = !valueAttribute;\n var currentProgress = parseFloat(valueAttribute) || 0;\n var isProgressNotChanged = valueAttribute && currentProgress === value;\n\n // AUI-4771 - check for mis-configured legacy progress bar HTML.\n if (isProgressNotChanged) {\n const currentDemonstratedValue = parseFloat($progressBar.get(0).style.width) || 0;\n isProgressNotChanged = currentProgress === (currentDemonstratedValue * 100);\n }\n\n if (isProgressNotChanged) {\n return;\n }\n\n //if the progress bar is indeterminate switch it.\n if (isIndeterminate) {\n $progressBar.css('width', 0);\n }\n\n transitionProgress($progressBar, $progressBarContainer, { currentProgress, value });\n\n return $progressBarContainer;\n}\n\nfunction transitionProgress(progressBar, progressBarContainer, { currentProgress, value }) {\n const $progressBar = $(progressBar);\n const $progressBarContainer = $(progressBarContainer);\n\n if (typeof value === 'number' && value <= 1 && value >= 0) {\n $progressBarContainer.trigger(beforeTransitionEvent, [currentProgress, value]);\n\n //trigger the event after transition end if supported, otherwise just trigger it\n if (supportsCssTransition()) {\n $progressBar.one(transitionEnd, function () {\n $progressBarContainer.trigger(afterTransitionEvent, [currentProgress, value]);\n });\n updateProgress($progressBar, $progressBarContainer, value);\n } else {\n updateProgress($progressBar, $progressBarContainer, value);\n $progressBarContainer.trigger(afterTransitionEvent, [currentProgress, value]);\n }\n }\n}\n\nfunction setIndeterminateOnProgressElement(element) {\n var $progressBarContainer = $(element).first();\n var $progressBar = $progressBarContainer.children('.aui-progress-indicator-value');\n\n $progressBarContainer.removeAttr('data-value');\n recomputeStyle($progressBarContainer);\n $progressBar.css('width', '');\n}\n\nconst DEFAULTS = {\n indeterminate: false,\n max: 1,\n val: 0,\n};\n\nfunction validNumeric(val) {\n return _.isNumber(val) && _.isFinite(val) && !_.isNaN(val);\n}\n\nfunction parseNumeric(val, defaultVal = 1) {\n const num = parseFloat(val);\n return validNumeric(num) ? num : Number(defaultVal);\n}\n\nfunction parseDecimal(num, precision = 1) {\n return Number(parseFloat(num).toFixed(precision));\n}\n\nfunction safeValue(val, max) {\n return Math.max(0, Math.min(val, max));\n}\n\nfunction safeMax(max) {\n return max > 0 ? max : DEFAULTS.max;\n}\n\n/**\n * @param data the state\n * @returns {{max: number, val: number, valAsFraction: number, valAsPercent: number}}\n */\nfunction calc(data) {\n const { val, max } = data;\n const parsedMax = safeMax(max);\n const parsedVal = safeValue(val, parsedMax);\n const valAsFraction = parseDecimal(parsedVal / parsedMax, 6);\n const valAsPercent = parseDecimal(valAsFraction * 100, 2);\n return {max: parsedMax, val: parsedVal, valAsFraction, valAsPercent};\n}\n\nfunction refresh(el) {\n const {val, valAsFraction, max} = calc(el._data);\n const bar = el.querySelector('.aui-progress-indicator');\n const oldVal = bar.getAttribute('data-value');\n\n if (el.indeterminate) {\n bar.removeAttribute('aria-valuenow');\n setIndeterminateOnProgressElement(bar);\n } else {\n bar.setAttribute('aria-valuenow', val);\n bar.setAttribute('aria-valuemax', max);\n transitionProgress(bar.querySelector('.aui-progress-indicator-value'), bar, {\n currentProgress: oldVal,\n value: valAsFraction\n });\n }\n}\n\nfunction setValue(el, data) {\n el._data.val = parseNumeric(data.newValue, data.oldValue || DEFAULTS.val);\n refresh(el);\n}\n\nfunction setMax(el, data) {\n el._data.max = parseNumeric(data.newValue, data.oldValue || DEFAULTS.max);\n refresh(el);\n}\n\nskate('aui-progressbar', {\n template(el) {\n // Ensure max is set before value upon element creation and before rendering.\n // Why is this happening in 'template' and not 'created'? Because it gets called before 'created'!\n el._data.max = parseNumeric(el.getAttribute('max'), DEFAULTS.max);\n el._data.val = parseNumeric(el.getAttribute('value'), DEFAULTS.val);\n el._data.indeterminate = el.hasAttribute('indeterminate');\n const {val, max, valAsFraction, valAsPercent} = calc(el._data);\n\n const legacyValue = el._data.indeterminate ? '' : `data-value=\"${valAsFraction}\"`;\n\n el.innerHTML = `<div class=\"aui-progress-indicator\"\n ${legacyValue}\n role=\"progressbar\"\n aria-valuemin=\"0\"\n aria-valuenow=\"${val}\"\n aria-valuemax=\"${max}\"\n tabindex=\"0\"\n >\n <span class=\"aui-progress-indicator-value\" style=\"width: ${valAsPercent}%\"></span>\n </div>`;\n },\n\n attached(el) {\n refresh(el);\n },\n\n attributes: {\n indeterminate: {\n created: function(el) {\n el.indeterminate = true;\n },\n removed: function(el) {\n el.indeterminate = false;\n }\n },\n value: {\n value: DEFAULTS.val,\n fallback: function (el, data) {\n if (el._updating) return false;\n setValue(el, data);\n }\n },\n max: {\n value: DEFAULTS.max,\n fallback: function (el, data) {\n if (el._updating) return false;\n setMax(el, data);\n }\n },\n },\n\n prototype: {\n get _data() {\n return this.__data || (this._data = _.defaults({}, DEFAULTS));\n },\n set _data(d) {\n return this.__data = d;\n },\n get indeterminate() {\n return this._data.indeterminate;\n },\n set indeterminate(val) {\n this._data.indeterminate = !!val;\n refresh(this);\n },\n get value() {\n const { val } = calc(this._data);\n return val;\n },\n set value(num) {\n if (!validNumeric(num)) return false;\n const data = { newValue: parseDecimal(num, 6) };\n this._updating = true;\n // Reflect whatever value is set in the attributes.\n this.setAttribute('value', data.newValue);\n this._updating = false;\n setValue(this, data);\n },\n get max() {\n const { max } = calc(this._data);\n return max;\n },\n set max(num) {\n if (!validNumeric(num)) return false;\n const data = { newValue: parseDecimal(num, 6) };\n this._updating = true;\n // Reflect whatever value is set in the attributes.\n this.setAttribute('max', data.newValue);\n this._updating = false;\n setMax(this, data);\n },\n }\n});\n\nconst progressBars = {\n update: deprecate.fn(updateProgressElement, 'AJS.progressBars.update', {\n sinceVersion: '7.7.0',\n extraInfo: 'Use the <aui-progressbar> web component instead'\n }),\n setIndeterminate: deprecate.fn(setIndeterminateOnProgressElement, 'AJS.progressBars.setIndeterminate', {\n sinceVersion: '7.7.0',\n extraInfo: 'Use the <aui-progressbar> web component instead'\n })\n};\n\nglobalize('progressBars', progressBars);\n\nexport default progressBars;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["js/aui/progressive-data-set.js"],"names":["ProgressiveDataSet","Collection","extend","initialize","models","options","matcher","model","_idAttribute","idAttribute","_maxResults","maxResults","_queryData","queryData","_queryParamKey","queryParamKey","_queryEndpoint","queryEndpoint","value","queryCache","activeQueryCount","bindAll","url","query","remote","results","getFilteredResults","respond","hasQueryCache","shouldGetMoreResults","fetch","trigger","activity","always","done","resp","succ","xhr","addQueryCache","getQueryData","params","isFunction","data","add","update","remove","prototype","call","item","filter","first","response","cache","parse","pluck","hasOwnProperty","findQueryCache","length","setMaxResults","number"],"mappings":";;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;AAMA;;;;;AAKA,QAAIA,qBAAqB,mBAASC,UAAT,CAAoBC,MAApB,CAA2B;AAChD;;;;;;;;;;;;;;;;;;;;;;;;AAwBAC,oBAAY,oBAAUC,MAAV,EAAkBC,OAAlB,EAA2B;AACnCA,wBAAYA,UAAU,EAAtB;AACA,gBAAIA,QAAQC,OAAZ,EAAqB;AACjB,qBAAKA,OAAL,GAAeD,QAAQC,OAAvB;AACH;AACD,gBAAID,QAAQE,KAAZ,EAAmB;AACf,qBAAKA,KAAL,GAAaF,QAAQE,KAArB,CADe,CACa;AAC/B;AACD,iBAAKC,YAAL,GAAqB,IAAI,KAAKD,KAAT,EAAD,CAAmBE,WAAvC;AACA,iBAAKC,WAAL,GAAmBL,QAAQM,UAAR,IAAsB,CAAzC;AACA,iBAAKC,UAAL,GAAkBP,QAAQQ,SAAR,IAAqB,EAAvC;AACA,iBAAKC,cAAL,GAAsBT,QAAQU,aAAR,IAAyB,GAA/C;AACA,iBAAKC,cAAL,GAAsBX,QAAQY,aAAR,IAAyB,EAA/C;AACA,iBAAKC,KAAL,GAAa,IAAb;AACA,iBAAKC,UAAL,GAAkB,EAAlB;AACA,iBAAKC,gBAAL,GAAwB,CAAxB;AACA,iCAAEC,OAAF,CAAU,IAAV,EAAgB,OAAhB,EAAyB,SAAzB;AACH,SA1C+C;;AA4ChDC,aAAK,eAAY;AACb,mBAAO,KAAKN,cAAZ;AACH,SA9C+C;;AAgDhD;;;;;;;AAOAO,eAAO,eAAUA,MAAV,EAAiB;AAAA;;AACpB,gBAAIC,MAAJ;AACA,gBAAIC,OAAJ;;AAEA,iBAAKP,KAAL,GAAaK,MAAb;AACAE,sBAAU,KAAKC,kBAAL,CAAwBH,MAAxB,CAAV;AACA,iBAAKI,OAAL,CAAaJ,MAAb,EAAoBE,OAApB;;AAEA,gBAAI,CAACF,MAAD,IAAU,CAAC,KAAKP,cAAhB,IAAkC,KAAKY,aAAL,CAAmBL,MAAnB,CAAlC,IAA+D,CAAC,KAAKM,oBAAL,CAA0BJ,OAA1B,CAApE,EAAwG;AACpG;AACH;;AAEDD,qBAAS,KAAKM,KAAL,CAAWP,MAAX,CAAT;;AAEA,iBAAKH,gBAAL;AACA,iBAAKW,OAAL,CAAa,UAAb,EAAyB,EAACC,UAAU,IAAX,EAAzB;;AAEAR,mBAAOS,MAAP,CAAc,YAAM;AAChB,sBAAKb,gBAAL;AACA,sBAAKW,OAAL,CAAa,UAAb,EAAyB,EAACC,UAAU,CAAC,CAAC,MAAKZ,gBAAlB,EAAzB;AACH,aAHD;;AAKAI,mBAAOU,IAAP,CAAY,UAACC,IAAD,EAAOC,IAAP,EAAaC,GAAb,EAAqB;AAC7B,sBAAKC,aAAL,CAAmBf,MAAnB,EAA0BY,IAA1B,EAAgCE,GAAhC;AACH,aAFD;AAGAb,mBAAOU,IAAP,CAAY,YAAM;AACdX,yBAAQ,MAAKL,KAAb;AACAO,0BAAU,MAAKC,kBAAL,CAAwBH,MAAxB,CAAV;AACA,sBAAKI,OAAL,CAAaJ,MAAb,EAAoBE,OAApB;AACH,aAJD;AAKH,SArF+C;;AAuFhD;;;;;;AAMAc,sBAAc,sBAAUhB,KAAV,EAAiB;AAC3B,gBAAIiB,SAAS,qBAAEC,UAAF,CAAa,KAAK7B,UAAlB,IAAgC,KAAKA,UAAL,CAAgBW,KAAhB,CAAhC,GAAyD,KAAKX,UAA3E;AACA,gBAAI8B,OAAO,qBAAExC,MAAF,CAAS,EAAT,EAAasC,MAAb,CAAX;AACAE,iBAAK,KAAK5B,cAAV,IAA4BS,KAA5B;AACA,mBAAOmB,IAAP;AACH,SAlG+C;;AAoGhD;;;;;;AAMAZ,eAAO,eAAUP,KAAV,EAAiB;AACpB,gBAAImB,OAAO,KAAKH,YAAL,CAAkBhB,KAAlB,CAAX;AACA;AACA;AACA,gBAAIiB,SAAS,EAACG,KAAK,IAAN,EAAYC,QAAQ,IAApB,EAA0BC,QAAQ,KAAlC,EAAyCH,MAAMA,IAA/C,EAAb;AACA,gBAAIlB,SAAS,mBAASvB,UAAT,CAAoB6C,SAApB,CAA8BhB,KAA9B,CAAoCiB,IAApC,CAAyC,IAAzC,EAA+CP,MAA/C,CAAb;AACA,mBAAOhB,MAAP;AACH,SAjH+C;;AAmHhD;;;;;;;;AAQAG,iBAAS,iBAAUJ,KAAV,EAAiBE,OAAjB,EAA0B;AAC/B,iBAAKM,OAAL,CAAa,SAAb,EAAwB;AACpBR,uBAAOA,KADa;AAEpBE,yBAASA;AAFW,aAAxB;AAIA,mBAAOA,OAAP;AACH,SAjI+C;;AAmIhD;;;;;;;;;;;;AAYAnB,iBAAS,iBAAU0C,IAAV,EAAgBzB,KAAhB,EAAuB,CAAG,CA/Ia,EA+IX;;AAErC;;;;;;;;;AASAG,4BAAoB,4BAAUH,KAAV,EAAiB;AACjC,gBAAIE,UAAU,EAAd;AACA,gBAAI,CAACF,KAAL,EAAY;AACR,uBAAOE,OAAP;AACH;AACDA,sBAAU,KAAKwB,MAAL,CAAY,UAAUD,IAAV,EAAgB;AAClC,uBAAO,CAAC,CAAC,KAAK1C,OAAL,CAAa0C,IAAb,EAAmBzB,KAAnB,CAAT;AACH,aAFS,EAEP,IAFO,CAAV;AAGA,gBAAI,KAAKb,WAAT,EAAsB;AAClBe,0BAAU,qBAAEyB,KAAF,CAAQzB,OAAR,EAAiB,KAAKf,WAAtB,CAAV;AACH;AACD,mBAAOe,OAAP;AACH,SAtK+C;;AAwKhD;;;;;;;;AAQAa,uBAAe,uBAAUf,KAAV,EAAiB4B,QAAjB,EAA2Bd,GAA3B,EAAgC;AAC3C,gBAAIe,QAAQ,KAAKjC,UAAjB;AACA,gBAAIM,UAAU,KAAK4B,KAAL,CAAWF,QAAX,EAAqBd,GAArB,CAAd;AACAe,kBAAM7B,KAAN,IAAe,qBAAE+B,KAAF,CAAQ7B,OAAR,EAAiB,KAAKjB,YAAtB,CAAf;AACH,SApL+C;;AAsLhD;;;;;;AAMAoB,uBAAe,uBAAUL,KAAV,EAAiB;AAC5B,mBAAO,KAAKJ,UAAL,CAAgBoC,cAAhB,CAA+BhC,KAA/B,CAAP;AACH,SA9L+C;;AAgMhD;;;;;;AAMAiC,wBAAgB,wBAAUjC,KAAV,EAAiB;AAC7B,mBAAO,KAAKJ,UAAL,CAAgBI,KAAhB,CAAP;AACH,SAxM+C;;AA0MhD;;;;;;AAMAM,8BAAsB,8BAAUJ,OAAV,EAAmB;AACrC,mBAAOA,QAAQgC,MAAR,GAAiB,KAAK/C,WAA7B;AACH,SAlN+C;;AAoNhD;;;;;AAKAgD,uBAAe,uBAAUC,MAAV,EAAkB;AAC7B,iBAAKjD,WAAL,GAAmBiD,MAAnB;AACA,iBAAKzC,KAAL,IAAc,KAAKS,OAAL,CAAa,KAAKT,KAAlB,EAAyB,KAAKQ,kBAAL,CAAwB,KAAKR,KAA7B,CAAzB,CAAd;AACH;AA5N+C,KAA3B,CAAzB;;AA+NA,6BAAU,oBAAV,EAAgClB,kBAAhC;;sBAEeA,kB","file":"progressive-data-set.js","sourcesContent":["'use strict';\n\nimport _ from './underscore';\nimport Backbone from './backbone';\nimport globalize from './internal/globalize';\n\n/**\n * @fileOverview describes a ProgressiveDataSet object.\n *\n * This object serves as part of a series of components to handle the various aspects of autocomplete controls.\n */\nvar ProgressiveDataSet = Backbone.Collection.extend({\n /**\n * A queryable set of data that optimises the speed at which responses can be provided.\n *\n * ProgressiveDataSet should be given a matcher function so that it may filter results for queries locally.\n *\n * ProgressiveDataSet can be given a remote query endpoint to fetch data from. Should a remote endpoint\n * be provided, ProgressiveDataSet will leverage both client-side matching and query caching to reduce\n * the number of times the remote source need be queried.\n *\n * @example\n * var source = new ProgressiveDataSet([], {\n * model: Backbone.Model.extend({ idAttribute: \"username\" }),\n * queryEndpoint: \"/jira/rest/latest/users\",\n * queryParamKey: \"username\",\n * matcher: function(model, query) {\n * return _.startsWith(model.get('username'), query);\n * }\n * });\n * source.on('respond', doStuffWithMatchingResults);\n * source.query('john');\n *\n * @property {String} value the latest query for which the ProgressiveDataSet is responding to.\n * @property {Number} activeQueryCount the number of queries being run remotely.\n */\n initialize: function (models, options) {\n options || (options = {});\n if (options.matcher) {\n this.matcher = options.matcher;\n }\n if (options.model) {\n this.model = options.model; // Fixed in backbone 0.9.2\n }\n this._idAttribute = (new this.model()).idAttribute;\n this._maxResults = options.maxResults || 5;\n this._queryData = options.queryData || {};\n this._queryParamKey = options.queryParamKey || 'q';\n this._queryEndpoint = options.queryEndpoint || '';\n this.value = null;\n this.queryCache = {};\n this.activeQueryCount = 0;\n _.bindAll(this, 'query', 'respond');\n },\n\n url: function () {\n return this._queryEndpoint;\n },\n\n /**\n * Sets and runs a query against the ProgressiveDataSet.\n *\n * Bind to ProgressiveDataSet's 'respond' event to receive the results that match the latest query.\n *\n * @param {String} query the query to run.\n */\n query: function (query) {\n var remote;\n var results;\n\n this.value = query;\n results = this.getFilteredResults(query);\n this.respond(query, results);\n\n if (!query || !this._queryEndpoint || this.hasQueryCache(query) || !this.shouldGetMoreResults(results)) {\n return;\n }\n\n remote = this.fetch(query);\n\n this.activeQueryCount++;\n this.trigger('activity', {activity: true});\n\n remote.always(() => {\n this.activeQueryCount--;\n this.trigger('activity', {activity: !!this.activeQueryCount});\n });\n\n remote.done((resp, succ, xhr) => {\n this.addQueryCache(query, resp, xhr);\n });\n remote.done(() => {\n query = this.value;\n results = this.getFilteredResults(query);\n this.respond(query, results);\n });\n },\n\n /**\n * Gets all the data that should be sent in a remote request for data.\n * @param {String} query the value of the query to be run.\n * @return {Object} the data to to be sent to the remote when querying it.\n * @private\n */\n getQueryData: function (query) {\n var params = _.isFunction(this._queryData) ? this._queryData(query) : this._queryData;\n var data = _.extend({}, params);\n data[this._queryParamKey] = query;\n return data;\n },\n\n /**\n * Get data from a remote source that matches the query, and add it to this ProgressiveDataSet's set.\n *\n * @param {String} query the value of the query to be run.\n * @return {jQuery.Deferred} a deferred object representing the remote request.\n */\n fetch: function (query) {\n var data = this.getQueryData(query);\n // {add: true} for Backbone <= 0.9.2\n // {update: true, remove: false} for Backbone >= 0.9.9\n var params = {add: true, update: true, remove: false, data: data};\n var remote = Backbone.Collection.prototype.fetch.call(this, params);\n return remote;\n },\n\n /**\n * Triggers the 'respond' event on this ProgressiveDataSet for the given query and associated results.\n *\n * @param {String} query the query that was run\n * @param {Array} results a set of results that matched the query.\n * @return {Array} the results.\n * @private\n */\n respond: function (query, results) {\n this.trigger('respond', {\n query: query,\n results: results\n });\n return results;\n },\n\n /**\n * A hook-point to define a function that tests whether a model matches a query or not.\n *\n * This will be called by getFilteredResults in order to generate the list of results for a query.\n *\n * (For you java folks, it's essentially a predicate.)\n *\n * @param {Backbone.Model} item a model of the data to check for a match in.\n * @param {String} query the value to test against the item.\n * @returns {Boolean} true if the model matches the query, otherwise false.\n * @function\n */\n matcher: function (item, query) { }, // eslint-disable-line no-unused-vars\n\n /**\n * Filters the set of data contained by the ProgressiveDataSet down to a smaller set of results.\n *\n * The set will only consist of Models that \"match\" the query -- i.e., only Models where\n * a call to ProgressiveDataSet#matcher returns true.\n *\n * @param query {String} the value that results should match (according to the matcher function)\n * @return {Array} A set of Backbone Models that match the query.\n */\n getFilteredResults: function (query) {\n var results = [];\n if (!query) {\n return results;\n }\n results = this.filter(function (item) {\n return !!this.matcher(item, query);\n }, this);\n if (this._maxResults) {\n results = _.first(results, this._maxResults);\n }\n return results;\n },\n\n /**\n * Store a response in the query cache for a given query.\n *\n * @param {String} query the value to cache a response for.\n * @param {Object} response the data of the response from the server.\n * @param {XMLHttpRequest} xhr\n * @private\n */\n addQueryCache: function (query, response, xhr) {\n var cache = this.queryCache;\n var results = this.parse(response, xhr);\n cache[query] = _.pluck(results, this._idAttribute);\n },\n\n /**\n * Check if there is a query cache entry for a given query.\n *\n * @param query the value to check in the cache\n * @return {Boolean} true if the cache contains a response for the query, false otherwise.\n */\n hasQueryCache: function (query) {\n return this.queryCache.hasOwnProperty(query);\n },\n\n /**\n * Get the query cache entry for a given query.\n *\n * @param query the value to check in the cache\n * @return {Object[]} an array of values representing the IDs of the models the response for this query contained.\n */\n findQueryCache: function (query) {\n return this.queryCache[query];\n },\n\n /**\n *\n * @param {Array} results the set of results we know about right now.\n * @return {Boolean} true if the ProgressiveDataSet should look for more results.\n * @private\n */\n shouldGetMoreResults: function (results) {\n return results.length < this._maxResults;\n },\n\n /**\n *\n * @note Changing this value will trigger ProgressiveDataSet#event:respond if there is a query.\n * @param {Number} number how many results should the ProgressiveDataSet aim to retrieve for a query.\n */\n setMaxResults: function (number) {\n this._maxResults = number;\n this.value && this.respond(this.value, this.getFilteredResults(this.value));\n }\n});\n\nglobalize('ProgressiveDataSet', ProgressiveDataSet);\n\nexport default ProgressiveDataSet;\n"]}
|
|
1
|
+
{"version":3,"sources":["js/aui/progressive-data-set.js"],"names":["ProgressiveDataSet","Backbone","Collection","extend","initialize","models","options","matcher","model","_idAttribute","idAttribute","_maxResults","maxResults","_queryData","queryData","_queryParamKey","queryParamKey","_queryEndpoint","queryEndpoint","value","queryCache","activeQueryCount","_","bindAll","url","query","remote","results","getFilteredResults","respond","hasQueryCache","shouldGetMoreResults","fetch","trigger","activity","always","done","resp","succ","xhr","addQueryCache","getQueryData","params","isFunction","data","add","update","remove","prototype","call","item","filter","first","response","cache","parse","pluck","hasOwnProperty","findQueryCache","length","setMaxResults","number"],"mappings":";;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;AAMA;;;;;AAKA,QAAIA,qBAAqBC,mBAASC,UAAT,CAAoBC,MAApB,CAA2B;AAChD;;;;;;;;;;;;;;;;;;;;;;;;AAwBAC,oBAAY,oBAAUC,MAAV,EAAkBC,OAAlB,EAA2B;AACnCA,wBAAYA,UAAU,EAAtB;AACA,gBAAIA,QAAQC,OAAZ,EAAqB;AACjB,qBAAKA,OAAL,GAAeD,QAAQC,OAAvB;AACH;AACD,gBAAID,QAAQE,KAAZ,EAAmB;AACf,qBAAKA,KAAL,GAAaF,QAAQE,KAArB,CADe,CACa;AAC/B;AACD,iBAAKC,YAAL,GAAqB,IAAI,KAAKD,KAAT,EAAD,CAAmBE,WAAvC;AACA,iBAAKC,WAAL,GAAmBL,QAAQM,UAAR,IAAsB,CAAzC;AACA,iBAAKC,UAAL,GAAkBP,QAAQQ,SAAR,IAAqB,EAAvC;AACA,iBAAKC,cAAL,GAAsBT,QAAQU,aAAR,IAAyB,GAA/C;AACA,iBAAKC,cAAL,GAAsBX,QAAQY,aAAR,IAAyB,EAA/C;AACA,iBAAKC,KAAL,GAAa,IAAb;AACA,iBAAKC,UAAL,GAAkB,EAAlB;AACA,iBAAKC,gBAAL,GAAwB,CAAxB;AACAC,iCAAEC,OAAF,CAAU,IAAV,EAAgB,OAAhB,EAAyB,SAAzB;AACH,SA1C+C;;AA4ChDC,aAAK,eAAY;AACb,mBAAO,KAAKP,cAAZ;AACH,SA9C+C;;AAgDhD;;;;;;;AAOAQ,eAAO,eAAUA,MAAV,EAAiB;AAAA;;AACpB,gBAAIC,MAAJ;AACA,gBAAIC,OAAJ;;AAEA,iBAAKR,KAAL,GAAaM,MAAb;AACAE,sBAAU,KAAKC,kBAAL,CAAwBH,MAAxB,CAAV;AACA,iBAAKI,OAAL,CAAaJ,MAAb,EAAoBE,OAApB;;AAEA,gBAAI,CAACF,MAAD,IAAU,CAAC,KAAKR,cAAhB,IAAkC,KAAKa,aAAL,CAAmBL,MAAnB,CAAlC,IAA+D,CAAC,KAAKM,oBAAL,CAA0BJ,OAA1B,CAApE,EAAwG;AACpG;AACH;;AAEDD,qBAAS,KAAKM,KAAL,CAAWP,MAAX,CAAT;;AAEA,iBAAKJ,gBAAL;AACA,iBAAKY,OAAL,CAAa,UAAb,EAAyB,EAACC,UAAU,IAAX,EAAzB;;AAEAR,mBAAOS,MAAP,CAAc,YAAM;AAChB,sBAAKd,gBAAL;AACA,sBAAKY,OAAL,CAAa,UAAb,EAAyB,EAACC,UAAU,CAAC,CAAC,MAAKb,gBAAlB,EAAzB;AACH,aAHD;;AAKAK,mBAAOU,IAAP,CAAY,UAACC,IAAD,EAAOC,IAAP,EAAaC,GAAb,EAAqB;AAC7B,sBAAKC,aAAL,CAAmBf,MAAnB,EAA0BY,IAA1B,EAAgCE,GAAhC;AACH,aAFD;AAGAb,mBAAOU,IAAP,CAAY,YAAM;AACdX,yBAAQ,MAAKN,KAAb;AACAQ,0BAAU,MAAKC,kBAAL,CAAwBH,MAAxB,CAAV;AACA,sBAAKI,OAAL,CAAaJ,MAAb,EAAoBE,OAApB;AACH,aAJD;AAKH,SArF+C;;AAuFhD;;;;;;AAMAc,sBAAc,sBAAUhB,KAAV,EAAiB;AAC3B,gBAAIiB,SAASpB,qBAAEqB,UAAF,CAAa,KAAK9B,UAAlB,IAAgC,KAAKA,UAAL,CAAgBY,KAAhB,CAAhC,GAAyD,KAAKZ,UAA3E;AACA,gBAAI+B,OAAOtB,qBAAEnB,MAAF,CAAS,EAAT,EAAauC,MAAb,CAAX;AACAE,iBAAK,KAAK7B,cAAV,IAA4BU,KAA5B;AACA,mBAAOmB,IAAP;AACH,SAlG+C;;AAoGhD;;;;;;AAMAZ,eAAO,eAAUP,KAAV,EAAiB;AACpB,gBAAImB,OAAO,KAAKH,YAAL,CAAkBhB,KAAlB,CAAX;AACA;AACA;AACA,gBAAIiB,SAAS,EAACG,KAAK,IAAN,EAAYC,QAAQ,IAApB,EAA0BC,QAAQ,KAAlC,EAAyCH,MAAMA,IAA/C,EAAb;AACA,gBAAIlB,SAASzB,mBAASC,UAAT,CAAoB8C,SAApB,CAA8BhB,KAA9B,CAAoCiB,IAApC,CAAyC,IAAzC,EAA+CP,MAA/C,CAAb;AACA,mBAAOhB,MAAP;AACH,SAjH+C;;AAmHhD;;;;;;;;AAQAG,iBAAS,iBAAUJ,KAAV,EAAiBE,OAAjB,EAA0B;AAC/B,iBAAKM,OAAL,CAAa,SAAb,EAAwB;AACpBR,uBAAOA,KADa;AAEpBE,yBAASA;AAFW,aAAxB;AAIA,mBAAOA,OAAP;AACH,SAjI+C;;AAmIhD;;;;;;;;;;;;AAYApB,iBAAS,iBAAU2C,IAAV,EAAgBzB,KAAhB,EAAuB,CAAG,CA/Ia,EA+IX;;AAErC;;;;;;;;;AASAG,4BAAoB,4BAAUH,KAAV,EAAiB;AACjC,gBAAIE,UAAU,EAAd;AACA,gBAAI,CAACF,KAAL,EAAY;AACR,uBAAOE,OAAP;AACH;AACDA,sBAAU,KAAKwB,MAAL,CAAY,UAAUD,IAAV,EAAgB;AAClC,uBAAO,CAAC,CAAC,KAAK3C,OAAL,CAAa2C,IAAb,EAAmBzB,KAAnB,CAAT;AACH,aAFS,EAEP,IAFO,CAAV;AAGA,gBAAI,KAAKd,WAAT,EAAsB;AAClBgB,0BAAUL,qBAAE8B,KAAF,CAAQzB,OAAR,EAAiB,KAAKhB,WAAtB,CAAV;AACH;AACD,mBAAOgB,OAAP;AACH,SAtK+C;;AAwKhD;;;;;;;;AAQAa,uBAAe,uBAAUf,KAAV,EAAiB4B,QAAjB,EAA2Bd,GAA3B,EAAgC;AAC3C,gBAAIe,QAAQ,KAAKlC,UAAjB;AACA,gBAAIO,UAAU,KAAK4B,KAAL,CAAWF,QAAX,EAAqBd,GAArB,CAAd;AACAe,kBAAM7B,KAAN,IAAeH,qBAAEkC,KAAF,CAAQ7B,OAAR,EAAiB,KAAKlB,YAAtB,CAAf;AACH,SApL+C;;AAsLhD;;;;;;AAMAqB,uBAAe,uBAAUL,KAAV,EAAiB;AAC5B,mBAAO,KAAKL,UAAL,CAAgBqC,cAAhB,CAA+BhC,KAA/B,CAAP;AACH,SA9L+C;;AAgMhD;;;;;;AAMAiC,wBAAgB,wBAAUjC,KAAV,EAAiB;AAC7B,mBAAO,KAAKL,UAAL,CAAgBK,KAAhB,CAAP;AACH,SAxM+C;;AA0MhD;;;;;;AAMAM,8BAAsB,8BAAUJ,OAAV,EAAmB;AACrC,mBAAOA,QAAQgC,MAAR,GAAiB,KAAKhD,WAA7B;AACH,SAlN+C;;AAoNhD;;;;;AAKAiD,uBAAe,uBAAUC,MAAV,EAAkB;AAC7B,iBAAKlD,WAAL,GAAmBkD,MAAnB;AACA,iBAAK1C,KAAL,IAAc,KAAKU,OAAL,CAAa,KAAKV,KAAlB,EAAyB,KAAKS,kBAAL,CAAwB,KAAKT,KAA7B,CAAzB,CAAd;AACH;AA5N+C,KAA3B,CAAzB;;AA+NA,6BAAU,oBAAV,EAAgCnB,kBAAhC;;sBAEeA,kB","file":"progressive-data-set.js","sourcesContent":["'use strict';\n\nimport _ from './underscore';\nimport Backbone from './backbone';\nimport globalize from './internal/globalize';\n\n/**\n * @fileOverview describes a ProgressiveDataSet object.\n *\n * This object serves as part of a series of components to handle the various aspects of autocomplete controls.\n */\nvar ProgressiveDataSet = Backbone.Collection.extend({\n /**\n * A queryable set of data that optimises the speed at which responses can be provided.\n *\n * ProgressiveDataSet should be given a matcher function so that it may filter results for queries locally.\n *\n * ProgressiveDataSet can be given a remote query endpoint to fetch data from. Should a remote endpoint\n * be provided, ProgressiveDataSet will leverage both client-side matching and query caching to reduce\n * the number of times the remote source need be queried.\n *\n * @example\n * var source = new ProgressiveDataSet([], {\n * model: Backbone.Model.extend({ idAttribute: \"username\" }),\n * queryEndpoint: \"/jira/rest/latest/users\",\n * queryParamKey: \"username\",\n * matcher: function(model, query) {\n * return _.startsWith(model.get('username'), query);\n * }\n * });\n * source.on('respond', doStuffWithMatchingResults);\n * source.query('john');\n *\n * @property {String} value the latest query for which the ProgressiveDataSet is responding to.\n * @property {Number} activeQueryCount the number of queries being run remotely.\n */\n initialize: function (models, options) {\n options || (options = {});\n if (options.matcher) {\n this.matcher = options.matcher;\n }\n if (options.model) {\n this.model = options.model; // Fixed in backbone 0.9.2\n }\n this._idAttribute = (new this.model()).idAttribute;\n this._maxResults = options.maxResults || 5;\n this._queryData = options.queryData || {};\n this._queryParamKey = options.queryParamKey || 'q';\n this._queryEndpoint = options.queryEndpoint || '';\n this.value = null;\n this.queryCache = {};\n this.activeQueryCount = 0;\n _.bindAll(this, 'query', 'respond');\n },\n\n url: function () {\n return this._queryEndpoint;\n },\n\n /**\n * Sets and runs a query against the ProgressiveDataSet.\n *\n * Bind to ProgressiveDataSet's 'respond' event to receive the results that match the latest query.\n *\n * @param {String} query the query to run.\n */\n query: function (query) {\n var remote;\n var results;\n\n this.value = query;\n results = this.getFilteredResults(query);\n this.respond(query, results);\n\n if (!query || !this._queryEndpoint || this.hasQueryCache(query) || !this.shouldGetMoreResults(results)) {\n return;\n }\n\n remote = this.fetch(query);\n\n this.activeQueryCount++;\n this.trigger('activity', {activity: true});\n\n remote.always(() => {\n this.activeQueryCount--;\n this.trigger('activity', {activity: !!this.activeQueryCount});\n });\n\n remote.done((resp, succ, xhr) => {\n this.addQueryCache(query, resp, xhr);\n });\n remote.done(() => {\n query = this.value;\n results = this.getFilteredResults(query);\n this.respond(query, results);\n });\n },\n\n /**\n * Gets all the data that should be sent in a remote request for data.\n * @param {String} query the value of the query to be run.\n * @return {Object} the data to to be sent to the remote when querying it.\n * @private\n */\n getQueryData: function (query) {\n var params = _.isFunction(this._queryData) ? this._queryData(query) : this._queryData;\n var data = _.extend({}, params);\n data[this._queryParamKey] = query;\n return data;\n },\n\n /**\n * Get data from a remote source that matches the query, and add it to this ProgressiveDataSet's set.\n *\n * @param {String} query the value of the query to be run.\n * @return {jQuery.Deferred} a deferred object representing the remote request.\n */\n fetch: function (query) {\n var data = this.getQueryData(query);\n // {add: true} for Backbone <= 0.9.2\n // {update: true, remove: false} for Backbone >= 0.9.9\n var params = {add: true, update: true, remove: false, data: data};\n var remote = Backbone.Collection.prototype.fetch.call(this, params);\n return remote;\n },\n\n /**\n * Triggers the 'respond' event on this ProgressiveDataSet for the given query and associated results.\n *\n * @param {String} query the query that was run\n * @param {Array} results a set of results that matched the query.\n * @return {Array} the results.\n * @private\n */\n respond: function (query, results) {\n this.trigger('respond', {\n query: query,\n results: results\n });\n return results;\n },\n\n /**\n * A hook-point to define a function that tests whether a model matches a query or not.\n *\n * This will be called by getFilteredResults in order to generate the list of results for a query.\n *\n * (For you java folks, it's essentially a predicate.)\n *\n * @param {Backbone.Model} item a model of the data to check for a match in.\n * @param {String} query the value to test against the item.\n * @returns {Boolean} true if the model matches the query, otherwise false.\n * @function\n */\n matcher: function (item, query) { }, // eslint-disable-line no-unused-vars\n\n /**\n * Filters the set of data contained by the ProgressiveDataSet down to a smaller set of results.\n *\n * The set will only consist of Models that \"match\" the query -- i.e., only Models where\n * a call to ProgressiveDataSet#matcher returns true.\n *\n * @param query {String} the value that results should match (according to the matcher function)\n * @return {Array} A set of Backbone Models that match the query.\n */\n getFilteredResults: function (query) {\n var results = [];\n if (!query) {\n return results;\n }\n results = this.filter(function (item) {\n return !!this.matcher(item, query);\n }, this);\n if (this._maxResults) {\n results = _.first(results, this._maxResults);\n }\n return results;\n },\n\n /**\n * Store a response in the query cache for a given query.\n *\n * @param {String} query the value to cache a response for.\n * @param {Object} response the data of the response from the server.\n * @param {XMLHttpRequest} xhr\n * @private\n */\n addQueryCache: function (query, response, xhr) {\n var cache = this.queryCache;\n var results = this.parse(response, xhr);\n cache[query] = _.pluck(results, this._idAttribute);\n },\n\n /**\n * Check if there is a query cache entry for a given query.\n *\n * @param query the value to check in the cache\n * @return {Boolean} true if the cache contains a response for the query, false otherwise.\n */\n hasQueryCache: function (query) {\n return this.queryCache.hasOwnProperty(query);\n },\n\n /**\n * Get the query cache entry for a given query.\n *\n * @param query the value to check in the cache\n * @return {Object[]} an array of values representing the IDs of the models the response for this query contained.\n */\n findQueryCache: function (query) {\n return this.queryCache[query];\n },\n\n /**\n *\n * @param {Array} results the set of results we know about right now.\n * @return {Boolean} true if the ProgressiveDataSet should look for more results.\n * @private\n */\n shouldGetMoreResults: function (results) {\n return results.length < this._maxResults;\n },\n\n /**\n *\n * @note Changing this value will trigger ProgressiveDataSet#event:respond if there is a query.\n * @param {Number} number how many results should the ProgressiveDataSet aim to retrieve for a query.\n */\n setMaxResults: function (number) {\n this._maxResults = number;\n this.value && this.respond(this.value, this.getFilteredResults(this.value));\n }\n});\n\nglobalize('ProgressiveDataSet', ProgressiveDataSet);\n\nexport default ProgressiveDataSet;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["js/aui/query-input.js"],"names":["QueryInput","View","extend","initialize","bindAll","_lastValue","val","$el","bind","changed","apply","arguments","trigger"],"mappings":";;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;AAMA,QAAIA,
|
|
1
|
+
{"version":3,"sources":["js/aui/query-input.js"],"names":["QueryInput","Backbone","View","extend","initialize","_","bindAll","_lastValue","val","$el","bind","changed","apply","arguments","trigger"],"mappings":";;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;AAMA,QAAIA,aAAaC,mBAASC,IAAT,CAAcC,MAAd,CAAqB;AAClCC,oBAAY,sBAAY;AACpBC,iCAAEC,OAAF,CAAU,IAAV,EAAgB,SAAhB,EAA2B,KAA3B;AACA,iBAAKC,UAAL,GAAkB,KAAKC,GAAL,EAAlB;AACA,iBAAKC,GAAL,CAASC,IAAT,CAAc,aAAd,EAA6B,KAAKC,OAAlC;AACH,SALiC;;AAOlCH,aAAK,eAAY;AACb,mBAAO,KAAKC,GAAL,CAASD,GAAT,CAAaI,KAAb,CAAmB,KAAKH,GAAxB,EAA6BI,SAA7B,CAAP;AACH,SATiC;;AAWlCF,iBAAS,mBAAY;AACjB,gBAAI,KAAKJ,UAAL,KAAoB,KAAKC,GAAL,EAAxB,EAAoC;AAChC,qBAAKM,OAAL,CAAa,QAAb,EAAuB,KAAKN,GAAL,EAAvB;AACA,qBAAKD,UAAL,GAAkB,KAAKC,GAAL,EAAlB;AACH;AACJ;AAhBiC,KAArB,CAAjB;;AAmBA,6BAAU,YAAV,EAAwBR,UAAxB;;sBAEeA,U","file":"query-input.js","sourcesContent":["'use strict';\n\nimport _ from './underscore';\nimport Backbone from './backbone';\nimport globalize from './internal/globalize';\n\nvar QueryInput = Backbone.View.extend({\n initialize: function () {\n _.bindAll(this, 'changed', 'val');\n this._lastValue = this.val();\n this.$el.bind('keyup focus', this.changed);\n },\n\n val: function () {\n return this.$el.val.apply(this.$el, arguments);\n },\n\n changed: function () {\n if (this._lastValue !== this.val()) {\n this.trigger('change', this.val());\n this._lastValue = this.val();\n }\n }\n});\n\nglobalize('QueryInput', QueryInput);\n\nexport default QueryInput;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["js/aui/restful-table/custom-create-view.js"],"names":["View"],"mappings":";;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["js/aui/restful-table/custom-create-view.js"],"names":["Backbone","View"],"mappings":";;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;oBAGeA,mBAASC,I","file":"custom-create-view.js","sourcesContent":["'use strict';\n\nimport Backbone from '../backbone';\nexport default Backbone.View;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["js/aui/restful-table/custom-edit-view.js"],"names":["View"],"mappings":";;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["js/aui/restful-table/custom-edit-view.js"],"names":["Backbone","View"],"mappings":";;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;oBAGeA,mBAASC,I","file":"custom-edit-view.js","sourcesContent":["'use strict';\n\nimport Backbone from '../backbone';\nexport default Backbone.View;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["js/aui/restful-table/custom-read-view.js"],"names":["View"],"mappings":";;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["js/aui/restful-table/custom-read-view.js"],"names":["Backbone","View"],"mappings":";;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;oBAGeA,mBAASC,I","file":"custom-read-view.js","sourcesContent":["'use strict';\n\nimport Backbone from '../backbone';\nexport default Backbone.View;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["js/aui/restful-table/edit-row.js"],"names":["isFirefox","navigator","userAgent","toLowerCase","indexOf","View","extend","tagName","events","initialize","options","$el","el","_event","classNames","dataKeys","columns","isCreateRow","allowReorder","CANCEL","delegateEvents","isUpdateMode","_modelClass","model","fieldFocusSelector","bind","disabled","SAVE","focusUpdated","submit","FOCUS","name","focus","BLUR","removeClass","FOCUSED","disable","SUBMIT_STARTED","_submitStarted","SUBMIT_FINISHED","_submitFinished","defaultColumnRenderer","data","allowEdit","addClass","attr","value","document","createTextNode","renderDragHandle","DRAG_HANDLE","_handleKeyUpEvent","e","keyCode","trigger","_cancel","preventDefault","submitting","showLoading","hideLoading","enable","_focus","hasFocus","target","hasClass","$focus","$error","find","ERROR","length","parent","$replacementSubmit","$submit","SUBMIT","val","ENABLED_SUBMIT","replaceWith","DISABLED","$placeholderSubmit","removeAttr","LOADING","hasUpdates","mapSubmitParams","serializeObject","serialize","params","changedAttributes","instance","values","activeElement","window","blur","clear","save","success","UPDATED","CREATED","toJSON","render","errors","error","xhr","status","renderErrors","VALIDATION_ERROR","silent","renderError","msg","text","$","remove","each","closest","append","renderData","empty","ORDER","appendTo","i","column","contents","$cell","id","args","createView","editView","apply","done","styleClass","renderOperations","update","ROW","EDIT_ROW","RENDER","CONTENT_REFRESHED","$operations","accesskey","submitAccessKey","AJS","I18n","getText","cancelAccessKey","add"],"mappings":"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","file":"edit-row.js","sourcesContent":["'use strict';\n\nimport $ from '../jquery';\nimport '../../../js-vendor/jquery/serializetoobject';\nimport Backbone from '../backbone';\nimport classNames from './class-names';\nimport dataKeys from './data-keys';\nimport events from './events';\nimport i18n from '../i18n';\nimport throbber from './throbber';\n\nvar isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n\n/**\n * An abstract class that gives the required behaviour for the creating and editing entries. Extend this class and pass\n * it as the {views.row} property of the options passed to RestfulTable in construction.\n */\nexport default Backbone.View.extend({\n tagName: 'tr',\n\n // delegate events\n events: {\n 'focusin': '_focus',\n 'click': '_focus',\n 'keyup': '_handleKeyUpEvent'\n },\n\n /**\n * @constructor\n * @param {Object} options\n */\n initialize: function (options) {\n this.$el = $(this.el);\n\n // faster lookup\n this._event = events;\n this.classNames = classNames;\n this.dataKeys = dataKeys;\n this.columns = options.columns;\n this.isCreateRow = options.isCreateRow;\n this.allowReorder = options.allowReorder;\n\n // Allow cancelling an edit with support for setting a new element.\n this.events['click .' + this.classNames.CANCEL] = '_cancel';\n this.delegateEvents();\n\n if (options.isUpdateMode) {\n this.isUpdateMode = true;\n } else {\n this._modelClass = options.model;\n this.model = new this._modelClass();\n }\n\n this.fieldFocusSelector = options.fieldFocusSelector;\n this.bind(this._event.CANCEL, function () {\n this.disabled = true;\n })\n .bind(this._event.SAVE, function (focusUpdated) {\n if (!this.disabled) {\n this.submit(focusUpdated);\n }\n })\n .bind(this._event.FOCUS, function (name) {\n this.focus(name);\n })\n .bind(this._event.BLUR, function () {\n this.$el.removeClass(this.classNames.FOCUSED);\n this.disable();\n })\n .bind(this._event.SUBMIT_STARTED, function () {\n this._submitStarted();\n })\n .bind(this._event.SUBMIT_FINISHED, function () {\n this._submitFinished();\n });\n },\n\n /**\n * Renders default cell contents\n *\n * @param data\n */\n defaultColumnRenderer: function (data) {\n if (data.allowEdit !== false) {\n return $(\"<input type='text' />\")\n .addClass('text')\n .attr({\n name: data.name,\n value: data.value\n });\n } else if (data.value) {\n return document.createTextNode(data.value);\n }\n },\n\n /**\n * Renders drag handle\n * @return jQuery\n */\n renderDragHandle: function () {\n return '<span class=\"' + this.classNames.DRAG_HANDLE + '\"></span></td>';\n },\n\n /**\n * Executes cancel event if ESC is pressed\n *\n * @param {Event} e\n */\n _handleKeyUpEvent: function (e) {\n if (e.keyCode === 27) {\n this.trigger(this._event.CANCEL);\n }\n },\n\n /**\n * Fires cancel event\n *\n * @param {Event} e\n *\n * @return EditRow\n */\n _cancel: function (e) {\n this.trigger(this._event.CANCEL);\n e.preventDefault();\n return this;\n },\n\n /**\n * Disables events/fields and adds safe guard against double submitting\n *\n * @return EditRow\n */\n _submitStarted: function () {\n this.submitting = true;\n this.showLoading()\n .disable()\n .delegateEvents({});\n\n return this;\n },\n\n /**\n * Enables events & fields\n *\n * @return EditRow\n */\n _submitFinished: function () {\n this.submitting = false;\n this.hideLoading()\n .enable()\n .delegateEvents(this.events);\n\n return this;\n },\n\n /**\n * Handles dom focus event, by only focusing row if it isn't already\n *\n * @param {Event} e\n *\n * @return EditRow\n */\n _focus: function (e) {\n if (!this.hasFocus()) {\n this.trigger(this._event.FOCUS, e.target.name);\n }\n return this;\n },\n\n\n /**\n * Returns true if row has focused class\n *\n * @return Boolean\n */\n hasFocus: function () {\n return this.$el.hasClass(this.classNames.FOCUSED);\n },\n\n /**\n * Focus specified field (by name or id - first argument), first field with an error or first field (DOM order)\n *\n * @param name\n *\n * @return EditRow\n */\n focus: function (name) {\n var $focus;\n var $error;\n\n this.enable();\n\n if (name) {\n $focus = this.$el.find(this.fieldFocusSelector(name));\n } else {\n\n $error = this.$el.find(this.classNames.ERROR + ':first');\n\n if ($error.length === 0) {\n $focus = this.$el.find(':input:text:first');\n } else {\n $focus = $error.parent().find(':input');\n }\n }\n\n this.$el.addClass(this.classNames.FOCUSED);\n $focus.focus().trigger('select');\n\n return this;\n },\n\n /**\n * Disables all fields\n *\n * @return EditRow\n */\n disable: function () {\n var $replacementSubmit;\n var $submit;\n\n // firefox does not allow you to submit a form if there are 2 or more submit buttons in a form, even if all but\n // one is disabled. It also does not let you change the type=\"submit' to type=\"button\". Therfore he lies the hack.\n if (isFirefox) {\n $submit = this.$el.find(':submit');\n\n if ($submit.length) {\n $replacementSubmit = $(\"<input type='submit' class='\" + this.classNames.SUBMIT + \"' />\")\n .addClass($submit.attr('class'))\n .val($submit.val())\n .data(this.dataKeys.ENABLED_SUBMIT, $submit);\n\n $submit.replaceWith($replacementSubmit);\n }\n }\n\n this.$el.addClass(this.classNames.DISABLED)\n .find(':submit')\n .attr('disabled', 'disabled');\n\n return this;\n },\n\n /**\n * Enables all fields\n *\n * @return EditRow\n */\n enable: function () {\n var $placeholderSubmit;\n var $submit;\n\n // firefox does not allow you to submit a form if there are 2 or more submit buttons in a form, even if all but\n // one is disabled. It also does not let you change the type=\"submit' to type=\"button\". Therfore he lies the hack.\n if (isFirefox) {\n $placeholderSubmit = this.$el.find(this.classNames.SUBMIT);\n $submit = $placeholderSubmit.data(this.dataKeys.ENABLED_SUBMIT);\n\n if ($submit && $placeholderSubmit.length) {\n $placeholderSubmit.replaceWith($submit);\n }\n }\n\n this.$el.removeClass(this.classNames.DISABLED)\n .find(':submit')\n .removeAttr('disabled');\n\n return this;\n },\n\n /**\n * Shows loading indicator\n *\n * @return EditRow\n */\n showLoading: function () {\n this.$el.addClass(this.classNames.LOADING);\n return this;\n },\n\n /**\n * Hides loading indicator\n *\n * @return EditRow\n */\n hideLoading: function () {\n this.$el.removeClass(this.classNames.LOADING);\n return this;\n },\n\n /**\n * If any of the fields have changed\n *\n * @return {Boolean}\n */\n hasUpdates: function () {\n return !!this.mapSubmitParams(this.serializeObject());\n },\n\n /**\n * Serializes the view into model representation.\n * Default implementation uses simple jQuery plugin to serialize form fields into object\n *\n * @return Object\n */\n serializeObject: function () {\n var $el = this.$el;\n return $el.serializeObject ?\n $el.serializeObject() :\n $el.serialize();\n },\n\n mapSubmitParams: function (params) {\n return this.model.changedAttributes(params);\n },\n\n /**\n * Handle submission of new entries and editing of old.\n *\n * @param {Boolean} focusUpdated - flag of whether to focus read-only view after succssful submission\n *\n * @return EditRow\n */\n submit: function (focusUpdated) {\n var instance = this;\n var values;\n\n // IE doesnt like it when the focused element is removed\n if (document.activeElement !== window) {\n $(document.activeElement).blur();\n }\n\n if (this.isUpdateMode) {\n values = this.mapSubmitParams(this.serializeObject()); // serialize form fields into JSON\n\n if (!values) {\n return instance.trigger(instance._event.CANCEL);\n }\n } else {\n this.model.clear();\n values = this.mapSubmitParams(this.serializeObject()); // serialize form fields into JSON\n }\n\n this.trigger(this._event.SUBMIT_STARTED);\n\n /* Attempt to add to server model. If fail delegate to createView to render errors etc. Otherwise,\n add a new model to this._models and render a row to represent it. */\n this.model.save(values, {\n success: function () {\n if (instance.isUpdateMode) {\n instance.trigger(instance._event.UPDATED, instance.model, focusUpdated);\n } else {\n instance.trigger(instance._event.CREATED, instance.model.toJSON());\n\n instance.model = new instance._modelClass(); // reset\n\n instance.render({errors: {}, values: {}}); // pulls in instance's model for create row\n instance.trigger(instance._event.FOCUS);\n }\n\n instance.trigger(instance._event.SUBMIT_FINISHED);\n },\n\n error: function (model, data, xhr) {\n if (xhr.status === 400) {\n instance.renderErrors(data.errors);\n instance.trigger(instance._event.VALIDATION_ERROR, data.errors);\n }\n\n instance.trigger(instance._event.SUBMIT_FINISHED);\n },\n\n silent: true\n });\n\n return this;\n },\n\n /**\n * Render an error message\n *\n * @param msg\n *\n * @return {jQuery}\n */\n renderError: function (name, msg) {\n return $('<div />').attr('data-field', name).addClass(this.classNames.ERROR).text(msg);\n },\n\n /**\n * Render and append error messages. The property name will be matched to the input name to determine which cell to\n * append the error message to. If this does not meet your needs please extend this method.\n *\n * @param errors\n */\n renderErrors: function (errors) {\n var instance = this;\n\n this.$('.' + this.classNames.ERROR).remove(); // avoid duplicates\n\n if (errors) {\n $.each(errors, function (name, msg) {\n instance.$el.find(\"[name='\" + name + \"']\")\n .closest('td')\n .append(instance.renderError(name, msg));\n });\n }\n\n return this;\n },\n\n\n /**\n * Handles rendering of row\n *\n * @param {Object} renderData\n * ... {Object} vales - Values of fields\n */\n render: function (renderData) {\n var instance = this;\n\n this.$el.empty();\n\n if (this.allowReorder) {\n $('<td class=\"' + this.classNames.ORDER + '\" />').append(this.renderDragHandle()).appendTo(instance.$el);\n }\n\n $.each(this.columns, function (i, column) {\n var contents;\n var $cell;\n var value = renderData.values[column.id];\n var args = [\n {name: column.id, value: value, allowEdit: column.allowEdit},\n renderData.values,\n instance.model\n ];\n\n if (value) {\n instance.$el.attr('data-' + column.id, value); // helper for webdriver testing\n }\n\n if (instance.isCreateRow && column.createView) {\n // TODO AUI-1058 - The row's model should be guaranteed to be in the correct state by this point.\n contents = new column.createView({\n model: instance.model\n }).render(args[0]);\n\n } else if (column.editView) {\n contents = new column.editView({\n model: instance.model\n }).render(args[0]);\n } else {\n contents = instance.defaultColumnRenderer.apply(instance, args);\n }\n\n $cell = $('<td />');\n\n if (typeof contents === 'object' && contents.done) {\n contents.done(function (contents) {\n $cell.append(contents);\n });\n } else {\n $cell.append(contents);\n }\n\n if (column.styleClass) {\n $cell.addClass(column.styleClass);\n }\n\n $cell.appendTo(instance.$el);\n });\n\n this.$el\n .append(this.renderOperations(renderData.update, renderData.values)) // add submit/cancel buttons\n .addClass(this.classNames.ROW + ' ' + this.classNames.EDIT_ROW);\n\n this.trigger(this._event.RENDER, this.$el, renderData.values);\n this.$el.trigger(this._event.CONTENT_REFRESHED, [this.$el]);\n\n return this;\n },\n\n /**\n * Gets markup for add/update and cancel buttons\n *\n * @param {Boolean} update\n */\n renderOperations: function (update) {\n var $operations = $('<td class=\"aui-restfultable-operations\" />');\n\n if (update) {\n $operations.append($('<input class=\"aui-button\" type=\"submit\" />').attr({\n accesskey: this.submitAccessKey,\n value: AJS.I18n.getText('aui.words.update')\n }))\n .append($('<a class=\"aui-button aui-button-link\" href=\"#\" />')\n .addClass(this.classNames.CANCEL)\n .text(AJS.I18n.getText('aui.words.cancel'))\n .attr({\n accesskey: this.cancelAccessKey\n }));\n } else {\n $operations.append($('<input class=\"aui-button\" type=\"submit\" />').attr({\n accesskey: this.submitAccessKey,\n value: AJS.I18n.getText('aui.words.add')\n }));\n }\n\n return $operations.add($('<td class=\"aui-restfultable-status\" />').append(throbber()));\n }\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["js/aui/restful-table/edit-row.js"],"names":["isFirefox","navigator","userAgent","toLowerCase","indexOf","Backbone","View","extend","tagName","events","initialize","options","$el","el","_event","classNames","dataKeys","columns","isCreateRow","allowReorder","CANCEL","delegateEvents","isUpdateMode","_modelClass","model","fieldFocusSelector","bind","disabled","SAVE","focusUpdated","submit","FOCUS","name","focus","BLUR","removeClass","FOCUSED","disable","SUBMIT_STARTED","_submitStarted","SUBMIT_FINISHED","_submitFinished","defaultColumnRenderer","data","allowEdit","addClass","attr","value","document","createTextNode","renderDragHandle","DRAG_HANDLE","_handleKeyUpEvent","e","keyCode","trigger","_cancel","preventDefault","submitting","showLoading","hideLoading","enable","_focus","hasFocus","target","hasClass","$focus","$error","find","ERROR","length","parent","$replacementSubmit","$submit","SUBMIT","val","ENABLED_SUBMIT","replaceWith","DISABLED","$placeholderSubmit","removeAttr","LOADING","hasUpdates","mapSubmitParams","serializeObject","serialize","params","changedAttributes","instance","values","activeElement","window","blur","clear","save","success","UPDATED","CREATED","toJSON","render","errors","error","xhr","status","renderErrors","VALIDATION_ERROR","silent","renderError","msg","text","$","remove","each","closest","append","renderData","empty","ORDER","appendTo","i","column","contents","$cell","id","args","createView","editView","apply","done","styleClass","renderOperations","update","ROW","EDIT_ROW","RENDER","CONTENT_REFRESHED","$operations","accesskey","submitAccessKey","AJS","I18n","getText","cancelAccessKey","add"],"mappings":"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","file":"edit-row.js","sourcesContent":["'use strict';\n\nimport $ from '../jquery';\nimport '../../../js-vendor/jquery/serializetoobject';\nimport Backbone from '../backbone';\nimport classNames from './class-names';\nimport dataKeys from './data-keys';\nimport events from './events';\nimport i18n from '../i18n';\nimport throbber from './throbber';\n\nvar isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n\n/**\n * An abstract class that gives the required behaviour for the creating and editing entries. Extend this class and pass\n * it as the {views.row} property of the options passed to RestfulTable in construction.\n */\nexport default Backbone.View.extend({\n tagName: 'tr',\n\n // delegate events\n events: {\n 'focusin': '_focus',\n 'click': '_focus',\n 'keyup': '_handleKeyUpEvent'\n },\n\n /**\n * @constructor\n * @param {Object} options\n */\n initialize: function (options) {\n this.$el = $(this.el);\n\n // faster lookup\n this._event = events;\n this.classNames = classNames;\n this.dataKeys = dataKeys;\n this.columns = options.columns;\n this.isCreateRow = options.isCreateRow;\n this.allowReorder = options.allowReorder;\n\n // Allow cancelling an edit with support for setting a new element.\n this.events['click .' + this.classNames.CANCEL] = '_cancel';\n this.delegateEvents();\n\n if (options.isUpdateMode) {\n this.isUpdateMode = true;\n } else {\n this._modelClass = options.model;\n this.model = new this._modelClass();\n }\n\n this.fieldFocusSelector = options.fieldFocusSelector;\n this.bind(this._event.CANCEL, function () {\n this.disabled = true;\n })\n .bind(this._event.SAVE, function (focusUpdated) {\n if (!this.disabled) {\n this.submit(focusUpdated);\n }\n })\n .bind(this._event.FOCUS, function (name) {\n this.focus(name);\n })\n .bind(this._event.BLUR, function () {\n this.$el.removeClass(this.classNames.FOCUSED);\n this.disable();\n })\n .bind(this._event.SUBMIT_STARTED, function () {\n this._submitStarted();\n })\n .bind(this._event.SUBMIT_FINISHED, function () {\n this._submitFinished();\n });\n },\n\n /**\n * Renders default cell contents\n *\n * @param data\n */\n defaultColumnRenderer: function (data) {\n if (data.allowEdit !== false) {\n return $(\"<input type='text' />\")\n .addClass('text')\n .attr({\n name: data.name,\n value: data.value\n });\n } else if (data.value) {\n return document.createTextNode(data.value);\n }\n },\n\n /**\n * Renders drag handle\n * @return jQuery\n */\n renderDragHandle: function () {\n return '<span class=\"' + this.classNames.DRAG_HANDLE + '\"></span></td>';\n },\n\n /**\n * Executes cancel event if ESC is pressed\n *\n * @param {Event} e\n */\n _handleKeyUpEvent: function (e) {\n if (e.keyCode === 27) {\n this.trigger(this._event.CANCEL);\n }\n },\n\n /**\n * Fires cancel event\n *\n * @param {Event} e\n *\n * @return EditRow\n */\n _cancel: function (e) {\n this.trigger(this._event.CANCEL);\n e.preventDefault();\n return this;\n },\n\n /**\n * Disables events/fields and adds safe guard against double submitting\n *\n * @return EditRow\n */\n _submitStarted: function () {\n this.submitting = true;\n this.showLoading()\n .disable()\n .delegateEvents({});\n\n return this;\n },\n\n /**\n * Enables events & fields\n *\n * @return EditRow\n */\n _submitFinished: function () {\n this.submitting = false;\n this.hideLoading()\n .enable()\n .delegateEvents(this.events);\n\n return this;\n },\n\n /**\n * Handles dom focus event, by only focusing row if it isn't already\n *\n * @param {Event} e\n *\n * @return EditRow\n */\n _focus: function (e) {\n if (!this.hasFocus()) {\n this.trigger(this._event.FOCUS, e.target.name);\n }\n return this;\n },\n\n\n /**\n * Returns true if row has focused class\n *\n * @return Boolean\n */\n hasFocus: function () {\n return this.$el.hasClass(this.classNames.FOCUSED);\n },\n\n /**\n * Focus specified field (by name or id - first argument), first field with an error or first field (DOM order)\n *\n * @param name\n *\n * @return EditRow\n */\n focus: function (name) {\n var $focus;\n var $error;\n\n this.enable();\n\n if (name) {\n $focus = this.$el.find(this.fieldFocusSelector(name));\n } else {\n\n $error = this.$el.find(this.classNames.ERROR + ':first');\n\n if ($error.length === 0) {\n $focus = this.$el.find(':input:text:first');\n } else {\n $focus = $error.parent().find(':input');\n }\n }\n\n this.$el.addClass(this.classNames.FOCUSED);\n $focus.focus().trigger('select');\n\n return this;\n },\n\n /**\n * Disables all fields\n *\n * @return EditRow\n */\n disable: function () {\n var $replacementSubmit;\n var $submit;\n\n // firefox does not allow you to submit a form if there are 2 or more submit buttons in a form, even if all but\n // one is disabled. It also does not let you change the type=\"submit' to type=\"button\". Therfore he lies the hack.\n if (isFirefox) {\n $submit = this.$el.find(':submit');\n\n if ($submit.length) {\n $replacementSubmit = $(\"<input type='submit' class='\" + this.classNames.SUBMIT + \"' />\")\n .addClass($submit.attr('class'))\n .val($submit.val())\n .data(this.dataKeys.ENABLED_SUBMIT, $submit);\n\n $submit.replaceWith($replacementSubmit);\n }\n }\n\n this.$el.addClass(this.classNames.DISABLED)\n .find(':submit')\n .attr('disabled', 'disabled');\n\n return this;\n },\n\n /**\n * Enables all fields\n *\n * @return EditRow\n */\n enable: function () {\n var $placeholderSubmit;\n var $submit;\n\n // firefox does not allow you to submit a form if there are 2 or more submit buttons in a form, even if all but\n // one is disabled. It also does not let you change the type=\"submit' to type=\"button\". Therfore he lies the hack.\n if (isFirefox) {\n $placeholderSubmit = this.$el.find(this.classNames.SUBMIT);\n $submit = $placeholderSubmit.data(this.dataKeys.ENABLED_SUBMIT);\n\n if ($submit && $placeholderSubmit.length) {\n $placeholderSubmit.replaceWith($submit);\n }\n }\n\n this.$el.removeClass(this.classNames.DISABLED)\n .find(':submit')\n .removeAttr('disabled');\n\n return this;\n },\n\n /**\n * Shows loading indicator\n *\n * @return EditRow\n */\n showLoading: function () {\n this.$el.addClass(this.classNames.LOADING);\n return this;\n },\n\n /**\n * Hides loading indicator\n *\n * @return EditRow\n */\n hideLoading: function () {\n this.$el.removeClass(this.classNames.LOADING);\n return this;\n },\n\n /**\n * If any of the fields have changed\n *\n * @return {Boolean}\n */\n hasUpdates: function () {\n return !!this.mapSubmitParams(this.serializeObject());\n },\n\n /**\n * Serializes the view into model representation.\n * Default implementation uses simple jQuery plugin to serialize form fields into object\n *\n * @return Object\n */\n serializeObject: function () {\n var $el = this.$el;\n return $el.serializeObject ?\n $el.serializeObject() :\n $el.serialize();\n },\n\n mapSubmitParams: function (params) {\n return this.model.changedAttributes(params);\n },\n\n /**\n * Handle submission of new entries and editing of old.\n *\n * @param {Boolean} focusUpdated - flag of whether to focus read-only view after succssful submission\n *\n * @return EditRow\n */\n submit: function (focusUpdated) {\n var instance = this;\n var values;\n\n // IE doesnt like it when the focused element is removed\n if (document.activeElement !== window) {\n $(document.activeElement).blur();\n }\n\n if (this.isUpdateMode) {\n values = this.mapSubmitParams(this.serializeObject()); // serialize form fields into JSON\n\n if (!values) {\n return instance.trigger(instance._event.CANCEL);\n }\n } else {\n this.model.clear();\n values = this.mapSubmitParams(this.serializeObject()); // serialize form fields into JSON\n }\n\n this.trigger(this._event.SUBMIT_STARTED);\n\n /* Attempt to add to server model. If fail delegate to createView to render errors etc. Otherwise,\n add a new model to this._models and render a row to represent it. */\n this.model.save(values, {\n success: function () {\n if (instance.isUpdateMode) {\n instance.trigger(instance._event.UPDATED, instance.model, focusUpdated);\n } else {\n instance.trigger(instance._event.CREATED, instance.model.toJSON());\n\n instance.model = new instance._modelClass(); // reset\n\n instance.render({errors: {}, values: {}}); // pulls in instance's model for create row\n instance.trigger(instance._event.FOCUS);\n }\n\n instance.trigger(instance._event.SUBMIT_FINISHED);\n },\n\n error: function (model, data, xhr) {\n if (xhr.status === 400) {\n instance.renderErrors(data.errors);\n instance.trigger(instance._event.VALIDATION_ERROR, data.errors);\n }\n\n instance.trigger(instance._event.SUBMIT_FINISHED);\n },\n\n silent: true\n });\n\n return this;\n },\n\n /**\n * Render an error message\n *\n * @param msg\n *\n * @return {jQuery}\n */\n renderError: function (name, msg) {\n return $('<div />').attr('data-field', name).addClass(this.classNames.ERROR).text(msg);\n },\n\n /**\n * Render and append error messages. The property name will be matched to the input name to determine which cell to\n * append the error message to. If this does not meet your needs please extend this method.\n *\n * @param errors\n */\n renderErrors: function (errors) {\n var instance = this;\n\n this.$('.' + this.classNames.ERROR).remove(); // avoid duplicates\n\n if (errors) {\n $.each(errors, function (name, msg) {\n instance.$el.find(\"[name='\" + name + \"']\")\n .closest('td')\n .append(instance.renderError(name, msg));\n });\n }\n\n return this;\n },\n\n\n /**\n * Handles rendering of row\n *\n * @param {Object} renderData\n * ... {Object} vales - Values of fields\n */\n render: function (renderData) {\n var instance = this;\n\n this.$el.empty();\n\n if (this.allowReorder) {\n $('<td class=\"' + this.classNames.ORDER + '\" />').append(this.renderDragHandle()).appendTo(instance.$el);\n }\n\n $.each(this.columns, function (i, column) {\n var contents;\n var $cell;\n var value = renderData.values[column.id];\n var args = [\n {name: column.id, value: value, allowEdit: column.allowEdit},\n renderData.values,\n instance.model\n ];\n\n if (value) {\n instance.$el.attr('data-' + column.id, value); // helper for webdriver testing\n }\n\n if (instance.isCreateRow && column.createView) {\n // TODO AUI-1058 - The row's model should be guaranteed to be in the correct state by this point.\n contents = new column.createView({\n model: instance.model\n }).render(args[0]);\n\n } else if (column.editView) {\n contents = new column.editView({\n model: instance.model\n }).render(args[0]);\n } else {\n contents = instance.defaultColumnRenderer.apply(instance, args);\n }\n\n $cell = $('<td />');\n\n if (typeof contents === 'object' && contents.done) {\n contents.done(function (contents) {\n $cell.append(contents);\n });\n } else {\n $cell.append(contents);\n }\n\n if (column.styleClass) {\n $cell.addClass(column.styleClass);\n }\n\n $cell.appendTo(instance.$el);\n });\n\n this.$el\n .append(this.renderOperations(renderData.update, renderData.values)) // add submit/cancel buttons\n .addClass(this.classNames.ROW + ' ' + this.classNames.EDIT_ROW);\n\n this.trigger(this._event.RENDER, this.$el, renderData.values);\n this.$el.trigger(this._event.CONTENT_REFRESHED, [this.$el]);\n\n return this;\n },\n\n /**\n * Gets markup for add/update and cancel buttons\n *\n * @param {Boolean} update\n */\n renderOperations: function (update) {\n var $operations = $('<td class=\"aui-restfultable-operations\" />');\n\n if (update) {\n $operations.append($('<input class=\"aui-button\" type=\"submit\" />').attr({\n accesskey: this.submitAccessKey,\n value: AJS.I18n.getText('aui.words.update')\n }))\n .append($('<a class=\"aui-button aui-button-link\" href=\"#\" />')\n .addClass(this.classNames.CANCEL)\n .text(AJS.I18n.getText('aui.words.cancel'))\n .attr({\n accesskey: this.cancelAccessKey\n }));\n } else {\n $operations.append($('<input class=\"aui-button\" type=\"submit\" />').attr({\n accesskey: this.submitAccessKey,\n value: AJS.I18n.getText('aui.words.add')\n }));\n }\n\n return $operations.add($('<td class=\"aui-restfultable-status\" />').append(throbber()));\n }\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["js/aui/restful-table/entry-model.js"],"names":["EntryModel","Model","extend","sync","method","model","options","instance","oldError","error","xhr","_serverErrorHandler","apply","arguments","save","attributes","syncModel","success","data","parseJSON","responseText","call","isNew","prototype","url","id","clear","set","toJSON","destroy","param","length","ajax","type","dataType","contentType","collection","remove","changedAttributes","changed","current","each","name","value","trim","isArray","isEqual","isEmpty","addExpand","ajaxOptions","status","SERVER_ERROR","fetch"],"mappings":"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","file":"entry-model.js","sourcesContent":["'use strict';\n\nimport $ from '../jquery';\nimport { triggerEvtForInst } from '../events';\nimport _ from '../underscore';\nimport Backbone from '../backbone';\nimport events from './events';\n\n/**\n * A class provided to fill some gaps with the out of the box Backbone.Model class. Most notiably the inability\n * to send ONLY modified attributes back to the server.\n */\nvar EntryModel = Backbone.Model.extend({\n sync: function (method, model, options) {\n var instance = this;\n var oldError = options.error;\n\n options.error = function (xhr) {\n instance._serverErrorHandler(xhr, this);\n if (oldError) {\n oldError.apply(this, arguments);\n }\n };\n\n return Backbone.sync.apply(Backbone, arguments);\n },\n\n /**\n * Overrides default save handler to only save (send to server) attributes that have changed.\n * Also provides some default error handling.\n *\n * @override\n * @param attributes\n * @param options\n */\n save: function (attributes, options) {\n options = options || {};\n\n var instance = this;\n var Model;\n var syncModel;\n var error = options.error; // we override, so store original\n var success = options.success;\n\n\n // override error handler to provide some defaults\n options.error = function (model, xhr) {\n\n var data = $.parseJSON(xhr.responseText || xhr.data);\n\n // call original error handler\n if (error) {\n error.call(instance, instance, data, xhr);\n }\n };\n\n // if it is a new model, we don't have to worry about updating only changed attributes because they are all new\n if (this.isNew()) {\n\n // call super\n Backbone.Model.prototype.save.call(this, attributes, options);\n\n // only go to server if something has changed\n } else if (attributes) {\n // create temporary model\n Model = EntryModel.extend({\n url: this.url()\n });\n\n syncModel = new Model({\n id: this.id\n });\n\n syncModel.save = Backbone.Model.prototype.save;\n\n options.success = function (model, xhr) {\n\n // update original model with saved attributes\n instance.clear().set(model.toJSON());\n\n // call original success handler\n if (success) {\n success.call(instance, instance, xhr);\n }\n };\n\n // update temporary model with the changed attributes\n syncModel.save(attributes, options);\n }\n },\n\n /**\n * Destroys the model on the server. We need to override the default method as it does not support sending of\n * query paramaters.\n *\n * @override\n * @param options\n * ... {function} success - Server success callback\n * ... {function} error - Server error callback\n * ... {object} data\n *\n * @return EntryModel\n */\n destroy: function (options) {\n options = options || {};\n\n var instance = this;\n var url = this.url();\n var data;\n\n if (options.data) {\n data = $.param(options.data);\n }\n\n if (data && data.length) {\n // we need to add to the url as the data param does not work for jQuery DELETE requests\n url = url + '?' + data;\n }\n\n $.ajax({\n url: url,\n type: 'DELETE',\n dataType: 'json',\n contentType: 'application/json',\n success: function (data) {\n if (instance.collection){\n instance.collection.remove(instance);\n }\n if (options.success) {\n options.success.call(instance, data);\n }\n },\n error: function (xhr) {\n instance._serverErrorHandler(xhr, this);\n if (options.error) {\n options.error.call(instance, xhr);\n }\n }\n });\n\n return this;\n },\n\n\n /**\n * A more complex lookup for changed attributes then default backbone one.\n *\n * @param attributes\n */\n changedAttributes: function (attributes) {\n var changed = {};\n var current = this.toJSON();\n\n $.each(attributes, function (name, value) {\n\n if (!current[name]) {\n if (typeof value === 'string') {\n if ($.trim(value) !== '') {\n changed[name] = value;\n }\n } else if ($.isArray(value)) {\n if (value.length !== 0) {\n changed[name] = value;\n }\n } else {\n changed[name] = value;\n }\n } else if (current[name] && current[name] !== value) {\n\n if (typeof value === 'object') {\n if (!_.isEqual(value, current[name])) {\n changed[name] = value;\n }\n } else {\n changed[name] = value;\n }\n }\n });\n\n if (!_.isEmpty(changed)) {\n this.addExpand(changed);\n return changed;\n }\n },\n\n /**\n * Useful point to override if you always want to add an expand to your rest calls.\n *\n * @param changed attributes that have already changed\n */\n addExpand: function (changed) {},\n\n /**\n * Throws a server error event unless user input validation error (status 400)\n *\n * @param xhr\n */\n _serverErrorHandler: function (xhr, ajaxOptions) {\n var data;\n if (xhr.status !== 400) {\n data = $.parseJSON(xhr.responseText || xhr.data);\n triggerEvtForInst(events.SERVER_ERROR, this, [data, xhr, ajaxOptions]);\n }\n },\n\n /**\n * Fetches values, with some generic error handling\n *\n * @override\n * @param options\n */\n fetch: function (options) {\n options = options || {};\n\n // clear the model, so we do not merge the old with the new\n this.clear();\n\n // call super\n Backbone.Model.prototype.fetch.call(this, options);\n }\n});\n\nexport default EntryModel;\n"]}
|
|
1
|
+
{"version":3,"sources":["js/aui/restful-table/entry-model.js"],"names":["EntryModel","Backbone","Model","extend","sync","method","model","options","instance","oldError","error","xhr","_serverErrorHandler","apply","arguments","save","attributes","syncModel","success","data","$","parseJSON","responseText","call","isNew","prototype","url","id","clear","set","toJSON","destroy","param","length","ajax","type","dataType","contentType","collection","remove","changedAttributes","changed","current","each","name","value","trim","isArray","_","isEqual","isEmpty","addExpand","ajaxOptions","status","events","SERVER_ERROR","fetch"],"mappings":"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","file":"entry-model.js","sourcesContent":["'use strict';\n\nimport $ from '../jquery';\nimport { triggerEvtForInst } from '../events';\nimport _ from '../underscore';\nimport Backbone from '../backbone';\nimport events from './events';\n\n/**\n * A class provided to fill some gaps with the out of the box Backbone.Model class. Most notiably the inability\n * to send ONLY modified attributes back to the server.\n */\nvar EntryModel = Backbone.Model.extend({\n sync: function (method, model, options) {\n var instance = this;\n var oldError = options.error;\n\n options.error = function (xhr) {\n instance._serverErrorHandler(xhr, this);\n if (oldError) {\n oldError.apply(this, arguments);\n }\n };\n\n return Backbone.sync.apply(Backbone, arguments);\n },\n\n /**\n * Overrides default save handler to only save (send to server) attributes that have changed.\n * Also provides some default error handling.\n *\n * @override\n * @param attributes\n * @param options\n */\n save: function (attributes, options) {\n options = options || {};\n\n var instance = this;\n var Model;\n var syncModel;\n var error = options.error; // we override, so store original\n var success = options.success;\n\n\n // override error handler to provide some defaults\n options.error = function (model, xhr) {\n\n var data = $.parseJSON(xhr.responseText || xhr.data);\n\n // call original error handler\n if (error) {\n error.call(instance, instance, data, xhr);\n }\n };\n\n // if it is a new model, we don't have to worry about updating only changed attributes because they are all new\n if (this.isNew()) {\n\n // call super\n Backbone.Model.prototype.save.call(this, attributes, options);\n\n // only go to server if something has changed\n } else if (attributes) {\n // create temporary model\n Model = EntryModel.extend({\n url: this.url()\n });\n\n syncModel = new Model({\n id: this.id\n });\n\n syncModel.save = Backbone.Model.prototype.save;\n\n options.success = function (model, xhr) {\n\n // update original model with saved attributes\n instance.clear().set(model.toJSON());\n\n // call original success handler\n if (success) {\n success.call(instance, instance, xhr);\n }\n };\n\n // update temporary model with the changed attributes\n syncModel.save(attributes, options);\n }\n },\n\n /**\n * Destroys the model on the server. We need to override the default method as it does not support sending of\n * query paramaters.\n *\n * @override\n * @param options\n * ... {function} success - Server success callback\n * ... {function} error - Server error callback\n * ... {object} data\n *\n * @return EntryModel\n */\n destroy: function (options) {\n options = options || {};\n\n var instance = this;\n var url = this.url();\n var data;\n\n if (options.data) {\n data = $.param(options.data);\n }\n\n if (data && data.length) {\n // we need to add to the url as the data param does not work for jQuery DELETE requests\n url = url + '?' + data;\n }\n\n $.ajax({\n url: url,\n type: 'DELETE',\n dataType: 'json',\n contentType: 'application/json',\n success: function (data) {\n if (instance.collection){\n instance.collection.remove(instance);\n }\n if (options.success) {\n options.success.call(instance, data);\n }\n },\n error: function (xhr) {\n instance._serverErrorHandler(xhr, this);\n if (options.error) {\n options.error.call(instance, xhr);\n }\n }\n });\n\n return this;\n },\n\n\n /**\n * A more complex lookup for changed attributes then default backbone one.\n *\n * @param attributes\n */\n changedAttributes: function (attributes) {\n var changed = {};\n var current = this.toJSON();\n\n $.each(attributes, function (name, value) {\n\n if (!current[name]) {\n if (typeof value === 'string') {\n if ($.trim(value) !== '') {\n changed[name] = value;\n }\n } else if ($.isArray(value)) {\n if (value.length !== 0) {\n changed[name] = value;\n }\n } else {\n changed[name] = value;\n }\n } else if (current[name] && current[name] !== value) {\n\n if (typeof value === 'object') {\n if (!_.isEqual(value, current[name])) {\n changed[name] = value;\n }\n } else {\n changed[name] = value;\n }\n }\n });\n\n if (!_.isEmpty(changed)) {\n this.addExpand(changed);\n return changed;\n }\n },\n\n /**\n * Useful point to override if you always want to add an expand to your rest calls.\n *\n * @param changed attributes that have already changed\n */\n addExpand: function (changed) {},\n\n /**\n * Throws a server error event unless user input validation error (status 400)\n *\n * @param xhr\n */\n _serverErrorHandler: function (xhr, ajaxOptions) {\n var data;\n if (xhr.status !== 400) {\n data = $.parseJSON(xhr.responseText || xhr.data);\n triggerEvtForInst(events.SERVER_ERROR, this, [data, xhr, ajaxOptions]);\n }\n },\n\n /**\n * Fetches values, with some generic error handling\n *\n * @override\n * @param options\n */\n fetch: function (options) {\n options = options || {};\n\n // clear the model, so we do not merge the old with the new\n this.clear();\n\n // call super\n Backbone.Model.prototype.fetch.call(this, options);\n }\n});\n\nexport default EntryModel;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["js/aui/restful-table/row.js"],"names":["dialog","View","extend","tagName","events","initialize","options","instance","_event","classNames","dataKeys","columns","allowEdit","allowDelete","Error","index","deleteConfirmation","allowReorder","$el","el","bind","CANCEL","disabled","FOCUS","field","focus","BLUR","unfocus","MODAL","addClass","ACTIVE","MODELESS","removeClass","renderDragHandle","DRAG_HANDLE","defaultColumnRenderer","data","value","document","createTextNode","toString","sync","attr","model","addExpand","showLoading","save","success","hideLoading","render","trigger","UPDATED","error","refresh","fetch","apply","arguments","hasFocus","hasClass","FOCUSED","LOADING","edit","e","target","is","EDITABLE","closest","ROW_EDIT","renderOperations","DELETE","text","AJS","I18n","getText","click","preventDefault","destroy","popup","get","element","html","toJSON","show","find","hide","submit","renderData","$opsCell","append","$throbberCell","DISABLED","EDIT_ROW","READ_ONLY","empty","ORDER","appendTo","id","each","i","column","contents","$cell","fieldName","args","name","readView","$editableRegion","trim","NO_VALUE","emptyText","styleClass","ROW","RENDER","CONTENT_REFRESHED"],"mappings":"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","file":"row.js","sourcesContent":["'use strict';\n\nimport $ from '../jquery';\nimport * as dialog from '../dialog';\nimport Backbone from '../backbone';\nimport classNames from './class-names';\nimport dataKeys from './data-keys';\nimport events from './events';\nimport i18n from '../i18n';\nimport throbber from './throbber';\n\n/**\n * An abstract class that gives the required behaviour for RestfulTable rows.\n * Extend this class and pass it as the {views.row} property of the options passed to RestfulTable in construction.\n */\nexport default Backbone.View.extend({\n tagName: 'tr',\n\n events: {\n 'click .aui-restfultable-editable': 'edit'\n },\n\n initialize: function (options) {\n var instance = this;\n\n options = options || {};\n\n this._event = events;\n this.classNames = classNames;\n this.dataKeys = dataKeys;\n this.columns = options.columns;\n this.allowEdit = options.allowEdit;\n this.allowDelete = options.allowDelete;\n\n if (!this.events['click .aui-restfultable-editable']) {\n throw new Error('It appears you have overridden the events property. To add events you will need to use' +\n 'a work around. https://github.com/documentcloud/backbone/issues/244');\n }\n\n this.index = options.index || 0;\n this.deleteConfirmation = options.deleteConfirmation;\n this.allowReorder = options.allowReorder;\n this.$el = $(this.el);\n\n this.bind(this._event.CANCEL, function () {\n this.disabled = true;\n })\n .bind(this._event.FOCUS, function (field) {\n this.focus(field);\n })\n .bind(this._event.BLUR, function () {\n this.unfocus();\n })\n .bind(this._event.MODAL, function () {\n this.$el.addClass(this.classNames.ACTIVE);\n })\n .bind(this._event.MODELESS, function () {\n this.$el.removeClass(this.classNames.ACTIVE);\n });\n },\n\n /**\n * Renders drag handle\n *\n * @return jQuery\n */\n renderDragHandle: function () {\n return '<span class=\"' + this.classNames.DRAG_HANDLE + '\"></span></td>';\n },\n\n /**\n * Renders default cell contents\n *\n * @param data\n *\n * @return {undefiend, String}\n */\n defaultColumnRenderer: function (data) {\n if (data.value) {\n return document.createTextNode(data.value.toString());\n }\n },\n\n /**\n * Save changed attributes back to server and re-render\n *\n * @param attr\n *\n * @return {Row}\n */\n sync: function (attr) {\n var instance = this;\n\n this.model.addExpand(attr);\n this.showLoading();\n this.model.save(attr, {\n success: function () {\n instance.hideLoading().render();\n instance.trigger(instance._event.UPDATED);\n },\n error: function () {\n instance.hideLoading();\n }\n });\n\n return this;\n },\n\n /**\n * Get model from server and re-render\n *\n * @return {Row}\n */\n refresh: function (success, error) {\n var instance = this;\n\n this.showLoading();\n this.model.fetch({\n success: function () {\n instance.hideLoading().render();\n if (success) {\n success.apply(this, arguments);\n }\n },\n error: function () {\n instance.hideLoading();\n if (error) {\n error.apply(this, arguments);\n }\n }\n });\n\n return this;\n },\n\n /**\n * Returns true if row has focused class\n *\n * @return Boolean\n */\n hasFocus: function () {\n return this.$el.hasClass(this.classNames.FOCUSED);\n },\n\n /**\n * Adds focus class (Item has been recently updated)\n *\n * @return Row\n */\n focus: function () {\n $(this.el).addClass(this.classNames.FOCUSED);\n return this;\n },\n\n /**\n * Removes focus class\n *\n * @return Row\n */\n unfocus: function () {\n $(this.el).removeClass(this.classNames.FOCUSED);\n return this;\n },\n\n /**\n * Adds loading class (to show server activity)\n *\n * @return Row\n */\n showLoading: function () {\n this.$el.addClass(this.classNames.LOADING);\n return this;\n },\n\n /**\n * Hides loading class (to show server activity)\n *\n * @return Row\n */\n hideLoading: function () {\n this.$el.removeClass(this.classNames.LOADING);\n return this;\n },\n\n /**\n * Switches row into edit mode\n *\n * @param e\n */\n edit: function (e) {\n var field;\n if ($(e.target).is('.' + this.classNames.EDITABLE)) {\n field = $(e.target).attr('data-field-name');\n } else {\n field = $(e.target).closest('.' + this.classNames.EDITABLE).attr('data-field-name');\n }\n this.trigger(this._event.ROW_EDIT, field);\n return this;\n },\n\n /**\n * Can be overriden to add custom options.\n *\n * @returns {jQuery}\n */\n renderOperations: function () {\n var instance = this;\n if (this.allowDelete !== false) {\n return $(\"<a href='#' class='aui-button' />\")\n .addClass(this.classNames.DELETE)\n .text(AJS.I18n.getText('aui.words.delete')).click(function (e) {\n e.preventDefault();\n instance.destroy();\n });\n }\n },\n\n /**\n * Removes entry from table.\n *\n * @returns {undefined}\n */\n destroy: function () {\n if (this.deleteConfirmation) {\n var popup = dialog.popup(400, 200, 'delete-entity-' + this.model.get('id'));\n popup.element.html(this.deleteConfirmation(this.model.toJSON()));\n popup.show();\n popup.element.find('.cancel').click(function () {\n popup.hide();\n });\n popup.element.find('form').submit(function (e) {\n popup.hide();\n this.model.destroy();\n e.preventDefault();\n }.bind(this));\n } else {\n this.model.destroy();\n }\n },\n\n /**\n * Renders a generic edit row. You probably want to override this in a sub class.\n *\n * @return Row\n */\n render: function () {\n var instance = this;\n var renderData = this.model.toJSON();\n var $opsCell = $(\"<td class='aui-restfultable-operations' />\").append(this.renderOperations({}, renderData));\n var $throbberCell = $(\"<td class='aui-restfultable-status' />\").append(throbber());\n\n // restore state\n this.$el\n .removeClass(this.classNames.DISABLED + ' ' + this.classNames.FOCUSED + ' ' + this.classNames.LOADING + ' ' + this.classNames.EDIT_ROW)\n .addClass(this.classNames.READ_ONLY)\n .empty();\n\n\n if (this.allowReorder) {\n $('<td class=\"' + this.classNames.ORDER + '\" />').append(this.renderDragHandle()).appendTo(instance.$el);\n }\n\n this.$el.attr('data-id', this.model.id); // helper for webdriver testing\n\n $.each(this.columns, function (i, column) {\n var contents;\n var $cell = $('<td />');\n var value = renderData[column.id];\n var fieldName = column.fieldName || column.id;\n var args = [{name: fieldName, value: value, allowEdit: column.allowEdit}, renderData, instance.model];\n\n if (value) {\n instance.$el.attr('data-' + column.id, value); // helper for webdriver testing\n }\n\n if (column.readView) {\n contents = new column.readView({\n model: instance.model\n }).render(args[0]);\n } else {\n contents = instance.defaultColumnRenderer.apply(instance, args);\n }\n\n if (instance.allowEdit !== false && column.allowEdit !== false) {\n var $editableRegion = $('<span />')\n .addClass(instance.classNames.EDITABLE)\n .append('<span class=\"aui-icon aui-icon-small aui-iconfont-edit\"></span>')\n .append(contents)\n .attr('data-field-name', fieldName);\n\n $cell = $('<td />').append($editableRegion).appendTo(instance.$el);\n\n if (!contents || $.trim(contents) == '') {\n $cell.addClass(instance.classNames.NO_VALUE);\n $editableRegion.html($('<em />').text(this.emptyText || AJS.I18n.getText('aui.enter.value')));\n }\n\n } else {\n $cell.append(contents);\n }\n\n if (column.styleClass) {\n $cell.addClass(column.styleClass);\n }\n\n $cell.appendTo(instance.$el);\n });\n\n this.$el\n .append($opsCell)\n .append($throbberCell)\n .addClass(this.classNames.ROW + ' ' + this.classNames.READ_ONLY);\n\n this.trigger(this._event.RENDER, this.$el, renderData);\n this.$el.trigger(this._event.CONTENT_REFRESHED, [this.$el]);\n\n return this;\n }\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["js/aui/restful-table/row.js"],"names":["dialog","Backbone","View","extend","tagName","events","initialize","options","instance","_event","classNames","dataKeys","columns","allowEdit","allowDelete","Error","index","deleteConfirmation","allowReorder","$el","el","bind","CANCEL","disabled","FOCUS","field","focus","BLUR","unfocus","MODAL","addClass","ACTIVE","MODELESS","removeClass","renderDragHandle","DRAG_HANDLE","defaultColumnRenderer","data","value","document","createTextNode","toString","sync","attr","model","addExpand","showLoading","save","success","hideLoading","render","trigger","UPDATED","error","refresh","fetch","apply","arguments","hasFocus","hasClass","FOCUSED","LOADING","edit","e","target","is","EDITABLE","closest","ROW_EDIT","renderOperations","DELETE","text","AJS","I18n","getText","click","preventDefault","destroy","popup","get","element","html","toJSON","show","find","hide","submit","renderData","$opsCell","append","$throbberCell","DISABLED","EDIT_ROW","READ_ONLY","empty","ORDER","appendTo","id","$","each","i","column","contents","$cell","fieldName","args","name","readView","$editableRegion","trim","NO_VALUE","emptyText","styleClass","ROW","RENDER","CONTENT_REFRESHED"],"mappings":"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","file":"row.js","sourcesContent":["'use strict';\n\nimport $ from '../jquery';\nimport * as dialog from '../dialog';\nimport Backbone from '../backbone';\nimport classNames from './class-names';\nimport dataKeys from './data-keys';\nimport events from './events';\nimport i18n from '../i18n';\nimport throbber from './throbber';\n\n/**\n * An abstract class that gives the required behaviour for RestfulTable rows.\n * Extend this class and pass it as the {views.row} property of the options passed to RestfulTable in construction.\n */\nexport default Backbone.View.extend({\n tagName: 'tr',\n\n events: {\n 'click .aui-restfultable-editable': 'edit'\n },\n\n initialize: function (options) {\n var instance = this;\n\n options = options || {};\n\n this._event = events;\n this.classNames = classNames;\n this.dataKeys = dataKeys;\n this.columns = options.columns;\n this.allowEdit = options.allowEdit;\n this.allowDelete = options.allowDelete;\n\n if (!this.events['click .aui-restfultable-editable']) {\n throw new Error('It appears you have overridden the events property. To add events you will need to use' +\n 'a work around. https://github.com/documentcloud/backbone/issues/244');\n }\n\n this.index = options.index || 0;\n this.deleteConfirmation = options.deleteConfirmation;\n this.allowReorder = options.allowReorder;\n this.$el = $(this.el);\n\n this.bind(this._event.CANCEL, function () {\n this.disabled = true;\n })\n .bind(this._event.FOCUS, function (field) {\n this.focus(field);\n })\n .bind(this._event.BLUR, function () {\n this.unfocus();\n })\n .bind(this._event.MODAL, function () {\n this.$el.addClass(this.classNames.ACTIVE);\n })\n .bind(this._event.MODELESS, function () {\n this.$el.removeClass(this.classNames.ACTIVE);\n });\n },\n\n /**\n * Renders drag handle\n *\n * @return jQuery\n */\n renderDragHandle: function () {\n return '<span class=\"' + this.classNames.DRAG_HANDLE + '\"></span></td>';\n },\n\n /**\n * Renders default cell contents\n *\n * @param data\n *\n * @return {undefiend, String}\n */\n defaultColumnRenderer: function (data) {\n if (data.value) {\n return document.createTextNode(data.value.toString());\n }\n },\n\n /**\n * Save changed attributes back to server and re-render\n *\n * @param attr\n *\n * @return {Row}\n */\n sync: function (attr) {\n var instance = this;\n\n this.model.addExpand(attr);\n this.showLoading();\n this.model.save(attr, {\n success: function () {\n instance.hideLoading().render();\n instance.trigger(instance._event.UPDATED);\n },\n error: function () {\n instance.hideLoading();\n }\n });\n\n return this;\n },\n\n /**\n * Get model from server and re-render\n *\n * @return {Row}\n */\n refresh: function (success, error) {\n var instance = this;\n\n this.showLoading();\n this.model.fetch({\n success: function () {\n instance.hideLoading().render();\n if (success) {\n success.apply(this, arguments);\n }\n },\n error: function () {\n instance.hideLoading();\n if (error) {\n error.apply(this, arguments);\n }\n }\n });\n\n return this;\n },\n\n /**\n * Returns true if row has focused class\n *\n * @return Boolean\n */\n hasFocus: function () {\n return this.$el.hasClass(this.classNames.FOCUSED);\n },\n\n /**\n * Adds focus class (Item has been recently updated)\n *\n * @return Row\n */\n focus: function () {\n $(this.el).addClass(this.classNames.FOCUSED);\n return this;\n },\n\n /**\n * Removes focus class\n *\n * @return Row\n */\n unfocus: function () {\n $(this.el).removeClass(this.classNames.FOCUSED);\n return this;\n },\n\n /**\n * Adds loading class (to show server activity)\n *\n * @return Row\n */\n showLoading: function () {\n this.$el.addClass(this.classNames.LOADING);\n return this;\n },\n\n /**\n * Hides loading class (to show server activity)\n *\n * @return Row\n */\n hideLoading: function () {\n this.$el.removeClass(this.classNames.LOADING);\n return this;\n },\n\n /**\n * Switches row into edit mode\n *\n * @param e\n */\n edit: function (e) {\n var field;\n if ($(e.target).is('.' + this.classNames.EDITABLE)) {\n field = $(e.target).attr('data-field-name');\n } else {\n field = $(e.target).closest('.' + this.classNames.EDITABLE).attr('data-field-name');\n }\n this.trigger(this._event.ROW_EDIT, field);\n return this;\n },\n\n /**\n * Can be overriden to add custom options.\n *\n * @returns {jQuery}\n */\n renderOperations: function () {\n var instance = this;\n if (this.allowDelete !== false) {\n return $(\"<a href='#' class='aui-button' />\")\n .addClass(this.classNames.DELETE)\n .text(AJS.I18n.getText('aui.words.delete')).click(function (e) {\n e.preventDefault();\n instance.destroy();\n });\n }\n },\n\n /**\n * Removes entry from table.\n *\n * @returns {undefined}\n */\n destroy: function () {\n if (this.deleteConfirmation) {\n var popup = dialog.popup(400, 200, 'delete-entity-' + this.model.get('id'));\n popup.element.html(this.deleteConfirmation(this.model.toJSON()));\n popup.show();\n popup.element.find('.cancel').click(function () {\n popup.hide();\n });\n popup.element.find('form').submit(function (e) {\n popup.hide();\n this.model.destroy();\n e.preventDefault();\n }.bind(this));\n } else {\n this.model.destroy();\n }\n },\n\n /**\n * Renders a generic edit row. You probably want to override this in a sub class.\n *\n * @return Row\n */\n render: function () {\n var instance = this;\n var renderData = this.model.toJSON();\n var $opsCell = $(\"<td class='aui-restfultable-operations' />\").append(this.renderOperations({}, renderData));\n var $throbberCell = $(\"<td class='aui-restfultable-status' />\").append(throbber());\n\n // restore state\n this.$el\n .removeClass(this.classNames.DISABLED + ' ' + this.classNames.FOCUSED + ' ' + this.classNames.LOADING + ' ' + this.classNames.EDIT_ROW)\n .addClass(this.classNames.READ_ONLY)\n .empty();\n\n\n if (this.allowReorder) {\n $('<td class=\"' + this.classNames.ORDER + '\" />').append(this.renderDragHandle()).appendTo(instance.$el);\n }\n\n this.$el.attr('data-id', this.model.id); // helper for webdriver testing\n\n $.each(this.columns, function (i, column) {\n var contents;\n var $cell = $('<td />');\n var value = renderData[column.id];\n var fieldName = column.fieldName || column.id;\n var args = [{name: fieldName, value: value, allowEdit: column.allowEdit}, renderData, instance.model];\n\n if (value) {\n instance.$el.attr('data-' + column.id, value); // helper for webdriver testing\n }\n\n if (column.readView) {\n contents = new column.readView({\n model: instance.model\n }).render(args[0]);\n } else {\n contents = instance.defaultColumnRenderer.apply(instance, args);\n }\n\n if (instance.allowEdit !== false && column.allowEdit !== false) {\n var $editableRegion = $('<span />')\n .addClass(instance.classNames.EDITABLE)\n .append('<span class=\"aui-icon aui-icon-small aui-iconfont-edit\"></span>')\n .append(contents)\n .attr('data-field-name', fieldName);\n\n $cell = $('<td />').append($editableRegion).appendTo(instance.$el);\n\n if (!contents || $.trim(contents) == '') {\n $cell.addClass(instance.classNames.NO_VALUE);\n $editableRegion.html($('<em />').text(this.emptyText || AJS.I18n.getText('aui.enter.value')));\n }\n\n } else {\n $cell.append(contents);\n }\n\n if (column.styleClass) {\n $cell.addClass(column.styleClass);\n }\n\n $cell.appendTo(instance.$el);\n });\n\n this.$el\n .append($opsCell)\n .append($throbberCell)\n .addClass(this.classNames.ROW + ' ' + this.classNames.READ_ONLY);\n\n this.trigger(this._event.RENDER, this.$el, renderData);\n this.$el.trigger(this._event.CONTENT_REFRESHED, [this.$el]);\n\n return this;\n }\n});\n"]}
|
|
@@ -312,7 +312,9 @@
|
|
|
312
312
|
this._applyFocusCoordinator(this._createRow);
|
|
313
313
|
|
|
314
314
|
// focus create row
|
|
315
|
-
|
|
315
|
+
if (this.options.autoFocus) {
|
|
316
|
+
this._createRow.trigger(this._event.FOCUS);
|
|
317
|
+
}
|
|
316
318
|
}
|
|
317
319
|
|
|
318
320
|
// when a model is removed from the collection, remove it from the viewport also
|