'use strict';

const InterceptorHandler = require('./InterceptorHandler-09a1e84b.js');
const tableConfig = require('./table-config-b20b4da1.js');
const viewConfig = require('./view-config-f8b4b929.js');

class ModifierTrimmer extends InterceptorHandler.InterceptorConfig {
  constructor() {
    super('modifierTrimmer');
  }
}
ModifierTrimmer.id = 'modifierTrimmer';
class ModifierTrimmerHandler extends InterceptorHandler.InterceptorHandler {
  run(_context, _values, _field, value) {
    if (typeof value === 'string' || value instanceof String) {
      return { value: value.trim() };
    }
    return { value };
  }
}
InterceptorHandler.registerInterceptor(ModifierTrimmer.id, (_config) => new ModifierTrimmerHandler());

class FormViewConfig extends viewConfig.DvnAppViewConfig {
  static decode(json) {
    const model = Object.assign(Object.create(FormViewConfig.prototype), json);
    model.table = tableConfig.TableConfig.decode(model.table);
    return model;
  }
}

exports.FormViewConfig = FormViewConfig;
exports.ModifierTrimmer = ModifierTrimmer;
