Newer
Older
{"version":3,"file":"SelectBoxBase.js","sourceRoot":"","sources":["../../src/domUtil/SelectBoxBase.ts"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * Created by gavorhes on 5/13/2016.\r\n */\r\n\r\nimport makeGuid from '../util/makeGuid';\r\nimport provide from '../util/provide';\r\nconst nm = provide('domUtil');\r\n\r\nexport interface selectChangeCallback{\r\n /**\r\n *\r\n * @param theValue the current select value of the select box\r\n */\r\n (theValue: string) : void\r\n}\r\n\r\n/**\r\n * must return in the contents <select id=\"${guid}\"></select> among other things\r\n */\r\nexport interface contentGenerator{\r\n /**\r\n * @param aGuid\r\n */\r\n (aGuid: string): string\r\n}\r\n\r\n\r\nexport class SelectBoxBase{\r\n _$container: JQuery;\r\n $label: JQuery;\r\n _box: JQuery;\r\n _changeListeners: Array<selectChangeCallback>;\r\n /**\r\n *\r\n * @param {jQuery} parent - parent container\r\n * @param {string} labelContent\r\n * @param {contentGenerator} [contentGen=undefined]\r\n */\r\n constructor(parent: JQuery, labelContent: string, contentGen?: contentGenerator){\r\n let guidTop = makeGuid();\r\n let guid = makeGuid();\r\n\r\n let htmlString = `<div id=\"${guidTop}\">`;\r\n htmlString += `<label for=\"${guid}\">${labelContent}</label>`;\r\n\r\n if (contentGen){\r\n htmlString += contentGen(guid);\r\n } else {\r\n htmlString += `<select id=\"${guid}\"></select>`;\r\n }\r\n htmlString += '</div>';\r\n\r\n parent.append(htmlString);\r\n\r\n this._$container = parent.find('#' + guidTop);\r\n\r\n this.$label = this._$container.find('label');\r\n\r\n /**\r\n *\r\n * @type {Array<selectChangeCallback>}\r\n * @private\r\n */\r\n this._changeListeners = [];\r\n\r\n this._box = parent.find(`#${guid}`);\r\n \r\n if (!this._box){\r\n throw 'the select box was not found';\r\n }\r\n\r\n this._box.change(() => {\r\n this.changed();\r\n })\r\n }\r\n\r\n /**\r\n * \r\n * @returns {jQuery}\r\n */\r\n get box(){\r\n return this._box;\r\n }\r\n\r\n changed(){\r\n let v = this._box.val();\r\n \r\n for (let f of this._changeListeners){\r\n f(v);\r\n }\r\n }\r\n\r\n /**\r\n *\r\n * @param {selectChangeCallback} func\r\n */\r\n addChangeListener(func: selectChangeCallback){\r\n this._changeListeners.push(func);\r\n }\r\n\r\n\r\n get selectedValue(): string|number{\r\n let theVal = this.box.val();\r\n\r\n if (theVal == null || typeof theVal == 'undefined'){\r\n return null;\r\n } else if (isNaN(theVal)){\r\n return theVal\r\n } else {\r\n if (theVal.indexOf('.') > -1){\r\n return parseFloat(theVal)\r\n } else {\r\n return parseInt(theVal);\r\n }\r\n }\r\n }\r\n\r\n get selectedIndex(): number {\r\n return (this._box[0] as HTMLSelectElement).selectedIndex;\r\n }\r\n\r\n /**\r\n *\r\n * @param {string|number} v\r\n */\r\n set selectedValue(v: string|number){\r\n this.box.val(v);\r\n }\r\n \r\n get selectedText(){\r\n return this.box.find('option:selected').text();\r\n }\r\n\r\n}\r\n\r\nnm.SelectBoxBase = SelectBoxBase;\r\n\r\nexport default SelectBoxBase;\r\n"]}