Source: forms/common-fields/color-combo-field.js


import * as Colors from '$qui/utils/colors.js'

import JQueryUIField from './jquery-ui-field.js'


/**
 * A color combo field based on preconfigured combo choices. The value data type is `String`.
 * @alias qui.forms.commonfields.ColorComboField
 * @extends qui.forms.commonfields.JQueryUIField
 */
class ColorComboField extends JQueryUIField {

    static WIDGET_CLASS = 'colorcombo'


    /**
     * @constructs
     * @param {Boolean} [filterEnabled] set to `true` to enable filter input box
     * @param {...*} args parent class parameters
     */
    constructor({filterEnabled = false, ...args}) {
        super({widgetAttrs: {filterEnabled: filterEnabled}, ...args})
    }

    valueToWidget(value) {
        if (value && typeof value === 'string' && !value.startsWith('@')) {
            value = Colors.normalize(value)
        }

        super.valueToWidget(value)
    }

}


export default ColorComboField