UNPKG

@plotinus/matrix-package-calculator

Version:

Calculator components for the Matrix framework - basic arithmetic operations with UI

66 lines (54 loc) 2.07 kB
// Browser bundle for @matrix/package-calculator import { componentSources } from './browser/component-sources.js'; import { CalculatorPresentationElement } from './presentation/index.js'; // Export everything needed for browser use export { componentSources, CalculatorPresentationElement }; // Auto-register function for convenience export function registerCalculatorComponents(Matrix) { if (!Matrix || !Matrix.BaseCommunicationComponent) { throw new Error('Matrix framework not found'); } // Register communication components from sources const components = { calculator: { name: 'CalculatorComponent', source: componentSources.calculatorCommunication, tag: 'calculator' } }; Object.values(components).forEach(comp => { try { const ComponentClass = new Function('BaseCommunicationComponent', comp.source + '\nreturn ' + comp.name )(Matrix.BaseCommunicationComponent); ComponentClass.dslTag = comp.tag; ComponentClass.isMatrixComponent = true; if (!window.MatrixComponents) { window.MatrixComponents = {}; } window.MatrixComponents[comp.name] = ComponentClass; Matrix.register(ComponentClass); console.log('Registered communication component:', comp.tag); } catch (error) { console.error('Failed to register component:', comp.name, error); } }); // Register presentation elements if (!customElements.get('calculator-presentation')) { customElements.define('calculator-presentation', CalculatorPresentationElement); } console.log('All calculator components registered'); } // Make available on window for easy access if (typeof window !== 'undefined') { window.MatrixPackageCalculator = { componentSources, CalculatorPresentationElement, registerCalculatorComponents }; }