{"version":3,"sources":["jsdelivr-header.js","/npm/@penpad/plugin-logger@0.4.0-alpha.0/dist/index.es5.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,CCNC,SAAU,EAAQ,GACE,iBAAZ,SAA0C,oBAAX,OAAyB,EAAQ,QAAS,QAAQ,gBAAiB,QAAQ,UAC/F,mBAAX,QAAyB,OAAO,IAAM,OAAO,CAAC,UAAW,eAAgB,SAAU,GAChE,GAAzB,EAAS,GAAU,MAAqB,kBAAoB,CAAC,EAAG,EAAO,OAAQ,EAAO,MACzF,CAJA,CAIE,MAAM,SAAU,EAAS,EAAM,GAAS,aAExC,EAAQ,GAAS,EAAM,eAAe,WAAa,EAAe,QAAI,EAKtE,MAAM,EAAe,IACT,EAAM,cAAc,EAAK,eAAgB,CAAE,MAAO,KAAM,CACxD,OAAQ,SACR,SAAU,GACV,GAAI,SACJ,KAAM,CAAC,EAAa,CAAC,OAcjC,MAAM,EAAc,KAChB,MAAM,MAAE,GAAU,EAAK,gBACvB,IAAK,EACD,OAAO,KACX,MACM,GADQ,GAAS,EAAM,MAAQ,EAAM,KAAK,QAAW,CAAC,GAC1C,MAAQ,GAC1B,OAAQ,EAAM,cAAc,EAAK,UAAW,CAAE,MAAO,QAAU,EAAK,KAAI,CAAC,EAAM,IAAW,EAAM,cAAc,MAAO,CAAE,IAAK,GAAS,KAAS,EAK5I,EAAY,KACd,MAAM,QAAE,GAAY,EAAK,gBACzB,OAAK,EAEG,KA1BZ,SAAsB,EAAS,GACtB,GAAY,EAAQ,SAEzB,EAAQ,QAAQ,UAAW,IACvB,MAAM,EAAQ,GAAS,EAAM,MAAS,GACtC,MAAO,IAAK,EAAO,KAAM,IAAI,EAAM,GAAU,GAErD,CAoBQ,CAAa,EAAS,EAAQ,EAFvB,MAGV,EAUL,EAAQ,aAAe,EACvB,EAAQ,UANU,EAAG,eACjB,MAAM,EAAM,IACZ,OAAO,EAAM,cAAc,EAAM,SAAU,KAAM,EAAS,CAAE,QAAO,EAKvE,EAAQ,QAAU,EAClB,EAAQ,UAAY,EAEpB,OAAO,eAAe,EAAS,aAAc,CAAE,OAAO,GAExD","file":"/npm/@penpad/plugin-logger@0.4.0-alpha.0/dist/index.es5.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@penpad/plugin-logger@0.4.0-alpha.0/dist/index.es5.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@penpad/core'), require('react')) :\n  typeof define === 'function' && define.amd ? define(['exports', '@penpad/core', 'react'], factory) :\n  (global = global || self, factory(global.PenpadPluginColor = {}, global.Penpad, global.React));\n}(this, function (exports, core, React) { 'use strict';\n\n  React = React && React.hasOwnProperty('default') ? React['default'] : React;\n\n  /**\r\n   * Logger plugin to be attached to <Penpad />\r\n   */\r\n  const LoggerPlugin = () => {\r\n      return (React.createElement(core.AddBlockPlugin, { block: () => ({\r\n              domain: 'panels',\r\n              priority: 80,\r\n              id: 'logger',\r\n              view: [LoggerPanel, {}]\r\n          }) }));\r\n  };\r\n  function pushLogEntry(actions, message) {\r\n      if (!actions || !actions.setData)\r\n          return;\r\n      actions.setData('logger', (state) => {\r\n          const logs = (state && state.logs) || [];\r\n          return { ...state, logs: [...logs, message] };\r\n      });\r\n  }\r\n  /**\r\n   * Panel UI\r\n   */\r\n  const LoggerPanel = () => {\r\n      const { state } = core.useAppContext();\r\n      if (!state)\r\n          return null;\r\n      const data = (state && state.data && state.data.logger) || {};\r\n      const logs = data.logs || [];\r\n      return (React.createElement(core.BasePanel, { title: 'Logs' }, logs.map((line, index) => (React.createElement(\"div\", { key: index }, line)))));\r\n  };\r\n  /**\r\n   * React hook\r\n   */\r\n  const useLogger = () => {\r\n      const { actions } = core.useAppContext();\r\n      if (!actions)\r\n          return () => { };\r\n      return (message) => {\r\n          pushLogEntry(actions, message);\r\n      };\r\n  };\r\n  /**\r\n   * Use logger render props\r\n   */\r\n  const UseLogger = ({ children }) => {\r\n      const log = useLogger();\r\n      return React.createElement(React.Fragment, null, children({ log }));\r\n  };\n\n  exports.LoggerPlugin = LoggerPlugin;\n  exports.UseLogger = UseLogger;\n  exports.default = LoggerPlugin;\n  exports.useLogger = useLogger;\n\n  Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n"]}