Liferay.Loader.define("portal-workflow-metrics-web@2.0.42/js/shared/util/storage.es", ['module', 'exports', 'require'], function (module, exports, require) {
  var define = undefined;
  var global = window;
  {
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.jsonStorage = exports.jsonSessionStorage = exports.jsonLocalStorage = void 0;

    /**
     * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
     *
     * The contents of this file are subject to the terms of the Liferay Enterprise
     * Subscription License ("License"). You may not use this file except in
     * compliance with the License. You can obtain a copy of the License by
     * contacting Liferay, Inc. See the License for the specific language governing
     * permissions and limitations under the License, including but not limited to
     * distribution rights of the Software.
     */
    var getJsonItem = function getJsonItem(storage, key) {
      var item = storage.getItem(key) || '{}';
      var jsonItem;

      try {
        jsonItem = JSON.parse(item);
      } catch (_unused) {
        jsonItem = item;
      }

      return jsonItem;
    };

    var setJsonItem = function setJsonItem(storage, key) {
      var json = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
      var jsonString;

      try {
        jsonString = JSON.stringify(json);
      } catch (_unused2) {
        jsonString = json;
      }

      storage.setItem(key, jsonString);
    };

    var jsonStorage = function jsonStorage(storage) {
      return {
        get: function get(key) {
          return getJsonItem(storage, key);
        },
        remove: function remove(key) {
          return storage.removeItem(key);
        },
        set: function set(key, value) {
          return setJsonItem(storage, key, value);
        }
      };
    };

    exports.jsonStorage = jsonStorage;
    var jsonSessionStorage = jsonStorage(sessionStorage);
    exports.jsonSessionStorage = jsonSessionStorage;
    var jsonLocalStorage = jsonStorage(localStorage);
    exports.jsonLocalStorage = jsonLocalStorage;
    //# sourceMappingURL=storage.es.js.map
  }
});
//# sourceMappingURL=storage.es.js.map