xt-plugin-default 0.4.0 → 0.4.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
@@ -1,24 +1,17 @@
1
- # Default
1
+ ![ng-xtend logo](https://dont-code.net/assets/images/logos/logo-xtend-angular-red-small.png)
2
2
 
3
- This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 18.2.0.
3
+ # Plugin xt-default
4
4
 
5
- ## Code scaffolding
5
+ This plugin is part of the [ng-xtend framework](https://github.com/dont-code/ng-xtend/blob/main/README.md)
6
6
 
7
- Run `ng generate component component-name --project default` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project default`.
8
- > Note: Don't forget to add `--project default` or else it will be added to the default project in your `angular.json` file.
7
+ It enable [xt-components](https://github.com/dont-code/ng-xtend/tree/main/libs/xt-components) to
9
8
 
10
- ## Build
9
+ - Display and edit any primitive value
10
+ ![Primitive Editor](https://dont-code.net/assets/images/screenshots/plugin-default-primitive.png)
11
+ - or complex object
12
+ ![Object Editor](https://dont-code.net/assets/images/screenshots/plugin-default-object.png)
13
+ - or list of objects
14
+ ![List Viewer](https://dont-code.net/assets/images//screenshots/plugin-default-list.png)
11
15
 
12
- Run `ng build default` to build the project. The build artifacts will be stored in the `dist/` directory.
16
+ With it you are sure you can display / edit any type within any xt-components application like [xt-host](https://github.com/dont-code/ng-xtend/tree/main/libs/xt-host).
13
17
 
14
- ## Publishing
15
-
16
- After building your library with `ng build default`, go to the dist folder `cd dist/default` and run `npm publish`.
17
-
18
- ## Running unit tests
19
-
20
- Run `ng test default` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
-
22
- ## Further help
23
-
24
- To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, computed, Component, ChangeDetectionStrategy, Injector, signal, runInInjectionContext, linkedSignal } from '@angular/core';
2
+ import { inject, computed, Component, ChangeDetectionStrategy, Injector, signal, runInInjectionContext, output, linkedSignal } from '@angular/core';
3
3
  import { XtCompositeComponent, XtResolverService, XtRenderSubComponent, XtSimpleComponent, XtPluginRegistry } from 'xt-components';
4
4
  import { Panel } from 'primeng/panel';
5
5
  import * as i1 from 'primeng/table';
@@ -29,7 +29,7 @@ class DefaultObjectComponent extends XtCompositeComponent {
29
29
  return super.subContext(subName);
30
30
  }
31
31
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: DefaultObjectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
32
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.4", type: DefaultObjectComponent, isStandalone: true, selector: "xt-default-object", usesInheritance: true, ngImport: i0, template: "@let allSubNames=subNames();\n\n@if (displayInline()) {\n <p-table [columns]=\"allSubNames\" [value]=\"[{}]\">\n <ng-template #header>\n <tr>\n @for (subName of allSubNames; track subName) {\n <th>{{subName}}</th>\n }\n </tr>\n </ng-template>\n <ng-template #body>\n <tr>\n @for (subName of allSubNames; track subName) {\n <td><xt-render-sub [context]=\"subContext(subName)\"></xt-render-sub></td>\n }\n </tr>\n </ng-template>\n </p-table>\n\n} @else {\n <p-panel>\n @for (subName of allSubNames; track subName) {\n <div class=\"flex flex-nowrap gap-3\">\n <div class=\"flex-none\">{{subName}}</div>\n <div class=\"flex-auto\"><xt-render-sub [context]=\"subContext(subName)\"></xt-render-sub></div>\n </div>\n }\n </p-panel>\n\n}\n", styles: [""], dependencies: [{ kind: "component", type: XtRenderSubComponent, selector: "xt-render-sub", inputs: ["context", "componentType"], outputs: ["outputs"] }, { kind: "component", type: Panel, selector: "p-panel", inputs: ["toggleable", "header", "collapsed", "style", "styleClass", "iconPos", "expandIcon", "collapseIcon", "showHeader", "toggler", "transitionOptions", "toggleButtonProps"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i1.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "size", "showGridlines", "stripedRows", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "virtualRowHeight", "selectAll"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
32
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.4", type: DefaultObjectComponent, isStandalone: true, selector: "xt-default-object", usesInheritance: true, ngImport: i0, template: "@let allSubNames=subNames();\n\n@if (displayInline()) {\n <p-table [columns]=\"allSubNames\" [value]=\"[{}]\">\n <ng-template #header>\n <tr>\n @for (subName of allSubNames; track subName) {\n <th>{{subName}}</th>\n }\n </tr>\n </ng-template>\n <ng-template #body>\n <tr>\n @for (subName of allSubNames; track subName) {\n <td><xt-render-sub [context]=\"subContext(subName)\"></xt-render-sub></td>\n }\n </tr>\n </ng-template>\n </p-table>\n\n} @else {\n <p-panel>\n @for (subName of allSubNames; track subName) {\n <div class=\"flex flex-nowrap gap-3\">\n <div class=\"flex-none\">{{subName}}</div>\n <div class=\"flex-auto\"><xt-render-sub [context]=\"subContext(subName)\"></xt-render-sub></div>\n </div>\n }\n </p-panel>\n\n}\n", styles: [""], dependencies: [{ kind: "component", type: XtRenderSubComponent, selector: "xt-render-sub", inputs: ["context", "componentType", "inputs"], outputs: ["outputs"] }, { kind: "component", type: Panel, selector: "p-panel", inputs: ["toggleable", "header", "collapsed", "style", "styleClass", "iconPos", "expandIcon", "collapseIcon", "showHeader", "toggler", "transitionOptions", "toggleButtonProps"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i1.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "size", "showGridlines", "stripedRows", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "virtualRowHeight", "selectAll"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
33
33
  }
34
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: DefaultObjectComponent, decorators: [{
35
35
  type: Component,
@@ -109,7 +109,7 @@ class DefaultObjectSetComponent extends XtCompositeComponent {
109
109
  constructor() {
110
110
  super(...arguments);
111
111
  this.resolver = inject(XtResolverService);
112
- this.hasOutputs = true;
112
+ this.selected = output();
113
113
  this.debugValue = false;
114
114
  this.debugSelectedElement = computed(() => {
115
115
  console.debug("Selected element", this.selectedElement());
@@ -166,10 +166,13 @@ class DefaultObjectSetComponent extends XtCompositeComponent {
166
166
  }
167
167
  selectionChange(newElement) {
168
168
  this.selectedElement.set(newElement);
169
- this.emitOutput('valueSelected', newElement);
169
+ this.selected.emit(newElement);
170
+ }
171
+ setupInputOutput() {
172
+ this.outputsObject.valueSelected = this.selected;
170
173
  }
171
174
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: DefaultObjectSetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
172
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.4", type: DefaultObjectSetComponent, isStandalone: true, selector: "lib-default-object-set", usesInheritance: true, ngImport: i0, template: "@let allSubNames=subNames();\n<p-table [columns]=\"allSubNames\" [scrollable]=\"true\" scrollHeight=\"flex\" [value]=\"valueSet()\" selectionMode=\"single\" [selection]=\"selectedElement()\" (selectionChange)=\"selectionChange($event)\">\n <ng-template #header>\n <tr>\n @for (subName of allSubNames; track subName) {\n <th>{{subName}}</th>\n }\n </tr>\n </ng-template>\n <ng-template #body let-element let-eltIndex='rowIndex'>\n @let eltContext=elementSetContext(eltIndex);\n <tr [pSelectableRow]=\"element\">\n @for (subName of allSubNames; track subName) {\n <td><xt-render-sub [context]=\"subElementContextForName(eltContext, subName)\"></xt-render-sub> </td>\n }\n </tr>\n </ng-template>\n</p-table>\n", styles: [""], dependencies: [{ kind: "component", type: XtRenderSubComponent, selector: "xt-render-sub", inputs: ["context", "componentType"], outputs: ["outputs"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i1.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "size", "showGridlines", "stripedRows", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "virtualRowHeight", "selectAll"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i1.SelectableRow, selector: "[pSelectableRow]", inputs: ["pSelectableRow", "pSelectableRowIndex", "pSelectableRowDisabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
175
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.4", type: DefaultObjectSetComponent, isStandalone: true, selector: "lib-default-object-set", outputs: { selected: "selected" }, usesInheritance: true, ngImport: i0, template: "@let allSubNames=subNames();\n<p-table [columns]=\"allSubNames\" [scrollable]=\"true\" scrollHeight=\"flex\" [value]=\"valueSet()\" selectionMode=\"single\" [selection]=\"selectedElement()\" (selectionChange)=\"selectionChange($event)\">\n <ng-template #header>\n <tr>\n @for (subName of allSubNames; track subName) {\n <th>{{subName}}</th>\n }\n </tr>\n </ng-template>\n <ng-template #body let-element let-eltIndex='rowIndex'>\n @let eltContext=elementSetContext(eltIndex);\n <tr [pSelectableRow]=\"element\">\n @for (subName of allSubNames; track subName) {\n <td><xt-render-sub [context]=\"subElementContextForName(eltContext, subName)\"></xt-render-sub> </td>\n }\n </tr>\n </ng-template>\n</p-table>\n", styles: [""], dependencies: [{ kind: "component", type: XtRenderSubComponent, selector: "xt-render-sub", inputs: ["context", "componentType", "inputs"], outputs: ["outputs"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i1.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "size", "showGridlines", "stripedRows", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "virtualRowHeight", "selectAll"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i1.SelectableRow, selector: "[pSelectableRow]", inputs: ["pSelectableRow", "pSelectableRowIndex", "pSelectableRowDisabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
173
176
  }
174
177
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: DefaultObjectSetComponent, decorators: [{
175
178
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"xt-plugin-default.mjs","sources":["../../../projects/default/src/lib/object/default-object.component.ts","../../../projects/default/src/lib/object/default-object.component.html","../../../projects/default/src/lib/primitive/default-primitive.component.ts","../../../projects/default/src/lib/primitive/default-primitive.component.html","../../../projects/default/src/lib/object-set/default-object-set.component.ts","../../../projects/default/src/lib/object-set/default-object-set.component.html","../../../projects/default/src/lib/register.ts","../../../projects/default/src/public-api.ts","../../../projects/default/src/xt-plugin-default.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';\nimport { XtCompositeComponent, XtContext, XtRenderSubComponent, XtResolverService } from 'xt-components';\nimport { Panel } from 'primeng/panel';\nimport { TableModule } from 'primeng/table';\n\n@Component({\n selector: 'xt-default-object',\n imports: [XtRenderSubComponent, Panel, TableModule],\n templateUrl: './default-object.component.html',\n styleUrl: './default-object.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DefaultObjectComponent extends XtCompositeComponent {\n\n resolver = inject(XtResolverService);\n\n subNames() :string[]\n {\n const value = this.context().value();\n const ret= this.resolver.listSubNamesOf(this.context(), value);\n return ret;\n }\n\n override subContext (subName:string): XtContext<any> {\n return super.subContext(subName);\n }\n\n displayInline= computed (() => {\n const display = this.context().displayMode;\n\n return display=='INLINE_VIEW' || display=='LIST_VIEW';\n });\n}\n","@let allSubNames=subNames();\n\n@if (displayInline()) {\n <p-table [columns]=\"allSubNames\" [value]=\"[{}]\">\n <ng-template #header>\n <tr>\n @for (subName of allSubNames; track subName) {\n <th>{{subName}}</th>\n }\n </tr>\n </ng-template>\n <ng-template #body>\n <tr>\n @for (subName of allSubNames; track subName) {\n <td><xt-render-sub [context]=\"subContext(subName)\"></xt-render-sub></td>\n }\n </tr>\n </ng-template>\n </p-table>\n\n} @else {\n <p-panel>\n @for (subName of allSubNames; track subName) {\n <div class=\"flex flex-nowrap gap-3\">\n <div class=\"flex-none\">{{subName}}</div>\n <div class=\"flex-auto\"><xt-render-sub [context]=\"subContext(subName)\"></xt-render-sub></div>\n </div>\n }\n </p-panel>\n\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n Injector,\n OnDestroy,\n runInInjectionContext,\n signal\n} from '@angular/core';\nimport { XtSimpleComponent } from 'xt-components';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { InputText } from 'primeng/inputtext';\nimport { Checkbox } from 'primeng/checkbox';\nimport { InputNumber } from 'primeng/inputnumber';\nimport { DatePicker } from 'primeng/datepicker';\nimport { Subscription } from 'rxjs';\n\n/**\n * Displays / edits primitive types (string, numeric) using text inputs to ensure at least something is managed.\n */\n@Component({\n selector: 'xt-default-primitive',\n imports: [\n ReactiveFormsModule,\n InputText,\n Checkbox,\n InputNumber,\n DatePicker\n ],\n templateUrl: './default-primitive.component.html',\n styleUrl: './default-primitive.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DefaultPrimitiveComponent extends XtSimpleComponent implements OnDestroy{\n\n injector = inject(Injector);\n\n recalculate = signal<boolean> (false);\n valueSubscription: Subscription|null = null;\n\n /**\n * This function tries to guess the type of value to be handled\n */\n typeOf = computed (() => {\n this.recalculate(); // In case recompute is forced\n if(this.context().valueType == null) {\n // The type has not been set, so let's see if we can guess it from the value\n const val = this.context().value(); // We don't use this.getValue(), as it returns a cached value\n if (val == null) { // We really can't know the type\n if (this.valueSubscription==null) {\n // Let's make sure a change of the value is taken into account\n runInInjectionContext(this.injector, () => {\n this.valueSubscription=this.formControl().valueChanges.subscribe({\n next: () => {\n this.recalculate.update((val) => !val);\n }\n });\n });\n }\n return val;\n } else {\n const ret= typeof val;\n if (ret != 'object') {\n this.context().valueType = typeof val;\n return ret;\n }else if (val instanceof Date) {\n this.context().valueType = 'date';\n return 'date';\n } else {\n throw new Error('Primitive Component used to display a non primitive type '+ret);\n }\n }\n } else {\n return this.context().valueType;\n }\n });\n\n ngOnDestroy(): void {\n if (this.valueSubscription!=null) {\n this.valueSubscription.unsubscribe();\n }\n }\n}\n","@if (isInForm() ) {\n <ng-container [formGroup]=\"formGroup()\">\n @switch (typeOf ()) {\n @case (\"number\") {\n <p-inputnumber mode=\"decimal\" [name]=\"componentNameInForm ()\" [formControlName]=\"formControlName()\" fluid=\"true\"></p-inputnumber>\n }\n @case (\"bigint\") {\n <p-inputnumber [name]=\"componentNameInForm ()\" [formControlName]=\"formControlName()\" fluid=\"true\"></p-inputnumber>\n }\n @case (\"boolean\") {\n <p-checkbox [name]=\"componentNameInForm ()\" [formControlName]=\"formControlName()\" [binary]=\"true\" />\n }\n @case (\"date\") {\n <p-datepicker [name]=\"componentNameInForm ()\" [formControlName]=\"formControlName()\" />\n }\n @default {\n <input type=\"text\" pInputText [name]=\"componentNameInForm ()\" [formControlName]=\"formControlName()\" fluid=\"true\" />\n }\n }\n </ng-container>\n} @else {\n {{ displayValue() }}\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, linkedSignal, signal, Signal } from '@angular/core';\nimport { XtCompositeComponent, XtContext, XtRenderSubComponent, XtResolverService } from 'xt-components';\nimport { TableModule } from 'primeng/table';\n\n@Component({\n selector: 'lib-default-object-set',\n imports: [XtRenderSubComponent, TableModule],\n templateUrl: './default-object-set.component.html',\n styleUrl: './default-object-set.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DefaultObjectSetComponent<T> extends XtCompositeComponent<T[]> {\n resolver = inject(XtResolverService);\n override hasOutputs = true;\n\n debugValue=false;\n debugSelectedElement:Signal<boolean> = computed<boolean>(() => {\n console.debug(\"Selected element\", this.selectedElement());\n this.debugValue=!this.debugValue;\n return this.debugValue;\n });\n\n valueSet = computed(() => {\n const ret = this.context().value();\n if (Array.isArray(ret)) {\n return ret as T[];\n } else if (ret!=null) {\n return [ret] as T[];\n } else return [];\n });\n\n selectedElement = linkedSignal<T[]|null, T|null> ({\n source: this.valueSet,\n computation: (source, previous) => {\n if ((source!=null) && (previous?.value!=null)) {\n // Detect if a new element has just been added, then selects it.\n if ((previous.source!=null) && (previous.source.length==source.length+1)) {\n for (const newElem of source.reverse()) {\n const findIt=previous.source.find((toCheck) => {\n return (toCheck as any)._id==(newElem as any)._id;\n });\n if (findIt==null) {\n return newElem;\n }\n }\n } else {\n // Otherwise reselect the element if still there\n return source.find((toCheck) => {\n return (toCheck as any)._id==(previous.value as any)._id;\n })??null;\n }\n }\n return null;\n }\n });\n\n subNames = computed(() => {\n const ret = this.resolver.listSubNamesOf(this.context(), this.valueSet());\n return ret;\n });\n\n\n elementSetContext(elementIndex: number): XtContext<any> {\n this.formGroupIfAny();\n\n return this.context().elementSetContext(elementIndex);\n }\n\n subElementContextForName(subElementContext: XtContext<any>, subName: string, subType?: string): XtContext<any> {\n return subElementContext.subContext(subName, subType, this.resolverService?.typeResolver);\n }\n\n selectionChange(newElement: any) {\n this.selectedElement.set(newElement);\n this.emitOutput ('valueSelected', newElement );\n }\n}\n","@let allSubNames=subNames();\n<p-table [columns]=\"allSubNames\" [scrollable]=\"true\" scrollHeight=\"flex\" [value]=\"valueSet()\" selectionMode=\"single\" [selection]=\"selectedElement()\" (selectionChange)=\"selectionChange($event)\">\n <ng-template #header>\n <tr>\n @for (subName of allSubNames; track subName) {\n <th>{{subName}}</th>\n }\n </tr>\n </ng-template>\n <ng-template #body let-element let-eltIndex='rowIndex'>\n @let eltContext=elementSetContext(eltIndex);\n <tr [pSelectableRow]=\"element\">\n @for (subName of allSubNames; track subName) {\n <td><xt-render-sub [context]=\"subElementContextForName(eltContext, subName)\"></xt-render-sub> </td>\n }\n </tr>\n </ng-template>\n</p-table>\n","import { XtPluginRegistry, XtResolverService } from 'xt-components';\nimport { DefaultPrimitiveComponent } from './primitive/default-primitive.component';\nimport { DefaultObjectComponent } from './object/default-object.component';\nimport { DefaultObjectSetComponent } from './object-set/default-object-set.component';\n\nexport function registerDefaultPlugin (resolverService:XtResolverService):boolean {\n console.info ('Registering Plugin Default');\n resolverService.registerPlugin ({\n name:'PluginDefault',\n components: [\n {\n componentName:'DefaultPrimitive',\n componentClass:DefaultPrimitiveComponent,\n typesHandled: [XtPluginRegistry.ANY_PRIMITIVE_TYPE, 'string', 'number', 'boolean', 'date'],\n },{\n componentName:'DefaultObject',\n componentClass:DefaultObjectComponent,\n typesHandled: [XtPluginRegistry.ANY_OBJECT_TYPE]\n },{\n componentName:'DefaultObjectSet',\n componentClass:DefaultObjectSetComponent,\n typesHandled: [XtPluginRegistry.ANY_OBJECT_SET],\n outputs: ['valueSelected']\n }\n ]\n });\n return true;\n}\n","/*\n * Public API Surface of default\n */\n\nexport * from './lib/object/default-object.component';\nexport * from './lib/primitive/default-primitive.component';\nexport * from './lib/object-set/default-object-set.component';\nexport * from './lib/register';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"xt-plugin-default.mjs","sources":["../../../projects/default/src/lib/object/default-object.component.ts","../../../projects/default/src/lib/object/default-object.component.html","../../../projects/default/src/lib/primitive/default-primitive.component.ts","../../../projects/default/src/lib/primitive/default-primitive.component.html","../../../projects/default/src/lib/object-set/default-object-set.component.ts","../../../projects/default/src/lib/object-set/default-object-set.component.html","../../../projects/default/src/lib/register.ts","../../../projects/default/src/public-api.ts","../../../projects/default/src/xt-plugin-default.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';\nimport { XtCompositeComponent, XtContext, XtRenderSubComponent, XtResolverService } from 'xt-components';\nimport { Panel } from 'primeng/panel';\nimport { TableModule } from 'primeng/table';\n\n@Component({\n selector: 'xt-default-object',\n imports: [XtRenderSubComponent, Panel, TableModule],\n templateUrl: './default-object.component.html',\n styleUrl: './default-object.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DefaultObjectComponent extends XtCompositeComponent {\n\n resolver = inject(XtResolverService);\n\n subNames() :string[]\n {\n const value = this.context().value();\n const ret= this.resolver.listSubNamesOf(this.context(), value);\n return ret;\n }\n\n override subContext (subName:string): XtContext<any> {\n return super.subContext(subName);\n }\n\n displayInline= computed (() => {\n const display = this.context().displayMode;\n\n return display=='INLINE_VIEW' || display=='LIST_VIEW';\n });\n}\n","@let allSubNames=subNames();\n\n@if (displayInline()) {\n <p-table [columns]=\"allSubNames\" [value]=\"[{}]\">\n <ng-template #header>\n <tr>\n @for (subName of allSubNames; track subName) {\n <th>{{subName}}</th>\n }\n </tr>\n </ng-template>\n <ng-template #body>\n <tr>\n @for (subName of allSubNames; track subName) {\n <td><xt-render-sub [context]=\"subContext(subName)\"></xt-render-sub></td>\n }\n </tr>\n </ng-template>\n </p-table>\n\n} @else {\n <p-panel>\n @for (subName of allSubNames; track subName) {\n <div class=\"flex flex-nowrap gap-3\">\n <div class=\"flex-none\">{{subName}}</div>\n <div class=\"flex-auto\"><xt-render-sub [context]=\"subContext(subName)\"></xt-render-sub></div>\n </div>\n }\n </p-panel>\n\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n Injector,\n OnDestroy,\n runInInjectionContext,\n signal\n} from '@angular/core';\nimport { XtSimpleComponent } from 'xt-components';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { InputText } from 'primeng/inputtext';\nimport { Checkbox } from 'primeng/checkbox';\nimport { InputNumber } from 'primeng/inputnumber';\nimport { DatePicker } from 'primeng/datepicker';\nimport { Subscription } from 'rxjs';\n\n/**\n * Displays / edits primitive types (string, numeric) using text inputs to ensure at least something is managed.\n */\n@Component({\n selector: 'xt-default-primitive',\n imports: [\n ReactiveFormsModule,\n InputText,\n Checkbox,\n InputNumber,\n DatePicker\n ],\n templateUrl: './default-primitive.component.html',\n styleUrl: './default-primitive.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DefaultPrimitiveComponent extends XtSimpleComponent implements OnDestroy{\n\n injector = inject(Injector);\n\n recalculate = signal<boolean> (false);\n valueSubscription: Subscription|null = null;\n\n /**\n * This function tries to guess the type of value to be handled\n */\n typeOf = computed (() => {\n this.recalculate(); // In case recompute is forced\n if(this.context().valueType == null) {\n // The type has not been set, so let's see if we can guess it from the value\n const val = this.context().value(); // We don't use this.getValue(), as it returns a cached value\n if (val == null) { // We really can't know the type\n if (this.valueSubscription==null) {\n // Let's make sure a change of the value is taken into account\n runInInjectionContext(this.injector, () => {\n this.valueSubscription=this.formControl().valueChanges.subscribe({\n next: () => {\n this.recalculate.update((val) => !val);\n }\n });\n });\n }\n return val;\n } else {\n const ret= typeof val;\n if (ret != 'object') {\n this.context().valueType = typeof val;\n return ret;\n }else if (val instanceof Date) {\n this.context().valueType = 'date';\n return 'date';\n } else {\n throw new Error('Primitive Component used to display a non primitive type '+ret);\n }\n }\n } else {\n return this.context().valueType;\n }\n });\n\n ngOnDestroy(): void {\n if (this.valueSubscription!=null) {\n this.valueSubscription.unsubscribe();\n }\n }\n}\n","@if (isInForm() ) {\n <ng-container [formGroup]=\"formGroup()\">\n @switch (typeOf ()) {\n @case (\"number\") {\n <p-inputnumber mode=\"decimal\" [name]=\"componentNameInForm ()\" [formControlName]=\"formControlName()\" fluid=\"true\"></p-inputnumber>\n }\n @case (\"bigint\") {\n <p-inputnumber [name]=\"componentNameInForm ()\" [formControlName]=\"formControlName()\" fluid=\"true\"></p-inputnumber>\n }\n @case (\"boolean\") {\n <p-checkbox [name]=\"componentNameInForm ()\" [formControlName]=\"formControlName()\" [binary]=\"true\" />\n }\n @case (\"date\") {\n <p-datepicker [name]=\"componentNameInForm ()\" [formControlName]=\"formControlName()\" />\n }\n @default {\n <input type=\"text\" pInputText [name]=\"componentNameInForm ()\" [formControlName]=\"formControlName()\" fluid=\"true\" />\n }\n }\n </ng-container>\n} @else {\n {{ displayValue() }}\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, linkedSignal, output, Signal } from '@angular/core';\nimport { XtComponentOutput, XtCompositeComponent, XtContext, XtRenderSubComponent, XtResolverService } from 'xt-components';\nimport { TableModule } from 'primeng/table';\n\n@Component({\n selector: 'lib-default-object-set',\n imports: [XtRenderSubComponent, TableModule],\n templateUrl: './default-object-set.component.html',\n styleUrl: './default-object-set.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DefaultObjectSetComponent<T> extends XtCompositeComponent<T[]> {\n resolver = inject(XtResolverService);\n\n selected= output<T>();\n\n debugValue=false;\n debugSelectedElement:Signal<boolean> = computed<boolean>(() => {\n console.debug(\"Selected element\", this.selectedElement());\n this.debugValue=!this.debugValue;\n return this.debugValue;\n });\n\n valueSet = computed(() => {\n const ret = this.context().value();\n if (Array.isArray(ret)) {\n return ret as T[];\n } else if (ret!=null) {\n return [ret] as T[];\n } else return [];\n });\n\n selectedElement = linkedSignal<T[]|null, T|null> ({\n source: this.valueSet,\n computation: (source, previous) => {\n if ((source!=null) && (previous?.value!=null)) {\n // Detect if a new element has just been added, then selects it.\n if ((previous.source!=null) && (previous.source.length==source.length+1)) {\n for (const newElem of source.reverse()) {\n const findIt=previous.source.find((toCheck) => {\n return (toCheck as any)._id==(newElem as any)._id;\n });\n if (findIt==null) {\n return newElem;\n }\n }\n } else {\n // Otherwise reselect the element if still there\n return source.find((toCheck) => {\n return (toCheck as any)._id==(previous.value as any)._id;\n })??null;\n }\n }\n return null;\n }\n });\n\n subNames = computed(() => {\n const ret = this.resolver.listSubNamesOf(this.context(), this.valueSet());\n return ret;\n });\n\n\n elementSetContext(elementIndex: number): XtContext<any> {\n this.formGroupIfAny();\n\n return this.context().elementSetContext(elementIndex);\n }\n\n subElementContextForName(subElementContext: XtContext<any>, subName: string, subType?: string): XtContext<any> {\n return subElementContext.subContext(subName, subType, this.resolverService?.typeResolver);\n }\n\n selectionChange(newElement: any) {\n this.selectedElement.set(newElement);\n this.selected.emit(newElement );\n }\n\n override setupInputOutput () {\n this.outputsObject.valueSelected=this.selected;\n }\n}\n","@let allSubNames=subNames();\n<p-table [columns]=\"allSubNames\" [scrollable]=\"true\" scrollHeight=\"flex\" [value]=\"valueSet()\" selectionMode=\"single\" [selection]=\"selectedElement()\" (selectionChange)=\"selectionChange($event)\">\n <ng-template #header>\n <tr>\n @for (subName of allSubNames; track subName) {\n <th>{{subName}}</th>\n }\n </tr>\n </ng-template>\n <ng-template #body let-element let-eltIndex='rowIndex'>\n @let eltContext=elementSetContext(eltIndex);\n <tr [pSelectableRow]=\"element\">\n @for (subName of allSubNames; track subName) {\n <td><xt-render-sub [context]=\"subElementContextForName(eltContext, subName)\"></xt-render-sub> </td>\n }\n </tr>\n </ng-template>\n</p-table>\n","import { XtPluginRegistry, XtResolverService } from 'xt-components';\nimport { DefaultPrimitiveComponent } from './primitive/default-primitive.component';\nimport { DefaultObjectComponent } from './object/default-object.component';\nimport { DefaultObjectSetComponent } from './object-set/default-object-set.component';\n\nexport function registerDefaultPlugin (resolverService:XtResolverService):boolean {\n console.info ('Registering Plugin Default');\n resolverService.registerPlugin ({\n name:'PluginDefault',\n components: [\n {\n componentName:'DefaultPrimitive',\n componentClass:DefaultPrimitiveComponent,\n typesHandled: [XtPluginRegistry.ANY_PRIMITIVE_TYPE, 'string', 'number', 'boolean', 'date'],\n },{\n componentName:'DefaultObject',\n componentClass:DefaultObjectComponent,\n typesHandled: [XtPluginRegistry.ANY_OBJECT_TYPE]\n },{\n componentName:'DefaultObjectSet',\n componentClass:DefaultObjectSetComponent,\n typesHandled: [XtPluginRegistry.ANY_OBJECT_SET],\n outputs: ['valueSelected']\n }\n ]\n });\n return true;\n}\n","/*\n * Public API Surface of default\n */\n\nexport * from './lib/object/default-object.component';\nexport * from './lib/primitive/default-primitive.component';\nexport * from './lib/object-set/default-object-set.component';\nexport * from './lib/register';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
@@ -3,7 +3,7 @@ import { XtCompositeComponent, XtContext, XtResolverService } from 'xt-component
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class DefaultObjectSetComponent<T> extends XtCompositeComponent<T[]> {
5
5
  resolver: XtResolverService;
6
- hasOutputs: boolean;
6
+ selected: import("@angular/core").OutputEmitterRef<T>;
7
7
  debugValue: boolean;
8
8
  debugSelectedElement: Signal<boolean>;
9
9
  valueSet: Signal<T[]>;
@@ -12,6 +12,7 @@ export declare class DefaultObjectSetComponent<T> extends XtCompositeComponent<T
12
12
  elementSetContext(elementIndex: number): XtContext<any>;
13
13
  subElementContextForName(subElementContext: XtContext<any>, subName: string, subType?: string): XtContext<any>;
14
14
  selectionChange(newElement: any): void;
15
+ setupInputOutput(): void;
15
16
  static ɵfac: i0.ɵɵFactoryDeclaration<DefaultObjectSetComponent<any>, never>;
16
- static ɵcmp: i0.ɵɵComponentDeclaration<DefaultObjectSetComponent<any>, "lib-default-object-set", never, {}, {}, never, never, true, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<DefaultObjectSetComponent<any>, "lib-default-object-set", never, {}, { "selected": "selected"; }, never, never, true, never>;
17
18
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xt-plugin-default",
3
- "version": "0.4.0",
3
+ "version": "0.4.3",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^19.0.5",
6
6
  "@angular/core": "^19.0.5"