@ng-formworks/cssframework 19.6.2 → 20.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -11,7 +11,7 @@ ng-formworks targets angular 15+ and also adds extra frameworks and theming supp
11
11
  <p align="center">
12
12
 
13
13
 
14
- <a href="https://angular.io/"><img src="https://img.shields.io/badge/angular-15,_16,_17,_18,_19-red.svg?logo=Angular&logoColor=red&labelColor=white&style=plastic" alt="Angular Versions"></a>
14
+ <a href="https://angular.io/"><img src="https://img.shields.io/badge/angular-15,_16,_17,_18,_19_20-red.svg?logo=Angular&logoColor=red&labelColor=white&style=plastic" alt="Angular Versions"></a>
15
15
  <a href="https://github.com/zahmo/ng-formworks/actions?query=workflow%3ACI+branch%3Amain"><img src="https://github.com/zahmo/ng-formworks/workflows/CI/badge.svg" alt="CI Status"></a> <a href="https://www.npmjs.com/package/@ng-formworks/core"><img src="https://img.shields.io/npm/dm/@ng-formworks/core.svg?style=plastic" alt="npm number of downloads"></a><a href="https://github.com/zahmo/ng-formworks/blob/master/LICENSE"><img src="https://img.shields.io/github/license/zahmo/ng-formworks.svg?style=social" alt="LICENSE IMT"></a><a href="https://app.netlify.com/sites/ng-formworks/deploys"><img src="https://api.netlify.com/api/v1/badges/6c5b5a1d-db7c-4d0e-8ac1-a4840d8812f0/deploy-status" alt="Netlify Status"></a>
16
16
 
17
17
 
@@ -37,6 +37,7 @@ Below is a table of the corresponding ng-formworks versions that's needed for th
37
37
 
38
38
  | Angular | ng-formworks | installation (for Material Design)
39
39
  |--|--|--|
40
+ | 20.x.x |20.x.x|```npm install @ng-formworks/core@^20.0.0 @ng-formworks/cssframework@^20.0.0 @ng-formworks/material@^20.0.0```|
40
41
  | 19.x.x |19.x.x|```npm install @ng-formworks/core@^19.0.0 @ng-formworks/cssframework@^19.0.0 @ng-formworks/material@^19.0.0```|
41
42
  | 18.x.x |18.x.x|```npm install @ng-formworks/core@^18.0.0 @ng-formworks/cssframework@^18.0.0 @ng-formworks/material@^18.0.0```|
42
43
  | 17.x.x |17.x.x|```npm install @ng-formworks/core@^17.0.0 @ng-formworks/cssframework@^17.0.0 @ng-formworks/material@^17.0.0```|
@@ -27,10 +27,10 @@ class CssframeworkService {
27
27
  getActiveRequestedTheme() {
28
28
  return this.activeRequestedTheme;
29
29
  }
30
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CssframeworkService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
31
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CssframeworkService, providedIn: 'root' }); }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: CssframeworkService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
31
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: CssframeworkService, providedIn: 'root' }); }
32
32
  }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CssframeworkService, decorators: [{
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: CssframeworkService, decorators: [{
34
34
  type: Injectable,
35
35
  args: [{
36
36
  providedIn: 'root'
@@ -96,10 +96,10 @@ class CssFrameworkComponent {
96
96
  this.debug = '';
97
97
  this.parentArray = null;
98
98
  this.isOrderable = false;
99
- this.layoutNode = input(undefined);
100
- this.layoutIndex = input(undefined);
101
- this.dataIndex = input(undefined);
102
- this.widgetStyles = model(undefined);
99
+ this.layoutNode = input(undefined, ...(ngDevMode ? [{ debugName: "layoutNode" }] : []));
100
+ this.layoutIndex = input(undefined, ...(ngDevMode ? [{ debugName: "layoutIndex" }] : []));
101
+ this.dataIndex = input(undefined, ...(ngDevMode ? [{ debugName: "dataIndex" }] : []));
102
+ this.widgetStyles = model(undefined, ...(ngDevMode ? [{ debugName: "widgetStyles" }] : []));
103
103
  this.defaultStyling = {
104
104
  array: {},
105
105
  default: { fieldHtmlClass: "cssfw-form-control" },
@@ -284,10 +284,10 @@ class CssFrameworkComponent {
284
284
  removeItem() {
285
285
  this.jsf.removeItem(this);
286
286
  }
287
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CssFrameworkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
288
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.14", type: CssFrameworkComponent, isStandalone: false, selector: "css-framework", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null }, widgetStyles: { classPropertyName: "widgetStyles", publicName: "widgetStyles", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { widgetStyles: "widgetStylesChange" }, usesOnChanges: true, ngImport: i0, template: "<div [attr.data-bs-theme]=\"theme\" [attr.data-theme]=\"theme\" [class]=\"options?.htmlClass || ''\" [class.has-feedback]=\"options?.feedback && options?.isInputWidget &&\r\n (formControl?.dirty || options?.feedbackOnRender)\" [class.has-error]=\"options?.enableErrorState && formControl?.errors &&\r\n (formControl?.dirty || options?.feedbackOnRender)\" [class.has-success]=\"options?.enableSuccessState && !formControl?.errors &&\r\n (formControl?.dirty || options?.feedbackOnRender)\">\r\n\r\n <button *ngIf=\"showRemoveButton\" [class]=\"widgetStyles().__remove_item__\" type=\"button\" (click)=\"removeItem()\">\r\n <span aria-hidden=\"true\">&times;</span>\r\n <span [class]=\"widgetStyles().__screen_reader__\">Close</span>\r\n </button>\r\n <div *ngIf=\"options?.messageLocation === 'top'\">\r\n <p *ngIf=\"options?.helpBlock\" [class]=\"widgetStyles().__help_block__\" [innerHTML]=\"options?.helpBlock\"></p>\r\n </div>\r\n\r\n <label *ngIf=\"options?.title && layoutNode()?.type !== 'tab'\" [attr.for]=\"'control' + layoutNode()?._id\" [class]=\"options?.labelHtmlClass || ''\" [class.sr-only]=\"options?.notitle\" [innerHTML]=\"options?.title\"></label>\r\n <p *ngIf=\"layoutNode()?.type === 'submit' && jsf?.formOptions?.fieldsRequired\">\r\n <strong [class]=\"widgetStyles().__required_asterisk__\">*</strong> = required fields\r\n </p>\r\n <div [class.input-group]=\"options?.fieldAddonLeft || options?.fieldAddonRight\">\r\n <span *ngIf=\"options?.fieldAddonLeft\" [class]=\"widgetStyles().__field_addon_left__\" [innerHTML]=\"options?.fieldAddonLeft\"></span>\r\n\r\n <select-widget-widget [layoutNode]=\"widgetLayoutNode\" [dataIndex]=\"dataIndex()\" [layoutIndex]=\"layoutIndex()\"></select-widget-widget>\r\n\r\n <span *ngIf=\"options?.fieldAddonRight\" [class]=\"widgetStyles().__field_addon_right__\" [innerHTML]=\"options?.fieldAddonRight\"></span>\r\n </div>\r\n\r\n <span *ngIf=\"options?.feedback && options?.isInputWidget &&\r\n !options?.fieldAddonRight && !layoutNode().arrayItem &&\r\n (formControl?.dirty || options?.feedbackOnRender)\" [class.glyphicon-ok]=\"options?.enableSuccessState && !formControl?.errors\" [class.glyphicon-remove]=\"options?.enableErrorState && formControl?.errors\" aria-hidden=\"true\" class=\"form-control-feedback glyphicon\"></span>\r\n <div *ngIf=\"options?.messageLocation !== 'top'\">\r\n <p *ngIf=\"options?.helpBlock\" [class]=\"widgetStyles().__help_block__\" [innerHTML]=\"options?.helpBlock\"></p>\r\n </div>\r\n\r\n</div>\r\n\r\n<div *ngIf=\"debug && debugOutput\">debug:\r\n <pre>{{debugOutput}}</pre>\r\n</div>\r\n\r\n<!--\r\n<div class=\"btn input input-bordered input-primary w-full max-w-xs\r\nbtn-neutral\r\nbtn-primary\r\nbtn-secondary\r\nbtn-accent\r\nbtn-info\r\nbtn-success\r\nbtn-warning\r\nbtn-error\r\nbtn-ghost\r\nbtn-link\r\nbtn-outline\r\nbtn-active\r\nbtn-disabled\r\nglass\r\nno-animation\r\nbtn-lg\r\nbtn-md\r\nbtn-sm\r\nbtn-xs\r\nbtn-wide\r\nbtn-block\r\nbtn-circle\r\nbtn-square\r\nhidden\r\n\">defs al</div>\r\n-->\r\n<!--<input type=\"text\" placeholder=\"Type here\" class=\"input input-bordered input-primary w-full max-w-xs\" />-->", styles: [":host ::ng-deep .list-group-item .form-control-feedback{top:40px}:host ::ng-deep .checkbox,:host ::ng-deep .radio{margin-top:0;margin-bottom:0}:host ::ng-deep .checkbox-inline,:host ::ng-deep .checkbox-inline+.checkbox-inline,:host ::ng-deep .checkbox-inline+.radio-inline,:host ::ng-deep .radio-inline,:host ::ng-deep .radio-inline+.radio-inline,:host ::ng-deep .radio-inline+.checkbox-inline{margin-left:0;margin-right:10px}:host ::ng-deep .checkbox-inline:last-child,:host ::ng-deep .radio-inline:last-child{margin-right:0}:host ::ng-deep .ng-invalid.ng-touched{border:1px solid #f44336}.checkbox-inline,.checkbox-inline+.checkbox-inline,.checkbox-inline+.radio-inline,.radio-inline,.radio-inline+.radio-inline,.radio-inline+.checkbox-inline{margin-left:0;margin-right:10px}.checkbox-inline:last-child,.radio-inline:last-child{margin-right:0}.ng-invalid.ng-touched{border:1px solid #f44336}\n"], dependencies: [{ kind: "component", type: i1.SelectWidgetComponent, selector: "select-widget-widget", inputs: ["layoutNode", "layoutIndex", "dataIndex"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None }); }
287
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: CssFrameworkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
288
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.6", type: CssFrameworkComponent, isStandalone: false, selector: "css-framework", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null }, widgetStyles: { classPropertyName: "widgetStyles", publicName: "widgetStyles", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { widgetStyles: "widgetStylesChange" }, usesOnChanges: true, ngImport: i0, template: "<div [attr.data-bs-theme]=\"theme\" [attr.data-theme]=\"theme\" [class]=\"options?.htmlClass || ''\" [class.has-feedback]=\"options?.feedback && options?.isInputWidget &&\r\n (formControl?.dirty || options?.feedbackOnRender)\" [class.has-error]=\"options?.enableErrorState && formControl?.errors &&\r\n (formControl?.dirty || options?.feedbackOnRender)\" [class.has-success]=\"options?.enableSuccessState && !formControl?.errors &&\r\n (formControl?.dirty || options?.feedbackOnRender)\">\r\n\r\n <button *ngIf=\"showRemoveButton\" [class]=\"widgetStyles().__remove_item__\" type=\"button\" (click)=\"removeItem()\">\r\n <span aria-hidden=\"true\">&times;</span>\r\n <span [class]=\"widgetStyles().__screen_reader__\">Close</span>\r\n </button>\r\n <div *ngIf=\"options?.messageLocation === 'top'\">\r\n <p *ngIf=\"options?.helpBlock\" [class]=\"widgetStyles().__help_block__\" [innerHTML]=\"options?.helpBlock\"></p>\r\n </div>\r\n\r\n <label *ngIf=\"options?.title && layoutNode()?.type !== 'tab'\" [attr.for]=\"'control' + layoutNode()?._id\" [class]=\"options?.labelHtmlClass || ''\" [class.sr-only]=\"options?.notitle\" [innerHTML]=\"options?.title\"></label>\r\n <p *ngIf=\"layoutNode()?.type === 'submit' && jsf?.formOptions?.fieldsRequired\">\r\n <strong [class]=\"widgetStyles().__required_asterisk__\">*</strong> = required fields\r\n </p>\r\n <div [class.input-group]=\"options?.fieldAddonLeft || options?.fieldAddonRight\">\r\n <span *ngIf=\"options?.fieldAddonLeft\" [class]=\"widgetStyles().__field_addon_left__\" [innerHTML]=\"options?.fieldAddonLeft\"></span>\r\n\r\n <select-widget-widget [layoutNode]=\"widgetLayoutNode\" [dataIndex]=\"dataIndex()\" [layoutIndex]=\"layoutIndex()\"></select-widget-widget>\r\n\r\n <span *ngIf=\"options?.fieldAddonRight\" [class]=\"widgetStyles().__field_addon_right__\" [innerHTML]=\"options?.fieldAddonRight\"></span>\r\n </div>\r\n\r\n <span *ngIf=\"options?.feedback && options?.isInputWidget &&\r\n !options?.fieldAddonRight && !layoutNode().arrayItem &&\r\n (formControl?.dirty || options?.feedbackOnRender)\" [class.glyphicon-ok]=\"options?.enableSuccessState && !formControl?.errors\" [class.glyphicon-remove]=\"options?.enableErrorState && formControl?.errors\" aria-hidden=\"true\" class=\"form-control-feedback glyphicon\"></span>\r\n <div *ngIf=\"options?.messageLocation !== 'top'\">\r\n <p *ngIf=\"options?.helpBlock\" [class]=\"widgetStyles().__help_block__\" [innerHTML]=\"options?.helpBlock\"></p>\r\n </div>\r\n\r\n</div>\r\n\r\n<div *ngIf=\"debug && debugOutput\">debug:\r\n <pre>{{debugOutput}}</pre>\r\n</div>\r\n\r\n<!--\r\n<div class=\"btn input input-bordered input-primary w-full max-w-xs\r\nbtn-neutral\r\nbtn-primary\r\nbtn-secondary\r\nbtn-accent\r\nbtn-info\r\nbtn-success\r\nbtn-warning\r\nbtn-error\r\nbtn-ghost\r\nbtn-link\r\nbtn-outline\r\nbtn-active\r\nbtn-disabled\r\nglass\r\nno-animation\r\nbtn-lg\r\nbtn-md\r\nbtn-sm\r\nbtn-xs\r\nbtn-wide\r\nbtn-block\r\nbtn-circle\r\nbtn-square\r\nhidden\r\n\">defs al</div>\r\n-->\r\n<!--<input type=\"text\" placeholder=\"Type here\" class=\"input input-bordered input-primary w-full max-w-xs\" />-->", styles: [":host ::ng-deep .list-group-item .form-control-feedback{top:40px}:host ::ng-deep .checkbox,:host ::ng-deep .radio{margin-top:0;margin-bottom:0}:host ::ng-deep .checkbox-inline,:host ::ng-deep .checkbox-inline+.checkbox-inline,:host ::ng-deep .checkbox-inline+.radio-inline,:host ::ng-deep .radio-inline,:host ::ng-deep .radio-inline+.radio-inline,:host ::ng-deep .radio-inline+.checkbox-inline{margin-left:0;margin-right:10px}:host ::ng-deep .checkbox-inline:last-child,:host ::ng-deep .radio-inline:last-child{margin-right:0}:host ::ng-deep .ng-invalid.ng-touched{border:1px solid #f44336}.checkbox-inline,.checkbox-inline+.checkbox-inline,.checkbox-inline+.radio-inline,.radio-inline,.radio-inline+.radio-inline,.radio-inline+.checkbox-inline{margin-left:0;margin-right:10px}.checkbox-inline:last-child,.radio-inline:last-child{margin-right:0}.ng-invalid.ng-touched{border:1px solid #f44336}\n"], dependencies: [{ kind: "component", type: i1.SelectWidgetComponent, selector: "select-widget-widget", inputs: ["layoutNode", "layoutIndex", "dataIndex"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None }); }
289
289
  }
290
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CssFrameworkComponent, decorators: [{
290
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: CssFrameworkComponent, decorators: [{
291
291
  type: Component,
292
292
  args: [{ selector: 'css-framework', encapsulation: ViewEncapsulation.None, standalone: false, template: "<div [attr.data-bs-theme]=\"theme\" [attr.data-theme]=\"theme\" [class]=\"options?.htmlClass || ''\" [class.has-feedback]=\"options?.feedback && options?.isInputWidget &&\r\n (formControl?.dirty || options?.feedbackOnRender)\" [class.has-error]=\"options?.enableErrorState && formControl?.errors &&\r\n (formControl?.dirty || options?.feedbackOnRender)\" [class.has-success]=\"options?.enableSuccessState && !formControl?.errors &&\r\n (formControl?.dirty || options?.feedbackOnRender)\">\r\n\r\n <button *ngIf=\"showRemoveButton\" [class]=\"widgetStyles().__remove_item__\" type=\"button\" (click)=\"removeItem()\">\r\n <span aria-hidden=\"true\">&times;</span>\r\n <span [class]=\"widgetStyles().__screen_reader__\">Close</span>\r\n </button>\r\n <div *ngIf=\"options?.messageLocation === 'top'\">\r\n <p *ngIf=\"options?.helpBlock\" [class]=\"widgetStyles().__help_block__\" [innerHTML]=\"options?.helpBlock\"></p>\r\n </div>\r\n\r\n <label *ngIf=\"options?.title && layoutNode()?.type !== 'tab'\" [attr.for]=\"'control' + layoutNode()?._id\" [class]=\"options?.labelHtmlClass || ''\" [class.sr-only]=\"options?.notitle\" [innerHTML]=\"options?.title\"></label>\r\n <p *ngIf=\"layoutNode()?.type === 'submit' && jsf?.formOptions?.fieldsRequired\">\r\n <strong [class]=\"widgetStyles().__required_asterisk__\">*</strong> = required fields\r\n </p>\r\n <div [class.input-group]=\"options?.fieldAddonLeft || options?.fieldAddonRight\">\r\n <span *ngIf=\"options?.fieldAddonLeft\" [class]=\"widgetStyles().__field_addon_left__\" [innerHTML]=\"options?.fieldAddonLeft\"></span>\r\n\r\n <select-widget-widget [layoutNode]=\"widgetLayoutNode\" [dataIndex]=\"dataIndex()\" [layoutIndex]=\"layoutIndex()\"></select-widget-widget>\r\n\r\n <span *ngIf=\"options?.fieldAddonRight\" [class]=\"widgetStyles().__field_addon_right__\" [innerHTML]=\"options?.fieldAddonRight\"></span>\r\n </div>\r\n\r\n <span *ngIf=\"options?.feedback && options?.isInputWidget &&\r\n !options?.fieldAddonRight && !layoutNode().arrayItem &&\r\n (formControl?.dirty || options?.feedbackOnRender)\" [class.glyphicon-ok]=\"options?.enableSuccessState && !formControl?.errors\" [class.glyphicon-remove]=\"options?.enableErrorState && formControl?.errors\" aria-hidden=\"true\" class=\"form-control-feedback glyphicon\"></span>\r\n <div *ngIf=\"options?.messageLocation !== 'top'\">\r\n <p *ngIf=\"options?.helpBlock\" [class]=\"widgetStyles().__help_block__\" [innerHTML]=\"options?.helpBlock\"></p>\r\n </div>\r\n\r\n</div>\r\n\r\n<div *ngIf=\"debug && debugOutput\">debug:\r\n <pre>{{debugOutput}}</pre>\r\n</div>\r\n\r\n<!--\r\n<div class=\"btn input input-bordered input-primary w-full max-w-xs\r\nbtn-neutral\r\nbtn-primary\r\nbtn-secondary\r\nbtn-accent\r\nbtn-info\r\nbtn-success\r\nbtn-warning\r\nbtn-error\r\nbtn-ghost\r\nbtn-link\r\nbtn-outline\r\nbtn-active\r\nbtn-disabled\r\nglass\r\nno-animation\r\nbtn-lg\r\nbtn-md\r\nbtn-sm\r\nbtn-xs\r\nbtn-wide\r\nbtn-block\r\nbtn-circle\r\nbtn-square\r\nhidden\r\n\">defs al</div>\r\n-->\r\n<!--<input type=\"text\" placeholder=\"Type here\" class=\"input input-bordered input-primary w-full max-w-xs\" />-->", styles: [":host ::ng-deep .list-group-item .form-control-feedback{top:40px}:host ::ng-deep .checkbox,:host ::ng-deep .radio{margin-top:0;margin-bottom:0}:host ::ng-deep .checkbox-inline,:host ::ng-deep .checkbox-inline+.checkbox-inline,:host ::ng-deep .checkbox-inline+.radio-inline,:host ::ng-deep .radio-inline,:host ::ng-deep .radio-inline+.radio-inline,:host ::ng-deep .radio-inline+.checkbox-inline{margin-left:0;margin-right:10px}:host ::ng-deep .checkbox-inline:last-child,:host ::ng-deep .radio-inline:last-child{margin-right:0}:host ::ng-deep .ng-invalid.ng-touched{border:1px solid #f44336}.checkbox-inline,.checkbox-inline+.checkbox-inline,.checkbox-inline+.radio-inline,.radio-inline,.radio-inline+.radio-inline,.radio-inline+.checkbox-inline{margin-left:0;margin-right:10px}.checkbox-inline:last-child,.radio-inline:last-child{margin-right:0}.ng-invalid.ng-touched{border:1px solid #f44336}\n"] }]
293
293
  }], ctorParameters: () => [] });
@@ -301,11 +301,11 @@ var css_fw;
301
301
  })(css_fw || (css_fw = {}));
302
302
 
303
303
  class CssFrameworkModule {
304
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CssFrameworkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
305
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: CssFrameworkModule, declarations: [CssFrameworkComponent], imports: [JsonSchemaFormModule,
304
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: CssFrameworkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
305
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.6", ngImport: i0, type: CssFrameworkModule, declarations: [CssFrameworkComponent], imports: [JsonSchemaFormModule,
306
306
  CommonModule,
307
307
  WidgetLibraryModule], exports: [CssFrameworkComponent] }); }
308
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CssFrameworkModule, providers: [
308
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: CssFrameworkModule, providers: [
309
309
  JsonSchemaFormService,
310
310
  FrameworkLibraryService,
311
311
  WidgetLibraryService,
@@ -315,7 +315,7 @@ class CssFrameworkModule {
315
315
  CommonModule,
316
316
  WidgetLibraryModule] }); }
317
317
  }
318
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CssFrameworkModule, decorators: [{
318
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: CssFrameworkModule, decorators: [{
319
319
  type: NgModule,
320
320
  args: [{
321
321
  declarations: [
@@ -410,10 +410,10 @@ class CssFramework extends Framework {
410
410
  getConfig() {
411
411
  return this.config;
412
412
  }
413
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CssFramework, deps: [{ token: CSS_FRAMEWORK_CFG }], target: i0.ɵɵFactoryTarget.Injectable }); }
414
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CssFramework }); }
413
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: CssFramework, deps: [{ token: CSS_FRAMEWORK_CFG }], target: i0.ɵɵFactoryTarget.Injectable }); }
414
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: CssFramework }); }
415
415
  }
416
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CssFramework, decorators: [{
416
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: CssFramework, decorators: [{
417
417
  type: Injectable
418
418
  }], ctorParameters: () => [{ type: undefined, decorators: [{
419
419
  type: Inject,
@@ -1 +1 @@
1
- {"version":3,"file":"ng-formworks-cssframework.mjs","sources":["../../../../projects/ng-formworks-cssframework/src/lib/css-framework.service.ts","../../../../projects/ng-formworks-cssframework/src/lib/css-framework.component.ts","../../../../projects/ng-formworks-cssframework/src/lib/css-framework.component.html","../../../../projects/ng-formworks-cssframework/src/lib/css-framework.defs.ts","../../../../projects/ng-formworks-cssframework/src/lib/css-framework.module.ts","../../../../projects/ng-formworks-cssframework/src/lib/css.framework.ts","../../../../projects/ng-formworks-cssframework/src/public-api.ts","../../../../projects/ng-formworks-cssframework/src/ng-formworks-cssframework.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CssframeworkService {\r\n\r\n frameworkTheme$: Observable<string>;\r\n activeRequestedTheme:string;\r\n frameworkThemeSubject: Subject<string>;\r\n constructor() {\r\n this.frameworkThemeSubject = new Subject<string>();\r\n this.frameworkTheme$ = this.frameworkThemeSubject.asObservable();\r\n }\r\n\r\n //TODO-review: this acts as a public api to change the theme\r\n //but doesn't do the actual change, instead it relies on \r\n //the CssFramewkCoromponent having subscribed to listen \r\n //and perform the actual theme change\r\n requestThemeChange(themeName:string){\r\n this.frameworkThemeSubject.next(themeName);\r\n this.activeRequestedTheme=themeName;\r\n }\r\n\r\n //TODO-review:there's no way of knowing what the individual component instance\r\n //has set its theme to, this is just the theme made through the requestThemeChange\r\n //calls and not guaranteed to correspond to the actual theme set by the \r\n //component instance themselves\r\n getActiveRequestedTheme():string{\r\n return this.activeRequestedTheme;\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, OnChanges, OnDestroy, OnInit, ViewEncapsulation, inject, input, model } from '@angular/core';\r\nimport { FrameworkLibraryService, JsonSchemaFormService, addClasses, inArray } from '@ng-formworks/core';\r\nimport _, { cloneDeep, map } from 'lodash';\r\nimport { Subscription } from 'rxjs';\r\nimport { css_fw } from './css-framework.defs';\r\nimport { CssframeworkService } from './css-framework.service';\r\n\r\n@Component({\r\n selector: 'css-framework',\r\n templateUrl: './css-framework.component.html',\r\n styleUrls: ['./css-framework.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n standalone: false\r\n})\r\nexport class CssFrameworkComponent implements OnInit, OnChanges,OnDestroy {\r\n changeDetector = inject(ChangeDetectorRef);\r\n jsf = inject(JsonSchemaFormService);\r\n jsfFLService = inject(FrameworkLibraryService);\r\n cssFWService = inject(CssframeworkService);\r\n\r\n frameworkInitialized = false;\r\n widgetOptions: any; // Options passed to child widget\r\n widgetLayoutNode: any; // layoutNode passed to child widget\r\n options: any; // Options used in this framework\r\n formControl: any = null;\r\n debugOutput: any = '';\r\n debug: any = '';\r\n parentArray: any = null;\r\n isOrderable = false;\r\n readonly layoutNode = input<any>(undefined);\r\n readonly layoutIndex = input<number[]>(undefined);\r\n readonly dataIndex = input<number[]>(undefined);\r\n\r\n readonly widgetStyles = model<css_fw.widgetstyles>(undefined);\r\n\r\n\r\n\r\n\r\n\r\n //TODO-move to ng-formworks/core utility.functions.ts\r\n applyCssClasses(type, widgetOptions, styleOptions) {\r\n //console.log(\"applyCssClasses for type:\"+type);\r\n let cssClasses = this.widgetStyles()[type];\r\n if (!cssClasses || _.isEmpty(cssClasses) ) {\r\n cssClasses = this.widgetStyles().default;\r\n }\r\n Object.keys(cssClasses).forEach(catName => {\r\n let classList = cssClasses[catName];\r\n\r\n if (classList.length) {\r\n widgetOptions[catName] = addClasses(widgetOptions[catName], classList);\r\n }\r\n if (styleOptions) {\r\n widgetOptions[catName] = addClasses(widgetOptions[catName], styleOptions);\r\n }\r\n\r\n })\r\n }\r\n\r\n flattenWidgetStyles(wstyles:css_fw.widgetstyles){\r\n var flattened:any={};\r\n let ignore=['__themes__'];\r\n Object.keys(wstyles).forEach(wkey=>{\r\n let wstyle=wstyles[wkey];\r\n if(ignore.indexOf(wkey)>=0){\r\n flattened[wkey]=wstyle;\r\n return;\r\n }\r\n if(_.isArray(wstyle)){\r\n \r\n flattened[wkey]=wstyle.join(\" \");\r\n }\r\n if(_.isObject(wstyle)){//is csscategories\r\n flattened[wkey]=flattened[wkey]||{};\r\n Object.keys(wstyle).forEach(catName=>{\r\n let cssCat=wstyle[catName];\r\n \r\n if(_.isArray(cssCat)){\r\n flattened[wkey][catName]=cssCat.join(\" \");\r\n }else{\r\n flattened[wkey][catName]=cssCat;\r\n }\r\n })\r\n }\r\n if(_.isString(wstyle)){\r\n flattened[wkey]=wstyle;\r\n }\r\n })\r\n return flattened\r\n}\r\n\r\ndefaultStyling:css_fw.widgetstyles={\r\n array:{},\r\n default:{fieldHtmlClass: \"cssfw-form-control\"},\r\n __themes__:[{name:'notheme',text:'None'}],\r\n __remove_item__:\"cssfw-remove-item\",\r\n __array_item_nonref__:{\r\n \"htmlClass\": \"cssfw-array-item-nonref\"\r\n },\r\n __active__:{activeClass:\"cssfw-active\"},\r\n __array__:{htmlClass:\"cssfw-array\"},\r\n __control_label__:{labelHtmlClass:\"cssfw-control-label\"},\r\n __form_group__:{htmlClass: \"cssfw-form-group\"},\r\n __field_addon_left__:\"cssfw-addon-left\",\r\n __field_addon_right__:\"cssfw-addon-right\",\r\n __help_block__:\"cssfw-help-block\",\r\n __required_asterisk__:\"cssfw-required-astersisk\",\r\n __screen_reader__: \"cssfw-screen-reader\"\r\n\r\n}\r\n\r\n\r\n\r\n\r\ntheme:string\r\nframeworkThemeSubs:Subscription;\r\n constructor(){\r\n const cssFWService = this.cssFWService;\r\n\r\n \r\n let activeFramework:any=this.jsfFLService.activeFramework;\r\n let fwcfg=activeFramework.config||{};\r\n \r\n this.widgetStyles.set(Object.assign(this.defaultStyling,fwcfg.widgetstyles));\r\n let defaultTheme=this.widgetStyles().__themes__[0];\r\n let defaultThemeName=cssFWService.activeRequestedTheme||defaultTheme.name;\r\n this.theme=this.options?.theme|| defaultThemeName;\r\n this.frameworkThemeSubs=cssFWService.frameworkTheme$.subscribe(newTheme=>{\r\n this.theme=newTheme;\r\n })\r\n \r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.frameworkThemeSubs.unsubscribe();\r\n this.frameworkThemeSubs=null;\r\n }\r\n\r\n\r\n get showRemoveButton(): boolean {\r\n const layoutNode = this.layoutNode();\r\n if (!this.options.removable || this.options.readonly ||\r\n layoutNode.type === '$ref'\r\n ) {\r\n return false;\r\n }\r\n if (layoutNode.recursiveReference) {\r\n return true;\r\n }\r\n if (!layoutNode.arrayItem || !this.parentArray) {\r\n return false;\r\n }\r\n // If array length <= minItems, don't allow removing any items\r\n return this.parentArray.items.length - 1 <= this.parentArray.options.minItems ? false :\r\n // For removable list items, allow removing any item\r\n layoutNode.arrayItemType === 'list' ? true :\r\n // For removable tuple items, only allow removing last item in list\r\n this.layoutIndex()[this.layoutIndex().length - 1] === this.parentArray.items.length - 2;\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFramework();\r\n const layoutNode = this.layoutNode();\r\n if (layoutNode.arrayItem && layoutNode.type !== '$ref') {\r\n this.parentArray = this.jsf.getParentNode(this);\r\n if (this.parentArray) {\r\n this.isOrderable = layoutNode.arrayItemType === 'list' &&\r\n !this.options.readonly && this.parentArray.options.orderable;\r\n }\r\n }\r\n }\r\n\r\n ngOnChanges() {\r\n if (!this.frameworkInitialized) {\r\n this.initializeFramework();\r\n }\r\n }\r\n\r\n initializeFramework() {\r\n const layoutNode = this.layoutNode();\r\n if (layoutNode) {\r\n this.options = cloneDeep(layoutNode.options);\r\n this.widgetLayoutNode = {\r\n ...layoutNode,\r\n options: cloneDeep(layoutNode.options)\r\n };\r\n this.widgetOptions = this.widgetLayoutNode.options;\r\n this.formControl = this.jsf.getFormControl(this);\r\n\r\n this.options.isInputWidget = inArray(layoutNode.type, [\r\n 'button', 'checkbox', 'checkboxes-inline', 'checkboxes', 'color',\r\n 'date', 'datetime-local', 'datetime', 'email', 'file', 'hidden',\r\n 'image', 'integer', 'month', 'number', 'password', 'radio',\r\n 'radiobuttons', 'radios-inline', 'radios', 'range', 'reset', 'search',\r\n 'select', 'submit', 'tel', 'text', 'textarea', 'time', 'url', 'week'\r\n ]);\r\n\r\n this.options.title = this.setTitle();\r\n\r\n this.options.htmlClass =\r\n addClasses(this.options.htmlClass, 'schema-form-' + layoutNode.type);\r\n\r\n \r\n if (layoutNode.type === 'array') {\r\n this.options.htmlClass = addClasses(this.options.htmlClass, this.widgetStyles().__array__.htmlClass);\r\n } else if (layoutNode.arrayItem && layoutNode.type !== '$ref') {\r\n this.options.htmlClass = addClasses(this.options.htmlClass, this.widgetStyles().__array_item_nonref__.htmlClass);\r\n } else {\r\n this.options.htmlClass = addClasses(this.options.htmlClass, this.widgetStyles().__form_group__.htmlClass);\r\n }\r\n \r\n\r\n /*\r\n this.options.htmlClass =\r\n this.layoutNode.type === 'array' ?\r\n addClasses(this.options.htmlClass, ['border','shadow-md','p-1']) :\r\n this.layoutNode.arrayItem && this.layoutNode.type !== '$ref' ?\r\n addClasses(this.options.htmlClass, ['border','shadow-md','p-1']) :\r\n addClasses(this.options.htmlClass, 'mb-1');\r\n*/\r\n\r\n/*\r\nthis.options.htmlClass =\r\nthis.layoutNode.type === 'array' ?\r\naddClasses(this.options.htmlClass, this.widgetStyles.array.htmlClass):\r\n this.layoutNode.arrayItem && this.layoutNode.type !== '$ref' ?\r\n addClasses(this.options.htmlClass, this.widgetStyles.__array_item_nonref__.htmlClass):\r\n addClasses(this.options.htmlClass, this.widgetStyles.__form_group__.htmlClass);\r\n*/\r\n \r\n this.widgetOptions.htmlClass = '';\r\n this.options.labelHtmlClass =\r\n addClasses(this.options.labelHtmlClass, this.widgetStyles().__control_label__.labelHtmlClass);\r\n this.widgetOptions.activeClass =\r\n addClasses(this.widgetOptions.activeClass, this.widgetStyles().__active__.activeClass);\r\n this.options.fieldAddonLeft =\r\n this.options.fieldAddonLeft || this.options.prepend;\r\n this.options.fieldAddonRight =\r\n this.options.fieldAddonRight || this.options.append;\r\n\r\n // Add asterisk to titles if required\r\n if (this.options.title && layoutNode.type !== 'tab' &&\r\n !this.options.notitle && this.options.required &&\r\n !this.options.title.includes('*')\r\n ) {\r\n let required_asterisk_class=this.widgetStyles().__required_asterisk__||'text-danger'\r\n this.options.title += ` <strong class=\"${required_asterisk_class}\">*</strong>`;\r\n }\r\n if (layoutNode.type == 'optionfieldset') {\r\n this.options.messageLocation = 'top';\r\n }\r\n // Set miscelaneous styles and settings for each control type\r\n this.applyCssClasses(layoutNode.type, this.widgetOptions, this.options.style);\r\n if (this.formControl) {\r\n this.updateHelpBlock(this.formControl.status);\r\n this.formControl.statusChanges.subscribe(status => this.updateHelpBlock(status));\r\n\r\n if (this.options.debug) {\r\n const vars: any[] = [];\r\n this.debugOutput = map(vars, thisVar => JSON.stringify(thisVar, null, 2)).join('\\n');\r\n }\r\n }\r\n this.frameworkInitialized = true;\r\n }\r\n\r\n }\r\n\r\n updateHelpBlock(status) {\r\n this.options.helpBlock = status === 'INVALID' &&\r\n this.options.enableErrorState && this.formControl.errors &&\r\n (this.formControl.dirty || this.options.feedbackOnRender) ?\r\n this.jsf.formatErrors(this.formControl.errors, this.options.validationMessages) :\r\n this.options.description || this.options.help || null;\r\n }\r\n\r\n setTitle(): string {\r\n switch (this.layoutNode().type) {\r\n case 'button':\r\n case 'checkbox':\r\n case 'section':\r\n case 'help':\r\n case 'msg':\r\n case 'submit':\r\n case 'message':\r\n case 'tabarray':\r\n case 'tabs':\r\n case '$ref':\r\n return null;\r\n case 'advancedfieldset':\r\n this.widgetOptions.expandable = true;\r\n this.widgetOptions.title = 'Advanced options';\r\n return null;\r\n case 'authfieldset':\r\n this.widgetOptions.expandable = true;\r\n this.widgetOptions.title = 'Authentication settings';\r\n return null;\r\n case 'fieldset':\r\n this.widgetOptions.title = this.options.title;\r\n return null;\r\n default:\r\n this.widgetOptions.title = null;\r\n return this.jsf.setItemTitle(this);\r\n }\r\n }\r\n\r\n removeItem() {\r\n this.jsf.removeItem(this);\r\n }\r\n}\r\n","<div [attr.data-bs-theme]=\"theme\" [attr.data-theme]=\"theme\" [class]=\"options?.htmlClass || ''\" [class.has-feedback]=\"options?.feedback && options?.isInputWidget &&\r\n (formControl?.dirty || options?.feedbackOnRender)\" [class.has-error]=\"options?.enableErrorState && formControl?.errors &&\r\n (formControl?.dirty || options?.feedbackOnRender)\" [class.has-success]=\"options?.enableSuccessState && !formControl?.errors &&\r\n (formControl?.dirty || options?.feedbackOnRender)\">\r\n\r\n <button *ngIf=\"showRemoveButton\" [class]=\"widgetStyles().__remove_item__\" type=\"button\" (click)=\"removeItem()\">\r\n <span aria-hidden=\"true\">&times;</span>\r\n <span [class]=\"widgetStyles().__screen_reader__\">Close</span>\r\n </button>\r\n <div *ngIf=\"options?.messageLocation === 'top'\">\r\n <p *ngIf=\"options?.helpBlock\" [class]=\"widgetStyles().__help_block__\" [innerHTML]=\"options?.helpBlock\"></p>\r\n </div>\r\n\r\n <label *ngIf=\"options?.title && layoutNode()?.type !== 'tab'\" [attr.for]=\"'control' + layoutNode()?._id\" [class]=\"options?.labelHtmlClass || ''\" [class.sr-only]=\"options?.notitle\" [innerHTML]=\"options?.title\"></label>\r\n <p *ngIf=\"layoutNode()?.type === 'submit' && jsf?.formOptions?.fieldsRequired\">\r\n <strong [class]=\"widgetStyles().__required_asterisk__\">*</strong> = required fields\r\n </p>\r\n <div [class.input-group]=\"options?.fieldAddonLeft || options?.fieldAddonRight\">\r\n <span *ngIf=\"options?.fieldAddonLeft\" [class]=\"widgetStyles().__field_addon_left__\" [innerHTML]=\"options?.fieldAddonLeft\"></span>\r\n\r\n <select-widget-widget [layoutNode]=\"widgetLayoutNode\" [dataIndex]=\"dataIndex()\" [layoutIndex]=\"layoutIndex()\"></select-widget-widget>\r\n\r\n <span *ngIf=\"options?.fieldAddonRight\" [class]=\"widgetStyles().__field_addon_right__\" [innerHTML]=\"options?.fieldAddonRight\"></span>\r\n </div>\r\n\r\n <span *ngIf=\"options?.feedback && options?.isInputWidget &&\r\n !options?.fieldAddonRight && !layoutNode().arrayItem &&\r\n (formControl?.dirty || options?.feedbackOnRender)\" [class.glyphicon-ok]=\"options?.enableSuccessState && !formControl?.errors\" [class.glyphicon-remove]=\"options?.enableErrorState && formControl?.errors\" aria-hidden=\"true\" class=\"form-control-feedback glyphicon\"></span>\r\n <div *ngIf=\"options?.messageLocation !== 'top'\">\r\n <p *ngIf=\"options?.helpBlock\" [class]=\"widgetStyles().__help_block__\" [innerHTML]=\"options?.helpBlock\"></p>\r\n </div>\r\n\r\n</div>\r\n\r\n<div *ngIf=\"debug && debugOutput\">debug:\r\n <pre>{{debugOutput}}</pre>\r\n</div>\r\n\r\n<!--\r\n<div class=\"btn input input-bordered input-primary w-full max-w-xs\r\nbtn-neutral\r\nbtn-primary\r\nbtn-secondary\r\nbtn-accent\r\nbtn-info\r\nbtn-success\r\nbtn-warning\r\nbtn-error\r\nbtn-ghost\r\nbtn-link\r\nbtn-outline\r\nbtn-active\r\nbtn-disabled\r\nglass\r\nno-animation\r\nbtn-lg\r\nbtn-md\r\nbtn-sm\r\nbtn-xs\r\nbtn-wide\r\nbtn-block\r\nbtn-circle\r\nbtn-square\r\nhidden\r\n\">defs al</div>\r\n-->\r\n<!--<input type=\"text\" placeholder=\"Type here\" class=\"input input-bordered input-primary w-full max-w-xs\" />-->","import { InjectionToken } from \"@angular/core\";\r\n\r\nexport const CSS_FRAMEWORK_CFG = new InjectionToken<css_fw.frameworkcfg>('CSS_FRAMEWORK_CFG');\r\n\r\nexport namespace css_fw{\r\n\r\n export type themeKV=\r\n { \r\n name:string,\r\n text:string\r\n }\r\n\r\n export class csscategories{\r\n fieldHtmlClass?:string|string[]\r\n labelHtmlClass?:string|string[]\r\n htmlClass?:string|string[]\r\n itemLabelHtmlClass?:string|string[]\r\n activeClass?:string|string[]\r\n [key: `widget_${string}`]: string|string[]; //allows for properties prefixed with widget\r\n }\r\n\r\n export type widgetstyles={\r\n '$ref'?:csscategories,\r\n 'alt-date'?:csscategories,\r\n 'alt-datetime'?:csscategories,\r\n __themes__?:themeKV[],\r\n __array_item_nonref__:csscategories,\r\n __form_group__:csscategories,\r\n __control_label__:csscategories,\r\n __active__:csscategories,\r\n __required_asterisk__:string,\r\n __array__:csscategories,\r\n '__remove_item__':string,\r\n __help_block__:string,\r\n __field_addon_left__:string\r\n __field_addon_right__:string,\r\n __screen_reader__:string,\r\n array:csscategories,\r\n authfieldset?:csscategories,\r\n advancedfieldset?:csscategories,\r\n button?:csscategories,\r\n checkbox?:csscategories,\r\n checkboxes?:csscategories,\r\n checkboxbuttons?:csscategories,\r\n 'checkboxes-inline'?:csscategories,\r\n date?:csscategories,\r\n 'datetime-local'?:csscategories,\r\n fieldset?:csscategories,\r\n integer?:csscategories,\r\n number?:csscategories,\r\n optionfieldset?:csscategories,\r\n password?:csscategories,\r\n radiobuttons?:csscategories,\r\n radio?:csscategories,\r\n radios?:csscategories,\r\n \"radios-inline\"?:csscategories,\r\n 'range'?:csscategories,\r\n section?:csscategories,\r\n selectfieldset?:csscategories,\r\n select?:csscategories,\r\n submit?:csscategories,\r\n text?:csscategories,\r\n tabs?:csscategories,\r\n tabarray?:csscategories,\r\n 'one-of'?:csscategories,\r\n textarea?:csscategories,\r\n default:csscategories\r\n }\r\n export type frameworkcfg={\r\n name:string,\r\n text:string;\r\n stylesheets:string[],\r\n scripts?:string[],\r\n widgetstyles:widgetstyles,\r\n widgets?:any;\r\n }\r\n\r\n \r\n\r\n}","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FrameworkLibraryService, JsonSchemaFormModule, JsonSchemaFormService, WidgetLibraryModule, WidgetLibraryService } from '@ng-formworks/core';\r\nimport { CssFrameworkComponent } from './css-framework.component';\r\nimport { CssframeworkService } from './css-framework.service';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n CssFrameworkComponent\r\n ],\r\n imports: [\r\n JsonSchemaFormModule,\r\n CommonModule,\r\n WidgetLibraryModule,\r\n ],\r\n exports: [\r\n CssFrameworkComponent\r\n ],\r\n providers: [\r\n JsonSchemaFormService,\r\n FrameworkLibraryService,\r\n WidgetLibraryService,\r\n CssframeworkService\r\n // { provide: Framework, useClass: CssFramework, multi: true },\r\n ]\r\n})\r\nexport class CssFrameworkModule { }\r\n","import { Inject, Injectable, inject } from '@angular/core';\r\nimport { Framework } from '@ng-formworks/core';\r\nimport { CssFrameworkComponent } from './css-framework.component';\r\nimport { CSS_FRAMEWORK_CFG, css_fw } from './css-framework.defs';\r\nimport { CssframeworkService } from './css-framework.service';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class CssFramework extends Framework {\r\n cssFWService = inject(CssframeworkService);\r\n\r\n name = 'css';\r\n\r\n framework:any = CssFrameworkComponent;\r\n config:css_fw.frameworkcfg\r\n constructor(@Inject(CSS_FRAMEWORK_CFG ) cfg:css_fw.frameworkcfg){\r\n //reverted to use @Inject for other child classes\r\n //const cfg = inject<css_fw.frameworkcfg>(CSS_FRAMEWORK_CFG);\r\n\r\n super();\r\n \r\n this.name=cfg.name;\r\n this.text=cfg.text||this.name;\r\n this.stylesheets=cfg.stylesheets;\r\n this.scripts=cfg.scripts;\r\n this.config=cfg;\r\n this.widgets=cfg.widgets;\r\n }\r\n getActiveTheme():css_fw.themeKV{\r\n let activeRequestedThemeName=this.cssFWService.getActiveRequestedTheme();\r\n let frameWorkThemes=this.config?.widgetstyles?.__themes__;\r\n \r\n let theme=frameWorkThemes && frameWorkThemes[0]\r\n if(activeRequestedThemeName){//if not set return first theme in config;\r\n theme={name:activeRequestedThemeName,text:activeRequestedThemeName};\r\n if(frameWorkThemes){\r\n let filtered=frameWorkThemes.filter(theme=>{return theme.name==activeRequestedThemeName});\r\n theme=(filtered && filtered[0])||theme;\r\n }\r\n }\r\n return theme;\r\n }\r\n\r\n requestThemeChange(name:string){\r\n this.cssFWService.requestThemeChange(name);\r\n }\r\n\r\n registerTheme(newTheme:css_fw.themeKV,overwrite:boolean=true):boolean{\r\n let themeList=this.config?.widgetstyles?.__themes__||[];\r\n let matchedThemes=themeList.filter(theme=>{return newTheme.name==theme.name});\r\n if(matchedThemes && matchedThemes[0]){\r\n if(overwrite){\r\n matchedThemes[0].text=newTheme.text;\r\n return true;\r\n }\r\n if(!overwrite){\r\n return false;\r\n }\r\n \r\n }\r\n if(!matchedThemes || matchedThemes.length==0){\r\n let cfg:any=this.config\r\n cfg.widgetstyles= this.config.widgetstyles||{};\r\n cfg.widgetstyles.__themes__=cfg.widgetstyles.__themes__||[];\r\n cfg.widgetstyles.__themes__.push(newTheme);\r\n return true;\r\n }\r\n };\r\n\r\n unregisterTheme(name:string):boolean{\r\n let themeList=this.config?.widgetstyles?.__themes__;\r\n let foundInd=-1;\r\n if(themeList){\r\n themeList.forEach((theme,ind)=>{\r\n if(name==theme.name){\r\n foundInd=ind;\r\n }\r\n });\r\n if(foundInd>=0){\r\n themeList.splice(foundInd,1);\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n getConfig():css_fw.frameworkcfg{\r\n return this.config;\r\n }\r\n\r\n /*\r\n stylesheets = [\r\n //TODO-enable for dev only\r\n cdn.tailwindcss.com/3.3.3'\r\n ];\r\n\r\n\r\n scripts = [\r\n\r\n ];\r\n */\r\n\r\n}\r\n","/*\r\n * Public API Surface of ng-formworks-cssframework\r\n */\r\n\r\nexport * from './lib/css-framework.component';\r\nexport * from './lib/css-framework.defs';\r\nexport * from './lib/css-framework.module';\r\nexport * from './lib/css-framework.service';\r\nexport * from './lib/css.framework';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-formworks-cssframework.mjs","sources":["../../../../projects/ng-formworks-cssframework/src/lib/css-framework.service.ts","../../../../projects/ng-formworks-cssframework/src/lib/css-framework.component.ts","../../../../projects/ng-formworks-cssframework/src/lib/css-framework.component.html","../../../../projects/ng-formworks-cssframework/src/lib/css-framework.defs.ts","../../../../projects/ng-formworks-cssframework/src/lib/css-framework.module.ts","../../../../projects/ng-formworks-cssframework/src/lib/css.framework.ts","../../../../projects/ng-formworks-cssframework/src/public-api.ts","../../../../projects/ng-formworks-cssframework/src/ng-formworks-cssframework.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CssframeworkService {\r\n\r\n frameworkTheme$: Observable<string>;\r\n activeRequestedTheme:string;\r\n frameworkThemeSubject: Subject<string>;\r\n constructor() {\r\n this.frameworkThemeSubject = new Subject<string>();\r\n this.frameworkTheme$ = this.frameworkThemeSubject.asObservable();\r\n }\r\n\r\n //TODO-review: this acts as a public api to change the theme\r\n //but doesn't do the actual change, instead it relies on \r\n //the CssFramewkCoromponent having subscribed to listen \r\n //and perform the actual theme change\r\n requestThemeChange(themeName:string){\r\n this.frameworkThemeSubject.next(themeName);\r\n this.activeRequestedTheme=themeName;\r\n }\r\n\r\n //TODO-review:there's no way of knowing what the individual component instance\r\n //has set its theme to, this is just the theme made through the requestThemeChange\r\n //calls and not guaranteed to correspond to the actual theme set by the \r\n //component instance themselves\r\n getActiveRequestedTheme():string{\r\n return this.activeRequestedTheme;\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, OnChanges, OnDestroy, OnInit, ViewEncapsulation, inject, input, model } from '@angular/core';\r\nimport { FrameworkLibraryService, JsonSchemaFormService, addClasses, inArray } from '@ng-formworks/core';\r\nimport _, { cloneDeep, map } from 'lodash';\r\nimport { Subscription } from 'rxjs';\r\nimport { css_fw } from './css-framework.defs';\r\nimport { CssframeworkService } from './css-framework.service';\r\n\r\n@Component({\r\n selector: 'css-framework',\r\n templateUrl: './css-framework.component.html',\r\n styleUrls: ['./css-framework.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n standalone: false\r\n})\r\nexport class CssFrameworkComponent implements OnInit, OnChanges,OnDestroy {\r\n changeDetector = inject(ChangeDetectorRef);\r\n jsf = inject(JsonSchemaFormService);\r\n jsfFLService = inject(FrameworkLibraryService);\r\n cssFWService = inject(CssframeworkService);\r\n\r\n frameworkInitialized = false;\r\n widgetOptions: any; // Options passed to child widget\r\n widgetLayoutNode: any; // layoutNode passed to child widget\r\n options: any; // Options used in this framework\r\n formControl: any = null;\r\n debugOutput: any = '';\r\n debug: any = '';\r\n parentArray: any = null;\r\n isOrderable = false;\r\n readonly layoutNode = input<any>(undefined);\r\n readonly layoutIndex = input<number[]>(undefined);\r\n readonly dataIndex = input<number[]>(undefined);\r\n\r\n readonly widgetStyles = model<css_fw.widgetstyles>(undefined);\r\n\r\n\r\n\r\n\r\n\r\n //TODO-move to ng-formworks/core utility.functions.ts\r\n applyCssClasses(type, widgetOptions, styleOptions) {\r\n //console.log(\"applyCssClasses for type:\"+type);\r\n let cssClasses = this.widgetStyles()[type];\r\n if (!cssClasses || _.isEmpty(cssClasses) ) {\r\n cssClasses = this.widgetStyles().default;\r\n }\r\n Object.keys(cssClasses).forEach(catName => {\r\n let classList = cssClasses[catName];\r\n\r\n if (classList.length) {\r\n widgetOptions[catName] = addClasses(widgetOptions[catName], classList);\r\n }\r\n if (styleOptions) {\r\n widgetOptions[catName] = addClasses(widgetOptions[catName], styleOptions);\r\n }\r\n\r\n })\r\n }\r\n\r\n flattenWidgetStyles(wstyles:css_fw.widgetstyles){\r\n var flattened:any={};\r\n let ignore=['__themes__'];\r\n Object.keys(wstyles).forEach(wkey=>{\r\n let wstyle=wstyles[wkey];\r\n if(ignore.indexOf(wkey)>=0){\r\n flattened[wkey]=wstyle;\r\n return;\r\n }\r\n if(_.isArray(wstyle)){\r\n \r\n flattened[wkey]=wstyle.join(\" \");\r\n }\r\n if(_.isObject(wstyle)){//is csscategories\r\n flattened[wkey]=flattened[wkey]||{};\r\n Object.keys(wstyle).forEach(catName=>{\r\n let cssCat=wstyle[catName];\r\n \r\n if(_.isArray(cssCat)){\r\n flattened[wkey][catName]=cssCat.join(\" \");\r\n }else{\r\n flattened[wkey][catName]=cssCat;\r\n }\r\n })\r\n }\r\n if(_.isString(wstyle)){\r\n flattened[wkey]=wstyle;\r\n }\r\n })\r\n return flattened\r\n}\r\n\r\ndefaultStyling:css_fw.widgetstyles={\r\n array:{},\r\n default:{fieldHtmlClass: \"cssfw-form-control\"},\r\n __themes__:[{name:'notheme',text:'None'}],\r\n __remove_item__:\"cssfw-remove-item\",\r\n __array_item_nonref__:{\r\n \"htmlClass\": \"cssfw-array-item-nonref\"\r\n },\r\n __active__:{activeClass:\"cssfw-active\"},\r\n __array__:{htmlClass:\"cssfw-array\"},\r\n __control_label__:{labelHtmlClass:\"cssfw-control-label\"},\r\n __form_group__:{htmlClass: \"cssfw-form-group\"},\r\n __field_addon_left__:\"cssfw-addon-left\",\r\n __field_addon_right__:\"cssfw-addon-right\",\r\n __help_block__:\"cssfw-help-block\",\r\n __required_asterisk__:\"cssfw-required-astersisk\",\r\n __screen_reader__: \"cssfw-screen-reader\"\r\n\r\n}\r\n\r\n\r\n\r\n\r\ntheme:string\r\nframeworkThemeSubs:Subscription;\r\n constructor(){\r\n const cssFWService = this.cssFWService;\r\n\r\n \r\n let activeFramework:any=this.jsfFLService.activeFramework;\r\n let fwcfg=activeFramework.config||{};\r\n \r\n this.widgetStyles.set(Object.assign(this.defaultStyling,fwcfg.widgetstyles));\r\n let defaultTheme=this.widgetStyles().__themes__[0];\r\n let defaultThemeName=cssFWService.activeRequestedTheme||defaultTheme.name;\r\n this.theme=this.options?.theme|| defaultThemeName;\r\n this.frameworkThemeSubs=cssFWService.frameworkTheme$.subscribe(newTheme=>{\r\n this.theme=newTheme;\r\n })\r\n \r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.frameworkThemeSubs.unsubscribe();\r\n this.frameworkThemeSubs=null;\r\n }\r\n\r\n\r\n get showRemoveButton(): boolean {\r\n const layoutNode = this.layoutNode();\r\n if (!this.options.removable || this.options.readonly ||\r\n layoutNode.type === '$ref'\r\n ) {\r\n return false;\r\n }\r\n if (layoutNode.recursiveReference) {\r\n return true;\r\n }\r\n if (!layoutNode.arrayItem || !this.parentArray) {\r\n return false;\r\n }\r\n // If array length <= minItems, don't allow removing any items\r\n return this.parentArray.items.length - 1 <= this.parentArray.options.minItems ? false :\r\n // For removable list items, allow removing any item\r\n layoutNode.arrayItemType === 'list' ? true :\r\n // For removable tuple items, only allow removing last item in list\r\n this.layoutIndex()[this.layoutIndex().length - 1] === this.parentArray.items.length - 2;\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFramework();\r\n const layoutNode = this.layoutNode();\r\n if (layoutNode.arrayItem && layoutNode.type !== '$ref') {\r\n this.parentArray = this.jsf.getParentNode(this);\r\n if (this.parentArray) {\r\n this.isOrderable = layoutNode.arrayItemType === 'list' &&\r\n !this.options.readonly && this.parentArray.options.orderable;\r\n }\r\n }\r\n }\r\n\r\n ngOnChanges() {\r\n if (!this.frameworkInitialized) {\r\n this.initializeFramework();\r\n }\r\n }\r\n\r\n initializeFramework() {\r\n const layoutNode = this.layoutNode();\r\n if (layoutNode) {\r\n this.options = cloneDeep(layoutNode.options);\r\n this.widgetLayoutNode = {\r\n ...layoutNode,\r\n options: cloneDeep(layoutNode.options)\r\n };\r\n this.widgetOptions = this.widgetLayoutNode.options;\r\n this.formControl = this.jsf.getFormControl(this);\r\n\r\n this.options.isInputWidget = inArray(layoutNode.type, [\r\n 'button', 'checkbox', 'checkboxes-inline', 'checkboxes', 'color',\r\n 'date', 'datetime-local', 'datetime', 'email', 'file', 'hidden',\r\n 'image', 'integer', 'month', 'number', 'password', 'radio',\r\n 'radiobuttons', 'radios-inline', 'radios', 'range', 'reset', 'search',\r\n 'select', 'submit', 'tel', 'text', 'textarea', 'time', 'url', 'week'\r\n ]);\r\n\r\n this.options.title = this.setTitle();\r\n\r\n this.options.htmlClass =\r\n addClasses(this.options.htmlClass, 'schema-form-' + layoutNode.type);\r\n\r\n \r\n if (layoutNode.type === 'array') {\r\n this.options.htmlClass = addClasses(this.options.htmlClass, this.widgetStyles().__array__.htmlClass);\r\n } else if (layoutNode.arrayItem && layoutNode.type !== '$ref') {\r\n this.options.htmlClass = addClasses(this.options.htmlClass, this.widgetStyles().__array_item_nonref__.htmlClass);\r\n } else {\r\n this.options.htmlClass = addClasses(this.options.htmlClass, this.widgetStyles().__form_group__.htmlClass);\r\n }\r\n \r\n\r\n /*\r\n this.options.htmlClass =\r\n this.layoutNode.type === 'array' ?\r\n addClasses(this.options.htmlClass, ['border','shadow-md','p-1']) :\r\n this.layoutNode.arrayItem && this.layoutNode.type !== '$ref' ?\r\n addClasses(this.options.htmlClass, ['border','shadow-md','p-1']) :\r\n addClasses(this.options.htmlClass, 'mb-1');\r\n*/\r\n\r\n/*\r\nthis.options.htmlClass =\r\nthis.layoutNode.type === 'array' ?\r\naddClasses(this.options.htmlClass, this.widgetStyles.array.htmlClass):\r\n this.layoutNode.arrayItem && this.layoutNode.type !== '$ref' ?\r\n addClasses(this.options.htmlClass, this.widgetStyles.__array_item_nonref__.htmlClass):\r\n addClasses(this.options.htmlClass, this.widgetStyles.__form_group__.htmlClass);\r\n*/\r\n \r\n this.widgetOptions.htmlClass = '';\r\n this.options.labelHtmlClass =\r\n addClasses(this.options.labelHtmlClass, this.widgetStyles().__control_label__.labelHtmlClass);\r\n this.widgetOptions.activeClass =\r\n addClasses(this.widgetOptions.activeClass, this.widgetStyles().__active__.activeClass);\r\n this.options.fieldAddonLeft =\r\n this.options.fieldAddonLeft || this.options.prepend;\r\n this.options.fieldAddonRight =\r\n this.options.fieldAddonRight || this.options.append;\r\n\r\n // Add asterisk to titles if required\r\n if (this.options.title && layoutNode.type !== 'tab' &&\r\n !this.options.notitle && this.options.required &&\r\n !this.options.title.includes('*')\r\n ) {\r\n let required_asterisk_class=this.widgetStyles().__required_asterisk__||'text-danger'\r\n this.options.title += ` <strong class=\"${required_asterisk_class}\">*</strong>`;\r\n }\r\n if (layoutNode.type == 'optionfieldset') {\r\n this.options.messageLocation = 'top';\r\n }\r\n // Set miscelaneous styles and settings for each control type\r\n this.applyCssClasses(layoutNode.type, this.widgetOptions, this.options.style);\r\n if (this.formControl) {\r\n this.updateHelpBlock(this.formControl.status);\r\n this.formControl.statusChanges.subscribe(status => this.updateHelpBlock(status));\r\n\r\n if (this.options.debug) {\r\n const vars: any[] = [];\r\n this.debugOutput = map(vars, thisVar => JSON.stringify(thisVar, null, 2)).join('\\n');\r\n }\r\n }\r\n this.frameworkInitialized = true;\r\n }\r\n\r\n }\r\n\r\n updateHelpBlock(status) {\r\n this.options.helpBlock = status === 'INVALID' &&\r\n this.options.enableErrorState && this.formControl.errors &&\r\n (this.formControl.dirty || this.options.feedbackOnRender) ?\r\n this.jsf.formatErrors(this.formControl.errors, this.options.validationMessages) :\r\n this.options.description || this.options.help || null;\r\n }\r\n\r\n setTitle(): string {\r\n switch (this.layoutNode().type) {\r\n case 'button':\r\n case 'checkbox':\r\n case 'section':\r\n case 'help':\r\n case 'msg':\r\n case 'submit':\r\n case 'message':\r\n case 'tabarray':\r\n case 'tabs':\r\n case '$ref':\r\n return null;\r\n case 'advancedfieldset':\r\n this.widgetOptions.expandable = true;\r\n this.widgetOptions.title = 'Advanced options';\r\n return null;\r\n case 'authfieldset':\r\n this.widgetOptions.expandable = true;\r\n this.widgetOptions.title = 'Authentication settings';\r\n return null;\r\n case 'fieldset':\r\n this.widgetOptions.title = this.options.title;\r\n return null;\r\n default:\r\n this.widgetOptions.title = null;\r\n return this.jsf.setItemTitle(this);\r\n }\r\n }\r\n\r\n removeItem() {\r\n this.jsf.removeItem(this);\r\n }\r\n}\r\n","<div [attr.data-bs-theme]=\"theme\" [attr.data-theme]=\"theme\" [class]=\"options?.htmlClass || ''\" [class.has-feedback]=\"options?.feedback && options?.isInputWidget &&\r\n (formControl?.dirty || options?.feedbackOnRender)\" [class.has-error]=\"options?.enableErrorState && formControl?.errors &&\r\n (formControl?.dirty || options?.feedbackOnRender)\" [class.has-success]=\"options?.enableSuccessState && !formControl?.errors &&\r\n (formControl?.dirty || options?.feedbackOnRender)\">\r\n\r\n <button *ngIf=\"showRemoveButton\" [class]=\"widgetStyles().__remove_item__\" type=\"button\" (click)=\"removeItem()\">\r\n <span aria-hidden=\"true\">&times;</span>\r\n <span [class]=\"widgetStyles().__screen_reader__\">Close</span>\r\n </button>\r\n <div *ngIf=\"options?.messageLocation === 'top'\">\r\n <p *ngIf=\"options?.helpBlock\" [class]=\"widgetStyles().__help_block__\" [innerHTML]=\"options?.helpBlock\"></p>\r\n </div>\r\n\r\n <label *ngIf=\"options?.title && layoutNode()?.type !== 'tab'\" [attr.for]=\"'control' + layoutNode()?._id\" [class]=\"options?.labelHtmlClass || ''\" [class.sr-only]=\"options?.notitle\" [innerHTML]=\"options?.title\"></label>\r\n <p *ngIf=\"layoutNode()?.type === 'submit' && jsf?.formOptions?.fieldsRequired\">\r\n <strong [class]=\"widgetStyles().__required_asterisk__\">*</strong> = required fields\r\n </p>\r\n <div [class.input-group]=\"options?.fieldAddonLeft || options?.fieldAddonRight\">\r\n <span *ngIf=\"options?.fieldAddonLeft\" [class]=\"widgetStyles().__field_addon_left__\" [innerHTML]=\"options?.fieldAddonLeft\"></span>\r\n\r\n <select-widget-widget [layoutNode]=\"widgetLayoutNode\" [dataIndex]=\"dataIndex()\" [layoutIndex]=\"layoutIndex()\"></select-widget-widget>\r\n\r\n <span *ngIf=\"options?.fieldAddonRight\" [class]=\"widgetStyles().__field_addon_right__\" [innerHTML]=\"options?.fieldAddonRight\"></span>\r\n </div>\r\n\r\n <span *ngIf=\"options?.feedback && options?.isInputWidget &&\r\n !options?.fieldAddonRight && !layoutNode().arrayItem &&\r\n (formControl?.dirty || options?.feedbackOnRender)\" [class.glyphicon-ok]=\"options?.enableSuccessState && !formControl?.errors\" [class.glyphicon-remove]=\"options?.enableErrorState && formControl?.errors\" aria-hidden=\"true\" class=\"form-control-feedback glyphicon\"></span>\r\n <div *ngIf=\"options?.messageLocation !== 'top'\">\r\n <p *ngIf=\"options?.helpBlock\" [class]=\"widgetStyles().__help_block__\" [innerHTML]=\"options?.helpBlock\"></p>\r\n </div>\r\n\r\n</div>\r\n\r\n<div *ngIf=\"debug && debugOutput\">debug:\r\n <pre>{{debugOutput}}</pre>\r\n</div>\r\n\r\n<!--\r\n<div class=\"btn input input-bordered input-primary w-full max-w-xs\r\nbtn-neutral\r\nbtn-primary\r\nbtn-secondary\r\nbtn-accent\r\nbtn-info\r\nbtn-success\r\nbtn-warning\r\nbtn-error\r\nbtn-ghost\r\nbtn-link\r\nbtn-outline\r\nbtn-active\r\nbtn-disabled\r\nglass\r\nno-animation\r\nbtn-lg\r\nbtn-md\r\nbtn-sm\r\nbtn-xs\r\nbtn-wide\r\nbtn-block\r\nbtn-circle\r\nbtn-square\r\nhidden\r\n\">defs al</div>\r\n-->\r\n<!--<input type=\"text\" placeholder=\"Type here\" class=\"input input-bordered input-primary w-full max-w-xs\" />-->","import { InjectionToken } from \"@angular/core\";\r\n\r\nexport const CSS_FRAMEWORK_CFG = new InjectionToken<css_fw.frameworkcfg>('CSS_FRAMEWORK_CFG');\r\n\r\nexport namespace css_fw{\r\n\r\n export type themeKV=\r\n { \r\n name:string,\r\n text:string\r\n }\r\n\r\n export class csscategories{\r\n fieldHtmlClass?:string|string[]\r\n labelHtmlClass?:string|string[]\r\n htmlClass?:string|string[]\r\n itemLabelHtmlClass?:string|string[]\r\n activeClass?:string|string[]\r\n [key: `widget_${string}`]: string|string[]; //allows for properties prefixed with widget\r\n }\r\n\r\n export type widgetstyles={\r\n '$ref'?:csscategories,\r\n 'alt-date'?:csscategories,\r\n 'alt-datetime'?:csscategories,\r\n __themes__?:themeKV[],\r\n __array_item_nonref__:csscategories,\r\n __form_group__:csscategories,\r\n __control_label__:csscategories,\r\n __active__:csscategories,\r\n __required_asterisk__:string,\r\n __array__:csscategories,\r\n '__remove_item__':string,\r\n __help_block__:string,\r\n __field_addon_left__:string\r\n __field_addon_right__:string,\r\n __screen_reader__:string,\r\n array:csscategories,\r\n authfieldset?:csscategories,\r\n advancedfieldset?:csscategories,\r\n button?:csscategories,\r\n checkbox?:csscategories,\r\n checkboxes?:csscategories,\r\n checkboxbuttons?:csscategories,\r\n 'checkboxes-inline'?:csscategories,\r\n date?:csscategories,\r\n 'datetime-local'?:csscategories,\r\n fieldset?:csscategories,\r\n integer?:csscategories,\r\n number?:csscategories,\r\n optionfieldset?:csscategories,\r\n password?:csscategories,\r\n radiobuttons?:csscategories,\r\n radio?:csscategories,\r\n radios?:csscategories,\r\n \"radios-inline\"?:csscategories,\r\n 'range'?:csscategories,\r\n section?:csscategories,\r\n selectfieldset?:csscategories,\r\n select?:csscategories,\r\n submit?:csscategories,\r\n text?:csscategories,\r\n tabs?:csscategories,\r\n tabarray?:csscategories,\r\n 'one-of'?:csscategories,\r\n textarea?:csscategories,\r\n default:csscategories\r\n }\r\n export type frameworkcfg={\r\n name:string,\r\n text:string;\r\n stylesheets:string[],\r\n scripts?:string[],\r\n widgetstyles:widgetstyles,\r\n widgets?:any;\r\n }\r\n\r\n \r\n\r\n}","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FrameworkLibraryService, JsonSchemaFormModule, JsonSchemaFormService, WidgetLibraryModule, WidgetLibraryService } from '@ng-formworks/core';\r\nimport { CssFrameworkComponent } from './css-framework.component';\r\nimport { CssframeworkService } from './css-framework.service';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n CssFrameworkComponent\r\n ],\r\n imports: [\r\n JsonSchemaFormModule,\r\n CommonModule,\r\n WidgetLibraryModule,\r\n ],\r\n exports: [\r\n CssFrameworkComponent\r\n ],\r\n providers: [\r\n JsonSchemaFormService,\r\n FrameworkLibraryService,\r\n WidgetLibraryService,\r\n CssframeworkService\r\n // { provide: Framework, useClass: CssFramework, multi: true },\r\n ]\r\n})\r\nexport class CssFrameworkModule { }\r\n","import { Inject, Injectable, inject } from '@angular/core';\r\nimport { Framework } from '@ng-formworks/core';\r\nimport { CssFrameworkComponent } from './css-framework.component';\r\nimport { CSS_FRAMEWORK_CFG, css_fw } from './css-framework.defs';\r\nimport { CssframeworkService } from './css-framework.service';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class CssFramework extends Framework {\r\n cssFWService = inject(CssframeworkService);\r\n\r\n name = 'css';\r\n\r\n framework:any = CssFrameworkComponent;\r\n config:css_fw.frameworkcfg\r\n constructor(@Inject(CSS_FRAMEWORK_CFG ) cfg:css_fw.frameworkcfg){\r\n //reverted to use @Inject for other child classes\r\n //const cfg = inject<css_fw.frameworkcfg>(CSS_FRAMEWORK_CFG);\r\n\r\n super();\r\n \r\n this.name=cfg.name;\r\n this.text=cfg.text||this.name;\r\n this.stylesheets=cfg.stylesheets;\r\n this.scripts=cfg.scripts;\r\n this.config=cfg;\r\n this.widgets=cfg.widgets;\r\n }\r\n getActiveTheme():css_fw.themeKV{\r\n let activeRequestedThemeName=this.cssFWService.getActiveRequestedTheme();\r\n let frameWorkThemes=this.config?.widgetstyles?.__themes__;\r\n \r\n let theme=frameWorkThemes && frameWorkThemes[0]\r\n if(activeRequestedThemeName){//if not set return first theme in config;\r\n theme={name:activeRequestedThemeName,text:activeRequestedThemeName};\r\n if(frameWorkThemes){\r\n let filtered=frameWorkThemes.filter(theme=>{return theme.name==activeRequestedThemeName});\r\n theme=(filtered && filtered[0])||theme;\r\n }\r\n }\r\n return theme;\r\n }\r\n\r\n requestThemeChange(name:string){\r\n this.cssFWService.requestThemeChange(name);\r\n }\r\n\r\n registerTheme(newTheme:css_fw.themeKV,overwrite:boolean=true):boolean{\r\n let themeList=this.config?.widgetstyles?.__themes__||[];\r\n let matchedThemes=themeList.filter(theme=>{return newTheme.name==theme.name});\r\n if(matchedThemes && matchedThemes[0]){\r\n if(overwrite){\r\n matchedThemes[0].text=newTheme.text;\r\n return true;\r\n }\r\n if(!overwrite){\r\n return false;\r\n }\r\n \r\n }\r\n if(!matchedThemes || matchedThemes.length==0){\r\n let cfg:any=this.config\r\n cfg.widgetstyles= this.config.widgetstyles||{};\r\n cfg.widgetstyles.__themes__=cfg.widgetstyles.__themes__||[];\r\n cfg.widgetstyles.__themes__.push(newTheme);\r\n return true;\r\n }\r\n };\r\n\r\n unregisterTheme(name:string):boolean{\r\n let themeList=this.config?.widgetstyles?.__themes__;\r\n let foundInd=-1;\r\n if(themeList){\r\n themeList.forEach((theme,ind)=>{\r\n if(name==theme.name){\r\n foundInd=ind;\r\n }\r\n });\r\n if(foundInd>=0){\r\n themeList.splice(foundInd,1);\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n getConfig():css_fw.frameworkcfg{\r\n return this.config;\r\n }\r\n\r\n /*\r\n stylesheets = [\r\n //TODO-enable for dev only\r\n cdn.tailwindcss.com/3.3.3'\r\n ];\r\n\r\n\r\n scripts = [\r\n\r\n ];\r\n */\r\n\r\n}\r\n","/*\r\n * Public API Surface of ng-formworks-cssframework\r\n */\r\n\r\nexport * from './lib/css-framework.component';\r\nexport * from './lib/css-framework.defs';\r\nexport * from './lib/css-framework.module';\r\nexport * from './lib/css-framework.service';\r\nexport * from './lib/css.framework';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/index.d.ts CHANGED
@@ -1,5 +1,147 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="@ng-formworks/cssframework" />
5
- export * from './public-api';
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, OnInit, OnChanges, OnDestroy, ChangeDetectorRef } from '@angular/core';
3
+ import * as i2 from '@ng-formworks/core';
4
+ import { JsonSchemaFormService, FrameworkLibraryService, Framework } from '@ng-formworks/core';
5
+ import { Observable, Subject, Subscription } from 'rxjs';
6
+ import * as i3 from '@angular/common';
7
+
8
+ declare const CSS_FRAMEWORK_CFG: InjectionToken<css_fw.frameworkcfg>;
9
+ declare namespace css_fw {
10
+ type themeKV = {
11
+ name: string;
12
+ text: string;
13
+ };
14
+ class csscategories {
15
+ fieldHtmlClass?: string | string[];
16
+ labelHtmlClass?: string | string[];
17
+ htmlClass?: string | string[];
18
+ itemLabelHtmlClass?: string | string[];
19
+ activeClass?: string | string[];
20
+ [key: `widget_${string}`]: string | string[];
21
+ }
22
+ type widgetstyles = {
23
+ '$ref'?: csscategories;
24
+ 'alt-date'?: csscategories;
25
+ 'alt-datetime'?: csscategories;
26
+ __themes__?: themeKV[];
27
+ __array_item_nonref__: csscategories;
28
+ __form_group__: csscategories;
29
+ __control_label__: csscategories;
30
+ __active__: csscategories;
31
+ __required_asterisk__: string;
32
+ __array__: csscategories;
33
+ '__remove_item__': string;
34
+ __help_block__: string;
35
+ __field_addon_left__: string;
36
+ __field_addon_right__: string;
37
+ __screen_reader__: string;
38
+ array: csscategories;
39
+ authfieldset?: csscategories;
40
+ advancedfieldset?: csscategories;
41
+ button?: csscategories;
42
+ checkbox?: csscategories;
43
+ checkboxes?: csscategories;
44
+ checkboxbuttons?: csscategories;
45
+ 'checkboxes-inline'?: csscategories;
46
+ date?: csscategories;
47
+ 'datetime-local'?: csscategories;
48
+ fieldset?: csscategories;
49
+ integer?: csscategories;
50
+ number?: csscategories;
51
+ optionfieldset?: csscategories;
52
+ password?: csscategories;
53
+ radiobuttons?: csscategories;
54
+ radio?: csscategories;
55
+ radios?: csscategories;
56
+ "radios-inline"?: csscategories;
57
+ 'range'?: csscategories;
58
+ section?: csscategories;
59
+ selectfieldset?: csscategories;
60
+ select?: csscategories;
61
+ submit?: csscategories;
62
+ text?: csscategories;
63
+ tabs?: csscategories;
64
+ tabarray?: csscategories;
65
+ 'one-of'?: csscategories;
66
+ textarea?: csscategories;
67
+ default: csscategories;
68
+ };
69
+ type frameworkcfg = {
70
+ name: string;
71
+ text: string;
72
+ stylesheets: string[];
73
+ scripts?: string[];
74
+ widgetstyles: widgetstyles;
75
+ widgets?: any;
76
+ };
77
+ }
78
+
79
+ declare class CssframeworkService {
80
+ frameworkTheme$: Observable<string>;
81
+ activeRequestedTheme: string;
82
+ frameworkThemeSubject: Subject<string>;
83
+ constructor();
84
+ requestThemeChange(themeName: string): void;
85
+ getActiveRequestedTheme(): string;
86
+ static ɵfac: i0.ɵɵFactoryDeclaration<CssframeworkService, never>;
87
+ static ɵprov: i0.ɵɵInjectableDeclaration<CssframeworkService>;
88
+ }
89
+
90
+ declare class CssFrameworkComponent implements OnInit, OnChanges, OnDestroy {
91
+ changeDetector: ChangeDetectorRef;
92
+ jsf: JsonSchemaFormService;
93
+ jsfFLService: FrameworkLibraryService;
94
+ cssFWService: CssframeworkService;
95
+ frameworkInitialized: boolean;
96
+ widgetOptions: any;
97
+ widgetLayoutNode: any;
98
+ options: any;
99
+ formControl: any;
100
+ debugOutput: any;
101
+ debug: any;
102
+ parentArray: any;
103
+ isOrderable: boolean;
104
+ readonly layoutNode: i0.InputSignal<any>;
105
+ readonly layoutIndex: i0.InputSignal<number[]>;
106
+ readonly dataIndex: i0.InputSignal<number[]>;
107
+ readonly widgetStyles: i0.ModelSignal<css_fw.widgetstyles>;
108
+ applyCssClasses(type: any, widgetOptions: any, styleOptions: any): void;
109
+ flattenWidgetStyles(wstyles: css_fw.widgetstyles): any;
110
+ defaultStyling: css_fw.widgetstyles;
111
+ theme: string;
112
+ frameworkThemeSubs: Subscription;
113
+ constructor();
114
+ ngOnDestroy(): void;
115
+ get showRemoveButton(): boolean;
116
+ ngOnInit(): void;
117
+ ngOnChanges(): void;
118
+ initializeFramework(): void;
119
+ updateHelpBlock(status: any): void;
120
+ setTitle(): string;
121
+ removeItem(): void;
122
+ static ɵfac: i0.ɵɵFactoryDeclaration<CssFrameworkComponent, never>;
123
+ static ɵcmp: i0.ɵɵComponentDeclaration<CssFrameworkComponent, "css-framework", never, { "layoutNode": { "alias": "layoutNode"; "required": false; "isSignal": true; }; "layoutIndex": { "alias": "layoutIndex"; "required": false; "isSignal": true; }; "dataIndex": { "alias": "dataIndex"; "required": false; "isSignal": true; }; "widgetStyles": { "alias": "widgetStyles"; "required": false; "isSignal": true; }; }, { "widgetStyles": "widgetStylesChange"; }, never, never, false, never>;
124
+ }
125
+
126
+ declare class CssFrameworkModule {
127
+ static ɵfac: i0.ɵɵFactoryDeclaration<CssFrameworkModule, never>;
128
+ static ɵmod: i0.ɵɵNgModuleDeclaration<CssFrameworkModule, [typeof CssFrameworkComponent], [typeof i2.JsonSchemaFormModule, typeof i3.CommonModule, typeof i2.WidgetLibraryModule], [typeof CssFrameworkComponent]>;
129
+ static ɵinj: i0.ɵɵInjectorDeclaration<CssFrameworkModule>;
130
+ }
131
+
132
+ declare class CssFramework extends Framework {
133
+ cssFWService: CssframeworkService;
134
+ name: string;
135
+ framework: any;
136
+ config: css_fw.frameworkcfg;
137
+ constructor(cfg: css_fw.frameworkcfg);
138
+ getActiveTheme(): css_fw.themeKV;
139
+ requestThemeChange(name: string): void;
140
+ registerTheme(newTheme: css_fw.themeKV, overwrite?: boolean): boolean;
141
+ unregisterTheme(name: string): boolean;
142
+ getConfig(): css_fw.frameworkcfg;
143
+ static ɵfac: i0.ɵɵFactoryDeclaration<CssFramework, never>;
144
+ static ɵprov: i0.ɵɵInjectableDeclaration<CssFramework>;
145
+ }
146
+
147
+ export { CSS_FRAMEWORK_CFG, CssFramework, CssFrameworkComponent, CssFrameworkModule, CssframeworkService, css_fw };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ng-formworks/cssframework",
3
- "version": "19.6.2",
3
+ "version": "20.6.3",
4
4
  "description": "Angular ng-formworks - JSON Schema Form builder cssframework",
5
5
  "author": "https://github.com/zahmo/ng-formworks/graphs/contributors",
6
6
  "keywords": [
@@ -12,11 +12,18 @@
12
12
  "Angular 16",
13
13
  "Angular17",
14
14
  "Angular 17",
15
+ "Angular18",
15
16
  "Angular 18",
17
+ "Angular19",
18
+ "Angular 19",
19
+ "Angular20",
20
+ "Angular 20",
16
21
  "ng15",
17
22
  "ng16",
18
23
  "ng17",
19
24
  "ng18",
25
+ "ng19",
26
+ "ng20",
20
27
  "JSON Schema",
21
28
  "form",
22
29
  "forms",
@@ -39,12 +46,12 @@
39
46
  },
40
47
  "private": false,
41
48
  "peerDependencies": {
42
- "@angular/common": "^19.0.0",
43
- "@angular/core": "^19.0.0"
49
+ "@angular/common": "^20.0.0",
50
+ "@angular/core": "^20.0.0"
44
51
  },
45
52
  "dependencies": {
46
53
  "tslib": "^2.7.0",
47
- "@ng-formworks/core": "~19.6.2"
54
+ "@ng-formworks/core": "~20.6.3"
48
55
  },
49
56
  "sideEffects": false,
50
57
  "module": "fesm2022/ng-formworks-cssframework.mjs",
@@ -1,41 +0,0 @@
1
- import { ChangeDetectorRef, OnChanges, OnDestroy, OnInit } from '@angular/core';
2
- import { FrameworkLibraryService, JsonSchemaFormService } from '@ng-formworks/core';
3
- import { Subscription } from 'rxjs';
4
- import { css_fw } from './css-framework.defs';
5
- import { CssframeworkService } from './css-framework.service';
6
- import * as i0 from "@angular/core";
7
- export declare class CssFrameworkComponent implements OnInit, OnChanges, OnDestroy {
8
- changeDetector: ChangeDetectorRef;
9
- jsf: JsonSchemaFormService;
10
- jsfFLService: FrameworkLibraryService;
11
- cssFWService: CssframeworkService;
12
- frameworkInitialized: boolean;
13
- widgetOptions: any;
14
- widgetLayoutNode: any;
15
- options: any;
16
- formControl: any;
17
- debugOutput: any;
18
- debug: any;
19
- parentArray: any;
20
- isOrderable: boolean;
21
- readonly layoutNode: import("@angular/core").InputSignal<any>;
22
- readonly layoutIndex: import("@angular/core").InputSignal<number[]>;
23
- readonly dataIndex: import("@angular/core").InputSignal<number[]>;
24
- readonly widgetStyles: import("@angular/core").ModelSignal<css_fw.widgetstyles>;
25
- applyCssClasses(type: any, widgetOptions: any, styleOptions: any): void;
26
- flattenWidgetStyles(wstyles: css_fw.widgetstyles): any;
27
- defaultStyling: css_fw.widgetstyles;
28
- theme: string;
29
- frameworkThemeSubs: Subscription;
30
- constructor();
31
- ngOnDestroy(): void;
32
- get showRemoveButton(): boolean;
33
- ngOnInit(): void;
34
- ngOnChanges(): void;
35
- initializeFramework(): void;
36
- updateHelpBlock(status: any): void;
37
- setTitle(): string;
38
- removeItem(): void;
39
- static ɵfac: i0.ɵɵFactoryDeclaration<CssFrameworkComponent, never>;
40
- static ɵcmp: i0.ɵɵComponentDeclaration<CssFrameworkComponent, "css-framework", never, { "layoutNode": { "alias": "layoutNode"; "required": false; "isSignal": true; }; "layoutIndex": { "alias": "layoutIndex"; "required": false; "isSignal": true; }; "dataIndex": { "alias": "dataIndex"; "required": false; "isSignal": true; }; "widgetStyles": { "alias": "widgetStyles"; "required": false; "isSignal": true; }; }, { "widgetStyles": "widgetStylesChange"; }, never, never, false, never>;
41
- }
@@ -1,71 +0,0 @@
1
- import { InjectionToken } from "@angular/core";
2
- export declare const CSS_FRAMEWORK_CFG: InjectionToken<css_fw.frameworkcfg>;
3
- export declare namespace css_fw {
4
- type themeKV = {
5
- name: string;
6
- text: string;
7
- };
8
- class csscategories {
9
- fieldHtmlClass?: string | string[];
10
- labelHtmlClass?: string | string[];
11
- htmlClass?: string | string[];
12
- itemLabelHtmlClass?: string | string[];
13
- activeClass?: string | string[];
14
- [key: `widget_${string}`]: string | string[];
15
- }
16
- type widgetstyles = {
17
- '$ref'?: csscategories;
18
- 'alt-date'?: csscategories;
19
- 'alt-datetime'?: csscategories;
20
- __themes__?: themeKV[];
21
- __array_item_nonref__: csscategories;
22
- __form_group__: csscategories;
23
- __control_label__: csscategories;
24
- __active__: csscategories;
25
- __required_asterisk__: string;
26
- __array__: csscategories;
27
- '__remove_item__': string;
28
- __help_block__: string;
29
- __field_addon_left__: string;
30
- __field_addon_right__: string;
31
- __screen_reader__: string;
32
- array: csscategories;
33
- authfieldset?: csscategories;
34
- advancedfieldset?: csscategories;
35
- button?: csscategories;
36
- checkbox?: csscategories;
37
- checkboxes?: csscategories;
38
- checkboxbuttons?: csscategories;
39
- 'checkboxes-inline'?: csscategories;
40
- date?: csscategories;
41
- 'datetime-local'?: csscategories;
42
- fieldset?: csscategories;
43
- integer?: csscategories;
44
- number?: csscategories;
45
- optionfieldset?: csscategories;
46
- password?: csscategories;
47
- radiobuttons?: csscategories;
48
- radio?: csscategories;
49
- radios?: csscategories;
50
- "radios-inline"?: csscategories;
51
- 'range'?: csscategories;
52
- section?: csscategories;
53
- selectfieldset?: csscategories;
54
- select?: csscategories;
55
- submit?: csscategories;
56
- text?: csscategories;
57
- tabs?: csscategories;
58
- tabarray?: csscategories;
59
- 'one-of'?: csscategories;
60
- textarea?: csscategories;
61
- default: csscategories;
62
- };
63
- type frameworkcfg = {
64
- name: string;
65
- text: string;
66
- stylesheets: string[];
67
- scripts?: string[];
68
- widgetstyles: widgetstyles;
69
- widgets?: any;
70
- };
71
- }
@@ -1,9 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- import * as i1 from "./css-framework.component";
3
- import * as i2 from "@ng-formworks/core";
4
- import * as i3 from "@angular/common";
5
- export declare class CssFrameworkModule {
6
- static ɵfac: i0.ɵɵFactoryDeclaration<CssFrameworkModule, never>;
7
- static ɵmod: i0.ɵɵNgModuleDeclaration<CssFrameworkModule, [typeof i1.CssFrameworkComponent], [typeof i2.JsonSchemaFormModule, typeof i3.CommonModule, typeof i2.WidgetLibraryModule], [typeof i1.CssFrameworkComponent]>;
8
- static ɵinj: i0.ɵɵInjectorDeclaration<CssFrameworkModule>;
9
- }
@@ -1,12 +0,0 @@
1
- import { Observable, Subject } from 'rxjs';
2
- import * as i0 from "@angular/core";
3
- export declare class CssframeworkService {
4
- frameworkTheme$: Observable<string>;
5
- activeRequestedTheme: string;
6
- frameworkThemeSubject: Subject<string>;
7
- constructor();
8
- requestThemeChange(themeName: string): void;
9
- getActiveRequestedTheme(): string;
10
- static ɵfac: i0.ɵɵFactoryDeclaration<CssframeworkService, never>;
11
- static ɵprov: i0.ɵɵInjectableDeclaration<CssframeworkService>;
12
- }
@@ -1,18 +0,0 @@
1
- import { Framework } from '@ng-formworks/core';
2
- import { css_fw } from './css-framework.defs';
3
- import { CssframeworkService } from './css-framework.service';
4
- import * as i0 from "@angular/core";
5
- export declare class CssFramework extends Framework {
6
- cssFWService: CssframeworkService;
7
- name: string;
8
- framework: any;
9
- config: css_fw.frameworkcfg;
10
- constructor(cfg: css_fw.frameworkcfg);
11
- getActiveTheme(): css_fw.themeKV;
12
- requestThemeChange(name: string): void;
13
- registerTheme(newTheme: css_fw.themeKV, overwrite?: boolean): boolean;
14
- unregisterTheme(name: string): boolean;
15
- getConfig(): css_fw.frameworkcfg;
16
- static ɵfac: i0.ɵɵFactoryDeclaration<CssFramework, never>;
17
- static ɵprov: i0.ɵɵInjectableDeclaration<CssFramework>;
18
- }
package/public-api.d.ts DELETED
@@ -1,5 +0,0 @@
1
- export * from './lib/css-framework.component';
2
- export * from './lib/css-framework.defs';
3
- export * from './lib/css-framework.module';
4
- export * from './lib/css-framework.service';
5
- export * from './lib/css.framework';