@acorex/platform 18.1.2 → 18.1.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.
Files changed (61) hide show
  1. package/esm2022/layout/builder/lib/builder/widget-catalog.mjs +2 -1
  2. package/esm2022/layout/builder/lib/builder/widget.types.mjs +5 -2
  3. package/esm2022/layout/designer/lib/designer/index.mjs +5 -4
  4. package/esm2022/layout/entity/lib/entity.module.mjs +4 -3
  5. package/esm2022/layout/entity/lib/widgets/widget-selector/index.mjs +4 -0
  6. package/esm2022/layout/entity/lib/widgets/widget-selector/widget-selector-widget-edit.component.mjs +130 -0
  7. package/esm2022/layout/entity/lib/widgets/widget-selector/widget-selector-widget-view.component.mjs +18 -0
  8. package/esm2022/layout/entity/lib/widgets/widget-selector/widget-selector-widget.config.mjs +19 -0
  9. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.mjs +2 -2
  10. package/esm2022/themes/default/lib/layouts/entity-layouts/index.mjs +1 -2
  11. package/esm2022/themes/shared/acorex-platform-themes-shared.mjs +5 -0
  12. package/esm2022/themes/shared/index.mjs +6 -0
  13. package/esm2022/themes/shared/lib/comments/comment-list-view.component.mjs +397 -0
  14. package/esm2022/themes/{default/lib/layouts/entity-layouts/entity-master-single-view → shared/lib}/comments/comment-lookup-popup.component.mjs +1 -1
  15. package/esm2022/themes/shared/lib/comments/comments.service.mjs +3 -0
  16. package/esm2022/themes/shared/lib/comments/comments.type.mjs +2 -0
  17. package/esm2022/themes/shared/lib/shared.module.mjs +16 -0
  18. package/esm2022/widgets/lib/widgets/editors/contact/contact-widget-edit.component.mjs +24 -8
  19. package/fesm2022/acorex-platform-layout-builder.mjs +5 -1
  20. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-layout-designer.mjs +190 -100
  22. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  23. package/fesm2022/acorex-platform-layout-entity.mjs +157 -5
  24. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  25. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-LyEomIA6.mjs → acorex-platform-themes-default-entity-master-create-view.component-Q8eTfAVx.mjs} +3 -3
  26. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-LyEomIA6.mjs.map → acorex-platform-themes-default-entity-master-create-view.component-Q8eTfAVx.mjs.map} +1 -1
  27. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-CKRwvJTp.mjs → acorex-platform-themes-default-entity-master-list-view.component-fZ6QEYcd.mjs} +8 -8
  28. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-CKRwvJTp.mjs.map → acorex-platform-themes-default-entity-master-list-view.component-fZ6QEYcd.mjs.map} +1 -1
  29. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-CMRfspMB.mjs → acorex-platform-themes-default-entity-master-modify-view.component-BijYXMme.mjs} +3 -3
  30. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-CMRfspMB.mjs.map → acorex-platform-themes-default-entity-master-modify-view.component-BijYXMme.mjs.map} +1 -1
  31. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Bnrabotu.mjs +145 -0
  32. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Bnrabotu.mjs.map +1 -0
  33. package/fesm2022/acorex-platform-themes-default.mjs +11 -14
  34. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  35. package/fesm2022/acorex-platform-themes-shared.mjs +469 -0
  36. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -0
  37. package/fesm2022/acorex-platform-widgets.mjs +23 -7
  38. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  39. package/layout/builder/lib/builder/widget.types.d.ts +1 -0
  40. package/layout/designer/lib/designer/index.d.ts +4 -3
  41. package/layout/entity/lib/widgets/widget-selector/index.d.ts +3 -0
  42. package/layout/entity/lib/widgets/widget-selector/widget-selector-widget-edit.component.d.ts +25 -0
  43. package/layout/entity/lib/widgets/widget-selector/widget-selector-widget-view.component.d.ts +6 -0
  44. package/layout/entity/lib/widgets/widget-selector/widget-selector-widget.config.d.ts +7 -0
  45. package/package.json +23 -17
  46. package/themes/default/lib/layouts/entity-layouts/index.d.ts +0 -1
  47. package/themes/shared/README.md +4 -0
  48. package/themes/shared/index.d.ts +5 -0
  49. package/themes/{default/lib/layouts/entity-layouts/entity-master-single-view → shared/lib}/comments/comment-list-view.component.d.ts +21 -16
  50. package/themes/shared/lib/shared.module.d.ts +6 -0
  51. package/widgets/lib/widgets/editors/contact/contact-widget-edit.component.d.ts +3 -1
  52. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/comments/comment-list-view.component.mjs +0 -284
  53. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/comments/comments.service.mjs +0 -3
  54. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/comments/comments.type.mjs +0 -2
  55. package/fesm2022/acorex-platform-layout-designer-widget-picker.component-BZryrCyh.mjs +0 -100
  56. package/fesm2022/acorex-platform-layout-designer-widget-picker.component-BZryrCyh.mjs.map +0 -1
  57. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DhcKSyrX.mjs +0 -457
  58. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DhcKSyrX.mjs.map +0 -1
  59. /package/themes/{default/lib/layouts/entity-layouts/entity-master-single-view → shared/lib}/comments/comment-lookup-popup.component.d.ts +0 -0
  60. /package/themes/{default/lib/layouts/entity-layouts/entity-master-single-view → shared/lib}/comments/comments.service.d.ts +0 -0
  61. /package/themes/{default/lib/layouts/entity-layouts/entity-master-single-view → shared/lib}/comments/comments.type.d.ts +0 -0
@@ -1,5 +1,5 @@
1
1
  import { AXFormatService } from '@acorex/core/format';
2
- import { cloneDeep, set, merge, get } from 'lodash-es';
2
+ import { cloneDeep, set, merge, get, sortBy } from 'lodash-es';
3
3
  import * as i0 from '@angular/core';
4
4
  import { InjectionToken, inject, Injectable, computed, signal, Injector, Component, ChangeDetectionStrategy, DestroyRef, ViewChild, NgModule } from '@angular/core';
5
5
  import * as i1$3 from '@acorex/platform/workflow';
@@ -16,7 +16,7 @@ import { Subject, takeUntil } from 'rxjs';
16
16
  import * as i8 from '@acorex/core/translation';
17
17
  import { AXTranslationService, AXTranslationModule } from '@acorex/core/translation';
18
18
  import * as i7 from '@acorex/platform/layout/builder';
19
- import { AXPWidgetComponent, AXPLayoutBuilderModule, AXPLayoutBuilderService, AXPColumnWidgetComponent, AXP_WIDGETS_EDITOR_GROUP, AXPWidgetsCatalog } from '@acorex/platform/layout/builder';
19
+ import { AXPWidgetComponent, AXPLayoutBuilderModule, AXPLayoutBuilderService, AXPColumnWidgetComponent, AXP_WIDGETS_EDITOR_GROUP, AXPWidgetsCatalog, AXPWidgetRegistryService } from '@acorex/platform/layout/builder';
20
20
  import { RouterModule, ROUTES } from '@angular/router';
21
21
  import * as i1 from '@acorex/components/loading';
22
22
  import { AXLoadingModule } from '@acorex/components/loading';
@@ -41,7 +41,8 @@ import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
41
41
  import { AXBasePageComponent } from '@acorex/components/page';
42
42
  import * as i6 from '@acorex/components/search-box';
43
43
  import { AXSearchBoxModule } from '@acorex/components/search-box';
44
- import { AXP_DISABLED_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DATA_PROPERTY_GROUP } from '@acorex/platform/widgets';
44
+ import { AXP_DISABLED_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DATA_PROPERTY_GROUP, AXP_NAME_PROPERTY } from '@acorex/platform/widgets';
45
+ import { AXPWidgetPropertyViewerComponent } from '@acorex/platform/layout/designer';
45
46
 
46
47
  const AXP_ENTITY_CONFIG_TOKEN = new InjectionToken('AXP_ENTITY_CONFIG_TOKEN');
47
48
  const AXP_ENTITY_DEFINITION_LOADER = new InjectionToken('AXP_ENTITY_DEFINITION_LOADER');
@@ -1918,6 +1919,157 @@ const AXPLookupWidget = {
1918
1919
  },
1919
1920
  };
1920
1921
 
1922
+ class AXPWidgetSelectorWidgetEditComponent extends AXPWidgetComponent {
1923
+ constructor() {
1924
+ super(...arguments);
1925
+ this.popupService = inject(AXPopupService);
1926
+ this.widgetRegisteryService = inject(AXPWidgetRegistryService);
1927
+ this.searchTerm = signal(null);
1928
+ this.isOpen = signal(false);
1929
+ this.textField = signal('');
1930
+ this.displayText = computed(() => this.getValue()?.title || '');
1931
+ this.selectedWidgetNode = signal(null);
1932
+ this.selectedItem = signal(null);
1933
+ this.placeholder = computed(() => this.options()['placeholder'] ?? '');
1934
+ this.loading = computed(() => this.options()['loading'] ?? false);
1935
+ this.validationRules = computed(() => this.options()['validationRules']);
1936
+ }
1937
+ ngAfterViewInit() {
1938
+ if (this.getValue()) {
1939
+ this.selectedWidgetNode.set(this.getValue());
1940
+ }
1941
+ }
1942
+ async showSelector() {
1943
+ const com = await import('@acorex/platform/layout/designer').then((c) => c.AXPDesignerWidgetPickerComponent);
1944
+ const result = await this.popupService.open(com, {
1945
+ title: 'Widget Gallery',
1946
+ size: 'md',
1947
+ closeButton: true,
1948
+ data: {
1949
+ widgets: sortBy(this.widgetRegisteryService.all().filter((c) => c.visible != false), (c) => c.title),
1950
+ },
1951
+ });
1952
+ if ((result.data?.widgets ?? []).length) {
1953
+ const selected = result.data?.widgets;
1954
+ const selectedNode = this.convertWidgetConfigToNode(selected[0]);
1955
+ this.selectedWidgetNode.set(selectedNode);
1956
+ }
1957
+ }
1958
+ convertWidgetConfigToNode(config) {
1959
+ return {
1960
+ type: config.name,
1961
+ };
1962
+ }
1963
+ handleChangeWidget(e) {
1964
+ const widget = this.widgetRegisteryService.resolve(e.values.type);
1965
+ this.setValue({ title: widget?.title, ...e.values });
1966
+ }
1967
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPWidgetSelectorWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1968
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPWidgetSelectorWidgetEditComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "textbox", first: true, predicate: AXTextBoxComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: `
1969
+ <ax-text-box [ngModel]="displayText()" [placeholder]="placeholder()" [readonly]="true">
1970
+ @for (validation of validationRules(); track $index) {
1971
+ <ax-validation-rule
1972
+ [rule]="validation.rule"
1973
+ [message]="validation.options?.message"
1974
+ [options]="validation.options"
1975
+ ></ax-validation-rule>
1976
+ }
1977
+ <ax-suffix>
1978
+ <ax-button color="ghost" look="twotone" (onClick)="showSelector()">
1979
+ <ax-icon icon="far fa-search"> </ax-icon>
1980
+ </ax-button>
1981
+ </ax-suffix>
1982
+ </ax-text-box>
1983
+ @if(selectedWidgetNode()){
1984
+ <axp-widget-property-viewer [widget]="selectedWidgetNode()!" (onChanged)="handleChangeWidget($event)">
1985
+ </axp-widget-property-viewer>
1986
+ }
1987
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXSelectBoxModule }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i2$1.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i6$1.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message"] }, { kind: "component", type: AXPWidgetPropertyViewerComponent, selector: "axp-widget-property-viewer", inputs: ["widget"], outputs: ["onChanged"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1988
+ }
1989
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPWidgetSelectorWidgetEditComponent, decorators: [{
1990
+ type: Component,
1991
+ args: [{
1992
+ template: `
1993
+ <ax-text-box [ngModel]="displayText()" [placeholder]="placeholder()" [readonly]="true">
1994
+ @for (validation of validationRules(); track $index) {
1995
+ <ax-validation-rule
1996
+ [rule]="validation.rule"
1997
+ [message]="validation.options?.message"
1998
+ [options]="validation.options"
1999
+ ></ax-validation-rule>
2000
+ }
2001
+ <ax-suffix>
2002
+ <ax-button color="ghost" look="twotone" (onClick)="showSelector()">
2003
+ <ax-icon icon="far fa-search"> </ax-icon>
2004
+ </ax-button>
2005
+ </ax-suffix>
2006
+ </ax-text-box>
2007
+ @if(selectedWidgetNode()){
2008
+ <axp-widget-property-viewer [widget]="selectedWidgetNode()!" (onChanged)="handleChangeWidget($event)">
2009
+ </axp-widget-property-viewer>
2010
+ }
2011
+ `,
2012
+ standalone: true,
2013
+ changeDetection: ChangeDetectionStrategy.OnPush,
2014
+ imports: [
2015
+ CommonModule,
2016
+ FormsModule,
2017
+ AXSelectBoxModule,
2018
+ AXTextBoxModule,
2019
+ AXButtonModule,
2020
+ AXDecoratorModule,
2021
+ AXLoadingModule,
2022
+ AXValidationModule,
2023
+ AXFormModule,
2024
+ AXPWidgetPropertyViewerComponent,
2025
+ ],
2026
+ }]
2027
+ }], propDecorators: { textbox: [{
2028
+ type: ViewChild,
2029
+ args: [AXTextBoxComponent]
2030
+ }] } });
2031
+
2032
+ var widgetSelectorWidgetEdit_component = /*#__PURE__*/Object.freeze({
2033
+ __proto__: null,
2034
+ AXPWidgetSelectorWidgetEditComponent: AXPWidgetSelectorWidgetEditComponent
2035
+ });
2036
+
2037
+ class AXPWidgetSelectorWidgetViewComponent extends AXPWidgetComponent {
2038
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPWidgetSelectorWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2039
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPWidgetSelectorWidgetViewComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `{{ getValue()?.title }}`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2040
+ }
2041
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPWidgetSelectorWidgetViewComponent, decorators: [{
2042
+ type: Component,
2043
+ args: [{
2044
+ template: `{{ getValue()?.title }}`,
2045
+ standalone: true,
2046
+ changeDetection: ChangeDetectionStrategy.OnPush,
2047
+ imports: [CommonModule],
2048
+ }]
2049
+ }] });
2050
+
2051
+ var widgetSelectorWidgetView_component = /*#__PURE__*/Object.freeze({
2052
+ __proto__: null,
2053
+ AXPWidgetSelectorWidgetViewComponent: AXPWidgetSelectorWidgetViewComponent
2054
+ });
2055
+
2056
+ const AXPWidgetSelectorWidget = {
2057
+ name: 'widget-selector',
2058
+ title: 'Widget Selector',
2059
+ group: AXP_WIDGETS_EDITOR_GROUP,
2060
+ type: 'editor',
2061
+ icon: 'fa-solid fa-square',
2062
+ properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],
2063
+ components: {
2064
+ view: {
2065
+ component: () => Promise.resolve().then(function () { return widgetSelectorWidgetView_component; }).then((c) => c.AXPWidgetSelectorWidgetViewComponent),
2066
+ },
2067
+ edit: {
2068
+ component: () => Promise.resolve().then(function () { return widgetSelectorWidgetEdit_component; }).then((c) => c.AXPWidgetSelectorWidgetEditComponent),
2069
+ },
2070
+ },
2071
+ };
2072
+
1921
2073
  const AXPEntityCreateEvent = createWorkFlowEvent('[Entity] Created!');
1922
2074
  class AXPEntityCreatePopupAction extends AXPWorkflowAction {
1923
2075
  constructor() {
@@ -2143,7 +2295,7 @@ class AXPEntityModule {
2143
2295
  },
2144
2296
  }),
2145
2297
  AXPLayoutBuilderModule.forChild({
2146
- widgets: [AXPLookupWidget],
2298
+ widgets: [AXPLookupWidget, AXPWidgetSelectorWidget],
2147
2299
  })] }); }
2148
2300
  }
2149
2301
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPEntityModule, decorators: [{
@@ -2171,7 +2323,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
2171
2323
  },
2172
2324
  }),
2173
2325
  AXPLayoutBuilderModule.forChild({
2174
- widgets: [AXPLookupWidget],
2326
+ widgets: [AXPLookupWidget, AXPWidgetSelectorWidget],
2175
2327
  }),
2176
2328
  ],
2177
2329
  exports: [],