UNPKG

@mindfiredigital/page-builder-web-component

Version:
1 lines 3.78 kB
{"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":[]}