@acorex/platform 18.0.15 → 18.0.16

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 (176) hide show
  1. package/core/index.d.ts +1 -0
  2. package/core/utils/data-conditioner.d.ts +6 -0
  3. package/esm2022/common/lib/schema/widget/widget-renderer.mjs +3 -3
  4. package/esm2022/core/index.mjs +2 -1
  5. package/esm2022/core/utils/data-conditioner.mjs +138 -0
  6. package/esm2022/layout/builder/lib/builder/widget-registery.service.mjs +2 -2
  7. package/esm2022/layout/builder/lib/builder/widget-renderer.component.mjs +3 -3
  8. package/esm2022/layout/builder/lib/builder/widget.types.mjs +10 -8
  9. package/esm2022/layout/designer/index.mjs +2 -7
  10. package/esm2022/layout/designer/lib/{helpers → designer/components}/add-widget-button/add-widget-button.component.mjs +2 -2
  11. package/esm2022/layout/designer/lib/designer/components/board/board.component.mjs +112 -0
  12. package/esm2022/layout/designer/lib/designer/components/breadcrumbs/breadcrumbs.component.mjs +64 -0
  13. package/esm2022/layout/designer/lib/designer/components/drawers/data-sources/data-sources.component.mjs +32 -0
  14. package/esm2022/layout/designer/lib/designer/components/drawers/history/history.component.mjs +30 -0
  15. package/esm2022/layout/designer/lib/designer/components/drawers/outline/outline.component.mjs +61 -0
  16. package/esm2022/layout/designer/lib/designer/components/drawers/pages/pages.component.mjs +28 -0
  17. package/esm2022/layout/designer/lib/designer/components/grid-drawer/grid-drawer.component.mjs +82 -0
  18. package/esm2022/layout/designer/lib/designer/components/header-menu/header-menu.component.mjs +24 -0
  19. package/esm2022/layout/designer/lib/{widget-picker → designer/components/widget-picker}/widget-picker.component.mjs +1 -1
  20. package/esm2022/layout/designer/lib/designer/designer.component.mjs +28 -17
  21. package/esm2022/layout/designer/lib/designer/index.mjs +8 -0
  22. package/esm2022/layout/designer/lib/designer/shared/command.mjs +185 -0
  23. package/esm2022/layout/designer/lib/designer/shared/designer-connector.service.mjs +10 -0
  24. package/esm2022/layout/designer/lib/designer/shared/designer.service.mjs +488 -0
  25. package/esm2022/layout/designer/lib/designer/shared/designer.typs.mjs +2 -0
  26. package/esm2022/layout/designer/lib/designer/shared/drawer-content/drawer-content.component.mjs +16 -0
  27. package/esm2022/layout/designer/lib/designer/shared/widget-designer-renderer.directive.mjs +224 -0
  28. package/esm2022/layout/designer/lib/property-viewer/widget-property-viewer.component.mjs +17 -5
  29. package/esm2022/layout/entity/lib/entity-master-create.viewmodel.mjs +2 -5
  30. package/esm2022/layout/entity/lib/entity-registery.service.mjs +3 -3
  31. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget.config.mjs +2 -1
  32. package/esm2022/themes/default/index.mjs +3 -2
  33. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.mjs +14 -18
  34. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/comments/comment-list-view.component.mjs +123 -0
  35. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/comments/comments.service.mjs +3 -0
  36. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.mjs +22 -23
  37. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/overview/entity-single-overview.component.mjs +68 -0
  38. package/esm2022/themes/default/lib/layouts/entity-layouts/index.mjs +2 -0
  39. package/esm2022/widgets/lib/properties/data-source.props.mjs +21 -0
  40. package/esm2022/widgets/lib/properties/editors.props.mjs +17 -3
  41. package/esm2022/widgets/lib/properties/general.props.mjs +31 -3
  42. package/esm2022/widgets/lib/properties/index.mjs +2 -1
  43. package/esm2022/widgets/lib/properties/table-column.props.mjs +2 -2
  44. package/esm2022/widgets/lib/widgets/actions/button/button-widget.config.mjs +2 -1
  45. package/esm2022/widgets/lib/widgets/advance/file/file-box-widget.config.mjs +2 -1
  46. package/esm2022/widgets/lib/widgets/advance/gallery/gallery-widget.config.mjs +2 -1
  47. package/esm2022/widgets/lib/widgets/advance/map/index.mjs +1 -4
  48. package/esm2022/widgets/lib/widgets/advance/map/map-box-widget-edit.component.mjs +47 -159
  49. package/esm2022/widgets/lib/widgets/advance/map/map-box-widget-view.component.mjs +40 -53
  50. package/esm2022/widgets/lib/widgets/advance/map/map-box-widget.config.mjs +95 -11
  51. package/esm2022/widgets/lib/widgets/advance/qrcode/qrcode-widget-view.component.mjs +11 -11
  52. package/esm2022/widgets/lib/widgets/advance/qrcode/qrcode-widget.config.mjs +8 -7
  53. package/esm2022/widgets/lib/widgets/advance/signature/signature-pad-widget.config.mjs +4 -6
  54. package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget.config.mjs +2 -2
  55. package/esm2022/widgets/lib/widgets/editors/color/color-box-widget.config.mjs +2 -1
  56. package/esm2022/widgets/lib/widgets/editors/contact/contact-widget.config.mjs +2 -1
  57. package/esm2022/widgets/lib/widgets/editors/date-time/date-time-box-widget.config.mjs +2 -1
  58. package/esm2022/widgets/lib/widgets/editors/email/email-box-widget.config.mjs +2 -1
  59. package/esm2022/widgets/lib/widgets/editors/large-text/large-text-widget.config.mjs +2 -1
  60. package/esm2022/widgets/lib/widgets/editors/link/link-widget.config.mjs +2 -1
  61. package/esm2022/widgets/lib/widgets/editors/number/number-box-widget-edit.component.mjs +2 -2
  62. package/esm2022/widgets/lib/widgets/editors/number/number-box-widget.config.mjs +2 -1
  63. package/esm2022/widgets/lib/widgets/editors/password/password-box-widget.config.mjs +2 -1
  64. package/esm2022/widgets/lib/widgets/editors/phone/phone-box-widget.config.mjs +2 -1
  65. package/esm2022/widgets/lib/widgets/editors/rich-text/rich-text-widget.config.mjs +2 -1
  66. package/esm2022/widgets/lib/widgets/editors/select/select-box-widget-edit.component.mjs +14 -2
  67. package/esm2022/widgets/lib/widgets/editors/select/select-box-widget.config.mjs +2 -1
  68. package/esm2022/widgets/lib/widgets/editors/selection-list/index.mjs +2 -1
  69. package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-designer.component.mjs +75 -0
  70. package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-edit.component.mjs +13 -10
  71. package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-view.component.mjs +2 -3
  72. package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget.config.mjs +16 -3
  73. package/esm2022/widgets/lib/widgets/editors/text/text-box-widget.config.mjs +2 -1
  74. package/esm2022/widgets/lib/widgets/editors/toggle/toggle-widget.config.mjs +2 -1
  75. package/esm2022/widgets/lib/widgets/layout/block/block-widget.config.mjs +2 -2
  76. package/esm2022/widgets/lib/widgets/layout/document/document-widget.config.mjs +2 -2
  77. package/esm2022/widgets/lib/widgets/layout/form-field/form-field-widget.config.mjs +2 -2
  78. package/esm2022/widgets/lib/widgets/layout/grid/grid-widget.config.mjs +2 -2
  79. package/esm2022/widgets/lib/widgets/layout/grid-item/grid-item-widget.config.mjs +2 -2
  80. package/esm2022/widgets/lib/widgets/layout/grid-row/grid-row-widget.config.mjs +2 -2
  81. package/esm2022/widgets/lib/widgets/layout/page/page-widget.config.mjs +7 -3
  82. package/esm2022/widgets/lib/widgets/layout/repeater/repeater-widget.config.mjs +2 -2
  83. package/esm2022/widgets/lib/widgets/layout/text-block/text-block-widget.config.mjs +2 -1
  84. package/fesm2022/acorex-platform-common.mjs +1 -1
  85. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  86. package/fesm2022/acorex-platform-core.mjs +139 -1
  87. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  88. package/fesm2022/acorex-platform-layout-builder.mjs +12 -10
  89. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  90. package/fesm2022/{acorex-platform-layout-designer-preview.component-9dJh_ulU.mjs → acorex-platform-layout-designer-preview.component-CaRHf4x_.mjs} +3 -3
  91. package/fesm2022/{acorex-platform-layout-designer-preview.component-9dJh_ulU.mjs.map → acorex-platform-layout-designer-preview.component-CaRHf4x_.mjs.map} +1 -1
  92. package/fesm2022/{acorex-platform-layout-designer-widget-picker.component-DXgcm-fP.mjs → acorex-platform-layout-designer-widget-picker.component-BZryrCyh.mjs} +4 -4
  93. package/fesm2022/acorex-platform-layout-designer-widget-picker.component-BZryrCyh.mjs.map +1 -0
  94. package/fesm2022/acorex-platform-layout-designer.mjs +438 -282
  95. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  96. package/fesm2022/acorex-platform-layout-entity.mjs +2 -4
  97. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  98. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-BGT0puX_.mjs → acorex-platform-themes-default-entity-master-create-view.component-Q8eTfAVx.mjs} +7 -7
  99. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-BGT0puX_.mjs.map → acorex-platform-themes-default-entity-master-create-view.component-Q8eTfAVx.mjs.map} +1 -1
  100. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-BHo31YVi.mjs → acorex-platform-themes-default-entity-master-modify-view.component-BijYXMme.mjs} +7 -7
  101. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BijYXMme.mjs.map +1 -0
  102. package/fesm2022/{acorex-platform-themes-default-error-401.component-zyAGwz2j.mjs → acorex-platform-themes-default-error-401.component-D5QQ2HAv.mjs} +3 -3
  103. package/fesm2022/{acorex-platform-themes-default-error-401.component-zyAGwz2j.mjs.map → acorex-platform-themes-default-error-401.component-D5QQ2HAv.mjs.map} +1 -1
  104. package/fesm2022/{acorex-platform-themes-default-error-404.component-DcxQ89LL.mjs → acorex-platform-themes-default-error-404.component-DSY_D3Iq.mjs} +3 -3
  105. package/fesm2022/{acorex-platform-themes-default-error-404.component-DcxQ89LL.mjs.map → acorex-platform-themes-default-error-404.component-DSY_D3Iq.mjs.map} +1 -1
  106. package/fesm2022/{acorex-platform-themes-default-error-offline.component-BMB6D5Cx.mjs → acorex-platform-themes-default-error-offline.component-B6wSkMdd.mjs} +3 -3
  107. package/fesm2022/{acorex-platform-themes-default-error-offline.component-BMB6D5Cx.mjs.map → acorex-platform-themes-default-error-offline.component-B6wSkMdd.mjs.map} +1 -1
  108. package/fesm2022/acorex-platform-themes-default.mjs +222 -68
  109. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  110. package/fesm2022/{acorex-platform-widgets-checkbox-widget-designer.component-DfUr_DMU.mjs → acorex-platform-widgets-checkbox-widget-designer.component-DAGbdSTk.mjs} +4 -4
  111. package/fesm2022/{acorex-platform-widgets-checkbox-widget-designer.component-DfUr_DMU.mjs.map → acorex-platform-widgets-checkbox-widget-designer.component-DAGbdSTk.mjs.map} +1 -1
  112. package/fesm2022/{acorex-platform-widgets-color-box-widget-designer.component-BF24k3Y-.mjs → acorex-platform-widgets-color-box-widget-designer.component-Bb3aXCNZ.mjs} +4 -4
  113. package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-Bb3aXCNZ.mjs.map +1 -0
  114. package/fesm2022/acorex-platform-widgets.mjs +447 -376
  115. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  116. package/layout/builder/lib/builder/widget.types.d.ts +13 -4
  117. package/layout/designer/index.d.ts +1 -6
  118. package/layout/designer/lib/{board → designer/components/board}/board.component.d.ts +1 -1
  119. package/layout/designer/lib/{breadcrumbs → designer/components/breadcrumbs}/breadcrumbs.component.d.ts +1 -1
  120. package/layout/designer/lib/designer/components/drawers/data-sources/data-sources.component.d.ts +12 -0
  121. package/layout/designer/lib/{history → designer/components/drawers/history}/history.component.d.ts +1 -1
  122. package/layout/designer/lib/{outline → designer/components/drawers/outline}/outline.component.d.ts +1 -1
  123. package/layout/designer/lib/{pages → designer/components/drawers/pages}/pages.component.d.ts +1 -1
  124. package/layout/designer/lib/{header-menu → designer/components/header-menu}/header-menu.component.d.ts +1 -1
  125. package/layout/designer/lib/designer/designer.component.d.ts +1 -1
  126. package/layout/designer/lib/designer/index.d.ts +7 -0
  127. package/layout/designer/lib/designer/shared/designer-connector.service.d.ts +11 -0
  128. package/layout/designer/lib/{designer.service.d.ts → designer/shared/designer.service.d.ts} +9 -12
  129. package/layout/designer/lib/designer/shared/designer.typs.d.ts +4 -0
  130. package/layout/designer/lib/designer/shared/drawer-content/drawer-content.component.d.ts +8 -0
  131. package/layout/designer/lib/property-viewer/widget-property-viewer.component.d.ts +8 -0
  132. package/layout/entity/lib/entity-registery.service.d.ts +1 -1
  133. package/package.json +16 -16
  134. package/themes/default/index.d.ts +2 -1
  135. package/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.d.ts +5 -3
  136. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/comments/comment-list-view.component.d.ts +33 -0
  137. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/comments/comments.service.d.ts +11 -0
  138. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.d.ts +3 -2
  139. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/overview/entity-single-overview.component.d.ts +11 -0
  140. package/themes/default/lib/layouts/entity-layouts/index.d.ts +1 -0
  141. package/widgets/lib/properties/data-source.props.d.ts +2 -0
  142. package/widgets/lib/properties/editors.props.d.ts +1 -0
  143. package/widgets/lib/properties/general.props.d.ts +2 -1
  144. package/widgets/lib/properties/index.d.ts +1 -0
  145. package/widgets/lib/widgets/advance/map/index.d.ts +0 -3
  146. package/widgets/lib/widgets/advance/map/map-box-widget-edit.component.d.ts +9 -32
  147. package/widgets/lib/widgets/advance/map/map-box-widget-view.component.d.ts +6 -11
  148. package/widgets/lib/widgets/advance/qrcode/qrcode-widget-view.component.d.ts +4 -4
  149. package/widgets/lib/widgets/editors/selection-list/index.d.ts +1 -0
  150. package/widgets/lib/widgets/editors/selection-list/selection-list-widget-designer.component.d.ts +16 -0
  151. package/widgets/lib/widgets/editors/selection-list/selection-list-widget-edit.component.d.ts +3 -2
  152. package/widgets/lib/widgets/editors/selection-list/selection-list-widget-view.component.d.ts +1 -1
  153. package/esm2022/layout/designer/lib/board/board.component.mjs +0 -112
  154. package/esm2022/layout/designer/lib/breadcrumbs/breadcrumbs.component.mjs +0 -64
  155. package/esm2022/layout/designer/lib/command.mjs +0 -185
  156. package/esm2022/layout/designer/lib/designer.service.mjs +0 -399
  157. package/esm2022/layout/designer/lib/header-menu/header-menu.component.mjs +0 -24
  158. package/esm2022/layout/designer/lib/helpers/grid-drawer/grid-drawer.component.mjs +0 -82
  159. package/esm2022/layout/designer/lib/history/history.component.mjs +0 -28
  160. package/esm2022/layout/designer/lib/outline/outline.component.mjs +0 -56
  161. package/esm2022/layout/designer/lib/pages/pages.component.mjs +0 -28
  162. package/esm2022/layout/designer/lib/widget-designer-renderer.directive.mjs +0 -224
  163. package/esm2022/widgets/lib/widgets/advance/map/map-box-widget-column.component.mjs +0 -19
  164. package/esm2022/widgets/lib/widgets/advance/map/map-box-widget-filter.component.mjs +0 -20
  165. package/esm2022/widgets/lib/widgets/advance/map/map-box-widget-print.component.mjs +0 -19
  166. package/fesm2022/acorex-platform-layout-designer-widget-picker.component-DXgcm-fP.mjs.map +0 -1
  167. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BHo31YVi.mjs.map +0 -1
  168. package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-BF24k3Y-.mjs.map +0 -1
  169. package/widgets/lib/widgets/advance/map/map-box-widget-column.component.d.ts +0 -6
  170. package/widgets/lib/widgets/advance/map/map-box-widget-filter.component.d.ts +0 -6
  171. package/widgets/lib/widgets/advance/map/map-box-widget-print.component.d.ts +0 -6
  172. /package/layout/designer/lib/{helpers → designer/components}/add-widget-button/add-widget-button.component.d.ts +0 -0
  173. /package/layout/designer/lib/{helpers → designer/components}/grid-drawer/grid-drawer.component.d.ts +0 -0
  174. /package/layout/designer/lib/{widget-picker → designer/components/widget-picker}/widget-picker.component.d.ts +0 -0
  175. /package/layout/designer/lib/{command.d.ts → designer/shared/command.d.ts} +0 -0
  176. /package/layout/designer/lib/{widget-designer-renderer.directive.d.ts → designer/shared/widget-designer-renderer.directive.d.ts} +0 -0
@@ -0,0 +1,112 @@
1
+ import { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
2
+ import { CommonModule } from '@angular/common';
3
+ import { Component, inject, ViewEncapsulation, ChangeDetectionStrategy, computed, effect, ElementRef, HostBinding } from '@angular/core';
4
+ import { get } from 'lodash-es';
5
+ import { AXPWidgetDesignerRendererDirective } from '../../shared/widget-designer-renderer.directive';
6
+ import { AXPDesignerService } from '../../shared/designer.service';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@acorex/platform/layout/builder";
9
+ export class AXPDesignerBoardComponent {
10
+ constructor() {
11
+ this.context = {};
12
+ this.elementRef = inject((ElementRef));
13
+ this.breakpointMap = {
14
+ 'sm': 640,
15
+ 'md': 768,
16
+ 'lg': 1024,
17
+ 'xl': 1280,
18
+ 'xxl': 1536
19
+ };
20
+ this.service = inject(AXPDesignerService);
21
+ this.width = computed(() => {
22
+ switch (this.service.size()) {
23
+ case 'sm':
24
+ return '340px';
25
+ case 'md':
26
+ case 'lg':
27
+ return '768px';
28
+ default:
29
+ return '100%';
30
+ }
31
+ });
32
+ this.ef = effect(() => {
33
+ this.removeCustomClass();
34
+ if (this.service.size() != 'xl') {
35
+ this.applyResponsiveStyles(this.service.size());
36
+ }
37
+ });
38
+ }
39
+ // Unified method to extract media queries and create a custom class
40
+ applyResponsiveStyles(breakpoint) {
41
+ const minWidth = get(this.breakpointMap, breakpoint);
42
+ const mediaRules = [];
43
+ // Loop through all the stylesheets
44
+ for (let sheet of Array.from(document.styleSheets)) {
45
+ try {
46
+ // Loop through CSS rules
47
+ for (let rule of Array.from(sheet.cssRules)) {
48
+ // Check if the rule is a CSSMediaRule
49
+ if (rule instanceof CSSMediaRule && rule.media.mediaText.includes(`min-width: ${minWidth}px`)) {
50
+ // Loop through the media rule's CSS rules
51
+ for (let subRule of Array.from(rule.cssRules)) {
52
+ mediaRules.push(subRule.cssText);
53
+ }
54
+ }
55
+ }
56
+ }
57
+ catch (e) {
58
+ console.error('Error accessing stylesheet:', e);
59
+ }
60
+ }
61
+ // Create a dynamic class for the media queries
62
+ this.createCustomClass(`axp-preview-${breakpoint}`, mediaRules, breakpoint);
63
+ }
64
+ createCustomClass(className, styles, breakpoint) {
65
+ const styleSheet = document.createElement('style');
66
+ styleSheet.setAttribute("data-screen", breakpoint);
67
+ // Construct a pure CSS string, dynamically replacing the breakpoint prefix
68
+ let styleString = "";
69
+ styles.forEach(style => {
70
+ // Replace any prefixed classes like 'lg:' or 'md:' dynamically
71
+ const dynamicPrefix = new RegExp(`\\.${breakpoint}\\\\:`, 'g');
72
+ styleString += `.${className} ${style.replace(dynamicPrefix, '.')}`; // Replace the breakpoint prefix
73
+ });
74
+ styleSheet.innerText = styleString;
75
+ this.removeCustomClass();
76
+ this.elementRef.nativeElement.appendChild(styleSheet);
77
+ }
78
+ removeCustomClass() {
79
+ this.elementRef.nativeElement.querySelectorAll('style').forEach(s => s.remove());
80
+ }
81
+ get __style() {
82
+ const cls = {};
83
+ cls[`width`] = this.width();
84
+ return cls;
85
+ }
86
+ get __class() {
87
+ const cls = {};
88
+ cls[`axp-designer-board`] = true;
89
+ cls[`axp-state-design`] = true;
90
+ cls['ax-h-full'] = true;
91
+ cls['ax-overflow-auto'] = true;
92
+ cls[`axp-preview-${this.service.size()}`] = true;
93
+ return cls;
94
+ }
95
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerBoardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
96
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPDesignerBoardComponent, isStandalone: true, selector: "axp-designer-board", host: { properties: { "style": "this.__style", "class": "this.__class" } }, ngImport: i0, template: "<axp-widgets-container [(context)]=\"context\">\n <ng-container axp-widget-designer-renderer [node]=\"service.currentPage()\" [mode]=\"service.mode()\"></ng-container>\n</axp-widgets-container>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "component", type: i1.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "variables", "functions"], outputs: ["onChanged", "contextChange"] }, { kind: "directive", type: AXPWidgetDesignerRendererDirective, selector: "[axp-widget-designer-renderer]", inputs: ["parentNode", "index", "mode", "node"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
97
+ }
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerBoardComponent, decorators: [{
99
+ type: Component,
100
+ args: [{ selector: 'axp-designer-board', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
101
+ CommonModule,
102
+ AXPLayoutBuilderModule,
103
+ AXPWidgetDesignerRendererDirective
104
+ ], template: "<axp-widgets-container [(context)]=\"context\">\n <ng-container axp-widget-designer-renderer [node]=\"service.currentPage()\" [mode]=\"service.mode()\"></ng-container>\n</axp-widgets-container>" }]
105
+ }], propDecorators: { __style: [{
106
+ type: HostBinding,
107
+ args: ['style']
108
+ }], __class: [{
109
+ type: HostBinding,
110
+ args: ['class']
111
+ }] } });
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9hcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL2JvYXJkL2JvYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyL3NyYy9saWIvZGVzaWduZXIvY29tcG9uZW50cy9ib2FyZC9ib2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pJLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0saURBQWlELENBQUM7QUFDckcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7OztBQWVuRSxNQUFNLE9BQU8seUJBQXlCO0lBWnRDO1FBY2MsWUFBTyxHQUFRLEVBQUUsQ0FBQztRQUNwQixlQUFVLEdBQUcsTUFBTSxDQUFDLENBQUEsVUFBMEIsQ0FBQSxDQUErQixDQUFDO1FBRTlFLGtCQUFhLEdBQUc7WUFDcEIsSUFBSSxFQUFFLEdBQUc7WUFDVCxJQUFJLEVBQUUsR0FBRztZQUNULElBQUksRUFBRSxJQUFJO1lBQ1YsSUFBSSxFQUFFLElBQUk7WUFDVixLQUFLLEVBQUUsSUFBSTtTQUNkLENBQUM7UUFrRFEsWUFBTyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBR3JDLFVBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzVCLFFBQVEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO2dCQUMxQixLQUFLLElBQUk7b0JBQ0wsT0FBTyxPQUFPLENBQUM7Z0JBQ25CLEtBQUssSUFBSSxDQUFDO2dCQUNWLEtBQUssSUFBSTtvQkFDTCxPQUFPLE9BQU8sQ0FBQztnQkFDbkI7b0JBQ0ksT0FBTyxNQUFNLENBQUM7WUFDdEIsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBR0ssT0FBRSxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDckIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDekIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUM5QixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3BELENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztLQXFCTjtJQTFGRyxvRUFBb0U7SUFDcEUscUJBQXFCLENBQUMsVUFBa0I7UUFDcEMsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFXLENBQUM7UUFDL0QsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBRXRCLG1DQUFtQztRQUNuQyxLQUFLLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDakQsSUFBSSxDQUFDO2dCQUNELHlCQUF5QjtnQkFDekIsS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO29CQUMxQyxzQ0FBc0M7b0JBQ3RDLElBQUksSUFBSSxZQUFZLFlBQVksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsY0FBYyxRQUFRLElBQUksQ0FBQyxFQUFFLENBQUM7d0JBQzVGLDBDQUEwQzt3QkFDMUMsS0FBSyxJQUFJLE9BQU8sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDOzRCQUM1QyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFDckMsQ0FBQztvQkFDTCxDQUFDO2dCQUNMLENBQUM7WUFDTCxDQUFDO1lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDVCxPQUFPLENBQUMsS0FBSyxDQUFDLDZCQUE2QixFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3BELENBQUM7UUFDTCxDQUFDO1FBRUQsK0NBQStDO1FBQy9DLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLFVBQVUsRUFBRSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRU8saUJBQWlCLENBQUMsU0FBaUIsRUFBRSxNQUFnQixFQUFFLFVBQWtCO1FBQzdFLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkQsVUFBVSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFbkQsMkVBQTJFO1FBQzNFLElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUNyQixNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ25CLCtEQUErRDtZQUMvRCxNQUFNLGFBQWEsR0FBRyxJQUFJLE1BQU0sQ0FBQyxNQUFNLFVBQVUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQy9ELFdBQVcsSUFBSSxJQUFJLFNBQVMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsZ0NBQWdDO1FBQ3pHLENBQUMsQ0FBQyxDQUFDO1FBRUgsVUFBVSxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUM7UUFDbkMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFTyxpQkFBaUI7UUFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQTBCRCxJQUNZLE9BQU87UUFDZixNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM1QixPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFRCxJQUNZLE9BQU87UUFDZixNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsR0FBRyxDQUFDLG9CQUFvQixDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUMvQixHQUFHLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUMvQixHQUFHLENBQUMsZUFBZSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDakQsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDOzhHQXJHUSx5QkFBeUI7a0dBQXpCLHlCQUF5QiwwSkNwQnRDLHNNQUV3QiwyQ0RhaEIsWUFBWSw4QkFDWixzQkFBc0IsdU5BQ3RCLGtDQUFrQzs7MkZBRzdCLHlCQUF5QjtrQkFackMsU0FBUzsrQkFDSSxvQkFBb0IsaUJBRWYsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ0wsWUFBWTt3QkFDWixzQkFBc0I7d0JBQ3RCLGtDQUFrQztxQkFDckM7OEJBd0ZXLE9BQU87c0JBRGxCLFdBQVc7dUJBQUMsT0FBTztnQkFRUixPQUFPO3NCQURsQixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBMYXlvdXRCdWlsZGVyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIFZpZXdFbmNhcHN1bGF0aW9uLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgY29tcHV0ZWQsIGVmZmVjdCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBWFBXaWRnZXREZXNpZ25lclJlbmRlcmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3dpZGdldC1kZXNpZ25lci1yZW5kZXJlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQVhQRGVzaWduZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Rlc2lnbmVyLnNlcnZpY2UnO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXhwLWRlc2lnbmVyLWJvYXJkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYm9hcmQuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSxcbiAgICAgICAgQVhQV2lkZ2V0RGVzaWduZXJSZW5kZXJlckRpcmVjdGl2ZVxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYUERlc2lnbmVyQm9hcmRDb21wb25lbnQge1xuXG4gICAgcHJvdGVjdGVkIGNvbnRleHQ6IGFueSA9IHt9O1xuICAgIHByaXZhdGUgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PikgYXMgRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgICBwcml2YXRlIGJyZWFrcG9pbnRNYXAgPSB7XG4gICAgICAgICdzbSc6IDY0MCxcbiAgICAgICAgJ21kJzogNzY4LFxuICAgICAgICAnbGcnOiAxMDI0LFxuICAgICAgICAneGwnOiAxMjgwLFxuICAgICAgICAneHhsJzogMTUzNlxuICAgIH07XG5cbiAgICAvLyBVbmlmaWVkIG1ldGhvZCB0byBleHRyYWN0IG1lZGlhIHF1ZXJpZXMgYW5kIGNyZWF0ZSBhIGN1c3RvbSBjbGFzc1xuICAgIGFwcGx5UmVzcG9uc2l2ZVN0eWxlcyhicmVha3BvaW50OiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgbWluV2lkdGggPSBnZXQodGhpcy5icmVha3BvaW50TWFwLCBicmVha3BvaW50KSBhcyBudW1iZXI7XG4gICAgICAgIGNvbnN0IG1lZGlhUnVsZXMgPSBbXTtcblxuICAgICAgICAvLyBMb29wIHRocm91Z2ggYWxsIHRoZSBzdHlsZXNoZWV0c1xuICAgICAgICBmb3IgKGxldCBzaGVldCBvZiBBcnJheS5mcm9tKGRvY3VtZW50LnN0eWxlU2hlZXRzKSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAvLyBMb29wIHRocm91Z2ggQ1NTIHJ1bGVzXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgcnVsZSBvZiBBcnJheS5mcm9tKHNoZWV0LmNzc1J1bGVzKSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgcnVsZSBpcyBhIENTU01lZGlhUnVsZVxuICAgICAgICAgICAgICAgICAgICBpZiAocnVsZSBpbnN0YW5jZW9mIENTU01lZGlhUnVsZSAmJiBydWxlLm1lZGlhLm1lZGlhVGV4dC5pbmNsdWRlcyhgbWluLXdpZHRoOiAke21pbldpZHRofXB4YCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIExvb3AgdGhyb3VnaCB0aGUgbWVkaWEgcnVsZSdzIENTUyBydWxlc1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgc3ViUnVsZSBvZiBBcnJheS5mcm9tKHJ1bGUuY3NzUnVsZXMpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVkaWFSdWxlcy5wdXNoKHN1YlJ1bGUuY3NzVGV4dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgYWNjZXNzaW5nIHN0eWxlc2hlZXQ6JywgZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDcmVhdGUgYSBkeW5hbWljIGNsYXNzIGZvciB0aGUgbWVkaWEgcXVlcmllc1xuICAgICAgICB0aGlzLmNyZWF0ZUN1c3RvbUNsYXNzKGBheHAtcHJldmlldy0ke2JyZWFrcG9pbnR9YCwgbWVkaWFSdWxlcywgYnJlYWtwb2ludCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVDdXN0b21DbGFzcyhjbGFzc05hbWU6IHN0cmluZywgc3R5bGVzOiBzdHJpbmdbXSwgYnJlYWtwb2ludDogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHN0eWxlU2hlZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgICAgICBzdHlsZVNoZWV0LnNldEF0dHJpYnV0ZShcImRhdGEtc2NyZWVuXCIsIGJyZWFrcG9pbnQpO1xuXG4gICAgICAgIC8vIENvbnN0cnVjdCBhIHB1cmUgQ1NTIHN0cmluZywgZHluYW1pY2FsbHkgcmVwbGFjaW5nIHRoZSBicmVha3BvaW50IHByZWZpeFxuICAgICAgICBsZXQgc3R5bGVTdHJpbmcgPSBcIlwiO1xuICAgICAgICBzdHlsZXMuZm9yRWFjaChzdHlsZSA9PiB7XG4gICAgICAgICAgICAvLyBSZXBsYWNlIGFueSBwcmVmaXhlZCBjbGFzc2VzIGxpa2UgJ2xnOicgb3IgJ21kOicgZHluYW1pY2FsbHlcbiAgICAgICAgICAgIGNvbnN0IGR5bmFtaWNQcmVmaXggPSBuZXcgUmVnRXhwKGBcXFxcLiR7YnJlYWtwb2ludH1cXFxcXFxcXDpgLCAnZycpO1xuICAgICAgICAgICAgc3R5bGVTdHJpbmcgKz0gYC4ke2NsYXNzTmFtZX0gJHtzdHlsZS5yZXBsYWNlKGR5bmFtaWNQcmVmaXgsICcuJyl9YDsgLy8gUmVwbGFjZSB0aGUgYnJlYWtwb2ludCBwcmVmaXhcbiAgICAgICAgfSk7XG5cbiAgICAgICAgc3R5bGVTaGVldC5pbm5lclRleHQgPSBzdHlsZVN0cmluZztcbiAgICAgICAgdGhpcy5yZW1vdmVDdXN0b21DbGFzcygpO1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChzdHlsZVNoZWV0KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZUN1c3RvbUNsYXNzKCkge1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdzdHlsZScpLmZvckVhY2gocyA9PiBzLnJlbW92ZSgpKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2VydmljZSA9IGluamVjdChBWFBEZXNpZ25lclNlcnZpY2UpO1xuXG5cbiAgICBwcm90ZWN0ZWQgd2lkdGggPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5zZXJ2aWNlLnNpemUoKSkge1xuICAgICAgICAgICAgY2FzZSAnc20nOlxuICAgICAgICAgICAgICAgIHJldHVybiAnMzQwcHgnO1xuICAgICAgICAgICAgY2FzZSAnbWQnOlxuICAgICAgICAgICAgY2FzZSAnbGcnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnNzY4cHgnO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gJzEwMCUnO1xuICAgICAgICB9XG4gICAgfSk7XG5cblxuICAgIHByaXZhdGUgZWYgPSBlZmZlY3QoKCkgPT4ge1xuICAgICAgICB0aGlzLnJlbW92ZUN1c3RvbUNsYXNzKCk7XG4gICAgICAgIGlmICh0aGlzLnNlcnZpY2Uuc2l6ZSgpICE9ICd4bCcpIHtcbiAgICAgICAgICAgIHRoaXMuYXBwbHlSZXNwb25zaXZlU3R5bGVzKHRoaXMuc2VydmljZS5zaXplKCkpO1xuICAgICAgICB9XG4gICAgfSk7XG5cblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUnKVxuICAgIHByaXZhdGUgZ2V0IF9fc3R5bGUoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgY2xzOiBhbnkgPSB7fTtcbiAgICAgICAgY2xzW2B3aWR0aGBdID0gdGhpcy53aWR0aCgpO1xuICAgICAgICByZXR1cm4gY2xzO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIHByaXZhdGUgZ2V0IF9fY2xhc3MoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgY2xzOiBhbnkgPSB7fTtcbiAgICAgICAgY2xzW2BheHAtZGVzaWduZXItYm9hcmRgXSA9IHRydWU7XG4gICAgICAgIGNsc1tgYXhwLXN0YXRlLWRlc2lnbmBdID0gdHJ1ZTtcbiAgICAgICAgY2xzWydheC1oLWZ1bGwnXSA9IHRydWU7XG4gICAgICAgIGNsc1snYXgtb3ZlcmZsb3ctYXV0byddID0gdHJ1ZTtcbiAgICAgICAgY2xzW2BheHAtcHJldmlldy0ke3RoaXMuc2VydmljZS5zaXplKCl9YF0gPSB0cnVlO1xuICAgICAgICByZXR1cm4gY2xzO1xuICAgIH1cblxufVxuIiwiPGF4cC13aWRnZXRzLWNvbnRhaW5lciBbKGNvbnRleHQpXT1cImNvbnRleHRcIj5cbiAgICA8bmctY29udGFpbmVyIGF4cC13aWRnZXQtZGVzaWduZXItcmVuZGVyZXIgW25vZGVdPVwic2VydmljZS5jdXJyZW50UGFnZSgpXCIgW21vZGVdPVwic2VydmljZS5tb2RlKClcIj48L25nLWNvbnRhaW5lcj5cbjwvYXhwLXdpZGdldHMtY29udGFpbmVyPiJdfQ==
@@ -0,0 +1,64 @@
1
+ import { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';
4
+ import { get } from 'lodash-es';
5
+ import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';
6
+ import { AXDecoratorModule } from '@acorex/components/decorators';
7
+ import { AXPDesignerService } from '../../shared/designer.service';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@acorex/components/breadcrumbs";
10
+ export class AXPDesignerBreadcrumbsComponent {
11
+ constructor() {
12
+ this.service = inject(AXPDesignerService);
13
+ }
14
+ getTitle(node) {
15
+ return get(node, "__meta__.config.title");
16
+ }
17
+ handleClick(node) {
18
+ this.service.select({ widget: node });
19
+ }
20
+ handleMouseOver(node) {
21
+ this.service.focus({ widget: node });
22
+ }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerBreadcrumbsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
24
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPDesignerBreadcrumbsComponent, isStandalone: true, selector: "axp-designer-breadcrumbs", ngImport: i0, template: `
25
+ <ax-breadcrumbs class="ax-text-white">
26
+ @for( b of service.breadcrumbs();track $index){
27
+ <ax-breadcrumbs-item>
28
+ <a (click)="handleClick(b)" (mouseover)="handleMouseOver(b)"> {{getTitle(b)}}</a>
29
+ </ax-breadcrumbs-item>
30
+ }
31
+ <ng-template #divider>
32
+ <i class="ax-icon ax-icon-chevron-right"></i>
33
+ </ng-template>
34
+ </ax-breadcrumbs>
35
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "component", type: i1.AXBreadCrumbsComponent, selector: "ax-breadcrumbs" }, { kind: "component", type: i1.AXBreadCrumbsItemComponent, selector: "ax-breadcrumbs-item", inputs: ["disabled", "active"] }, { kind: "ngmodule", type: AXDecoratorModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerBreadcrumbsComponent, decorators: [{
38
+ type: Component,
39
+ args: [{
40
+ selector: 'axp-designer-breadcrumbs',
41
+ template: `
42
+ <ax-breadcrumbs class="ax-text-white">
43
+ @for( b of service.breadcrumbs();track $index){
44
+ <ax-breadcrumbs-item>
45
+ <a (click)="handleClick(b)" (mouseover)="handleMouseOver(b)"> {{getTitle(b)}}</a>
46
+ </ax-breadcrumbs-item>
47
+ }
48
+ <ng-template #divider>
49
+ <i class="ax-icon ax-icon-chevron-right"></i>
50
+ </ng-template>
51
+ </ax-breadcrumbs>
52
+ `,
53
+ encapsulation: ViewEncapsulation.None,
54
+ changeDetection: ChangeDetectionStrategy.OnPush,
55
+ standalone: true,
56
+ imports: [
57
+ CommonModule,
58
+ AXPLayoutBuilderModule,
59
+ AXBreadcrumbsModule,
60
+ AXDecoratorModule
61
+ ],
62
+ }]
63
+ }] });
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL2JyZWFkY3J1bWJzL2JyZWFkY3J1bWJzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQWlCLE1BQU0saUNBQWlDLENBQUM7QUFDeEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7OztBQTJCbkUsTUFBTSxPQUFPLCtCQUErQjtJQXpCNUM7UUEyQmMsWUFBTyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0tBYWxEO0lBWGEsUUFBUSxDQUFDLElBQW1CO1FBQ2xDLE9BQU8sR0FBRyxDQUFDLElBQUksRUFBRSx1QkFBdUIsQ0FBa0IsQ0FBQztJQUMvRCxDQUFDO0lBRVMsV0FBVyxDQUFDLElBQW1CO1FBQ3JDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVTLGVBQWUsQ0FBQyxJQUFtQjtRQUN6QyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7OEdBZFEsK0JBQStCO2tHQUEvQiwrQkFBK0Isb0ZBdkI5Qjs7Ozs7Ozs7Ozs7S0FXVCwyREFLRyxZQUFZLDhCQUNaLHNCQUFzQiw4QkFDdEIsbUJBQW1CLCtPQUNuQixpQkFBaUI7OzJGQUlaLCtCQUErQjtrQkF6QjNDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsUUFBUSxFQUFFOzs7Ozs7Ozs7OztLQVdUO29CQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3dCQUNuQixpQkFBaUI7cUJBQ3BCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSwgQVhQV2lkZ2V0Tm9kZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEFYQnJlYWRjcnVtYnNNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnJlYWRjcnVtYnMnO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWFBEZXNpZ25lclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvZGVzaWduZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXhwLWRlc2lnbmVyLWJyZWFkY3J1bWJzJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8YXgtYnJlYWRjcnVtYnMgY2xhc3M9XCJheC10ZXh0LXdoaXRlXCI+XG4gICAgICAgICAgICBAZm9yKCBiIG9mIHNlcnZpY2UuYnJlYWRjcnVtYnMoKTt0cmFjayAkaW5kZXgpe1xuICAgICAgICAgICAgICAgIDxheC1icmVhZGNydW1icy1pdGVtPlxuICAgICAgICAgICAgICAgICAgICA8YSAgIChjbGljayk9XCJoYW5kbGVDbGljayhiKVwiIChtb3VzZW92ZXIpPVwiaGFuZGxlTW91c2VPdmVyKGIpXCI+IHt7Z2V0VGl0bGUoYil9fTwvYT5cbiAgICAgICAgICAgICAgICA8L2F4LWJyZWFkY3J1bWJzLWl0ZW0+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RpdmlkZXI+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJheC1pY29uIGF4LWljb24tY2hldnJvbi1yaWdodFwiPjwvaT5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvYXgtYnJlYWRjcnVtYnM+XG4gICAgYCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEFYUExheW91dEJ1aWxkZXJNb2R1bGUsXG4gICAgICAgIEFYQnJlYWRjcnVtYnNNb2R1bGUsXG4gICAgICAgIEFYRGVjb3JhdG9yTW9kdWxlXG4gICAgXSxcbn0pXG5cbmV4cG9ydCBjbGFzcyBBWFBEZXNpZ25lckJyZWFkY3J1bWJzQ29tcG9uZW50IHtcblxuICAgIHByb3RlY3RlZCBzZXJ2aWNlID0gaW5qZWN0KEFYUERlc2lnbmVyU2VydmljZSk7XG5cbiAgICBwcm90ZWN0ZWQgZ2V0VGl0bGUobm9kZTogQVhQV2lkZ2V0Tm9kZSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBnZXQobm9kZSwgXCJfX21ldGFfXy5jb25maWcudGl0bGVcIikgYXMgYW55IGFzIHN0cmluZztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaGFuZGxlQ2xpY2sobm9kZTogQVhQV2lkZ2V0Tm9kZSkge1xuICAgICAgICB0aGlzLnNlcnZpY2Uuc2VsZWN0KHsgd2lkZ2V0OiBub2RlIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBoYW5kbGVNb3VzZU92ZXIobm9kZTogQVhQV2lkZ2V0Tm9kZSkge1xuICAgICAgICB0aGlzLnNlcnZpY2UuZm9jdXMoeyB3aWRnZXQ6IG5vZGUgfSk7XG4gICAgfVxufSJdfQ==
@@ -0,0 +1,32 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, inject, signal, ViewEncapsulation } from '@angular/core';
3
+ import { AXDecoratorModule } from '@acorex/components/decorators';
4
+ import { AXButtonModule } from '@acorex/components/button';
5
+ import { AXPDesignerService } from '../../../shared/designer.service';
6
+ import { AXPLayoutDesignerDrawerContentComponent } from '../../../shared/drawer-content/drawer-content.component';
7
+ import { AXPDesignerConnectorAbstract } from '../../../shared/designer-connector.service';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@acorex/components/decorators";
10
+ import * as i2 from "@acorex/components/button";
11
+ export class AXPDesignerDataSourcesComponent {
12
+ constructor() {
13
+ this.service = inject(AXPDesignerService);
14
+ this.connector = inject(AXPDesignerConnectorAbstract);
15
+ this.list = signal([]);
16
+ }
17
+ async ngOnInit() {
18
+ this.list.set(await this.connector.getDataSourcesNames());
19
+ }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerDataSourcesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPDesignerDataSourcesComponent, isStandalone: true, selector: "axp-designer-data-sources", ngImport: i0, template: "<axp-designer-drawer-content>\n\n <ax-title>Data Sources</ax-title>\n\n <ax-content header>\n <ax-button look=\"ghost\" class=\"ax-xs\" title=\"Add New Data Source\">\n <ax-icon class=\"fa-light fa-plus\"></ax-icon>\n </ax-button>\n </ax-content>\n\n <ax-content body>\n @if(list().length)\n {\n <ul class=\"axp-designer-drawer-list\">\n @for (item of list(); track $index) {\n <li>\n <i class=\"ax-me-1 fa-solid fa-table\"></i>\n {{ item.title }}\n </li>\n }\n </ul>\n }\n @else {\n <div class=\"axp-designer-drawer-empty\">No data source found in the\n document\n </div>\n }\n </ax-content>\n\n</axp-designer-drawer-content>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i1.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: AXButtonModule }, { kind: "component", type: i2.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: "component", type: AXPLayoutDesignerDrawerContentComponent, selector: "axp-designer-drawer-content" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerDataSourcesComponent, decorators: [{
24
+ type: Component,
25
+ args: [{ selector: 'axp-designer-data-sources', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
26
+ CommonModule,
27
+ AXDecoratorModule,
28
+ AXButtonModule,
29
+ AXPLayoutDesignerDrawerContentComponent
30
+ ], template: "<axp-designer-drawer-content>\n\n <ax-title>Data Sources</ax-title>\n\n <ax-content header>\n <ax-button look=\"ghost\" class=\"ax-xs\" title=\"Add New Data Source\">\n <ax-icon class=\"fa-light fa-plus\"></ax-icon>\n </ax-button>\n </ax-content>\n\n <ax-content body>\n @if(list().length)\n {\n <ul class=\"axp-designer-drawer-list\">\n @for (item of list(); track $index) {\n <li>\n <i class=\"ax-me-1 fa-solid fa-table\"></i>\n {{ item.title }}\n </li>\n }\n </ul>\n }\n @else {\n <div class=\"axp-designer-drawer-empty\">No data source found in the\n document\n </div>\n }\n </ax-content>\n\n</axp-designer-drawer-content>" }]
31
+ }] });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyL3NyYy9saWIvZGVzaWduZXIvY29tcG9uZW50cy9kcmF3ZXJzL2RhdGEtc291cmNlcy9kYXRhLXNvdXJjZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL2RyYXdlcnMvZGF0YS1zb3VyY2VzL2RhdGEtc291cmNlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNsSCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7OztBQWlCMUYsTUFBTSxPQUFPLCtCQUErQjtJQWQ1QztRQWdCYyxZQUFPLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDckMsY0FBUyxHQUFHLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBRWpELFNBQUksR0FBRyxNQUFNLENBQThCLEVBQUUsQ0FBQyxDQUFDO0tBTzVEO0lBSkcsS0FBSyxDQUFDLFFBQVE7UUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO0lBQzlELENBQUM7OEdBVlEsK0JBQStCO2tHQUEvQiwrQkFBK0IscUZDeEI1QyxpekJBNkI4QiwyQ0RadEIsWUFBWSw4QkFDWixpQkFBaUIsdVZBQ2pCLGNBQWMsd1pBQ2QsdUNBQXVDOzsyRkFJbEMsK0JBQStCO2tCQWQzQyxTQUFTOytCQUNJLDJCQUEyQixpQkFFdEIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ0wsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsdUNBQXVDO3FCQUMxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUExheW91dEJ1aWxkZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIHNpZ25hbCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYUERlc2lnbmVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kZXNpZ25lci5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUExheW91dERlc2lnbmVyRHJhd2VyQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kcmF3ZXItY29udGVudC9kcmF3ZXItY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhQRGVzaWduZXJDb25uZWN0b3JBYnN0cmFjdCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kZXNpZ25lci1jb25uZWN0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBBWFBEZXNpZ25lckRhdGFTb3VyY2VOYW1lIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Rlc2lnbmVyLnR5cHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2F4cC1kZXNpZ25lci1kYXRhLXNvdXJjZXMnLFxuICAgIHRlbXBsYXRlVXJsOiAnZGF0YS1zb3VyY2VzLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgICAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgQVhQTGF5b3V0RGVzaWduZXJEcmF3ZXJDb250ZW50Q29tcG9uZW50XG4gICAgXSxcbn0pXG5cbmV4cG9ydCBjbGFzcyBBWFBEZXNpZ25lckRhdGFTb3VyY2VzQ29tcG9uZW50IHtcblxuICAgIHByb3RlY3RlZCBzZXJ2aWNlID0gaW5qZWN0KEFYUERlc2lnbmVyU2VydmljZSk7XG4gICAgcHJvdGVjdGVkIGNvbm5lY3RvciA9IGluamVjdChBWFBEZXNpZ25lckNvbm5lY3RvckFic3RyYWN0KTtcblxuICAgIHByb3RlY3RlZCBsaXN0ID0gc2lnbmFsPEFYUERlc2lnbmVyRGF0YVNvdXJjZU5hbWVbXT4oW10pO1xuXG5cbiAgICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5saXN0LnNldChhd2FpdCB0aGlzLmNvbm5lY3Rvci5nZXREYXRhU291cmNlc05hbWVzKCkpO1xuICAgIH1cblxufSIsIjxheHAtZGVzaWduZXItZHJhd2VyLWNvbnRlbnQ+XG5cbiAgICA8YXgtdGl0bGU+RGF0YSBTb3VyY2VzPC9heC10aXRsZT5cblxuICAgIDxheC1jb250ZW50IGhlYWRlcj5cbiAgICAgICAgPGF4LWJ1dHRvbiBsb29rPVwiZ2hvc3RcIiBjbGFzcz1cImF4LXhzXCIgdGl0bGU9XCJBZGQgTmV3IERhdGEgU291cmNlXCI+XG4gICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLWxpZ2h0ICBmYS1wbHVzXCI+PC9heC1pY29uPlxuICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICA8L2F4LWNvbnRlbnQ+XG5cbiAgICA8YXgtY29udGVudCBib2R5PlxuICAgICAgICBAaWYobGlzdCgpLmxlbmd0aClcbiAgICAgICAge1xuICAgICAgICA8dWwgY2xhc3M9XCJheHAtZGVzaWduZXItZHJhd2VyLWxpc3RcIj5cbiAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgbGlzdCgpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImF4LW1lLTEgZmEtc29saWQgZmEtdGFibGVcIj48L2k+XG4gICAgICAgICAgICAgICAge3sgaXRlbS50aXRsZSB9fVxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC91bD5cbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheHAtZGVzaWduZXItZHJhd2VyLWVtcHR5XCI+Tm8gZGF0YSBzb3VyY2UgZm91bmQgaW4gdGhlXG4gICAgICAgICAgICBkb2N1bWVudFxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIDwvYXgtY29udGVudD5cblxuPC9heHAtZGVzaWduZXItZHJhd2VyLWNvbnRlbnQ+Il19
@@ -0,0 +1,30 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';
3
+ import { AXDecoratorModule } from '@acorex/components/decorators';
4
+ import { AXButtonModule } from '@acorex/components/button';
5
+ import { AXDropdownModule } from '@acorex/components/dropdown';
6
+ import { AXPLayoutDesignerDrawerContentComponent } from '../../../shared/drawer-content/drawer-content.component';
7
+ import { AXPDesignerService } from '../../../shared/designer.service';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/common";
10
+ import * as i2 from "@acorex/components/decorators";
11
+ import * as i3 from "@acorex/components/button";
12
+ import * as i4 from "@acorex/components/dropdown";
13
+ export class AXPDesignerHistoryComponent {
14
+ constructor() {
15
+ this.service = inject(AXPDesignerService);
16
+ }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerHistoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
18
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPDesignerHistoryComponent, isStandalone: true, selector: "axp-designer-history", ngImport: i0, template: "<axp-designer-drawer-content>\n\n <ax-title>History</ax-title>\n\n <ax-content header>\n <ax-button look=\"ghost\" class=\"ax-xs\">\n <ax-icon class=\"fa-light fa-ellipsis\"></ax-icon>\n <ax-dropdown-panel class=\"ax-xs\">\n <ax-button-item-list>\n <ax-button-item text=\"Clear\" name=\"add\" (onClick)=\"service.clearHistory()\"> </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n </ax-content>\n\n <ax-content body>\n @if(service.history().length)\n {\n <ul class=\"axp-designer-drawer-list\">\n @for (step of service.history(); track $index) {\n <li (click)=\"service.navigateTo($index)\" [class.ax-italic]=\"step.isFuture\"\n [class.ax-text-neutral-400]=\"step.isFuture\" [class.ax-state-selected]=\"step.isCurrent\">\n <i class=\"ax-me-1\" [ngClass]=\"step.icon\"></i>\n {{ step.description }}\n </li>\n }\n </ul>\n }\n @else {\n <div class=\"axp-designer-drawer-empty\">\n No changes have been made yet.\n </div>\n }\n </ax-content>\n\n</axp-designer-drawer-content>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.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: 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: "component", type: i3.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i3.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i4.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: AXPLayoutDesignerDrawerContentComponent, selector: "axp-designer-drawer-content" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
19
+ }
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerHistoryComponent, decorators: [{
21
+ type: Component,
22
+ args: [{ selector: 'axp-designer-history', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
23
+ CommonModule,
24
+ AXDecoratorModule,
25
+ AXButtonModule,
26
+ AXDropdownModule,
27
+ AXPLayoutDesignerDrawerContentComponent
28
+ ], template: "<axp-designer-drawer-content>\n\n <ax-title>History</ax-title>\n\n <ax-content header>\n <ax-button look=\"ghost\" class=\"ax-xs\">\n <ax-icon class=\"fa-light fa-ellipsis\"></ax-icon>\n <ax-dropdown-panel class=\"ax-xs\">\n <ax-button-item-list>\n <ax-button-item text=\"Clear\" name=\"add\" (onClick)=\"service.clearHistory()\"> </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n </ax-content>\n\n <ax-content body>\n @if(service.history().length)\n {\n <ul class=\"axp-designer-drawer-list\">\n @for (step of service.history(); track $index) {\n <li (click)=\"service.navigateTo($index)\" [class.ax-italic]=\"step.isFuture\"\n [class.ax-text-neutral-400]=\"step.isFuture\" [class.ax-state-selected]=\"step.isCurrent\">\n <i class=\"ax-me-1\" [ngClass]=\"step.icon\"></i>\n {{ step.description }}\n </li>\n }\n </ul>\n }\n @else {\n <div class=\"axp-designer-drawer-empty\">\n No changes have been made yet.\n </div>\n }\n </ax-content>\n\n</axp-designer-drawer-content>" }]
29
+ }] });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL2Rlc2lnbmVyL2NvbXBvbmVudHMvZHJhd2Vycy9oaXN0b3J5L2hpc3RvcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL2RyYXdlcnMvaGlzdG9yeS9oaXN0b3J5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVDQUF1QyxFQUFFLE1BQU0seURBQXlELENBQUM7QUFDbEgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7OztBQWtCdEUsTUFBTSxPQUFPLDJCQUEyQjtJQWhCeEM7UUFpQmMsWUFBTyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0tBQ2xEOzhHQUZZLDJCQUEyQjtrR0FBM0IsMkJBQTJCLGdGQ3hCeEMsZ3dDQW1DOEIsMkNEcEJ0QixZQUFZLDRIQUNaLGlCQUFpQix1VkFDakIsY0FBYyw4dkJBQ2QsZ0JBQWdCLHlQQUNoQix1Q0FBdUM7OzJGQUtsQywyQkFBMkI7a0JBaEJ2QyxTQUFTOytCQUNJLHNCQUFzQixpQkFFakIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ0wsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQix1Q0FBdUM7cUJBRTFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZHJvcGRvd24nO1xuaW1wb3J0IHsgQVhQTGF5b3V0RGVzaWduZXJEcmF3ZXJDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2RyYXdlci1jb250ZW50L2RyYXdlci1jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFBEZXNpZ25lclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZGVzaWduZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXhwLWRlc2lnbmVyLWhpc3RvcnknLFxuICAgIHRlbXBsYXRlVXJsOiAnaGlzdG9yeS5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICAgICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgICAgIEFYRHJvcGRvd25Nb2R1bGUsXG4gICAgICAgIEFYUExheW91dERlc2lnbmVyRHJhd2VyQ29udGVudENvbXBvbmVudFxuXG4gICAgXSxcbn0pXG5cbmV4cG9ydCBjbGFzcyBBWFBEZXNpZ25lckhpc3RvcnlDb21wb25lbnQge1xuICAgIHByb3RlY3RlZCBzZXJ2aWNlID0gaW5qZWN0KEFYUERlc2lnbmVyU2VydmljZSk7XG59IiwiPGF4cC1kZXNpZ25lci1kcmF3ZXItY29udGVudD5cblxuICAgIDxheC10aXRsZT5IaXN0b3J5PC9heC10aXRsZT5cblxuICAgIDxheC1jb250ZW50IGhlYWRlcj5cbiAgICAgICAgPGF4LWJ1dHRvbiBsb29rPVwiZ2hvc3RcIiBjbGFzcz1cImF4LXhzXCI+XG4gICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLWxpZ2h0IGZhLWVsbGlwc2lzXCI+PC9heC1pY29uPlxuICAgICAgICAgICAgPGF4LWRyb3Bkb3duLXBhbmVsIGNsYXNzPVwiYXgteHNcIj5cbiAgICAgICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW0tbGlzdD5cbiAgICAgICAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtIHRleHQ9XCJDbGVhclwiIG5hbWU9XCJhZGRcIiAob25DbGljayk9XCJzZXJ2aWNlLmNsZWFySGlzdG9yeSgpXCI+IDwvYXgtYnV0dG9uLWl0ZW0+XG4gICAgICAgICAgICAgICAgPC9heC1idXR0b24taXRlbS1saXN0PlxuICAgICAgICAgICAgPC9heC1kcm9wZG93bi1wYW5lbD5cbiAgICAgICAgPC9heC1idXR0b24+XG4gICAgPC9heC1jb250ZW50PlxuXG4gICAgPGF4LWNvbnRlbnQgYm9keT5cbiAgICAgICAgQGlmKHNlcnZpY2UuaGlzdG9yeSgpLmxlbmd0aClcbiAgICAgICAge1xuICAgICAgICA8dWwgY2xhc3M9XCJheHAtZGVzaWduZXItZHJhd2VyLWxpc3RcIj5cbiAgICAgICAgICAgIEBmb3IgKHN0ZXAgb2Ygc2VydmljZS5oaXN0b3J5KCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPGxpIChjbGljayk9XCJzZXJ2aWNlLm5hdmlnYXRlVG8oJGluZGV4KVwiIFtjbGFzcy5heC1pdGFsaWNdPVwic3RlcC5pc0Z1dHVyZVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmF4LXRleHQtbmV1dHJhbC00MDBdPVwic3RlcC5pc0Z1dHVyZVwiIFtjbGFzcy5heC1zdGF0ZS1zZWxlY3RlZF09XCJzdGVwLmlzQ3VycmVudFwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYXgtbWUtMVwiIFtuZ0NsYXNzXT1cInN0ZXAuaWNvblwiPjwvaT5cbiAgICAgICAgICAgICAgICB7eyBzdGVwLmRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L3VsPlxuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImF4cC1kZXNpZ25lci1kcmF3ZXItZW1wdHlcIj5cbiAgICAgICAgICAgIE5vIGNoYW5nZXMgaGF2ZSBiZWVuIG1hZGUgeWV0LlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIDwvYXgtY29udGVudD5cblxuPC9heHAtZGVzaWduZXItZHJhd2VyLWNvbnRlbnQ+Il19
@@ -0,0 +1,61 @@
1
+ import { AXDecoratorModule } from '@acorex/components/decorators';
2
+ import { AXPWidgetsCatalog } from '@acorex/platform/layout/builder';
3
+ import { CommonModule } from '@angular/common';
4
+ import { ChangeDetectionStrategy, Component, inject, signal, ViewEncapsulation } from '@angular/core';
5
+ import { get } from 'lodash-es';
6
+ import { merge } from 'rxjs';
7
+ import { AXPLayoutDesignerDrawerContentComponent } from '../../../shared/drawer-content/drawer-content.component';
8
+ import { AXPDesignerService } from '../../../shared/designer.service';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/common";
11
+ import * as i2 from "@acorex/components/decorators";
12
+ export class AXPDesignerOutlineComponent {
13
+ constructor() {
14
+ this.service = inject(AXPDesignerService);
15
+ this.collapsedStates = new Map();
16
+ this.root = signal(this.getTree());
17
+ merge(this.service.onRefresh, this.service.onUpdate).subscribe(() => {
18
+ this.root.update((c) => ({ ...this.getTree() }));
19
+ });
20
+ }
21
+ getTree() {
22
+ return {
23
+ type: AXPWidgetsCatalog.document,
24
+ children: [this.service.currentPage()],
25
+ };
26
+ }
27
+ toggleCollapse(node) {
28
+ // Toggle the current state or set to true if undefined
29
+ this.collapsedStates.set(node, !this.collapsedStates.get(node));
30
+ }
31
+ isCollapsed(node) {
32
+ // Return the collapsed state, default is false (expanded)
33
+ return !!this.collapsedStates.get(node);
34
+ }
35
+ getConfig(node) {
36
+ return get(node, '__meta__.config');
37
+ }
38
+ handleClick(e, node) {
39
+ e.stopPropagation();
40
+ this.service.select({ widget: node });
41
+ }
42
+ handleToggleClick(event, item) {
43
+ event.stopPropagation(); // Prevents the event from bubbling up to parent elements
44
+ this.toggleCollapse(item);
45
+ }
46
+ handleMouseOver(e, node) {
47
+ e.stopPropagation();
48
+ this.service.focus({ widget: node });
49
+ }
50
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerOutlineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
51
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPDesignerOutlineComponent, isStandalone: true, selector: "axp-designer-outline", ngImport: i0, template: "<axp-designer-drawer-content>\n\n <ax-title>Outline</ax-title>\n\n <ax-content body>\n @if(root().children?.length)\n {\n <ul class=\"ax-space-y-1 ax-p-1 ax-text-white ax-text-sm\">\n @for( node of root().children;track $index)\n {\n <ng-container [ngTemplateOutlet]=\"sideMenu\" [ngTemplateOutletContext]=\"{ $implicit: node }\">\n </ng-container>\n }\n </ul>\n <ng-template #sideMenu let-item>\n <li (click)=\"handleClick($event,item)\" (mouseover)=\"handleMouseOver($event,item)\">\n <div [class.ax-bg-neutral-700]=\"item === service.selectedNode()\"\n class=\"ax-flex ax-flex-row ax-items-center ax-cursor-pointer ax-transition ax-duration-150 ax-ease-in-out ax-hover:bg-gray-700 ax-py-1 ax-px-2 ax-rounded-sm ax-group\">\n <span class=\"ax-w-5 \">\n @if(item.children?.length)\n {\n <i class=\"fa-solid\" [class.fa-chevron-right]=\"isCollapsed(item)\"\n (click)=\"handleToggleClick($event, item)\" [class.fa-chevron-down]=\"!isCollapsed(item)\"></i>\n }\n </span>\n @let config = getConfig(item);\n <span class=\"ax-w-5\">\n @if(config.icon)\n {\n <i [ngClass]=\"config.icon\"></i>\n }\n </span>\n <span class=\"ax-truncate ax-flex-1 ax-pe-2\">{{config.title}} : {{item.name}}</span>\n <div class=\"ax-invisible group-hover:ax-visible ax-flex ax-gap-2 ax-justify-end \">\n @if(config.type=='container')\n {\n <i class=\"fa-light fa-plus hover:ax-text-primary-500\" (click)=\"service.showPicker(item)\"></i>\n }\n @if(config.name!=\"page-layout\")\n {\n <i class=\"fa-light fa-xmark hover:ax-text-danger-500\" (click)=\"service.removeWidget(item)\"></i>\n }\n </div>\n </div>\n @if(item.children?.length && !isCollapsed(item)) {\n <ul class=\"ax-space-y-1 ax-ps-3 ax-text-white ax-text-sm\">\n <ng-container *ngFor=\"let child of item.children\" [ngTemplateOutlet]=\"sideMenu\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\">\n </ng-container>\n </ul>\n }\n </li>\n </ng-template>\n }\n @else {\n <div class=\"axp-designer-drawer-empty\">No widgets found in the page\n </div>\n }\n </ax-content>\n\n</axp-designer-drawer-content>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.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: "component", type: AXPLayoutDesignerDrawerContentComponent, selector: "axp-designer-drawer-content" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
52
+ }
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerOutlineComponent, decorators: [{
54
+ type: Component,
55
+ args: [{ selector: 'axp-designer-outline', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
56
+ CommonModule,
57
+ AXDecoratorModule,
58
+ AXPLayoutDesignerDrawerContentComponent
59
+ ], template: "<axp-designer-drawer-content>\n\n <ax-title>Outline</ax-title>\n\n <ax-content body>\n @if(root().children?.length)\n {\n <ul class=\"ax-space-y-1 ax-p-1 ax-text-white ax-text-sm\">\n @for( node of root().children;track $index)\n {\n <ng-container [ngTemplateOutlet]=\"sideMenu\" [ngTemplateOutletContext]=\"{ $implicit: node }\">\n </ng-container>\n }\n </ul>\n <ng-template #sideMenu let-item>\n <li (click)=\"handleClick($event,item)\" (mouseover)=\"handleMouseOver($event,item)\">\n <div [class.ax-bg-neutral-700]=\"item === service.selectedNode()\"\n class=\"ax-flex ax-flex-row ax-items-center ax-cursor-pointer ax-transition ax-duration-150 ax-ease-in-out ax-hover:bg-gray-700 ax-py-1 ax-px-2 ax-rounded-sm ax-group\">\n <span class=\"ax-w-5 \">\n @if(item.children?.length)\n {\n <i class=\"fa-solid\" [class.fa-chevron-right]=\"isCollapsed(item)\"\n (click)=\"handleToggleClick($event, item)\" [class.fa-chevron-down]=\"!isCollapsed(item)\"></i>\n }\n </span>\n @let config = getConfig(item);\n <span class=\"ax-w-5\">\n @if(config.icon)\n {\n <i [ngClass]=\"config.icon\"></i>\n }\n </span>\n <span class=\"ax-truncate ax-flex-1 ax-pe-2\">{{config.title}} : {{item.name}}</span>\n <div class=\"ax-invisible group-hover:ax-visible ax-flex ax-gap-2 ax-justify-end \">\n @if(config.type=='container')\n {\n <i class=\"fa-light fa-plus hover:ax-text-primary-500\" (click)=\"service.showPicker(item)\"></i>\n }\n @if(config.name!=\"page-layout\")\n {\n <i class=\"fa-light fa-xmark hover:ax-text-danger-500\" (click)=\"service.removeWidget(item)\"></i>\n }\n </div>\n </div>\n @if(item.children?.length && !isCollapsed(item)) {\n <ul class=\"ax-space-y-1 ax-ps-3 ax-text-white ax-text-sm\">\n <ng-container *ngFor=\"let child of item.children\" [ngTemplateOutlet]=\"sideMenu\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\">\n </ng-container>\n </ul>\n }\n </li>\n </ng-template>\n }\n @else {\n <div class=\"axp-designer-drawer-empty\">No widgets found in the page\n </div>\n }\n </ax-content>\n\n</axp-designer-drawer-content>" }]
60
+ }], ctorParameters: () => [] });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0bGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL2Rlc2lnbmVyL2NvbXBvbmVudHMvZHJhd2Vycy9vdXRsaW5lL291dGxpbmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL2RyYXdlcnMvb3V0bGluZS9vdXRsaW5lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBa0MsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNsSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7OztBQWN0RSxNQUFNLE9BQU8sMkJBQTJCO0lBT3RDO1FBTlUsWUFBTyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRXJDLG9CQUFlLEdBQXNCLElBQUksR0FBRyxFQUFFLENBQUM7UUFFL0MsU0FBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUd0QyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2xFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sT0FBTztRQUNiLE9BQU87WUFDTCxJQUFJLEVBQUUsaUJBQWlCLENBQUMsUUFBUTtZQUNoQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3RCLENBQUM7SUFDckIsQ0FBQztJQUVPLGNBQWMsQ0FBQyxJQUFTO1FBQzlCLHVEQUF1RDtRQUN2RCxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFUyxXQUFXLENBQUMsSUFBUztRQUM3QiwwREFBMEQ7UUFDMUQsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVTLFNBQVMsQ0FBQyxJQUFtQjtRQUNyQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLENBQTJCLENBQUM7SUFDaEUsQ0FBQztJQUVTLFdBQVcsQ0FBQyxDQUFhLEVBQUUsSUFBbUI7UUFDdEQsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVTLGlCQUFpQixDQUFDLEtBQWlCLEVBQUUsSUFBUztRQUN0RCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyx5REFBeUQ7UUFDbEYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRVMsZUFBZSxDQUFDLENBQWEsRUFBRSxJQUFtQjtRQUMxRCxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDOzhHQS9DVSwyQkFBMkI7a0dBQTNCLDJCQUEyQixnRkNyQnhDLDIyRkE0RDhCLDJDRDVDMUIsWUFBWSxnYUFDWixpQkFBaUIsdVBBQ2pCLHVDQUF1Qzs7MkZBRzlCLDJCQUEyQjtrQkFadkMsU0FBUzsrQkFDRSxzQkFBc0IsaUJBRWpCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQix1Q0FBdUM7cUJBQ3hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWFBXaWRnZXRDb25maWcsIEFYUFdpZGdldE5vZGUsIEFYUFdpZGdldHNDYXRhbG9nIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBzaWduYWwsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYUExheW91dERlc2lnbmVyRHJhd2VyQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kcmF3ZXItY29udGVudC9kcmF3ZXItY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhQRGVzaWduZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Rlc2lnbmVyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheHAtZGVzaWduZXItb3V0bGluZScsXG4gIHRlbXBsYXRlVXJsOiAnb3V0bGluZS5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgIEFYUExheW91dERlc2lnbmVyRHJhd2VyQ29udGVudENvbXBvbmVudFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBEZXNpZ25lck91dGxpbmVDb21wb25lbnQge1xuICBwcm90ZWN0ZWQgc2VydmljZSA9IGluamVjdChBWFBEZXNpZ25lclNlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCBjb2xsYXBzZWRTdGF0ZXM6IE1hcDxhbnksIGJvb2xlYW4+ID0gbmV3IE1hcCgpO1xuXG4gIHByb3RlY3RlZCByb290ID0gc2lnbmFsKHRoaXMuZ2V0VHJlZSgpKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBtZXJnZSh0aGlzLnNlcnZpY2Uub25SZWZyZXNoLCB0aGlzLnNlcnZpY2Uub25VcGRhdGUpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnJvb3QudXBkYXRlKChjKSA9PiAoeyAuLi50aGlzLmdldFRyZWUoKSB9KSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldFRyZWUoKTogQVhQV2lkZ2V0Tm9kZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLmRvY3VtZW50LFxuICAgICAgY2hpbGRyZW46IFt0aGlzLnNlcnZpY2UuY3VycmVudFBhZ2UoKV0sXG4gICAgfSBhcyBBWFBXaWRnZXROb2RlO1xuICB9XG5cbiAgcHJpdmF0ZSB0b2dnbGVDb2xsYXBzZShub2RlOiBhbnkpIHtcbiAgICAvLyBUb2dnbGUgdGhlIGN1cnJlbnQgc3RhdGUgb3Igc2V0IHRvIHRydWUgaWYgdW5kZWZpbmVkXG4gICAgdGhpcy5jb2xsYXBzZWRTdGF0ZXMuc2V0KG5vZGUsICF0aGlzLmNvbGxhcHNlZFN0YXRlcy5nZXQobm9kZSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzQ29sbGFwc2VkKG5vZGU6IGFueSk6IGJvb2xlYW4ge1xuICAgIC8vIFJldHVybiB0aGUgY29sbGFwc2VkIHN0YXRlLCBkZWZhdWx0IGlzIGZhbHNlIChleHBhbmRlZClcbiAgICByZXR1cm4gISF0aGlzLmNvbGxhcHNlZFN0YXRlcy5nZXQobm9kZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0Q29uZmlnKG5vZGU6IEFYUFdpZGdldE5vZGUpOiBBWFBXaWRnZXRDb25maWcge1xuICAgIHJldHVybiBnZXQobm9kZSwgJ19fbWV0YV9fLmNvbmZpZycpIGFzIGFueSBhcyBBWFBXaWRnZXRDb25maWc7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ2xpY2soZTogTW91c2VFdmVudCwgbm9kZTogQVhQV2lkZ2V0Tm9kZSkge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5zZXJ2aWNlLnNlbGVjdCh7IHdpZGdldDogbm9kZSB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVUb2dnbGVDbGljayhldmVudDogTW91c2VFdmVudCwgaXRlbTogYW55KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IC8vIFByZXZlbnRzIHRoZSBldmVudCBmcm9tIGJ1YmJsaW5nIHVwIHRvIHBhcmVudCBlbGVtZW50c1xuICAgIHRoaXMudG9nZ2xlQ29sbGFwc2UoaXRlbSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlTW91c2VPdmVyKGU6IE1vdXNlRXZlbnQsIG5vZGU6IEFYUFdpZGdldE5vZGUpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuc2VydmljZS5mb2N1cyh7IHdpZGdldDogbm9kZSB9KTtcbiAgfVxufVxuIiwiPGF4cC1kZXNpZ25lci1kcmF3ZXItY29udGVudD5cblxuICAgIDxheC10aXRsZT5PdXRsaW5lPC9heC10aXRsZT5cblxuICAgIDxheC1jb250ZW50IGJvZHk+XG4gICAgICAgIEBpZihyb290KCkuY2hpbGRyZW4/Lmxlbmd0aClcbiAgICAgICAge1xuICAgICAgICA8dWwgY2xhc3M9XCJheC1zcGFjZS15LTEgYXgtcC0xIGF4LXRleHQtd2hpdGUgYXgtdGV4dC1zbVwiPlxuICAgICAgICAgICAgQGZvciggbm9kZSBvZiByb290KCkuY2hpbGRyZW47dHJhY2sgJGluZGV4KVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJzaWRlTWVudVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogbm9kZSB9XCI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC91bD5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNzaWRlTWVudSBsZXQtaXRlbT5cbiAgICAgICAgICAgIDxsaSAoY2xpY2spPVwiaGFuZGxlQ2xpY2soJGV2ZW50LGl0ZW0pXCIgKG1vdXNlb3Zlcik9XCJoYW5kbGVNb3VzZU92ZXIoJGV2ZW50LGl0ZW0pXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBbY2xhc3MuYXgtYmctbmV1dHJhbC03MDBdPVwiaXRlbSA9PT0gc2VydmljZS5zZWxlY3RlZE5vZGUoKVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LXJvdyBheC1pdGVtcy1jZW50ZXIgYXgtY3Vyc29yLXBvaW50ZXIgYXgtdHJhbnNpdGlvbiBheC1kdXJhdGlvbi0xNTAgYXgtZWFzZS1pbi1vdXQgYXgtaG92ZXI6YmctZ3JheS03MDAgYXgtcHktMSBheC1weC0yIGF4LXJvdW5kZWQtc20gYXgtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC13LTUgXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYoaXRlbS5jaGlsZHJlbj8ubGVuZ3RoKVxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZFwiIFtjbGFzcy5mYS1jaGV2cm9uLXJpZ2h0XT1cImlzQ29sbGFwc2VkKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlVG9nZ2xlQ2xpY2soJGV2ZW50LCBpdGVtKVwiIFtjbGFzcy5mYS1jaGV2cm9uLWRvd25dPVwiIWlzQ29sbGFwc2VkKGl0ZW0pXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIEBsZXQgY29uZmlnID0gZ2V0Q29uZmlnKGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LXctNVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGNvbmZpZy5pY29uKVxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGkgW25nQ2xhc3NdPVwiY29uZmlnLmljb25cIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC10cnVuY2F0ZSBheC1mbGV4LTEgYXgtcGUtMlwiPnt7Y29uZmlnLnRpdGxlfX0gOiB7e2l0ZW0ubmFtZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtaW52aXNpYmxlIGdyb3VwLWhvdmVyOmF4LXZpc2libGUgYXgtZmxleCBheC1nYXAtMiAgYXgtanVzdGlmeS1lbmQgXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYoY29uZmlnLnR5cGU9PSdjb250YWluZXInKVxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS1wbHVzIGhvdmVyOmF4LXRleHQtcHJpbWFyeS01MDBcIiAoY2xpY2spPVwic2VydmljZS5zaG93UGlja2VyKGl0ZW0pXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGNvbmZpZy5uYW1lIT1cInBhZ2UtbGF5b3V0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLWxpZ2h0IGZhLXhtYXJrICBob3ZlcjpheC10ZXh0LWRhbmdlci01MDBcIiAoY2xpY2spPVwic2VydmljZS5yZW1vdmVXaWRnZXQoaXRlbSlcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIEBpZihpdGVtLmNoaWxkcmVuPy5sZW5ndGggJiYgIWlzQ29sbGFwc2VkKGl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYXgtc3BhY2UteS0xIGF4LXBzLTMgYXgtdGV4dC13aGl0ZSBheC10ZXh0LXNtXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNoaWxkIG9mIGl0ZW0uY2hpbGRyZW5cIiBbbmdUZW1wbGF0ZU91dGxldF09XCJzaWRlTWVudVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGNoaWxkIH1cIj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImF4cC1kZXNpZ25lci1kcmF3ZXItZW1wdHlcIj5ObyB3aWRnZXRzIGZvdW5kIGluIHRoZSBwYWdlXG4gICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgPC9heC1jb250ZW50PlxuXG48L2F4cC1kZXNpZ25lci1kcmF3ZXItY29udGVudD4iXX0=
@@ -0,0 +1,28 @@
1
+ import { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';
4
+ import { AXDecoratorModule } from '@acorex/components/decorators';
5
+ import { AXButtonModule } from '@acorex/components/button';
6
+ import { AXPLayoutDesignerDrawerContentComponent } from '../../../shared/drawer-content/drawer-content.component';
7
+ import { AXPDesignerService } from '../../../shared/designer.service';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@acorex/components/decorators";
10
+ import * as i2 from "@acorex/components/button";
11
+ export class AXPDesignerPagesComponent {
12
+ constructor() {
13
+ this.service = inject(AXPDesignerService);
14
+ }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerPagesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPDesignerPagesComponent, isStandalone: true, selector: "axp-designer-pages", ngImport: i0, template: "<axp-designer-drawer-content>\n\n <ax-title>Pages</ax-title>\n\n <ax-content header>\n <ax-button look=\"ghost\" class=\"ax-xs\" (onClick)=\"service.addNewPage()\" title=\"Add New Page\">\n <ax-icon class=\"fa-light fa-file-circle-plus\"></ax-icon>\n </ax-button>\n </ax-content>\n\n <ax-content body>\n @let count = service.document().children?.length ?? 0;\n @if(count)\n {\n <ul class=\"ax-text-white ax-text-sm ax-bg-gray-800 ax-p-2 ax-rounded-md ax-space-y-1\">\n @for( page of service.document().children;track $index)\n {\n <li (click)=\"service.goToPage($index)\"\n class=\"ax-cursor-pointer ax-transition ax-duration-150 ax-ease-in-out hover:ax-bg-gray-700 ax-py-1 ax-px-2 ax-rounded-sm ax-group ax-flex ax-justify-between ax-items-center\"\n [class.ax-bg-neutral-700]=\"$index==service.currentPageIndex()\">\n <div>\n <i class=\"fa-light fa-file ax-me-1\"></i>\n Page {{$index + 1}}\n </div>\n <div class=\"ax-invisible group-hover:ax-visible ax-flex ax-gap-2\">\n @if(count>1)\n {\n <i class=\"fa-light fa-xmark hover:ax-text-danger-500\" (click)=\"service.removePage($index)\"></i>\n }\n <i class=\"fa-light fa-clone hover:ax-text-primary-500\" (click)=\"service.clonePage($index)\"></i>\n </div>\n </li>\n }\n </ul>\n }\n @else {\n <div class=\"ax-flex ax-justify-center ax-items-center ax-text-gray-300 ax-p-4\">No pages found in the document\n </div>\n }\n </ax-content>\n\n</axp-designer-drawer-content>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i1.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: AXButtonModule }, { kind: "component", type: i2.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: "component", type: AXPLayoutDesignerDrawerContentComponent, selector: "axp-designer-drawer-content" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerPagesComponent, decorators: [{
19
+ type: Component,
20
+ args: [{ selector: 'axp-designer-pages', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
21
+ CommonModule,
22
+ AXPLayoutBuilderModule,
23
+ AXDecoratorModule,
24
+ AXButtonModule,
25
+ AXPLayoutDesignerDrawerContentComponent
26
+ ], template: "<axp-designer-drawer-content>\n\n <ax-title>Pages</ax-title>\n\n <ax-content header>\n <ax-button look=\"ghost\" class=\"ax-xs\" (onClick)=\"service.addNewPage()\" title=\"Add New Page\">\n <ax-icon class=\"fa-light fa-file-circle-plus\"></ax-icon>\n </ax-button>\n </ax-content>\n\n <ax-content body>\n @let count = service.document().children?.length ?? 0;\n @if(count)\n {\n <ul class=\"ax-text-white ax-text-sm ax-bg-gray-800 ax-p-2 ax-rounded-md ax-space-y-1\">\n @for( page of service.document().children;track $index)\n {\n <li (click)=\"service.goToPage($index)\"\n class=\"ax-cursor-pointer ax-transition ax-duration-150 ax-ease-in-out hover:ax-bg-gray-700 ax-py-1 ax-px-2 ax-rounded-sm ax-group ax-flex ax-justify-between ax-items-center\"\n [class.ax-bg-neutral-700]=\"$index==service.currentPageIndex()\">\n <div>\n <i class=\"fa-light fa-file ax-me-1\"></i>\n Page {{$index + 1}}\n </div>\n <div class=\"ax-invisible group-hover:ax-visible ax-flex ax-gap-2\">\n @if(count>1)\n {\n <i class=\"fa-light fa-xmark hover:ax-text-danger-500\" (click)=\"service.removePage($index)\"></i>\n }\n <i class=\"fa-light fa-clone hover:ax-text-primary-500\" (click)=\"service.clonePage($index)\"></i>\n </div>\n </li>\n }\n </ul>\n }\n @else {\n <div class=\"ax-flex ax-justify-center ax-items-center ax-text-gray-300 ax-p-4\">No pages found in the document\n </div>\n }\n </ax-content>\n\n</axp-designer-drawer-content>" }]
27
+ }] });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL2RyYXdlcnMvcGFnZXMvcGFnZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL2RyYXdlcnMvcGFnZXMvcGFnZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNsSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7OztBQWlCdEUsTUFBTSxPQUFPLHlCQUF5QjtJQWZ0QztRQWlCYyxZQUFPLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0FFbEQ7OEdBSlkseUJBQXlCO2tHQUF6Qix5QkFBeUIsOEVDdkJ0QyxteERBeUM4QiwyQ0QxQnRCLFlBQVksOEJBQ1osc0JBQXNCLDhCQUN0QixpQkFBaUIsdVZBQ2pCLGNBQWMsd1pBQ2QsdUNBQXVDOzsyRkFJbEMseUJBQXlCO2tCQWZyQyxTQUFTOytCQUNJLG9CQUFvQixpQkFFZixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLHNCQUFzQjt3QkFDdEIsaUJBQWlCO3dCQUNqQixjQUFjO3dCQUNkLHVDQUF1QztxQkFDMUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBMYXlvdXRCdWlsZGVyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhQTGF5b3V0RGVzaWduZXJEcmF3ZXJDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2RyYXdlci1jb250ZW50L2RyYXdlci1jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFBEZXNpZ25lclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZGVzaWduZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXhwLWRlc2lnbmVyLXBhZ2VzJyxcbiAgICB0ZW1wbGF0ZVVybDogJ3BhZ2VzLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEFYUExheW91dEJ1aWxkZXJNb2R1bGUsXG4gICAgICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgICAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgQVhQTGF5b3V0RGVzaWduZXJEcmF3ZXJDb250ZW50Q29tcG9uZW50XG4gICAgXSxcbn0pXG5cbmV4cG9ydCBjbGFzcyBBWFBEZXNpZ25lclBhZ2VzQ29tcG9uZW50IHtcblxuICAgIHByb3RlY3RlZCBzZXJ2aWNlID0gaW5qZWN0KEFYUERlc2lnbmVyU2VydmljZSk7XG5cbn0iLCI8YXhwLWRlc2lnbmVyLWRyYXdlci1jb250ZW50PlxuXG4gICAgPGF4LXRpdGxlPlBhZ2VzPC9heC10aXRsZT5cblxuICAgIDxheC1jb250ZW50IGhlYWRlcj5cbiAgICAgICAgPGF4LWJ1dHRvbiBsb29rPVwiZ2hvc3RcIiBjbGFzcz1cImF4LXhzXCIgKG9uQ2xpY2spPVwic2VydmljZS5hZGROZXdQYWdlKClcIiB0aXRsZT1cIkFkZCBOZXcgUGFnZVwiPlxuICAgICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1saWdodCAgZmEtZmlsZS1jaXJjbGUtcGx1c1wiPjwvYXgtaWNvbj5cbiAgICAgICAgPC9heC1idXR0b24+XG4gICAgPC9heC1jb250ZW50PlxuXG4gICAgPGF4LWNvbnRlbnQgYm9keT5cbiAgICAgICAgQGxldCBjb3VudCA9IHNlcnZpY2UuZG9jdW1lbnQoKS5jaGlsZHJlbj8ubGVuZ3RoID8/IDA7XG4gICAgICAgIEBpZihjb3VudClcbiAgICAgICAge1xuICAgICAgICA8dWwgY2xhc3M9XCJheC10ZXh0LXdoaXRlIGF4LXRleHQtc20gYXgtYmctZ3JheS04MDAgYXgtcC0yIGF4LXJvdW5kZWQtbWQgYXgtc3BhY2UteS0xXCI+XG4gICAgICAgICAgICBAZm9yKCBwYWdlIG9mIHNlcnZpY2UuZG9jdW1lbnQoKS5jaGlsZHJlbjt0cmFjayAkaW5kZXgpXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICA8bGkgKGNsaWNrKT1cInNlcnZpY2UuZ29Ub1BhZ2UoJGluZGV4KVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJheC1jdXJzb3ItcG9pbnRlciBheC10cmFuc2l0aW9uIGF4LWR1cmF0aW9uLTE1MCBheC1lYXNlLWluLW91dCBob3ZlcjpheC1iZy1ncmF5LTcwMCBheC1weS0xIGF4LXB4LTIgYXgtcm91bmRlZC1zbSBheC1ncm91cCBheC1mbGV4IGF4LWp1c3RpZnktYmV0d2VlbiBheC1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5heC1iZy1uZXV0cmFsLTcwMF09XCIkaW5kZXg9PXNlcnZpY2UuY3VycmVudFBhZ2VJbmRleCgpXCI+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS1maWxlIGF4LW1lLTFcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIFBhZ2Uge3skaW5kZXggKyAxfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtaW52aXNpYmxlIGdyb3VwLWhvdmVyOmF4LXZpc2libGUgYXgtZmxleCBheC1nYXAtMlwiPlxuICAgICAgICAgICAgICAgICAgICBAaWYoY291bnQ+MSlcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLWxpZ2h0IGZhLXhtYXJrIGhvdmVyOmF4LXRleHQtZGFuZ2VyLTUwMFwiIChjbGljayk9XCJzZXJ2aWNlLnJlbW92ZVBhZ2UoJGluZGV4KVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLWxpZ2h0IGZhLWNsb25lICBob3ZlcjpheC10ZXh0LXByaW1hcnktNTAwXCIgKGNsaWNrKT1cInNlcnZpY2UuY2xvbmVQYWdlKCRpbmRleClcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L3VsPlxuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtanVzdGlmeS1jZW50ZXIgYXgtaXRlbXMtY2VudGVyIGF4LXRleHQtZ3JheS0zMDAgYXgtcC00XCI+Tm8gcGFnZXMgZm91bmQgaW4gdGhlIGRvY3VtZW50XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgPC9heC1jb250ZW50PlxuXG48L2F4cC1kZXNpZ25lci1kcmF3ZXItY29udGVudD4iXX0=
@@ -0,0 +1,82 @@
1
+ import { ChangeDetectionStrategy, Component, computed, HostBinding, HostListener, model, output, signal } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class AXPDesignerGridDrawerComponent {
4
+ constructor() {
5
+ this.rowsCount = model(5, { alias: "rows" });
6
+ this.colsCount = model(12, { alias: "columns" });
7
+ this.onSelect = output();
8
+ this.rows = computed(() => Array.from({ length: this.rowsCount() }).map((v, index) => index + 1));
9
+ this.columns = computed(() => Array.from({ length: this.colsCount() }).map((v, index) => index + 1));
10
+ this.rangeR = signal(0);
11
+ this.rangeC = signal(0);
12
+ }
13
+ handleMouseHover(r, c) {
14
+ this.rangeR.set(r);
15
+ this.rangeC.set(c);
16
+ }
17
+ handleClick(r, c) {
18
+ this.onSelect.emit({ rows: r, cols: c });
19
+ }
20
+ handleMouseLeave(event) {
21
+ this.rangeR.set(0);
22
+ this.rangeC.set(0);
23
+ }
24
+ get __style() {
25
+ return {
26
+ "--cols-width": `${this.colsCount() == 0 ? 0 : (100 / this.colsCount())}%`
27
+ };
28
+ }
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerGridDrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
30
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPDesignerGridDrawerComponent, isStandalone: true, selector: "axp-designer-grid-drawer", inputs: { rowsCount: { classPropertyName: "rowsCount", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, colsCount: { classPropertyName: "colsCount", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { rowsCount: "rowsChange", colsCount: "columnsChange", onSelect: "onSelect" }, host: { listeners: { "mouseleave": "handleMouseLeave($event)" }, properties: { "style": "this.__style" } }, ngImport: i0, template: `
31
+ <table class="table-picker" >
32
+ <tbody>
33
+ @for(r of rows();track $index)
34
+ {
35
+ <tr >
36
+ @for(c of columns();track $index)
37
+ {
38
+ <td (mouseenter)="handleMouseHover(r,c)" [class.picked]="c<=rangeC() && r<=rangeR()" (click)="handleClick(r,c)">
39
+ </td>
40
+ }
41
+ </tr>
42
+ }
43
+ <tr>
44
+ <td [attr.colspan]="columns().length" class="ax-text-center">
45
+ <small >{{rangeC()}}*{{rangeR()}}</small>
46
+ </td>
47
+ </tr>
48
+ </tbody>
49
+ </table>
50
+ `, isInline: true, styles: [":host table{width:100%;border-collapse:collapse;--tw-border-spacing-x: 0px;--tw-border-spacing-y: 0px;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}:host table td{height:2.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-color-border-default),var(--tw-border-opacity));width:var(--cols-width)}:host table td:after{content:\"\";display:block}:host table td.picked{border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-color-border-default),var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-primary-100),var(--tw-bg-opacity))}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
51
+ }
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerGridDrawerComponent, decorators: [{
53
+ type: Component,
54
+ args: [{ selector: 'axp-designer-grid-drawer', template: `
55
+ <table class="table-picker" >
56
+ <tbody>
57
+ @for(r of rows();track $index)
58
+ {
59
+ <tr >
60
+ @for(c of columns();track $index)
61
+ {
62
+ <td (mouseenter)="handleMouseHover(r,c)" [class.picked]="c<=rangeC() && r<=rangeR()" (click)="handleClick(r,c)">
63
+ </td>
64
+ }
65
+ </tr>
66
+ }
67
+ <tr>
68
+ <td [attr.colspan]="columns().length" class="ax-text-center">
69
+ <small >{{rangeC()}}*{{rangeR()}}</small>
70
+ </td>
71
+ </tr>
72
+ </tbody>
73
+ </table>
74
+ `, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [], styles: [":host table{width:100%;border-collapse:collapse;--tw-border-spacing-x: 0px;--tw-border-spacing-y: 0px;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}:host table td{height:2.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-color-border-default),var(--tw-border-opacity));width:var(--cols-width)}:host table td:after{content:\"\";display:block}:host table td.picked{border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-color-border-default),var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-primary-100),var(--tw-bg-opacity))}\n"] }]
75
+ }], propDecorators: { handleMouseLeave: [{
76
+ type: HostListener,
77
+ args: ['mouseleave', ['$event']]
78
+ }], __style: [{
79
+ type: HostBinding,
80
+ args: ['style']
81
+ }] } });
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1kcmF3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL2dyaWQtZHJhd2VyL2dyaWQtZHJhd2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQThCL0gsTUFBTSxPQUFPLDhCQUE4QjtJQTVCM0M7UUE4QkksY0FBUyxHQUFHLEtBQUssQ0FBUyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNoRCxjQUFTLEdBQUcsS0FBSyxDQUFTLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRXBELGFBQVEsR0FBRyxNQUFNLEVBQWtDLENBQUM7UUFHMUMsU0FBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0YsWUFBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFaEcsV0FBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQixXQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBd0JoQztJQXJCYSxnQkFBZ0IsQ0FBQyxDQUFTLEVBQUUsQ0FBUztRQUMzQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRVMsV0FBVyxDQUFDLENBQVMsRUFBRSxDQUFTO1FBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBR08sZ0JBQWdCLENBQUMsS0FBb0I7UUFDekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQ1ksT0FBTztRQUNmLE9BQU87WUFDSCxjQUFjLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHO1NBQzdFLENBQUM7SUFDTixDQUFDOzhHQW5DUSw4QkFBOEI7a0dBQTlCLDhCQUE4QixxaUJBekI3Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQlg7OzJGQUtVLDhCQUE4QjtrQkE1QjFDLFNBQVM7K0JBQ0ksMEJBQTBCLFlBRTFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CWCxjQUNhLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxFQUFFOzhCQTJCSCxnQkFBZ0I7c0JBRHZCLFlBQVk7dUJBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU8xQixPQUFPO3NCQURsQixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgbW9kZWwsIG91dHB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXhwLWRlc2lnbmVyLWdyaWQtZHJhd2VyJyxcbiAgICBzdHlsZVVybHM6IFsnLi9ncmlkLWRyYXdlci5jb21wb25lbnQuc2NzcyddLFxuICAgIHRlbXBsYXRlOiBgXG4gICA8dGFibGUgY2xhc3M9XCJ0YWJsZS1waWNrZXJcIiA+XG4gICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgIEBmb3IociBvZiByb3dzKCk7dHJhY2sgJGluZGV4KVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgPHRyID5cbiAgICAgICAgICAgICAgICBAZm9yKGMgb2YgY29sdW1ucygpO3RyYWNrICRpbmRleClcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIDx0ZCAobW91c2VlbnRlcik9XCJoYW5kbGVNb3VzZUhvdmVyKHIsYylcIiAgW2NsYXNzLnBpY2tlZF09XCJjPD1yYW5nZUMoKSAmJiByPD1yYW5nZVIoKVwiIChjbGljayk9XCJoYW5kbGVDbGljayhyLGMpXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICA8dGQgW2F0dHIuY29sc3Bhbl09XCJjb2x1bW5zKCkubGVuZ3RoXCIgY2xhc3M9XCJheC10ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8c21hbGwgPnt7cmFuZ2VDKCl9fSp7e3JhbmdlUigpfX08L3NtYWxsPlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG4gIGAsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBpbXBvcnRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQRGVzaWduZXJHcmlkRHJhd2VyQ29tcG9uZW50IHtcblxuICAgIHJvd3NDb3VudCA9IG1vZGVsPG51bWJlcj4oNSwgeyBhbGlhczogXCJyb3dzXCIgfSk7XG4gICAgY29sc0NvdW50ID0gbW9kZWw8bnVtYmVyPigxMiwgeyBhbGlhczogXCJjb2x1bW5zXCIgfSk7XG5cbiAgICBvblNlbGVjdCA9IG91dHB1dDx7IHJvd3M6IG51bWJlciwgY29sczogbnVtYmVyIH0+KCk7XG5cblxuICAgIHByb3RlY3RlZCByb3dzID0gY29tcHV0ZWQoKCkgPT4gQXJyYXkuZnJvbSh7IGxlbmd0aDogdGhpcy5yb3dzQ291bnQoKSB9KS5tYXAoKHYsIGluZGV4KSA9PiBpbmRleCArIDEpKTtcbiAgICBwcm90ZWN0ZWQgY29sdW1ucyA9IGNvbXB1dGVkKCgpID0+IEFycmF5LmZyb20oeyBsZW5ndGg6IHRoaXMuY29sc0NvdW50KCkgfSkubWFwKCh2LCBpbmRleCkgPT4gaW5kZXggKyAxKSk7XG5cbiAgICBwcm90ZWN0ZWQgcmFuZ2VSID0gc2lnbmFsKDApO1xuICAgIHByb3RlY3RlZCByYW5nZUMgPSBzaWduYWwoMCk7XG5cblxuICAgIHByb3RlY3RlZCBoYW5kbGVNb3VzZUhvdmVyKHI6IG51bWJlciwgYzogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMucmFuZ2VSLnNldChyKTtcbiAgICAgICAgdGhpcy5yYW5nZUMuc2V0KGMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBoYW5kbGVDbGljayhyOiBudW1iZXIsIGM6IG51bWJlcikge1xuICAgICAgICB0aGlzLm9uU2VsZWN0LmVtaXQoeyByb3dzOiByLCBjb2xzOiBjIH0pO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCBbJyRldmVudCddKVxuICAgIHByaXZhdGUgaGFuZGxlTW91c2VMZWF2ZShldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICB0aGlzLnJhbmdlUi5zZXQoMCk7XG4gICAgICAgIHRoaXMucmFuZ2VDLnNldCgwKTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlJylcbiAgICBwcml2YXRlIGdldCBfX3N0eWxlKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBcIi0tY29scy13aWR0aFwiOiBgJHt0aGlzLmNvbHNDb3VudCgpID09IDAgPyAwIDogKDEwMCAvIHRoaXMuY29sc0NvdW50KCkpfSVgXG4gICAgICAgIH07XG4gICAgfVxufVxuIl19