{"version":3,"file":"silentium-morphdom.mjs","sources":["../src/index.ts"],"sourcesContent":["import morphdom from \"morphdom\";\nimport { All, Applied, Message, MessageType, Shared } from \"silentium\";\n\n/**\n * Represents a function that renders HTML string into an element\n */\nexport function Render(\n  $root: MessageType<HTMLElement>,\n  $html: MessageType<string>,\n) {\n  const $rootChild = Applied($root, (root) => {\n    const div = document.createElement(\"div\");\n    root.appendChild(div);\n    return div;\n  });\n  const $all = All($html, $rootChild);\n  return Shared(\n    Message<HTMLElement>(function RenderImpl(resolve, reject) {\n      let updatedDiv: HTMLElement | null = null;\n      $all.then(([html, div]) => {\n        try {\n          updatedDiv = morphdom(updatedDiv ?? div, html, {\n            childrenOnly: false,\n            onBeforeElUpdated: function (fromEl, toEl) {\n              if (fromEl.isEqualNode(toEl)) {\n                return false;\n              }\n\n              return true;\n            },\n          }) as HTMLElement;\n          resolve(updatedDiv);\n        } catch (e: any) {\n          reject(\"Error in Render function from morphdom \" + e.message);\n        }\n      });\n    }),\n  );\n}\n"],"names":[],"mappings":";;;AAMO,SAAS,MAAA,CACd,OACA,KAAA,EACA;AACA,EAAA,MAAM,UAAA,GAAa,OAAA,CAAQ,KAAA,EAAO,CAAC,IAAA,KAAS;AAC1C,IAAA,MAAM,GAAA,GAAM,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AACxC,IAAA,IAAA,CAAK,YAAY,GAAG,CAAA;AACpB,IAAA,OAAO,GAAA;AAAA,EACT,CAAC,CAAA;AACD,EAAA,MAAM,IAAA,GAAO,GAAA,CAAI,KAAA,EAAO,UAAU,CAAA;AAClC,EAAA,OAAO,MAAA;AAAA,IACL,OAAA,CAAqB,SAAS,UAAA,CAAW,OAAA,EAAS,MAAA,EAAQ;AACxD,MAAA,IAAI,UAAA,GAAiC,IAAA;AACrC,MAAA,IAAA,CAAK,IAAA,CAAK,CAAC,CAAC,IAAA,EAAM,GAAG,CAAA,KAAM;AACzB,QAAA,IAAI;AACF,UAAA,UAAA,GAAa,QAAA,CAAS,UAAA,IAAc,GAAA,EAAK,IAAA,EAAM;AAAA,YAC7C,YAAA,EAAc,KAAA;AAAA,YACd,iBAAA,EAAmB,SAAU,MAAA,EAAQ,IAAA,EAAM;AACzC,cAAA,IAAI,MAAA,CAAO,WAAA,CAAY,IAAI,CAAA,EAAG;AAC5B,gBAAA,OAAO,KAAA;AAAA,cACT;AAEA,cAAA,OAAO,IAAA;AAAA,YACT;AAAA,WACD,CAAA;AACD,UAAA,OAAA,CAAQ,UAAU,CAAA;AAAA,QACpB,SAAS,CAAA,EAAQ;AACf,UAAA,MAAA,CAAO,yCAAA,GAA4C,EAAE,OAAO,CAAA;AAAA,QAC9D;AAAA,MACF,CAAC,CAAA;AAAA,IACH,CAAC;AAAA,GACH;AACF;;;;"}