Skip to content
Snippets Groups Projects
SelectBoxBase.js.map 5.8 KiB
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"]}