"use strict";

exports.__esModule = true;
exports.handlebarsTemplateControlSetItem = void 0;
var _chartControls = require("@superset-ui/chart-controls");
var _core = require("@superset-ui/core");
var _react = _interopRequireDefault(require("react"));
var _CodeEditor = require("../../components/CodeEditor/CodeEditor");
var _controlHeader = require("../../components/ControlHeader/controlHeader");
var _consts = require("../../consts");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } /**
                                                                                                                                                                                                                                                                                                                                                     * Licensed to the Apache Software Foundation (ASF) under one
                                                                                                                                                                                                                                                                                                                                                     * or more contributor license agreements.  See the NOTICE file
                                                                                                                                                                                                                                                                                                                                                     * distributed with this work for additional information
                                                                                                                                                                                                                                                                                                                                                     * regarding copyright ownership.  The ASF licenses this file
                                                                                                                                                                                                                                                                                                                                                     * to you under the Apache License, Version 2.0 (the
                                                                                                                                                                                                                                                                                                                                                     * "License"); you may not use this file except in compliance
                                                                                                                                                                                                                                                                                                                                                     * with the License.  You may obtain a copy of the License at
                                                                                                                                                                                                                                                                                                                                                     *
                                                                                                                                                                                                                                                                                                                                                     *   http://www.apache.org/licenses/LICENSE-2.0
                                                                                                                                                                                                                                                                                                                                                     *
                                                                                                                                                                                                                                                                                                                                                     * Unless required by applicable law or agreed to in writing,
                                                                                                                                                                                                                                                                                                                                                     * software distributed under the License is distributed on an
                                                                                                                                                                                                                                                                                                                                                     * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
                                                                                                                                                                                                                                                                                                                                                     * KIND, either express or implied.  See the License for the
                                                                                                                                                                                                                                                                                                                                                     * specific language governing permissions and limitations
                                                                                                                                                                                                                                                                                                                                                     * under the License.
                                                                                                                                                                                                                                                                                                                                                     */
var HandlebarsTemplateControl = props => {
  var val = String(props != null && props.value ? props == null ? void 0 : props.value : props != null && props.default ? props == null ? void 0 : props.default : '');
  return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_controlHeader.ControlHeader, null, props.label), /*#__PURE__*/_react.default.createElement(_CodeEditor.CodeEditor, {
    theme: "dark",
    value: val,
    onChange: source => {
      (0, _consts.debounceFunc)(props.onChange, source || '');
    }
  }));
};
var handlebarsTemplateControlSetItem = {
  name: 'handlebarsTemplate',
  config: _extends({}, _chartControls.sharedControls.entity, {
    type: HandlebarsTemplateControl,
    label: (0, _core.t)('Handlebars Template'),
    description: (0, _core.t)('A handlebars template that is applied to the data'),
    default: "<ul class=\"data-list\">\n  {{#each data}}\n    <li>{{stringify this}}</li>\n  {{/each}}\n</ul>",
    isInt: false,
    renderTrigger: true,
    validators: [_core.validateNonEmpty],
    mapStateToProps: _ref => {
      var _controls$handlebars_;
      var {
        controls
      } = _ref;
      return {
        value: controls == null || (_controls$handlebars_ = controls.handlebars_template) == null ? void 0 : _controls$handlebars_.value
      };
    }
  })
};
exports.handlebarsTemplateControlSetItem = handlebarsTemplateControlSetItem;