{"version":3,"sources":["../src/index.ts","../src/components/PageBuilder.ts"],"sourcesContent":["export * from './components/PageBuilder';\r\n","import { PageBuilder } from '@mindfiredigital/page-builder/dist/PageBuilder.js';\r\n\r\nexport class PageBuilderComponent extends HTMLElement {\r\n  private pageBuilder!: PageBuilder;\r\n  private initialized = false;\r\n  private config = { Basic: [], Extra: [], Custom: [] };\r\n  private template = `<div id=\"app\">\r\n      <div id=\"sidebar\"></div>\r\n      <div id=\"canvas\" class=\"canvas\"></div>\r\n      <div id=\"customization\">\r\n        <h4 id=\"component-name\">Component: None</h4>\r\n        <div id=\"controls\"></div>\r\n        <div id=\"layers-view\" class=\"hidden\"></div>\r\n      </div>\r\n      <div id=\"notification\" class=\"notification hidden\"></div>\r\n      <div id=\"dialog\" class=\"dialog hidden\">\r\n        <div class=\"dialog-content\">\r\n          <p id=\"dialog-message\"></p>\r\n          <button id=\"dialog-yes\" class=\"dialog-btn\">Yes</button>\r\n          <button id=\"dialog-no\" class=\"dialog-btn\">No</button>\r\n        </div>\r\n      </div>\r\n    </div>`;\r\n\r\n  constructor() {\r\n    super();\r\n    // Set inner HTML only if no child elements exist\r\n    if (!this.firstElementChild) {\r\n      this.innerHTML = this.template;\r\n    }\r\n  }\r\n\r\n  // Observe 'config-data' attribute to detect changes\r\n  static get observedAttributes() {\r\n    return ['config-data'];\r\n  }\r\n\r\n  attributeChangedCallback(name: string, oldValue: string, newValue: string) {\r\n    if (name === 'config-data' && newValue !== oldValue) {\r\n      try {\r\n        const parsedConfig = JSON.parse(newValue);\r\n        this.config = parsedConfig;\r\n        this.initializePageBuilder(); // Reinitialize Core when config changes\r\n      } catch (e) {\r\n        console.error('Failed to parse config:', e);\r\n      }\r\n    }\r\n  }\r\n\r\n  // Lifecycle method: Called when the element is added to the DOM\r\n  connectedCallback() {\r\n    if (this.initialized) {\r\n      return;\r\n    }\r\n    this.initializePageBuilder();\r\n  }\r\n\r\n  // Initializes the PageBuilder instance\r\n  private initializePageBuilder() {\r\n    if (this.initialized) {\r\n      return;\r\n    }\r\n\r\n    try {\r\n      this.initialized = true;\r\n      this.pageBuilder = new PageBuilder(this.config);\r\n    } catch (error) {\r\n      console.error('Failed to initialize PageBuilder:', error);\r\n      this.initialized = false;\r\n    }\r\n  }\r\n}\r\n\r\n// Define the custom element if it hasn't been registered already\r\nif (!customElements.get('page-builder')) {\r\n  customElements.define('page-builder', PageBuilderComponent);\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,yBAA4B;AAErB,IAAM,uBAAN,cAAmC,YAAY;AAAA,EAsBpD,cAAc;AACZ,UAAM;AArBR,SAAQ,cAAc;AACtB,SAAQ,SAAS,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,QAAQ,CAAC,EAAE;AACpD,SAAQ,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAqBjB,QAAI,CAAC,KAAK,mBAAmB;AAC3B,WAAK,YAAY,KAAK;AAAA,IACxB;AAAA,EACF;AAAA;AAAA,EAGA,WAAW,qBAAqB;AAC9B,WAAO,CAAC,aAAa;AAAA,EACvB;AAAA,EAEA,yBAAyB,MAAc,UAAkB,UAAkB;AACzE,QAAI,SAAS,iBAAiB,aAAa,UAAU;AACnD,UAAI;AACF,cAAM,eAAe,KAAK,MAAM,QAAQ;AACxC,aAAK,SAAS;AACd,aAAK,sBAAsB;AAAA,MAC7B,SAAS,GAAP;AACA,gBAAQ,MAAM,2BAA2B,CAAC;AAAA,MAC5C;AAAA,IACF;AAAA,EACF;AAAA;AAAA,EAGA,oBAAoB;AAClB,QAAI,KAAK,aAAa;AACpB;AAAA,IACF;AACA,SAAK,sBAAsB;AAAA,EAC7B;AAAA;AAAA,EAGQ,wBAAwB;AAC9B,QAAI,KAAK,aAAa;AACpB;AAAA,IACF;AAEA,QAAI;AACF,WAAK,cAAc;AACnB,WAAK,cAAc,IAAI,+BAAY,KAAK,MAAM;AAAA,IAChD,SAAS,OAAP;AACA,cAAQ,MAAM,qCAAqC,KAAK;AACxD,WAAK,cAAc;AAAA,IACrB;AAAA,EACF;AACF;AAGA,IAAI,CAAC,eAAe,IAAI,cAAc,GAAG;AACvC,iBAAe,OAAO,gBAAgB,oBAAoB;AAC5D;","names":[]}