xt-plugin-default 0.4.0
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 +24 -0
- package/fesm2022/xt-plugin-default.mjs +212 -0
- package/fesm2022/xt-plugin-default.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/object/default-object.component.d.ts +10 -0
- package/lib/object-set/default-object-set.component.d.ts +17 -0
- package/lib/primitive/default-primitive.component.d.ts +19 -0
- package/lib/register.d.ts +2 -0
- package/package.json +23 -0
- package/public-api.d.ts +4 -0
package/README.md
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Default
|
|
2
|
+
|
|
3
|
+
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 18.2.0.
|
|
4
|
+
|
|
5
|
+
## Code scaffolding
|
|
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.
|
|
9
|
+
|
|
10
|
+
## Build
|
|
11
|
+
|
|
12
|
+
Run `ng build default` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
13
|
+
|
|
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.
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, computed, Component, ChangeDetectionStrategy, Injector, signal, runInInjectionContext, linkedSignal } from '@angular/core';
|
|
3
|
+
import { XtCompositeComponent, XtResolverService, XtRenderSubComponent, XtSimpleComponent, XtPluginRegistry } from 'xt-components';
|
|
4
|
+
import { Panel } from 'primeng/panel';
|
|
5
|
+
import * as i1 from 'primeng/table';
|
|
6
|
+
import { TableModule } from 'primeng/table';
|
|
7
|
+
import * as i1$1 from '@angular/forms';
|
|
8
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
9
|
+
import { InputText } from 'primeng/inputtext';
|
|
10
|
+
import { Checkbox } from 'primeng/checkbox';
|
|
11
|
+
import { InputNumber } from 'primeng/inputnumber';
|
|
12
|
+
import { DatePicker } from 'primeng/datepicker';
|
|
13
|
+
|
|
14
|
+
class DefaultObjectComponent extends XtCompositeComponent {
|
|
15
|
+
constructor() {
|
|
16
|
+
super(...arguments);
|
|
17
|
+
this.resolver = inject(XtResolverService);
|
|
18
|
+
this.displayInline = computed(() => {
|
|
19
|
+
const display = this.context().displayMode;
|
|
20
|
+
return display == 'INLINE_VIEW' || display == 'LIST_VIEW';
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
subNames() {
|
|
24
|
+
const value = this.context().value();
|
|
25
|
+
const ret = this.resolver.listSubNamesOf(this.context(), value);
|
|
26
|
+
return ret;
|
|
27
|
+
}
|
|
28
|
+
subContext(subName) {
|
|
29
|
+
return super.subContext(subName);
|
|
30
|
+
}
|
|
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 }); }
|
|
33
|
+
}
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: DefaultObjectComponent, decorators: [{
|
|
35
|
+
type: Component,
|
|
36
|
+
args: [{ selector: 'xt-default-object', imports: [XtRenderSubComponent, Panel, TableModule], changeDetection: ChangeDetectionStrategy.OnPush, 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" }]
|
|
37
|
+
}] });
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Displays / edits primitive types (string, numeric) using text inputs to ensure at least something is managed.
|
|
41
|
+
*/
|
|
42
|
+
class DefaultPrimitiveComponent extends XtSimpleComponent {
|
|
43
|
+
constructor() {
|
|
44
|
+
super(...arguments);
|
|
45
|
+
this.injector = inject(Injector);
|
|
46
|
+
this.recalculate = signal(false);
|
|
47
|
+
this.valueSubscription = null;
|
|
48
|
+
/**
|
|
49
|
+
* This function tries to guess the type of value to be handled
|
|
50
|
+
*/
|
|
51
|
+
this.typeOf = computed(() => {
|
|
52
|
+
this.recalculate(); // In case recompute is forced
|
|
53
|
+
if (this.context().valueType == null) {
|
|
54
|
+
// The type has not been set, so let's see if we can guess it from the value
|
|
55
|
+
const val = this.context().value(); // We don't use this.getValue(), as it returns a cached value
|
|
56
|
+
if (val == null) { // We really can't know the type
|
|
57
|
+
if (this.valueSubscription == null) {
|
|
58
|
+
// Let's make sure a change of the value is taken into account
|
|
59
|
+
runInInjectionContext(this.injector, () => {
|
|
60
|
+
this.valueSubscription = this.formControl().valueChanges.subscribe({
|
|
61
|
+
next: () => {
|
|
62
|
+
this.recalculate.update((val) => !val);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
return val;
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
const ret = typeof val;
|
|
71
|
+
if (ret != 'object') {
|
|
72
|
+
this.context().valueType = typeof val;
|
|
73
|
+
return ret;
|
|
74
|
+
}
|
|
75
|
+
else if (val instanceof Date) {
|
|
76
|
+
this.context().valueType = 'date';
|
|
77
|
+
return 'date';
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
throw new Error('Primitive Component used to display a non primitive type ' + ret);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
return this.context().valueType;
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
ngOnDestroy() {
|
|
90
|
+
if (this.valueSubscription != null) {
|
|
91
|
+
this.valueSubscription.unsubscribe();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: DefaultPrimitiveComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
95
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.4", type: DefaultPrimitiveComponent, isStandalone: true, selector: "xt-default-primitive", usesInheritance: true, ngImport: i0, template: "@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", styles: [""], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "component", type: Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["value", "name", "disabled", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "inputStyle", "styleClass", "inputClass", "indeterminate", "size", "formControl", "checkboxIcon", "readonly", "required", "autofocus", "trueValue", "falseValue", "variant"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "component", type: InputNumber, selector: "p-inputNumber, p-inputnumber, p-input-number", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabelledBy", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "variant", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "showClear", "autofocus", "disabled", "fluid"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown", "onClear"] }, { kind: "component", type: DatePicker, selector: "p-datePicker, p-datepicker, p-date-picker", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "fluid", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "size", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
96
|
+
}
|
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: DefaultPrimitiveComponent, decorators: [{
|
|
98
|
+
type: Component,
|
|
99
|
+
args: [{ selector: 'xt-default-primitive', imports: [
|
|
100
|
+
ReactiveFormsModule,
|
|
101
|
+
InputText,
|
|
102
|
+
Checkbox,
|
|
103
|
+
InputNumber,
|
|
104
|
+
DatePicker
|
|
105
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "@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" }]
|
|
106
|
+
}] });
|
|
107
|
+
|
|
108
|
+
class DefaultObjectSetComponent extends XtCompositeComponent {
|
|
109
|
+
constructor() {
|
|
110
|
+
super(...arguments);
|
|
111
|
+
this.resolver = inject(XtResolverService);
|
|
112
|
+
this.hasOutputs = true;
|
|
113
|
+
this.debugValue = false;
|
|
114
|
+
this.debugSelectedElement = computed(() => {
|
|
115
|
+
console.debug("Selected element", this.selectedElement());
|
|
116
|
+
this.debugValue = !this.debugValue;
|
|
117
|
+
return this.debugValue;
|
|
118
|
+
});
|
|
119
|
+
this.valueSet = computed(() => {
|
|
120
|
+
const ret = this.context().value();
|
|
121
|
+
if (Array.isArray(ret)) {
|
|
122
|
+
return ret;
|
|
123
|
+
}
|
|
124
|
+
else if (ret != null) {
|
|
125
|
+
return [ret];
|
|
126
|
+
}
|
|
127
|
+
else
|
|
128
|
+
return [];
|
|
129
|
+
});
|
|
130
|
+
this.selectedElement = linkedSignal({
|
|
131
|
+
source: this.valueSet,
|
|
132
|
+
computation: (source, previous) => {
|
|
133
|
+
if ((source != null) && (previous?.value != null)) {
|
|
134
|
+
// Detect if a new element has just been added, then selects it.
|
|
135
|
+
if ((previous.source != null) && (previous.source.length == source.length + 1)) {
|
|
136
|
+
for (const newElem of source.reverse()) {
|
|
137
|
+
const findIt = previous.source.find((toCheck) => {
|
|
138
|
+
return toCheck._id == newElem._id;
|
|
139
|
+
});
|
|
140
|
+
if (findIt == null) {
|
|
141
|
+
return newElem;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
// Otherwise reselect the element if still there
|
|
147
|
+
return source.find((toCheck) => {
|
|
148
|
+
return toCheck._id == previous.value._id;
|
|
149
|
+
}) ?? null;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
this.subNames = computed(() => {
|
|
156
|
+
const ret = this.resolver.listSubNamesOf(this.context(), this.valueSet());
|
|
157
|
+
return ret;
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
elementSetContext(elementIndex) {
|
|
161
|
+
this.formGroupIfAny();
|
|
162
|
+
return this.context().elementSetContext(elementIndex);
|
|
163
|
+
}
|
|
164
|
+
subElementContextForName(subElementContext, subName, subType) {
|
|
165
|
+
return subElementContext.subContext(subName, subType, this.resolverService?.typeResolver);
|
|
166
|
+
}
|
|
167
|
+
selectionChange(newElement) {
|
|
168
|
+
this.selectedElement.set(newElement);
|
|
169
|
+
this.emitOutput('valueSelected', newElement);
|
|
170
|
+
}
|
|
171
|
+
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 }); }
|
|
173
|
+
}
|
|
174
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: DefaultObjectSetComponent, decorators: [{
|
|
175
|
+
type: Component,
|
|
176
|
+
args: [{ selector: 'lib-default-object-set', imports: [XtRenderSubComponent, TableModule], changeDetection: ChangeDetectionStrategy.OnPush, 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" }]
|
|
177
|
+
}] });
|
|
178
|
+
|
|
179
|
+
function registerDefaultPlugin(resolverService) {
|
|
180
|
+
console.info('Registering Plugin Default');
|
|
181
|
+
resolverService.registerPlugin({
|
|
182
|
+
name: 'PluginDefault',
|
|
183
|
+
components: [
|
|
184
|
+
{
|
|
185
|
+
componentName: 'DefaultPrimitive',
|
|
186
|
+
componentClass: DefaultPrimitiveComponent,
|
|
187
|
+
typesHandled: [XtPluginRegistry.ANY_PRIMITIVE_TYPE, 'string', 'number', 'boolean', 'date'],
|
|
188
|
+
}, {
|
|
189
|
+
componentName: 'DefaultObject',
|
|
190
|
+
componentClass: DefaultObjectComponent,
|
|
191
|
+
typesHandled: [XtPluginRegistry.ANY_OBJECT_TYPE]
|
|
192
|
+
}, {
|
|
193
|
+
componentName: 'DefaultObjectSet',
|
|
194
|
+
componentClass: DefaultObjectSetComponent,
|
|
195
|
+
typesHandled: [XtPluginRegistry.ANY_OBJECT_SET],
|
|
196
|
+
outputs: ['valueSelected']
|
|
197
|
+
}
|
|
198
|
+
]
|
|
199
|
+
});
|
|
200
|
+
return true;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
/*
|
|
204
|
+
* Public API Surface of default
|
|
205
|
+
*/
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Generated bundle index. Do not edit.
|
|
209
|
+
*/
|
|
210
|
+
|
|
211
|
+
export { DefaultObjectComponent, DefaultObjectSetComponent, DefaultPrimitiveComponent, registerDefaultPlugin };
|
|
212
|
+
//# sourceMappingURL=xt-plugin-default.mjs.map
|
|
@@ -0,0 +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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"}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { XtCompositeComponent, XtContext, XtResolverService } from 'xt-components';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class DefaultObjectComponent extends XtCompositeComponent {
|
|
4
|
+
resolver: XtResolverService;
|
|
5
|
+
subNames(): string[];
|
|
6
|
+
subContext(subName: string): XtContext<any>;
|
|
7
|
+
displayInline: import("@angular/core").Signal<boolean>;
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DefaultObjectComponent, never>;
|
|
9
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DefaultObjectComponent, "xt-default-object", never, {}, {}, never, never, true, never>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Signal } from '@angular/core';
|
|
2
|
+
import { XtCompositeComponent, XtContext, XtResolverService } from 'xt-components';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class DefaultObjectSetComponent<T> extends XtCompositeComponent<T[]> {
|
|
5
|
+
resolver: XtResolverService;
|
|
6
|
+
hasOutputs: boolean;
|
|
7
|
+
debugValue: boolean;
|
|
8
|
+
debugSelectedElement: Signal<boolean>;
|
|
9
|
+
valueSet: Signal<T[]>;
|
|
10
|
+
selectedElement: import("@angular/core").WritableSignal<T | null>;
|
|
11
|
+
subNames: Signal<string[]>;
|
|
12
|
+
elementSetContext(elementIndex: number): XtContext<any>;
|
|
13
|
+
subElementContextForName(subElementContext: XtContext<any>, subName: string, subType?: string): XtContext<any>;
|
|
14
|
+
selectionChange(newElement: any): void;
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DefaultObjectSetComponent<any>, never>;
|
|
16
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DefaultObjectSetComponent<any>, "lib-default-object-set", never, {}, {}, never, never, true, never>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Injector, OnDestroy } from '@angular/core';
|
|
2
|
+
import { XtSimpleComponent } from 'xt-components';
|
|
3
|
+
import { Subscription } from 'rxjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
/**
|
|
6
|
+
* Displays / edits primitive types (string, numeric) using text inputs to ensure at least something is managed.
|
|
7
|
+
*/
|
|
8
|
+
export declare class DefaultPrimitiveComponent extends XtSimpleComponent implements OnDestroy {
|
|
9
|
+
injector: Injector;
|
|
10
|
+
recalculate: import("@angular/core").WritableSignal<boolean>;
|
|
11
|
+
valueSubscription: Subscription | null;
|
|
12
|
+
/**
|
|
13
|
+
* This function tries to guess the type of value to be handled
|
|
14
|
+
*/
|
|
15
|
+
typeOf: import("@angular/core").Signal<any>;
|
|
16
|
+
ngOnDestroy(): void;
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DefaultPrimitiveComponent, never>;
|
|
18
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DefaultPrimitiveComponent, "xt-default-primitive", never, {}, {}, never, never, true, never>;
|
|
19
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "xt-plugin-default",
|
|
3
|
+
"version": "0.4.0",
|
|
4
|
+
"peerDependencies": {
|
|
5
|
+
"@angular/common": "^19.0.5",
|
|
6
|
+
"@angular/core": "^19.0.5"
|
|
7
|
+
},
|
|
8
|
+
"dependencies": {
|
|
9
|
+
"tslib": "^2.3.0"
|
|
10
|
+
},
|
|
11
|
+
"sideEffects": false,
|
|
12
|
+
"module": "fesm2022/xt-plugin-default.mjs",
|
|
13
|
+
"typings": "index.d.ts",
|
|
14
|
+
"exports": {
|
|
15
|
+
"./package.json": {
|
|
16
|
+
"default": "./package.json"
|
|
17
|
+
},
|
|
18
|
+
".": {
|
|
19
|
+
"types": "./index.d.ts",
|
|
20
|
+
"default": "./fesm2022/xt-plugin-default.mjs"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
package/public-api.d.ts
ADDED