{"id":18937,"library":"wuic-framework-lib","title":"Wuic Angular Framework Library","description":"WuicFrameworkLib is an Angular library (v0.2.0) generated with Angular CLI 18.2.0, providing UI components and utilities for Wuic-based applications. It requires Angular 21+, PrimeNG 21+, Bootstrap 5, Dexie for IndexedDB, FullCalendar, Rete for node editors, Monaco Editor via ngx-monaco-editor, and Syncfusion Spreadsheet. Types are included. This library integrates multiple large dependencies like FullCalendar, Rete, Monaco, and Syncfusion, making setup complex. Release cadence is unknown as it is pre-1.0. It differentiates by bundling a comprehensive set of third-party UI libraries under a single Angular library, but this also means high maintenance overhead and potential version conflicts.","status":"active","version":"0.2.0","language":"javascript","source_language":"en","source_url":null,"tags":["javascript","angular","wuic","framework","typescript"],"install":[{"cmd":"npm install wuic-framework-lib","lang":"bash","label":"npm"},{"cmd":"yarn add wuic-framework-lib","lang":"bash","label":"yarn"},{"cmd":"pnpm add wuic-framework-lib","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Core Angular module for pipes, directives, etc.","package":"@angular/common","optional":false},{"reason":"Angular core runtime","package":"@angular/core","optional":false},{"reason":"Angular Component Dev Kit for additional UI primitives","package":"@angular/cdk","optional":false},{"reason":"Google Maps integration","package":"@angular/google-maps","optional":false},{"reason":"Calendar component","package":"@fullcalendar/angular","optional":false},{"reason":"FullCalendar core","package":"@fullcalendar/core","optional":false},{"reason":"Day grid view for FullCalendar","package":"@fullcalendar/daygrid","optional":false},{"reason":"Interaction plugin for FullCalendar","package":"@fullcalendar/interaction","optional":false},{"reason":"Time grid view for FullCalendar","package":"@fullcalendar/timegrid","optional":false},{"reason":"Bootstrap 5 theme for FullCalendar","package":"@fullcalendar/bootstrap5","optional":false},{"reason":"Marker clustering for Google Maps","package":"@googlemaps/markerclusterer","optional":false},{"reason":"Monaco Editor integration for Angular","package":"@materia-ui/ngx-monaco-editor","optional":false},{"reason":"Internationalization support","package":"@ngx-translate/core","optional":false},{"reason":"Angular elements for custom elements","package":"@angular/elements","optional":false},{"reason":"CSS framework","package":"bootstrap","optional":false},{"reason":"IndexedDB wrapper","package":"dexie","optional":false},{"reason":"Spreadsheet component","package":"jspreadsheet","optional":false},{"reason":"Syncfusion EJ2 base","package":"@syncfusion/ej2-base","optional":false},{"reason":"Syncfusion Spreadsheet for Angular","package":"@syncfusion/ej2-angular-spreadsheet","optional":false},{"reason":"Code editor","package":"monaco-editor","optional":false},{"reason":"Webpack plugin for Monaco (likely needed at build time)","package":"monaco-editor-webpack-plugin","optional":true},{"reason":"Cookie management","package":"ngx-cookie-service","optional":false},{"reason":"OData filter builder","package":"odata-filter-builder","optional":false},{"reason":"Node-based visual programming editor","package":"rete","optional":false},{"reason":"Rete plugin for Angular rendering","package":"rete-angular-plugin","optional":false},{"reason":"Rete area plugin","package":"rete-area-plugin","optional":false},{"reason":"Rete connection plugin","package":"rete-connection-plugin","optional":false},{"reason":"Rete render utilities","package":"rete-render-utils","optional":false},{"reason":"PrimeFlex CSS utility library","package":"primeflex","optional":false},{"reason":"PrimeIcons icon set","package":"primeicons","optional":false},{"reason":"PrimeNG UI components","package":"primeng","optional":false}],"imports":[{"note":"Named export from the main library module.","wrong":"import { WuicFrameworkLibModule } from '@angular/common';","symbol":"WuicFrameworkLibModule","correct":"import { WuicFrameworkLibModule } from 'wuic-framework-lib';"},{"note":"Named export, not default. Requires Angular 21+.","wrong":"import WuicComponent from 'wuic-framework-lib';","symbol":"WuicComponent","correct":"import { WuicComponent } from 'wuic-framework-lib';"},{"note":"ESM only; CommonJS require() will fail. Use import syntax.","wrong":"const WuicService = require('wuic-framework-lib');","symbol":"WuicService","correct":"import { WuicService } from 'wuic-framework-lib';"}],"quickstart":{"code":"import { NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { WuicFrameworkLibModule } from 'wuic-framework-lib';\nimport { AppComponent } from './app.component';\n\n@NgModule({\n  declarations: [AppComponent],\n  imports: [\n    BrowserModule,\n    WuicFrameworkLibModule\n  ],\n  providers: [],\n  bootstrap: [AppComponent]\n})\nexport class AppModule { }","lang":"typescript","description":"Shows how to import WuicFrameworkLibModule into an Angular app module to use the library components."},"warnings":[{"fix":"Upgrade Angular to version 21 or later.","message":"Library requires Angular 21+. Using with older Angular versions will cause build failures.","severity":"breaking","affected_versions":"<21.0.0"},{"fix":"Pin exact version and review changelog before upgrading.","message":"This library is pre-1.0 (v0.2.0) and may change APIs without notice.","severity":"deprecated","affected_versions":">=0.0.0"},{"fix":"Install all peer dependencies listed in package.json.","message":"Multiple large peer dependencies (FullCalendar, Rete, Syncfusion, Monaco) must be installed separately. Missing any will cause runtime errors.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Set 'strictTemplates': false in tsconfig.json or adjust type assertions.","message":"Library ships TypeScript types but may not fully support strict mode. Expect compilation errors in strict template type checking.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Register a Syncfusion license key via registerLicense() in app.module.","message":"Syncfusion Spreadsheet requires a license key. Without it, the component may show a watermark or throw errors.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Install monaco-editor-webpack-plugin and add it to angular.json build options.","message":"Monaco Editor via ngx-monaco-editor requires additional Webpack configuration (monaco-editor-webpack-plugin).","severity":"gotcha","affected_versions":">=0.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"npm install monaco-editor","cause":"Missing monaco-editor peer dependency.","error":"Error: Can't resolve 'monaco-editor' in '...node_modules/@materia-ui/ngx-monaco-editor'"},{"fix":"Set 'strict': false or 'strictTemplates': false in tsconfig.json, or use type assertions.","cause":"TypeScript strict mode incompatibility with library types.","error":"ERROR in node_modules/wuic-framework-lib/lib/wuic.component.d.ts:... Type 'unknown' is not assignable to type 'string'."},{"fix":"Install dexie and ensure WuicFrameworkLibModule is imported.","cause":"Dexie dependency not installed or not imported properly.","error":"NullInjectorError: No provider for DexieService!"},{"fix":"Call registerLicense('your-license-key') in app.module.","cause":"Missing Syncfusion license key.","error":"License validation failed: The Syncfusion Spreadsheet is not registered."}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}