"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.addressCellType = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _react = _interopRequireDefault(require("react"));
var _designSystem = require("@wix/design-system");
var _types = require("../../types");
var _View = require("./View");
exports.AddressCellView = _View.AddressCellView;
var _jsxFileName = "/home/builduser/work/843658b9f44192f0/packages/cairo/dist/cjs/components/EditableTable/cellTypes/address/index.tsx";
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
const addressEditFactory = () => Promise.resolve().then(() => _interopRequireWildcard(require(/* webpackChunkName: "EditableTableAddressEdit" */'./Edit'))).then(m => ({
  default: m.AddressEdit
}));
if (typeof process !== 'undefined' && process.env.STORYBOOK_VISUAL_E2E !== 'true') {
  addressEditFactory();
}
const LazyAddressEdit = /*#__PURE__*/_react.default.lazy(addressEditFactory);
const AddressEdit = props => /*#__PURE__*/_react.default.createElement(_react.default.Suspense, {
  fallback: /*#__PURE__*/_react.default.createElement(_designSystem.Loader, {
    size: "tiny",
    __self: void 0,
    __source: {
      fileName: _jsxFileName,
      lineNumber: 23,
      columnNumber: 29
    }
  }),
  __self: void 0,
  __source: {
    fileName: _jsxFileName,
    lineNumber: 23,
    columnNumber: 3
  }
}, /*#__PURE__*/_react.default.createElement(LazyAddressEdit, (0, _extends2.default)({}, props, {
  __self: void 0,
  __source: {
    fileName: _jsxFileName,
    lineNumber: 24,
    columnNumber: 5
  }
})));
const addressCellType = exports.addressCellType = (0, _types.defineCellType)({
  type: 'address',
  ViewComponent: _View.AddressCellView,
  EditComponent: AddressEdit,
  serialize: value => value ? JSON.stringify(value) : '',
  deserialize: raw => {
    if (!raw) {
      return undefined;
    }
    try {
      const parsed = JSON.parse(raw);
      if (parsed && typeof parsed.formatted === 'string') {
        return parsed;
      }
    } catch {}
    return undefined;
  },
  validate: value => {
    if (!value) {
      return null;
    }
    if (typeof value === 'object' && typeof value.formatted === 'string' && value.formatted.length > 0) {
      return null;
    }
    return 'Invalid address';
  },
  editable: true,
  clearable: true,
  // Type-to-edit clears the cell so the user starts a fresh search query.
  onTypeToEdit: () => ({
    value: undefined
  })
});
//# sourceMappingURL=index.js.map