%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/ugotscom/3vfm3/node_modules/bootstrap-vue/esm/mixins/
Upload File :
Create Path :
Current File : /home/ugotscom/3vfm3/node_modules/bootstrap-vue/esm/mixins/form-options.js

import get from '../utils/get';
import { makePropsConfigurable } from '../utils/config';
import { stripTags } from '../utils/html';
import { isArray, isPlainObject, isUndefined } from '../utils/inspect';
import { keys } from '../utils/object';
import { warn } from '../utils/warn'; // --- Constants ---

var OPTIONS_OBJECT_DEPRECATED_MSG = 'Setting prop "options" to an object is deprecated. Use the array format instead.'; // --- Props ---

export var props = makePropsConfigurable({
  options: {
    type: [Array, Object],
    default: function _default() {
      return [];
    }
  },
  valueField: {
    type: String,
    default: 'value'
  },
  textField: {
    type: String,
    default: 'text'
  },
  htmlField: {
    type: String,
    default: 'html'
  },
  disabledField: {
    type: String,
    default: 'disabled'
  }
}, 'formOptionControls'); // --- Mixin ---
// @vue/component

export default {
  props: props,
  computed: {
    formOptions: function formOptions() {
      return this.normalizeOptions(this.options);
    }
  },
  methods: {
    normalizeOption: function normalizeOption(option) {
      var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;

      // When the option is an object, normalize it
      if (isPlainObject(option)) {
        var value = get(option, this.valueField);
        var text = get(option, this.textField);
        return {
          value: isUndefined(value) ? key || text : value,
          text: stripTags(String(isUndefined(text) ? key : text)),
          html: get(option, this.htmlField),
          disabled: Boolean(get(option, this.disabledField))
        };
      } // Otherwise create an `<option>` object from the given value


      return {
        value: key || option,
        text: stripTags(String(option)),
        disabled: false
      };
    },
    normalizeOptions: function normalizeOptions(options) {
      var _this = this;

      // Normalize the given options array
      if (isArray(options)) {
        return options.map(function (option) {
          return _this.normalizeOption(option);
        });
      } else if (isPlainObject(options)) {
        // Deprecate the object options format
        warn(OPTIONS_OBJECT_DEPRECATED_MSG, this.$options.name); // Normalize a `options` object to an array of options

        return keys(options).map(function (key) {
          return _this.normalizeOption(options[key] || {}, key);
        });
      } // If not an array or object, return an empty array

      /* istanbul ignore next */


      return [];
    }
  }
};

Zerion Mini Shell 1.0