1
0
Fork 0
mirror of https://github.com/koalyptus/TableFilter.git synced 2024-05-23 08:42:18 +02:00
TableFilter/src/modules/dropdown.js.map
2015-02-15 14:25:22 +11:00

1 line
22 KiB
Plaintext

{"version":3,"sources":["src-es6/modules/dropdown.js"],"names":[],"mappings":";;;;;;;;MAAQ,GAAG,QAAH,GAAG;MACI,KAAK,UAAZ,GAAG;MACH,GAAG,WAAH,GAAG;MACH,IAAI,SAAJ,IAAI;MAEC,QAAQ;QAAR,QAAQ,GAMN,SANF,QAAQ,CAML,EAAE,EAAC;;AAEX,UAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;;AAEhB,UAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC,uBAAuB,GAAG,KAAK,GAAG,IAAI,CAAC;;AAErE,UAAI,CAAC,YAAY,GAAG,CAAC,CAAC,cAAc,IAAI,aAAa,CAAC;;AAEtD,UAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,kBAAkB,IAAI,eAAe,CAAC;;AAEhE,UAAI,CAAC,kBAAkB,GAAI,CAAC,CAAC,oBAAoB,IAC7C,mBAAmB,CAAC;;AAExB,UAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,oBAAoB,IAC5C,sCAAsC,CAAC;;AAE3C,UAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,UAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,UAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB,UAAI,CAAC,YAAY,GAAG,IAAI,CAAC;;AAEzB,UAAI,CAAC,EAAE,GAAG,EAAE,CAAC;;;gBA3BR,QAAQ;AAqCjB,WAAK;;eAAA,UAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAC;AAC9C,cAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AACjB,YAAE,CAAC,UAAU,CACT,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EACpB;AACI,oBAAQ,EAAE,QAAQ;AAClB,wBAAY,EAAE,WAAW;AACzB,uBAAW,EAAE,UAAU;AACvB,iBAAK,EAAE,QAAQ;WAClB,CACJ,CAAC;SACL;;AASD,YAAM;;eAAA,UAAC,QAAQ,EAAE,WAAW,EAAQ,UAAU,EAAQ,QAAQ,EAAM;cAAd,QAAQ,gBAAR,QAAQ,GAAC,IAAI;cAA/B,UAAU,gBAAV,UAAU,GAAC,KAAK;cAAnC,WAAW,gBAAX,WAAW,GAAC,KAAK;AAC9B,cAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AACjB,kBAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;;AAElC,cAAI,CAAC,IAAI,GAAG,EAAE,CAAC;AACf,cAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAClB,cAAI,CAAC,YAAY,GAAG,EAAE,CAAC;;AAEvB,cAAI,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAChC,cAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAC9B,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,EAAC;AAClC,mBAAO;WACV;AACD,cAAI,GAAG,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,EACpD,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,EAClB,SAAS,GAAG,EAAE,CAAC,SAAS,EACxB,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;;;AAGlD,cAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,mBAAmB,IACnC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;;;AAGnD,cAAI,SAAS,CAAC;AACd,cAAG,WAAW,IAAI,EAAE,CAAC,cAAc,EAAC;AAChC,qBAAS,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,qBAAS,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;WAC9C;;;AAGD,cAAI,UAAU,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,CAAC;AACjC,cAAG,EAAE,CAAC,kBAAkB,EAAC;AACrB,sBAAU,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;AAC/D,gBAAG,UAAU,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,EAAC;AACjD,kBAAG,IAAI,CAAC,QAAQ,EAAC;AACb,sBAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;eACrC,MAAM;AACH,sBAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,GAAC,EAAE,CAAC,UAAU,GAAC,GAAG,CAAC,CAAC;eAC9D;aACJ;WACJ;;AAED,cAAI,YAAY,GAAG,IAAI,EACnB,eAAe,GAAG,IAAI,CAAC;AAC3B,cAAG,WAAW,IAAI,EAAE,CAAC,sBAAsB,EAAC;AACxC,wBAAY,GAAG,EAAE,CAAC;AAClB,2BAAe,GAAG,EAAE,CAAC;WACxB;;AAED,eAAI,IAAI,CAAC,GAAC,EAAE,CAAC,MAAM,EAAE,CAAC,GAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;;;AAGlC,gBAAG,EAAE,CAAC,cAAc,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,IAChD,CAAC,EAAE,CAAC,MAAM,EAAC;AACX,uBAAS;aACZ;;AAED,gBAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EACpB,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;;;AAG1B,gBAAG,OAAO,KAAK,EAAE,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAC;AACvC,uBAAS;aACZ;;;AAGD,iBAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,OAAO,EAAE,CAAC,EAAE,EAAC;AACxB,kBAAG,CAAC,QAAQ,KAAG,CAAC,IACZ,CAAC,CAAC,WAAW,IACT,CAAC,WAAW,IAAI,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAChD,CAAC,QAAQ,IAAE,CAAC,IAAI,WAAW,IACvB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IACjD,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,cAAc,IAC7B,CAAC,EAAE,CAAC,cAAc,IACd,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,IACrC,CAAC,CAAC,SAAS,KAAG,SAAS,IAAI,SAAS,IAAE,QAAQ,CAAC,IAC3C,CAAC,SAAS,IAAE,QAAQ,IAChB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,CAAE,CAAC,EAAC;AACnD,oBAAI,SAAS,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;;AAEtC,2BAAW,GAAG,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;;;AAGtD,oBAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,EAAC;AAC7C,sBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBAC7B;;AAED,oBAAG,WAAW,IAAI,EAAE,CAAC,sBAAsB,EAAC;AACxC,sBAAI,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;AACrC,sBAAG,CAAC,WAAW,EAAC;AACZ,+BAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;mBAC5C;AACD,sBAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,CAAC,IAC9C,CAAC,KAAK,CAAC,GAAG,CACN,YAAY,EAAE,WAAW,EAAE,SAAS,CAAC,IACzC,CAAC,IAAI,CAAC,WAAW,EAAC;AAClB,gCAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;mBAChC;iBACJ;eACJ;AAAA,aACJ;AAAA,WACJ;;;AAGD,cAAG,IAAI,CAAC,QAAQ,EAAC;AACb,gBAAI,YAAY,GAAG,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AAClD,gBAAI,CAAC,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AAC5B,gBAAI,CAAC,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;WAClC;;AAED,cAAG,EAAE,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAC;AAC5B,gBAAI,CAAC,SAAS,EAAC;AACX,kBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChC,kBAAG,YAAY,EAAC;AACZ,4BAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;eACtC;aACJ,MAAM;AACH,kBAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AACjB,kBAAG,YAAY,EAAC;AAAE,4BAAY,CAAC,IAAI,EAAE,CAAC;eAAE;aAC3C;WACJ;;;AAGD,cAAG,EAAE,CAAC,UAAU,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAC;AACnD,gBAAG;AACC,kBAAI,CAAC,IAAI,CAAC,IAAI,CAAE,UAAU,CAAE,CAAC;AAC7B,kBAAG,YAAY,EAAC;AACZ,4BAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;eACjC;AACD,kBAAG,IAAI,CAAC,QAAQ,EAAC;AACb,oBAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;eACjC;aACJ,CAAC,OAAM,CAAC,EAAE;AACP,kBAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AACjB,kBAAG,YAAY,EAAC;AACZ,4BAAY,CAAC,IAAI,EAAE,CAAC;eACvB;AACD,kBAAG,IAAI,CAAC,QAAQ,EAAC;AACb,oBAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;eACvB;aACJ;AAAA,WACJ;;AAED,cAAG,EAAE,CAAC,WAAW,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAC;AACrD,gBAAG;AACC,kBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC5B,kBAAG,YAAY,EAAC;AACZ,4BAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;eAClC;AACD,kBAAG,IAAI,CAAC,QAAQ,EAAC;AACb,oBAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;eAClC;aACJ,CAAC,OAAM,CAAC,EAAE;AACP,kBAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AACjB,kBAAG,YAAY,EAAC;AACZ,4BAAY,CAAC,IAAI,EAAE,CAAC;eACvB;AACD,kBAAG,IAAI,CAAC,QAAQ,EAAC;AACb,oBAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;eACvB;aACJ;AAAA,WACJ;;;AAGD,cAAI,CAAC,UAAU,CACX,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;SACrE;;AAWD,gBAAU;;eAAA,UAAC,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAC;AACpE,cAAI,EAAE,GAAG,IAAI,CAAC,EAAE,EACZ,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAC7C,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC;;AAEzB,aAAG,CAAC,SAAS,GAAG,EAAE,CAAC;AACnB,aAAG,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;;AAE/B,eAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;AACjC,gBAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAG,EAAE,EAAC;AACjB,uBAAS;aACZ;AACD,gBAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvB,gBAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAChD,gBAAI,UAAU,GAAG,KAAK,CAAC;AACvB,gBAAG,WAAW,IAAI,IAAI,CAAC,sBAAsB,IACzC,KAAK,CAAC,GAAG,CACL,YAAY,EACZ,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,EAChC,EAAE,CAAC,SAAS,CACf,EAAC;AACF,wBAAU,GAAG,IAAI,CAAC;aACrB;;AAED,gBAAG,UAAU,KAAK,WAAW,EAAC;AAC1B,kBAAI,OAAO,GAAG,EAAE,CAAC;AACjB,kBAAG,EAAE,CAAC,eAAe,IAAI,QAAQ,KAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC;AAC7C,uBAAO,GAAG,uBAAqB,CAAC;eACnC;AACD,kBAAI,CAAC,YAAY,IAAI,kBAAiB,GAAC,GAAG,GAAC,KAAI,GAAG,OAAO,GACrD,CAAC,UAAU,GAAG,uBAAqB,GAAG,EAAE,CAAC,GAAE,GAAG,GAC9C,GAAG,GAAC,WAAW,CAAC;aACvB,MAAM;AACH,kBAAI,GAAG,CAAC;;AAER,kBAAG,EAAE,CAAC,eAAe,IAAI,QAAQ,KAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAC5C,EAAE,CAAC,KAAK,GAAC,QAAQ,CAAC,KAAG,EAAE,CAAC,UAAU,EAAC;AACnC,mBAAG,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;eACvC,MAAM;AACH,oBAAG,EAAE,CAAC,KAAK,GAAC,QAAQ,CAAC,KAAG,EAAE,CAAC,YAAY,EAAC;AACpC,qBAAG,GAAG,GAAG,CAAC,SAAS,CACf,GAAG,EACH,GAAG,EACH,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAG,GAAG,IACvB,GAAG,KAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,CACjD,CAAC;iBACL,MAAM;AACH,qBAAG,GAAG,GAAG,CAAC,SAAS,CACf,GAAG,EACH,GAAG,EACH,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EACb,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EACzC,EAAE,CAAC,SAAS,CAAC,IACf,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAI,CAAC,CAAC,CAAC,GACnC,IAAI,GAAG,KAAK,CACnB,CAAC;iBACL;eACJ;AACD,kBAAG,UAAU,EAAC;AACV,mBAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;eACvB;AACD,iBAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;aACxB;WACJ;;AAED,cAAG,UAAU,KAAK,WAAW,EAAC;AAC1B,eAAG,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC;WACtC;AACD,aAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;SACnC;;AAMD,oBAAc;;eAAA,UAAC,GAAG,EAAC;AACf,cAAI,EAAE,GAAG,IAAI,CAAC,EAAE,EACZ,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;;AAElD,cAAG,UAAU,KAAK,WAAW,EAAC;AAC1B,gBAAI,CAAC,YAAY,IAAI,qBAAmB,GAAE,EAAE,CAAC,cAAc,GACvD,WAAW,CAAC;WACnB,MACI;AACD,gBAAI,IAAI,GAAG,GAAG,CAAC,SAAS,CACpB,CAAC,CAAC,IAAI,CAAC,oBAAoB,GAAG,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,EAAC,EAAE,CAAC,CAAC;AAC9D,gBAAG,CAAC,IAAI,CAAC,oBAAoB,EAAC;AAC1B,kBAAI,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;aAC/B;AACD,eAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACtB,gBAAG,EAAE,CAAC,iBAAiB,EAAC;AACpB,kBAAI,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;AACtD,iBAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aACzB;AACD,gBAAG,EAAE,CAAC,oBAAoB,EAAC;AACvB,kBAAI,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;AACzD,iBAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aACzB;WACJ;AACD,iBAAO,GAAG,CAAC;SACd;;;;WA9UQ,QAAQ;;;UAAR,QAAQ,GAAR,QAAQ","file":"src-es6/modules/dropdown.js","sourcesContent":["import {Dom} from '../dom';\r\nimport {Arr as array} from '../array';\r\nimport {Str} from '../string';\r\nimport {Sort} from '../sort';\r\n\r\nexport class Dropdown{\r\n\r\n /**\r\n * Dropdown UI component\r\n * @param {Object} tf TableFilter instance\r\n */\r\n constructor(tf){\r\n // Configuration object\r\n var f = tf.fObj;\r\n\r\n this.enableSlcResetFilter = f.enable_slc_reset_filter ? false : true;\r\n //defines empty option text\r\n this.nonEmptyText = f.non_empty_text || '(Non empty)';\r\n //sets select filling method: 'innerHTML' or 'createElement'\r\n this.slcFillingMethod = f.slc_filling_method || 'createElement';\r\n //IE only, tooltip text appearing on select before it is populated\r\n this.activateSlcTooltip = f.activate_slc_tooltip ||\r\n 'Click to activate';\r\n //tooltip text appearing on multiple select\r\n this.multipleSlcTooltip = f.multiple_slc_tooltip ||\r\n 'Use Ctrl key for multiple selections';\r\n\r\n this.isCustom = null;\r\n this.opts = null;\r\n this.optsTxt = null;\r\n this.slcInnerHtml = null;\r\n\r\n this.tf = tf;\r\n }\r\n\r\n /**\r\n * Build drop-down filter UI asynchronously\r\n * @param {Number} colIndex Column index\r\n * @param {Boolean} isRefreshed Enable linked refresh behaviour\r\n * @param {Boolean} isExternal Render in external container\r\n * @param {String} extSlcId External container id\r\n */\r\n build(colIndex, isRefreshed, isExternal, extSlcId){\r\n var tf = this.tf;\r\n tf.EvtManager(\r\n tf.Evt.name.dropdown,\r\n {\r\n slcIndex: colIndex,\r\n slcRefreshed: isRefreshed,\r\n slcExternal: isExternal,\r\n slcId: extSlcId\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Build drop-down filter UI\r\n * @param {Number} colIndex Column index\r\n * @param {Boolean} isRefreshed Enable linked refresh behaviour\r\n * @param {Boolean} isExternal Render in external container\r\n * @param {String} extSlcId External container id\r\n */\r\n _build(colIndex, isRefreshed=false, isExternal=false, extSlcId=null){\r\n var tf = this.tf;\r\n colIndex = parseInt(colIndex, 10);\r\n\r\n this.opts = [];\r\n this.optsTxt = [];\r\n this.slcInnerHtml = '';\r\n\r\n var slcId = tf.fltIds[colIndex];\r\n if((!Dom.id(slcId) && !isExternal) ||\r\n (!Dom.id(extSlcId) && isExternal)){\r\n return;\r\n }\r\n var slc = !isExternal ? Dom.id(slcId) : Dom.id(extSlcId),\r\n rows = tf.tbl.rows,\r\n matchCase = tf.matchCase,\r\n fillMethod = Str.lower(this.slcFillingMethod);\r\n\r\n //custom select test\r\n this.isCustom = (tf.hasCustomSlcOptions &&\r\n array.has(tf.customSlcOptions.cols, colIndex));\r\n\r\n //custom selects text\r\n var activeFlt;\r\n if(isRefreshed && tf.activeFilterId){\r\n activeFlt = tf.activeFilterId.split('_')[0];\r\n activeFlt = activeFlt.split(tf.prfxFlt)[1];\r\n }\r\n\r\n /*** remember grid values ***/\r\n var fltsValues = [], fltArr = [];\r\n if(tf.rememberGridValues){\r\n fltsValues = tf.Cpt.store.getFilterValues(tf.fltsValuesCookie);\r\n if(fltsValues && !Str.isEmpty(fltsValues.toString())){\r\n if(this.isCustom){\r\n fltArr.push(fltsValues[colIndex]);\r\n } else {\r\n fltArr = fltsValues[colIndex].split(' '+tf.orOperator+' ');\r\n }\r\n }\r\n }\r\n\r\n var excludedOpts = null,\r\n filteredDataCol = null;\r\n if(isRefreshed && tf.disableExcludedOptions){\r\n excludedOpts = [];\r\n filteredDataCol = [];\r\n }\r\n\r\n for(var k=tf.refRow; k<tf.nbRows; k++){\r\n // always visible rows don't need to appear on selects as always\r\n // valid\r\n if(tf.hasVisibleRows && array.has(tf.visibleRows, k) &&\r\n !tf.paging){\r\n continue;\r\n }\r\n\r\n var cell = rows[k].cells,\r\n nchilds = cell.length;\r\n\r\n // checks if row has exact cell #\r\n if(nchilds !== tf.nbCells || this.isCustom){\r\n continue;\r\n }\r\n\r\n // this loop retrieves cell data\r\n for(var j=0; j<nchilds; j++){\r\n if((colIndex===j &&\r\n (!isRefreshed ||\r\n (isRefreshed && tf.disableExcludedOptions))) ||\r\n (colIndex==j && isRefreshed &&\r\n ((rows[k].style.display === '' && !tf.paging) ||\r\n (tf.paging && (!tf.validRowsIndex ||\r\n (tf.validRowsIndex &&\r\n array.has(tf.validRowsIndex, k))) &&\r\n ((activeFlt===undefined || activeFlt==colIndex) ||\r\n (activeFlt!=colIndex &&\r\n array.has(tf.validRowsIndex, k) ))) ))){\r\n var cell_data = tf.GetCellData(j, cell[j]),\r\n //Vary Peter's patch\r\n cell_string = Str.matchCase(cell_data, matchCase);\r\n\r\n // checks if celldata is already in array\r\n if(!array.has(this.opts, cell_string, matchCase)){\r\n this.opts.push(cell_data);\r\n }\r\n\r\n if(isRefreshed && tf.disableExcludedOptions){\r\n var filteredCol = filteredDataCol[j];\r\n if(!filteredCol){\r\n filteredCol = this.GetFilteredDataCol(j);\r\n }\r\n if(!array.has(filteredCol, cell_string, matchCase) &&\r\n !array.has(\r\n excludedOpts, cell_string, matchCase) &&\r\n !this.isFirstLoad){\r\n excludedOpts.push(cell_data);\r\n }\r\n }\r\n }//if colIndex==j\r\n }//for j\r\n }//for k\r\n\r\n //Retrieves custom values\r\n if(this.isCustom){\r\n var customValues = tf.__getCustomValues(colIndex);\r\n this.opts = customValues[0];\r\n this.optsTxt = customValues[1];\r\n }\r\n\r\n if(tf.sortSlc && !this.isCustom){\r\n if (!matchCase){\r\n this.opts.sort(Sort.ignoreCase);\r\n if(excludedOpts){\r\n excludedOpts.sort(Sort.ignoreCase);\r\n }\r\n } else {\r\n this.opts.sort();\r\n if(excludedOpts){ excludedOpts.sort(); }\r\n }\r\n }\r\n\r\n //asc sort\r\n if(tf.sortNumAsc && array.has(tf.sortNumAsc, colIndex)){\r\n try{\r\n this.opts.sort( numSortAsc );\r\n if(excludedOpts){\r\n excludedOpts.sort(numSortAsc);\r\n }\r\n if(this.isCustom){\r\n this.optsTxt.sort(numSortAsc);\r\n }\r\n } catch(e) {\r\n this.opts.sort();\r\n if(excludedOpts){\r\n excludedOpts.sort();\r\n }\r\n if(this.isCustom){\r\n this.optsTxt.sort();\r\n }\r\n }//in case there are alphanumeric values\r\n }\r\n //desc sort\r\n if(tf.sortNumDesc && array.has(tf.sortNumDesc, colIndex)){\r\n try{\r\n this.opts.sort(numSortDesc);\r\n if(excludedOpts){\r\n excludedOpts.sort(numSortDesc);\r\n }\r\n if(this.isCustom){\r\n this.optsTxt.sort(numSortDesc);\r\n }\r\n } catch(e) {\r\n this.opts.sort();\r\n if(excludedOpts){\r\n excludedOpts.sort();\r\n }\r\n if(this.isCustom){\r\n this.optsTxt.sort();\r\n }\r\n }//in case there are alphanumeric values\r\n }\r\n\r\n //populates drop-down\r\n this.addOptions(\r\n colIndex, slc, isRefreshed, excludedOpts, fltsValues, fltArr);\r\n }\r\n\r\n /**\r\n * Add drop-down options\r\n * @param {Number} colIndex Column index\r\n * @param {Object} slc Select Dom element\r\n * @param {Boolean} isRefreshed Enable linked refresh behaviour\r\n * @param {Array} excludedOpts Array of excluded options\r\n * @param {Array} fltsValues Collection of persisted filter values\r\n * @param {Array} fltArr Collection of persisted filter values\r\n */\r\n addOptions(colIndex, slc, isRefreshed, excludedOpts, fltsValues, fltArr){\r\n var tf = this.tf,\r\n fillMethod = Str.lower(this.slcFillingMethod),\r\n slcValue = slc.value;\r\n\r\n slc.innerHTML = '';\r\n slc = this.addFirstOption(slc);\r\n\r\n for(var y=0; y<this.opts.length; y++){\r\n if(this.opts[y]===''){\r\n continue;\r\n }\r\n var val = this.opts[y]; //option value\r\n var lbl = this.isCustom ? this.optsTxt[y] : val; //option text\r\n var isDisabled = false;\r\n if(isRefreshed && this.disableExcludedOptions &&\r\n array.has(\r\n excludedOpts,\r\n Str.matchCase(val, tf.matchCase),\r\n tf.matchCase\r\n )){\r\n isDisabled = true;\r\n }\r\n\r\n if(fillMethod === 'innerhtml'){\r\n var slcAttr = '';\r\n if(tf.fillSlcOnDemand && slcValue===this.opts[y]){\r\n slcAttr = 'selected=\"selected\"';\r\n }\r\n this.slcInnerHtml += '<option value=\"'+val+'\" ' + slcAttr +\r\n (isDisabled ? 'disabled=\"disabled\"' : '')+ '>' +\r\n lbl+'</option>';\r\n } else {\r\n var opt;\r\n //fill select on demand\r\n if(tf.fillSlcOnDemand && slcValue===this.opts[y] &&\r\n tf['col'+colIndex]===tf.fltTypeSlc){\r\n opt = Dom.createOpt(lbl, val, true);\r\n } else {\r\n if(tf['col'+colIndex]!==tf.fltTypeMulti){\r\n opt = Dom.createOpt(\r\n lbl,\r\n val,\r\n (fltsValues[colIndex]!==' ' &&\r\n val===fltsValues[colIndex]) ? true : false\r\n );\r\n } else {\r\n opt = Dom.createOpt(\r\n lbl,\r\n val,\r\n (array.has(fltArr,\r\n Str.matchCase(this.opts[y], tf.matchCase),\r\n tf.matchCase) ||\r\n fltArr.toString().indexOf(val)!== -1) ?\r\n true : false\r\n );\r\n }\r\n }\r\n if(isDisabled){\r\n opt.disabled = true;\r\n }\r\n slc.appendChild(opt);\r\n }\r\n }// for y\r\n\r\n if(fillMethod === 'innerhtml'){\r\n slc.innerHTML += this.slcInnerHtml;\r\n }\r\n slc.setAttribute('filled', '1');\r\n }\r\n\r\n /**\r\n * Add drop-down header option\r\n * @param {Object} slc Select DOM element\r\n */\r\n addFirstOption(slc){\r\n var tf = this.tf,\r\n fillMethod = Str.lower(this.slcFillingMethod);\r\n\r\n if(fillMethod === 'innerhtml'){\r\n this.slcInnerHtml += '<option value=\"\">'+ tf.displayAllText +\r\n '</option>';\r\n }\r\n else {\r\n var opt0 = Dom.createOpt(\r\n (!this.enableSlcResetFilter ? '' : tf.displayAllText),'');\r\n if(!this.enableSlcResetFilter){\r\n opt0.style.display = 'none';\r\n }\r\n slc.appendChild(opt0);\r\n if(tf.enableEmptyOption){\r\n var opt1 = Dom.createOpt(tf.emptyText, tf.emOperator);\r\n slc.appendChild(opt1);\r\n }\r\n if(tf.enableNonEmptyOption){\r\n var opt2 = Dom.createOpt(tf.nonEmptyText, tf.nmOperator);\r\n slc.appendChild(opt2);\r\n }\r\n }\r\n return slc;\r\n }\r\n\r\n}\r\n"]}