"use strict";

exports.__esModule = true;
exports.styleControlSetItem = 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 StyleControl = props => {
  var theme = (0, _core.useTheme)();
  var defaultValue = props != null && props.value ? undefined : "/*\n  .data-list {\n    background-color: yellow;\n  }\n*/";
  return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_controlHeader.ControlHeader, null, /*#__PURE__*/_react.default.createElement("div", null, props.label, /*#__PURE__*/_react.default.createElement(_chartControls.InfoTooltipWithTrigger, {
    iconsStyle: {
      marginLeft: theme.gridUnit
    },
    tooltip: (0, _core.t)('You need to configure HTML sanitization to use CSS')
  }))), /*#__PURE__*/_react.default.createElement(_CodeEditor.CodeEditor, {
    theme: "dark",
    mode: "css",
    value: props.value,
    defaultValue: defaultValue,
    onChange: source => {
      (0, _consts.debounceFunc)(props.onChange, source || '');
    }
  }));
};
var styleControlSetItem = {
  name: 'styleTemplate',
  config: _extends({}, _chartControls.sharedControls.entity, {
    type: StyleControl,
    label: (0, _core.t)('CSS Styles'),
    description: (0, _core.t)('CSS applied to the chart'),
    isInt: false,
    renderTrigger: true,
    validators: [],
    mapStateToProps: _ref => {
      var _controls$handlebars_;
      var {
        controls
      } = _ref;
      return {
        value: controls == null || (_controls$handlebars_ = controls.handlebars_template) == null ? void 0 : _controls$handlebars_.value
      };
    }
  })
};
exports.styleControlSetItem = styleControlSetItem;