@acorex/platform 19.1.8 → 19.1.10

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 (65) hide show
  1. package/common/lib/app/application.types.d.ts +4 -0
  2. package/common/lib/common.module.d.ts +2 -2
  3. package/common/lib/layout/menu/menu.types.d.ts +2 -1
  4. package/common/lib/search/search-definition.builder.d.ts +5 -2
  5. package/common/lib/search/search.provider.d.ts +1 -1
  6. package/common/lib/search/search.service.d.ts +1 -0
  7. package/common/lib/search/search.types.d.ts +21 -5
  8. package/common/lib/settings/settings.service.d.ts +11 -5
  9. package/common/lib/workflows/navigate.workflow.d.ts +4 -0
  10. package/fesm2022/acorex-platform-common.mjs +105 -126
  11. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  12. package/fesm2022/acorex-platform-layout-builder.mjs +2 -0
  13. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  14. package/fesm2022/acorex-platform-layout-designer.mjs +3 -3
  15. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  16. package/fesm2022/acorex-platform-layout-entity.mjs +107 -62
  17. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  18. package/fesm2022/acorex-platform-layout-search.mjs +76 -17
  19. package/fesm2022/acorex-platform-layout-search.mjs.map +1 -1
  20. package/fesm2022/acorex-platform-layout-setting.mjs +111 -5
  21. package/fesm2022/acorex-platform-layout-setting.mjs.map +1 -1
  22. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-BUL6ti4U.mjs → acorex-platform-themes-default-entity-master-list-view.component-BDjcOo6R.mjs} +3 -3
  23. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BDjcOo6R.mjs.map +1 -0
  24. package/fesm2022/acorex-platform-themes-default-search-popup.component-gkiSZXm-.mjs +122 -0
  25. package/fesm2022/acorex-platform-themes-default-search-popup.component-gkiSZXm-.mjs.map +1 -0
  26. package/fesm2022/acorex-platform-themes-default.mjs +11 -11
  27. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  28. package/fesm2022/acorex-platform-themes-shared.mjs +9 -9
  29. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  30. package/fesm2022/acorex-platform-widgets.mjs +1271 -816
  31. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  32. package/fesm2022/acorex-platform-workflow.mjs +10 -3
  33. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  34. package/layout/builder/lib/builder/widget-map.d.ts +2 -0
  35. package/layout/designer/lib/preview/preview.component.d.ts +2 -2
  36. package/layout/entity/lib/entity-master-single.viewmodel.d.ts +6 -6
  37. package/layout/entity/lib/search-definition-command.provider.d.ts +4 -0
  38. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +1 -1
  39. package/layout/search/lib/search.viewmodel.d.ts +17 -1
  40. package/layout/setting/index.d.ts +1 -0
  41. package/{common/lib/settings → layout/setting/lib}/search-definition.provider.d.ts +1 -1
  42. package/layout/setting/lib/search.provider.d.ts +9 -0
  43. package/layout/setting/lib/settings.module.d.ts +9 -0
  44. package/package.json +9 -9
  45. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.d.ts +2 -2
  46. package/themes/default/lib/layouts/search-layout/search-popup.component.d.ts +7 -0
  47. package/themes/shared/lib/components/layout-elements/layout-list.component.d.ts +3 -3
  48. package/widgets/lib/widgets/index.d.ts +1 -0
  49. package/widgets/lib/widgets/layout/advanced-grid/advanced-grid-widget-designer.component.d.ts +28 -0
  50. package/widgets/lib/widgets/layout/advanced-grid/advanced-grid-widget-view.component.d.ts +9 -0
  51. package/widgets/lib/widgets/layout/advanced-grid/advanced-grid-widget.config.d.ts +7 -0
  52. package/widgets/lib/widgets/layout/advanced-grid/index.d.ts +3 -0
  53. package/widgets/lib/widgets/layout/grid/grid-widget-designer.component.d.ts +6 -3
  54. package/widgets/lib/widgets/property-editors/flex-options/flex-options-widget-editor.component.d.ts +6 -6
  55. package/widgets/lib/widgets/property-editors/grid-options/grid-options-widget-editor.component.d.ts +23 -12
  56. package/widgets/lib/widgets/property-editors/grid-options/grid-options-widget.type.d.ts +4 -2
  57. package/widgets/lib/widgets/property-editors/property-editor-helper.d.ts +2 -2
  58. package/widgets/lib/widgets/property-editors/property-editor.type.d.ts +5 -0
  59. package/workflow/lib/workflow.service.d.ts +1 -0
  60. package/workflow/lib/workflow.types.d.ts +1 -1
  61. package/common/lib/settings/search.provider.d.ts +0 -10
  62. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BUL6ti4U.mjs.map +0 -1
  63. package/fesm2022/acorex-platform-themes-default-search-popup.component-BiKt6Mvr.mjs +0 -84
  64. package/fesm2022/acorex-platform-themes-default-search-popup.component-BiKt6Mvr.mjs.map +0 -1
  65. package/layout/entity/lib/search.provider.d.ts +0 -4
@@ -6,12 +6,12 @@ import * as i3 from '@acorex/components/decorators';
6
6
  import { AXDecoratorModule } from '@acorex/components/decorators';
7
7
  import * as i4 from '@acorex/components/loading';
8
8
  import { AXLoadingModule } from '@acorex/components/loading';
9
- import * as i1$5 from '@acorex/platform/layout/builder';
9
+ import * as i1$6 from '@acorex/platform/layout/builder';
10
10
  import { AXPWidgetComponent, AXPWidgetsCatalog, createStringProperty, createBooleanProperty, createSelectProperty, cloneProperty, AXP_WIDGETS_ACTION_GROUP, AXP_WIDGETS_EDITOR_GROUP, AXPColumnWidgetComponent, AXPDataListWidgetComponent, AXPWidgetStatus, AXPPageStatus, AXP_WIDGETS_ADVANCE_GROUP, AXPLayoutBuilderModule, AXP_WIDGETS_LAYOUT_GROUP, AXP_WIDGETS_FILTER_GROUP } from '@acorex/platform/layout/builder';
11
11
  import * as i1$1 from '@angular/common';
12
12
  import { CommonModule } from '@angular/common';
13
13
  import * as i0 from '@angular/core';
14
- import { computed, EventEmitter, Component, ChangeDetectionStrategy, inject, HostBinding, signal, effect, ViewEncapsulation, ViewChild, untracked, ChangeDetectorRef, ElementRef, viewChild, afterNextRender, NgZone, model, input, HostListener, NgModule } from '@angular/core';
14
+ import { computed, EventEmitter, Component, ChangeDetectionStrategy, inject, HostBinding, signal, effect, ViewEncapsulation, ViewChild, untracked, ChangeDetectorRef, ElementRef, viewChild, afterRender, afterNextRender, NgZone, model, input, HostListener, NgModule } from '@angular/core';
15
15
  import { AX_STYLE_COLOR_TYPES, AX_STYLE_LOOK_TYPES, AXDataSource } from '@acorex/components/common';
16
16
  import * as i1 from '@acorex/components/check-box';
17
17
  import { AXCheckBoxModule } from '@acorex/components/check-box';
@@ -37,7 +37,7 @@ import { AXDateTimeBoxModule } from '@acorex/components/datetime-box';
37
37
  import * as i4$1 from '@acorex/components/text-area';
38
38
  import { AXTextAreaModule } from '@acorex/components/text-area';
39
39
  import { AXFormatService } from '@acorex/core/format';
40
- import { isNumber, sum, get } from 'lodash-es';
40
+ import { isNumber, cloneDeep, sum, get } from 'lodash-es';
41
41
  import * as i1$3 from '@acorex/components/number-box';
42
42
  import { AXNumberBoxModule } from '@acorex/components/number-box';
43
43
  import * as i3$4 from '@acorex/components/password-box';
@@ -63,20 +63,22 @@ import * as i2$5 from '@acorex/components/image';
63
63
  import { AXImageModule } from '@acorex/components/image';
64
64
  import * as i1$4 from '@acorex/components/map';
65
65
  import { AXMapModule } from '@acorex/components/map';
66
- import { AXPWidgetDesignerRendererDirective, AXPDesignerAddWidgetMiniButtonComponent, AXPDesignerService, AXPDesignerGridDrawerComponent } from '@acorex/platform/layout/designer';
67
- import * as i4$3 from '@acorex/components/button-group';
66
+ import * as i1$5 from '@acorex/components/grid-layout-builder';
67
+ import { AXGridLayoutContainerComponent, AXGridLayoutBuilderModule } from '@acorex/components/grid-layout-builder';
68
+ import { AXPDesignerService, AXPWidgetDesignerRendererDirective, AXPDesignerGridDrawerComponent, AXPDesignerAddWidgetMiniButtonComponent } from '@acorex/platform/layout/designer';
69
+ import * as i4$2 from '@acorex/components/button-group';
68
70
  import { AXButtonGroupModule } from '@acorex/components/button-group';
69
71
  import * as i2$6 from '@acorex/components/color-box';
70
72
  import { AXColorBoxModule } from '@acorex/components/color-box';
71
- import * as i4$2 from '@acorex/components/range-slider';
73
+ import * as i3$6 from '@acorex/components/range-slider';
72
74
  import { AXRangeSliderModule } from '@acorex/components/range-slider';
73
75
  import * as i6 from '@acorex/components/dropdown';
74
76
  import { AXDropdownModule } from '@acorex/components/dropdown';
75
- import * as i1$6 from '@acorex/components/popover';
77
+ import * as i1$7 from '@acorex/components/popover';
76
78
  import { AXPopoverComponent, AXPopoverModule } from '@acorex/components/popover';
77
- import * as i1$7 from '@acorex/components/cron-job';
79
+ import * as i1$8 from '@acorex/components/cron-job';
78
80
  import { AXCronJobModule } from '@acorex/components/cron-job';
79
- import * as i1$8 from '@acorex/components/qrcode';
81
+ import * as i1$9 from '@acorex/components/qrcode';
80
82
  import { AXQrcodeModule } from '@acorex/components/qrcode';
81
83
  import { AXColorUtil } from '@acorex/core/utils';
82
84
  import { DomSanitizer } from '@angular/platform-browser';
@@ -7473,402 +7475,929 @@ const AXPSignatureWidget = {
7473
7475
  },
7474
7476
  };
7475
7477
 
7476
- class AXPBlockWidgetDesignerComponent extends AXPWidgetComponent {
7477
- constructor() {
7478
- super(...arguments);
7479
- this.backgroundColor = computed(() => this.options()['backgroundColor']);
7480
- this.cssClass = computed(() => this.options()['cssClass']);
7481
- this.flexAlignItems = computed(() => this.options()['flexAlignItems']?.id);
7482
- this.flexJustifyContent = computed(() => this.options()['flexJustifyContent']?.id);
7483
- this.flexWrap = computed(() => this.options()['flexWrap']?.id);
7484
- this.flexDirection = computed(() => this.options()['flexDirection']?.id);
7485
- this.gap = computed(() => this.options()['gap'] ?? 0);
7478
+ /**
7479
+ * Utility class for parsing and handling property editor values like borders, spacing, and units.
7480
+ */
7481
+ class AXPPropertyEditorHelper {
7482
+ /**
7483
+ * Expands shorthand input values into full sets for sides or corners.
7484
+ * @param values - Array of input values.
7485
+ * @returns Expanded array of values.
7486
+ */
7487
+ static expandShorthand(values) {
7488
+ switch (values.length) {
7489
+ case 1:
7490
+ return [values[0], values[0], values[0], values[0]];
7491
+ case 2:
7492
+ return [values[0], values[1], values[0], values[1]];
7493
+ case 3:
7494
+ return [values[0], values[1], values[2], values[1]];
7495
+ case 4:
7496
+ return values;
7497
+ default:
7498
+ throw new Error(`Invalid shorthand value count. Input: ${values}`);
7499
+ }
7486
7500
  }
7487
- get __class() {
7488
- const cls = {};
7489
- //
7490
- cls[`ax-w-full`] = true;
7491
- cls[`ax-widget-outline`] = true;
7492
- //
7493
- cls[`ax-flex`] = true;
7494
- cls[`ax-gap-${this.gap()}`] = true;
7495
- //
7496
- if (this.flexAlignItems()) {
7497
- cls[this.flexAlignItems()] = true;
7501
+ /**
7502
+ * @param values An array of four values to condense.
7503
+ * @returns A condensed string representation of the values.
7504
+ */
7505
+ static condenseShorthand(values) {
7506
+ if (values.length !== 4) {
7507
+ throw new Error('Expected 4 values for condensation.');
7498
7508
  }
7499
- if (this.flexJustifyContent()) {
7500
- cls[this.flexJustifyContent()] = true;
7509
+ if (values[0] === values[1] && values[1] === values[2] && values[2] === values[3]) {
7510
+ return `${values[0]}`;
7501
7511
  }
7502
- if (this.flexWrap()) {
7503
- cls[this.flexWrap()] = true;
7512
+ else if (values[0] === values[2] && values[1] === values[3]) {
7513
+ return `${values[0]} ${values[1]}`;
7504
7514
  }
7505
- if (this.flexDirection()) {
7506
- cls[this.flexDirection()] = true;
7515
+ else if (values[1] === values[3]) {
7516
+ return `${values[0]} ${values[1]} ${values[2]}`;
7517
+ }
7518
+ else {
7519
+ return `${values[0]} ${values[1]} ${values[2]} ${values[3]}`;
7507
7520
  }
7508
- return cls;
7509
7521
  }
7510
- // TEST PURPOSE ONLY
7511
- // eff = effect(() => console.log(this.options()['flexOptions']));
7512
- get __style() {
7513
- const spacing = this.options()?.['spacing'];
7514
- const border = this.options()?.['border'];
7515
- const flex = this.options()?.['flexOptions'];
7522
+ /**
7523
+ * Parses sides (top, left, bottom, right) from a string.
7524
+ * @param input - Input string.
7525
+ * @returns Parsed sides object.
7526
+ */
7527
+ static parseSides(input) {
7528
+ const values = this.expandShorthand(input.match(/(?:rgb\([^)]+\)|[^ ]+)/g)?.map((value) => value.trim()) || []);
7529
+ return { top: values[0], right: values[1], bottom: values[2], left: values[3] };
7530
+ }
7531
+ static parseSidesWithUnits(input) {
7532
+ const values = this.expandShorthand(input.match(/(?:rgb\([^)]+\)|[^ ]+)/g)?.map((value) => value.trim()) || []);
7516
7533
  return {
7517
- // Background
7518
- 'background-color': this.backgroundColor(),
7519
- // Spacing
7520
- padding: spacing?.padding ?? 0,
7521
- margin: spacing?.margin ?? 0,
7522
- // Border
7523
- 'border-radius': border?.radius ?? 0,
7524
- 'border-width': border?.width ?? 0,
7525
- 'border-color': border?.color ?? '#000000',
7526
- 'border-style': border?.style ?? 'none',
7527
- // Flexbox
7528
- 'flex-direction': flex?.flexDirection ?? 'row',
7529
- 'flex-wrap': flex?.flexWrap ?? 'nowrap',
7530
- 'justify-content': flex?.justifyContent ?? 'flex-start',
7531
- 'align-items': flex?.alignItems ?? 'flex-start',
7532
- gap: flex?.gap ?? '0px',
7534
+ top: AXPPropertyEditorHelper.getValueWithUnit(values[0]).value,
7535
+ right: AXPPropertyEditorHelper.getValueWithUnit(values[1]).value,
7536
+ bottom: AXPPropertyEditorHelper.getValueWithUnit(values[2]).value,
7537
+ left: AXPPropertyEditorHelper.getValueWithUnit(values[3]).value,
7533
7538
  };
7534
7539
  }
7535
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPBlockWidgetDesignerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
7536
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPBlockWidgetDesignerComponent, isStandalone: true, selector: "axp-block-widget", host: { properties: { "class": "this.__class", "style": "this.__style" } }, providers: [
7537
- {
7538
- provide: AXPWidgetComponent,
7539
- useExisting: AXPBlockWidgetDesignerComponent,
7540
- },
7541
- ], usesInheritance: true, ngImport: i0, template: `
7542
- @for (node of children(); track $index) {
7543
- <ng-container
7544
- axp-widget-designer-renderer
7545
- [node]="node"
7546
- [parentNode]="this"
7547
- [mode]="this.mode"
7548
- [locked]="this.locked"
7549
- ></ng-container>
7550
- } @empty {
7551
- <axp-designer-add-widget-mini-button
7552
- class="ax-flex-1 ax-self-center ax-place-self-end"
7553
- ></axp-designer-add-widget-mini-button>
7554
- }
7555
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "directive", type: AXPWidgetDesignerRendererDirective, selector: "[axp-widget-designer-renderer]", inputs: ["parentNode", "index", "locked", "mode", "node"] }, { kind: "component", type: AXPDesignerAddWidgetMiniButtonComponent, selector: "axp-designer-add-widget-mini-button", outputs: ["onClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7556
- }
7557
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPBlockWidgetDesignerComponent, decorators: [{
7558
- type: Component,
7559
- args: [{
7560
- selector: 'axp-block-widget',
7561
- template: `
7562
- @for (node of children(); track $index) {
7563
- <ng-container
7564
- axp-widget-designer-renderer
7565
- [node]="node"
7566
- [parentNode]="this"
7567
- [mode]="this.mode"
7568
- [locked]="this.locked"
7569
- ></ng-container>
7570
- } @empty {
7571
- <axp-designer-add-widget-mini-button
7572
- class="ax-flex-1 ax-self-center ax-place-self-end"
7573
- ></axp-designer-add-widget-mini-button>
7574
- }
7575
- `,
7576
- changeDetection: ChangeDetectionStrategy.OnPush,
7577
- imports: [
7578
- CommonModule,
7579
- AXPLayoutBuilderModule,
7580
- AXPWidgetDesignerRendererDirective,
7581
- AXPDesignerAddWidgetMiniButtonComponent,
7582
- ],
7583
- providers: [
7584
- {
7585
- provide: AXPWidgetComponent,
7586
- useExisting: AXPBlockWidgetDesignerComponent,
7587
- },
7588
- ],
7589
- }]
7590
- }], propDecorators: { __class: [{
7591
- type: HostBinding,
7592
- args: ['class']
7593
- }], __style: [{
7594
- type: HostBinding,
7595
- args: ['style']
7596
- }] } });
7597
-
7598
- var blockWidgetDesigner_component = /*#__PURE__*/Object.freeze({
7599
- __proto__: null,
7600
- AXPBlockWidgetDesignerComponent: AXPBlockWidgetDesignerComponent
7601
- });
7602
-
7603
- class AXPBlockWidgetViewComponent extends AXPWidgetComponent {
7604
- constructor() {
7605
- super(...arguments);
7606
- this.backgroundColor = computed(() => this.options()['backgroundColor']);
7607
- this.cssClass = computed(() => this.options()['cssClass']);
7608
- this.flexAlignItems = computed(() => this.options()['flexAlignItems']?.id);
7609
- this.flexJustifyContent = computed(() => this.options()['flexJustifyContent']?.id);
7610
- this.flexWrap = computed(() => this.options()['flexWrap']?.id);
7611
- this.flexDirection = computed(() => this.options()['flexDirection']?.id);
7612
- this.gap = computed(() => this.options()['gap'] ?? 0);
7540
+ /**
7541
+ * Parses corners (top-left, top-right, bottom-left, bottom-right) from a string.
7542
+ * @param input - Input string.
7543
+ * @returns Parsed corners object.
7544
+ */
7545
+ static parseCorners(input) {
7546
+ const values = this.expandShorthand(input.split(' ').map((value) => value.trim()));
7547
+ return {
7548
+ 'top-left': AXPPropertyEditorHelper.getValueWithUnit(values[0]).value,
7549
+ 'top-right': AXPPropertyEditorHelper.getValueWithUnit(values[1]).value,
7550
+ 'bottom-left': AXPPropertyEditorHelper.getValueWithUnit(values[2]).value,
7551
+ 'bottom-right': AXPPropertyEditorHelper.getValueWithUnit(values[3]).value,
7552
+ };
7613
7553
  }
7614
- get __class() {
7615
- const cls = {};
7616
- //
7617
- cls[`ax-w-full`] = true;
7618
- //
7619
- cls[`ax-flex`] = true;
7620
- cls[`ax-gap-${this.gap()}`] = true;
7621
- //
7622
- if (this.flexAlignItems()) {
7623
- cls[this.flexAlignItems()] = true;
7624
- }
7625
- if (this.flexJustifyContent()) {
7626
- cls[this.flexJustifyContent()] = true;
7627
- }
7628
- if (this.flexWrap()) {
7629
- cls[this.flexWrap()] = true;
7630
- }
7631
- if (this.flexDirection()) {
7632
- cls[this.flexDirection()] = true;
7633
- }
7634
- return cls;
7554
+ /**
7555
+ * Parses a spacing box from strings for margin and padding.
7556
+ * @param input - Spacing box string input.
7557
+ * @returns Parsed spacing box.
7558
+ */
7559
+ static parseSpacingBox(input) {
7560
+ return {
7561
+ margin: this.parseSidesWithUnits(input.margin),
7562
+ padding: this.parseSidesWithUnits(input.padding),
7563
+ };
7635
7564
  }
7636
- get __style() {
7637
- const spacing = this.options()['spacing'];
7638
- const border = this.options()['border'];
7565
+ /**
7566
+ * Parses a border box from strings for width, radius, color, and style.
7567
+ * @param input - Border box string input.
7568
+ * @returns Parsed border box.
7569
+ */
7570
+ static parseBorderBox(input) {
7639
7571
  return {
7640
- // Background
7641
- 'background-color': this.backgroundColor(),
7642
- padding: spacing.padding,
7643
- margin: spacing.margin,
7644
- 'border-radius': border.radius,
7645
- 'border-width': border.width,
7646
- 'border-color': border.color,
7647
- 'border-style': border.style,
7572
+ width: this.parseSidesWithUnits(input.width),
7573
+ radius: this.parseCorners(input.radius),
7574
+ color: this.parseSides(input.color),
7575
+ style: this.parseSides(input.style),
7648
7576
  };
7649
7577
  }
7650
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPBlockWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
7651
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPBlockWidgetViewComponent, isStandalone: true, selector: "axp-block-widget", host: { properties: { "class": "this.__class", "style": "this.__style" } }, usesInheritance: true, ngImport: i0, template: `
7652
- @for (node of children(); track $index) {
7653
- <ng-container
7654
- axp-widget-renderer
7655
- [node]="node"
7656
- [index]="index"
7657
- [parentNode]="this"
7658
- [mode]="this.mode"
7659
- ></ng-container>
7578
+ /**
7579
+ * Reverses a spacing box object into a string representation.
7580
+ * @param input - Spacing box object.
7581
+ * @param units - Units for margin and padding.
7582
+ * @returns String representation of the spacing box.
7583
+ */
7584
+ static parseSpacingBoxReverse(input, units) {
7585
+ const format = (value, unit) => `${value}${unit}`;
7586
+ return {
7587
+ margin: AXPPropertyEditorHelper.condenseShorthand([
7588
+ format(input.margin.top, units.margin.top),
7589
+ format(input.margin.right, units.margin.right),
7590
+ format(input.margin.bottom, units.margin.bottom),
7591
+ format(input.margin.left, units.margin.left),
7592
+ ]),
7593
+ padding: AXPPropertyEditorHelper.condenseShorthand([
7594
+ format(input.padding.top, units.padding.top),
7595
+ format(input.padding.right, units.padding.right),
7596
+ format(input.padding.bottom, units.padding.bottom),
7597
+ format(input.padding.left, units.padding.left),
7598
+ ]),
7599
+ };
7600
+ }
7601
+ /**
7602
+ * Reverses a border box object into a string representation.
7603
+ * @param input - Border box object.
7604
+ * @param units - Units for width, radius, color, and style.
7605
+ * @returns String representation of the border box.
7606
+ */
7607
+ static parseBorderBoxReverse(input, units) {
7608
+ const format = (value, unit) => `${value}${unit}`;
7609
+ return {
7610
+ width: AXPPropertyEditorHelper.condenseShorthand([
7611
+ format(input.width.top, units.width.top),
7612
+ format(input.width.right, units.width.right),
7613
+ format(input.width.bottom, units.width.bottom),
7614
+ format(input.width.left, units.width.left),
7615
+ ]),
7616
+ radius: AXPPropertyEditorHelper.condenseShorthand([
7617
+ format(input.radius['top-left'], units.radius['top-left']),
7618
+ format(input.radius['top-right'], units.radius['top-right']),
7619
+ format(input.radius['bottom-right'], units.radius['bottom-right']),
7620
+ format(input.radius['bottom-left'], units.radius['bottom-left']),
7621
+ ]),
7622
+ color: AXPPropertyEditorHelper.condenseShorthand([
7623
+ `${input.color.top}${units.color.top}`,
7624
+ `${input.color.right}${units.color.right}`,
7625
+ `${input.color.bottom}${units.color.bottom}`,
7626
+ `${input.color.left}${units.color.left}`,
7627
+ ]),
7628
+ style: AXPPropertyEditorHelper.condenseShorthand([
7629
+ `${input.style.top}${units.style.top}`,
7630
+ `${input.style.right}${units.style.right}`,
7631
+ `${input.style.bottom}${units.style.bottom}`,
7632
+ `${input.style.left}${units.style.left}`,
7633
+ ]),
7634
+ };
7635
+ }
7636
+ /**
7637
+ * Parses a value with a unit (e.g., "20px") and returns its numeric value and unit.
7638
+ * @param input - Input string or number.
7639
+ * @returns Object with value and unit.
7640
+ */
7641
+ static getValueWithUnit(input) {
7642
+ if (typeof input === 'number')
7643
+ return { value: input, unit: 'px' };
7644
+ if (input === 'auto')
7645
+ return { value: 0, unit: 'px' };
7646
+ const match = input.match(/^([0-9.]+)([a-z%]*)$/i);
7647
+ if (!match)
7648
+ throw new Error(`Invalid unit format: ${input}`);
7649
+ return { value: parseFloat(match[1]), unit: match[2] || '' };
7650
+ }
7651
+ /**
7652
+ * Reverses a numeric value and unit into a single string.
7653
+ * @param value - Numeric value.
7654
+ * @param unit - Unit string.
7655
+ * @returns Combined string.
7656
+ */
7657
+ static getValueFromUnit(value, unit) {
7658
+ return unit ? `${value}${unit}` : `${value}`;
7659
+ }
7660
+ /**
7661
+ * Parses a gap string into x and y values and units.
7662
+ *
7663
+ * @param gapString The gap string to parse (e.g., "10px", "10px 20px").
7664
+ * @returns An object containing the x and y values and units.
7665
+ * @throws Error If the gap string is invalid.
7666
+ */
7667
+ static parseGap(gap) {
7668
+ // Split the gap string into parts
7669
+ const parts = gap.split(/\s+/);
7670
+ // Extract the first value and unit using a regex
7671
+ const match = parts[0].match(/^(\d+\.?\d*)([a-z%]+)$/);
7672
+ if (!match) {
7673
+ throw new Error('Invalid gap format');
7674
+ }
7675
+ const [, xValue, unit] = match;
7676
+ // Determine the y value
7677
+ let yValue = parseFloat(xValue); // Default to the same as x
7678
+ if (parts.length === 2) {
7679
+ const secondMatch = parts[1].match(/^(\d+\.?\d*)[a-z%]+$/);
7680
+ if (!secondMatch) {
7681
+ throw new Error('Invalid gap format');
7682
+ }
7683
+ yValue = parseFloat(secondMatch[1]);
7684
+ }
7685
+ return {
7686
+ values: {
7687
+ x: parseFloat(xValue),
7688
+ y: yValue,
7689
+ },
7690
+ unit,
7691
+ };
7692
+ }
7693
+ /**
7694
+ * Extracts the repetition count from a CSS grid template string of the format "repeat(N, 1fr)".
7695
+ *
7696
+ * @param gridTemplate - The CSS grid template string, e.g., "repeat(5, 1fr)".
7697
+ * @returns The number of repetitions as a number.
7698
+ */
7699
+ static parseGridTemplate(gridTemplate) {
7700
+ const match = gridTemplate.match(/^repeat\((\d+),\s*1fr\)$/);
7701
+ if (!match) {
7702
+ throw new Error("Invalid grid template format. Expected 'repeat(N, 1fr)'.");
7703
+ }
7704
+ return parseInt(match[1], 10);
7705
+ }
7706
+ /**
7707
+ * Creates a CSS grid template string of the format "repeat(N, 1fr)"
7708
+ * based on the provided repetition count.
7709
+ *
7710
+ * @param repetitionCount - The number of repetitions.
7711
+ * @returns The CSS grid template string, e.g., "repeat(5, 1fr)".
7712
+ */
7713
+ static createGridTemplate(repetitionCount) {
7714
+ if (repetitionCount <= 0) {
7715
+ throw new Error('Repetition count must be a positive integer.');
7716
+ }
7717
+ return `repeat(${repetitionCount}, 1fr)`;
7660
7718
  }
7661
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "directive", type: i1$5.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], exportAs: ["widgetRenderer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7662
7719
  }
7663
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPBlockWidgetViewComponent, decorators: [{
7720
+
7721
+ class AXPAdvancedGridWidgetDesignerComponent extends AXPWidgetComponent {
7722
+ constructor() {
7723
+ super();
7724
+ this.el = inject(ElementRef);
7725
+ this.designerService = inject(AXPDesignerService);
7726
+ this.container = viewChild(AXGridLayoutContainerComponent);
7727
+ this.widgetOption = {
7728
+ h: 1,
7729
+ w: 1,
7730
+ content: '',
7731
+ };
7732
+ this.gridOptions = {
7733
+ column: 6,
7734
+ cellHeight: 100,
7735
+ margin: 5,
7736
+ minRow: 1,
7737
+ removable: '.grid-stack-trash',
7738
+ acceptWidgets: true,
7739
+ // float: true,
7740
+ // rtl: true,
7741
+ };
7742
+ this.cols = computed(() => {
7743
+ const value = this.calcGridRowOrColumn(this.options()['gridOptions']?.default?.gridTemplateColumns ?? 'repeat(1, 1fr)');
7744
+ this.container()?.setColumn(value);
7745
+ return value;
7746
+ });
7747
+ this.rows = computed(() => this.calcGridRowOrColumn(this.options()['gridOptions']?.default?.gridTemplateRows ?? 'repeat(1, 1fr)'));
7748
+ this.align = computed(() => this.options()['gridOptions']?.default?.alignItems ?? 'stretch');
7749
+ this.justify = computed(() => this.options()['gridOptions']?.default?.justifyItems ?? 'stretch');
7750
+ this.gap = computed(() => this.options()['gridOptions']?.default?.gap ?? '1px');
7751
+ this.cells = computed(() => this.calcTotalCells(this.options()['gridOptions']?.default?.gridTemplateRows ?? 'repeat(1, 1fr)', this.options()['gridOptions']?.default?.gridTemplateColumns ?? 'repeat(1, 1fr)'));
7752
+ this.settled = computed(() => this.cols() * this.rows() > 1 && this.children().length);
7753
+ // eff = effect(() => console.log(this.options()['gridOptions']));
7754
+ // #columnsChangeEffect = effect(() => {
7755
+ // debugger;
7756
+ // this.cols();
7757
+ // this.container();
7758
+ // untracked(() =>);
7759
+ // });
7760
+ this.#rowOrColumnChangeEffect = effect(() => {
7761
+ const deferent = this.cells() - this.children().length;
7762
+ untracked(() => {
7763
+ if (deferent > 0) {
7764
+ Array.from({ length: deferent })
7765
+ .map(() => ({
7766
+ type: AXPWidgetsCatalog.gridItem,
7767
+ }))
7768
+ .forEach((node) => {
7769
+ this.designerService.addWidget(this.node, node);
7770
+ });
7771
+ }
7772
+ else if (deferent < 0) {
7773
+ this.children()
7774
+ .slice(deferent)
7775
+ .forEach((node) => this.designerService.removeWidget(node));
7776
+ }
7777
+ });
7778
+ });
7779
+ this.#af = afterRender(() => {
7780
+ if (this.settled()) {
7781
+ {
7782
+ const els = this.el.nativeElement.querySelectorAll('ax-grid-layout-widget > .grid-stack-item-content');
7783
+ if (els.length) {
7784
+ els.forEach((item) => {
7785
+ if (item instanceof HTMLElement) {
7786
+ item.style.removeProperty('justify-content');
7787
+ item.style.justifyContent = this.justify();
7788
+ item.style.removeProperty('align-items');
7789
+ item.style.alignItems = this.align();
7790
+ }
7791
+ else {
7792
+ console.warn('Found a non-HTMLElement within the selected elements:', item);
7793
+ }
7794
+ });
7795
+ }
7796
+ else {
7797
+ console.warn('No grid-stack-item-content elements found in the afterRender hook.');
7798
+ }
7799
+ }
7800
+ }
7801
+ });
7802
+ window.ag = this;
7803
+ }
7804
+ handleDrawerSelect(e) {
7805
+ this.designerService.update({
7806
+ values: {
7807
+ // options: e,
7808
+ options: {
7809
+ gridOptions: {
7810
+ default: {
7811
+ gridTemplateColumns: `repeat(${e.cols}, 1fr)`,
7812
+ gridTemplateRows: `repeat(${e.rows}, 1fr)`,
7813
+ gap: '10px',
7814
+ },
7815
+ },
7816
+ },
7817
+ },
7818
+ mode: 'update',
7819
+ widget: this.node,
7820
+ });
7821
+ const list = Array.from({ length: this.cells() }).map(() => ({
7822
+ type: AXPWidgetsCatalog.gridItem,
7823
+ }));
7824
+ list.forEach((node) => {
7825
+ this.designerService.addWidget(this.node, node);
7826
+ });
7827
+ }
7828
+ // eff = effect(() => console.log(this.options()['gridOptions']));
7829
+ // #columnsChangeEffect = effect(() => {
7830
+ // debugger;
7831
+ // this.cols();
7832
+ // this.container();
7833
+ // untracked(() =>);
7834
+ // });
7835
+ #rowOrColumnChangeEffect;
7836
+ calcTotalCells(rows, cols) {
7837
+ return AXPPropertyEditorHelper.parseGridTemplate(rows) * AXPPropertyEditorHelper.parseGridTemplate(cols);
7838
+ }
7839
+ calcGridRowOrColumn(value) {
7840
+ return AXPPropertyEditorHelper.parseGridTemplate(value);
7841
+ }
7842
+ #af;
7843
+ get __class() {
7844
+ return {
7845
+ 'ax-widget-container': true,
7846
+ 'ax-block': true,
7847
+ 'ax-w-full': true,
7848
+ };
7849
+ }
7850
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPAdvancedGridWidgetDesignerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7851
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPAdvancedGridWidgetDesignerComponent, isStandalone: true, selector: "axp-advanced-grid-layout-widget", host: { properties: { "class": "this.__class" } }, providers: [
7852
+ {
7853
+ provide: AXPWidgetComponent,
7854
+ useExisting: AXPAdvancedGridWidgetDesignerComponent,
7855
+ },
7856
+ ], viewQueries: [{ propertyName: "container", first: true, predicate: AXGridLayoutContainerComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
7857
+ @if(settled()) {
7858
+ <ax-grid-layout-container [options]="gridOptions">
7859
+ @for (child of children(); track $index) {
7860
+ <ax-grid-layout-widget [options]="widgetOption">
7861
+ <ng-container
7862
+ axp-widget-designer-renderer
7863
+ [node]="child"
7864
+ [parentNode]="this"
7865
+ [mode]="this.mode"
7866
+ [locked]="this.locked"
7867
+ >
7868
+ </ng-container>
7869
+ </ax-grid-layout-widget>
7870
+ }
7871
+ </ax-grid-layout-container>
7872
+ <div class="ax-p-2">
7873
+ <div class="grid-stack-trash ax-w-full ax-rounded-lg ax-border-2 ax-border-dashed ax-border-danger-400/50"></div>
7874
+ </div>
7875
+ } @else {
7876
+ <axp-designer-grid-drawer (onSelect)="handleDrawerSelect($event)"></axp-designer-grid-drawer>
7877
+ }
7878
+ <!--TO BE SURE ALL DYNAMIC TAILWIND CLASSES WORK WELL!-->
7879
+ @if(false){
7880
+ <div class="ax-hidden">
7881
+ ax-items-start ax-items-center ax-items-end ax-items-stretch a x-justify-items-start ax-justify-items-center
7882
+ ax-justify-items-end ax-justify-items-stretch
7883
+ </div>
7884
+ }
7885
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXGridLayoutBuilderModule }, { kind: "component", type: i1$5.AXGridLayoutContainerComponent, selector: "ax-grid-layout-container", inputs: ["options", "isEmpty"], outputs: ["onAdded", "onChange", "onDisable", "onDrag", "onDragStart", "onDragStop", "onDropped", "onEnable", "onRemoved", "onResize", "onResizeStart", "onResizeStop", "isRendered", "isEmptyChange"] }, { kind: "component", type: i1$5.AXGridLayoutWidgetComponent, selector: "ax-grid-layout-widget", inputs: ["options"] }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "directive", type: AXPWidgetDesignerRendererDirective, selector: "[axp-widget-designer-renderer]", inputs: ["parentNode", "index", "locked", "mode", "node"] }, { kind: "component", type: AXPDesignerGridDrawerComponent, selector: "axp-designer-grid-drawer", inputs: ["rows", "columns"], outputs: ["rowsChange", "columnsChange", "onSelect"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7886
+ }
7887
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPAdvancedGridWidgetDesignerComponent, decorators: [{
7664
7888
  type: Component,
7665
7889
  args: [{
7666
- selector: 'axp-block-widget',
7890
+ selector: 'axp-advanced-grid-layout-widget',
7667
7891
  template: `
7668
- @for (node of children(); track $index) {
7669
- <ng-container
7670
- axp-widget-renderer
7671
- [node]="node"
7672
- [index]="index"
7673
- [parentNode]="this"
7674
- [mode]="this.mode"
7675
- ></ng-container>
7892
+ @if(settled()) {
7893
+ <ax-grid-layout-container [options]="gridOptions">
7894
+ @for (child of children(); track $index) {
7895
+ <ax-grid-layout-widget [options]="widgetOption">
7896
+ <ng-container
7897
+ axp-widget-designer-renderer
7898
+ [node]="child"
7899
+ [parentNode]="this"
7900
+ [mode]="this.mode"
7901
+ [locked]="this.locked"
7902
+ >
7903
+ </ng-container>
7904
+ </ax-grid-layout-widget>
7905
+ }
7906
+ </ax-grid-layout-container>
7907
+ <div class="ax-p-2">
7908
+ <div class="grid-stack-trash ax-w-full ax-rounded-lg ax-border-2 ax-border-dashed ax-border-danger-400/50"></div>
7909
+ </div>
7910
+ } @else {
7911
+ <axp-designer-grid-drawer (onSelect)="handleDrawerSelect($event)"></axp-designer-grid-drawer>
7912
+ }
7913
+ <!--TO BE SURE ALL DYNAMIC TAILWIND CLASSES WORK WELL!-->
7914
+ @if(false){
7915
+ <div class="ax-hidden">
7916
+ ax-items-start ax-items-center ax-items-end ax-items-stretch a x-justify-items-start ax-justify-items-center
7917
+ ax-justify-items-end ax-justify-items-stretch
7918
+ </div>
7676
7919
  }
7677
7920
  `,
7678
7921
  changeDetection: ChangeDetectionStrategy.OnPush,
7679
- imports: [CommonModule, AXPLayoutBuilderModule],
7922
+ imports: [
7923
+ CommonModule,
7924
+ AXGridLayoutBuilderModule,
7925
+ AXPLayoutBuilderModule,
7926
+ AXPWidgetDesignerRendererDirective,
7927
+ AXPDesignerGridDrawerComponent,
7928
+ ],
7929
+ providers: [
7930
+ {
7931
+ provide: AXPWidgetComponent,
7932
+ useExisting: AXPAdvancedGridWidgetDesignerComponent,
7933
+ },
7934
+ ],
7680
7935
  }]
7681
- }], propDecorators: { __class: [{
7936
+ }], ctorParameters: () => [], propDecorators: { __class: [{
7682
7937
  type: HostBinding,
7683
7938
  args: ['class']
7684
- }], __style: [{
7685
- type: HostBinding,
7686
- args: ['style']
7687
7939
  }] } });
7688
7940
 
7689
- var blockWidgetView_component = /*#__PURE__*/Object.freeze({
7941
+ var advancedGridWidgetDesigner_component = /*#__PURE__*/Object.freeze({
7690
7942
  __proto__: null,
7691
- AXPBlockWidgetViewComponent: AXPBlockWidgetViewComponent
7943
+ AXPAdvancedGridWidgetDesignerComponent: AXPAdvancedGridWidgetDesignerComponent
7692
7944
  });
7693
7945
 
7694
- const AXPBlockWidget = {
7695
- name: 'block-layout',
7696
- type: 'container',
7697
- title: 'Block',
7698
- description: 'Organizes content in blocks',
7699
- icon: 'fa-solid fa-block',
7700
- group: AXP_WIDGETS_LAYOUT_GROUP,
7701
- options: {
7702
- canInsert: true,
7703
- },
7704
- properties: [
7705
- AXP_NAME_PROPERTY,
7706
- // AXP_FONT_SIZE_PROPERTY,
7707
- // cloneProperty(AXP_BG_COLOR_PROPERTY, { schema: { defaultValue: null } }),
7708
- ...AXP_LAYOUT_FLEX_PROPERTIES,
7709
- AXP_LAYOUT_SPACING_PROPERTY,
7710
- AXP_LAYOUT_BORDER_PROPERTY,
7711
- AXP_LAYOUT_FLEX_PROPERTY,
7712
- ],
7713
- components: {
7714
- designer: {
7715
- component: () => Promise.resolve().then(function () { return blockWidgetDesigner_component; }).then((c) => c.AXPBlockWidgetDesignerComponent),
7716
- },
7717
- edit: {
7718
- component: () => Promise.resolve().then(function () { return blockWidgetView_component; }).then((c) => c.AXPBlockWidgetViewComponent),
7719
- },
7720
- print: {
7721
- component: () => Promise.resolve().then(function () { return blockWidgetView_component; }).then((c) => c.AXPBlockWidgetViewComponent),
7722
- },
7723
- view: {
7724
- component: () => Promise.resolve().then(function () { return blockWidgetView_component; }).then((c) => c.AXPBlockWidgetViewComponent),
7725
- },
7726
- },
7727
- };
7728
-
7729
- class AXPPageWidgetViewComponent extends AXPWidgetComponent {
7946
+ class AXPAdvancedGridWidgetViewComponent extends AXPWidgetComponent {
7730
7947
  constructor() {
7731
7948
  super(...arguments);
7732
- this.backgroundColor = computed(() => this.options()["backgroundColor"]);
7733
- }
7734
- get __style() {
7735
- return {
7736
- 'background-color': this.backgroundColor(),
7737
- };
7738
- }
7739
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPPageWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
7740
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPPageWidgetViewComponent, isStandalone: true, selector: "axp-page-widget", host: { properties: { "style": "this.__style" } }, usesInheritance: true, ngImport: i0, template: `
7741
- @for (node of children(); track $index) {
7742
- <ng-container axp-widget-renderer [node]="node" [index]="index" [parentNode]="this" [mode]="this.mode"></ng-container>
7949
+ this.cols = computed(() => this.options()['cols'] ?? 1);
7950
+ this.rows = computed(() => this.options()['rows'] ?? 1);
7951
+ this.gap = computed(() => this.options()['gap'] ?? 0);
7743
7952
  }
7744
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "directive", type: i1$5.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], exportAs: ["widgetRenderer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7953
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPAdvancedGridWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
7954
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPAdvancedGridWidgetViewComponent, isStandalone: true, selector: "axp-advanced-grid-layout-widget", usesInheritance: true, ngImport: i0, template: `
7955
+ <div class="ax-grid ax-grid-cols-{{ cols() }} ax-grid-rows-{{ rows() }} ax-gap-{{ gap() }}">
7956
+ @for (child of children(); track $index) {
7957
+ <ng-container axp-widget-renderer [node]="child" [index]="index" [parentNode]="this" [mode]="this.mode">
7958
+ </ng-container>
7959
+ }
7960
+ </div>
7961
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "directive", type: i1$6.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], exportAs: ["widgetRenderer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7745
7962
  }
7746
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPPageWidgetViewComponent, decorators: [{
7963
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPAdvancedGridWidgetViewComponent, decorators: [{
7747
7964
  type: Component,
7748
7965
  args: [{
7749
- selector: 'axp-page-widget',
7966
+ selector: 'axp-advanced-grid-layout-widget',
7750
7967
  template: `
7751
- @for (node of children(); track $index) {
7752
- <ng-container axp-widget-renderer [node]="node" [index]="index" [parentNode]="this" [mode]="this.mode"></ng-container>
7753
- }
7968
+ <div class="ax-grid ax-grid-cols-{{ cols() }} ax-grid-rows-{{ rows() }} ax-gap-{{ gap() }}">
7969
+ @for (child of children(); track $index) {
7970
+ <ng-container axp-widget-renderer [node]="child" [index]="index" [parentNode]="this" [mode]="this.mode">
7971
+ </ng-container>
7972
+ }
7973
+ </div>
7754
7974
  `,
7755
7975
  changeDetection: ChangeDetectionStrategy.OnPush,
7756
- encapsulation: ViewEncapsulation.None,
7757
- imports: [CommonModule, AXPLayoutBuilderModule]
7976
+ imports: [CommonModule, AXPLayoutBuilderModule],
7758
7977
  }]
7759
- }], propDecorators: { __style: [{
7760
- type: HostBinding,
7761
- args: ['style']
7762
- }] } });
7978
+ }] });
7763
7979
 
7764
- var pageWidgetView_component = /*#__PURE__*/Object.freeze({
7980
+ var advancedGridWidgetView_component = /*#__PURE__*/Object.freeze({
7765
7981
  __proto__: null,
7766
- AXPPageWidgetViewComponent: AXPPageWidgetViewComponent
7982
+ AXPAdvancedGridWidgetViewComponent: AXPAdvancedGridWidgetViewComponent
7767
7983
  });
7768
7984
 
7769
- const AXPPageWidget = {
7770
- name: 'page-layout',
7771
- title: 'Page',
7772
- description: 'Structures the entire page',
7773
- icon: 'fa-solid fa-page',
7774
- group: AXP_WIDGETS_LAYOUT_GROUP,
7985
+ const AXPAdvancedGridWidget = {
7986
+ name: 'advanced-grid-layout',
7987
+ title: 'Advanced Grid Layout',
7775
7988
  type: 'container',
7776
- visible: false,
7777
- properties: [
7778
- AXP_THEME_PROPERTY,
7779
- cloneProperty(AXP_BG_COLOR_PROPERTY, { schema: { defaultValue: '#ffffff' } }),
7780
- AXP_FONT_SIZE_PROPERTY,
7781
- createBooleanProperty({
7782
- name: 'hasHeader',
7783
- path: 'options.hasHeader',
7784
- title: 'Header',
7785
- group: AXP_BEHAVIOR_PROPERTY_GROUP,
7786
- defaultValue: true,
7787
- }),
7788
- createBooleanProperty({
7789
- name: 'hasFooter',
7790
- path: 'options.hasFooter',
7791
- title: 'Footer',
7792
- group: AXP_BEHAVIOR_PROPERTY_GROUP,
7793
- defaultValue: true,
7794
- }),
7795
- ],
7989
+ group: AXP_WIDGETS_LAYOUT_GROUP,
7990
+ icon: 'fa-solid fa-grid-2',
7991
+ properties: [AXP_NAME_PROPERTY, AXP_LAYOUT_GRID_PROPERTY],
7796
7992
  components: {
7797
7993
  view: {
7798
- component: () => Promise.resolve().then(function () { return pageWidgetView_component; }).then((c) => c.AXPPageWidgetViewComponent),
7994
+ component: () => Promise.resolve().then(function () { return advancedGridWidgetView_component; }).then((c) => c.AXPAdvancedGridWidgetViewComponent),
7799
7995
  },
7800
7996
  edit: {
7801
- component: () => Promise.resolve().then(function () { return pageWidgetView_component; }).then((c) => c.AXPPageWidgetViewComponent),
7802
- },
7803
- print: {
7804
- component: () => Promise.resolve().then(function () { return pageWidgetView_component; }).then((c) => c.AXPPageWidgetViewComponent),
7997
+ component: () => Promise.resolve().then(function () { return advancedGridWidgetView_component; }).then((c) => c.AXPAdvancedGridWidgetViewComponent),
7805
7998
  },
7806
7999
  designer: {
7807
- component: () => import('./acorex-platform-widgets-page-widget-designer.component-CITselce.mjs').then((c) => c.AXPPageWidgetDesignerComponent),
8000
+ component: () => Promise.resolve().then(function () { return advancedGridWidgetDesigner_component; }).then((c) => c.AXPAdvancedGridWidgetDesignerComponent),
7808
8001
  },
7809
8002
  },
7810
8003
  };
7811
8004
 
7812
- class AXPRepeaterWidgetViewComponent extends AXPWidgetComponent {
8005
+ class AXPBlockWidgetDesignerComponent extends AXPWidgetComponent {
7813
8006
  constructor() {
7814
8007
  super(...arguments);
7815
- this.rows = signal([]);
8008
+ this.backgroundColor = computed(() => this.options()['backgroundColor']);
8009
+ this.cssClass = computed(() => this.options()['cssClass']);
8010
+ this.flexAlignItems = computed(() => this.options()['flexAlignItems']?.id);
8011
+ this.flexJustifyContent = computed(() => this.options()['flexJustifyContent']?.id);
8012
+ this.flexWrap = computed(() => this.options()['flexWrap']?.id);
8013
+ this.flexDirection = computed(() => this.options()['flexDirection']?.id);
8014
+ this.gap = computed(() => this.options()['gap'] ?? 0);
7816
8015
  }
7817
- ngAfterViewInit() {
7818
- this.rows.set(this.getValue() ?? []);
8016
+ get __class() {
8017
+ const cls = {};
8018
+ //
8019
+ cls[`ax-w-full`] = true;
8020
+ cls[`ax-widget-outline`] = true;
8021
+ //
8022
+ cls[`ax-flex`] = true;
8023
+ cls[`ax-gap-${this.gap()}`] = true;
8024
+ //
8025
+ if (this.flexAlignItems()) {
8026
+ cls[this.flexAlignItems()] = true;
8027
+ }
8028
+ if (this.flexJustifyContent()) {
8029
+ cls[this.flexJustifyContent()] = true;
8030
+ }
8031
+ if (this.flexWrap()) {
8032
+ cls[this.flexWrap()] = true;
8033
+ }
8034
+ if (this.flexDirection()) {
8035
+ cls[this.flexDirection()] = true;
8036
+ }
8037
+ return cls;
7819
8038
  }
7820
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPRepeaterWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
7821
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPRepeaterWidgetViewComponent, isStandalone: true, selector: "axp-repeater-widget", usesInheritance: true, ngImport: i0, template: `
7822
- @for(row of rows();let i=$index; track i)
7823
- {
7824
- @for (node of children();track $index)
7825
- {
7826
- <ng-container axp-widget-renderer [node]="node" [parentNode]="this" [index]="i" [mode]="this.mode"></ng-container>
7827
- }
8039
+ // TEST PURPOSE ONLY
8040
+ // eff = effect(() => console.log(this.options()['flexOptions']));
8041
+ get __style() {
8042
+ const spacing = this.options()?.['spacing'];
8043
+ const border = this.options()?.['border'];
8044
+ const flex = this.options()?.['flexOptions'];
8045
+ return {
8046
+ // Background
8047
+ 'background-color': this.backgroundColor(),
8048
+ // Spacing
8049
+ padding: spacing?.padding ?? 0,
8050
+ margin: spacing?.margin ?? 0,
8051
+ // Border
8052
+ 'border-radius': border?.radius ?? 0,
8053
+ 'border-width': border?.width ?? 0,
8054
+ 'border-color': border?.color ?? '#000000',
8055
+ 'border-style': border?.style ?? 'none',
8056
+ // Flexbox
8057
+ 'flex-direction': flex?.flexDirection ?? 'row',
8058
+ 'flex-wrap': flex?.flexWrap ?? 'nowrap',
8059
+ 'justify-content': flex?.justifyContent ?? 'flex-start',
8060
+ 'align-items': flex?.alignItems ?? 'flex-start',
8061
+ gap: flex?.gap ?? '0px',
8062
+ };
8063
+ }
8064
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPBlockWidgetDesignerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
8065
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPBlockWidgetDesignerComponent, isStandalone: true, selector: "axp-block-widget", host: { properties: { "class": "this.__class", "style": "this.__style" } }, providers: [
8066
+ {
8067
+ provide: AXPWidgetComponent,
8068
+ useExisting: AXPBlockWidgetDesignerComponent,
8069
+ },
8070
+ ], usesInheritance: true, ngImport: i0, template: `
8071
+ @for (node of children(); track $index) {
8072
+ <ng-container
8073
+ axp-widget-designer-renderer
8074
+ [node]="node"
8075
+ [parentNode]="this"
8076
+ [mode]="this.mode"
8077
+ [locked]="this.locked"
8078
+ ></ng-container>
8079
+ } @empty {
8080
+ <axp-designer-add-widget-mini-button
8081
+ class="ax-flex-1 ax-self-center ax-place-self-end"
8082
+ ></axp-designer-add-widget-mini-button>
7828
8083
  }
7829
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "directive", type: i1$5.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], exportAs: ["widgetRenderer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8084
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "directive", type: AXPWidgetDesignerRendererDirective, selector: "[axp-widget-designer-renderer]", inputs: ["parentNode", "index", "locked", "mode", "node"] }, { kind: "component", type: AXPDesignerAddWidgetMiniButtonComponent, selector: "axp-designer-add-widget-mini-button", outputs: ["onClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7830
8085
  }
7831
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPRepeaterWidgetViewComponent, decorators: [{
8086
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPBlockWidgetDesignerComponent, decorators: [{
7832
8087
  type: Component,
7833
8088
  args: [{
7834
- selector: 'axp-repeater-widget',
8089
+ selector: 'axp-block-widget',
7835
8090
  template: `
7836
- @for(row of rows();let i=$index; track i)
7837
- {
7838
- @for (node of children();track $index)
7839
- {
7840
- <ng-container axp-widget-renderer [node]="node" [parentNode]="this" [index]="i" [mode]="this.mode"></ng-container>
7841
- }
8091
+ @for (node of children(); track $index) {
8092
+ <ng-container
8093
+ axp-widget-designer-renderer
8094
+ [node]="node"
8095
+ [parentNode]="this"
8096
+ [mode]="this.mode"
8097
+ [locked]="this.locked"
8098
+ ></ng-container>
8099
+ } @empty {
8100
+ <axp-designer-add-widget-mini-button
8101
+ class="ax-flex-1 ax-self-center ax-place-self-end"
8102
+ ></axp-designer-add-widget-mini-button>
7842
8103
  }
7843
8104
  `,
7844
8105
  changeDetection: ChangeDetectionStrategy.OnPush,
7845
- imports: [CommonModule, FormsModule, AXPLayoutBuilderModule]
8106
+ imports: [
8107
+ CommonModule,
8108
+ AXPLayoutBuilderModule,
8109
+ AXPWidgetDesignerRendererDirective,
8110
+ AXPDesignerAddWidgetMiniButtonComponent,
8111
+ ],
8112
+ providers: [
8113
+ {
8114
+ provide: AXPWidgetComponent,
8115
+ useExisting: AXPBlockWidgetDesignerComponent,
8116
+ },
8117
+ ],
7846
8118
  }]
7847
- }] });
8119
+ }], propDecorators: { __class: [{
8120
+ type: HostBinding,
8121
+ args: ['class']
8122
+ }], __style: [{
8123
+ type: HostBinding,
8124
+ args: ['style']
8125
+ }] } });
7848
8126
 
7849
- var repeaterWidgetView_component = /*#__PURE__*/Object.freeze({
8127
+ var blockWidgetDesigner_component = /*#__PURE__*/Object.freeze({
7850
8128
  __proto__: null,
7851
- AXPRepeaterWidgetViewComponent: AXPRepeaterWidgetViewComponent
8129
+ AXPBlockWidgetDesignerComponent: AXPBlockWidgetDesignerComponent
7852
8130
  });
7853
8131
 
7854
- class AXPRepeaterWidgetEditComponent extends AXPWidgetComponent {
8132
+ class AXPBlockWidgetViewComponent extends AXPWidgetComponent {
7855
8133
  constructor() {
7856
8134
  super(...arguments);
7857
- this.disabled = computed(() => this.options()["disabled"]);
7858
- this.hasControls = computed(() => this.options()["hasControls"]);
7859
- this.rows = computed(() => {
7860
- return this.convertValueToArray() ?? [];
7861
- });
7862
- }
7863
- handleAddItemClick() {
7864
- this.addNew();
8135
+ this.backgroundColor = computed(() => this.options()['backgroundColor']);
8136
+ this.cssClass = computed(() => this.options()['cssClass']);
8137
+ this.flexAlignItems = computed(() => this.options()['flexAlignItems']?.id);
8138
+ this.flexJustifyContent = computed(() => this.options()['flexJustifyContent']?.id);
8139
+ this.flexWrap = computed(() => this.options()['flexWrap']?.id);
8140
+ this.flexDirection = computed(() => this.options()['flexDirection']?.id);
8141
+ this.gap = computed(() => this.options()['gap'] ?? 0);
7865
8142
  }
7866
- handleRemoveItemClick(i) {
7867
- this.removeItem(i);
8143
+ get __class() {
8144
+ const cls = {};
8145
+ //
8146
+ cls[`ax-w-full`] = true;
8147
+ //
8148
+ cls[`ax-flex`] = true;
8149
+ cls[`ax-gap-${this.gap()}`] = true;
8150
+ //
8151
+ if (this.flexAlignItems()) {
8152
+ cls[this.flexAlignItems()] = true;
8153
+ }
8154
+ if (this.flexJustifyContent()) {
8155
+ cls[this.flexJustifyContent()] = true;
8156
+ }
8157
+ if (this.flexWrap()) {
8158
+ cls[this.flexWrap()] = true;
8159
+ }
8160
+ if (this.flexDirection()) {
8161
+ cls[this.flexDirection()] = true;
8162
+ }
8163
+ return cls;
7868
8164
  }
7869
- addNew() {
7870
- const newValue = [...(this.convertValueToArray() ?? []), {}];
7871
- this.setValue(newValue);
8165
+ get __style() {
8166
+ const spacing = this.options()['spacing'];
8167
+ const border = this.options()['border'];
8168
+ return {
8169
+ // Background
8170
+ 'background-color': this.backgroundColor(),
8171
+ padding: spacing.padding,
8172
+ margin: spacing.margin,
8173
+ 'border-radius': border.radius,
8174
+ 'border-width': border.width,
8175
+ 'border-color': border.color,
8176
+ 'border-style': border.style,
8177
+ };
8178
+ }
8179
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPBlockWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
8180
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPBlockWidgetViewComponent, isStandalone: true, selector: "axp-block-widget", host: { properties: { "class": "this.__class", "style": "this.__style" } }, usesInheritance: true, ngImport: i0, template: `
8181
+ @for (node of children(); track $index) {
8182
+ <ng-container
8183
+ axp-widget-renderer
8184
+ [node]="node"
8185
+ [index]="index"
8186
+ [parentNode]="this"
8187
+ [mode]="this.mode"
8188
+ ></ng-container>
8189
+ }
8190
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "directive", type: i1$6.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], exportAs: ["widgetRenderer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8191
+ }
8192
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPBlockWidgetViewComponent, decorators: [{
8193
+ type: Component,
8194
+ args: [{
8195
+ selector: 'axp-block-widget',
8196
+ template: `
8197
+ @for (node of children(); track $index) {
8198
+ <ng-container
8199
+ axp-widget-renderer
8200
+ [node]="node"
8201
+ [index]="index"
8202
+ [parentNode]="this"
8203
+ [mode]="this.mode"
8204
+ ></ng-container>
8205
+ }
8206
+ `,
8207
+ changeDetection: ChangeDetectionStrategy.OnPush,
8208
+ imports: [CommonModule, AXPLayoutBuilderModule],
8209
+ }]
8210
+ }], propDecorators: { __class: [{
8211
+ type: HostBinding,
8212
+ args: ['class']
8213
+ }], __style: [{
8214
+ type: HostBinding,
8215
+ args: ['style']
8216
+ }] } });
8217
+
8218
+ var blockWidgetView_component = /*#__PURE__*/Object.freeze({
8219
+ __proto__: null,
8220
+ AXPBlockWidgetViewComponent: AXPBlockWidgetViewComponent
8221
+ });
8222
+
8223
+ const AXPBlockWidget = {
8224
+ name: 'block-layout',
8225
+ type: 'container',
8226
+ title: 'Block',
8227
+ description: 'Organizes content in blocks',
8228
+ icon: 'fa-solid fa-block',
8229
+ group: AXP_WIDGETS_LAYOUT_GROUP,
8230
+ options: {
8231
+ canInsert: true,
8232
+ },
8233
+ properties: [
8234
+ AXP_NAME_PROPERTY,
8235
+ // AXP_FONT_SIZE_PROPERTY,
8236
+ // cloneProperty(AXP_BG_COLOR_PROPERTY, { schema: { defaultValue: null } }),
8237
+ ...AXP_LAYOUT_FLEX_PROPERTIES,
8238
+ AXP_LAYOUT_SPACING_PROPERTY,
8239
+ AXP_LAYOUT_BORDER_PROPERTY,
8240
+ AXP_LAYOUT_FLEX_PROPERTY,
8241
+ ],
8242
+ components: {
8243
+ designer: {
8244
+ component: () => Promise.resolve().then(function () { return blockWidgetDesigner_component; }).then((c) => c.AXPBlockWidgetDesignerComponent),
8245
+ },
8246
+ edit: {
8247
+ component: () => Promise.resolve().then(function () { return blockWidgetView_component; }).then((c) => c.AXPBlockWidgetViewComponent),
8248
+ },
8249
+ print: {
8250
+ component: () => Promise.resolve().then(function () { return blockWidgetView_component; }).then((c) => c.AXPBlockWidgetViewComponent),
8251
+ },
8252
+ view: {
8253
+ component: () => Promise.resolve().then(function () { return blockWidgetView_component; }).then((c) => c.AXPBlockWidgetViewComponent),
8254
+ },
8255
+ },
8256
+ };
8257
+
8258
+ class AXPPageWidgetViewComponent extends AXPWidgetComponent {
8259
+ constructor() {
8260
+ super(...arguments);
8261
+ this.backgroundColor = computed(() => this.options()["backgroundColor"]);
8262
+ }
8263
+ get __style() {
8264
+ return {
8265
+ 'background-color': this.backgroundColor(),
8266
+ };
8267
+ }
8268
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPPageWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
8269
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPPageWidgetViewComponent, isStandalone: true, selector: "axp-page-widget", host: { properties: { "style": "this.__style" } }, usesInheritance: true, ngImport: i0, template: `
8270
+ @for (node of children(); track $index) {
8271
+ <ng-container axp-widget-renderer [node]="node" [index]="index" [parentNode]="this" [mode]="this.mode"></ng-container>
8272
+ }
8273
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "directive", type: i1$6.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], exportAs: ["widgetRenderer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
8274
+ }
8275
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPPageWidgetViewComponent, decorators: [{
8276
+ type: Component,
8277
+ args: [{
8278
+ selector: 'axp-page-widget',
8279
+ template: `
8280
+ @for (node of children(); track $index) {
8281
+ <ng-container axp-widget-renderer [node]="node" [index]="index" [parentNode]="this" [mode]="this.mode"></ng-container>
8282
+ }
8283
+ `,
8284
+ changeDetection: ChangeDetectionStrategy.OnPush,
8285
+ encapsulation: ViewEncapsulation.None,
8286
+ imports: [CommonModule, AXPLayoutBuilderModule]
8287
+ }]
8288
+ }], propDecorators: { __style: [{
8289
+ type: HostBinding,
8290
+ args: ['style']
8291
+ }] } });
8292
+
8293
+ var pageWidgetView_component = /*#__PURE__*/Object.freeze({
8294
+ __proto__: null,
8295
+ AXPPageWidgetViewComponent: AXPPageWidgetViewComponent
8296
+ });
8297
+
8298
+ const AXPPageWidget = {
8299
+ name: 'page-layout',
8300
+ title: 'Page',
8301
+ description: 'Structures the entire page',
8302
+ icon: 'fa-solid fa-page',
8303
+ group: AXP_WIDGETS_LAYOUT_GROUP,
8304
+ type: 'container',
8305
+ visible: false,
8306
+ properties: [
8307
+ AXP_THEME_PROPERTY,
8308
+ cloneProperty(AXP_BG_COLOR_PROPERTY, { schema: { defaultValue: '#ffffff' } }),
8309
+ AXP_FONT_SIZE_PROPERTY,
8310
+ createBooleanProperty({
8311
+ name: 'hasHeader',
8312
+ path: 'options.hasHeader',
8313
+ title: 'Header',
8314
+ group: AXP_BEHAVIOR_PROPERTY_GROUP,
8315
+ defaultValue: true,
8316
+ }),
8317
+ createBooleanProperty({
8318
+ name: 'hasFooter',
8319
+ path: 'options.hasFooter',
8320
+ title: 'Footer',
8321
+ group: AXP_BEHAVIOR_PROPERTY_GROUP,
8322
+ defaultValue: true,
8323
+ }),
8324
+ ],
8325
+ components: {
8326
+ view: {
8327
+ component: () => Promise.resolve().then(function () { return pageWidgetView_component; }).then((c) => c.AXPPageWidgetViewComponent),
8328
+ },
8329
+ edit: {
8330
+ component: () => Promise.resolve().then(function () { return pageWidgetView_component; }).then((c) => c.AXPPageWidgetViewComponent),
8331
+ },
8332
+ print: {
8333
+ component: () => Promise.resolve().then(function () { return pageWidgetView_component; }).then((c) => c.AXPPageWidgetViewComponent),
8334
+ },
8335
+ designer: {
8336
+ component: () => import('./acorex-platform-widgets-page-widget-designer.component-CITselce.mjs').then((c) => c.AXPPageWidgetDesignerComponent),
8337
+ },
8338
+ },
8339
+ };
8340
+
8341
+ class AXPRepeaterWidgetViewComponent extends AXPWidgetComponent {
8342
+ constructor() {
8343
+ super(...arguments);
8344
+ this.rows = signal([]);
8345
+ }
8346
+ ngAfterViewInit() {
8347
+ this.rows.set(this.getValue() ?? []);
8348
+ }
8349
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPRepeaterWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
8350
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPRepeaterWidgetViewComponent, isStandalone: true, selector: "axp-repeater-widget", usesInheritance: true, ngImport: i0, template: `
8351
+ @for(row of rows();let i=$index; track i)
8352
+ {
8353
+ @for (node of children();track $index)
8354
+ {
8355
+ <ng-container axp-widget-renderer [node]="node" [parentNode]="this" [index]="i" [mode]="this.mode"></ng-container>
8356
+ }
8357
+ }
8358
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "directive", type: i1$6.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], exportAs: ["widgetRenderer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8359
+ }
8360
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPRepeaterWidgetViewComponent, decorators: [{
8361
+ type: Component,
8362
+ args: [{
8363
+ selector: 'axp-repeater-widget',
8364
+ template: `
8365
+ @for(row of rows();let i=$index; track i)
8366
+ {
8367
+ @for (node of children();track $index)
8368
+ {
8369
+ <ng-container axp-widget-renderer [node]="node" [parentNode]="this" [index]="i" [mode]="this.mode"></ng-container>
8370
+ }
8371
+ }
8372
+ `,
8373
+ changeDetection: ChangeDetectionStrategy.OnPush,
8374
+ imports: [CommonModule, FormsModule, AXPLayoutBuilderModule]
8375
+ }]
8376
+ }] });
8377
+
8378
+ var repeaterWidgetView_component = /*#__PURE__*/Object.freeze({
8379
+ __proto__: null,
8380
+ AXPRepeaterWidgetViewComponent: AXPRepeaterWidgetViewComponent
8381
+ });
8382
+
8383
+ class AXPRepeaterWidgetEditComponent extends AXPWidgetComponent {
8384
+ constructor() {
8385
+ super(...arguments);
8386
+ this.disabled = computed(() => this.options()["disabled"]);
8387
+ this.hasControls = computed(() => this.options()["hasControls"]);
8388
+ this.rows = computed(() => {
8389
+ return this.convertValueToArray() ?? [];
8390
+ });
8391
+ }
8392
+ handleAddItemClick() {
8393
+ this.addNew();
8394
+ }
8395
+ handleRemoveItemClick(i) {
8396
+ this.removeItem(i);
8397
+ }
8398
+ addNew() {
8399
+ const newValue = [...(this.convertValueToArray() ?? []), {}];
8400
+ this.setValue(newValue);
7872
8401
  }
7873
8402
  removeItem(index) {
7874
8403
  const currentArray = [...this.convertValueToArray()];
@@ -7942,7 +8471,7 @@ class AXPRepeaterWidgetEditComponent extends AXPWidgetComponent {
7942
8471
  You haven't added any items yet. Click “Start Adding Items” to get started!
7943
8472
  </div>
7944
8473
  </ng-template>
7945
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i5.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.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: AXPLayoutBuilderModule }, { kind: "directive", type: i1$5.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], exportAs: ["widgetRenderer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8474
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i5.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.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: AXPLayoutBuilderModule }, { kind: "directive", type: i1$6.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], exportAs: ["widgetRenderer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7946
8475
  }
7947
8476
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPRepeaterWidgetEditComponent, decorators: [{
7948
8477
  type: Component,
@@ -8045,407 +8574,151 @@ class AXPRepeaterWidgetDesignerComponent extends AXPWidgetComponent {
8045
8574
  const cls = {};
8046
8575
  //
8047
8576
  cls[`ax-block`] = true;
8048
- cls[`ax-w-full`] = true;
8049
- return cls;
8050
- }
8051
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPRepeaterWidgetDesignerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
8052
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPRepeaterWidgetDesignerComponent, isStandalone: true, selector: "axp-repeater-widget", host: { properties: { "class": "this.__class" } }, providers: [
8053
- {
8054
- provide: AXPWidgetComponent,
8055
- useExisting: AXPRepeaterWidgetDesignerComponent
8056
- }
8057
- ], usesInheritance: true, ngImport: i0, template: `
8058
- @if(hasControls())
8059
- {
8060
- <div class="ax-grid ax-grid-cols-12 ax-gap-4">
8061
- <div class="ax-col-span-11">
8062
- <ng-container [ngTemplateOutlet]="tpl" ></ng-container>
8063
- </div>
8064
- <ax-button
8065
- [disabled]="disabled()"
8066
- look="twotone"
8067
- color="danger"
8068
- class="ax-col-start-12 ax-col-end-13 ax-justify-self-end ax-self-end"
8069
- >
8070
- <ax-icon icon="fa-regular fa-xmark"></ax-icon>
8071
- </ax-button>
8072
- <ax-button
8073
- [text]="'Add New'"
8074
- look="twotone"
8075
- [disabled]="disabled()"
8076
- class="ax-col-start-10 ax-col-end-13"
8077
- >
8078
- <ax-prefix>
8079
- <ax-icon class="fa-solid fa-add"></ax-icon>
8080
- </ax-prefix>
8081
- </ax-button>
8082
- </div>
8083
- }
8084
- @else {
8085
- <ng-container [ngTemplateOutlet]="tpl"></ng-container>
8086
- }
8087
- <ng-template #tpl>
8088
- @for (node of children();track $index) {
8089
- <ng-container axp-widget-designer-renderer [node]="node" [parentNode]="this" [mode]="this.mode" [locked]="this.locked"> </ng-container>
8090
- }
8091
- @empty {
8092
- <axp-designer-add-widget-mini-button ></axp-designer-add-widget-mini-button>
8093
- }
8094
- </ng-template>
8095
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i5.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.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: AXPLayoutBuilderModule }, { kind: "directive", type: AXPWidgetDesignerRendererDirective, selector: "[axp-widget-designer-renderer]", inputs: ["parentNode", "index", "locked", "mode", "node"] }, { kind: "component", type: AXPDesignerAddWidgetMiniButtonComponent, selector: "axp-designer-add-widget-mini-button", outputs: ["onClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8096
- }
8097
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPRepeaterWidgetDesignerComponent, decorators: [{
8098
- type: Component,
8099
- args: [{
8100
- selector: 'axp-repeater-widget',
8101
- template: `
8102
- @if(hasControls())
8103
- {
8104
- <div class="ax-grid ax-grid-cols-12 ax-gap-4">
8105
- <div class="ax-col-span-11">
8106
- <ng-container [ngTemplateOutlet]="tpl" ></ng-container>
8107
- </div>
8108
- <ax-button
8109
- [disabled]="disabled()"
8110
- look="twotone"
8111
- color="danger"
8112
- class="ax-col-start-12 ax-col-end-13 ax-justify-self-end ax-self-end"
8113
- >
8114
- <ax-icon icon="fa-regular fa-xmark"></ax-icon>
8115
- </ax-button>
8116
- <ax-button
8117
- [text]="'Add New'"
8118
- look="twotone"
8119
- [disabled]="disabled()"
8120
- class="ax-col-start-10 ax-col-end-13"
8121
- >
8122
- <ax-prefix>
8123
- <ax-icon class="fa-solid fa-add"></ax-icon>
8124
- </ax-prefix>
8125
- </ax-button>
8126
- </div>
8127
- }
8128
- @else {
8129
- <ng-container [ngTemplateOutlet]="tpl"></ng-container>
8130
- }
8131
- <ng-template #tpl>
8132
- @for (node of children();track $index) {
8133
- <ng-container axp-widget-designer-renderer [node]="node" [parentNode]="this" [mode]="this.mode" [locked]="this.locked"> </ng-container>
8134
- }
8135
- @empty {
8136
- <axp-designer-add-widget-mini-button ></axp-designer-add-widget-mini-button>
8137
- }
8138
- </ng-template>
8139
- `,
8140
- changeDetection: ChangeDetectionStrategy.OnPush,
8141
- imports: [CommonModule, AXButtonModule, AXDecoratorModule, AXPLayoutBuilderModule, AXPWidgetDesignerRendererDirective, AXPDesignerAddWidgetMiniButtonComponent],
8142
- providers: [
8143
- {
8144
- provide: AXPWidgetComponent,
8145
- useExisting: AXPRepeaterWidgetDesignerComponent
8146
- }
8147
- ]
8148
- }]
8149
- }], propDecorators: { __class: [{
8150
- type: HostBinding,
8151
- args: ['class']
8152
- }] } });
8153
-
8154
- var repeaterWidgetDesigner_component = /*#__PURE__*/Object.freeze({
8155
- __proto__: null,
8156
- AXPRepeaterWidgetDesignerComponent: AXPRepeaterWidgetDesignerComponent
8157
- });
8158
-
8159
- const AXPRepeaterWidget = {
8160
- name: 'repeater-layout',
8161
- title: 'Repeater',
8162
- description: 'Adds repeating form elements',
8163
- icon: 'fa-solid fa-table-list',
8164
- group: AXP_WIDGETS_LAYOUT_GROUP,
8165
- type: 'container',
8166
- properties: [
8167
- AXP_NAME_PROPERTY,
8168
- AXP_DATA_PATH_PROPERTY,
8169
- AXP_DISABLED_PROPERTY,
8170
- createBooleanProperty({
8171
- name: "hasControls",
8172
- title: "Controls",
8173
- group: AXP_BEHAVIOR_PROPERTY_GROUP,
8174
- defaultValue: true,
8175
- path: "options.hasControls",
8176
- })
8177
- ],
8178
- components: {
8179
- view: {
8180
- component: () => Promise.resolve().then(function () { return repeaterWidgetView_component; }).then((c) => c.AXPRepeaterWidgetViewComponent),
8181
- },
8182
- edit: {
8183
- component: () => Promise.resolve().then(function () { return repeaterWidgetEdit_component; }).then((c) => c.AXPRepeaterWidgetEditComponent),
8184
- },
8185
- print: {
8186
- component: () => Promise.resolve().then(function () { return repeaterWidgetPrint_component; }).then((c) => c.AXPRepeaterWidgetPrintComponent),
8187
- },
8188
- designer: {
8189
- component: () => Promise.resolve().then(function () { return repeaterWidgetDesigner_component; }).then((c) => c.AXPRepeaterWidgetDesignerComponent),
8190
- },
8191
- },
8192
- };
8193
-
8194
- /**
8195
- * Utility class for parsing and handling property editor values like borders, spacing, and units.
8196
- */
8197
- class AXPPropertyEditorHelper {
8198
- /**
8199
- * Expands shorthand input values into full sets for sides or corners.
8200
- * @param values - Array of input values.
8201
- * @returns Expanded array of values.
8202
- */
8203
- static expandShorthand(values) {
8204
- switch (values.length) {
8205
- case 1:
8206
- return [values[0], values[0], values[0], values[0]];
8207
- case 2:
8208
- return [values[0], values[1], values[0], values[1]];
8209
- case 3:
8210
- return [values[0], values[1], values[2], values[1]];
8211
- case 4:
8212
- return values;
8213
- default:
8214
- throw new Error(`Invalid shorthand value count. Input: ${values}`);
8215
- }
8216
- }
8217
- /**
8218
- * @param values An array of four values to condense.
8219
- * @returns A condensed string representation of the values.
8220
- */
8221
- static condenseShorthand(values) {
8222
- if (values.length !== 4) {
8223
- throw new Error('Expected 4 values for condensation.');
8224
- }
8225
- if (values[0] === values[1] && values[1] === values[2] && values[2] === values[3]) {
8226
- return `${values[0]}`;
8227
- }
8228
- else if (values[0] === values[2] && values[1] === values[3]) {
8229
- return `${values[0]} ${values[1]}`;
8230
- }
8231
- else if (values[1] === values[3]) {
8232
- return `${values[0]} ${values[1]} ${values[2]}`;
8233
- }
8234
- else {
8235
- return `${values[0]} ${values[1]} ${values[2]} ${values[3]}`;
8236
- }
8237
- }
8238
- /**
8239
- * Parses sides (top, left, bottom, right) from a string.
8240
- * @param input - Input string.
8241
- * @returns Parsed sides object.
8242
- */
8243
- static parseSides(input) {
8244
- const values = this.expandShorthand(input.match(/(?:rgb\([^)]+\)|[^ ]+)/g)?.map((value) => value.trim()) || []);
8245
- return { top: values[0], right: values[1], bottom: values[2], left: values[3] };
8246
- }
8247
- static parseSidesWithUnits(input) {
8248
- const values = this.expandShorthand(input.match(/(?:rgb\([^)]+\)|[^ ]+)/g)?.map((value) => value.trim()) || []);
8249
- return {
8250
- top: AXPPropertyEditorHelper.getValueWithUnit(values[0]).value,
8251
- right: AXPPropertyEditorHelper.getValueWithUnit(values[1]).value,
8252
- bottom: AXPPropertyEditorHelper.getValueWithUnit(values[2]).value,
8253
- left: AXPPropertyEditorHelper.getValueWithUnit(values[3]).value,
8254
- };
8255
- }
8256
- /**
8257
- * Parses corners (top-left, top-right, bottom-left, bottom-right) from a string.
8258
- * @param input - Input string.
8259
- * @returns Parsed corners object.
8260
- */
8261
- static parseCorners(input) {
8262
- const values = this.expandShorthand(input.split(' ').map((value) => value.trim()));
8263
- return {
8264
- 'top-left': AXPPropertyEditorHelper.getValueWithUnit(values[0]).value,
8265
- 'top-right': AXPPropertyEditorHelper.getValueWithUnit(values[1]).value,
8266
- 'bottom-left': AXPPropertyEditorHelper.getValueWithUnit(values[2]).value,
8267
- 'bottom-right': AXPPropertyEditorHelper.getValueWithUnit(values[3]).value,
8268
- };
8269
- }
8270
- /**
8271
- * Parses a spacing box from strings for margin and padding.
8272
- * @param input - Spacing box string input.
8273
- * @returns Parsed spacing box.
8274
- */
8275
- static parseSpacingBox(input) {
8276
- return {
8277
- margin: this.parseSidesWithUnits(input.margin),
8278
- padding: this.parseSidesWithUnits(input.padding),
8279
- };
8280
- }
8281
- /**
8282
- * Parses a border box from strings for width, radius, color, and style.
8283
- * @param input - Border box string input.
8284
- * @returns Parsed border box.
8285
- */
8286
- static parseBorderBox(input) {
8287
- return {
8288
- width: this.parseSidesWithUnits(input.width),
8289
- radius: this.parseCorners(input.radius),
8290
- color: this.parseSides(input.color),
8291
- style: this.parseSides(input.style),
8292
- };
8293
- }
8294
- /**
8295
- * Reverses a spacing box object into a string representation.
8296
- * @param input - Spacing box object.
8297
- * @param units - Units for margin and padding.
8298
- * @returns String representation of the spacing box.
8299
- */
8300
- static parseSpacingBoxReverse(input, units) {
8301
- const format = (value, unit) => `${value}${unit}`;
8302
- return {
8303
- margin: AXPPropertyEditorHelper.condenseShorthand([
8304
- format(input.margin.top, units.margin.top),
8305
- format(input.margin.right, units.margin.right),
8306
- format(input.margin.bottom, units.margin.bottom),
8307
- format(input.margin.left, units.margin.left),
8308
- ]),
8309
- padding: AXPPropertyEditorHelper.condenseShorthand([
8310
- format(input.padding.top, units.padding.top),
8311
- format(input.padding.right, units.padding.right),
8312
- format(input.padding.bottom, units.padding.bottom),
8313
- format(input.padding.left, units.padding.left),
8314
- ]),
8315
- };
8316
- }
8317
- /**
8318
- * Reverses a border box object into a string representation.
8319
- * @param input - Border box object.
8320
- * @param units - Units for width, radius, color, and style.
8321
- * @returns String representation of the border box.
8322
- */
8323
- static parseBorderBoxReverse(input, units) {
8324
- const format = (value, unit) => `${value}${unit}`;
8325
- return {
8326
- width: AXPPropertyEditorHelper.condenseShorthand([
8327
- format(input.width.top, units.width.top),
8328
- format(input.width.right, units.width.right),
8329
- format(input.width.bottom, units.width.bottom),
8330
- format(input.width.left, units.width.left),
8331
- ]),
8332
- radius: AXPPropertyEditorHelper.condenseShorthand([
8333
- format(input.radius['top-left'], units.radius['top-left']),
8334
- format(input.radius['top-right'], units.radius['top-right']),
8335
- format(input.radius['bottom-right'], units.radius['bottom-right']),
8336
- format(input.radius['bottom-left'], units.radius['bottom-left']),
8337
- ]),
8338
- color: AXPPropertyEditorHelper.condenseShorthand([
8339
- `${input.color.top}${units.color.top}`,
8340
- `${input.color.right}${units.color.right}`,
8341
- `${input.color.bottom}${units.color.bottom}`,
8342
- `${input.color.left}${units.color.left}`,
8343
- ]),
8344
- style: AXPPropertyEditorHelper.condenseShorthand([
8345
- `${input.style.top}${units.style.top}`,
8346
- `${input.style.right}${units.style.right}`,
8347
- `${input.style.bottom}${units.style.bottom}`,
8348
- `${input.style.left}${units.style.left}`,
8349
- ]),
8350
- };
8351
- }
8352
- /**
8353
- * Parses a value with a unit (e.g., "20px") and returns its numeric value and unit.
8354
- * @param input - Input string or number.
8355
- * @returns Object with value and unit.
8356
- */
8357
- static getValueWithUnit(input) {
8358
- if (typeof input === 'number')
8359
- return { value: input, unit: 'px' };
8360
- if (input === 'auto')
8361
- return { value: 0, unit: 'px' };
8362
- const match = input.match(/^([0-9.]+)([a-z%]*)$/i);
8363
- if (!match)
8364
- throw new Error(`Invalid unit format: ${input}`);
8365
- return { value: parseFloat(match[1]), unit: match[2] || '' };
8366
- }
8367
- /**
8368
- * Reverses a numeric value and unit into a single string.
8369
- * @param value - Numeric value.
8370
- * @param unit - Unit string.
8371
- * @returns Combined string.
8372
- */
8373
- static getValueFromUnit(value, unit) {
8374
- return unit ? `${value}${unit}` : `${value}`;
8375
- }
8376
- /**
8377
- * Parses a gap string into x and y values and units.
8378
- *
8379
- * @param gapString The gap string to parse (e.g., "10px", "10px 20px").
8380
- * @returns An object containing the x and y values and units.
8381
- * @throws Error If the gap string is invalid.
8382
- */
8383
- static parseGap(gapString) {
8384
- const gapValues = gapString.trim().split(/\s+/);
8385
- const result = {
8386
- values: { x: 0, y: 0 },
8387
- units: { x: 'px', y: 'px' },
8388
- };
8389
- /**
8390
- * Extracts the numeric value and unit from a gap value string.
8391
- *
8392
- * @param value The gap value string to parse (e.g., "10px").
8393
- * @returns An object containing the numeric value and unit.
8394
- * @throws Error If the gap value is invalid.
8395
- */
8396
- function extractValueAndUnit(value) {
8397
- const match = value.match(/^([\d.]+)([a-z%]*)$/i);
8398
- if (!match)
8399
- throw new Error(`Invalid gap value: ${value}`);
8400
- return { value: parseFloat(match[1]), unit: match[2] || 'px' };
8401
- }
8402
- if (gapValues.length === 1) {
8403
- const { value, unit } = extractValueAndUnit(gapValues[0]);
8404
- result.values.x = value;
8405
- result.units.x = unit;
8406
- result.values.y = value;
8407
- result.units.y = unit;
8408
- }
8409
- else if (gapValues.length === 2) {
8410
- const { value: xValue, unit: xUnit } = extractValueAndUnit(gapValues[0]);
8411
- const { value: yValue, unit: yUnit } = extractValueAndUnit(gapValues[1]);
8412
- result.values.x = xValue;
8413
- result.units.x = xUnit;
8414
- result.values.y = yValue;
8415
- result.units.y = yUnit;
8416
- }
8417
- else {
8418
- throw new Error(`Invalid gap string: ${gapString}`);
8419
- }
8420
- return result;
8577
+ cls[`ax-w-full`] = true;
8578
+ return cls;
8421
8579
  }
8422
- /**
8423
- * Extracts the repetition count from a CSS grid template string of the format "repeat(N, 1fr)".
8424
- *
8425
- * @param gridTemplate - The CSS grid template string, e.g., "repeat(5, 1fr)".
8426
- * @returns The number of repetitions as a number.
8427
- */
8428
- static parseGridTemplate(gridTemplate) {
8429
- const match = gridTemplate.match(/^repeat\((\d+),\s*1fr\)$/);
8430
- if (!match) {
8431
- throw new Error("Invalid grid template format. Expected 'repeat(N, 1fr)'.");
8432
- }
8433
- return parseInt(match[1], 10);
8580
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPRepeaterWidgetDesignerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
8581
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPRepeaterWidgetDesignerComponent, isStandalone: true, selector: "axp-repeater-widget", host: { properties: { "class": "this.__class" } }, providers: [
8582
+ {
8583
+ provide: AXPWidgetComponent,
8584
+ useExisting: AXPRepeaterWidgetDesignerComponent
8585
+ }
8586
+ ], usesInheritance: true, ngImport: i0, template: `
8587
+ @if(hasControls())
8588
+ {
8589
+ <div class="ax-grid ax-grid-cols-12 ax-gap-4">
8590
+ <div class="ax-col-span-11">
8591
+ <ng-container [ngTemplateOutlet]="tpl" ></ng-container>
8592
+ </div>
8593
+ <ax-button
8594
+ [disabled]="disabled()"
8595
+ look="twotone"
8596
+ color="danger"
8597
+ class="ax-col-start-12 ax-col-end-13 ax-justify-self-end ax-self-end"
8598
+ >
8599
+ <ax-icon icon="fa-regular fa-xmark"></ax-icon>
8600
+ </ax-button>
8601
+ <ax-button
8602
+ [text]="'Add New'"
8603
+ look="twotone"
8604
+ [disabled]="disabled()"
8605
+ class="ax-col-start-10 ax-col-end-13"
8606
+ >
8607
+ <ax-prefix>
8608
+ <ax-icon class="fa-solid fa-add"></ax-icon>
8609
+ </ax-prefix>
8610
+ </ax-button>
8611
+ </div>
8434
8612
  }
8435
- /**
8436
- * Creates a CSS grid template string of the format "repeat(N, 1fr)"
8437
- * based on the provided repetition count.
8438
- *
8439
- * @param repetitionCount - The number of repetitions.
8440
- * @returns The CSS grid template string, e.g., "repeat(5, 1fr)".
8441
- */
8442
- static createGridTemplate(repetitionCount) {
8443
- if (repetitionCount <= 0) {
8444
- throw new Error('Repetition count must be a positive integer.');
8445
- }
8446
- return `repeat(${repetitionCount}, 1fr)`;
8613
+ @else {
8614
+ <ng-container [ngTemplateOutlet]="tpl"></ng-container>
8447
8615
  }
8616
+ <ng-template #tpl>
8617
+ @for (node of children();track $index) {
8618
+ <ng-container axp-widget-designer-renderer [node]="node" [parentNode]="this" [mode]="this.mode" [locked]="this.locked"> </ng-container>
8619
+ }
8620
+ @empty {
8621
+ <axp-designer-add-widget-mini-button ></axp-designer-add-widget-mini-button>
8622
+ }
8623
+ </ng-template>
8624
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i5.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.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: AXPLayoutBuilderModule }, { kind: "directive", type: AXPWidgetDesignerRendererDirective, selector: "[axp-widget-designer-renderer]", inputs: ["parentNode", "index", "locked", "mode", "node"] }, { kind: "component", type: AXPDesignerAddWidgetMiniButtonComponent, selector: "axp-designer-add-widget-mini-button", outputs: ["onClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8448
8625
  }
8626
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPRepeaterWidgetDesignerComponent, decorators: [{
8627
+ type: Component,
8628
+ args: [{
8629
+ selector: 'axp-repeater-widget',
8630
+ template: `
8631
+ @if(hasControls())
8632
+ {
8633
+ <div class="ax-grid ax-grid-cols-12 ax-gap-4">
8634
+ <div class="ax-col-span-11">
8635
+ <ng-container [ngTemplateOutlet]="tpl" ></ng-container>
8636
+ </div>
8637
+ <ax-button
8638
+ [disabled]="disabled()"
8639
+ look="twotone"
8640
+ color="danger"
8641
+ class="ax-col-start-12 ax-col-end-13 ax-justify-self-end ax-self-end"
8642
+ >
8643
+ <ax-icon icon="fa-regular fa-xmark"></ax-icon>
8644
+ </ax-button>
8645
+ <ax-button
8646
+ [text]="'Add New'"
8647
+ look="twotone"
8648
+ [disabled]="disabled()"
8649
+ class="ax-col-start-10 ax-col-end-13"
8650
+ >
8651
+ <ax-prefix>
8652
+ <ax-icon class="fa-solid fa-add"></ax-icon>
8653
+ </ax-prefix>
8654
+ </ax-button>
8655
+ </div>
8656
+ }
8657
+ @else {
8658
+ <ng-container [ngTemplateOutlet]="tpl"></ng-container>
8659
+ }
8660
+ <ng-template #tpl>
8661
+ @for (node of children();track $index) {
8662
+ <ng-container axp-widget-designer-renderer [node]="node" [parentNode]="this" [mode]="this.mode" [locked]="this.locked"> </ng-container>
8663
+ }
8664
+ @empty {
8665
+ <axp-designer-add-widget-mini-button ></axp-designer-add-widget-mini-button>
8666
+ }
8667
+ </ng-template>
8668
+ `,
8669
+ changeDetection: ChangeDetectionStrategy.OnPush,
8670
+ imports: [CommonModule, AXButtonModule, AXDecoratorModule, AXPLayoutBuilderModule, AXPWidgetDesignerRendererDirective, AXPDesignerAddWidgetMiniButtonComponent],
8671
+ providers: [
8672
+ {
8673
+ provide: AXPWidgetComponent,
8674
+ useExisting: AXPRepeaterWidgetDesignerComponent
8675
+ }
8676
+ ]
8677
+ }]
8678
+ }], propDecorators: { __class: [{
8679
+ type: HostBinding,
8680
+ args: ['class']
8681
+ }] } });
8682
+
8683
+ var repeaterWidgetDesigner_component = /*#__PURE__*/Object.freeze({
8684
+ __proto__: null,
8685
+ AXPRepeaterWidgetDesignerComponent: AXPRepeaterWidgetDesignerComponent
8686
+ });
8687
+
8688
+ const AXPRepeaterWidget = {
8689
+ name: 'repeater-layout',
8690
+ title: 'Repeater',
8691
+ description: 'Adds repeating form elements',
8692
+ icon: 'fa-solid fa-table-list',
8693
+ group: AXP_WIDGETS_LAYOUT_GROUP,
8694
+ type: 'container',
8695
+ properties: [
8696
+ AXP_NAME_PROPERTY,
8697
+ AXP_DATA_PATH_PROPERTY,
8698
+ AXP_DISABLED_PROPERTY,
8699
+ createBooleanProperty({
8700
+ name: "hasControls",
8701
+ title: "Controls",
8702
+ group: AXP_BEHAVIOR_PROPERTY_GROUP,
8703
+ defaultValue: true,
8704
+ path: "options.hasControls",
8705
+ })
8706
+ ],
8707
+ components: {
8708
+ view: {
8709
+ component: () => Promise.resolve().then(function () { return repeaterWidgetView_component; }).then((c) => c.AXPRepeaterWidgetViewComponent),
8710
+ },
8711
+ edit: {
8712
+ component: () => Promise.resolve().then(function () { return repeaterWidgetEdit_component; }).then((c) => c.AXPRepeaterWidgetEditComponent),
8713
+ },
8714
+ print: {
8715
+ component: () => Promise.resolve().then(function () { return repeaterWidgetPrint_component; }).then((c) => c.AXPRepeaterWidgetPrintComponent),
8716
+ },
8717
+ designer: {
8718
+ component: () => Promise.resolve().then(function () { return repeaterWidgetDesigner_component; }).then((c) => c.AXPRepeaterWidgetDesignerComponent),
8719
+ },
8720
+ },
8721
+ };
8449
8722
 
8450
8723
  const AXP_default_Border_Box_Value = {
8451
8724
  width: { top: 0, left: 0, bottom: 0, right: 0 },
@@ -8467,6 +8740,16 @@ const AXP_default_Spacing_Box_Units = {
8467
8740
  padding: { top: 'px', left: 'px', bottom: 'px', right: 'px' },
8468
8741
  margin: { top: 'px', left: 'px', bottom: 'px', right: 'px' },
8469
8742
  };
8743
+ function findNonEmptyBreakpoints(values) {
8744
+ const breakpoints = ['default', 'sm', 'md', 'lg', 'xl', '2xl', '3xl'];
8745
+ const nonEmptyBreakpoints = [];
8746
+ for (const breakpoint of breakpoints) {
8747
+ if (values[breakpoint] !== undefined) {
8748
+ nonEmptyBreakpoints.push(breakpoint);
8749
+ }
8750
+ }
8751
+ return nonEmptyBreakpoints;
8752
+ }
8470
8753
 
8471
8754
  class AXPBorderWidgetEditComponent extends AXPWidgetComponent {
8472
8755
  constructor() {
@@ -8673,7 +8956,7 @@ class AXPBorderWidgetEditComponent extends AXPWidgetComponent {
8673
8956
  };
8674
8957
  }
8675
8958
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPBorderWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
8676
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPBorderWidgetEditComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "allBorderEl", first: true, predicate: ["allBorderEl"], descendants: true, isSignal: true }, { propertyName: "allRadiusEl", first: true, predicate: ["allRadiusEl"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-pt-2 axp-border-container\">\n <div class=\"ax-radius-box ax-flex ax-justify-between ax-items-center ax-gap-2 ax-h-[26px]\">\n <span class=\"ax-text-sm ax-font-light\">Radius</span>\n <div class=\"ax-flex ax-gap-2 ax-items-center\">\n <button\n #allRadiusEl\n (pointerdown)=\"handleActiveRadiusSide($event)\"\n name=\"all\"\n class=\"ax-p-1 hover:!ax-bg-[var(--hover-effect)]\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M2.5 5.5C2.5 3.84315 3.84315 2.5 5.5 2.5H10.5C12.1569 2.5 13.5 3.84315 13.5 5.5V10.5C13.5 12.1569 12.1569 13.5 10.5 13.5H5.5C3.84315 13.5 2.5 12.1569 2.5 10.5V5.5Z\"\n stroke=\"currentColor\"\n ></path>\n </svg>\n </button>\n\n <button\n (pointerdown)=\"handleActiveRadiusSide($event)\"\n name=\"sides\"\n class=\"ax-p-1 hover:!ax-bg-[var(--hover-effect)]\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M4.5 2C3.11929 2 2 3.11929 2 4.5V7H3V4.5C3 3.67157 3.67157 3 4.5 3H7V2H4.5Z\"\n fill=\"currentColor\"\n ></path>\n <path\n d=\"M9 2V3H11.5C12.3284 3 13 3.67157 13 4.5V7H14V4.5C14 3.11929 12.8807 2 11.5 2H9Z\"\n fill=\"currentColor\"\n ></path>\n <path\n d=\"M14 9H13V11.5C13 12.3284 12.3284 13 11.5 13H9V14H11.5C12.8807 14 14 12.8807 14 11.5V9Z\"\n fill=\"currentColor\"\n ></path>\n <path\n d=\"M7 14V13H4.5C3.67157 13 3 12.3284 3 11.5V9H2V11.5C2 12.8807 3.11929 14 4.5 14H7Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n </button>\n\n @if(currentActiveRadiusSide() ==='all'){\n <div class=\"ax-flex ax-justify-center ax-items-center ax-flex-shrink\">\n <ax-range-slider\n [values]=\"allRadius()\"\n [min]=\"0\"\n [max]=\"100\"\n (valuesChange)=\"setBorder($event ?? 0, 'radius', 'all')\"\n class=\"ax-min-w-28\"\n ></ax-range-slider>\n </div>\n <div class=\"ax-flex ax-justify-start ax-items-center\">\n <ax-number-box\n [minValue]=\"0\"\n [maxValue]=\"100\"\n [value]=\"allRadius()\"\n [changeOnScroll]=\"true\"\n (valueChange)=\"setBorder($event ?? 0, 'radius', 'all')\"\n class=\"ax-min-w-8\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n </div>\n }@else{\n <div class=\"ax-w-48\"></div>\n }\n </div>\n </div>\n\n <div\n class=\"axp-border-radius-sides ax-flex ax-justify-end ax-items-center ax-overflow-y-hidden ax-transition-[height] ax-duration-300 ax-ease-in-out\"\n [class]=\"currentActiveRadiusSide() === 'all' ? '!ax-h-0' : '!ax-h-[56px]'\"\n >\n <div class=\"ax-grid ax-grid-cols-2 ax-grid-rows-2 ax-gap-2\">\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g opacity=\"0.4\">\n <path d=\"M14 14V9H13V13H9V14H14Z\" fill=\"currentColor\"></path>\n <path d=\"M7 14V13H3V9H2V14H7Z\" fill=\"currentColor\"></path>\n <path d=\"M2 7H3V6.5C3 4.567 4.567 3 6.5 3H7V2H6.5C4.01472 2 2 4.01472 2 6.5V7Z\" fill=\"currentColor\"></path>\n <path d=\"M9 2V3H13V7H14V2H9Z\" fill=\"currentColor\"></path>\n </g>\n <path d=\"M2.5 7V6.5C2.5 4.29086 4.29086 2.5 6.5 2.5H7\" stroke=\"currentColor\"></path>\n </svg>\n <div class=\"ax-flex ax-justify-start ax-items-center ax-max-w-12\">\n <ax-number-box\n [minValue]=\"0\"\n [changeOnScroll]=\"true\"\n [value]=\"calculatedValues().radius['top-left']\"\n (valueChange)=\"setBorder($event ?? 0, 'radius', 'top-left')\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n </div>\n </div>\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g opacity=\"0.4\">\n <path d=\"M2 14V9H3V13H7V14H2Z\" fill=\"currentColor\"></path>\n <path d=\"M9 14V13H13V9H14V14H9Z\" fill=\"currentColor\"></path>\n <path\n d=\"M14 7H13V6.5C13 4.567 11.433 3 9.5 3H9V2H9.5C11.9853 2 14 4.01472 14 6.5V7Z\"\n fill=\"currentColor\"\n ></path>\n <path d=\"M7 2V3H3V7H2V2H7Z\" fill=\"currentColor\"></path>\n </g>\n <path d=\"M13.5 7V6.5C13.5 4.29086 11.7091 2.5 9.5 2.5H9\" stroke=\"currentColor\"></path>\n </svg>\n <div class=\"ax-flex ax-justify-start ax-items-center ax-max-w-12\">\n <ax-number-box\n [minValue]=\"0\"\n [changeOnScroll]=\"true\"\n [value]=\"calculatedValues().radius['top-right']\"\n (valueChange)=\"setBorder($event ?? 0, 'radius', 'top-right')\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n </div>\n </div>\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g opacity=\"0.4\">\n <path d=\"M2 2V7H3V3H7V2H2Z\" fill=\"currentColor\"></path>\n <path d=\"M9 2V3H13V7H14V2H9Z\" fill=\"currentColor\"></path>\n <path d=\"M14 9H13V13H9V14H14V9Z\" fill=\"currentColor\"></path>\n <path\n d=\"M7 14V13H6.5C4.567 13 3 11.433 3 9.5V9H2V9.5C2 11.9853 4.01472 14 6.5 14H7Z\"\n fill=\"currentColor\"\n ></path>\n </g>\n <path d=\"M2.5 9V9.5C2.5 11.7091 4.29086 13.5 6.5 13.5H7\" stroke=\"currentColor\"></path>\n </svg>\n <div class=\"ax-flex ax-justify-start ax-items-center ax-max-w-12\">\n <ax-number-box\n [minValue]=\"0\"\n [changeOnScroll]=\"true\"\n [value]=\"calculatedValues().radius['bottom-left']\"\n (valueChange)=\"setBorder($event ?? 0, 'radius', 'bottom-left')\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n </div>\n </div>\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g opacity=\"0.4\">\n <path d=\"M2 2V7H3V3H7V2H2Z\" fill=\"currentColor\"></path>\n <path d=\"M9 2V3H13V7H14V2H9Z\" fill=\"currentColor\"></path>\n <path\n d=\"M14 9H13V11.5C13 12.3284 12.3284 13 11.5 13H9V14H11.5C12.8807 14 14 12.8807 14 11.5V9Z\"\n fill=\"currentColor\"\n ></path>\n <path d=\"M7 14V13H3V9H2V14H7Z\" fill=\"currentColor\"></path>\n </g>\n <path d=\"M13.5 9V9.5C13.5 11.7091 11.7091 13.5 9.5 13.5H9\" stroke=\"currentColor\"></path>\n </svg>\n <div class=\"ax-flex ax-justify-start ax-items-center ax-max-w-12\">\n <ax-number-box\n [minValue]=\"0\"\n [changeOnScroll]=\"true\"\n [value]=\"calculatedValues().radius['bottom-right']\"\n (valueChange)=\"setBorder($event ?? 0, 'radius', 'bottom-right')\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"ax-flex ax-justify-between ax-items-center ax-py-1\">\n <span class=\"ax-text-sm ax-font-light\">Borders</span>\n </div>\n\n <div class=\"ax-border-box ax-flex ax-justify-between ax-items-center ax-gap-4\">\n <div class=\"ax-grid ax-grid-cols-3 ax-grid-rows-3 ax-gap-1 ax-flex-shrink-0\">\n <!-- Top Border -->\n <div class=\"ax-border-box-top ax-col-start-2 ax-row-start-1\">\n <button\n (pointerdown)=\"handleActiveBorderSide($event)\"\n name=\"top\"\n class=\"ax-p-1 hover:!ax-bg-[var(--hover-effect)]\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n opacity=\"0.4\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M2 13C2 13.5523 2.44772 14 3 14H13C13.5523 14 14 13.5523 14 13V5H13V13H3V5H2V13Z\"\n fill=\"currentColor\"\n ></path>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M2 3H14V2H2V3Z\" fill=\"currentColor\"></path>\n </svg>\n </button>\n </div>\n\n <!-- Right Border -->\n <div class=\"ax-border-box-right ax-col-start-3 ax-row-start-2\">\n <button\n (pointerdown)=\"handleActiveBorderSide($event)\"\n name=\"right\"\n class=\"ax-p-1 hover:!ax-bg-[var(--hover-effect)]\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n opacity=\"0.4\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M3 2C2.44772 2 2 2.44772 2 3L2 13C2 13.5523 2.44772 14 3 14L11 14L11 13L3 13L3 3L11 3L11 2L3 2Z\"\n fill=\"currentColor\"\n ></path>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M13 2L13 14L14 14L14 2L13 2Z\" fill=\"currentColor\"></path>\n </svg>\n </button>\n </div>\n\n <!-- Bottom Border -->\n <div class=\"ax-border-box-bottom ax-col-start-2 ax-row-start-3\">\n <button\n (pointerdown)=\"handleActiveBorderSide($event)\"\n name=\"bottom\"\n class=\"ax-p-1 hover:!ax-bg-[var(--hover-effect)]\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n opacity=\"0.4\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M2 3C2 2.44772 2.44772 2 3 2H13C13.5523 2 14 2.44772 14 3V11H13V3H3V11H2V3Z\"\n fill=\"currentColor\"\n ></path>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M2 13H14V14H2V13Z\" fill=\"currentColor\"></path>\n </svg>\n </button>\n </div>\n\n <!-- Left Border -->\n <div class=\"ax-border-box-left ax-col-start-1 ax-row-start-2\">\n <button\n (pointerdown)=\"handleActiveBorderSide($event)\"\n name=\"left\"\n class=\"ax-p-1 hover:!ax-bg-[var(--hover-effect)]\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n opacity=\"0.4\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M13 2C13.5523 2 14 2.44772 14 3L14 13C14 13.5523 13.5523 14 13 14L5 14L5 13L13 13L13 3L5 3L5 2L13 2Z\"\n fill=\"currentColor\"\n ></path>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3 2L3 14L2 14L2 2L3 2Z\" fill=\"currentColor\"></path>\n </svg>\n </button>\n </div>\n\n <!-- All -->\n <div class=\"ax-border-box-all ax-col-start-2 ax-row-start-2\">\n <button\n #allBorderEl\n (pointerdown)=\"handleActiveBorderSide($event)\"\n name=\"all\"\n class=\"ax-p-1 hover:!ax-bg-[var(--hover-effect)]\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M2 3C2 2.44772 2.44772 2 3 2H13C13.5523 2 14 2.44772 14 3V13C14 13.5523 13.5523 14 13 14H3C2.44772 14 2 13.5523 2 13V3ZM13 3L3 3V13H13V3Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n </button>\n </div>\n </div>\n <div class=\"ax-grid ax-grid-cols-[auto_1fr] ax-items-center ax-gap-x-2 ax-gap-y-2\">\n <div class=\"ax-text-sm ax-font-light\">Style</div>\n <ax-button-group [selection]=\"'single'\">\n <ax-button-group-item\n (onClick)=\"setBorder('none', 'style', currentActiveSide())\"\n [selected]=\"shownStyle() === 'none'\"\n ><ax-prefix\n ><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M8.70714 8.00004L12.3536 4.35359L11.6465 3.64648L8.00004 7.29293L4.35359 3.64648L3.64648 4.35359L7.29293 8.00004L3.64648 11.6465L4.35359 12.3536L8.00004 8.70714L11.6465 12.3536L12.3536 11.6465L8.70714 8.00004Z\"\n fill=\"currentColor\"\n ></path></svg></ax-prefix\n ></ax-button-group-item>\n <ax-button-group-item\n (onClick)=\"setBorder('solid', 'style', currentActiveSide())\"\n [selected]=\"shownStyle() === 'solid'\"\n ><ax-prefix\n ><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M2 7.5H14\" stroke=\"currentColor\"></path></svg></ax-prefix\n ></ax-button-group-item>\n <ax-button-group-item\n (onClick)=\"setBorder('dashed', 'style', currentActiveSide())\"\n [selected]=\"shownStyle() === 'dashed'\"\n ><ax-prefix\n ><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M5 7H2V8H5V7ZM11 8H12H14V7H12H11V8ZM9.5 7H6.5V8H9.5V7Z\"\n fill=\"currentColor\"\n ></path></svg></ax-prefix\n ></ax-button-group-item>\n <ax-button-group-item\n (onClick)=\"setBorder('dotted', 'style', currentActiveSide())\"\n [selected]=\"shownStyle() === 'dotted'\"\n ><ax-prefix\n ><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4 7H3V8H4V7ZM6 7H5V8H6V7ZM7 7H8V8H7V7ZM10 7H9V8H10V7ZM11 7H12V8H11V7ZM14 7H13V8H14V7Z\"\n fill=\"currentColor\"\n ></path></svg></ax-prefix\n ></ax-button-group-item>\n </ax-button-group>\n <div class=\"ax-contents\" [class]=\"shownStyle() === 'none' ? 'ax-invisible' : 'ax-visible'\">\n <div class=\"ax-text-sm ax-font-light\">Width</div>\n <div class=\"ax-flex ax-justify-start ax-items-center ax-max-w-36\">\n <ax-number-box\n [minValue]=\"0\"\n [changeOnScroll]=\"true\"\n [value]=\"shownWidth()\"\n (valueChange)=\"setBorder($event ?? 0, 'width', currentActiveSide())\"\n class=\"ax-min-w-8 ax-exclude\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text>PX</ax-text></ax-suffix></ax-number-box\n >\n </div>\n\n <div class=\"ax-text-sm ax-font-light\">Color</div>\n <div class=\"ax-flex ax-justify-start ax-items-center ax-max-w-36 ax-overflow-hidden\">\n <ax-color-box\n [value]=\"shownColor()\"\n (valueChange)=\"setBorder($event, 'color', currentActiveSide())\"\n ></ax-color-box>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".axp-border-container{--hover-effect: #404040;--focus-color: rgba(0, 106, 204, .18);--ax-range-slider-base-thickness: .15rem}.axp-border-container ax-range-slider{padding:.5rem!important}.axp-border-container ax-number-box:not(.ax-exclude) div:first-child{height:1.5rem!important;border-radius:.25rem!important;font-size:12px}.axp-border-container ax-number-box:not(.ax-exclude) div:first-child input{padding:.25rem 0 .25rem .25rem!important}.axp-border-container ax-button-group ax-button-group-item{padding:.2rem .55rem!important}\n"], dependencies: [{ kind: "ngmodule", type: AXNumberBoxModule }, { kind: "component", type: i1$3.AXNumberBoxComponent, selector: "ax-number-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "changeOnScroll", "thousandsSeparator", "padDecimalZeros", "step", "decimals", "decimalStep", "showSpinButtons", "minValue", "maxValue", "class"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXCheckBoxModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.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: AXRangeSliderModule }, { kind: "component", type: i4$2.AXRangeSliderComponent, selector: "ax-range-slider", inputs: ["disabled", "readonly", "orientation", "color", "values", "mode", "min", "max", "step", "snap", "tooltipMode", "snapMode", "hasStep", "hasSnap", "hasLable", "hasTooltip"], outputs: ["valuesChange"] }, { kind: "ngmodule", type: AXButtonGroupModule }, { kind: "component", type: i4$3.AXButtonGroupComponent, selector: "ax-button-group", inputs: ["disabled", "color", "look", "selection"], outputs: ["onBlur", "onFocus", "lookChange", "colorChange", "disabledChange", "onClick", "selectionChange"] }, { kind: "component", type: i4$3.AXButtonGroupItemComponent, selector: "ax-button-group-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "ngmodule", type: AXColorBoxModule }, { kind: "component", type: i2$6.AXColorBoxComponent, selector: "ax-color-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
8959
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPBorderWidgetEditComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "allBorderEl", first: true, predicate: ["allBorderEl"], descendants: true, isSignal: true }, { propertyName: "allRadiusEl", first: true, predicate: ["allRadiusEl"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-pt-2 axp-border-container\">\n <div class=\"ax-radius-box ax-flex ax-justify-between ax-items-center ax-gap-2 ax-h-[26px]\">\n <span class=\"ax-text-sm ax-font-light\">Radius</span>\n <div class=\"ax-flex ax-gap-2 ax-items-center\">\n <button\n #allRadiusEl\n (pointerdown)=\"handleActiveRadiusSide($event)\"\n name=\"all\"\n class=\"ax-p-1 hover:!ax-bg-[var(--hover-effect)]\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M2.5 5.5C2.5 3.84315 3.84315 2.5 5.5 2.5H10.5C12.1569 2.5 13.5 3.84315 13.5 5.5V10.5C13.5 12.1569 12.1569 13.5 10.5 13.5H5.5C3.84315 13.5 2.5 12.1569 2.5 10.5V5.5Z\"\n stroke=\"currentColor\"\n ></path>\n </svg>\n </button>\n\n <button\n (pointerdown)=\"handleActiveRadiusSide($event)\"\n name=\"sides\"\n class=\"ax-p-1 hover:!ax-bg-[var(--hover-effect)]\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M4.5 2C3.11929 2 2 3.11929 2 4.5V7H3V4.5C3 3.67157 3.67157 3 4.5 3H7V2H4.5Z\"\n fill=\"currentColor\"\n ></path>\n <path\n d=\"M9 2V3H11.5C12.3284 3 13 3.67157 13 4.5V7H14V4.5C14 3.11929 12.8807 2 11.5 2H9Z\"\n fill=\"currentColor\"\n ></path>\n <path\n d=\"M14 9H13V11.5C13 12.3284 12.3284 13 11.5 13H9V14H11.5C12.8807 14 14 12.8807 14 11.5V9Z\"\n fill=\"currentColor\"\n ></path>\n <path\n d=\"M7 14V13H4.5C3.67157 13 3 12.3284 3 11.5V9H2V11.5C2 12.8807 3.11929 14 4.5 14H7Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n </button>\n\n @if(currentActiveRadiusSide() ==='all'){\n <div class=\"ax-flex ax-justify-center ax-items-center ax-flex-shrink\">\n <ax-range-slider\n [values]=\"allRadius()\"\n [min]=\"0\"\n [max]=\"100\"\n (valuesChange)=\"setBorder($event ?? 0, 'radius', 'all')\"\n class=\"ax-min-w-28\"\n ></ax-range-slider>\n </div>\n <div class=\"ax-flex ax-justify-start ax-items-center\">\n <ax-number-box\n [minValue]=\"0\"\n [maxValue]=\"100\"\n [value]=\"allRadius()\"\n [changeOnScroll]=\"true\"\n (valueChange)=\"setBorder($event ?? 0, 'radius', 'all')\"\n class=\"ax-min-w-8\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n </div>\n }@else{\n <div class=\"ax-w-48\"></div>\n }\n </div>\n </div>\n\n <div\n class=\"axp-border-radius-sides ax-flex ax-justify-end ax-items-center ax-overflow-y-hidden ax-transition-[height] ax-duration-300 ax-ease-in-out\"\n [class]=\"currentActiveRadiusSide() === 'all' ? '!ax-h-0' : '!ax-h-[56px]'\"\n >\n <div class=\"ax-grid ax-grid-cols-2 ax-grid-rows-2 ax-gap-2\">\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g opacity=\"0.4\">\n <path d=\"M14 14V9H13V13H9V14H14Z\" fill=\"currentColor\"></path>\n <path d=\"M7 14V13H3V9H2V14H7Z\" fill=\"currentColor\"></path>\n <path d=\"M2 7H3V6.5C3 4.567 4.567 3 6.5 3H7V2H6.5C4.01472 2 2 4.01472 2 6.5V7Z\" fill=\"currentColor\"></path>\n <path d=\"M9 2V3H13V7H14V2H9Z\" fill=\"currentColor\"></path>\n </g>\n <path d=\"M2.5 7V6.5C2.5 4.29086 4.29086 2.5 6.5 2.5H7\" stroke=\"currentColor\"></path>\n </svg>\n <div class=\"ax-flex ax-justify-start ax-items-center ax-max-w-12\">\n <ax-number-box\n [minValue]=\"0\"\n [changeOnScroll]=\"true\"\n [value]=\"calculatedValues().radius['top-left']\"\n (valueChange)=\"setBorder($event ?? 0, 'radius', 'top-left')\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n </div>\n </div>\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g opacity=\"0.4\">\n <path d=\"M2 14V9H3V13H7V14H2Z\" fill=\"currentColor\"></path>\n <path d=\"M9 14V13H13V9H14V14H9Z\" fill=\"currentColor\"></path>\n <path\n d=\"M14 7H13V6.5C13 4.567 11.433 3 9.5 3H9V2H9.5C11.9853 2 14 4.01472 14 6.5V7Z\"\n fill=\"currentColor\"\n ></path>\n <path d=\"M7 2V3H3V7H2V2H7Z\" fill=\"currentColor\"></path>\n </g>\n <path d=\"M13.5 7V6.5C13.5 4.29086 11.7091 2.5 9.5 2.5H9\" stroke=\"currentColor\"></path>\n </svg>\n <div class=\"ax-flex ax-justify-start ax-items-center ax-max-w-12\">\n <ax-number-box\n [minValue]=\"0\"\n [changeOnScroll]=\"true\"\n [value]=\"calculatedValues().radius['top-right']\"\n (valueChange)=\"setBorder($event ?? 0, 'radius', 'top-right')\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n </div>\n </div>\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g opacity=\"0.4\">\n <path d=\"M2 2V7H3V3H7V2H2Z\" fill=\"currentColor\"></path>\n <path d=\"M9 2V3H13V7H14V2H9Z\" fill=\"currentColor\"></path>\n <path d=\"M14 9H13V13H9V14H14V9Z\" fill=\"currentColor\"></path>\n <path\n d=\"M7 14V13H6.5C4.567 13 3 11.433 3 9.5V9H2V9.5C2 11.9853 4.01472 14 6.5 14H7Z\"\n fill=\"currentColor\"\n ></path>\n </g>\n <path d=\"M2.5 9V9.5C2.5 11.7091 4.29086 13.5 6.5 13.5H7\" stroke=\"currentColor\"></path>\n </svg>\n <div class=\"ax-flex ax-justify-start ax-items-center ax-max-w-12\">\n <ax-number-box\n [minValue]=\"0\"\n [changeOnScroll]=\"true\"\n [value]=\"calculatedValues().radius['bottom-left']\"\n (valueChange)=\"setBorder($event ?? 0, 'radius', 'bottom-left')\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n </div>\n </div>\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g opacity=\"0.4\">\n <path d=\"M2 2V7H3V3H7V2H2Z\" fill=\"currentColor\"></path>\n <path d=\"M9 2V3H13V7H14V2H9Z\" fill=\"currentColor\"></path>\n <path\n d=\"M14 9H13V11.5C13 12.3284 12.3284 13 11.5 13H9V14H11.5C12.8807 14 14 12.8807 14 11.5V9Z\"\n fill=\"currentColor\"\n ></path>\n <path d=\"M7 14V13H3V9H2V14H7Z\" fill=\"currentColor\"></path>\n </g>\n <path d=\"M13.5 9V9.5C13.5 11.7091 11.7091 13.5 9.5 13.5H9\" stroke=\"currentColor\"></path>\n </svg>\n <div class=\"ax-flex ax-justify-start ax-items-center ax-max-w-12\">\n <ax-number-box\n [minValue]=\"0\"\n [changeOnScroll]=\"true\"\n [value]=\"calculatedValues().radius['bottom-right']\"\n (valueChange)=\"setBorder($event ?? 0, 'radius', 'bottom-right')\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"ax-flex ax-justify-between ax-items-center ax-py-1\">\n <span class=\"ax-text-sm ax-font-light\">Borders</span>\n </div>\n\n <div class=\"ax-border-box ax-flex ax-justify-between ax-items-center ax-gap-4\">\n <div class=\"ax-grid ax-grid-cols-3 ax-grid-rows-3 ax-gap-1 ax-flex-shrink-0\">\n <!-- Top Border -->\n <div class=\"ax-border-box-top ax-col-start-2 ax-row-start-1\">\n <button\n (pointerdown)=\"handleActiveBorderSide($event)\"\n name=\"top\"\n class=\"ax-p-1 hover:!ax-bg-[var(--hover-effect)]\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n opacity=\"0.4\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M2 13C2 13.5523 2.44772 14 3 14H13C13.5523 14 14 13.5523 14 13V5H13V13H3V5H2V13Z\"\n fill=\"currentColor\"\n ></path>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M2 3H14V2H2V3Z\" fill=\"currentColor\"></path>\n </svg>\n </button>\n </div>\n\n <!-- Right Border -->\n <div class=\"ax-border-box-right ax-col-start-3 ax-row-start-2\">\n <button\n (pointerdown)=\"handleActiveBorderSide($event)\"\n name=\"right\"\n class=\"ax-p-1 hover:!ax-bg-[var(--hover-effect)]\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n opacity=\"0.4\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M3 2C2.44772 2 2 2.44772 2 3L2 13C2 13.5523 2.44772 14 3 14L11 14L11 13L3 13L3 3L11 3L11 2L3 2Z\"\n fill=\"currentColor\"\n ></path>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M13 2L13 14L14 14L14 2L13 2Z\" fill=\"currentColor\"></path>\n </svg>\n </button>\n </div>\n\n <!-- Bottom Border -->\n <div class=\"ax-border-box-bottom ax-col-start-2 ax-row-start-3\">\n <button\n (pointerdown)=\"handleActiveBorderSide($event)\"\n name=\"bottom\"\n class=\"ax-p-1 hover:!ax-bg-[var(--hover-effect)]\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n opacity=\"0.4\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M2 3C2 2.44772 2.44772 2 3 2H13C13.5523 2 14 2.44772 14 3V11H13V3H3V11H2V3Z\"\n fill=\"currentColor\"\n ></path>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M2 13H14V14H2V13Z\" fill=\"currentColor\"></path>\n </svg>\n </button>\n </div>\n\n <!-- Left Border -->\n <div class=\"ax-border-box-left ax-col-start-1 ax-row-start-2\">\n <button\n (pointerdown)=\"handleActiveBorderSide($event)\"\n name=\"left\"\n class=\"ax-p-1 hover:!ax-bg-[var(--hover-effect)]\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n opacity=\"0.4\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M13 2C13.5523 2 14 2.44772 14 3L14 13C14 13.5523 13.5523 14 13 14L5 14L5 13L13 13L13 3L5 3L5 2L13 2Z\"\n fill=\"currentColor\"\n ></path>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3 2L3 14L2 14L2 2L3 2Z\" fill=\"currentColor\"></path>\n </svg>\n </button>\n </div>\n\n <!-- All -->\n <div class=\"ax-border-box-all ax-col-start-2 ax-row-start-2\">\n <button\n #allBorderEl\n (pointerdown)=\"handleActiveBorderSide($event)\"\n name=\"all\"\n class=\"ax-p-1 hover:!ax-bg-[var(--hover-effect)]\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M2 3C2 2.44772 2.44772 2 3 2H13C13.5523 2 14 2.44772 14 3V13C14 13.5523 13.5523 14 13 14H3C2.44772 14 2 13.5523 2 13V3ZM13 3L3 3V13H13V3Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n </button>\n </div>\n </div>\n <div class=\"ax-grid ax-grid-cols-[auto_1fr] ax-items-center ax-gap-x-2 ax-gap-y-2\">\n <div class=\"ax-text-sm ax-font-light\">Style</div>\n <ax-button-group [selection]=\"'single'\">\n <ax-button-group-item\n (onClick)=\"setBorder('none', 'style', currentActiveSide())\"\n [selected]=\"shownStyle() === 'none'\"\n ><ax-prefix\n ><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M8.70714 8.00004L12.3536 4.35359L11.6465 3.64648L8.00004 7.29293L4.35359 3.64648L3.64648 4.35359L7.29293 8.00004L3.64648 11.6465L4.35359 12.3536L8.00004 8.70714L11.6465 12.3536L12.3536 11.6465L8.70714 8.00004Z\"\n fill=\"currentColor\"\n ></path></svg></ax-prefix\n ></ax-button-group-item>\n <ax-button-group-item\n (onClick)=\"setBorder('solid', 'style', currentActiveSide())\"\n [selected]=\"shownStyle() === 'solid'\"\n ><ax-prefix\n ><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M2 7.5H14\" stroke=\"currentColor\"></path></svg></ax-prefix\n ></ax-button-group-item>\n <ax-button-group-item\n (onClick)=\"setBorder('dashed', 'style', currentActiveSide())\"\n [selected]=\"shownStyle() === 'dashed'\"\n ><ax-prefix\n ><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M5 7H2V8H5V7ZM11 8H12H14V7H12H11V8ZM9.5 7H6.5V8H9.5V7Z\"\n fill=\"currentColor\"\n ></path></svg></ax-prefix\n ></ax-button-group-item>\n <ax-button-group-item\n (onClick)=\"setBorder('dotted', 'style', currentActiveSide())\"\n [selected]=\"shownStyle() === 'dotted'\"\n ><ax-prefix\n ><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4 7H3V8H4V7ZM6 7H5V8H6V7ZM7 7H8V8H7V7ZM10 7H9V8H10V7ZM11 7H12V8H11V7ZM14 7H13V8H14V7Z\"\n fill=\"currentColor\"\n ></path></svg></ax-prefix\n ></ax-button-group-item>\n </ax-button-group>\n <div class=\"ax-contents\" [class]=\"shownStyle() === 'none' ? 'ax-invisible' : 'ax-visible'\">\n <div class=\"ax-text-sm ax-font-light\">Width</div>\n <div class=\"ax-flex ax-justify-start ax-items-center ax-max-w-36\">\n <ax-number-box\n [minValue]=\"0\"\n [changeOnScroll]=\"true\"\n [value]=\"shownWidth()\"\n (valueChange)=\"setBorder($event ?? 0, 'width', currentActiveSide())\"\n class=\"ax-min-w-8 ax-exclude\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text>PX</ax-text></ax-suffix></ax-number-box\n >\n </div>\n\n <div class=\"ax-text-sm ax-font-light\">Color</div>\n <div class=\"ax-flex ax-justify-start ax-items-center ax-max-w-36 ax-overflow-hidden\">\n <ax-color-box\n [value]=\"shownColor()\"\n (valueChange)=\"setBorder($event, 'color', currentActiveSide())\"\n ></ax-color-box>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".axp-border-container{--hover-effect: #404040;--focus-color: rgba(0, 106, 204, .18);--ax-range-slider-base-thickness: .15rem}.axp-border-container ax-range-slider{padding:.5rem!important}.axp-border-container ax-number-box:not(.ax-exclude) div:first-child{height:1.5rem!important;border-radius:.25rem!important;font-size:12px}.axp-border-container ax-number-box:not(.ax-exclude) div:first-child input{padding:.25rem 0 .25rem .25rem!important}.axp-border-container ax-button-group ax-button-group-item{padding:.2rem .55rem!important}\n"], dependencies: [{ kind: "ngmodule", type: AXNumberBoxModule }, { kind: "component", type: i1$3.AXNumberBoxComponent, selector: "ax-number-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "changeOnScroll", "thousandsSeparator", "padDecimalZeros", "step", "decimals", "decimalStep", "showSpinButtons", "minValue", "maxValue", "class"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXCheckBoxModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.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: AXRangeSliderModule }, { kind: "component", type: i3$6.AXRangeSliderComponent, selector: "ax-range-slider", inputs: ["disabled", "readonly", "orientation", "color", "values", "mode", "min", "max", "step", "snap", "tooltipMode", "snapMode", "hasStep", "hasSnap", "hasLable", "hasTooltip"], outputs: ["valuesChange"] }, { kind: "ngmodule", type: AXButtonGroupModule }, { kind: "component", type: i4$2.AXButtonGroupComponent, selector: "ax-button-group", inputs: ["disabled", "color", "look", "selection"], outputs: ["onBlur", "onFocus", "lookChange", "colorChange", "disabledChange", "onClick", "selectionChange"] }, { kind: "component", type: i4$2.AXButtonGroupItemComponent, selector: "ax-button-group-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "ngmodule", type: AXColorBoxModule }, { kind: "component", type: i2$6.AXColorBoxComponent, selector: "ax-color-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
8677
8960
  }
8678
8961
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPBorderWidgetEditComponent, decorators: [{
8679
8962
  type: Component,
@@ -8747,7 +9030,7 @@ class AXPFlexOptionsWidgetEditComponent extends AXPWidgetComponent {
8747
9030
  this.flexDirectionIsReverse = computed(() => this.flexDirection().endsWith('reverse'));
8748
9031
  this.flexDirectionWithoutReverse = computed(() => this.flexDirection().replace('-reverse', ''));
8749
9032
  this.gapMode = signal('both');
8750
- this.gapUnit = signal({ both: 'px', x: 'px', y: 'px' });
9033
+ this.gapUnit = signal('px');
8751
9034
  this.gap = signal({ both: 0, x: 0, y: 0 });
8752
9035
  this.lastGap = signal(0);
8753
9036
  this.selectedJustify = signal({ value: 'flex-start', label: 'Start' });
@@ -8790,8 +9073,8 @@ class AXPFlexOptionsWidgetEditComponent extends AXPWidgetComponent {
8790
9073
  this.setWrapMode(value?.flexWrap ?? 'nowrap');
8791
9074
  this.clickedJustify.set(value?.justifyContent ?? 'flex-start');
8792
9075
  this.clickedAlign.set(value?.alignItems ?? 'flex-start');
8793
- const { values, units } = AXPPropertyEditorHelper.parseGap(value?.gap ?? '0px');
8794
- this.gapUnit.set({ ...units, both: units.x });
9076
+ const { values, unit } = AXPPropertyEditorHelper.parseGap(value?.gap ?? '0px');
9077
+ this.gapUnit.set(unit);
8795
9078
  if (values.x === values.y) {
8796
9079
  this.gapMode.set('both');
8797
9080
  this.setGap(values.x, 'both');
@@ -8828,11 +9111,11 @@ class AXPFlexOptionsWidgetEditComponent extends AXPWidgetComponent {
8828
9111
  setGap(size, side) {
8829
9112
  this.gap.set({ ...this.gap(), [side]: size });
8830
9113
  if (this.gapMode() === 'both') {
8831
- const gap = this.gap().both + this.gapUnit().both;
9114
+ const gap = this.gap().both + this.gapUnit();
8832
9115
  this.saveValue({ gap });
8833
9116
  }
8834
9117
  else {
8835
- const gap = this.gap().x + this.gapUnit().x + ' ' + this.gap().y + this.gapUnit().y;
9118
+ const gap = this.gap().x + this.gapUnit() + ' ' + this.gap().y + this.gapUnit();
8836
9119
  this.saveValue({ gap });
8837
9120
  }
8838
9121
  this.lastGap.set(size);
@@ -8965,7 +9248,7 @@ class AXPFlexOptionsWidgetEditComponent extends AXPWidgetComponent {
8965
9248
  }
8966
9249
  #af;
8967
9250
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFlexOptionsWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
8968
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPFlexOptionsWidgetEditComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"axp-flex-option ax-grid ax-grid-cols-[auto_1fr] ax-pt-2 ax-gap-2 ax-items-center ax-justify-items-start\">\n <span>Direction</span>\n <div>\n <ax-button-group [selection]=\"'single'\">\n <ax-button-group-item (onClick)=\"setFlexDirection('row')\" [selected]=\"flexDirection() === 'row'\"\n ><ax-prefix\n ><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M12.2929 7.00004L9.14645 3.85359L9.85355 3.14648L14.2071 7.50004L9.85355 11.8536L9.14645 11.1465L12.2929 8.00004H3V7.00004H12.2929Z\"\n fill=\"currentColor\"\n ></path></svg></ax-prefix\n ></ax-button-group-item>\n <ax-button-group-item (onClick)=\"setFlexDirection('row-reverse')\" [selected]=\"flexDirection() === 'row-reverse'\"\n ><ax-prefix\n ><svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style=\"transform: rotate(180deg)\"\n >\n <path\n d=\"M12.2929 7.00004L9.14645 3.85359L9.85355 3.14648L14.2071 7.50004L9.85355 11.8536L9.14645 11.1465L12.2929 8.00004H3V7.00004H12.2929Z\"\n fill=\"currentColor\"\n ></path></svg></ax-prefix\n ></ax-button-group-item>\n <ax-button-group-item (onClick)=\"setFlexDirection('column')\" [selected]=\"flexDirection() === 'column'\"\n ><ax-prefix\n ><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M8.00001 12.2929L4.85356 9.14645L4.14645 9.85355L8.50001 14.2071L12.8536 9.85355L12.1465 9.14645L9.00001 12.2929L9.00001 3H8.00001L8.00001 12.2929Z\"\n fill=\"currentColor\"\n ></path></svg></ax-prefix\n ></ax-button-group-item>\n <ax-button-group-item\n (onClick)=\"setFlexDirection('column-reverse')\"\n [selected]=\"flexDirection() === 'column-reverse'\"\n ><ax-prefix\n ><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M9.00004 3.70721L12.1465 6.85363L12.8536 6.14652L8.50001 1.79297L4.14645 6.14652L4.85356 6.85363L8.00004 3.70715L8.00004 13.0001H9.00004L9.00004 3.70721Z\"\n fill=\"currentColor\"\n ></path></svg></ax-prefix\n ></ax-button-group-item>\n <ax-button-group-item color=\"primary\">\n <ax-dropdown-panel>\n <ax-button-item-list>\n <ax-button-item text=\"Wrap\" (click)=\"setWrapMode('wrap')\" [class]=\"\" >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-bars\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n <ax-button-item text=\"No Wrap\" (click)=\"setWrapMode('nowrap')\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-minus\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n <ax-suffix>\n <ax-icon icon=\"fa-solid fa-chevron-down\"></ax-icon>\n </ax-suffix>\n </ax-button-group-item>\n </ax-button-group>\n </div>\n <span>Align</span>\n <div class=\"ax-flex ax-justify-between ax-gap-2 ax-items-center\">\n <div\n class=\"ax-relative ax-size-[62px] ax-bg-[rgb(30,30,30)] ax-border ax-border-white ax-border-opacity-15 ax-rounded\"\n >\n <div class=\"ax-absolute ax-inset-0 ax-grid ax-grid-cols-3 ax-grid-rows-3\">\n @for(side of flexSides; track side.value){\n <div\n [attr.aria-label]=\"side.label\"\n [attr.aria-value]=\"side.value\"\n class=\"ax-grid ax-place-content-center\"\n (mouseenter)=\"onHover(side)\"\n (mouseleave)=\"onHoverLeave()\"\n (click)=\"onClick(side)\"\n >\n @if (true) {\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"7\" y=\"7\" width=\"2\" height=\"2\" rx=\"1\" fill=\"currentColor\" fill-opacity=\"0.3\"></rect>\n </svg>\n }\n </div>\n }\n </div>\n <div\n class=\"ax-absolute ax-inset-0 ax-flex ax-pointer-events-none ax-transition-all\"\n [style.justify-content]=\"hoveredJustify()\"\n [style.align-items]=\"hoveredAlign()\"\n [style.flex-direction]=\"flexDirection()\"\n >\n <div class=\"ax-flex ax-justify-center ax-items-center ax-min-w-5 ax-min-h-5\">\n <div class=\"ax-size-auto ax-z-[1] ax-rounded-lg ax-bg-[rgb(30,30,30)] ax-flex-none\" [class]=\"flexDirectionIsColumn()? '-ax-rotate-90': ''\">\n @if(hoveredJustify()==='space-between'){ @if(clickedAlign()==='stretch'){ } @else if(clickedAlign()==='baseline' && hoveredAlign()==='flex-start' ){ } @else {\n <svg width=\"60\" height=\"20\" viewBox=\"0 0 60 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M29 6.5C29 6.22386 29.2239 6 29.5 6H30.5C30.7761 6 31 6.22386 31 6.5V15.5C31 15.7761 30.7761 16 30.5 16H29.5C29.2239 16 29 15.7761 29 15.5V6.5ZM9 8.5C9 8.22386 9.22386 8 9.5 8H10.5C10.7761 8 11 8.22386 11 8.5V12.5C11 12.7761 10.7761 13 10.5 13H9.5C9.22386 13 9 12.7761 9 12.5V8.5ZM49.5 8C49.2239 8 49 8.22386 49 8.5V14.5C49 14.7761 49.2239 15 49.5 15H50.5C50.7761 15 51 14.7761 51 14.5V8.5C51 8.22386 50.7761 8 50.5 8H49.5Z\"\n fill=\"currentColor\"\n fill-opacity=\"0.3\"\n ></path>\n </svg>\n } } @else if(hoveredJustify()==='space-around'){ @if(clickedAlign()==='stretch' ){ } @else if(clickedAlign()==='baseline' && hoveredAlign()==='flex-start' ){ } @else {\n <svg width=\"60\" height=\"20\" viewBox=\"0 0 60 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"11\" y=\"9\" width=\"2\" height=\"5\" rx=\"0.5\" fill=\"currentColor\" fill-opacity=\"0.3\"></rect>\n <rect x=\"29\" y=\"6\" width=\"2\" height=\"10\" rx=\"0.5\" fill=\"currentColor\" fill-opacity=\"0.3\"></rect>\n <rect x=\"47\" y=\"8\" width=\"2\" height=\"7\" rx=\"0.5\" fill=\"currentColor\" fill-opacity=\"0.3\"></rect>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M5 13L8 11L5 9V13ZM55 9L52 11L55 13V9Z\"\n fill=\"currentColor\"\n fill-opacity=\"0.3\"\n ></path>\n </svg>\n } } @else if(hoveredAlign()==='flex-start'){\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M3.5 7C3.22386 7 3 6.77614 3 6.5V3.5C3 3.22386 3.22386 3 3.5 3H4.5C4.77614 3 5 3.22386 5 3.5V6.5C5 6.77614 4.77614 7 4.5 7H3.5ZM7.5 13C7.22386 13 7 12.7761 7 12.5V3.5C7 3.22386 7.22386 3 7.5 3H8.5C8.77614 3 9 3.22386 9 3.5V12.5C9 12.7761 8.77614 13 8.5 13H7.5ZM11.5 3C11.2239 3 11 3.22386 11 3.5V8.5C11 8.77614 11.2239 9 11.5 9H12.5C12.7761 9 13 8.77614 13 8.5V3.5C13 3.22386 12.7761 3 12.5 3H11.5Z\"\n fill=\"currentColor\"\n fill-opacity=\"0.3\"\n ></path>\n </svg>\n }@else if (hoveredAlign()==='center') {\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7.5 13C7.22386 13 7 12.7761 7 12.5V3.5C7 3.22386 7.22386 3 7.5 3H8.5C8.77614 3 9 3.22386 9 3.5V12.5C9 12.7761 8.77614 13 8.5 13H7.5ZM3.5 10C3.22386 10 3 9.77614 3 9.5V6.5C3 6.22386 3.22386 6 3.5 6H4.5C4.77614 6 5 6.22386 5 6.5V9.5C5 9.77614 4.77614 10 4.5 10H3.5ZM11.5 5C11.2239 5 11 5.22386 11 5.5V10.5C11 10.7761 11.2239 11 11.5 11H12.5C12.7761 11 13 10.7761 13 10.5V5.5C13 5.22386 12.7761 5 12.5 5H11.5Z\"\n fill=\"currentColor\"\n fill-opacity=\"0.3\"\n ></path>\n </svg>\n } @else if (hoveredAlign()==='flex-end') {\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M11.5 7C11.2239 7 11 7.22386 11 7.5L11 12.5C11 12.7761 11.2239 13 11.5 13L12.5 13C12.7761 13 13 12.7761 13 12.5L13 7.5C13 7.22386 12.7761 7 12.5 7L11.5 7ZM7.5 13C7.22386 13 7 12.7761 7 12.5L7 3.5C7 3.22386 7.22386 3 7.5 3L8.5 3C8.77614 3 9 3.22386 9 3.5L9 12.5C9 12.7761 8.77614 13 8.5 13L7.5 13ZM3.5 13C3.22386 13 3 12.7761 3 12.5L3 9.5C3 9.22386 3.22386 9 3.5 9L4.5 9C4.77614 9 5 9.22386 5 9.5L5 12.5C5 12.7761 4.77614 13 4.5 13L3.5 13Z\"\n fill=\"currentColor\"\n fill-opacity=\"0.3\"\n ></path>\n </svg>\n } @else if (hoveredAlign()==='stretch') {\n <svg width=\"20\" height=\"60\" viewBox=\"0 0 20 60\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7 53.5C7 53.7761 6.77614 54 6.5 54L5.5 54C5.22386 54 5 53.7761 5 53.5L5 6.5C5 6.22386 5.22386 6 5.5 6L6.5 6C6.77614 6 7 6.22386 7 6.5L7 53.5ZM11 53.5C11 53.7761 10.7761 54 10.5 54L9.5 54C9.22386 54 9 53.7761 9 53.5L9 6.5C9 6.22386 9.22386 6 9.5 6L10.5 6C10.7761 6 11 6.22386 11 6.5L11 53.5ZM14.5 54C14.7761 54 15 53.7761 15 53.5L15 6.5C15 6.22386 14.7761 6 14.5 6L13.5 6C13.2239 6 13 6.22386 13 6.5L13 53.5C13 53.7761 13.2239 54 13.5 54L14.5 54Z\"\n fill=\"currentColor\"\n fill-opacity=\"0.3\"\n ></path>\n </svg>\n } @else if(hoveredAlign()==='baseline'){\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M13 2V8.29289L14.6464 6.64645L15.3536 7.35355L12.5 10.2071L9.64645 7.35355L10.3536 6.64645L12 8.29289V2H13Z\"\n fill=\"currentColor\"\n fill-opacity=\"0.3\"\n ></path>\n <path d=\"M16 12L1 12V13L16 13V12Z\" fill=\"currentColor\"></path>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4.62582 2H6.37412L8.72712 10H7.68476L7.09649 7.99994H3.90349L3.31524 10H2.27288L4.62582 2ZM6.80237 6.99994L5.62585 2.9999H5.37409L4.19761 6.99994H6.80237Z\"\n fill=\"currentColor\"\n fill-opacity=\"0.3\"\n ></path>\n </svg>\n }\n </div>\n </div>\n </div>\n <div\n class=\"ax-absolute ax-inset-0 ax-flex ax-pointer-events-none ax-transition-all\"\n [style.justify-content]=\"clickedJustify()\"\n [style.align-items]=\"clickedAlign()\"\n [style.flex-direction]=\"flexDirection()\"\n\n >\n <div class=\"ax-flex ax-justify-center ax-items-center ax-min-w-5 ax-min-h-5\">\n <div class=\"ax-size-auto ax-z-[2] ax-rounded-lg ax-bg-[rgb(30,30,30)] ax-flex-none\"\n [class]=\"flexDirectionIsColumn()? '-ax-rotate-90': ''\">\n @if(clickedJustify()==='space-between'){ @if(clickedAlign()==='stretch'){\n <svg width=\"60\" height=\"60\" viewBox=\"0 0 60 60\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M11 53.5C11 53.7761 10.7761 54 10.5 54H9.5C9.22386 54 9 53.7761 9 53.5L9 6.5C9 6.22386 9.22386 6 9.5 6H10.5C10.7761 6 11 6.22386 11 6.5L11 53.5ZM31 53.5C31 53.7761 30.7761 54 30.5 54H29.5C29.2239 54 29 53.7761 29 53.5L29 6.5C29 6.22386 29.2239 6 29.5 6H30.5C30.7761 6 31 6.22386 31 6.5L31 53.5ZM50.5 54C50.7761 54 51 53.7761 51 53.5L51 6.5C51 6.22386 50.7761 6 50.5 6H49.5C49.2239 6 49 6.22386 49 6.5L49 53.5C49 53.7761 49.2239 54 49.5 54H50.5Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n } @else if(clickedAlign()==='baseline'){\n <svg width=\"60\" height=\"20\" viewBox=\"0 0 60 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M50.5996 4V10.2929L52.246 8.64645L52.9531 9.35355L50.0996 12.2071L47.246 9.35355L47.9531 8.64645L49.5996 10.2929V4H50.5996Z\"\n fill=\"currentColor\"\n ></path>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M9.35294 4H11.1012L13.4542 12H12.4119L11.8236 9.99994H8.63061L8.04236 12H7L9.35294 4ZM11.5295 8.99994L10.353 4.9999H10.1012L8.92473 8.99994H11.5295Z\"\n fill=\"currentColor\"\n ></path>\n <path d=\"M6 14H54V15H6V14Z\" fill=\"currentColor\"></path>\n </svg>\n } @else{\n <svg width=\"60\" height=\"20\" viewBox=\"0 0 60 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M29 6.5C29 6.22386 29.2239 6 29.5 6H30.5C30.7761 6 31 6.22386 31 6.5V15.5C31 15.7761 30.7761 16 30.5 16H29.5C29.2239 16 29 15.7761 29 15.5V6.5ZM9 8.5C9 8.22386 9.22386 8 9.5 8H10.5C10.7761 8 11 8.22386 11 8.5V12.5C11 12.7761 10.7761 13 10.5 13H9.5C9.22386 13 9 12.7761 9 12.5V8.5ZM49.5 8C49.2239 8 49 8.22386 49 8.5V14.5C49 14.7761 49.2239 15 49.5 15H50.5C50.7761 15 51 14.7761 51 14.5V8.5C51 8.22386 50.7761 8 50.5 8H49.5Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n } } @else if(clickedJustify()==='space-around'){ @if(clickedAlign()==='stretch'){\n <svg width=\"60\" height=\"60\" viewBox=\"0 0 60 60\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8 30L5 32L5 28L8 30Z\" fill=\"currentColor\"></path>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M13 53.5C13 53.7761 12.7761 54 12.5 54H11.5C11.2239 54 11 53.7761 11 53.5L11 6.5C11 6.22386 11.2239 6 11.5 6H12.5C12.7761 6 13 6.22386 13 6.5L13 53.5ZM31 53.5C31 53.7761 30.7761 54 30.5 54H29.5C29.2239 54 29 53.7761 29 53.5L29 6.5C29 6.22386 29.2239 6 29.5 6H30.5C30.7761 6 31 6.22386 31 6.5L31 53.5ZM48.5 54C48.7761 54 49 53.7761 49 53.5L49 6.5C49 6.22386 48.7761 6 48.5 6H47.5C47.2239 6 47 6.22386 47 6.5L47 53.5C47 53.7761 47.2239 54 47.5 54H48.5Z\"\n fill=\"currentColor\"\n ></path>\n <path d=\"M52 30L55 28L55 32L52 30Z\" fill=\"currentColor\"></path>\n </svg>\n }@else if(clickedAlign()==='baseline'){\n <svg\n data-wf-icon=\"NineBoxAlignItemsRowSpaceAroundBaselineIcon\"\n width=\"60\"\n height=\"20\"\n viewBox=\"0 0 60 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M40.8529 4V10.2929L42.4993 8.64645L43.2064 9.35355L40.3529 12.2071L37.4993 9.35355L38.2064 8.64645L39.8529 10.2929V4H40.8529Z\"\n fill=\"currentColor\"\n ></path>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M19.3523 4H21.1006L23.4536 12H22.4112L21.8229 9.99994H18.6299L18.0417 12H16.9993L19.3523 4ZM21.5288 8.99994L20.3523 4.9999H20.1005L18.924 8.99994H21.5288Z\"\n fill=\"currentColor\"\n ></path>\n <path d=\"M6 14H54V15H6V14Z\" fill=\"currentColor\"></path>\n </svg>\n } @else {\n <svg width=\"60\" height=\"20\" viewBox=\"0 0 60 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"11\" y=\"9\" width=\"2\" height=\"5\" rx=\"0.5\" fill=\"currentColor\"></rect>\n <rect x=\"29\" y=\"6\" width=\"2\" height=\"10\" rx=\"0.5\" fill=\"currentColor\"></rect>\n <rect x=\"47\" y=\"8\" width=\"2\" height=\"7\" rx=\"0.5\" fill=\"currentColor\"></rect>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M5 13L8 11L5 9V13ZM55 9L52 11L55 13V9Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n } } @else if(clickedAlign()==='flex-start'){\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M3.5 7C3.22386 7 3 6.77614 3 6.5V3.5C3 3.22386 3.22386 3 3.5 3H4.5C4.77614 3 5 3.22386 5 3.5V6.5C5 6.77614 4.77614 7 4.5 7H3.5ZM7.5 13C7.22386 13 7 12.7761 7 12.5V3.5C7 3.22386 7.22386 3 7.5 3H8.5C8.77614 3 9 3.22386 9 3.5V12.5C9 12.7761 8.77614 13 8.5 13H7.5ZM11.5 3C11.2239 3 11 3.22386 11 3.5V8.5C11 8.77614 11.2239 9 11.5 9H12.5C12.7761 9 13 8.77614 13 8.5V3.5C13 3.22386 12.7761 3 12.5 3H11.5Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n }@else if (clickedAlign()==='center') {\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7.5 13C7.22386 13 7 12.7761 7 12.5V3.5C7 3.22386 7.22386 3 7.5 3H8.5C8.77614 3 9 3.22386 9 3.5V12.5C9 12.7761 8.77614 13 8.5 13H7.5ZM3.5 10C3.22386 10 3 9.77614 3 9.5V6.5C3 6.22386 3.22386 6 3.5 6H4.5C4.77614 6 5 6.22386 5 6.5V9.5C5 9.77614 4.77614 10 4.5 10H3.5ZM11.5 5C11.2239 5 11 5.22386 11 5.5V10.5C11 10.7761 11.2239 11 11.5 11H12.5C12.7761 11 13 10.7761 13 10.5V5.5C13 5.22386 12.7761 5 12.5 5H11.5Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n } @else if (clickedAlign()==='flex-end') {\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M11.5 7C11.2239 7 11 7.22386 11 7.5L11 12.5C11 12.7761 11.2239 13 11.5 13L12.5 13C12.7761 13 13 12.7761 13 12.5L13 7.5C13 7.22386 12.7761 7 12.5 7L11.5 7ZM7.5 13C7.22386 13 7 12.7761 7 12.5L7 3.5C7 3.22386 7.22386 3 7.5 3L8.5 3C8.77614 3 9 3.22386 9 3.5L9 12.5C9 12.7761 8.77614 13 8.5 13L7.5 13ZM3.5 13C3.22386 13 3 12.7761 3 12.5L3 9.5C3 9.22386 3.22386 9 3.5 9L4.5 9C4.77614 9 5 9.22386 5 9.5L5 12.5C5 12.7761 4.77614 13 4.5 13L3.5 13Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n } @else if (clickedAlign()==='stretch') {\n <svg width=\"20\" height=\"60\" viewBox=\"0 0 20 60\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7 53.5C7 53.7761 6.77614 54 6.5 54L5.5 54C5.22386 54 5 53.7761 5 53.5L5 6.5C5 6.22386 5.22386 6 5.5 6L6.5 6C6.77614 6 7 6.22386 7 6.5L7 53.5ZM11 53.5C11 53.7761 10.7761 54 10.5 54L9.5 54C9.22386 54 9 53.7761 9 53.5L9 6.5C9 6.22386 9.22386 6 9.5 6L10.5 6C10.7761 6 11 6.22386 11 6.5L11 53.5ZM14.5 54C14.7761 54 15 53.7761 15 53.5L15 6.5C15 6.22386 14.7761 6 14.5 6L13.5 6C13.2239 6 13 6.22386 13 6.5L13 53.5C13 53.7761 13.2239 54 13.5 54L14.5 54Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n }@else if(clickedAlign()==='baseline'){\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M13 2V8.29289L14.6464 6.64645L15.3536 7.35355L12.5 10.2071L9.64645 7.35355L10.3536 6.64645L12 8.29289V2H13Z\"\n fill=\"currentColor\"\n ></path>\n <path d=\"M16 12L1 12V13L16 13V12Z\" fill=\"currentColor\"></path>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4.62582 2H6.37412L8.72712 10H7.68476L7.09649 7.99994H3.90349L3.31524 10H2.27288L4.62582 2ZM6.80237 6.99994L5.62585 2.9999H5.37409L4.19761 6.99994H6.80237Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n }\n </div>\n </div>\n </div>\n </div>\n <div class=\"ax-grid ax-grid-cols-[auto_1fr] ax-items-center ax-justify-items-start ax-gap-2\">\n <span class=\"ax-order-1\">X:</span>\n <div class=\"ax-w-32\"\n [style.order]=\"flexDirectionIsColumn()?'4':'2'\">\n <!-- <ax-select-box\n [dataSource]=\"flexDirectionIsColumn()? alignDataSource : justifyDataSource\"\n [ngModel]=\"flexDirectionIsColumn()? selectedAlign : selectedJustify\"\n (ngModelChange)=\"flexDirectionIsColumn()? selectedAlign = $event : selectedJustify = $event\"\n (onValueChanged)=\"flexDirectionIsColumn()? onAlignChange($event) :onJustifyChange($event)\"\n textField=\"label\"\n valueField=\"value\"\n placeholder=\"Choose...\"\n >\n </ax-select-box> -->\n <ax-select-box\n [dataSource]=\"justifyDataSource\"\n [(ngModel)]=\"selectedJustify\"\n (onValueChanged)=\"onJustifyChange($event)\"\n textField=\"label\"\n valueField=\"value\"\n placeholder=\"Choose...\"\n >\n </ax-select-box>\n </div>\n <span class=\"ax-order-3\">Y:</span>\n <div class=\"ax-w-32\" [style.order]=\"flexDirectionIsColumn()?'2':'4'\">\n <ax-select-box\n [dataSource]=\"alignDataSource\"\n [(ngModel)]=\"selectedAlign\"\n (onValueChanged)=\"onAlignChange($event)\"\n textField=\"label\"\n valueField=\"value\"\n placeholder=\"Choose...\"\n >\n </ax-select-box>\n </div>\n </div>\n </div>\n <span>Gap</span>\n <div class=\"ax-flex ax-gap-2 ax-justify-between\">\n @if(gapMode()==='both') {\n <ax-range-slider\n class=\"ax-w-32\"\n color=\"neutral\"\n [ngModel]=\"gap().both\"\n (ngModelChange)=\"setGap($event ?? 0, 'both')\"\n ></ax-range-slider>\n <ax-number-box\n [minValue]=\"0\"\n [maxValue]=\"999\"\n [value]=\"gap().both\"\n [changeOnScroll]=\"true\"\n (valueChange)=\"setGap($event ?? 0, 'both')\"\n class=\"ax-min-w-6\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n } @else {\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <span class=\"ax-text-xs\">Row</span>\n <ax-number-box\n [minValue]=\"0\"\n [maxValue]=\"999\"\n [value]=\"gap().x\"\n [changeOnScroll]=\"true\"\n (valueChange)=\"setGap($event ?? 0, 'x')\"\n class=\"ax-min-w-5\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n <span class=\"ax-text-xs\">Column</span>\n <ax-number-box\n [minValue]=\"0\"\n [maxValue]=\"999\"\n [value]=\"gap().y\"\n [changeOnScroll]=\"true\"\n (valueChange)=\"setGap($event ?? 0, 'y')\"\n class=\"ax-min-w-5\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n </div>\n }\n <button (click)=\"setGapMode()\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n @if(gapMode()==='both'){\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M5 7L5 5C5 3.34315 6.34315 2 8 2C9.65685 2 11 3.34315 11 5V7C11.5523 7 12 7.44772 12 8V12C12 12.5523 11.5523 13 11 13H5C4.44772 13 4 12.5523 4 12V8C4 7.44771 4.44772 7 5 7ZM6 5C6 3.89543 6.89543 3 8 3C9.10457 3 10 3.89543 10 5V7H6V5ZM5 12V8H11V12H5Z\"\n fill=\"currentColor\"\n ></path>\n }@else {\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M9 5C9 3.89543 9.89543 3 11 3C12.1046 3 13 3.89543 13 5V6H14V5C14 3.34315 12.6569 2 11 2C9.34315 2 8 3.34315 8 5V7H3C2.44772 7 2 7.44771 2 8V12C2 12.5523 2.44772 13 3 13H9C9.55228 13 10 12.5523 10 12V8C10 7.44772 9.55228 7 9 7V5ZM3 8H9V12H3V8Z\"\n fill=\"currentColor\"\n ></path>\n }\n </svg>\n </button>\n </div>\n</div>", styles: [".axp-flex-option ax-range-slider{--ax-range-slider-base-thickness: .1rem;padding:.25rem!important}.axp-flex-option ax-number-box:not(.ax-exclude) div:first-child{height:2rem!important;border-radius:.3rem!important;font-size:12px}.axp-flex-option ax-number-box:not(.ax-exclude) div:first-child input{padding:.25rem 0 .25rem .25rem!important}.axp-flex-option ax-button-group>ax-button-group-item{width:2.62rem}\n"], dependencies: [{ kind: "ngmodule", type: AXButtonGroupModule }, { kind: "component", type: i4$3.AXButtonGroupComponent, selector: "ax-button-group", inputs: ["disabled", "color", "look", "selection"], outputs: ["onBlur", "onFocus", "lookChange", "colorChange", "disabledChange", "onClick", "selectionChange"] }, { kind: "component", type: i4$3.AXButtonGroupItemComponent, selector: "ax-button-group-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.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: AXSelectBoxModule }, { kind: "component", type: i3$2.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "textTemplate", "dataSource", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXRangeSliderModule }, { kind: "component", type: i4$2.AXRangeSliderComponent, selector: "ax-range-slider", inputs: ["disabled", "readonly", "orientation", "color", "values", "mode", "min", "max", "step", "snap", "tooltipMode", "snapMode", "hasStep", "hasSnap", "hasLable", "hasTooltip"], outputs: ["valuesChange"] }, { kind: "ngmodule", type: AXNumberBoxModule }, { kind: "component", type: i1$3.AXNumberBoxComponent, selector: "ax-number-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "changeOnScroll", "thousandsSeparator", "padDecimalZeros", "step", "decimals", "decimalStep", "showSpinButtons", "minValue", "maxValue", "class"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i6.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i5.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i5.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
9251
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPFlexOptionsWidgetEditComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"axp-flex-option ax-grid ax-grid-cols-[auto_1fr] ax-pt-2 ax-gap-2 ax-items-center ax-justify-items-start\">\n <span>Direction</span>\n <div>\n <ax-button-group [selection]=\"'single'\">\n <ax-button-group-item (onClick)=\"setFlexDirection('row')\" [selected]=\"flexDirection() === 'row'\"\n ><ax-prefix\n ><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M12.2929 7.00004L9.14645 3.85359L9.85355 3.14648L14.2071 7.50004L9.85355 11.8536L9.14645 11.1465L12.2929 8.00004H3V7.00004H12.2929Z\"\n fill=\"currentColor\"\n ></path></svg></ax-prefix\n ></ax-button-group-item>\n <ax-button-group-item (onClick)=\"setFlexDirection('row-reverse')\" [selected]=\"flexDirection() === 'row-reverse'\"\n ><ax-prefix\n ><svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style=\"transform: rotate(180deg)\"\n >\n <path\n d=\"M12.2929 7.00004L9.14645 3.85359L9.85355 3.14648L14.2071 7.50004L9.85355 11.8536L9.14645 11.1465L12.2929 8.00004H3V7.00004H12.2929Z\"\n fill=\"currentColor\"\n ></path></svg></ax-prefix\n ></ax-button-group-item>\n <ax-button-group-item (onClick)=\"setFlexDirection('column')\" [selected]=\"flexDirection() === 'column'\"\n ><ax-prefix\n ><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M8.00001 12.2929L4.85356 9.14645L4.14645 9.85355L8.50001 14.2071L12.8536 9.85355L12.1465 9.14645L9.00001 12.2929L9.00001 3H8.00001L8.00001 12.2929Z\"\n fill=\"currentColor\"\n ></path></svg></ax-prefix\n ></ax-button-group-item>\n <ax-button-group-item\n (onClick)=\"setFlexDirection('column-reverse')\"\n [selected]=\"flexDirection() === 'column-reverse'\"\n ><ax-prefix\n ><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M9.00004 3.70721L12.1465 6.85363L12.8536 6.14652L8.50001 1.79297L4.14645 6.14652L4.85356 6.85363L8.00004 3.70715L8.00004 13.0001H9.00004L9.00004 3.70721Z\"\n fill=\"currentColor\"\n ></path></svg></ax-prefix\n ></ax-button-group-item>\n <ax-button-group-item color=\"primary\">\n <ax-dropdown-panel>\n <ax-button-item-list>\n <ax-button-item text=\"Wrap\" (click)=\"setWrapMode('wrap')\" [class]=\"\" >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-bars\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n <ax-button-item text=\"No Wrap\" (click)=\"setWrapMode('nowrap')\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-minus\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n <ax-suffix>\n <ax-icon icon=\"fa-solid fa-chevron-down\"></ax-icon>\n </ax-suffix>\n </ax-button-group-item>\n </ax-button-group>\n </div>\n <span>Align</span>\n <div class=\"ax-flex ax-justify-between ax-gap-2 ax-items-center\">\n <div\n class=\"ax-relative ax-size-[62px] ax-bg-[rgb(30,30,30)] ax-border ax-border-white ax-border-opacity-15 ax-rounded\"\n >\n <div class=\"ax-absolute ax-inset-0 ax-grid ax-grid-cols-3 ax-grid-rows-3\">\n @for(side of flexSides; track side.value){\n <div\n [attr.aria-label]=\"side.label\"\n [attr.aria-value]=\"side.value\"\n class=\"ax-grid ax-place-content-center\"\n (mouseenter)=\"onHover(side)\"\n (mouseleave)=\"onHoverLeave()\"\n (click)=\"onClick(side)\"\n >\n @if (true) {\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"7\" y=\"7\" width=\"2\" height=\"2\" rx=\"1\" fill=\"currentColor\" fill-opacity=\"0.3\"></rect>\n </svg>\n }\n </div>\n }\n </div>\n <div\n class=\"ax-absolute ax-inset-0 ax-flex ax-pointer-events-none ax-transition-all\"\n [style.justify-content]=\"hoveredJustify()\"\n [style.align-items]=\"hoveredAlign()\"\n [style.flex-direction]=\"flexDirection()\"\n >\n <div class=\"ax-flex ax-justify-center ax-items-center ax-min-w-5 ax-min-h-5\">\n <div class=\"ax-size-auto ax-z-[1] ax-rounded-lg ax-bg-[rgb(30,30,30)] ax-flex-none\" [class]=\"flexDirectionIsColumn()? '-ax-rotate-90': ''\">\n @if(hoveredJustify()==='space-between'){ @if(clickedAlign()==='stretch'){ } @else if(clickedAlign()==='baseline' && hoveredAlign()==='flex-start' ){ } @else {\n <svg width=\"60\" height=\"20\" viewBox=\"0 0 60 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M29 6.5C29 6.22386 29.2239 6 29.5 6H30.5C30.7761 6 31 6.22386 31 6.5V15.5C31 15.7761 30.7761 16 30.5 16H29.5C29.2239 16 29 15.7761 29 15.5V6.5ZM9 8.5C9 8.22386 9.22386 8 9.5 8H10.5C10.7761 8 11 8.22386 11 8.5V12.5C11 12.7761 10.7761 13 10.5 13H9.5C9.22386 13 9 12.7761 9 12.5V8.5ZM49.5 8C49.2239 8 49 8.22386 49 8.5V14.5C49 14.7761 49.2239 15 49.5 15H50.5C50.7761 15 51 14.7761 51 14.5V8.5C51 8.22386 50.7761 8 50.5 8H49.5Z\"\n fill=\"currentColor\"\n fill-opacity=\"0.3\"\n ></path>\n </svg>\n } } @else if(hoveredJustify()==='space-around'){ @if(clickedAlign()==='stretch' ){ } @else if(clickedAlign()==='baseline' && hoveredAlign()==='flex-start' ){ } @else {\n <svg width=\"60\" height=\"20\" viewBox=\"0 0 60 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"11\" y=\"9\" width=\"2\" height=\"5\" rx=\"0.5\" fill=\"currentColor\" fill-opacity=\"0.3\"></rect>\n <rect x=\"29\" y=\"6\" width=\"2\" height=\"10\" rx=\"0.5\" fill=\"currentColor\" fill-opacity=\"0.3\"></rect>\n <rect x=\"47\" y=\"8\" width=\"2\" height=\"7\" rx=\"0.5\" fill=\"currentColor\" fill-opacity=\"0.3\"></rect>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M5 13L8 11L5 9V13ZM55 9L52 11L55 13V9Z\"\n fill=\"currentColor\"\n fill-opacity=\"0.3\"\n ></path>\n </svg>\n } } @else if(hoveredAlign()==='flex-start'){\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M3.5 7C3.22386 7 3 6.77614 3 6.5V3.5C3 3.22386 3.22386 3 3.5 3H4.5C4.77614 3 5 3.22386 5 3.5V6.5C5 6.77614 4.77614 7 4.5 7H3.5ZM7.5 13C7.22386 13 7 12.7761 7 12.5V3.5C7 3.22386 7.22386 3 7.5 3H8.5C8.77614 3 9 3.22386 9 3.5V12.5C9 12.7761 8.77614 13 8.5 13H7.5ZM11.5 3C11.2239 3 11 3.22386 11 3.5V8.5C11 8.77614 11.2239 9 11.5 9H12.5C12.7761 9 13 8.77614 13 8.5V3.5C13 3.22386 12.7761 3 12.5 3H11.5Z\"\n fill=\"currentColor\"\n fill-opacity=\"0.3\"\n ></path>\n </svg>\n }@else if (hoveredAlign()==='center') {\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7.5 13C7.22386 13 7 12.7761 7 12.5V3.5C7 3.22386 7.22386 3 7.5 3H8.5C8.77614 3 9 3.22386 9 3.5V12.5C9 12.7761 8.77614 13 8.5 13H7.5ZM3.5 10C3.22386 10 3 9.77614 3 9.5V6.5C3 6.22386 3.22386 6 3.5 6H4.5C4.77614 6 5 6.22386 5 6.5V9.5C5 9.77614 4.77614 10 4.5 10H3.5ZM11.5 5C11.2239 5 11 5.22386 11 5.5V10.5C11 10.7761 11.2239 11 11.5 11H12.5C12.7761 11 13 10.7761 13 10.5V5.5C13 5.22386 12.7761 5 12.5 5H11.5Z\"\n fill=\"currentColor\"\n fill-opacity=\"0.3\"\n ></path>\n </svg>\n } @else if (hoveredAlign()==='flex-end') {\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M11.5 7C11.2239 7 11 7.22386 11 7.5L11 12.5C11 12.7761 11.2239 13 11.5 13L12.5 13C12.7761 13 13 12.7761 13 12.5L13 7.5C13 7.22386 12.7761 7 12.5 7L11.5 7ZM7.5 13C7.22386 13 7 12.7761 7 12.5L7 3.5C7 3.22386 7.22386 3 7.5 3L8.5 3C8.77614 3 9 3.22386 9 3.5L9 12.5C9 12.7761 8.77614 13 8.5 13L7.5 13ZM3.5 13C3.22386 13 3 12.7761 3 12.5L3 9.5C3 9.22386 3.22386 9 3.5 9L4.5 9C4.77614 9 5 9.22386 5 9.5L5 12.5C5 12.7761 4.77614 13 4.5 13L3.5 13Z\"\n fill=\"currentColor\"\n fill-opacity=\"0.3\"\n ></path>\n </svg>\n } @else if (hoveredAlign()==='stretch') {\n <svg width=\"20\" height=\"60\" viewBox=\"0 0 20 60\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7 53.5C7 53.7761 6.77614 54 6.5 54L5.5 54C5.22386 54 5 53.7761 5 53.5L5 6.5C5 6.22386 5.22386 6 5.5 6L6.5 6C6.77614 6 7 6.22386 7 6.5L7 53.5ZM11 53.5C11 53.7761 10.7761 54 10.5 54L9.5 54C9.22386 54 9 53.7761 9 53.5L9 6.5C9 6.22386 9.22386 6 9.5 6L10.5 6C10.7761 6 11 6.22386 11 6.5L11 53.5ZM14.5 54C14.7761 54 15 53.7761 15 53.5L15 6.5C15 6.22386 14.7761 6 14.5 6L13.5 6C13.2239 6 13 6.22386 13 6.5L13 53.5C13 53.7761 13.2239 54 13.5 54L14.5 54Z\"\n fill=\"currentColor\"\n fill-opacity=\"0.3\"\n ></path>\n </svg>\n } @else if(hoveredAlign()==='baseline'){\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M13 2V8.29289L14.6464 6.64645L15.3536 7.35355L12.5 10.2071L9.64645 7.35355L10.3536 6.64645L12 8.29289V2H13Z\"\n fill=\"currentColor\"\n fill-opacity=\"0.3\"\n ></path>\n <path d=\"M16 12L1 12V13L16 13V12Z\" fill=\"currentColor\"></path>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4.62582 2H6.37412L8.72712 10H7.68476L7.09649 7.99994H3.90349L3.31524 10H2.27288L4.62582 2ZM6.80237 6.99994L5.62585 2.9999H5.37409L4.19761 6.99994H6.80237Z\"\n fill=\"currentColor\"\n fill-opacity=\"0.3\"\n ></path>\n </svg>\n }\n </div>\n </div>\n </div>\n <div\n class=\"ax-absolute ax-inset-0 ax-flex ax-pointer-events-none ax-transition-all\"\n [style.justify-content]=\"clickedJustify()\"\n [style.align-items]=\"clickedAlign()\"\n [style.flex-direction]=\"flexDirection()\"\n\n >\n <div class=\"ax-flex ax-justify-center ax-items-center ax-min-w-5 ax-min-h-5\">\n <div class=\"ax-size-auto ax-z-[2] ax-rounded-lg ax-bg-[rgb(30,30,30)] ax-flex-none\"\n [class]=\"flexDirectionIsColumn()? '-ax-rotate-90': ''\">\n @if(clickedJustify()==='space-between'){ @if(clickedAlign()==='stretch'){\n <svg width=\"60\" height=\"60\" viewBox=\"0 0 60 60\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M11 53.5C11 53.7761 10.7761 54 10.5 54H9.5C9.22386 54 9 53.7761 9 53.5L9 6.5C9 6.22386 9.22386 6 9.5 6H10.5C10.7761 6 11 6.22386 11 6.5L11 53.5ZM31 53.5C31 53.7761 30.7761 54 30.5 54H29.5C29.2239 54 29 53.7761 29 53.5L29 6.5C29 6.22386 29.2239 6 29.5 6H30.5C30.7761 6 31 6.22386 31 6.5L31 53.5ZM50.5 54C50.7761 54 51 53.7761 51 53.5L51 6.5C51 6.22386 50.7761 6 50.5 6H49.5C49.2239 6 49 6.22386 49 6.5L49 53.5C49 53.7761 49.2239 54 49.5 54H50.5Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n } @else if(clickedAlign()==='baseline'){\n <svg width=\"60\" height=\"20\" viewBox=\"0 0 60 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M50.5996 4V10.2929L52.246 8.64645L52.9531 9.35355L50.0996 12.2071L47.246 9.35355L47.9531 8.64645L49.5996 10.2929V4H50.5996Z\"\n fill=\"currentColor\"\n ></path>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M9.35294 4H11.1012L13.4542 12H12.4119L11.8236 9.99994H8.63061L8.04236 12H7L9.35294 4ZM11.5295 8.99994L10.353 4.9999H10.1012L8.92473 8.99994H11.5295Z\"\n fill=\"currentColor\"\n ></path>\n <path d=\"M6 14H54V15H6V14Z\" fill=\"currentColor\"></path>\n </svg>\n } @else{\n <svg width=\"60\" height=\"20\" viewBox=\"0 0 60 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M29 6.5C29 6.22386 29.2239 6 29.5 6H30.5C30.7761 6 31 6.22386 31 6.5V15.5C31 15.7761 30.7761 16 30.5 16H29.5C29.2239 16 29 15.7761 29 15.5V6.5ZM9 8.5C9 8.22386 9.22386 8 9.5 8H10.5C10.7761 8 11 8.22386 11 8.5V12.5C11 12.7761 10.7761 13 10.5 13H9.5C9.22386 13 9 12.7761 9 12.5V8.5ZM49.5 8C49.2239 8 49 8.22386 49 8.5V14.5C49 14.7761 49.2239 15 49.5 15H50.5C50.7761 15 51 14.7761 51 14.5V8.5C51 8.22386 50.7761 8 50.5 8H49.5Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n } } @else if(clickedJustify()==='space-around'){ @if(clickedAlign()==='stretch'){\n <svg width=\"60\" height=\"60\" viewBox=\"0 0 60 60\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8 30L5 32L5 28L8 30Z\" fill=\"currentColor\"></path>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M13 53.5C13 53.7761 12.7761 54 12.5 54H11.5C11.2239 54 11 53.7761 11 53.5L11 6.5C11 6.22386 11.2239 6 11.5 6H12.5C12.7761 6 13 6.22386 13 6.5L13 53.5ZM31 53.5C31 53.7761 30.7761 54 30.5 54H29.5C29.2239 54 29 53.7761 29 53.5L29 6.5C29 6.22386 29.2239 6 29.5 6H30.5C30.7761 6 31 6.22386 31 6.5L31 53.5ZM48.5 54C48.7761 54 49 53.7761 49 53.5L49 6.5C49 6.22386 48.7761 6 48.5 6H47.5C47.2239 6 47 6.22386 47 6.5L47 53.5C47 53.7761 47.2239 54 47.5 54H48.5Z\"\n fill=\"currentColor\"\n ></path>\n <path d=\"M52 30L55 28L55 32L52 30Z\" fill=\"currentColor\"></path>\n </svg>\n }@else if(clickedAlign()==='baseline'){\n <svg\n data-wf-icon=\"NineBoxAlignItemsRowSpaceAroundBaselineIcon\"\n width=\"60\"\n height=\"20\"\n viewBox=\"0 0 60 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M40.8529 4V10.2929L42.4993 8.64645L43.2064 9.35355L40.3529 12.2071L37.4993 9.35355L38.2064 8.64645L39.8529 10.2929V4H40.8529Z\"\n fill=\"currentColor\"\n ></path>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M19.3523 4H21.1006L23.4536 12H22.4112L21.8229 9.99994H18.6299L18.0417 12H16.9993L19.3523 4ZM21.5288 8.99994L20.3523 4.9999H20.1005L18.924 8.99994H21.5288Z\"\n fill=\"currentColor\"\n ></path>\n <path d=\"M6 14H54V15H6V14Z\" fill=\"currentColor\"></path>\n </svg>\n } @else {\n <svg width=\"60\" height=\"20\" viewBox=\"0 0 60 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"11\" y=\"9\" width=\"2\" height=\"5\" rx=\"0.5\" fill=\"currentColor\"></rect>\n <rect x=\"29\" y=\"6\" width=\"2\" height=\"10\" rx=\"0.5\" fill=\"currentColor\"></rect>\n <rect x=\"47\" y=\"8\" width=\"2\" height=\"7\" rx=\"0.5\" fill=\"currentColor\"></rect>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M5 13L8 11L5 9V13ZM55 9L52 11L55 13V9Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n } } @else if(clickedAlign()==='flex-start'){\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M3.5 7C3.22386 7 3 6.77614 3 6.5V3.5C3 3.22386 3.22386 3 3.5 3H4.5C4.77614 3 5 3.22386 5 3.5V6.5C5 6.77614 4.77614 7 4.5 7H3.5ZM7.5 13C7.22386 13 7 12.7761 7 12.5V3.5C7 3.22386 7.22386 3 7.5 3H8.5C8.77614 3 9 3.22386 9 3.5V12.5C9 12.7761 8.77614 13 8.5 13H7.5ZM11.5 3C11.2239 3 11 3.22386 11 3.5V8.5C11 8.77614 11.2239 9 11.5 9H12.5C12.7761 9 13 8.77614 13 8.5V3.5C13 3.22386 12.7761 3 12.5 3H11.5Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n }@else if (clickedAlign()==='center') {\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7.5 13C7.22386 13 7 12.7761 7 12.5V3.5C7 3.22386 7.22386 3 7.5 3H8.5C8.77614 3 9 3.22386 9 3.5V12.5C9 12.7761 8.77614 13 8.5 13H7.5ZM3.5 10C3.22386 10 3 9.77614 3 9.5V6.5C3 6.22386 3.22386 6 3.5 6H4.5C4.77614 6 5 6.22386 5 6.5V9.5C5 9.77614 4.77614 10 4.5 10H3.5ZM11.5 5C11.2239 5 11 5.22386 11 5.5V10.5C11 10.7761 11.2239 11 11.5 11H12.5C12.7761 11 13 10.7761 13 10.5V5.5C13 5.22386 12.7761 5 12.5 5H11.5Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n } @else if (clickedAlign()==='flex-end') {\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M11.5 7C11.2239 7 11 7.22386 11 7.5L11 12.5C11 12.7761 11.2239 13 11.5 13L12.5 13C12.7761 13 13 12.7761 13 12.5L13 7.5C13 7.22386 12.7761 7 12.5 7L11.5 7ZM7.5 13C7.22386 13 7 12.7761 7 12.5L7 3.5C7 3.22386 7.22386 3 7.5 3L8.5 3C8.77614 3 9 3.22386 9 3.5L9 12.5C9 12.7761 8.77614 13 8.5 13L7.5 13ZM3.5 13C3.22386 13 3 12.7761 3 12.5L3 9.5C3 9.22386 3.22386 9 3.5 9L4.5 9C4.77614 9 5 9.22386 5 9.5L5 12.5C5 12.7761 4.77614 13 4.5 13L3.5 13Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n } @else if (clickedAlign()==='stretch') {\n <svg width=\"20\" height=\"60\" viewBox=\"0 0 20 60\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7 53.5C7 53.7761 6.77614 54 6.5 54L5.5 54C5.22386 54 5 53.7761 5 53.5L5 6.5C5 6.22386 5.22386 6 5.5 6L6.5 6C6.77614 6 7 6.22386 7 6.5L7 53.5ZM11 53.5C11 53.7761 10.7761 54 10.5 54L9.5 54C9.22386 54 9 53.7761 9 53.5L9 6.5C9 6.22386 9.22386 6 9.5 6L10.5 6C10.7761 6 11 6.22386 11 6.5L11 53.5ZM14.5 54C14.7761 54 15 53.7761 15 53.5L15 6.5C15 6.22386 14.7761 6 14.5 6L13.5 6C13.2239 6 13 6.22386 13 6.5L13 53.5C13 53.7761 13.2239 54 13.5 54L14.5 54Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n }@else if(clickedAlign()==='baseline'){\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M13 2V8.29289L14.6464 6.64645L15.3536 7.35355L12.5 10.2071L9.64645 7.35355L10.3536 6.64645L12 8.29289V2H13Z\"\n fill=\"currentColor\"\n ></path>\n <path d=\"M16 12L1 12V13L16 13V12Z\" fill=\"currentColor\"></path>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4.62582 2H6.37412L8.72712 10H7.68476L7.09649 7.99994H3.90349L3.31524 10H2.27288L4.62582 2ZM6.80237 6.99994L5.62585 2.9999H5.37409L4.19761 6.99994H6.80237Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n }\n </div>\n </div>\n </div>\n </div>\n <div class=\"ax-grid ax-grid-cols-[auto_1fr] ax-items-center ax-justify-items-start ax-gap-2\">\n <span class=\"ax-order-1\">X:</span>\n <div class=\"ax-w-32\"\n [style.order]=\"flexDirectionIsColumn()?'4':'2'\">\n <!-- <ax-select-box\n [dataSource]=\"flexDirectionIsColumn()? alignDataSource : justifyDataSource\"\n [ngModel]=\"flexDirectionIsColumn()? selectedAlign : selectedJustify\"\n (ngModelChange)=\"flexDirectionIsColumn()? selectedAlign = $event : selectedJustify = $event\"\n (onValueChanged)=\"flexDirectionIsColumn()? onAlignChange($event) :onJustifyChange($event)\"\n textField=\"label\"\n valueField=\"value\"\n placeholder=\"Choose...\"\n >\n </ax-select-box> -->\n <ax-select-box\n [dataSource]=\"justifyDataSource\"\n [(ngModel)]=\"selectedJustify\"\n (onValueChanged)=\"onJustifyChange($event)\"\n textField=\"label\"\n valueField=\"value\"\n placeholder=\"Choose...\"\n >\n </ax-select-box>\n </div>\n <span class=\"ax-order-3\">Y:</span>\n <div class=\"ax-w-32\" [style.order]=\"flexDirectionIsColumn()?'2':'4'\">\n <ax-select-box\n [dataSource]=\"alignDataSource\"\n [(ngModel)]=\"selectedAlign\"\n (onValueChanged)=\"onAlignChange($event)\"\n textField=\"label\"\n valueField=\"value\"\n placeholder=\"Choose...\"\n >\n </ax-select-box>\n </div>\n </div>\n </div>\n <span>Gap</span>\n <div class=\"ax-flex ax-gap-2 ax-justify-between\">\n @if(gapMode()==='both') {\n <ax-range-slider\n class=\"ax-w-32\"\n color=\"neutral\"\n [ngModel]=\"gap().both\"\n (ngModelChange)=\"setGap($event ?? 0, 'both')\"\n ></ax-range-slider>\n <ax-number-box\n [minValue]=\"0\"\n [maxValue]=\"999\"\n [value]=\"gap().both\"\n [changeOnScroll]=\"true\"\n (valueChange)=\"setGap($event ?? 0, 'both')\"\n class=\"ax-min-w-6\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n } @else {\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <span class=\"ax-text-xs\">Row</span>\n <ax-number-box\n [minValue]=\"0\"\n [maxValue]=\"999\"\n [value]=\"gap().x\"\n [changeOnScroll]=\"true\"\n (valueChange)=\"setGap($event ?? 0, 'x')\"\n class=\"ax-min-w-5\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n <span class=\"ax-text-xs\">Column</span>\n <ax-number-box\n [minValue]=\"0\"\n [maxValue]=\"999\"\n [value]=\"gap().y\"\n [changeOnScroll]=\"true\"\n (valueChange)=\"setGap($event ?? 0, 'y')\"\n class=\"ax-min-w-5\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n </div>\n }\n <button (click)=\"setGapMode()\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n @if(gapMode()==='both'){\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M5 7L5 5C5 3.34315 6.34315 2 8 2C9.65685 2 11 3.34315 11 5V7C11.5523 7 12 7.44772 12 8V12C12 12.5523 11.5523 13 11 13H5C4.44772 13 4 12.5523 4 12V8C4 7.44771 4.44772 7 5 7ZM6 5C6 3.89543 6.89543 3 8 3C9.10457 3 10 3.89543 10 5V7H6V5ZM5 12V8H11V12H5Z\"\n fill=\"currentColor\"\n ></path>\n }@else {\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M9 5C9 3.89543 9.89543 3 11 3C12.1046 3 13 3.89543 13 5V6H14V5C14 3.34315 12.6569 2 11 2C9.34315 2 8 3.34315 8 5V7H3C2.44772 7 2 7.44771 2 8V12C2 12.5523 2.44772 13 3 13H9C9.55228 13 10 12.5523 10 12V8C10 7.44772 9.55228 7 9 7V5ZM3 8H9V12H3V8Z\"\n fill=\"currentColor\"\n ></path>\n }\n </svg>\n </button>\n </div>\n</div>", styles: [".axp-flex-option ax-range-slider{padding:.25rem!important}.axp-flex-option ax-range-slider .ax-range-slider-handler{width:.75rem!important;height:.75rem!important}.axp-flex-option ax-number-box:not(.ax-exclude) div:first-child{height:2rem!important;border-radius:.3rem!important;font-size:12px}.axp-flex-option ax-number-box:not(.ax-exclude) div:first-child input{padding:.25rem 0 .25rem .25rem!important}.axp-flex-option ax-button-group>ax-button-group-item{width:2.62rem}\n"], dependencies: [{ kind: "ngmodule", type: AXButtonGroupModule }, { kind: "component", type: i4$2.AXButtonGroupComponent, selector: "ax-button-group", inputs: ["disabled", "color", "look", "selection"], outputs: ["onBlur", "onFocus", "lookChange", "colorChange", "disabledChange", "onClick", "selectionChange"] }, { kind: "component", type: i4$2.AXButtonGroupItemComponent, selector: "ax-button-group-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.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: AXSelectBoxModule }, { kind: "component", type: i3$2.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "textTemplate", "dataSource", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXRangeSliderModule }, { kind: "component", type: i3$6.AXRangeSliderComponent, selector: "ax-range-slider", inputs: ["disabled", "readonly", "orientation", "color", "values", "mode", "min", "max", "step", "snap", "tooltipMode", "snapMode", "hasStep", "hasSnap", "hasLable", "hasTooltip"], outputs: ["valuesChange"] }, { kind: "ngmodule", type: AXNumberBoxModule }, { kind: "component", type: i1$3.AXNumberBoxComponent, selector: "ax-number-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "changeOnScroll", "thousandsSeparator", "padDecimalZeros", "step", "decimals", "decimalStep", "showSpinButtons", "minValue", "maxValue", "class"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i6.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i5.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i5.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
8969
9252
  }
8970
9253
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFlexOptionsWidgetEditComponent, decorators: [{
8971
9254
  type: Component,
@@ -8978,7 +9261,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
8978
9261
  AXDropdownModule,
8979
9262
  AXButtonModule,
8980
9263
  FormsModule,
8981
- ], template: "<div class=\"axp-flex-option ax-grid ax-grid-cols-[auto_1fr] ax-pt-2 ax-gap-2 ax-items-center ax-justify-items-start\">\n <span>Direction</span>\n <div>\n <ax-button-group [selection]=\"'single'\">\n <ax-button-group-item (onClick)=\"setFlexDirection('row')\" [selected]=\"flexDirection() === 'row'\"\n ><ax-prefix\n ><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M12.2929 7.00004L9.14645 3.85359L9.85355 3.14648L14.2071 7.50004L9.85355 11.8536L9.14645 11.1465L12.2929 8.00004H3V7.00004H12.2929Z\"\n fill=\"currentColor\"\n ></path></svg></ax-prefix\n ></ax-button-group-item>\n <ax-button-group-item (onClick)=\"setFlexDirection('row-reverse')\" [selected]=\"flexDirection() === 'row-reverse'\"\n ><ax-prefix\n ><svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style=\"transform: rotate(180deg)\"\n >\n <path\n d=\"M12.2929 7.00004L9.14645 3.85359L9.85355 3.14648L14.2071 7.50004L9.85355 11.8536L9.14645 11.1465L12.2929 8.00004H3V7.00004H12.2929Z\"\n fill=\"currentColor\"\n ></path></svg></ax-prefix\n ></ax-button-group-item>\n <ax-button-group-item (onClick)=\"setFlexDirection('column')\" [selected]=\"flexDirection() === 'column'\"\n ><ax-prefix\n ><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M8.00001 12.2929L4.85356 9.14645L4.14645 9.85355L8.50001 14.2071L12.8536 9.85355L12.1465 9.14645L9.00001 12.2929L9.00001 3H8.00001L8.00001 12.2929Z\"\n fill=\"currentColor\"\n ></path></svg></ax-prefix\n ></ax-button-group-item>\n <ax-button-group-item\n (onClick)=\"setFlexDirection('column-reverse')\"\n [selected]=\"flexDirection() === 'column-reverse'\"\n ><ax-prefix\n ><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M9.00004 3.70721L12.1465 6.85363L12.8536 6.14652L8.50001 1.79297L4.14645 6.14652L4.85356 6.85363L8.00004 3.70715L8.00004 13.0001H9.00004L9.00004 3.70721Z\"\n fill=\"currentColor\"\n ></path></svg></ax-prefix\n ></ax-button-group-item>\n <ax-button-group-item color=\"primary\">\n <ax-dropdown-panel>\n <ax-button-item-list>\n <ax-button-item text=\"Wrap\" (click)=\"setWrapMode('wrap')\" [class]=\"\" >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-bars\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n <ax-button-item text=\"No Wrap\" (click)=\"setWrapMode('nowrap')\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-minus\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n <ax-suffix>\n <ax-icon icon=\"fa-solid fa-chevron-down\"></ax-icon>\n </ax-suffix>\n </ax-button-group-item>\n </ax-button-group>\n </div>\n <span>Align</span>\n <div class=\"ax-flex ax-justify-between ax-gap-2 ax-items-center\">\n <div\n class=\"ax-relative ax-size-[62px] ax-bg-[rgb(30,30,30)] ax-border ax-border-white ax-border-opacity-15 ax-rounded\"\n >\n <div class=\"ax-absolute ax-inset-0 ax-grid ax-grid-cols-3 ax-grid-rows-3\">\n @for(side of flexSides; track side.value){\n <div\n [attr.aria-label]=\"side.label\"\n [attr.aria-value]=\"side.value\"\n class=\"ax-grid ax-place-content-center\"\n (mouseenter)=\"onHover(side)\"\n (mouseleave)=\"onHoverLeave()\"\n (click)=\"onClick(side)\"\n >\n @if (true) {\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"7\" y=\"7\" width=\"2\" height=\"2\" rx=\"1\" fill=\"currentColor\" fill-opacity=\"0.3\"></rect>\n </svg>\n }\n </div>\n }\n </div>\n <div\n class=\"ax-absolute ax-inset-0 ax-flex ax-pointer-events-none ax-transition-all\"\n [style.justify-content]=\"hoveredJustify()\"\n [style.align-items]=\"hoveredAlign()\"\n [style.flex-direction]=\"flexDirection()\"\n >\n <div class=\"ax-flex ax-justify-center ax-items-center ax-min-w-5 ax-min-h-5\">\n <div class=\"ax-size-auto ax-z-[1] ax-rounded-lg ax-bg-[rgb(30,30,30)] ax-flex-none\" [class]=\"flexDirectionIsColumn()? '-ax-rotate-90': ''\">\n @if(hoveredJustify()==='space-between'){ @if(clickedAlign()==='stretch'){ } @else if(clickedAlign()==='baseline' && hoveredAlign()==='flex-start' ){ } @else {\n <svg width=\"60\" height=\"20\" viewBox=\"0 0 60 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M29 6.5C29 6.22386 29.2239 6 29.5 6H30.5C30.7761 6 31 6.22386 31 6.5V15.5C31 15.7761 30.7761 16 30.5 16H29.5C29.2239 16 29 15.7761 29 15.5V6.5ZM9 8.5C9 8.22386 9.22386 8 9.5 8H10.5C10.7761 8 11 8.22386 11 8.5V12.5C11 12.7761 10.7761 13 10.5 13H9.5C9.22386 13 9 12.7761 9 12.5V8.5ZM49.5 8C49.2239 8 49 8.22386 49 8.5V14.5C49 14.7761 49.2239 15 49.5 15H50.5C50.7761 15 51 14.7761 51 14.5V8.5C51 8.22386 50.7761 8 50.5 8H49.5Z\"\n fill=\"currentColor\"\n fill-opacity=\"0.3\"\n ></path>\n </svg>\n } } @else if(hoveredJustify()==='space-around'){ @if(clickedAlign()==='stretch' ){ } @else if(clickedAlign()==='baseline' && hoveredAlign()==='flex-start' ){ } @else {\n <svg width=\"60\" height=\"20\" viewBox=\"0 0 60 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"11\" y=\"9\" width=\"2\" height=\"5\" rx=\"0.5\" fill=\"currentColor\" fill-opacity=\"0.3\"></rect>\n <rect x=\"29\" y=\"6\" width=\"2\" height=\"10\" rx=\"0.5\" fill=\"currentColor\" fill-opacity=\"0.3\"></rect>\n <rect x=\"47\" y=\"8\" width=\"2\" height=\"7\" rx=\"0.5\" fill=\"currentColor\" fill-opacity=\"0.3\"></rect>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M5 13L8 11L5 9V13ZM55 9L52 11L55 13V9Z\"\n fill=\"currentColor\"\n fill-opacity=\"0.3\"\n ></path>\n </svg>\n } } @else if(hoveredAlign()==='flex-start'){\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M3.5 7C3.22386 7 3 6.77614 3 6.5V3.5C3 3.22386 3.22386 3 3.5 3H4.5C4.77614 3 5 3.22386 5 3.5V6.5C5 6.77614 4.77614 7 4.5 7H3.5ZM7.5 13C7.22386 13 7 12.7761 7 12.5V3.5C7 3.22386 7.22386 3 7.5 3H8.5C8.77614 3 9 3.22386 9 3.5V12.5C9 12.7761 8.77614 13 8.5 13H7.5ZM11.5 3C11.2239 3 11 3.22386 11 3.5V8.5C11 8.77614 11.2239 9 11.5 9H12.5C12.7761 9 13 8.77614 13 8.5V3.5C13 3.22386 12.7761 3 12.5 3H11.5Z\"\n fill=\"currentColor\"\n fill-opacity=\"0.3\"\n ></path>\n </svg>\n }@else if (hoveredAlign()==='center') {\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7.5 13C7.22386 13 7 12.7761 7 12.5V3.5C7 3.22386 7.22386 3 7.5 3H8.5C8.77614 3 9 3.22386 9 3.5V12.5C9 12.7761 8.77614 13 8.5 13H7.5ZM3.5 10C3.22386 10 3 9.77614 3 9.5V6.5C3 6.22386 3.22386 6 3.5 6H4.5C4.77614 6 5 6.22386 5 6.5V9.5C5 9.77614 4.77614 10 4.5 10H3.5ZM11.5 5C11.2239 5 11 5.22386 11 5.5V10.5C11 10.7761 11.2239 11 11.5 11H12.5C12.7761 11 13 10.7761 13 10.5V5.5C13 5.22386 12.7761 5 12.5 5H11.5Z\"\n fill=\"currentColor\"\n fill-opacity=\"0.3\"\n ></path>\n </svg>\n } @else if (hoveredAlign()==='flex-end') {\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M11.5 7C11.2239 7 11 7.22386 11 7.5L11 12.5C11 12.7761 11.2239 13 11.5 13L12.5 13C12.7761 13 13 12.7761 13 12.5L13 7.5C13 7.22386 12.7761 7 12.5 7L11.5 7ZM7.5 13C7.22386 13 7 12.7761 7 12.5L7 3.5C7 3.22386 7.22386 3 7.5 3L8.5 3C8.77614 3 9 3.22386 9 3.5L9 12.5C9 12.7761 8.77614 13 8.5 13L7.5 13ZM3.5 13C3.22386 13 3 12.7761 3 12.5L3 9.5C3 9.22386 3.22386 9 3.5 9L4.5 9C4.77614 9 5 9.22386 5 9.5L5 12.5C5 12.7761 4.77614 13 4.5 13L3.5 13Z\"\n fill=\"currentColor\"\n fill-opacity=\"0.3\"\n ></path>\n </svg>\n } @else if (hoveredAlign()==='stretch') {\n <svg width=\"20\" height=\"60\" viewBox=\"0 0 20 60\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7 53.5C7 53.7761 6.77614 54 6.5 54L5.5 54C5.22386 54 5 53.7761 5 53.5L5 6.5C5 6.22386 5.22386 6 5.5 6L6.5 6C6.77614 6 7 6.22386 7 6.5L7 53.5ZM11 53.5C11 53.7761 10.7761 54 10.5 54L9.5 54C9.22386 54 9 53.7761 9 53.5L9 6.5C9 6.22386 9.22386 6 9.5 6L10.5 6C10.7761 6 11 6.22386 11 6.5L11 53.5ZM14.5 54C14.7761 54 15 53.7761 15 53.5L15 6.5C15 6.22386 14.7761 6 14.5 6L13.5 6C13.2239 6 13 6.22386 13 6.5L13 53.5C13 53.7761 13.2239 54 13.5 54L14.5 54Z\"\n fill=\"currentColor\"\n fill-opacity=\"0.3\"\n ></path>\n </svg>\n } @else if(hoveredAlign()==='baseline'){\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M13 2V8.29289L14.6464 6.64645L15.3536 7.35355L12.5 10.2071L9.64645 7.35355L10.3536 6.64645L12 8.29289V2H13Z\"\n fill=\"currentColor\"\n fill-opacity=\"0.3\"\n ></path>\n <path d=\"M16 12L1 12V13L16 13V12Z\" fill=\"currentColor\"></path>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4.62582 2H6.37412L8.72712 10H7.68476L7.09649 7.99994H3.90349L3.31524 10H2.27288L4.62582 2ZM6.80237 6.99994L5.62585 2.9999H5.37409L4.19761 6.99994H6.80237Z\"\n fill=\"currentColor\"\n fill-opacity=\"0.3\"\n ></path>\n </svg>\n }\n </div>\n </div>\n </div>\n <div\n class=\"ax-absolute ax-inset-0 ax-flex ax-pointer-events-none ax-transition-all\"\n [style.justify-content]=\"clickedJustify()\"\n [style.align-items]=\"clickedAlign()\"\n [style.flex-direction]=\"flexDirection()\"\n\n >\n <div class=\"ax-flex ax-justify-center ax-items-center ax-min-w-5 ax-min-h-5\">\n <div class=\"ax-size-auto ax-z-[2] ax-rounded-lg ax-bg-[rgb(30,30,30)] ax-flex-none\"\n [class]=\"flexDirectionIsColumn()? '-ax-rotate-90': ''\">\n @if(clickedJustify()==='space-between'){ @if(clickedAlign()==='stretch'){\n <svg width=\"60\" height=\"60\" viewBox=\"0 0 60 60\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M11 53.5C11 53.7761 10.7761 54 10.5 54H9.5C9.22386 54 9 53.7761 9 53.5L9 6.5C9 6.22386 9.22386 6 9.5 6H10.5C10.7761 6 11 6.22386 11 6.5L11 53.5ZM31 53.5C31 53.7761 30.7761 54 30.5 54H29.5C29.2239 54 29 53.7761 29 53.5L29 6.5C29 6.22386 29.2239 6 29.5 6H30.5C30.7761 6 31 6.22386 31 6.5L31 53.5ZM50.5 54C50.7761 54 51 53.7761 51 53.5L51 6.5C51 6.22386 50.7761 6 50.5 6H49.5C49.2239 6 49 6.22386 49 6.5L49 53.5C49 53.7761 49.2239 54 49.5 54H50.5Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n } @else if(clickedAlign()==='baseline'){\n <svg width=\"60\" height=\"20\" viewBox=\"0 0 60 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M50.5996 4V10.2929L52.246 8.64645L52.9531 9.35355L50.0996 12.2071L47.246 9.35355L47.9531 8.64645L49.5996 10.2929V4H50.5996Z\"\n fill=\"currentColor\"\n ></path>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M9.35294 4H11.1012L13.4542 12H12.4119L11.8236 9.99994H8.63061L8.04236 12H7L9.35294 4ZM11.5295 8.99994L10.353 4.9999H10.1012L8.92473 8.99994H11.5295Z\"\n fill=\"currentColor\"\n ></path>\n <path d=\"M6 14H54V15H6V14Z\" fill=\"currentColor\"></path>\n </svg>\n } @else{\n <svg width=\"60\" height=\"20\" viewBox=\"0 0 60 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M29 6.5C29 6.22386 29.2239 6 29.5 6H30.5C30.7761 6 31 6.22386 31 6.5V15.5C31 15.7761 30.7761 16 30.5 16H29.5C29.2239 16 29 15.7761 29 15.5V6.5ZM9 8.5C9 8.22386 9.22386 8 9.5 8H10.5C10.7761 8 11 8.22386 11 8.5V12.5C11 12.7761 10.7761 13 10.5 13H9.5C9.22386 13 9 12.7761 9 12.5V8.5ZM49.5 8C49.2239 8 49 8.22386 49 8.5V14.5C49 14.7761 49.2239 15 49.5 15H50.5C50.7761 15 51 14.7761 51 14.5V8.5C51 8.22386 50.7761 8 50.5 8H49.5Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n } } @else if(clickedJustify()==='space-around'){ @if(clickedAlign()==='stretch'){\n <svg width=\"60\" height=\"60\" viewBox=\"0 0 60 60\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8 30L5 32L5 28L8 30Z\" fill=\"currentColor\"></path>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M13 53.5C13 53.7761 12.7761 54 12.5 54H11.5C11.2239 54 11 53.7761 11 53.5L11 6.5C11 6.22386 11.2239 6 11.5 6H12.5C12.7761 6 13 6.22386 13 6.5L13 53.5ZM31 53.5C31 53.7761 30.7761 54 30.5 54H29.5C29.2239 54 29 53.7761 29 53.5L29 6.5C29 6.22386 29.2239 6 29.5 6H30.5C30.7761 6 31 6.22386 31 6.5L31 53.5ZM48.5 54C48.7761 54 49 53.7761 49 53.5L49 6.5C49 6.22386 48.7761 6 48.5 6H47.5C47.2239 6 47 6.22386 47 6.5L47 53.5C47 53.7761 47.2239 54 47.5 54H48.5Z\"\n fill=\"currentColor\"\n ></path>\n <path d=\"M52 30L55 28L55 32L52 30Z\" fill=\"currentColor\"></path>\n </svg>\n }@else if(clickedAlign()==='baseline'){\n <svg\n data-wf-icon=\"NineBoxAlignItemsRowSpaceAroundBaselineIcon\"\n width=\"60\"\n height=\"20\"\n viewBox=\"0 0 60 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M40.8529 4V10.2929L42.4993 8.64645L43.2064 9.35355L40.3529 12.2071L37.4993 9.35355L38.2064 8.64645L39.8529 10.2929V4H40.8529Z\"\n fill=\"currentColor\"\n ></path>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M19.3523 4H21.1006L23.4536 12H22.4112L21.8229 9.99994H18.6299L18.0417 12H16.9993L19.3523 4ZM21.5288 8.99994L20.3523 4.9999H20.1005L18.924 8.99994H21.5288Z\"\n fill=\"currentColor\"\n ></path>\n <path d=\"M6 14H54V15H6V14Z\" fill=\"currentColor\"></path>\n </svg>\n } @else {\n <svg width=\"60\" height=\"20\" viewBox=\"0 0 60 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"11\" y=\"9\" width=\"2\" height=\"5\" rx=\"0.5\" fill=\"currentColor\"></rect>\n <rect x=\"29\" y=\"6\" width=\"2\" height=\"10\" rx=\"0.5\" fill=\"currentColor\"></rect>\n <rect x=\"47\" y=\"8\" width=\"2\" height=\"7\" rx=\"0.5\" fill=\"currentColor\"></rect>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M5 13L8 11L5 9V13ZM55 9L52 11L55 13V9Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n } } @else if(clickedAlign()==='flex-start'){\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M3.5 7C3.22386 7 3 6.77614 3 6.5V3.5C3 3.22386 3.22386 3 3.5 3H4.5C4.77614 3 5 3.22386 5 3.5V6.5C5 6.77614 4.77614 7 4.5 7H3.5ZM7.5 13C7.22386 13 7 12.7761 7 12.5V3.5C7 3.22386 7.22386 3 7.5 3H8.5C8.77614 3 9 3.22386 9 3.5V12.5C9 12.7761 8.77614 13 8.5 13H7.5ZM11.5 3C11.2239 3 11 3.22386 11 3.5V8.5C11 8.77614 11.2239 9 11.5 9H12.5C12.7761 9 13 8.77614 13 8.5V3.5C13 3.22386 12.7761 3 12.5 3H11.5Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n }@else if (clickedAlign()==='center') {\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7.5 13C7.22386 13 7 12.7761 7 12.5V3.5C7 3.22386 7.22386 3 7.5 3H8.5C8.77614 3 9 3.22386 9 3.5V12.5C9 12.7761 8.77614 13 8.5 13H7.5ZM3.5 10C3.22386 10 3 9.77614 3 9.5V6.5C3 6.22386 3.22386 6 3.5 6H4.5C4.77614 6 5 6.22386 5 6.5V9.5C5 9.77614 4.77614 10 4.5 10H3.5ZM11.5 5C11.2239 5 11 5.22386 11 5.5V10.5C11 10.7761 11.2239 11 11.5 11H12.5C12.7761 11 13 10.7761 13 10.5V5.5C13 5.22386 12.7761 5 12.5 5H11.5Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n } @else if (clickedAlign()==='flex-end') {\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M11.5 7C11.2239 7 11 7.22386 11 7.5L11 12.5C11 12.7761 11.2239 13 11.5 13L12.5 13C12.7761 13 13 12.7761 13 12.5L13 7.5C13 7.22386 12.7761 7 12.5 7L11.5 7ZM7.5 13C7.22386 13 7 12.7761 7 12.5L7 3.5C7 3.22386 7.22386 3 7.5 3L8.5 3C8.77614 3 9 3.22386 9 3.5L9 12.5C9 12.7761 8.77614 13 8.5 13L7.5 13ZM3.5 13C3.22386 13 3 12.7761 3 12.5L3 9.5C3 9.22386 3.22386 9 3.5 9L4.5 9C4.77614 9 5 9.22386 5 9.5L5 12.5C5 12.7761 4.77614 13 4.5 13L3.5 13Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n } @else if (clickedAlign()==='stretch') {\n <svg width=\"20\" height=\"60\" viewBox=\"0 0 20 60\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7 53.5C7 53.7761 6.77614 54 6.5 54L5.5 54C5.22386 54 5 53.7761 5 53.5L5 6.5C5 6.22386 5.22386 6 5.5 6L6.5 6C6.77614 6 7 6.22386 7 6.5L7 53.5ZM11 53.5C11 53.7761 10.7761 54 10.5 54L9.5 54C9.22386 54 9 53.7761 9 53.5L9 6.5C9 6.22386 9.22386 6 9.5 6L10.5 6C10.7761 6 11 6.22386 11 6.5L11 53.5ZM14.5 54C14.7761 54 15 53.7761 15 53.5L15 6.5C15 6.22386 14.7761 6 14.5 6L13.5 6C13.2239 6 13 6.22386 13 6.5L13 53.5C13 53.7761 13.2239 54 13.5 54L14.5 54Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n }@else if(clickedAlign()==='baseline'){\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M13 2V8.29289L14.6464 6.64645L15.3536 7.35355L12.5 10.2071L9.64645 7.35355L10.3536 6.64645L12 8.29289V2H13Z\"\n fill=\"currentColor\"\n ></path>\n <path d=\"M16 12L1 12V13L16 13V12Z\" fill=\"currentColor\"></path>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4.62582 2H6.37412L8.72712 10H7.68476L7.09649 7.99994H3.90349L3.31524 10H2.27288L4.62582 2ZM6.80237 6.99994L5.62585 2.9999H5.37409L4.19761 6.99994H6.80237Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n }\n </div>\n </div>\n </div>\n </div>\n <div class=\"ax-grid ax-grid-cols-[auto_1fr] ax-items-center ax-justify-items-start ax-gap-2\">\n <span class=\"ax-order-1\">X:</span>\n <div class=\"ax-w-32\"\n [style.order]=\"flexDirectionIsColumn()?'4':'2'\">\n <!-- <ax-select-box\n [dataSource]=\"flexDirectionIsColumn()? alignDataSource : justifyDataSource\"\n [ngModel]=\"flexDirectionIsColumn()? selectedAlign : selectedJustify\"\n (ngModelChange)=\"flexDirectionIsColumn()? selectedAlign = $event : selectedJustify = $event\"\n (onValueChanged)=\"flexDirectionIsColumn()? onAlignChange($event) :onJustifyChange($event)\"\n textField=\"label\"\n valueField=\"value\"\n placeholder=\"Choose...\"\n >\n </ax-select-box> -->\n <ax-select-box\n [dataSource]=\"justifyDataSource\"\n [(ngModel)]=\"selectedJustify\"\n (onValueChanged)=\"onJustifyChange($event)\"\n textField=\"label\"\n valueField=\"value\"\n placeholder=\"Choose...\"\n >\n </ax-select-box>\n </div>\n <span class=\"ax-order-3\">Y:</span>\n <div class=\"ax-w-32\" [style.order]=\"flexDirectionIsColumn()?'2':'4'\">\n <ax-select-box\n [dataSource]=\"alignDataSource\"\n [(ngModel)]=\"selectedAlign\"\n (onValueChanged)=\"onAlignChange($event)\"\n textField=\"label\"\n valueField=\"value\"\n placeholder=\"Choose...\"\n >\n </ax-select-box>\n </div>\n </div>\n </div>\n <span>Gap</span>\n <div class=\"ax-flex ax-gap-2 ax-justify-between\">\n @if(gapMode()==='both') {\n <ax-range-slider\n class=\"ax-w-32\"\n color=\"neutral\"\n [ngModel]=\"gap().both\"\n (ngModelChange)=\"setGap($event ?? 0, 'both')\"\n ></ax-range-slider>\n <ax-number-box\n [minValue]=\"0\"\n [maxValue]=\"999\"\n [value]=\"gap().both\"\n [changeOnScroll]=\"true\"\n (valueChange)=\"setGap($event ?? 0, 'both')\"\n class=\"ax-min-w-6\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n } @else {\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <span class=\"ax-text-xs\">Row</span>\n <ax-number-box\n [minValue]=\"0\"\n [maxValue]=\"999\"\n [value]=\"gap().x\"\n [changeOnScroll]=\"true\"\n (valueChange)=\"setGap($event ?? 0, 'x')\"\n class=\"ax-min-w-5\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n <span class=\"ax-text-xs\">Column</span>\n <ax-number-box\n [minValue]=\"0\"\n [maxValue]=\"999\"\n [value]=\"gap().y\"\n [changeOnScroll]=\"true\"\n (valueChange)=\"setGap($event ?? 0, 'y')\"\n class=\"ax-min-w-5\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n </div>\n }\n <button (click)=\"setGapMode()\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n @if(gapMode()==='both'){\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M5 7L5 5C5 3.34315 6.34315 2 8 2C9.65685 2 11 3.34315 11 5V7C11.5523 7 12 7.44772 12 8V12C12 12.5523 11.5523 13 11 13H5C4.44772 13 4 12.5523 4 12V8C4 7.44771 4.44772 7 5 7ZM6 5C6 3.89543 6.89543 3 8 3C9.10457 3 10 3.89543 10 5V7H6V5ZM5 12V8H11V12H5Z\"\n fill=\"currentColor\"\n ></path>\n }@else {\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M9 5C9 3.89543 9.89543 3 11 3C12.1046 3 13 3.89543 13 5V6H14V5C14 3.34315 12.6569 2 11 2C9.34315 2 8 3.34315 8 5V7H3C2.44772 7 2 7.44771 2 8V12C2 12.5523 2.44772 13 3 13H9C9.55228 13 10 12.5523 10 12V8C10 7.44772 9.55228 7 9 7V5ZM3 8H9V12H3V8Z\"\n fill=\"currentColor\"\n ></path>\n }\n </svg>\n </button>\n </div>\n</div>", styles: [".axp-flex-option ax-range-slider{--ax-range-slider-base-thickness: .1rem;padding:.25rem!important}.axp-flex-option ax-number-box:not(.ax-exclude) div:first-child{height:2rem!important;border-radius:.3rem!important;font-size:12px}.axp-flex-option ax-number-box:not(.ax-exclude) div:first-child input{padding:.25rem 0 .25rem .25rem!important}.axp-flex-option ax-button-group>ax-button-group-item{width:2.62rem}\n"] }]
9264
+ ], template: "<div class=\"axp-flex-option ax-grid ax-grid-cols-[auto_1fr] ax-pt-2 ax-gap-2 ax-items-center ax-justify-items-start\">\n <span>Direction</span>\n <div>\n <ax-button-group [selection]=\"'single'\">\n <ax-button-group-item (onClick)=\"setFlexDirection('row')\" [selected]=\"flexDirection() === 'row'\"\n ><ax-prefix\n ><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M12.2929 7.00004L9.14645 3.85359L9.85355 3.14648L14.2071 7.50004L9.85355 11.8536L9.14645 11.1465L12.2929 8.00004H3V7.00004H12.2929Z\"\n fill=\"currentColor\"\n ></path></svg></ax-prefix\n ></ax-button-group-item>\n <ax-button-group-item (onClick)=\"setFlexDirection('row-reverse')\" [selected]=\"flexDirection() === 'row-reverse'\"\n ><ax-prefix\n ><svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style=\"transform: rotate(180deg)\"\n >\n <path\n d=\"M12.2929 7.00004L9.14645 3.85359L9.85355 3.14648L14.2071 7.50004L9.85355 11.8536L9.14645 11.1465L12.2929 8.00004H3V7.00004H12.2929Z\"\n fill=\"currentColor\"\n ></path></svg></ax-prefix\n ></ax-button-group-item>\n <ax-button-group-item (onClick)=\"setFlexDirection('column')\" [selected]=\"flexDirection() === 'column'\"\n ><ax-prefix\n ><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M8.00001 12.2929L4.85356 9.14645L4.14645 9.85355L8.50001 14.2071L12.8536 9.85355L12.1465 9.14645L9.00001 12.2929L9.00001 3H8.00001L8.00001 12.2929Z\"\n fill=\"currentColor\"\n ></path></svg></ax-prefix\n ></ax-button-group-item>\n <ax-button-group-item\n (onClick)=\"setFlexDirection('column-reverse')\"\n [selected]=\"flexDirection() === 'column-reverse'\"\n ><ax-prefix\n ><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M9.00004 3.70721L12.1465 6.85363L12.8536 6.14652L8.50001 1.79297L4.14645 6.14652L4.85356 6.85363L8.00004 3.70715L8.00004 13.0001H9.00004L9.00004 3.70721Z\"\n fill=\"currentColor\"\n ></path></svg></ax-prefix\n ></ax-button-group-item>\n <ax-button-group-item color=\"primary\">\n <ax-dropdown-panel>\n <ax-button-item-list>\n <ax-button-item text=\"Wrap\" (click)=\"setWrapMode('wrap')\" [class]=\"\" >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-bars\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n <ax-button-item text=\"No Wrap\" (click)=\"setWrapMode('nowrap')\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-minus\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n <ax-suffix>\n <ax-icon icon=\"fa-solid fa-chevron-down\"></ax-icon>\n </ax-suffix>\n </ax-button-group-item>\n </ax-button-group>\n </div>\n <span>Align</span>\n <div class=\"ax-flex ax-justify-between ax-gap-2 ax-items-center\">\n <div\n class=\"ax-relative ax-size-[62px] ax-bg-[rgb(30,30,30)] ax-border ax-border-white ax-border-opacity-15 ax-rounded\"\n >\n <div class=\"ax-absolute ax-inset-0 ax-grid ax-grid-cols-3 ax-grid-rows-3\">\n @for(side of flexSides; track side.value){\n <div\n [attr.aria-label]=\"side.label\"\n [attr.aria-value]=\"side.value\"\n class=\"ax-grid ax-place-content-center\"\n (mouseenter)=\"onHover(side)\"\n (mouseleave)=\"onHoverLeave()\"\n (click)=\"onClick(side)\"\n >\n @if (true) {\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"7\" y=\"7\" width=\"2\" height=\"2\" rx=\"1\" fill=\"currentColor\" fill-opacity=\"0.3\"></rect>\n </svg>\n }\n </div>\n }\n </div>\n <div\n class=\"ax-absolute ax-inset-0 ax-flex ax-pointer-events-none ax-transition-all\"\n [style.justify-content]=\"hoveredJustify()\"\n [style.align-items]=\"hoveredAlign()\"\n [style.flex-direction]=\"flexDirection()\"\n >\n <div class=\"ax-flex ax-justify-center ax-items-center ax-min-w-5 ax-min-h-5\">\n <div class=\"ax-size-auto ax-z-[1] ax-rounded-lg ax-bg-[rgb(30,30,30)] ax-flex-none\" [class]=\"flexDirectionIsColumn()? '-ax-rotate-90': ''\">\n @if(hoveredJustify()==='space-between'){ @if(clickedAlign()==='stretch'){ } @else if(clickedAlign()==='baseline' && hoveredAlign()==='flex-start' ){ } @else {\n <svg width=\"60\" height=\"20\" viewBox=\"0 0 60 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M29 6.5C29 6.22386 29.2239 6 29.5 6H30.5C30.7761 6 31 6.22386 31 6.5V15.5C31 15.7761 30.7761 16 30.5 16H29.5C29.2239 16 29 15.7761 29 15.5V6.5ZM9 8.5C9 8.22386 9.22386 8 9.5 8H10.5C10.7761 8 11 8.22386 11 8.5V12.5C11 12.7761 10.7761 13 10.5 13H9.5C9.22386 13 9 12.7761 9 12.5V8.5ZM49.5 8C49.2239 8 49 8.22386 49 8.5V14.5C49 14.7761 49.2239 15 49.5 15H50.5C50.7761 15 51 14.7761 51 14.5V8.5C51 8.22386 50.7761 8 50.5 8H49.5Z\"\n fill=\"currentColor\"\n fill-opacity=\"0.3\"\n ></path>\n </svg>\n } } @else if(hoveredJustify()==='space-around'){ @if(clickedAlign()==='stretch' ){ } @else if(clickedAlign()==='baseline' && hoveredAlign()==='flex-start' ){ } @else {\n <svg width=\"60\" height=\"20\" viewBox=\"0 0 60 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"11\" y=\"9\" width=\"2\" height=\"5\" rx=\"0.5\" fill=\"currentColor\" fill-opacity=\"0.3\"></rect>\n <rect x=\"29\" y=\"6\" width=\"2\" height=\"10\" rx=\"0.5\" fill=\"currentColor\" fill-opacity=\"0.3\"></rect>\n <rect x=\"47\" y=\"8\" width=\"2\" height=\"7\" rx=\"0.5\" fill=\"currentColor\" fill-opacity=\"0.3\"></rect>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M5 13L8 11L5 9V13ZM55 9L52 11L55 13V9Z\"\n fill=\"currentColor\"\n fill-opacity=\"0.3\"\n ></path>\n </svg>\n } } @else if(hoveredAlign()==='flex-start'){\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M3.5 7C3.22386 7 3 6.77614 3 6.5V3.5C3 3.22386 3.22386 3 3.5 3H4.5C4.77614 3 5 3.22386 5 3.5V6.5C5 6.77614 4.77614 7 4.5 7H3.5ZM7.5 13C7.22386 13 7 12.7761 7 12.5V3.5C7 3.22386 7.22386 3 7.5 3H8.5C8.77614 3 9 3.22386 9 3.5V12.5C9 12.7761 8.77614 13 8.5 13H7.5ZM11.5 3C11.2239 3 11 3.22386 11 3.5V8.5C11 8.77614 11.2239 9 11.5 9H12.5C12.7761 9 13 8.77614 13 8.5V3.5C13 3.22386 12.7761 3 12.5 3H11.5Z\"\n fill=\"currentColor\"\n fill-opacity=\"0.3\"\n ></path>\n </svg>\n }@else if (hoveredAlign()==='center') {\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7.5 13C7.22386 13 7 12.7761 7 12.5V3.5C7 3.22386 7.22386 3 7.5 3H8.5C8.77614 3 9 3.22386 9 3.5V12.5C9 12.7761 8.77614 13 8.5 13H7.5ZM3.5 10C3.22386 10 3 9.77614 3 9.5V6.5C3 6.22386 3.22386 6 3.5 6H4.5C4.77614 6 5 6.22386 5 6.5V9.5C5 9.77614 4.77614 10 4.5 10H3.5ZM11.5 5C11.2239 5 11 5.22386 11 5.5V10.5C11 10.7761 11.2239 11 11.5 11H12.5C12.7761 11 13 10.7761 13 10.5V5.5C13 5.22386 12.7761 5 12.5 5H11.5Z\"\n fill=\"currentColor\"\n fill-opacity=\"0.3\"\n ></path>\n </svg>\n } @else if (hoveredAlign()==='flex-end') {\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M11.5 7C11.2239 7 11 7.22386 11 7.5L11 12.5C11 12.7761 11.2239 13 11.5 13L12.5 13C12.7761 13 13 12.7761 13 12.5L13 7.5C13 7.22386 12.7761 7 12.5 7L11.5 7ZM7.5 13C7.22386 13 7 12.7761 7 12.5L7 3.5C7 3.22386 7.22386 3 7.5 3L8.5 3C8.77614 3 9 3.22386 9 3.5L9 12.5C9 12.7761 8.77614 13 8.5 13L7.5 13ZM3.5 13C3.22386 13 3 12.7761 3 12.5L3 9.5C3 9.22386 3.22386 9 3.5 9L4.5 9C4.77614 9 5 9.22386 5 9.5L5 12.5C5 12.7761 4.77614 13 4.5 13L3.5 13Z\"\n fill=\"currentColor\"\n fill-opacity=\"0.3\"\n ></path>\n </svg>\n } @else if (hoveredAlign()==='stretch') {\n <svg width=\"20\" height=\"60\" viewBox=\"0 0 20 60\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7 53.5C7 53.7761 6.77614 54 6.5 54L5.5 54C5.22386 54 5 53.7761 5 53.5L5 6.5C5 6.22386 5.22386 6 5.5 6L6.5 6C6.77614 6 7 6.22386 7 6.5L7 53.5ZM11 53.5C11 53.7761 10.7761 54 10.5 54L9.5 54C9.22386 54 9 53.7761 9 53.5L9 6.5C9 6.22386 9.22386 6 9.5 6L10.5 6C10.7761 6 11 6.22386 11 6.5L11 53.5ZM14.5 54C14.7761 54 15 53.7761 15 53.5L15 6.5C15 6.22386 14.7761 6 14.5 6L13.5 6C13.2239 6 13 6.22386 13 6.5L13 53.5C13 53.7761 13.2239 54 13.5 54L14.5 54Z\"\n fill=\"currentColor\"\n fill-opacity=\"0.3\"\n ></path>\n </svg>\n } @else if(hoveredAlign()==='baseline'){\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M13 2V8.29289L14.6464 6.64645L15.3536 7.35355L12.5 10.2071L9.64645 7.35355L10.3536 6.64645L12 8.29289V2H13Z\"\n fill=\"currentColor\"\n fill-opacity=\"0.3\"\n ></path>\n <path d=\"M16 12L1 12V13L16 13V12Z\" fill=\"currentColor\"></path>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4.62582 2H6.37412L8.72712 10H7.68476L7.09649 7.99994H3.90349L3.31524 10H2.27288L4.62582 2ZM6.80237 6.99994L5.62585 2.9999H5.37409L4.19761 6.99994H6.80237Z\"\n fill=\"currentColor\"\n fill-opacity=\"0.3\"\n ></path>\n </svg>\n }\n </div>\n </div>\n </div>\n <div\n class=\"ax-absolute ax-inset-0 ax-flex ax-pointer-events-none ax-transition-all\"\n [style.justify-content]=\"clickedJustify()\"\n [style.align-items]=\"clickedAlign()\"\n [style.flex-direction]=\"flexDirection()\"\n\n >\n <div class=\"ax-flex ax-justify-center ax-items-center ax-min-w-5 ax-min-h-5\">\n <div class=\"ax-size-auto ax-z-[2] ax-rounded-lg ax-bg-[rgb(30,30,30)] ax-flex-none\"\n [class]=\"flexDirectionIsColumn()? '-ax-rotate-90': ''\">\n @if(clickedJustify()==='space-between'){ @if(clickedAlign()==='stretch'){\n <svg width=\"60\" height=\"60\" viewBox=\"0 0 60 60\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M11 53.5C11 53.7761 10.7761 54 10.5 54H9.5C9.22386 54 9 53.7761 9 53.5L9 6.5C9 6.22386 9.22386 6 9.5 6H10.5C10.7761 6 11 6.22386 11 6.5L11 53.5ZM31 53.5C31 53.7761 30.7761 54 30.5 54H29.5C29.2239 54 29 53.7761 29 53.5L29 6.5C29 6.22386 29.2239 6 29.5 6H30.5C30.7761 6 31 6.22386 31 6.5L31 53.5ZM50.5 54C50.7761 54 51 53.7761 51 53.5L51 6.5C51 6.22386 50.7761 6 50.5 6H49.5C49.2239 6 49 6.22386 49 6.5L49 53.5C49 53.7761 49.2239 54 49.5 54H50.5Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n } @else if(clickedAlign()==='baseline'){\n <svg width=\"60\" height=\"20\" viewBox=\"0 0 60 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M50.5996 4V10.2929L52.246 8.64645L52.9531 9.35355L50.0996 12.2071L47.246 9.35355L47.9531 8.64645L49.5996 10.2929V4H50.5996Z\"\n fill=\"currentColor\"\n ></path>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M9.35294 4H11.1012L13.4542 12H12.4119L11.8236 9.99994H8.63061L8.04236 12H7L9.35294 4ZM11.5295 8.99994L10.353 4.9999H10.1012L8.92473 8.99994H11.5295Z\"\n fill=\"currentColor\"\n ></path>\n <path d=\"M6 14H54V15H6V14Z\" fill=\"currentColor\"></path>\n </svg>\n } @else{\n <svg width=\"60\" height=\"20\" viewBox=\"0 0 60 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M29 6.5C29 6.22386 29.2239 6 29.5 6H30.5C30.7761 6 31 6.22386 31 6.5V15.5C31 15.7761 30.7761 16 30.5 16H29.5C29.2239 16 29 15.7761 29 15.5V6.5ZM9 8.5C9 8.22386 9.22386 8 9.5 8H10.5C10.7761 8 11 8.22386 11 8.5V12.5C11 12.7761 10.7761 13 10.5 13H9.5C9.22386 13 9 12.7761 9 12.5V8.5ZM49.5 8C49.2239 8 49 8.22386 49 8.5V14.5C49 14.7761 49.2239 15 49.5 15H50.5C50.7761 15 51 14.7761 51 14.5V8.5C51 8.22386 50.7761 8 50.5 8H49.5Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n } } @else if(clickedJustify()==='space-around'){ @if(clickedAlign()==='stretch'){\n <svg width=\"60\" height=\"60\" viewBox=\"0 0 60 60\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8 30L5 32L5 28L8 30Z\" fill=\"currentColor\"></path>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M13 53.5C13 53.7761 12.7761 54 12.5 54H11.5C11.2239 54 11 53.7761 11 53.5L11 6.5C11 6.22386 11.2239 6 11.5 6H12.5C12.7761 6 13 6.22386 13 6.5L13 53.5ZM31 53.5C31 53.7761 30.7761 54 30.5 54H29.5C29.2239 54 29 53.7761 29 53.5L29 6.5C29 6.22386 29.2239 6 29.5 6H30.5C30.7761 6 31 6.22386 31 6.5L31 53.5ZM48.5 54C48.7761 54 49 53.7761 49 53.5L49 6.5C49 6.22386 48.7761 6 48.5 6H47.5C47.2239 6 47 6.22386 47 6.5L47 53.5C47 53.7761 47.2239 54 47.5 54H48.5Z\"\n fill=\"currentColor\"\n ></path>\n <path d=\"M52 30L55 28L55 32L52 30Z\" fill=\"currentColor\"></path>\n </svg>\n }@else if(clickedAlign()==='baseline'){\n <svg\n data-wf-icon=\"NineBoxAlignItemsRowSpaceAroundBaselineIcon\"\n width=\"60\"\n height=\"20\"\n viewBox=\"0 0 60 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M40.8529 4V10.2929L42.4993 8.64645L43.2064 9.35355L40.3529 12.2071L37.4993 9.35355L38.2064 8.64645L39.8529 10.2929V4H40.8529Z\"\n fill=\"currentColor\"\n ></path>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M19.3523 4H21.1006L23.4536 12H22.4112L21.8229 9.99994H18.6299L18.0417 12H16.9993L19.3523 4ZM21.5288 8.99994L20.3523 4.9999H20.1005L18.924 8.99994H21.5288Z\"\n fill=\"currentColor\"\n ></path>\n <path d=\"M6 14H54V15H6V14Z\" fill=\"currentColor\"></path>\n </svg>\n } @else {\n <svg width=\"60\" height=\"20\" viewBox=\"0 0 60 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"11\" y=\"9\" width=\"2\" height=\"5\" rx=\"0.5\" fill=\"currentColor\"></rect>\n <rect x=\"29\" y=\"6\" width=\"2\" height=\"10\" rx=\"0.5\" fill=\"currentColor\"></rect>\n <rect x=\"47\" y=\"8\" width=\"2\" height=\"7\" rx=\"0.5\" fill=\"currentColor\"></rect>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M5 13L8 11L5 9V13ZM55 9L52 11L55 13V9Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n } } @else if(clickedAlign()==='flex-start'){\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M3.5 7C3.22386 7 3 6.77614 3 6.5V3.5C3 3.22386 3.22386 3 3.5 3H4.5C4.77614 3 5 3.22386 5 3.5V6.5C5 6.77614 4.77614 7 4.5 7H3.5ZM7.5 13C7.22386 13 7 12.7761 7 12.5V3.5C7 3.22386 7.22386 3 7.5 3H8.5C8.77614 3 9 3.22386 9 3.5V12.5C9 12.7761 8.77614 13 8.5 13H7.5ZM11.5 3C11.2239 3 11 3.22386 11 3.5V8.5C11 8.77614 11.2239 9 11.5 9H12.5C12.7761 9 13 8.77614 13 8.5V3.5C13 3.22386 12.7761 3 12.5 3H11.5Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n }@else if (clickedAlign()==='center') {\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7.5 13C7.22386 13 7 12.7761 7 12.5V3.5C7 3.22386 7.22386 3 7.5 3H8.5C8.77614 3 9 3.22386 9 3.5V12.5C9 12.7761 8.77614 13 8.5 13H7.5ZM3.5 10C3.22386 10 3 9.77614 3 9.5V6.5C3 6.22386 3.22386 6 3.5 6H4.5C4.77614 6 5 6.22386 5 6.5V9.5C5 9.77614 4.77614 10 4.5 10H3.5ZM11.5 5C11.2239 5 11 5.22386 11 5.5V10.5C11 10.7761 11.2239 11 11.5 11H12.5C12.7761 11 13 10.7761 13 10.5V5.5C13 5.22386 12.7761 5 12.5 5H11.5Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n } @else if (clickedAlign()==='flex-end') {\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M11.5 7C11.2239 7 11 7.22386 11 7.5L11 12.5C11 12.7761 11.2239 13 11.5 13L12.5 13C12.7761 13 13 12.7761 13 12.5L13 7.5C13 7.22386 12.7761 7 12.5 7L11.5 7ZM7.5 13C7.22386 13 7 12.7761 7 12.5L7 3.5C7 3.22386 7.22386 3 7.5 3L8.5 3C8.77614 3 9 3.22386 9 3.5L9 12.5C9 12.7761 8.77614 13 8.5 13L7.5 13ZM3.5 13C3.22386 13 3 12.7761 3 12.5L3 9.5C3 9.22386 3.22386 9 3.5 9L4.5 9C4.77614 9 5 9.22386 5 9.5L5 12.5C5 12.7761 4.77614 13 4.5 13L3.5 13Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n } @else if (clickedAlign()==='stretch') {\n <svg width=\"20\" height=\"60\" viewBox=\"0 0 20 60\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7 53.5C7 53.7761 6.77614 54 6.5 54L5.5 54C5.22386 54 5 53.7761 5 53.5L5 6.5C5 6.22386 5.22386 6 5.5 6L6.5 6C6.77614 6 7 6.22386 7 6.5L7 53.5ZM11 53.5C11 53.7761 10.7761 54 10.5 54L9.5 54C9.22386 54 9 53.7761 9 53.5L9 6.5C9 6.22386 9.22386 6 9.5 6L10.5 6C10.7761 6 11 6.22386 11 6.5L11 53.5ZM14.5 54C14.7761 54 15 53.7761 15 53.5L15 6.5C15 6.22386 14.7761 6 14.5 6L13.5 6C13.2239 6 13 6.22386 13 6.5L13 53.5C13 53.7761 13.2239 54 13.5 54L14.5 54Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n }@else if(clickedAlign()==='baseline'){\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M13 2V8.29289L14.6464 6.64645L15.3536 7.35355L12.5 10.2071L9.64645 7.35355L10.3536 6.64645L12 8.29289V2H13Z\"\n fill=\"currentColor\"\n ></path>\n <path d=\"M16 12L1 12V13L16 13V12Z\" fill=\"currentColor\"></path>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4.62582 2H6.37412L8.72712 10H7.68476L7.09649 7.99994H3.90349L3.31524 10H2.27288L4.62582 2ZM6.80237 6.99994L5.62585 2.9999H5.37409L4.19761 6.99994H6.80237Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n }\n </div>\n </div>\n </div>\n </div>\n <div class=\"ax-grid ax-grid-cols-[auto_1fr] ax-items-center ax-justify-items-start ax-gap-2\">\n <span class=\"ax-order-1\">X:</span>\n <div class=\"ax-w-32\"\n [style.order]=\"flexDirectionIsColumn()?'4':'2'\">\n <!-- <ax-select-box\n [dataSource]=\"flexDirectionIsColumn()? alignDataSource : justifyDataSource\"\n [ngModel]=\"flexDirectionIsColumn()? selectedAlign : selectedJustify\"\n (ngModelChange)=\"flexDirectionIsColumn()? selectedAlign = $event : selectedJustify = $event\"\n (onValueChanged)=\"flexDirectionIsColumn()? onAlignChange($event) :onJustifyChange($event)\"\n textField=\"label\"\n valueField=\"value\"\n placeholder=\"Choose...\"\n >\n </ax-select-box> -->\n <ax-select-box\n [dataSource]=\"justifyDataSource\"\n [(ngModel)]=\"selectedJustify\"\n (onValueChanged)=\"onJustifyChange($event)\"\n textField=\"label\"\n valueField=\"value\"\n placeholder=\"Choose...\"\n >\n </ax-select-box>\n </div>\n <span class=\"ax-order-3\">Y:</span>\n <div class=\"ax-w-32\" [style.order]=\"flexDirectionIsColumn()?'2':'4'\">\n <ax-select-box\n [dataSource]=\"alignDataSource\"\n [(ngModel)]=\"selectedAlign\"\n (onValueChanged)=\"onAlignChange($event)\"\n textField=\"label\"\n valueField=\"value\"\n placeholder=\"Choose...\"\n >\n </ax-select-box>\n </div>\n </div>\n </div>\n <span>Gap</span>\n <div class=\"ax-flex ax-gap-2 ax-justify-between\">\n @if(gapMode()==='both') {\n <ax-range-slider\n class=\"ax-w-32\"\n color=\"neutral\"\n [ngModel]=\"gap().both\"\n (ngModelChange)=\"setGap($event ?? 0, 'both')\"\n ></ax-range-slider>\n <ax-number-box\n [minValue]=\"0\"\n [maxValue]=\"999\"\n [value]=\"gap().both\"\n [changeOnScroll]=\"true\"\n (valueChange)=\"setGap($event ?? 0, 'both')\"\n class=\"ax-min-w-6\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n } @else {\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <span class=\"ax-text-xs\">Row</span>\n <ax-number-box\n [minValue]=\"0\"\n [maxValue]=\"999\"\n [value]=\"gap().x\"\n [changeOnScroll]=\"true\"\n (valueChange)=\"setGap($event ?? 0, 'x')\"\n class=\"ax-min-w-5\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n <span class=\"ax-text-xs\">Column</span>\n <ax-number-box\n [minValue]=\"0\"\n [maxValue]=\"999\"\n [value]=\"gap().y\"\n [changeOnScroll]=\"true\"\n (valueChange)=\"setGap($event ?? 0, 'y')\"\n class=\"ax-min-w-5\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n </div>\n }\n <button (click)=\"setGapMode()\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n @if(gapMode()==='both'){\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M5 7L5 5C5 3.34315 6.34315 2 8 2C9.65685 2 11 3.34315 11 5V7C11.5523 7 12 7.44772 12 8V12C12 12.5523 11.5523 13 11 13H5C4.44772 13 4 12.5523 4 12V8C4 7.44771 4.44772 7 5 7ZM6 5C6 3.89543 6.89543 3 8 3C9.10457 3 10 3.89543 10 5V7H6V5ZM5 12V8H11V12H5Z\"\n fill=\"currentColor\"\n ></path>\n }@else {\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M9 5C9 3.89543 9.89543 3 11 3C12.1046 3 13 3.89543 13 5V6H14V5C14 3.34315 12.6569 2 11 2C9.34315 2 8 3.34315 8 5V7H3C2.44772 7 2 7.44771 2 8V12C2 12.5523 2.44772 13 3 13H9C9.55228 13 10 12.5523 10 12V8C10 7.44772 9.55228 7 9 7V5ZM3 8H9V12H3V8Z\"\n fill=\"currentColor\"\n ></path>\n }\n </svg>\n </button>\n </div>\n</div>", styles: [".axp-flex-option ax-range-slider{padding:.25rem!important}.axp-flex-option ax-range-slider .ax-range-slider-handler{width:.75rem!important;height:.75rem!important}.axp-flex-option ax-number-box:not(.ax-exclude) div:first-child{height:2rem!important;border-radius:.3rem!important;font-size:12px}.axp-flex-option ax-number-box:not(.ax-exclude) div:first-child input{padding:.25rem 0 .25rem .25rem!important}.axp-flex-option ax-button-group>ax-button-group-item{width:2.62rem}\n"] }]
8982
9265
  }] });
8983
9266
 
8984
9267
  var flexOptionsWidgetEditor_component = /*#__PURE__*/Object.freeze({
@@ -9031,19 +9314,39 @@ class AXPGridOptionsWidgetEditComponent extends AXPWidgetComponent {
9031
9314
  super(...arguments);
9032
9315
  this.rendered = signal(false);
9033
9316
  this.gridSides = AXP_Grid_Box_Alignments;
9317
+ this.currentBreakpoint = signal('default');
9318
+ this.lastBreakpoint = signal('default');
9319
+ this.isBreakpointConfigured = signal({
9320
+ default: true,
9321
+ sm: false,
9322
+ md: false,
9323
+ lg: false,
9324
+ xl: false,
9325
+ '2xl': false,
9326
+ '3xl': false,
9327
+ });
9328
+ this.selectionItems = [
9329
+ { id: 'default', text: 'Default' },
9330
+ { id: 'sm', text: 'Sm' },
9331
+ { id: 'md', text: 'Md' },
9332
+ { id: 'lg', text: 'Lg' },
9333
+ { id: 'xl', text: 'Xl' },
9334
+ { id: '2xl', text: '2Xl' },
9335
+ { id: '3xl', text: '3Xl' },
9336
+ ];
9034
9337
  this.gridTemplateColumns = signal(1);
9035
9338
  this.gridTemplateRows = signal(1);
9036
9339
  this.gridDirection = signal('row');
9037
- this.gapMode = signal('both');
9038
- this.gapUnit = signal({ both: 'px', x: 'px', y: 'px' });
9039
- this.gap = signal({ both: 0, x: 0, y: 0 });
9340
+ this.gapUnit = signal('px');
9341
+ this.gap = signal({ x: 0, y: 0 });
9342
+ this.gapMode = signal('single');
9040
9343
  this.lastGap = signal(0);
9041
- this.selectedJustify = signal({ value: 'start', label: 'Start' });
9042
- this.selectedAlign = signal({ value: 'start', label: 'Start' });
9344
+ this.selectedJustify = signal({ value: 'stretch', label: 'Stretch' });
9345
+ this.selectedAlign = signal({ value: 'stretch', label: 'Stretch' });
9043
9346
  this.hoveredAlign = signal(null);
9044
9347
  this.hoveredJustify = signal(null);
9045
- this.clickedAlign = signal('start');
9046
- this.clickedJustify = signal('start');
9348
+ this.clickedAlign = signal('stretch');
9349
+ this.clickedJustify = signal('stretch');
9047
9350
  this.justifyDataSource = new AXDataSource({
9048
9351
  pageSize: 99,
9049
9352
  load: async (e) => {
@@ -9064,20 +9367,19 @@ class AXPGridOptionsWidgetEditComponent extends AXPWidgetComponent {
9064
9367
  });
9065
9368
  this.findAlignNameById = (value) => {
9066
9369
  const side = AXP_Grid_Box_Align_Items_Options.find((side) => side.value === value);
9067
- return side?.label;
9370
+ return side.label;
9068
9371
  };
9069
9372
  this.findJustifyNameById = (value) => {
9070
9373
  const side = AXP_Grid_Box_Justify_Items_Options.find((side) => side.value === value);
9071
- return side?.label;
9374
+ return side.label;
9072
9375
  };
9073
- this.#af = afterNextRender(() => {
9074
- this.initialValues(this.getValue());
9376
+ this.#firstInitialize = afterNextRender(() => {
9377
+ this.initialValues();
9075
9378
  this.rendered.set(true);
9076
9379
  });
9077
- // #eff3 = effect(() => console.log(this.getValue()));
9078
- this.#eff3 = effect(() => {
9079
- const value = this.getValue();
9080
- untracked(() => this.initialValues(value));
9380
+ this.#trackChange = effect(() => {
9381
+ this.getValue();
9382
+ untracked(() => this.initialValues());
9081
9383
  });
9082
9384
  }
9083
9385
  setGridDirection(value) {
@@ -9094,35 +9396,49 @@ class AXPGridOptionsWidgetEditComponent extends AXPWidgetComponent {
9094
9396
  this.saveValue({ gridTemplateRows: `repeat(${value}, 1fr)` });
9095
9397
  }
9096
9398
  }
9097
- setGapMode() {
9399
+ toggleGapMode() {
9098
9400
  if (this.gapMode() === 'single') {
9099
- this.gapMode.set('both');
9100
- this.setGap(this.lastGap(), 'both');
9401
+ this.gapMode.set('multiple');
9101
9402
  }
9102
9403
  else {
9103
9404
  this.gapMode.set('single');
9104
- this.setGap(this.lastGap(), 'x');
9105
- this.setGap(this.lastGap(), 'y');
9405
+ this.setGap(this.lastGap(), 'both');
9106
9406
  }
9107
9407
  }
9108
9408
  setGap(size, side) {
9109
- this.gap.set({ ...this.gap(), [side]: size });
9110
- if (this.gapMode() === 'both') {
9111
- const gap = this.gap().both + this.gapUnit().both;
9112
- this.saveValue({ gap });
9409
+ this.lastGap.set(size);
9410
+ if (side === 'both') {
9411
+ this.gap.set({ x: size, y: size });
9412
+ const gapString = this.gap().x + this.gapUnit();
9413
+ this.saveValue({ gap: gapString });
9113
9414
  }
9114
9415
  else {
9115
- const gap = this.gap().x + this.gapUnit().x + ' ' + this.gap().y + this.gapUnit().y;
9116
- this.saveValue({ gap });
9416
+ this.gap.update((i) => ({ ...i, [side]: size }));
9417
+ const gapString = this.gap().x + this.gapUnit() + ' ' + this.gap().y + this.gapUnit();
9418
+ this.saveValue({ gap: gapString });
9117
9419
  }
9118
- this.lastGap.set(size);
9119
9420
  }
9120
9421
  onClick(data) {
9121
- this.clickedAlign.set(data.alignItems);
9122
- this.clickedJustify.set(data.justifyItems);
9123
- this.selectedAlign.set({ value: data.alignItems, label: this.findAlignNameById(data.alignItems) });
9124
- this.selectedJustify.set({ value: data.justifyItems, label: this.findJustifyNameById(data.justifyItems) });
9125
- this.saveValue({ alignItems: data.alignItems, justifyItems: data.justifyItems });
9422
+ if (this.clickedAlign() === 'stretch' && this.clickedJustify() === 'stretch') {
9423
+ return;
9424
+ }
9425
+ else if (this.clickedAlign() === 'stretch') {
9426
+ this.clickedJustify.set(data.justifyItems);
9427
+ this.selectedJustify.set({ value: data.justifyItems, label: this.findJustifyNameById(data.justifyItems) });
9428
+ this.saveValue({ justifyItems: data.justifyItems });
9429
+ }
9430
+ else if (this.clickedJustify() === 'stretch') {
9431
+ this.clickedAlign.set(data.alignItems);
9432
+ this.selectedAlign.set({ value: data.alignItems, label: this.findAlignNameById(data.alignItems) });
9433
+ this.saveValue({ alignItems: data.alignItems });
9434
+ }
9435
+ else {
9436
+ this.clickedAlign.set(data.alignItems);
9437
+ this.clickedJustify.set(data.justifyItems);
9438
+ this.selectedAlign.set({ value: data.alignItems, label: this.findAlignNameById(data.alignItems) });
9439
+ this.selectedJustify.set({ value: data.justifyItems, label: this.findJustifyNameById(data.justifyItems) });
9440
+ this.saveValue({ alignItems: data.alignItems, justifyItems: data.justifyItems });
9441
+ }
9126
9442
  }
9127
9443
  onHover(data) {
9128
9444
  this.hoveredAlign.set(data.alignItems);
@@ -9146,35 +9462,104 @@ class AXPGridOptionsWidgetEditComponent extends AXPWidgetComponent {
9146
9462
  }
9147
9463
  this.saveValue({ alignItems: this.clickedAlign() });
9148
9464
  }
9149
- saveValue(item) {
9150
- this.setValue({ ...this.getValue(), ...item });
9465
+ changeBreakPoint(event) {
9466
+ if (event.isUserInteraction) {
9467
+ const value = this.getValue();
9468
+ const newBreakpoint = (typeof event.value === 'object' ? event.value.id : event.value);
9469
+ const currentBreakpoint = this.currentBreakpoint();
9470
+ if (newBreakpoint === currentBreakpoint) {
9471
+ return;
9472
+ }
9473
+ this.lastBreakpoint.set(currentBreakpoint);
9474
+ this.currentBreakpoint.set(newBreakpoint);
9475
+ if (value[currentBreakpoint] && value[newBreakpoint] === undefined) {
9476
+ this.setValue({ ...value, [newBreakpoint]: value[currentBreakpoint] });
9477
+ }
9478
+ this.initialValues();
9479
+ }
9151
9480
  }
9152
- #af;
9153
- // #eff3 = effect(() => console.log(this.getValue()));
9154
- #eff3;
9155
- initialValues(value) {
9156
- this.clickedJustify.set(value?.justifyItems ?? 'start');
9157
- this.clickedAlign.set(value?.alignItems ?? 'start');
9158
- this.gridTemplateRows.set(AXPPropertyEditorHelper.parseGridTemplate(value?.gridTemplateRows));
9159
- this.gridTemplateColumns.set(AXPPropertyEditorHelper.parseGridTemplate(value?.gridTemplateColumns));
9160
- const { values, units } = AXPPropertyEditorHelper.parseGap(value?.gap ?? '0px');
9161
- this.gapUnit.set({ ...units, both: units.x });
9162
- if (values.x === values.y) {
9163
- this.gapMode.set('both');
9164
- this.setGap(values.x, 'both');
9481
+ resetBreakpoint() {
9482
+ if (this.currentBreakpoint() === 'default') {
9483
+ return;
9165
9484
  }
9166
9485
  else {
9167
- this.gapMode.set('single');
9486
+ const value = cloneDeep(this.getValue());
9487
+ delete value[this.currentBreakpoint()];
9488
+ const newBreakpoint = this.lastBreakpoint();
9489
+ const otherBreakpoints = findNonEmptyBreakpoints(value);
9490
+ this.currentBreakpoint.set(newBreakpoint);
9491
+ const filteredOtherBreakpoints = otherBreakpoints.filter((i) => i !== newBreakpoint);
9492
+ if (filteredOtherBreakpoints.length === 0) {
9493
+ this.lastBreakpoint.set(newBreakpoint);
9494
+ }
9495
+ else {
9496
+ this.lastBreakpoint.set(filteredOtherBreakpoints[filteredOtherBreakpoints.length - 1]);
9497
+ }
9498
+ this.setValue({ ...value });
9499
+ this.initialValues();
9500
+ this.getValue();
9501
+ }
9502
+ }
9503
+ detectConfiguredBreakpoints() {
9504
+ const value = this.getValue();
9505
+ let newBreakpointConfigured = {};
9506
+ Object.keys(value).forEach((key) => {
9507
+ newBreakpointConfigured[key] = true;
9508
+ });
9509
+ this.isBreakpointConfigured.set(newBreakpointConfigured);
9510
+ }
9511
+ saveValue(item) {
9512
+ const value = this.getValue();
9513
+ const breakpoint = this.currentBreakpoint();
9514
+ if (value) {
9515
+ const existingBreakpointValue = value[breakpoint];
9516
+ const newValue = {
9517
+ ...value,
9518
+ [breakpoint]: existingBreakpointValue ? { ...existingBreakpointValue, ...item } : item,
9519
+ };
9520
+ this.setValue(newValue);
9521
+ }
9522
+ else {
9523
+ this.setValue({
9524
+ [breakpoint]: item,
9525
+ });
9526
+ }
9527
+ }
9528
+ #firstInitialize;
9529
+ #trackChange;
9530
+ // #eff1 = effect(() => console.log(this.getValue()));
9531
+ // #eff2 = effect(() => console.log(this.currentBreakpoint(), this.clickedAlign(), this.clickedJustify()));
9532
+ initialValues() {
9533
+ const value = this.getValue();
9534
+ if (value) {
9535
+ if (!this.rendered()) {
9536
+ const keys = findNonEmptyBreakpoints(value);
9537
+ this.currentBreakpoint.set(keys.length === 0 ? 'default' : keys[keys.length - 1]);
9538
+ }
9539
+ const justify = value[this.currentBreakpoint()]?.justifyItems ?? 'stretch';
9540
+ const align = value[this.currentBreakpoint()]?.alignItems ?? 'stretch';
9541
+ this.clickedJustify.set(justify);
9542
+ this.clickedAlign.set(align);
9543
+ this.selectedJustify.set({ value: justify, label: this.findJustifyNameById(justify) });
9544
+ this.selectedAlign.set({ value: align, label: this.findAlignNameById(align) });
9545
+ const rows = AXPPropertyEditorHelper.parseGridTemplate(value[this.currentBreakpoint()]?.gridTemplateRows ?? 'repeat(1, 1fr)');
9546
+ const cols = AXPPropertyEditorHelper.parseGridTemplate(value[this.currentBreakpoint()]?.gridTemplateColumns ?? 'repeat(1, 1fr)');
9547
+ this.gridTemplateRows.set(rows);
9548
+ this.gridTemplateColumns.set(cols);
9549
+ const { values, unit } = AXPPropertyEditorHelper.parseGap(value[this.currentBreakpoint()]?.gap ?? '0px');
9168
9550
  this.setGap(values.x, 'x');
9169
9551
  this.setGap(values.y, 'y');
9552
+ this.gapUnit.set(unit);
9553
+ this.detectConfiguredBreakpoints();
9170
9554
  }
9171
9555
  }
9172
9556
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPGridOptionsWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
9173
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPGridOptionsWidgetEditComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"axp-grid-option ax-grid ax-grid-cols-[auto_1fr] ax-pt-2 ax-gap-2 ax-items-center ax-justify-items-start\">\n <span>Grid</span>\n <div class=\"ax-flex ax-items-center ax-gap-1\">\n <span class=\"ax-text-xs\">Row</span>\n <ax-number-box\n [minValue]=\"1\"\n [maxValue]=\"12\"\n [value]=\"gap().x\"\n (onValueChanged)=\"setRowOrColumn($event.value, 'row')\"\n [changeOnScroll]=\"true\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n <span class=\"ax-text-xs\">Column</span>\n <ax-number-box\n [minValue]=\"1\"\n [maxValue]=\"12\"\n [value]=\"gap().y\"\n (onValueChanged)=\"setRowOrColumn($event.value, 'column')\"\n [changeOnScroll]=\"true\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n <!-- <button>\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7 3.29289C7.18754 3.10536 7.44189 3 7.70711 3H10.5C10.7022 3 10.8845 3.12182 10.9619 3.30866C11.0393 3.4955 10.9966 3.71055 10.8536 3.85355L9 5.70711V7H10.2929L12.1464 5.14645C12.2894 5.00345 12.5045 4.96067 12.6913 5.03806C12.8782 5.11545 13 5.29777 13 5.5V8.29289C13 8.55811 12.8946 8.81246 12.7071 9L11 10.7071C10.8125 10.8946 10.5581 11 10.2929 11H7.70711L4.85355 13.8536C4.65829 14.0488 4.34171 14.0488 4.14645 13.8536L2.14645 11.8536C1.95118 11.6583 1.95118 11.3417 2.14645 11.1464L5 8.29289V5.70711C5 5.44189 5.10536 5.18754 5.29289 5L7 3.29289ZM9.29289 4H7.70711L6 5.70711L6 8.29289C6 8.55811 5.89464 8.81246 5.70711 9L3.20711 11.5L4.5 12.7929L7 10.2929C7.18754 10.1054 7.44189 10 7.70711 10H10.2929L12 8.29289V6.70711L10.8536 7.85355C10.7598 7.94732 10.6326 8 10.5 8H8.5C8.22386 8 8 7.77614 8 7.5V5.5C8 5.36739 8.05268 5.24021 8.14645 5.14645L9.29289 4Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n </button> -->\n </div>\n <!-- <span> Direction </span>\n <div>\n <ax-button-group [selection]=\"'single'\">\n <ax-button-group-item class=\"ax-w-24\" (onClick)=\"setGridDirection('row')\" [selected]=\"gridDirection() === 'row'\"\n ><ax-prefix\n ><svg\n data-wf-icon=\"FlexFlowWrapIcon\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M3 4H11V3H3V4ZM13.8536 11.1464L10.8536 8.14645L10.1464 8.85355L12.2929 11H3V12H12.2929L10.1464 14.1464L10.8536 14.8536L13.8536 11.8536L14.2071 11.5L13.8536 11.1464Z\"\n fill=\"currentColor\"\n ></path>\n <path\n opacity=\"0.4\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M3 10.7929L9.79289 4H11V4.20711L4.20711 11H3V10.7929Z\"\n fill=\"currentColor\"\n ></path></svg></ax-prefix\n ></ax-button-group-item>\n <ax-button-group-item\n class=\"ax-w-24\"\n (onClick)=\"setGridDirection('column')\"\n [selected]=\"gridDirection() === 'column'\"\n ><ax-prefix\n ><svg\n data-wf-icon=\"FlexFlowColumnWrapIcon\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4 3L4 11L3 11L3 3L4 3ZM11.1464 13.8536L8.14645 10.8536L8.85355 10.1464L11 12.2929L11 3L12 3L12 12.2929L14.1464 10.1464L14.8536 10.8536L11.8536 13.8536L11.5 14.2071L11.1464 13.8536Z\"\n fill=\"currentColor\"\n ></path>\n <path\n opacity=\"0.4\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M10.7929 3L4 9.79289L4 11L4.20711 11L11 4.20711L11 3L10.7929 3Z\"\n fill=\"currentColor\"\n ></path></svg></ax-prefix\n ></ax-button-group-item>\n </ax-button-group>\n </div> -->\n <span>Align</span>\n <div class=\"ax-flex ax-justify-between ax-gap-2 ax-items-center\">\n <div\n class=\"ax-relative ax-size-[62px] ax-bg-[rgb(30,30,30)] ax-border ax-border-white ax-border-opacity-15 ax-rounded\"\n >\n <div class=\"ax-absolute ax-inset-0 ax-grid ax-grid-cols-3 ax-grid-rows-3\">\n @for(side of gridSides; track side.value){\n <div\n [attr.aria-label]=\"side.label\"\n [attr.aria-value]=\"side.value\"\n class=\"ax-grid ax-place-content-center\"\n (mouseenter)=\"onHover(side)\"\n (mouseleave)=\"onHoverLeave()\"\n (click)=\"onClick(side)\"\n >\n @if (true) {\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"7\" y=\"7\" width=\"2\" height=\"2\" rx=\"1\" fill=\"currentColor\" fill-opacity=\"0.3\"></rect>\n </svg>\n }\n </div>\n }\n </div>\n @if(hoveredJustify() && hoveredAlign()){\n <div\n class=\"ax-absolute ax-inset-0 ax-grid ax-pointer-events-none ax-transition-all\"\n [style.justify-items]=\"hoveredJustify()\"\n [style.align-items]=\"hoveredAlign()\"\n >\n <div class=\"ax-flex ax-justify-center ax-items-center ax-min-w-5 ax-min-h-5\">\n <div class=\"ax-size-auto ax-z-[1] ax-rounded-lg ax-bg-[rgb(30,30,30)] ax-flex-none\">\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style=\"color: #efeaea\"\n >\n <path\n d=\"M4.5 4.6a.1.1 0 0 1 .1-.1h10.8a.1.1 0 0 1 .1.1v10.8a.1.1 0 0 1-.1.1H4.6a.1.1 0 0 1-.1-.1V4.6Z\"\n fill=\"currentColor\"\n stroke=\"currentColor\"\n style=\"stroke-opacity: 0.25; fill-opacity: 0.07\"\n class=\"hover:fill-opacity-20\"\n ></path>\n </svg>\n </div>\n </div>\n </div>\n }\n\n <div\n class=\"ax-absolute ax-inset-0 ax-grid ax-pointer-events-none ax-transition-all\"\n [style.justify-items]=\"clickedJustify()\"\n [style.align-items]=\"clickedAlign()\"\n >\n <div class=\"ax-flex ax-justify-center ax-items-center ax-min-w-5 ax-min-h-5\">\n <div class=\"ax-size-auto ax-z-[2] ax-rounded-lg ax-bg-[rgb(30,30,30)] ax-flex-none\">\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style=\"color: #efeaea\"\n >\n <path\n d=\"M4.5 4.6a.1.1 0 0 1 .1-.1h10.8a.1.1 0 0 1 .1.1v10.8a.1.1 0 0 1-.1.1H4.6a.1.1 0 0 1-.1-.1V4.6Z\"\n fill=\"currentColor\"\n stroke=\"currentColor\"\n style=\"fill: #cebcbc; fill-opacity: 0.16\"\n ></path>\n </svg>\n </div>\n </div>\n </div>\n </div>\n <div class=\"ax-grid ax-grid-cols-[auto_1fr] ax-items-center ax-justify-items-start ax-gap-2\">\n <span>X:</span>\n <div class=\"ax-w-32\">\n <ax-select-box\n [dataSource]=\"justifyDataSource\"\n [value]=\"selectedJustify()\"\n (onValueChanged)=\"onJustifyChange($event)\"\n textField=\"label\"\n valueField=\"value\"\n placeholder=\"Choose...\"\n >\n </ax-select-box>\n </div>\n <span>Y:</span>\n <div class=\"ax-w-32\">\n <ax-select-box\n [dataSource]=\"alignDataSource\"\n [value]=\"selectedAlign()\"\n (onValueChanged)=\"onAlignChange($event)\"\n textField=\"label\"\n valueField=\"value\"\n placeholder=\"Choose...\"\n >\n </ax-select-box>\n </div>\n </div>\n </div>\n\n <span>Gap</span>\n <div class=\"ax-flex ax-gap-2 ax-justify-between\">\n @if(gapMode()==='both') {\n <ax-range-slider\n class=\"ax-w-32\"\n color=\"neutral\"\n [values]=\"gap().both\"\n (valuesChange)=\"setGap($event ?? 0, 'both')\"\n ></ax-range-slider>\n <ax-number-box\n [minValue]=\"0\"\n [maxValue]=\"999\"\n [value]=\"gap().both\"\n (onValueChanged)=\"setGap($event.value ?? 0, 'both')\"\n [changeOnScroll]=\"true\"\n class=\"ax-min-w-6\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n } @else {\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <span class=\"ax-text-xs\">Row</span>\n <ax-number-box\n [minValue]=\"0\"\n [maxValue]=\"999\"\n [value]=\"gap().x\"\n (onValueChanged)=\"setGap($event.value ?? 0, 'x')\"\n [changeOnScroll]=\"true\"\n class=\"ax-min-w-5\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n <span class=\"ax-text-xs\">Column</span>\n <ax-number-box\n [minValue]=\"0\"\n [maxValue]=\"999\"\n [value]=\"gap().y\"\n [changeOnScroll]=\"true\"\n (valueChange)=\"setGap($event ?? 0, 'y')\"\n class=\"ax-min-w-5\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n </div>\n }\n <button (click)=\"setGapMode()\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n @if(gapMode()==='both'){\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M5 7L5 5C5 3.34315 6.34315 2 8 2C9.65685 2 11 3.34315 11 5V7C11.5523 7 12 7.44772 12 8V12C12 12.5523 11.5523 13 11 13H5C4.44772 13 4 12.5523 4 12V8C4 7.44771 4.44772 7 5 7ZM6 5C6 3.89543 6.89543 3 8 3C9.10457 3 10 3.89543 10 5V7H6V5ZM5 12V8H11V12H5Z\"\n fill=\"currentColor\"\n ></path>\n }@else {\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M9 5C9 3.89543 9.89543 3 11 3C12.1046 3 13 3.89543 13 5V6H14V5C14 3.34315 12.6569 2 11 2C9.34315 2 8 3.34315 8 5V7H3C2.44772 7 2 7.44771 2 8V12C2 12.5523 2.44772 13 3 13H9C9.55228 13 10 12.5523 10 12V8C10 7.44772 9.55228 7 9 7V5ZM3 8H9V12H3V8Z\"\n fill=\"currentColor\"\n ></path>\n }\n </svg>\n </button>\n </div>\n</div>\n", styles: [".axp-grid-option ax-number-box:not(.ax-exclude) div:first-child{height:2rem!important;border-radius:.3rem!important;font-size:12px}.axp-grid-option ax-number-box:not(.ax-exclude) div:first-child input{padding:.25rem 0 .25rem .5rem!important}\n"], dependencies: [{ kind: "ngmodule", type: AXButtonGroupModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.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: AXSelectBoxModule }, { kind: "component", type: i3$2.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "textTemplate", "dataSource", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXNumberBoxModule }, { kind: "component", type: i1$3.AXNumberBoxComponent, selector: "ax-number-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "changeOnScroll", "thousandsSeparator", "padDecimalZeros", "step", "decimals", "decimalStep", "showSpinButtons", "minValue", "maxValue", "class"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXRangeSliderModule }, { kind: "component", type: i4$2.AXRangeSliderComponent, selector: "ax-range-slider", inputs: ["disabled", "readonly", "orientation", "color", "values", "mode", "min", "max", "step", "snap", "tooltipMode", "snapMode", "hasStep", "hasSnap", "hasLable", "hasTooltip"], outputs: ["valuesChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
9557
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPGridOptionsWidgetEditComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"axp-grid-breakpoints ax-pb-4\">\n <ax-selection-list\n [direction]=\"'horizontal'\"\n [items]=\"selectionItems\"\n [look]=\"'card'\"\n [customTemplate]=\"customTemplate\"\n [showControl]=\"false\"\n [ngModel]=\"currentBreakpoint()\"\n (onValueChanged)=\"changeBreakPoint($event)\"\n ></ax-selection-list>\n</div>\n<ng-template #customTemplate let-item>\n @let data = item.data;\n <div [class]=\"isBreakpointConfigured()[data.id] ? 'ax-text-primary-300' : ''\">\n {{ data.text }}\n </div>\n</ng-template>\n<ax-button\n color=\"primary\"\n text=\"Reset\"\n [disabled]=\"currentBreakpoint() === 'default'\"\n (click)=\"resetBreakpoint()\"\n></ax-button>\n\n<div class=\"axp-grid-option ax-grid ax-grid-cols-[auto_1fr] ax-pt-2 ax-gap-2 ax-items-center ax-justify-items-start\">\n <span>Grid</span>\n <div class=\"ax-flex ax-items-center ax-gap-1\">\n <span class=\"ax-text-xs\">Row</span>\n <ax-number-box\n [minValue]=\"1\"\n [maxValue]=\"12\"\n [value]=\"gridTemplateRows()\"\n (onValueChanged)=\"setRowOrColumn($event.value, 'row')\"\n [changeOnScroll]=\"true\"\n [showSpinButtons]=\"false\"\n class=\"ax-max-w-[4.45rem]\"\n ></ax-number-box>\n <span class=\"ax-text-xs\">Column</span>\n <ax-number-box\n [minValue]=\"1\"\n [maxValue]=\"12\"\n [value]=\"gridTemplateColumns()\"\n (onValueChanged)=\"setRowOrColumn($event.value, 'column')\"\n [changeOnScroll]=\"true\"\n [showSpinButtons]=\"false\"\n class=\"ax-max-w-[4.45rem]\"\n ></ax-number-box>\n <!-- <button>\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7 3.29289C7.18754 3.10536 7.44189 3 7.70711 3H10.5C10.7022 3 10.8845 3.12182 10.9619 3.30866C11.0393 3.4955 10.9966 3.71055 10.8536 3.85355L9 5.70711V7H10.2929L12.1464 5.14645C12.2894 5.00345 12.5045 4.96067 12.6913 5.03806C12.8782 5.11545 13 5.29777 13 5.5V8.29289C13 8.55811 12.8946 8.81246 12.7071 9L11 10.7071C10.8125 10.8946 10.5581 11 10.2929 11H7.70711L4.85355 13.8536C4.65829 14.0488 4.34171 14.0488 4.14645 13.8536L2.14645 11.8536C1.95118 11.6583 1.95118 11.3417 2.14645 11.1464L5 8.29289V5.70711C5 5.44189 5.10536 5.18754 5.29289 5L7 3.29289ZM9.29289 4H7.70711L6 5.70711L6 8.29289C6 8.55811 5.89464 8.81246 5.70711 9L3.20711 11.5L4.5 12.7929L7 10.2929C7.18754 10.1054 7.44189 10 7.70711 10H10.2929L12 8.29289V6.70711L10.8536 7.85355C10.7598 7.94732 10.6326 8 10.5 8H8.5C8.22386 8 8 7.77614 8 7.5V5.5C8 5.36739 8.05268 5.24021 8.14645 5.14645L9.29289 4Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n </button> -->\n </div>\n <!-- <span> Direction </span>\n <div>\n <ax-button-group [selection]=\"'single'\">\n <ax-button-group-item class=\"ax-w-24\" (onClick)=\"setGridDirection('row')\" [selected]=\"gridDirection() === 'row'\"\n ><ax-prefix\n ><svg\n data-wf-icon=\"FlexFlowWrapIcon\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M3 4H11V3H3V4ZM13.8536 11.1464L10.8536 8.14645L10.1464 8.85355L12.2929 11H3V12H12.2929L10.1464 14.1464L10.8536 14.8536L13.8536 11.8536L14.2071 11.5L13.8536 11.1464Z\"\n fill=\"currentColor\"\n ></path>\n <path\n opacity=\"0.4\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M3 10.7929L9.79289 4H11V4.20711L4.20711 11H3V10.7929Z\"\n fill=\"currentColor\"\n ></path></svg></ax-prefix\n ></ax-button-group-item>\n <ax-button-group-item\n class=\"ax-w-24\"\n (onClick)=\"setGridDirection('column')\"\n [selected]=\"gridDirection() === 'column'\"\n ><ax-prefix\n ><svg\n data-wf-icon=\"FlexFlowColumnWrapIcon\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4 3L4 11L3 11L3 3L4 3ZM11.1464 13.8536L8.14645 10.8536L8.85355 10.1464L11 12.2929L11 3L12 3L12 12.2929L14.1464 10.1464L14.8536 10.8536L11.8536 13.8536L11.5 14.2071L11.1464 13.8536Z\"\n fill=\"currentColor\"\n ></path>\n <path\n opacity=\"0.4\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M10.7929 3L4 9.79289L4 11L4.20711 11L11 4.20711L11 3L10.7929 3Z\"\n fill=\"currentColor\"\n ></path></svg></ax-prefix\n ></ax-button-group-item>\n </ax-button-group>\n </div> -->\n <span>Align</span>\n <div class=\"ax-flex ax-justify-between ax-gap-2 ax-items-center\">\n <div\n class=\"ax-relative ax-size-[62px] ax-bg-[rgb(30,30,30)] ax-border ax-border-white ax-border-opacity-15 ax-rounded\"\n >\n <div class=\"ax-absolute ax-inset-0 ax-grid ax-grid-cols-3 ax-grid-rows-3\">\n @for(side of gridSides; track side.value){\n <div\n [attr.aria-label]=\"side.label\"\n [attr.aria-value]=\"side.value\"\n class=\"ax-grid ax-place-content-center\"\n (mouseenter)=\"onHover(side)\"\n (mouseleave)=\"onHoverLeave()\"\n (click)=\"onClick(side)\"\n >\n @if (true) {\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"7\" y=\"7\" width=\"2\" height=\"2\" rx=\"1\" fill=\"currentColor\" fill-opacity=\"0.3\"></rect>\n </svg>\n }\n </div>\n }\n </div>\n @if(hoveredJustify() && hoveredAlign()){\n <div\n class=\"axp-grid-option-hover ax-absolute ax-inset-0 ax-grid ax-pointer-events-none ax-transition-all\"\n [style.justify-items]=\"hoveredJustify()\"\n [style.align-items]=\"hoveredAlign()\"\n >\n <div class=\"ax-flex ax-justify-center ax-items-center ax-min-w-5 ax-min-h-5\">\n <div class=\"ax-size-auto ax-z-[1] ax-rounded-lg ax-bg-[rgb(30,30,30)] ax-flex-none\">\n @if(clickedJustify()==='stretch' && clickedAlign()==='stretch') {} @else if(clickedJustify()==='stretch'){\n <svg\n width=\"60\"\n height=\"20\"\n viewBox=\"0 0 60 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style=\"color: white\"\n >\n <path\n d=\"M4.5 4.6a.15.15 0 0 1 .033-.1h50.934l.003.003a.15.15 0 0 1 .03.097v10.8a.15.15 0 0 1-.03.097l-.003.003H4.533l-.003-.003a.15.15 0 0 1-.03-.097V4.6Z\"\n fill=\"currentColor\"\n stroke=\"currentColor\"\n style=\"fill-opacity: 0.07; stroke-opacity: 0.25\"\n ></path>\n </svg>\n } @else if(clickedAlign()==='stretch'){\n <svg\n width=\"20\"\n height=\"60\"\n viewBox=\"0 0 20 60\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style=\"color: white\"\n >\n <path\n d=\"M4.6 4.5h10.8a.15.15 0 0 1 .097.03l.003.003v50.934l-.003.003a.15.15 0 0 1-.097.03H4.6a.15.15 0 0 1-.1-.033V4.533l.003-.003A.15.15 0 0 1 4.6 4.5Z\"\n fill=\"currentColor\"\n stroke=\"currentColor\"\n style=\"fill-opacity: 0.07; stroke-opacity: 0.25\"\n ></path>\n </svg>\n } @else{\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style=\"color: #efeaea\"\n >\n <path\n d=\"M4.5 4.6a.1.1 0 0 1 .1-.1h10.8a.1.1 0 0 1 .1.1v10.8a.1.1 0 0 1-.1.1H4.6a.1.1 0 0 1-.1-.1V4.6Z\"\n fill=\"currentColor\"\n stroke=\"currentColor\"\n style=\"stroke-opacity: 0.25; fill-opacity: 0.07\"\n class=\"hover:fill-opacity-20\"\n ></path>\n </svg>\n }\n </div>\n </div>\n </div>\n }\n\n <div\n class=\"axp-grid-option-active ax-absolute ax-inset-0 ax-grid ax-pointer-events-none ax-transition-all\"\n [style.justify-items]=\"clickedJustify()\"\n [style.align-items]=\"clickedAlign()\"\n >\n <div class=\"ax-flex ax-justify-center ax-items-center ax-min-w-5 ax-min-h-5\">\n <div class=\"ax-size-auto ax-z-[2] ax-rounded-lg ax-bg-[rgb(30,30,30)] ax-flex-none\">\n @if(clickedJustify()==='stretch' && clickedAlign()==='stretch') {\n <svg\n width=\"60\"\n height=\"60\"\n viewBox=\"0 0 60 60\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style=\"color: white\"\n >\n <path\n d=\"M55.5 55.48a.02.02 0 0 1-.02.02H4.52a.02.02 0 0 1-.02-.02V4.52a.02.02 0 0 1 .02-.02h50.96a.02.02 0 0 1 .02.02v50.96Z\"\n fill=\"currentColor\"\n stroke=\"currentColor\"\n style=\"fill-opacity: 0.16; stroke: white\"\n ></path>\n <path\n d=\"m26.354 20.354 3.146-3.147V29.5h-3v1h3v12.293l-3.146-3.147-.707.708L30 44.707l4.354-4.353-.707-.708-3.147 3.147V30.5h12.293l-3.147 3.147.708.707L44.707 30l-4.353-4.354-.708.708 3.147 3.146H30.5V17.207l3.146 3.147.707-.707L30 15.293l-4.354 4.354.707.707Z\"\n fill=\"currentColor\"\n style=\"fill-opacity: 0.25\"\n ></path>\n <path\n d=\"m17.207 30.5 3.146 3.147-.707.707L15.293 30l4.353-4.354.707.708-3.146 3.146H26.5v1h-9.293Z\"\n fill=\"currentColor\"\n style=\"fill-opacity: 0.25\"\n ></path>\n </svg>\n } @else if(clickedJustify()==='stretch'){\n <svg\n width=\"60\"\n height=\"20\"\n viewBox=\"0 0 60 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style=\"color: white\"\n >\n <path\n d=\"M4.5 4.6a.15.15 0 0 1 .033-.1h50.934l.003.003a.15.15 0 0 1 .03.097v10.8a.15.15 0 0 1-.03.097l-.003.003H4.533l-.003-.003a.15.15 0 0 1-.03-.097V4.6Z\"\n fill=\"currentColor\"\n stroke=\"currentColor\"\n style=\"fill-opacity: 0.16; stroke: white\"\n ></path>\n </svg>\n } @else if(clickedAlign()==='stretch'){\n <svg\n width=\"20\"\n height=\"60\"\n viewBox=\"0 0 20 60\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style=\"color: white\"\n >\n <path\n d=\"M4.6 4.5h10.8a.15.15 0 0 1 .097.03l.003.003v50.934l-.003.003a.15.15 0 0 1-.097.03H4.6a.15.15 0 0 1-.1-.033V4.533l.003-.003A.15.15 0 0 1 4.6 4.5Z\"\n fill=\"currentColor\"\n stroke=\"currentColor\"\n style=\"fill-opacity: 0.16; stroke: white\"\n ></path>\n </svg>\n } @else{\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style=\"color: #efeaea\"\n >\n <path\n d=\"M4.5 4.6a.1.1 0 0 1 .1-.1h10.8a.1.1 0 0 1 .1.1v10.8a.1.1 0 0 1-.1.1H4.6a.1.1 0 0 1-.1-.1V4.6Z\"\n fill=\"currentColor\"\n stroke=\"currentColor\"\n style=\"fill: #cebcbc; fill-opacity: 0.16\"\n ></path>\n </svg>\n }\n </div>\n </div>\n </div>\n </div>\n <div class=\"ax-grid ax-grid-cols-[auto_1fr] ax-items-center ax-justify-items-start ax-gap-2\">\n <span>X:</span>\n <div class=\"ax-w-32\">\n <ax-select-box\n [dataSource]=\"justifyDataSource\"\n [value]=\"selectedJustify()\"\n (onValueChanged)=\"onJustifyChange($event)\"\n textField=\"label\"\n valueField=\"value\"\n placeholder=\"Choose...\"\n >\n </ax-select-box>\n </div>\n <span>Y:</span>\n <div class=\"ax-w-32\">\n <ax-select-box\n [dataSource]=\"alignDataSource\"\n [value]=\"selectedAlign()\"\n (onValueChanged)=\"onAlignChange($event)\"\n textField=\"label\"\n valueField=\"value\"\n placeholder=\"Choose...\"\n >\n </ax-select-box>\n </div>\n </div>\n </div>\n\n <span>Gap</span>\n <div class=\"ax-flex ax-gap-2 ax-justify-between\">\n @if(gapMode()==='single') {\n <ax-range-slider\n class=\"ax-w-32\"\n color=\"neutral\"\n [values]=\"gap().x\"\n (valuesChange)=\"setGap($event ?? 0, 'both')\"\n ></ax-range-slider>\n <ax-number-box\n [minValue]=\"0\"\n [maxValue]=\"999\"\n [value]=\"gap().x\"\n (onValueChanged)=\"setGap($event.value ?? 0, 'both')\"\n [changeOnScroll]=\"true\"\n class=\"ax-min-w-6\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n } @else {\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <span class=\"ax-text-xs\">Row</span>\n <ax-number-box\n [minValue]=\"0\"\n [maxValue]=\"999\"\n [value]=\"gap().x\"\n (onValueChanged)=\"setGap($event.value ?? 0, 'x')\"\n [changeOnScroll]=\"true\"\n class=\"ax-min-w-5\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n <span class=\"ax-text-xs\">Column</span>\n <ax-number-box\n [minValue]=\"0\"\n [maxValue]=\"999\"\n [value]=\"gap().y\"\n [changeOnScroll]=\"true\"\n (valueChange)=\"setGap($event ?? 0, 'y')\"\n class=\"ax-min-w-5\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n </div>\n }\n <button (click)=\"toggleGapMode()\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n @if(gapMode()==='single'){\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M5 7L5 5C5 3.34315 6.34315 2 8 2C9.65685 2 11 3.34315 11 5V7C11.5523 7 12 7.44772 12 8V12C12 12.5523 11.5523 13 11 13H5C4.44772 13 4 12.5523 4 12V8C4 7.44771 4.44772 7 5 7ZM6 5C6 3.89543 6.89543 3 8 3C9.10457 3 10 3.89543 10 5V7H6V5ZM5 12V8H11V12H5Z\"\n fill=\"currentColor\"\n ></path>\n }@else {\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M9 5C9 3.89543 9.89543 3 11 3C12.1046 3 13 3.89543 13 5V6H14V5C14 3.34315 12.6569 2 11 2C9.34315 2 8 3.34315 8 5V7H3C2.44772 7 2 7.44771 2 8V12C2 12.5523 2.44772 13 3 13H9C9.55228 13 10 12.5523 10 12V8C10 7.44772 9.55228 7 9 7V5ZM3 8H9V12H3V8Z\"\n fill=\"currentColor\"\n ></path>\n }\n </svg>\n </button>\n </div>\n</div>\n", styles: [".axp-grid-breakpoints{font-size:.25rem!important}.axp-grid-breakpoints>ax-selection-list:not(.ax-exclude)>ul{gap:.5rem!important}.axp-grid-breakpoints>ax-selection-list:not(.ax-exclude)>ul>li>label{padding:.25rem!important}.axp-grid-option ax-number-box:not(.ax-exclude) div:first-child{height:2rem!important;border-radius:.3rem!important;font-size:12px}.axp-grid-option ax-number-box:not(.ax-exclude) div:first-child input{padding:.25rem 0 .25rem .5rem!important}.axp-grid-option ax-range-slider:not(.ax-exclude){--ax-range-slider-base-thickness: .1rem}.axp-grid-option ax-range-slider:not(.ax-exclude) .ax-range-slider-handler{width:.75rem!important;height:.75rem!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonGroupModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.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: AXSelectBoxModule }, { kind: "component", type: i3$2.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "textTemplate", "dataSource", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXNumberBoxModule }, { kind: "component", type: i1$3.AXNumberBoxComponent, selector: "ax-number-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "changeOnScroll", "thousandsSeparator", "padDecimalZeros", "step", "decimals", "decimalStep", "showSpinButtons", "minValue", "maxValue", "class"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i5.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXRangeSliderModule }, { kind: "component", type: i3$6.AXRangeSliderComponent, selector: "ax-range-slider", inputs: ["disabled", "readonly", "orientation", "color", "values", "mode", "min", "max", "step", "snap", "tooltipMode", "snapMode", "hasStep", "hasSnap", "hasLable", "hasTooltip"], outputs: ["valuesChange"] }, { kind: "ngmodule", type: AXSelectionListModule }, { kind: "component", type: i2$3.AXSelectionListComponent, selector: "ax-selection-list", inputs: ["id", "name", "disabled", "readonly", "tabIndex", "size", "value", "valueField", "textField", "disabledField", "readonlyField", "multiple", "direction", "customTemplate", "showControl", "items", "look"], outputs: ["onValueChanged", "onBlur", "onFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
9174
9558
  }
9175
9559
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPGridOptionsWidgetEditComponent, decorators: [{
9176
9560
  type: Component,
9177
9561
  args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [
9562
+ CommonModule,
9178
9563
  AXButtonGroupModule,
9179
9564
  AXDecoratorModule,
9180
9565
  AXSelectBoxModule,
@@ -9183,7 +9568,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
9183
9568
  AXButtonModule,
9184
9569
  FormsModule,
9185
9570
  AXRangeSliderModule,
9186
- ], template: "<div class=\"axp-grid-option ax-grid ax-grid-cols-[auto_1fr] ax-pt-2 ax-gap-2 ax-items-center ax-justify-items-start\">\n <span>Grid</span>\n <div class=\"ax-flex ax-items-center ax-gap-1\">\n <span class=\"ax-text-xs\">Row</span>\n <ax-number-box\n [minValue]=\"1\"\n [maxValue]=\"12\"\n [value]=\"gap().x\"\n (onValueChanged)=\"setRowOrColumn($event.value, 'row')\"\n [changeOnScroll]=\"true\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n <span class=\"ax-text-xs\">Column</span>\n <ax-number-box\n [minValue]=\"1\"\n [maxValue]=\"12\"\n [value]=\"gap().y\"\n (onValueChanged)=\"setRowOrColumn($event.value, 'column')\"\n [changeOnScroll]=\"true\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n <!-- <button>\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7 3.29289C7.18754 3.10536 7.44189 3 7.70711 3H10.5C10.7022 3 10.8845 3.12182 10.9619 3.30866C11.0393 3.4955 10.9966 3.71055 10.8536 3.85355L9 5.70711V7H10.2929L12.1464 5.14645C12.2894 5.00345 12.5045 4.96067 12.6913 5.03806C12.8782 5.11545 13 5.29777 13 5.5V8.29289C13 8.55811 12.8946 8.81246 12.7071 9L11 10.7071C10.8125 10.8946 10.5581 11 10.2929 11H7.70711L4.85355 13.8536C4.65829 14.0488 4.34171 14.0488 4.14645 13.8536L2.14645 11.8536C1.95118 11.6583 1.95118 11.3417 2.14645 11.1464L5 8.29289V5.70711C5 5.44189 5.10536 5.18754 5.29289 5L7 3.29289ZM9.29289 4H7.70711L6 5.70711L6 8.29289C6 8.55811 5.89464 8.81246 5.70711 9L3.20711 11.5L4.5 12.7929L7 10.2929C7.18754 10.1054 7.44189 10 7.70711 10H10.2929L12 8.29289V6.70711L10.8536 7.85355C10.7598 7.94732 10.6326 8 10.5 8H8.5C8.22386 8 8 7.77614 8 7.5V5.5C8 5.36739 8.05268 5.24021 8.14645 5.14645L9.29289 4Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n </button> -->\n </div>\n <!-- <span> Direction </span>\n <div>\n <ax-button-group [selection]=\"'single'\">\n <ax-button-group-item class=\"ax-w-24\" (onClick)=\"setGridDirection('row')\" [selected]=\"gridDirection() === 'row'\"\n ><ax-prefix\n ><svg\n data-wf-icon=\"FlexFlowWrapIcon\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M3 4H11V3H3V4ZM13.8536 11.1464L10.8536 8.14645L10.1464 8.85355L12.2929 11H3V12H12.2929L10.1464 14.1464L10.8536 14.8536L13.8536 11.8536L14.2071 11.5L13.8536 11.1464Z\"\n fill=\"currentColor\"\n ></path>\n <path\n opacity=\"0.4\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M3 10.7929L9.79289 4H11V4.20711L4.20711 11H3V10.7929Z\"\n fill=\"currentColor\"\n ></path></svg></ax-prefix\n ></ax-button-group-item>\n <ax-button-group-item\n class=\"ax-w-24\"\n (onClick)=\"setGridDirection('column')\"\n [selected]=\"gridDirection() === 'column'\"\n ><ax-prefix\n ><svg\n data-wf-icon=\"FlexFlowColumnWrapIcon\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4 3L4 11L3 11L3 3L4 3ZM11.1464 13.8536L8.14645 10.8536L8.85355 10.1464L11 12.2929L11 3L12 3L12 12.2929L14.1464 10.1464L14.8536 10.8536L11.8536 13.8536L11.5 14.2071L11.1464 13.8536Z\"\n fill=\"currentColor\"\n ></path>\n <path\n opacity=\"0.4\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M10.7929 3L4 9.79289L4 11L4.20711 11L11 4.20711L11 3L10.7929 3Z\"\n fill=\"currentColor\"\n ></path></svg></ax-prefix\n ></ax-button-group-item>\n </ax-button-group>\n </div> -->\n <span>Align</span>\n <div class=\"ax-flex ax-justify-between ax-gap-2 ax-items-center\">\n <div\n class=\"ax-relative ax-size-[62px] ax-bg-[rgb(30,30,30)] ax-border ax-border-white ax-border-opacity-15 ax-rounded\"\n >\n <div class=\"ax-absolute ax-inset-0 ax-grid ax-grid-cols-3 ax-grid-rows-3\">\n @for(side of gridSides; track side.value){\n <div\n [attr.aria-label]=\"side.label\"\n [attr.aria-value]=\"side.value\"\n class=\"ax-grid ax-place-content-center\"\n (mouseenter)=\"onHover(side)\"\n (mouseleave)=\"onHoverLeave()\"\n (click)=\"onClick(side)\"\n >\n @if (true) {\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"7\" y=\"7\" width=\"2\" height=\"2\" rx=\"1\" fill=\"currentColor\" fill-opacity=\"0.3\"></rect>\n </svg>\n }\n </div>\n }\n </div>\n @if(hoveredJustify() && hoveredAlign()){\n <div\n class=\"ax-absolute ax-inset-0 ax-grid ax-pointer-events-none ax-transition-all\"\n [style.justify-items]=\"hoveredJustify()\"\n [style.align-items]=\"hoveredAlign()\"\n >\n <div class=\"ax-flex ax-justify-center ax-items-center ax-min-w-5 ax-min-h-5\">\n <div class=\"ax-size-auto ax-z-[1] ax-rounded-lg ax-bg-[rgb(30,30,30)] ax-flex-none\">\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style=\"color: #efeaea\"\n >\n <path\n d=\"M4.5 4.6a.1.1 0 0 1 .1-.1h10.8a.1.1 0 0 1 .1.1v10.8a.1.1 0 0 1-.1.1H4.6a.1.1 0 0 1-.1-.1V4.6Z\"\n fill=\"currentColor\"\n stroke=\"currentColor\"\n style=\"stroke-opacity: 0.25; fill-opacity: 0.07\"\n class=\"hover:fill-opacity-20\"\n ></path>\n </svg>\n </div>\n </div>\n </div>\n }\n\n <div\n class=\"ax-absolute ax-inset-0 ax-grid ax-pointer-events-none ax-transition-all\"\n [style.justify-items]=\"clickedJustify()\"\n [style.align-items]=\"clickedAlign()\"\n >\n <div class=\"ax-flex ax-justify-center ax-items-center ax-min-w-5 ax-min-h-5\">\n <div class=\"ax-size-auto ax-z-[2] ax-rounded-lg ax-bg-[rgb(30,30,30)] ax-flex-none\">\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style=\"color: #efeaea\"\n >\n <path\n d=\"M4.5 4.6a.1.1 0 0 1 .1-.1h10.8a.1.1 0 0 1 .1.1v10.8a.1.1 0 0 1-.1.1H4.6a.1.1 0 0 1-.1-.1V4.6Z\"\n fill=\"currentColor\"\n stroke=\"currentColor\"\n style=\"fill: #cebcbc; fill-opacity: 0.16\"\n ></path>\n </svg>\n </div>\n </div>\n </div>\n </div>\n <div class=\"ax-grid ax-grid-cols-[auto_1fr] ax-items-center ax-justify-items-start ax-gap-2\">\n <span>X:</span>\n <div class=\"ax-w-32\">\n <ax-select-box\n [dataSource]=\"justifyDataSource\"\n [value]=\"selectedJustify()\"\n (onValueChanged)=\"onJustifyChange($event)\"\n textField=\"label\"\n valueField=\"value\"\n placeholder=\"Choose...\"\n >\n </ax-select-box>\n </div>\n <span>Y:</span>\n <div class=\"ax-w-32\">\n <ax-select-box\n [dataSource]=\"alignDataSource\"\n [value]=\"selectedAlign()\"\n (onValueChanged)=\"onAlignChange($event)\"\n textField=\"label\"\n valueField=\"value\"\n placeholder=\"Choose...\"\n >\n </ax-select-box>\n </div>\n </div>\n </div>\n\n <span>Gap</span>\n <div class=\"ax-flex ax-gap-2 ax-justify-between\">\n @if(gapMode()==='both') {\n <ax-range-slider\n class=\"ax-w-32\"\n color=\"neutral\"\n [values]=\"gap().both\"\n (valuesChange)=\"setGap($event ?? 0, 'both')\"\n ></ax-range-slider>\n <ax-number-box\n [minValue]=\"0\"\n [maxValue]=\"999\"\n [value]=\"gap().both\"\n (onValueChanged)=\"setGap($event.value ?? 0, 'both')\"\n [changeOnScroll]=\"true\"\n class=\"ax-min-w-6\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n } @else {\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <span class=\"ax-text-xs\">Row</span>\n <ax-number-box\n [minValue]=\"0\"\n [maxValue]=\"999\"\n [value]=\"gap().x\"\n (onValueChanged)=\"setGap($event.value ?? 0, 'x')\"\n [changeOnScroll]=\"true\"\n class=\"ax-min-w-5\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n <span class=\"ax-text-xs\">Column</span>\n <ax-number-box\n [minValue]=\"0\"\n [maxValue]=\"999\"\n [value]=\"gap().y\"\n [changeOnScroll]=\"true\"\n (valueChange)=\"setGap($event ?? 0, 'y')\"\n class=\"ax-min-w-5\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n </div>\n }\n <button (click)=\"setGapMode()\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n @if(gapMode()==='both'){\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M5 7L5 5C5 3.34315 6.34315 2 8 2C9.65685 2 11 3.34315 11 5V7C11.5523 7 12 7.44772 12 8V12C12 12.5523 11.5523 13 11 13H5C4.44772 13 4 12.5523 4 12V8C4 7.44771 4.44772 7 5 7ZM6 5C6 3.89543 6.89543 3 8 3C9.10457 3 10 3.89543 10 5V7H6V5ZM5 12V8H11V12H5Z\"\n fill=\"currentColor\"\n ></path>\n }@else {\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M9 5C9 3.89543 9.89543 3 11 3C12.1046 3 13 3.89543 13 5V6H14V5C14 3.34315 12.6569 2 11 2C9.34315 2 8 3.34315 8 5V7H3C2.44772 7 2 7.44771 2 8V12C2 12.5523 2.44772 13 3 13H9C9.55228 13 10 12.5523 10 12V8C10 7.44772 9.55228 7 9 7V5ZM3 8H9V12H3V8Z\"\n fill=\"currentColor\"\n ></path>\n }\n </svg>\n </button>\n </div>\n</div>\n", styles: [".axp-grid-option ax-number-box:not(.ax-exclude) div:first-child{height:2rem!important;border-radius:.3rem!important;font-size:12px}.axp-grid-option ax-number-box:not(.ax-exclude) div:first-child input{padding:.25rem 0 .25rem .5rem!important}\n"] }]
9571
+ AXSelectionListModule,
9572
+ FormsModule,
9573
+ ], template: "<div class=\"axp-grid-breakpoints ax-pb-4\">\n <ax-selection-list\n [direction]=\"'horizontal'\"\n [items]=\"selectionItems\"\n [look]=\"'card'\"\n [customTemplate]=\"customTemplate\"\n [showControl]=\"false\"\n [ngModel]=\"currentBreakpoint()\"\n (onValueChanged)=\"changeBreakPoint($event)\"\n ></ax-selection-list>\n</div>\n<ng-template #customTemplate let-item>\n @let data = item.data;\n <div [class]=\"isBreakpointConfigured()[data.id] ? 'ax-text-primary-300' : ''\">\n {{ data.text }}\n </div>\n</ng-template>\n<ax-button\n color=\"primary\"\n text=\"Reset\"\n [disabled]=\"currentBreakpoint() === 'default'\"\n (click)=\"resetBreakpoint()\"\n></ax-button>\n\n<div class=\"axp-grid-option ax-grid ax-grid-cols-[auto_1fr] ax-pt-2 ax-gap-2 ax-items-center ax-justify-items-start\">\n <span>Grid</span>\n <div class=\"ax-flex ax-items-center ax-gap-1\">\n <span class=\"ax-text-xs\">Row</span>\n <ax-number-box\n [minValue]=\"1\"\n [maxValue]=\"12\"\n [value]=\"gridTemplateRows()\"\n (onValueChanged)=\"setRowOrColumn($event.value, 'row')\"\n [changeOnScroll]=\"true\"\n [showSpinButtons]=\"false\"\n class=\"ax-max-w-[4.45rem]\"\n ></ax-number-box>\n <span class=\"ax-text-xs\">Column</span>\n <ax-number-box\n [minValue]=\"1\"\n [maxValue]=\"12\"\n [value]=\"gridTemplateColumns()\"\n (onValueChanged)=\"setRowOrColumn($event.value, 'column')\"\n [changeOnScroll]=\"true\"\n [showSpinButtons]=\"false\"\n class=\"ax-max-w-[4.45rem]\"\n ></ax-number-box>\n <!-- <button>\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7 3.29289C7.18754 3.10536 7.44189 3 7.70711 3H10.5C10.7022 3 10.8845 3.12182 10.9619 3.30866C11.0393 3.4955 10.9966 3.71055 10.8536 3.85355L9 5.70711V7H10.2929L12.1464 5.14645C12.2894 5.00345 12.5045 4.96067 12.6913 5.03806C12.8782 5.11545 13 5.29777 13 5.5V8.29289C13 8.55811 12.8946 8.81246 12.7071 9L11 10.7071C10.8125 10.8946 10.5581 11 10.2929 11H7.70711L4.85355 13.8536C4.65829 14.0488 4.34171 14.0488 4.14645 13.8536L2.14645 11.8536C1.95118 11.6583 1.95118 11.3417 2.14645 11.1464L5 8.29289V5.70711C5 5.44189 5.10536 5.18754 5.29289 5L7 3.29289ZM9.29289 4H7.70711L6 5.70711L6 8.29289C6 8.55811 5.89464 8.81246 5.70711 9L3.20711 11.5L4.5 12.7929L7 10.2929C7.18754 10.1054 7.44189 10 7.70711 10H10.2929L12 8.29289V6.70711L10.8536 7.85355C10.7598 7.94732 10.6326 8 10.5 8H8.5C8.22386 8 8 7.77614 8 7.5V5.5C8 5.36739 8.05268 5.24021 8.14645 5.14645L9.29289 4Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n </button> -->\n </div>\n <!-- <span> Direction </span>\n <div>\n <ax-button-group [selection]=\"'single'\">\n <ax-button-group-item class=\"ax-w-24\" (onClick)=\"setGridDirection('row')\" [selected]=\"gridDirection() === 'row'\"\n ><ax-prefix\n ><svg\n data-wf-icon=\"FlexFlowWrapIcon\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M3 4H11V3H3V4ZM13.8536 11.1464L10.8536 8.14645L10.1464 8.85355L12.2929 11H3V12H12.2929L10.1464 14.1464L10.8536 14.8536L13.8536 11.8536L14.2071 11.5L13.8536 11.1464Z\"\n fill=\"currentColor\"\n ></path>\n <path\n opacity=\"0.4\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M3 10.7929L9.79289 4H11V4.20711L4.20711 11H3V10.7929Z\"\n fill=\"currentColor\"\n ></path></svg></ax-prefix\n ></ax-button-group-item>\n <ax-button-group-item\n class=\"ax-w-24\"\n (onClick)=\"setGridDirection('column')\"\n [selected]=\"gridDirection() === 'column'\"\n ><ax-prefix\n ><svg\n data-wf-icon=\"FlexFlowColumnWrapIcon\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4 3L4 11L3 11L3 3L4 3ZM11.1464 13.8536L8.14645 10.8536L8.85355 10.1464L11 12.2929L11 3L12 3L12 12.2929L14.1464 10.1464L14.8536 10.8536L11.8536 13.8536L11.5 14.2071L11.1464 13.8536Z\"\n fill=\"currentColor\"\n ></path>\n <path\n opacity=\"0.4\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M10.7929 3L4 9.79289L4 11L4.20711 11L11 4.20711L11 3L10.7929 3Z\"\n fill=\"currentColor\"\n ></path></svg></ax-prefix\n ></ax-button-group-item>\n </ax-button-group>\n </div> -->\n <span>Align</span>\n <div class=\"ax-flex ax-justify-between ax-gap-2 ax-items-center\">\n <div\n class=\"ax-relative ax-size-[62px] ax-bg-[rgb(30,30,30)] ax-border ax-border-white ax-border-opacity-15 ax-rounded\"\n >\n <div class=\"ax-absolute ax-inset-0 ax-grid ax-grid-cols-3 ax-grid-rows-3\">\n @for(side of gridSides; track side.value){\n <div\n [attr.aria-label]=\"side.label\"\n [attr.aria-value]=\"side.value\"\n class=\"ax-grid ax-place-content-center\"\n (mouseenter)=\"onHover(side)\"\n (mouseleave)=\"onHoverLeave()\"\n (click)=\"onClick(side)\"\n >\n @if (true) {\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"7\" y=\"7\" width=\"2\" height=\"2\" rx=\"1\" fill=\"currentColor\" fill-opacity=\"0.3\"></rect>\n </svg>\n }\n </div>\n }\n </div>\n @if(hoveredJustify() && hoveredAlign()){\n <div\n class=\"axp-grid-option-hover ax-absolute ax-inset-0 ax-grid ax-pointer-events-none ax-transition-all\"\n [style.justify-items]=\"hoveredJustify()\"\n [style.align-items]=\"hoveredAlign()\"\n >\n <div class=\"ax-flex ax-justify-center ax-items-center ax-min-w-5 ax-min-h-5\">\n <div class=\"ax-size-auto ax-z-[1] ax-rounded-lg ax-bg-[rgb(30,30,30)] ax-flex-none\">\n @if(clickedJustify()==='stretch' && clickedAlign()==='stretch') {} @else if(clickedJustify()==='stretch'){\n <svg\n width=\"60\"\n height=\"20\"\n viewBox=\"0 0 60 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style=\"color: white\"\n >\n <path\n d=\"M4.5 4.6a.15.15 0 0 1 .033-.1h50.934l.003.003a.15.15 0 0 1 .03.097v10.8a.15.15 0 0 1-.03.097l-.003.003H4.533l-.003-.003a.15.15 0 0 1-.03-.097V4.6Z\"\n fill=\"currentColor\"\n stroke=\"currentColor\"\n style=\"fill-opacity: 0.07; stroke-opacity: 0.25\"\n ></path>\n </svg>\n } @else if(clickedAlign()==='stretch'){\n <svg\n width=\"20\"\n height=\"60\"\n viewBox=\"0 0 20 60\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style=\"color: white\"\n >\n <path\n d=\"M4.6 4.5h10.8a.15.15 0 0 1 .097.03l.003.003v50.934l-.003.003a.15.15 0 0 1-.097.03H4.6a.15.15 0 0 1-.1-.033V4.533l.003-.003A.15.15 0 0 1 4.6 4.5Z\"\n fill=\"currentColor\"\n stroke=\"currentColor\"\n style=\"fill-opacity: 0.07; stroke-opacity: 0.25\"\n ></path>\n </svg>\n } @else{\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style=\"color: #efeaea\"\n >\n <path\n d=\"M4.5 4.6a.1.1 0 0 1 .1-.1h10.8a.1.1 0 0 1 .1.1v10.8a.1.1 0 0 1-.1.1H4.6a.1.1 0 0 1-.1-.1V4.6Z\"\n fill=\"currentColor\"\n stroke=\"currentColor\"\n style=\"stroke-opacity: 0.25; fill-opacity: 0.07\"\n class=\"hover:fill-opacity-20\"\n ></path>\n </svg>\n }\n </div>\n </div>\n </div>\n }\n\n <div\n class=\"axp-grid-option-active ax-absolute ax-inset-0 ax-grid ax-pointer-events-none ax-transition-all\"\n [style.justify-items]=\"clickedJustify()\"\n [style.align-items]=\"clickedAlign()\"\n >\n <div class=\"ax-flex ax-justify-center ax-items-center ax-min-w-5 ax-min-h-5\">\n <div class=\"ax-size-auto ax-z-[2] ax-rounded-lg ax-bg-[rgb(30,30,30)] ax-flex-none\">\n @if(clickedJustify()==='stretch' && clickedAlign()==='stretch') {\n <svg\n width=\"60\"\n height=\"60\"\n viewBox=\"0 0 60 60\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style=\"color: white\"\n >\n <path\n d=\"M55.5 55.48a.02.02 0 0 1-.02.02H4.52a.02.02 0 0 1-.02-.02V4.52a.02.02 0 0 1 .02-.02h50.96a.02.02 0 0 1 .02.02v50.96Z\"\n fill=\"currentColor\"\n stroke=\"currentColor\"\n style=\"fill-opacity: 0.16; stroke: white\"\n ></path>\n <path\n d=\"m26.354 20.354 3.146-3.147V29.5h-3v1h3v12.293l-3.146-3.147-.707.708L30 44.707l4.354-4.353-.707-.708-3.147 3.147V30.5h12.293l-3.147 3.147.708.707L44.707 30l-4.353-4.354-.708.708 3.147 3.146H30.5V17.207l3.146 3.147.707-.707L30 15.293l-4.354 4.354.707.707Z\"\n fill=\"currentColor\"\n style=\"fill-opacity: 0.25\"\n ></path>\n <path\n d=\"m17.207 30.5 3.146 3.147-.707.707L15.293 30l4.353-4.354.707.708-3.146 3.146H26.5v1h-9.293Z\"\n fill=\"currentColor\"\n style=\"fill-opacity: 0.25\"\n ></path>\n </svg>\n } @else if(clickedJustify()==='stretch'){\n <svg\n width=\"60\"\n height=\"20\"\n viewBox=\"0 0 60 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style=\"color: white\"\n >\n <path\n d=\"M4.5 4.6a.15.15 0 0 1 .033-.1h50.934l.003.003a.15.15 0 0 1 .03.097v10.8a.15.15 0 0 1-.03.097l-.003.003H4.533l-.003-.003a.15.15 0 0 1-.03-.097V4.6Z\"\n fill=\"currentColor\"\n stroke=\"currentColor\"\n style=\"fill-opacity: 0.16; stroke: white\"\n ></path>\n </svg>\n } @else if(clickedAlign()==='stretch'){\n <svg\n width=\"20\"\n height=\"60\"\n viewBox=\"0 0 20 60\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style=\"color: white\"\n >\n <path\n d=\"M4.6 4.5h10.8a.15.15 0 0 1 .097.03l.003.003v50.934l-.003.003a.15.15 0 0 1-.097.03H4.6a.15.15 0 0 1-.1-.033V4.533l.003-.003A.15.15 0 0 1 4.6 4.5Z\"\n fill=\"currentColor\"\n stroke=\"currentColor\"\n style=\"fill-opacity: 0.16; stroke: white\"\n ></path>\n </svg>\n } @else{\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style=\"color: #efeaea\"\n >\n <path\n d=\"M4.5 4.6a.1.1 0 0 1 .1-.1h10.8a.1.1 0 0 1 .1.1v10.8a.1.1 0 0 1-.1.1H4.6a.1.1 0 0 1-.1-.1V4.6Z\"\n fill=\"currentColor\"\n stroke=\"currentColor\"\n style=\"fill: #cebcbc; fill-opacity: 0.16\"\n ></path>\n </svg>\n }\n </div>\n </div>\n </div>\n </div>\n <div class=\"ax-grid ax-grid-cols-[auto_1fr] ax-items-center ax-justify-items-start ax-gap-2\">\n <span>X:</span>\n <div class=\"ax-w-32\">\n <ax-select-box\n [dataSource]=\"justifyDataSource\"\n [value]=\"selectedJustify()\"\n (onValueChanged)=\"onJustifyChange($event)\"\n textField=\"label\"\n valueField=\"value\"\n placeholder=\"Choose...\"\n >\n </ax-select-box>\n </div>\n <span>Y:</span>\n <div class=\"ax-w-32\">\n <ax-select-box\n [dataSource]=\"alignDataSource\"\n [value]=\"selectedAlign()\"\n (onValueChanged)=\"onAlignChange($event)\"\n textField=\"label\"\n valueField=\"value\"\n placeholder=\"Choose...\"\n >\n </ax-select-box>\n </div>\n </div>\n </div>\n\n <span>Gap</span>\n <div class=\"ax-flex ax-gap-2 ax-justify-between\">\n @if(gapMode()==='single') {\n <ax-range-slider\n class=\"ax-w-32\"\n color=\"neutral\"\n [values]=\"gap().x\"\n (valuesChange)=\"setGap($event ?? 0, 'both')\"\n ></ax-range-slider>\n <ax-number-box\n [minValue]=\"0\"\n [maxValue]=\"999\"\n [value]=\"gap().x\"\n (onValueChanged)=\"setGap($event.value ?? 0, 'both')\"\n [changeOnScroll]=\"true\"\n class=\"ax-min-w-6\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n } @else {\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <span class=\"ax-text-xs\">Row</span>\n <ax-number-box\n [minValue]=\"0\"\n [maxValue]=\"999\"\n [value]=\"gap().x\"\n (onValueChanged)=\"setGap($event.value ?? 0, 'x')\"\n [changeOnScroll]=\"true\"\n class=\"ax-min-w-5\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n <span class=\"ax-text-xs\">Column</span>\n <ax-number-box\n [minValue]=\"0\"\n [maxValue]=\"999\"\n [value]=\"gap().y\"\n [changeOnScroll]=\"true\"\n (valueChange)=\"setGap($event ?? 0, 'y')\"\n class=\"ax-min-w-5\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"!ax-text-xs !ax-px-1\">PX</ax-text></ax-suffix></ax-number-box\n >\n </div>\n }\n <button (click)=\"toggleGapMode()\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n @if(gapMode()==='single'){\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M5 7L5 5C5 3.34315 6.34315 2 8 2C9.65685 2 11 3.34315 11 5V7C11.5523 7 12 7.44772 12 8V12C12 12.5523 11.5523 13 11 13H5C4.44772 13 4 12.5523 4 12V8C4 7.44771 4.44772 7 5 7ZM6 5C6 3.89543 6.89543 3 8 3C9.10457 3 10 3.89543 10 5V7H6V5ZM5 12V8H11V12H5Z\"\n fill=\"currentColor\"\n ></path>\n }@else {\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M9 5C9 3.89543 9.89543 3 11 3C12.1046 3 13 3.89543 13 5V6H14V5C14 3.34315 12.6569 2 11 2C9.34315 2 8 3.34315 8 5V7H3C2.44772 7 2 7.44771 2 8V12C2 12.5523 2.44772 13 3 13H9C9.55228 13 10 12.5523 10 12V8C10 7.44772 9.55228 7 9 7V5ZM3 8H9V12H3V8Z\"\n fill=\"currentColor\"\n ></path>\n }\n </svg>\n </button>\n </div>\n</div>\n", styles: [".axp-grid-breakpoints{font-size:.25rem!important}.axp-grid-breakpoints>ax-selection-list:not(.ax-exclude)>ul{gap:.5rem!important}.axp-grid-breakpoints>ax-selection-list:not(.ax-exclude)>ul>li>label{padding:.25rem!important}.axp-grid-option ax-number-box:not(.ax-exclude) div:first-child{height:2rem!important;border-radius:.3rem!important;font-size:12px}.axp-grid-option ax-number-box:not(.ax-exclude) div:first-child input{padding:.25rem 0 .25rem .5rem!important}.axp-grid-option ax-range-slider:not(.ax-exclude){--ax-range-slider-base-thickness: .1rem}.axp-grid-option ax-range-slider:not(.ax-exclude) .ax-range-slider-handler{width:.75rem!important;height:.75rem!important}\n"] }]
9187
9574
  }] });
9188
9575
 
9189
9576
  var gridOptionsWidgetEditor_component = /*#__PURE__*/Object.freeze({
@@ -9312,7 +9699,7 @@ class AXPSpacingWidgetEditComponent extends AXPWidgetComponent {
9312
9699
  return { clientX: touch.clientX, clientY: touch.clientY };
9313
9700
  }
9314
9701
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSpacingWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
9315
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPSpacingWidgetEditComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "popover", first: true, predicate: AXPopoverComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"axp-spacing-box ax-flex ax-justify-center ax-items-center ax-pt-4 ax-pb-2\">\n <div class=\"axp-spacing-inner-box\">\n <div class=\"axp-spacing-margin-box\">\n <!--MARGIN SVG DEFINE-->\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"224\" height=\"112\" class=\"area\">\n <mask id=\"margin-mask\" width=\"224\" height=\"112\">\n <rect fill=\"#000\" height=\"112\" width=\"224\" x=\"0\" y=\"0\"></rect>\n <rect fill=\"#fff\" height=\"112\" rx=\"4\" width=\"224\" x=\"0\" y=\"0\"></rect>\n <rect fill=\"#000\" height=\"66\" rx=\"4\" width=\"154\" x=\"35\" y=\"23\"></rect>\n </mask>\n <defs>\n <linearGradient id=\"FuseLinearGradient\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop stop-color=\"white\"></stop>\n <stop offset=\"1\" stop-color=\"white\" stop-opacity=\"0\"></stop>\n </linearGradient>\n </defs>\n\n <!--MARGIN TOP SVG-->\n <g\n class=\"hover:ax-brightness-75\"\n style=\"cursor: s-resize\"\n (click)=\"openPopUp($event, 'margin', 'top')\"\n (mousedown)=\"listenToMove($event, 'margin', 'top')\"\n >\n <g>\n <path\n mode=\"delta\"\n fill=\"var(--color-background-1)\"\n d=\"\n m0,0\n h224\n l-36,24\n h-152\n l-36,-24z\n \"\n mask=\"url(#margin-mask)\"\n ></path>\n <path\n mode=\"delta\"\n fill=\"white\"\n d=\"\n m0,0\n h224\n l-36,24\n h-152\n l-36,-24z\n \"\n fill-opacity=\"0.12\"\n mask=\"url(#margin-mask)\"\n ></path>\n <path\n mode=\"delta\"\n fill=\"url(#FuseLinearGradient)\"\n d=\"\n m0,0\n h224\n l-36,24\n h-152\n l-36,-24z\n \"\n fill-opacity=\"0.02\"\n mask=\"url(#margin-mask)\"\n ></path>\n </g>\n </g>\n <!--MARGIN RIGHT SVG-->\n <g\n class=\"hover:ax-brightness-75\"\n style=\"cursor: s-resize\"\n (click)=\"openPopUp($event, 'margin', 'right')\"\n (mousedown)=\"listenToMove($event, 'margin', 'right')\"\n >\n <g>\n <path\n mode=\"delta\"\n fill=\"var(--color-background-1)\"\n d=\"\n m224,0\n v112\n l-36,-24\n v-64\n l36,-24z\n \"\n mask=\"url(#margin-mask)\"\n ></path>\n <path\n mode=\"delta\"\n fill=\"white\"\n d=\"\n m224,0\n v112\n l-36,-24\n v-64\n l36,-24z\n \"\n fill-opacity=\"0.094\"\n mask=\"url(#margin-mask)\"\n ></path>\n </g>\n </g>\n <!--MARGIN BOTTOM SVG-->\n <g\n class=\"hover:ax-brightness-75\"\n style=\"cursor: s-resize\"\n (click)=\"openPopUp($event, 'margin', 'bottom')\"\n (mousedown)=\"listenToMove($event, 'margin', 'bottom')\"\n >\n <g>\n <path\n mode=\"delta\"\n fill=\"var(--color-background-1)\"\n d=\"\n m0,112\n h224\n l-36,-24\n h-152\n l-36,24z\n \"\n mask=\"url(#margin-mask)\"\n ></path>\n <path\n mode=\"delta\"\n fill=\"white\"\n d=\"\n m0,112\n h224\n l-36,-24\n h-152\n l-36,24z\n \"\n fill-opacity=\"0.064\"\n mask=\"url(#margin-mask)\"\n ></path>\n </g>\n </g>\n <!--MARGIN LEFT SVG-->\n <g\n class=\"hover:ax-brightness-75\"\n style=\"cursor: s-resize\"\n (click)=\"openPopUp($event, 'margin', 'left')\"\n (mousedown)=\"listenToMove($event, 'margin', 'left')\"\n >\n <g>\n <path\n mode=\"delta\"\n fill=\"var(--color-background-1)\"\n d=\"\n m0,0\n v112\n l36,-24\n v-64\n l-36,-24z\n \"\n mask=\"url(#margin-mask)\"\n ></path>\n <path\n mode=\"delta\"\n fill=\"white\"\n d=\"\n m0,0\n v112\n l36,-24\n v-64\n l-36,-24z\n \"\n fill-opacity=\"0.094\"\n mask=\"url(#margin-mask)\"\n ></path>\n </g>\n </g>\n </svg>\n\n <!--MARGIN TOP VALUE-->\n <div tabindex=\"0\" class=\"axp-spacing-value-container\" style=\"grid-area: 1 / 2 / 2 / 3\">\n <div class=\"axp-spacing-value-field\" style=\"grid-area: 1 / 2 / 2 / 3\">\n <span>{{ calculatedValues().margin.top + ' ' + units().margin.top }}</span>\n </div>\n </div>\n\n <!--MARGIN RIGHT VALUE-->\n <div tabindex=\"0\" class=\"axp-spacing-value-container\" style=\"grid-area: 2 / 3 / 3 / 4\">\n <div class=\"axp-spacing-value-field\" style=\"grid-area: 2 / 3 / 3 / 4\">\n <span>{{ calculatedValues().margin.right + ' ' + units().margin.right }}</span>\n </div>\n </div>\n\n <!--MARGIN BOTTOM VALUE-->\n <div tabindex=\"0\" class=\"axp-spacing-value-container\" style=\"grid-area: 3 / 2 / 4 / 3\">\n <div class=\"axp-spacing-value-field\" style=\"grid-area: 3 / 2 / 4 / 3\">\n <span>{{ calculatedValues().margin.bottom + ' ' + units().margin.bottom }}</span>\n </div>\n </div>\n\n <!--MARGIN LEFT VALUE-->\n <div tabindex=\"0\" style=\"grid-area: 2 / 1 / 3 / 2\" class=\"axp-spacing-value-container\">\n <div class=\"axp-spacing-value-field\" style=\"grid-area: 2 / 1 / 3 / 2\">\n <span>{{ calculatedValues().margin.left + ' ' + units().margin.left }}</span>\n </div>\n </div>\n </div>\n\n <div class=\"axp-spacing-padding-box\">\n <!--SVG DEFINE-->\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"150\" height=\"62\" class=\"area\">\n <mask id=\"padding-mask\" width=\"150\" height=\"62\">\n <rect fill=\"#000\" height=\"60\" width=\"150\" x=\"0\" y=\"0\"></rect>\n <rect fill=\"#fff\" height=\"60\" rx=\"2\" width=\"150\" x=\"0\" y=\"0\"></rect>\n <rect fill=\"#000\" height=\"14\" rx=\"2\" width=\"80\" x=\"35\" y=\"23\"></rect>\n </mask>\n\n <!--PADDING TOP SVG-->\n <g\n class=\"hover:ax-brightness-75\"\n style=\"cursor: s-resize\"\n (click)=\"openPopUp($event, 'padding', 'top')\"\n (mousedown)=\"listenToMove($event, 'padding', 'top')\"\n >\n <g>\n <path\n mode=\"delta\"\n fill=\"var(--color-background-1)\"\n d=\"\n m0,0\n h150\n l-36,24\n h-78\n l-36,-24z\n \"\n mask=\"url(#padding-mask)\"\n ></path>\n <path\n mode=\"delta\"\n fill=\"white\"\n d=\"\n m0,0\n h150\n l-36,24\n h-78\n l-36,-24z\n \"\n fill-opacity=\"0.064\"\n mask=\"url(#padding-mask)\"\n ></path>\n </g>\n </g>\n\n <!--PADDING RIGHT SVG-->\n <g\n class=\"hover:ax-brightness-75\"\n style=\"cursor: s-resize\"\n (click)=\"openPopUp($event, 'padding', 'right')\"\n (mousedown)=\"listenToMove($event, 'padding', 'right')\"\n >\n <g>\n <path\n mode=\"delta\"\n fill=\"var(--color-background-1)\"\n d=\"\n m150,0\n v60\n l-36,-24\n v-12\n l36,-24z\n \"\n mask=\"url(#padding-mask)\"\n ></path>\n <path\n mode=\"delta\"\n fill=\"white\"\n d=\"\n m150,0\n v60\n l-36,-24\n v-12\n l36,-24z\n \"\n fill-opacity=\"0.094\"\n mask=\"url(#padding-mask)\"\n ></path>\n </g>\n </g>\n\n <!--PADDING BOTTOM SVG-->\n <g\n class=\"hover:ax-brightness-75\"\n style=\"cursor: s-resize\"\n (click)=\"openPopUp($event, 'padding', 'bottom')\"\n (mousedown)=\"listenToMove($event, 'padding', 'bottom')\"\n >\n <g>\n <path\n mode=\"delta\"\n fill=\"var(--color-background-1)\"\n d=\"\n m0,60\n h150\n l-36,-24\n h-78\n l-36,24z\n \"\n mask=\"url(#padding-mask)\"\n ></path>\n <path\n mode=\"delta\"\n fill=\"white\"\n d=\"\n m0,60\n h150\n l-36,-24\n h-78\n l-36,24z\n \"\n fill-opacity=\"0.12\"\n mask=\"url(#padding-mask)\"\n ></path>\n </g>\n </g>\n\n <!--PADDING LEFT SVG-->\n <g\n class=\"hover:ax-brightness-75\"\n style=\"cursor: s-resize\"\n (click)=\"openPopUp($event, 'padding', 'left')\"\n (mousedown)=\"listenToMove($event, 'padding', 'left')\"\n >\n <g>\n <path\n mode=\"delta\"\n fill=\"var(--color-background-1)\"\n d=\"\n m0,0\n v60\n l36,-24\n v-12\n l-36,-24z\n \"\n mask=\"url(#padding-mask)\"\n ></path>\n <path\n mode=\"delta\"\n fill=\"white\"\n d=\"\n m0,0\n v60\n l36,-24\n v-12\n l-36,-24z\n \"\n fill-opacity=\"0.094\"\n mask=\"url(#padding-mask)\"\n ></path>\n </g>\n </g>\n </svg>\n\n <!--PADDING TOP SVG-->\n <div tabindex=\"0\" class=\"axp-spacing-value-container\" style=\"grid-area: 1 / 2 / 2 / 3\">\n <div class=\"axp-spacing-value-field\" style=\"grid-area: 1 / 2 / 2 / 3\">\n <span>{{ this.calculatedValues().padding.top + ' ' + units().padding.top }}</span>\n </div>\n </div>\n\n <!--PADDING RIGHT SVG-->\n <div tabindex=\"0\" class=\"axp-spacing-value-container\" style=\"grid-area: 2 / 3 / 3 / 4\">\n <div class=\"axp-spacing-value-field\" style=\"grid-area: 2 / 3 / 3 / 4\">\n <span>{{ this.calculatedValues().padding.right + ' ' + units().padding.right }}</span>\n </div>\n </div>\n\n <!--PADDING BOTTOM SVG-->\n <div tabindex=\"0\" class=\"axp-spacing-value-container\" style=\"grid-area: 3 / 2 / 4 / 3\">\n <div class=\"axp-spacing-value-field\" style=\"grid-area: 3 / 2 / 4 / 3\">\n <span>{{ this.calculatedValues().padding.bottom + ' ' + units().padding.bottom }}</span>\n </div>\n </div>\n\n <!--PADDING LEFT SVG-->\n <div tabindex=\"0\" class=\"axp-spacing-value-container\" style=\"grid-area: 2 / 1 / 3 / 2\">\n <div class=\"axp-spacing-value-field\" style=\"grid-area: 2 / 1 / 3 / 2\">\n <span>{{ this.calculatedValues().padding.left + ' ' + units().padding.left }}</span>\n </div>\n </div>\n </div>\n\n <!--PADDING TEXT-->\n <svg class=\"axp-spacing-padding-text\" xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\">\n <text x=\"5\" y=\"10\" fill=\"white\" font-weight=\"500\" font-size=\"7\">PADDING</text>\n </svg>\n\n <!--MARGIN TEXT-->\n <svg class=\"axp-spacing-margin-text\" xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\">\n <text x=\"5\" y=\"10\" fill=\"white\" font-weight=\"500\" font-size=\"7\">MARGIN</text>\n </svg>\n </div>\n</div>\n\n<ng-template #template let-type=\"type\" let-side=\"side\" let-value=\"value\">\n <div\n class=\"axp-spacing-popup-container\"\n (keydown.control.b)=\"setSpacing(originalValues()[this.current().type][this.current().side], type, side)\"\n >\n <div class=\"axp-spacing-popover\">\n <!--SET EMPTY-->\n <div class=\"ax-size-4 ax-cursor-pointer\" (click)=\"setSpacing(0, type, side)\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path opacity=\"0.4\" d=\"M14 2L14 13L10 13L10 2L14 2Z\" fill=\"currentColor\" fill-opacity=\"0.67\"></path>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7.99995 7L7.99995 1H8.99995L8.99995 14H7.99995L7.99995 8L3.70706 8L5.85351 10.1464L5.1464 10.8536L1.79285 7.5L5.1464 4.14645L5.85351 4.85355L3.70706 7L7.99995 7Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n </div>\n\n <div class=\"ax-flex ax-justify-center ax-h-6 ax-flex-col\">\n <input\n type=\"range\"\n name=\"range\"\n [min]=\"0\"\n [max]=\"200\"\n [value]=\"this.calculatedValues()[this.current().type][this.current().side]\"\n (input)=\"setSpacing($event, type, side)\"\n />\n </div>\n <div>\n <!--INPUT NUMBER-->\n <div style=\"--local-gap: 8px\">\n <div\n style=\"\n gap: 8px;\n height: auto;\n display: flex;\n flex-flow: column;\n -webkit-box-align: stretch;\n align-items: stretch;\n -webkit-box-pack: start;\n position: relative;\n justify-content: stretch;\n width: 100%;\n -webkit-box-flex: 1;\n flex-grow: 1;\n \"\n >\n <div style=\"display: grid; grid-template-columns: 1fr auto; transform: translate3d(0px, 0px, 0px)\">\n <div\n data-legacy-styled=\"true\"\n style=\"\n grid-area: 1 / 1 / 2 / -1;\n align-items: stretch;\n background-color: var(--color-ui-input-background);\n border-color: var(--color-border-2);\n border-radius: 4px;\n border-style: solid;\n border-width: 1px;\n display: flex;\n flex: 0 1 auto;\n height: 24px;\n position: relative;\n \"\n >\n <input\n autocomplete=\"off\"\n data-wf-text-input=\"true\"\n name=\"spacing\"\n placeholder=\"\"\n aria-label=\"Edit spacing input\"\n type=\"text\"\n aria-disabled=\"false\"\n [value]=\"value\"\n (input)=\"setSpacing($event, type, side)\"\n style=\"\n padding-right: 20px;\n background-color: transparent;\n border-color: transparent;\n border-radius: 4px;\n border-style: solid;\n border-width: 0px;\n box-sizing: border-box;\n color: var(--color-text-primary);\n cursor: auto;\n display: block;\n font-family: inherit;\n font-size: inherit;\n height: 100%;\n line-height: 1;\n outline: transparent solid 2px;\n padding: 0px 4px;\n width: 100%;\n \"\n />\n </div>\n <div\n id=\"spacing-UnitSelect\"\n data-prevent-global-event-handlers=\"true\"\n tabindex=\"-1\"\n data-legacy-styled=\"true\"\n aria-expanded=\"false\"\n aria-haspopup=\"listbox\"\n data-focus=\"false\"\n style=\"\n border-color: transparent;\n outline: 0px;\n cursor: default;\n user-select: none;\n font-size: 9px;\n font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu,\n Cantarell, 'Helvetica Neue', Helvetica, Arial, 'Apple Color Emoji', 'Segoe UI Emoji',\n 'Segoe UI Symbol', sans-serif;\n line-height: 12px;\n letter-spacing: -0.115px;\n text-transform: none;\n color: var(--color-text-primary);\n place-self: center stretch;\n grid-area: 1 / 2 / 2 / 3;\n z-index: 1;\n min-width: 16px;\n border-radius: 1px;\n height: calc(100% - 2px);\n text-align: center;\n background: transparent;\n box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px;\n border-width: 0px;\n margin: 1px;\n position: relative;\n right: 2px;\n display: grid;\n grid-template-columns: auto;\n grid-auto-flow: column;\n justify-content: unset;\n width: 100%;\n flex-grow: unset;\n padding: 0px;\n box-sizing: border-box;\n --component-icon-color: var(--color-text-secondary);\n align-items: center;\n border-style: solid;\n \"\n >\n <div\n data-legacy-styled=\"true\"\n style=\"\n justify-self: start;\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n \"\n >\n PX\n <!--PX-->\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"axp-spacing-template-values\">\n @for(i of FixedValues; track $index){\n <div\n (click)=\"setSpacing(i.value, type, side)\"\n class=\"hover:!ax-bg-gradient-to-b hover:!ax-from-white/20 hover:!ax-to-white/5 !ax-cursor-pointer\"\n [class]=\"i.colspan ? 'ax-col-span-' + i.colspan : ''\"\n [class]=\"i.rowspan ? 'ax-row-span-' + i.rowspan : ''\"\n tabindex=\"0\"\n style=\"\n border-bottom-color: var(--color-border-1);\n border-left-color: var(--color-border-1);\n border-right-color: var(--color-border-1);\n border-top-color: var(--color-border-1);\n outline: 0px;\n cursor: default;\n user-select: none;\n padding: 0px;\n box-sizing: border-box;\n font-family: inherit;\n font-size: inherit;\n --component-icon-color: var(--color-text-secondary);\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n border-radius: 4px;\n color: var(--color-action-secondary-text);\n background: var(--color-action-secondary-background);\n border-width: 0px;\n border-style: solid;\n box-shadow: var(--box-shadows-action-secondary);\n align-self: center;\n \"\n >\n <div class=\"ax-truncate\">\n {{ i.label }}\n <span class=\"ax-text-xs ax-text-neutral-400\"> {{ units()[this.current().type][this.current().side] }}</span>\n </div>\n </div>\n }\n </div>\n </div>\n\n <div class=\"ax-h-[1px] ax-mt-1 ax-mb-1 ax-bg-border-1 ax-pointer-events-none\"></div>\n\n <div\n [class.ax-opacity-50]=\"\n originalValues()[this.current().type][this.current().side] ===\n calculatedValues()[this.current().type][this.current().side]\n \"\n (click)=\"setSpacing(originalValues()[this.current().type][this.current().side], type, side)\"\n tabindex=\"0\"\n class=\"ax-outline-none ax-select-none ax-py-1 ax-px-2 ax-my-1 ax-min-h-6 ax-cursor-pointer hover:!ax-bg-[#404040]\"\n >\n <div class=\"ax-flex ax-flex-row ax-items-center\">\n <div class=\"ax-min-w-6 ax-self-center ax-grow ax-basis-0\">\n <div class=\"ax-items-center ax-box-border ax-grid ax-grid-cols-[16px_1fr_auto] ax-gap-x-2 ax-gap-y-1\">\n <div class=\"ax-size-4\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M3.70712 5.00004L6.35357 2.35359L5.64646 1.64648L1.79291 5.50004L5.64646 9.35359L6.35357 8.64648L3.70712 6.00004H10C11.6569 6.00004 13 7.34318 13 9.00004C13 10.6569 11.6569 12 10 12H8.00001V13H10C12.2092 13 14 11.2092 14 9.00004C14 6.7909 12.2092 5.00004 10 5.00004H3.70712Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n </div>\n <div>Reset</div>\n </div>\n </div>\n <div class=\"ax-self-center\">\n <div\n class=\"ax-cursor-default ax-select-none ax-text-[11.5px] ax-font-normal ax-leading-4 ax-tracking-tight ax-text-secondary ax-justify-self-end ax-ml-[1px]\"\n >\n <span><kbd>Ctrl</kbd> + <kbd>B</kbd></span>\n </div>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n\n<ax-popover #popover [openOn]=\"'click'\" [offsetY]=\"10\" [closeOn]=\"'clickOut'\">\n <ng-container\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"{\n type: this.current().type,\n side: this.current().side,\n value: this.calculatedValues()[this.current().type][this.current().side]\n }\"\n ></ng-container>\n</ax-popover>\n", styles: [".axp-spacing-box{--color-text-secondary: rgba(255, 255, 255, .67);--color-ui-scrollbar-thumb: rgba(255, 255, 255, .67);--color-background-1: #292929;--color-text-secondary: white;--color-border-2: rgba(255, 255, 255, .16);--color-changed: rgb(167, 209, 255);--color-background: rgba(0, 106, 204, .18)}.axp-spacing-box .axp-spacing-inner-box{transform:scale(1.2);position:relative;display:grid;width:224px;height:112px;grid-template-columns:36px 1px 36px 1fr 36px 1px 36px;grid-template-rows:24px 2px 24px 1fr 24px 2px 24px;outline-style:none;cursor:default;-webkit-user-select:none;-moz-user-select:-moz-none;user-select:none}.axp-spacing-box .axp-spacing-inner-box .axp-spacing-value-container{pointer-events:none;border:none;outline:0px;cursor:default;-webkit-user-select:none;-moz-user-select:-moz-none;user-select:none;display:flex;align-items:center;justify-content:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;place-self:center;padding:2px;height:auto;width:auto;font-family:inherit;font-size:inherit;position:relative;border-radius:4px;color:var(--color-text-secondary);background:transparent;box-sizing:border-box;box-shadow:none}.axp-spacing-box .axp-spacing-inner-box .axp-spacing-value-container .axp-spacing-value-field{cursor:default;-webkit-user-select:none;-moz-user-select:-moz-none;user-select:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:400;line-height:10px;letter-spacing:-.115px;display:flex;color:var(--color-text-secondary);background:transparent;padding:2px;margin:0;border-radius:2px;max-width:100%;box-sizing:content-box;place-self:center;position:relative;opacity:1;align-items:center;justify-content:center}.axp-spacing-box .axp-spacing-inner-box .axp-spacing-margin-box{border-radius:4px;grid-area:1/1/-1/-1;display:grid;grid-template-columns:36px 1fr 36px;grid-template-rows:24px minmax(8px,1fr) 24px;justify-items:center;width:224px;height:112px}.axp-spacing-box .axp-spacing-inner-box .axp-spacing-padding-box{border-radius:4px;grid-area:3/3/span 3/span 3;display:grid;grid-template-columns:36px 1fr 36px;grid-template-rows:24px minmax(8px,1fr) 24px;justify-items:center;width:150px;height:60px}.axp-spacing-box .axp-spacing-inner-box .axp-spacing-padding-text{grid-area:3/3/span 3/span 3;pointer-events:none;position:relative}.axp-spacing-box .axp-spacing-inner-box .axp-spacing-margin-text{grid-area:1/1/-1/-1;pointer-events:none;position:relative}.axp-spacing-popup-container{--color-action-secondary-text: white;--color-action-secondary-background: linear-gradient( 180deg, rgba(255, 255, 255, .13) 0%, rgba(255, 255, 255, .11) 100% );--box-shadows-action-secondary: 0px .5px 1px rgba(0, 0, 0, .8), inset 0px .5px .5px rgba(255, 255, 255, .12);--color-border-1: rgba(255, 255, 255, .13);max-width:239px;min-width:201px;background:#353535;border-radius:.5rem;color:var(--color-text-secondary, white);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,Helvetica,Arial,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,sans-serif;font-size:11.5px;line-height:16px}.axp-spacing-popup-container .axp-spacing-popover{display:grid;grid-template-columns:16px 1fr 56px;grid-template-rows:24px 1fr;align-items:center;gap:8px;width:241px;padding:8px}.axp-spacing-popup-container .axp-spacing-popover .axp-spacing-template-values{display:grid;grid-area:2/1/3/-1;grid-template-columns:repeat(5,1fr);grid-template-rows:24px 24px;gap:4px}.axp-spacing-popup-container .axp-spacing-popover input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;cursor:pointer;outline:none;overflow:hidden;border-radius:12px}.axp-spacing-popup-container .axp-spacing-popover input[type=range]::-webkit-slider-runnable-track{height:10px;background:#ccc;border-radius:12px}.axp-spacing-popup-container .axp-spacing-popover input[type=range]::-moz-range-track{height:10px;background:#ccc;border-radius:12px}.axp-spacing-popup-container .axp-spacing-popover input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:10px;width:10px;background-color:#fff;border-radius:50%;border:1px solid #353535;box-shadow:-407px 0 0 400px rgba(41,41,41,.44)}.axp-spacing-popup-container .axp-spacing-popover input[type=range]::-moz-range-thumb{height:10px;width:10px;background-color:#fff;border-radius:50%;border:1px solid #353535;box-shadow:-407px 0 0 400px rgba(41,41,41,.44)}.area{grid-area:1/1/-1/-1;overflow:hidden;border-radius:2px;filter:drop-shadow(rgba(255,255,255,.2) 0px -.5px 0px) drop-shadow(rgba(0,0,0,.4) 0px 0px 1px) drop-shadow(rgba(0,0,0,.2) 0px 1px 0px)}\n"], dependencies: [{ kind: "ngmodule", type: AXNumberBoxModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXCheckBoxModule }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i1$6.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: AXRangeSliderModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9702
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPSpacingWidgetEditComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "popover", first: true, predicate: AXPopoverComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"axp-spacing-box ax-flex ax-justify-center ax-items-center ax-pt-4 ax-pb-2\">\n <div class=\"axp-spacing-inner-box\">\n <div class=\"axp-spacing-margin-box\">\n <!--MARGIN SVG DEFINE-->\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"224\" height=\"112\" class=\"area\">\n <mask id=\"margin-mask\" width=\"224\" height=\"112\">\n <rect fill=\"#000\" height=\"112\" width=\"224\" x=\"0\" y=\"0\"></rect>\n <rect fill=\"#fff\" height=\"112\" rx=\"4\" width=\"224\" x=\"0\" y=\"0\"></rect>\n <rect fill=\"#000\" height=\"66\" rx=\"4\" width=\"154\" x=\"35\" y=\"23\"></rect>\n </mask>\n <defs>\n <linearGradient id=\"FuseLinearGradient\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop stop-color=\"white\"></stop>\n <stop offset=\"1\" stop-color=\"white\" stop-opacity=\"0\"></stop>\n </linearGradient>\n </defs>\n\n <!--MARGIN TOP SVG-->\n <g\n class=\"hover:ax-brightness-75\"\n style=\"cursor: s-resize\"\n (click)=\"openPopUp($event, 'margin', 'top')\"\n (mousedown)=\"listenToMove($event, 'margin', 'top')\"\n >\n <g>\n <path\n mode=\"delta\"\n fill=\"var(--color-background-1)\"\n d=\"\n m0,0\n h224\n l-36,24\n h-152\n l-36,-24z\n \"\n mask=\"url(#margin-mask)\"\n ></path>\n <path\n mode=\"delta\"\n fill=\"white\"\n d=\"\n m0,0\n h224\n l-36,24\n h-152\n l-36,-24z\n \"\n fill-opacity=\"0.12\"\n mask=\"url(#margin-mask)\"\n ></path>\n <path\n mode=\"delta\"\n fill=\"url(#FuseLinearGradient)\"\n d=\"\n m0,0\n h224\n l-36,24\n h-152\n l-36,-24z\n \"\n fill-opacity=\"0.02\"\n mask=\"url(#margin-mask)\"\n ></path>\n </g>\n </g>\n <!--MARGIN RIGHT SVG-->\n <g\n class=\"hover:ax-brightness-75\"\n style=\"cursor: s-resize\"\n (click)=\"openPopUp($event, 'margin', 'right')\"\n (mousedown)=\"listenToMove($event, 'margin', 'right')\"\n >\n <g>\n <path\n mode=\"delta\"\n fill=\"var(--color-background-1)\"\n d=\"\n m224,0\n v112\n l-36,-24\n v-64\n l36,-24z\n \"\n mask=\"url(#margin-mask)\"\n ></path>\n <path\n mode=\"delta\"\n fill=\"white\"\n d=\"\n m224,0\n v112\n l-36,-24\n v-64\n l36,-24z\n \"\n fill-opacity=\"0.094\"\n mask=\"url(#margin-mask)\"\n ></path>\n </g>\n </g>\n <!--MARGIN BOTTOM SVG-->\n <g\n class=\"hover:ax-brightness-75\"\n style=\"cursor: s-resize\"\n (click)=\"openPopUp($event, 'margin', 'bottom')\"\n (mousedown)=\"listenToMove($event, 'margin', 'bottom')\"\n >\n <g>\n <path\n mode=\"delta\"\n fill=\"var(--color-background-1)\"\n d=\"\n m0,112\n h224\n l-36,-24\n h-152\n l-36,24z\n \"\n mask=\"url(#margin-mask)\"\n ></path>\n <path\n mode=\"delta\"\n fill=\"white\"\n d=\"\n m0,112\n h224\n l-36,-24\n h-152\n l-36,24z\n \"\n fill-opacity=\"0.064\"\n mask=\"url(#margin-mask)\"\n ></path>\n </g>\n </g>\n <!--MARGIN LEFT SVG-->\n <g\n class=\"hover:ax-brightness-75\"\n style=\"cursor: s-resize\"\n (click)=\"openPopUp($event, 'margin', 'left')\"\n (mousedown)=\"listenToMove($event, 'margin', 'left')\"\n >\n <g>\n <path\n mode=\"delta\"\n fill=\"var(--color-background-1)\"\n d=\"\n m0,0\n v112\n l36,-24\n v-64\n l-36,-24z\n \"\n mask=\"url(#margin-mask)\"\n ></path>\n <path\n mode=\"delta\"\n fill=\"white\"\n d=\"\n m0,0\n v112\n l36,-24\n v-64\n l-36,-24z\n \"\n fill-opacity=\"0.094\"\n mask=\"url(#margin-mask)\"\n ></path>\n </g>\n </g>\n </svg>\n\n <!--MARGIN TOP VALUE-->\n <div tabindex=\"0\" class=\"axp-spacing-value-container\" style=\"grid-area: 1 / 2 / 2 / 3\">\n <div class=\"axp-spacing-value-field\" style=\"grid-area: 1 / 2 / 2 / 3\">\n <span>{{ calculatedValues().margin.top + ' ' + units().margin.top }}</span>\n </div>\n </div>\n\n <!--MARGIN RIGHT VALUE-->\n <div tabindex=\"0\" class=\"axp-spacing-value-container\" style=\"grid-area: 2 / 3 / 3 / 4\">\n <div class=\"axp-spacing-value-field\" style=\"grid-area: 2 / 3 / 3 / 4\">\n <span>{{ calculatedValues().margin.right + ' ' + units().margin.right }}</span>\n </div>\n </div>\n\n <!--MARGIN BOTTOM VALUE-->\n <div tabindex=\"0\" class=\"axp-spacing-value-container\" style=\"grid-area: 3 / 2 / 4 / 3\">\n <div class=\"axp-spacing-value-field\" style=\"grid-area: 3 / 2 / 4 / 3\">\n <span>{{ calculatedValues().margin.bottom + ' ' + units().margin.bottom }}</span>\n </div>\n </div>\n\n <!--MARGIN LEFT VALUE-->\n <div tabindex=\"0\" style=\"grid-area: 2 / 1 / 3 / 2\" class=\"axp-spacing-value-container\">\n <div class=\"axp-spacing-value-field\" style=\"grid-area: 2 / 1 / 3 / 2\">\n <span>{{ calculatedValues().margin.left + ' ' + units().margin.left }}</span>\n </div>\n </div>\n </div>\n\n <div class=\"axp-spacing-padding-box\">\n <!--SVG DEFINE-->\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"150\" height=\"62\" class=\"area\">\n <mask id=\"padding-mask\" width=\"150\" height=\"62\">\n <rect fill=\"#000\" height=\"60\" width=\"150\" x=\"0\" y=\"0\"></rect>\n <rect fill=\"#fff\" height=\"60\" rx=\"2\" width=\"150\" x=\"0\" y=\"0\"></rect>\n <rect fill=\"#000\" height=\"14\" rx=\"2\" width=\"80\" x=\"35\" y=\"23\"></rect>\n </mask>\n\n <!--PADDING TOP SVG-->\n <g\n class=\"hover:ax-brightness-75\"\n style=\"cursor: s-resize\"\n (click)=\"openPopUp($event, 'padding', 'top')\"\n (mousedown)=\"listenToMove($event, 'padding', 'top')\"\n >\n <g>\n <path\n mode=\"delta\"\n fill=\"var(--color-background-1)\"\n d=\"\n m0,0\n h150\n l-36,24\n h-78\n l-36,-24z\n \"\n mask=\"url(#padding-mask)\"\n ></path>\n <path\n mode=\"delta\"\n fill=\"white\"\n d=\"\n m0,0\n h150\n l-36,24\n h-78\n l-36,-24z\n \"\n fill-opacity=\"0.064\"\n mask=\"url(#padding-mask)\"\n ></path>\n </g>\n </g>\n\n <!--PADDING RIGHT SVG-->\n <g\n class=\"hover:ax-brightness-75\"\n style=\"cursor: s-resize\"\n (click)=\"openPopUp($event, 'padding', 'right')\"\n (mousedown)=\"listenToMove($event, 'padding', 'right')\"\n >\n <g>\n <path\n mode=\"delta\"\n fill=\"var(--color-background-1)\"\n d=\"\n m150,0\n v60\n l-36,-24\n v-12\n l36,-24z\n \"\n mask=\"url(#padding-mask)\"\n ></path>\n <path\n mode=\"delta\"\n fill=\"white\"\n d=\"\n m150,0\n v60\n l-36,-24\n v-12\n l36,-24z\n \"\n fill-opacity=\"0.094\"\n mask=\"url(#padding-mask)\"\n ></path>\n </g>\n </g>\n\n <!--PADDING BOTTOM SVG-->\n <g\n class=\"hover:ax-brightness-75\"\n style=\"cursor: s-resize\"\n (click)=\"openPopUp($event, 'padding', 'bottom')\"\n (mousedown)=\"listenToMove($event, 'padding', 'bottom')\"\n >\n <g>\n <path\n mode=\"delta\"\n fill=\"var(--color-background-1)\"\n d=\"\n m0,60\n h150\n l-36,-24\n h-78\n l-36,24z\n \"\n mask=\"url(#padding-mask)\"\n ></path>\n <path\n mode=\"delta\"\n fill=\"white\"\n d=\"\n m0,60\n h150\n l-36,-24\n h-78\n l-36,24z\n \"\n fill-opacity=\"0.12\"\n mask=\"url(#padding-mask)\"\n ></path>\n </g>\n </g>\n\n <!--PADDING LEFT SVG-->\n <g\n class=\"hover:ax-brightness-75\"\n style=\"cursor: s-resize\"\n (click)=\"openPopUp($event, 'padding', 'left')\"\n (mousedown)=\"listenToMove($event, 'padding', 'left')\"\n >\n <g>\n <path\n mode=\"delta\"\n fill=\"var(--color-background-1)\"\n d=\"\n m0,0\n v60\n l36,-24\n v-12\n l-36,-24z\n \"\n mask=\"url(#padding-mask)\"\n ></path>\n <path\n mode=\"delta\"\n fill=\"white\"\n d=\"\n m0,0\n v60\n l36,-24\n v-12\n l-36,-24z\n \"\n fill-opacity=\"0.094\"\n mask=\"url(#padding-mask)\"\n ></path>\n </g>\n </g>\n </svg>\n\n <!--PADDING TOP SVG-->\n <div tabindex=\"0\" class=\"axp-spacing-value-container\" style=\"grid-area: 1 / 2 / 2 / 3\">\n <div class=\"axp-spacing-value-field\" style=\"grid-area: 1 / 2 / 2 / 3\">\n <span>{{ this.calculatedValues().padding.top + ' ' + units().padding.top }}</span>\n </div>\n </div>\n\n <!--PADDING RIGHT SVG-->\n <div tabindex=\"0\" class=\"axp-spacing-value-container\" style=\"grid-area: 2 / 3 / 3 / 4\">\n <div class=\"axp-spacing-value-field\" style=\"grid-area: 2 / 3 / 3 / 4\">\n <span>{{ this.calculatedValues().padding.right + ' ' + units().padding.right }}</span>\n </div>\n </div>\n\n <!--PADDING BOTTOM SVG-->\n <div tabindex=\"0\" class=\"axp-spacing-value-container\" style=\"grid-area: 3 / 2 / 4 / 3\">\n <div class=\"axp-spacing-value-field\" style=\"grid-area: 3 / 2 / 4 / 3\">\n <span>{{ this.calculatedValues().padding.bottom + ' ' + units().padding.bottom }}</span>\n </div>\n </div>\n\n <!--PADDING LEFT SVG-->\n <div tabindex=\"0\" class=\"axp-spacing-value-container\" style=\"grid-area: 2 / 1 / 3 / 2\">\n <div class=\"axp-spacing-value-field\" style=\"grid-area: 2 / 1 / 3 / 2\">\n <span>{{ this.calculatedValues().padding.left + ' ' + units().padding.left }}</span>\n </div>\n </div>\n </div>\n\n <!--PADDING TEXT-->\n <svg class=\"axp-spacing-padding-text\" xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\">\n <text x=\"5\" y=\"10\" fill=\"white\" font-weight=\"500\" font-size=\"7\">PADDING</text>\n </svg>\n\n <!--MARGIN TEXT-->\n <svg class=\"axp-spacing-margin-text\" xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\">\n <text x=\"5\" y=\"10\" fill=\"white\" font-weight=\"500\" font-size=\"7\">MARGIN</text>\n </svg>\n </div>\n</div>\n\n<ng-template #template let-type=\"type\" let-side=\"side\" let-value=\"value\">\n <div\n class=\"axp-spacing-popup-container\"\n (keydown.control.b)=\"setSpacing(originalValues()[this.current().type][this.current().side], type, side)\"\n >\n <div class=\"axp-spacing-popover\">\n <!--SET EMPTY-->\n <div class=\"ax-size-4 ax-cursor-pointer\" (click)=\"setSpacing(0, type, side)\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path opacity=\"0.4\" d=\"M14 2L14 13L10 13L10 2L14 2Z\" fill=\"currentColor\" fill-opacity=\"0.67\"></path>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7.99995 7L7.99995 1H8.99995L8.99995 14H7.99995L7.99995 8L3.70706 8L5.85351 10.1464L5.1464 10.8536L1.79285 7.5L5.1464 4.14645L5.85351 4.85355L3.70706 7L7.99995 7Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n </div>\n\n <div class=\"ax-flex ax-justify-center ax-h-6 ax-flex-col\">\n <input\n type=\"range\"\n name=\"range\"\n [min]=\"0\"\n [max]=\"200\"\n [value]=\"this.calculatedValues()[this.current().type][this.current().side]\"\n (input)=\"setSpacing($event, type, side)\"\n />\n </div>\n <div>\n <!--INPUT NUMBER-->\n <div style=\"--local-gap: 8px\">\n <div\n style=\"\n gap: 8px;\n height: auto;\n display: flex;\n flex-flow: column;\n -webkit-box-align: stretch;\n align-items: stretch;\n -webkit-box-pack: start;\n position: relative;\n justify-content: stretch;\n width: 100%;\n -webkit-box-flex: 1;\n flex-grow: 1;\n \"\n >\n <div style=\"display: grid; grid-template-columns: 1fr auto; transform: translate3d(0px, 0px, 0px)\">\n <div\n data-legacy-styled=\"true\"\n style=\"\n grid-area: 1 / 1 / 2 / -1;\n align-items: stretch;\n background-color: var(--color-ui-input-background);\n border-color: var(--color-border-2);\n border-radius: 4px;\n border-style: solid;\n border-width: 1px;\n display: flex;\n flex: 0 1 auto;\n height: 24px;\n position: relative;\n \"\n >\n <input\n autocomplete=\"off\"\n data-wf-text-input=\"true\"\n name=\"spacing\"\n placeholder=\"\"\n aria-label=\"Edit spacing input\"\n type=\"text\"\n aria-disabled=\"false\"\n [value]=\"value\"\n (input)=\"setSpacing($event, type, side)\"\n style=\"\n padding-right: 20px;\n background-color: transparent;\n border-color: transparent;\n border-radius: 4px;\n border-style: solid;\n border-width: 0px;\n box-sizing: border-box;\n color: var(--color-text-primary);\n cursor: auto;\n display: block;\n font-family: inherit;\n font-size: inherit;\n height: 100%;\n line-height: 1;\n outline: transparent solid 2px;\n padding: 0px 4px;\n width: 100%;\n \"\n />\n </div>\n <div\n id=\"spacing-UnitSelect\"\n data-prevent-global-event-handlers=\"true\"\n tabindex=\"-1\"\n data-legacy-styled=\"true\"\n aria-expanded=\"false\"\n aria-haspopup=\"listbox\"\n data-focus=\"false\"\n style=\"\n border-color: transparent;\n outline: 0px;\n cursor: default;\n user-select: none;\n font-size: 9px;\n font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu,\n Cantarell, 'Helvetica Neue', Helvetica, Arial, 'Apple Color Emoji', 'Segoe UI Emoji',\n 'Segoe UI Symbol', sans-serif;\n line-height: 12px;\n letter-spacing: -0.115px;\n text-transform: none;\n color: var(--color-text-primary);\n place-self: center stretch;\n grid-area: 1 / 2 / 2 / 3;\n z-index: 1;\n min-width: 16px;\n border-radius: 1px;\n height: calc(100% - 2px);\n text-align: center;\n background: transparent;\n box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px;\n border-width: 0px;\n margin: 1px;\n position: relative;\n right: 2px;\n display: grid;\n grid-template-columns: auto;\n grid-auto-flow: column;\n justify-content: unset;\n width: 100%;\n flex-grow: unset;\n padding: 0px;\n box-sizing: border-box;\n --component-icon-color: var(--color-text-secondary);\n align-items: center;\n border-style: solid;\n \"\n >\n <div\n data-legacy-styled=\"true\"\n style=\"\n justify-self: start;\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n \"\n >\n PX\n <!--PX-->\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"axp-spacing-template-values\">\n @for(i of FixedValues; track $index){\n <div\n (click)=\"setSpacing(i.value, type, side)\"\n class=\"hover:!ax-bg-gradient-to-b hover:!ax-from-white/20 hover:!ax-to-white/5 !ax-cursor-pointer\"\n [class]=\"i.colspan ? 'ax-col-span-' + i.colspan : ''\"\n [class]=\"i.rowspan ? 'ax-row-span-' + i.rowspan : ''\"\n tabindex=\"0\"\n style=\"\n border-bottom-color: var(--color-border-1);\n border-left-color: var(--color-border-1);\n border-right-color: var(--color-border-1);\n border-top-color: var(--color-border-1);\n outline: 0px;\n cursor: default;\n user-select: none;\n padding: 0px;\n box-sizing: border-box;\n font-family: inherit;\n font-size: inherit;\n --component-icon-color: var(--color-text-secondary);\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n border-radius: 4px;\n color: var(--color-action-secondary-text);\n background: var(--color-action-secondary-background);\n border-width: 0px;\n border-style: solid;\n box-shadow: var(--box-shadows-action-secondary);\n align-self: center;\n \"\n >\n <div class=\"ax-truncate\">\n {{ i.label }}\n <span class=\"ax-text-xs ax-text-neutral-400\"> {{ units()[this.current().type][this.current().side] }}</span>\n </div>\n </div>\n }\n </div>\n </div>\n\n <div class=\"ax-h-[1px] ax-mt-1 ax-mb-1 ax-bg-border-1 ax-pointer-events-none\"></div>\n\n <div\n [class.ax-opacity-50]=\"\n originalValues()[this.current().type][this.current().side] ===\n calculatedValues()[this.current().type][this.current().side]\n \"\n (click)=\"setSpacing(originalValues()[this.current().type][this.current().side], type, side)\"\n tabindex=\"0\"\n class=\"ax-outline-none ax-select-none ax-py-1 ax-px-2 ax-my-1 ax-min-h-6 ax-cursor-pointer hover:!ax-bg-[#404040]\"\n >\n <div class=\"ax-flex ax-flex-row ax-items-center\">\n <div class=\"ax-min-w-6 ax-self-center ax-grow ax-basis-0\">\n <div class=\"ax-items-center ax-box-border ax-grid ax-grid-cols-[16px_1fr_auto] ax-gap-x-2 ax-gap-y-1\">\n <div class=\"ax-size-4\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M3.70712 5.00004L6.35357 2.35359L5.64646 1.64648L1.79291 5.50004L5.64646 9.35359L6.35357 8.64648L3.70712 6.00004H10C11.6569 6.00004 13 7.34318 13 9.00004C13 10.6569 11.6569 12 10 12H8.00001V13H10C12.2092 13 14 11.2092 14 9.00004C14 6.7909 12.2092 5.00004 10 5.00004H3.70712Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n </div>\n <div>Reset</div>\n </div>\n </div>\n <div class=\"ax-self-center\">\n <div\n class=\"ax-cursor-default ax-select-none ax-text-[11.5px] ax-font-normal ax-leading-4 ax-tracking-tight ax-text-secondary ax-justify-self-end ax-ml-[1px]\"\n >\n <span><kbd>Ctrl</kbd> + <kbd>B</kbd></span>\n </div>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n\n<ax-popover #popover [openOn]=\"'click'\" [offsetY]=\"10\" [closeOn]=\"'clickOut'\">\n <ng-container\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"{\n type: this.current().type,\n side: this.current().side,\n value: this.calculatedValues()[this.current().type][this.current().side]\n }\"\n ></ng-container>\n</ax-popover>\n", styles: [".axp-spacing-box{--color-text-secondary: rgba(255, 255, 255, .67);--color-ui-scrollbar-thumb: rgba(255, 255, 255, .67);--color-background-1: #292929;--color-text-secondary: white;--color-border-2: rgba(255, 255, 255, .16);--color-changed: rgb(167, 209, 255);--color-background: rgba(0, 106, 204, .18)}.axp-spacing-box .axp-spacing-inner-box{transform:scale(1.2);position:relative;display:grid;width:224px;height:112px;grid-template-columns:36px 1px 36px 1fr 36px 1px 36px;grid-template-rows:24px 2px 24px 1fr 24px 2px 24px;outline-style:none;cursor:default;-webkit-user-select:none;-moz-user-select:-moz-none;user-select:none}.axp-spacing-box .axp-spacing-inner-box .axp-spacing-value-container{pointer-events:none;border:none;outline:0px;cursor:default;-webkit-user-select:none;-moz-user-select:-moz-none;user-select:none;display:flex;align-items:center;justify-content:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;place-self:center;padding:2px;height:auto;width:auto;font-family:inherit;font-size:inherit;position:relative;border-radius:4px;color:var(--color-text-secondary);background:transparent;box-sizing:border-box;box-shadow:none}.axp-spacing-box .axp-spacing-inner-box .axp-spacing-value-container .axp-spacing-value-field{cursor:default;-webkit-user-select:none;-moz-user-select:-moz-none;user-select:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:400;line-height:10px;letter-spacing:-.115px;display:flex;color:var(--color-text-secondary);background:transparent;padding:2px;margin:0;border-radius:2px;max-width:100%;box-sizing:content-box;place-self:center;position:relative;opacity:1;align-items:center;justify-content:center}.axp-spacing-box .axp-spacing-inner-box .axp-spacing-margin-box{border-radius:4px;grid-area:1/1/-1/-1;display:grid;grid-template-columns:36px 1fr 36px;grid-template-rows:24px minmax(8px,1fr) 24px;justify-items:center;width:224px;height:112px}.axp-spacing-box .axp-spacing-inner-box .axp-spacing-padding-box{border-radius:4px;grid-area:3/3/span 3/span 3;display:grid;grid-template-columns:36px 1fr 36px;grid-template-rows:24px minmax(8px,1fr) 24px;justify-items:center;width:150px;height:60px}.axp-spacing-box .axp-spacing-inner-box .axp-spacing-padding-text{grid-area:3/3/span 3/span 3;pointer-events:none;position:relative}.axp-spacing-box .axp-spacing-inner-box .axp-spacing-margin-text{grid-area:1/1/-1/-1;pointer-events:none;position:relative}.axp-spacing-popup-container{--color-action-secondary-text: white;--color-action-secondary-background: linear-gradient( 180deg, rgba(255, 255, 255, .13) 0%, rgba(255, 255, 255, .11) 100% );--box-shadows-action-secondary: 0px .5px 1px rgba(0, 0, 0, .8), inset 0px .5px .5px rgba(255, 255, 255, .12);--color-border-1: rgba(255, 255, 255, .13);max-width:239px;min-width:201px;background:#353535;border-radius:.5rem;color:var(--color-text-secondary, white);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,Helvetica,Arial,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,sans-serif;font-size:11.5px;line-height:16px}.axp-spacing-popup-container .axp-spacing-popover{display:grid;grid-template-columns:16px 1fr 56px;grid-template-rows:24px 1fr;align-items:center;gap:8px;width:241px;padding:8px}.axp-spacing-popup-container .axp-spacing-popover .axp-spacing-template-values{display:grid;grid-area:2/1/3/-1;grid-template-columns:repeat(5,1fr);grid-template-rows:24px 24px;gap:4px}.axp-spacing-popup-container .axp-spacing-popover input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;cursor:pointer;outline:none;overflow:hidden;border-radius:12px}.axp-spacing-popup-container .axp-spacing-popover input[type=range]::-webkit-slider-runnable-track{height:10px;background:#ccc;border-radius:12px}.axp-spacing-popup-container .axp-spacing-popover input[type=range]::-moz-range-track{height:10px;background:#ccc;border-radius:12px}.axp-spacing-popup-container .axp-spacing-popover input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:10px;width:10px;background-color:#fff;border-radius:50%;border:1px solid #353535;box-shadow:-407px 0 0 400px rgba(41,41,41,.44)}.axp-spacing-popup-container .axp-spacing-popover input[type=range]::-moz-range-thumb{height:10px;width:10px;background-color:#fff;border-radius:50%;border:1px solid #353535;box-shadow:-407px 0 0 400px rgba(41,41,41,.44)}.area{grid-area:1/1/-1/-1;overflow:hidden;border-radius:2px;filter:drop-shadow(rgba(255,255,255,.2) 0px -.5px 0px) drop-shadow(rgba(0,0,0,.4) 0px 0px 1px) drop-shadow(rgba(0,0,0,.2) 0px 1px 0px)}\n"], dependencies: [{ kind: "ngmodule", type: AXNumberBoxModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXCheckBoxModule }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i1$7.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: AXRangeSliderModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9316
9703
  }
9317
9704
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSpacingWidgetEditComponent, decorators: [{
9318
9705
  type: Component,
@@ -9367,7 +9754,7 @@ class AXPCronJobWidgetEditComponent extends AXPWidgetComponent {
9367
9754
  this.setValue(e.data);
9368
9755
  }
9369
9756
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPCronJobWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
9370
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPCronJobWidgetEditComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `<ax-cron-job-container > </ax-cron-job-container>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXCronJobModule }, { kind: "component", type: i1$7.AXCronJobContainerComponent, selector: "ax-cron-job-container", outputs: ["onValueChanged"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9757
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPCronJobWidgetEditComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `<ax-cron-job-container > </ax-cron-job-container>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXCronJobModule }, { kind: "component", type: i1$8.AXCronJobContainerComponent, selector: "ax-cron-job-container", outputs: ["onValueChanged"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9371
9758
  }
9372
9759
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPCronJobWidgetEditComponent, decorators: [{
9373
9760
  type: Component,
@@ -9515,7 +9902,7 @@ class AXPQrcodeWidgetViewComponent extends AXPWidgetComponent {
9515
9902
  >
9516
9903
  </ax-qrcode>
9517
9904
  }
9518
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXQrcodeModule }, { kind: "component", type: i1$8.AXQrcodeComponent, selector: "ax-qrcode", inputs: ["content", "size", "level", "color", "backgroundColor", "outputType"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9905
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXQrcodeModule }, { kind: "component", type: i1$9.AXQrcodeComponent, selector: "ax-qrcode", inputs: ["content", "size", "level", "color", "backgroundColor", "outputType"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9519
9906
  }
9520
9907
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPQrcodeWidgetViewComponent, decorators: [{
9521
9908
  type: Component,
@@ -10202,7 +10589,7 @@ class AXPFilterOperationsComponent {
10202
10589
  }
10203
10590
  }
10204
10591
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFilterOperationsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10205
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPFilterOperationsComponent, isStandalone: true, selector: "axp-filter-operations", inputs: { selectedOperation: { classPropertyName: "selectedOperation", publicName: "selectedOperation", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedOperation: "selectedOperationChange" }, ngImport: i0, template: "@if(operations().length){\n<ax-button #changeOperator look=\"blank\" color=\"default\" class=\"ax-sm\">\n <ax-icon class=\"fa-solid fa-ellipsis-vertical\"></ax-icon>\n</ax-button>\n<ax-popover\n #operatorsPopover\n [target]=\"changeOperator\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n [adaptivityEnabled]=\"true\"\n>\n <div\n class=\"ax-max-h-max ax-overflow-auto ax-bg-surface ax-py-5 ax-px-3 ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full ax-min-w-[250px]\"\n >\n <ax-selection-list\n class=\"\"\n [valueField]=\"'name'\"\n [textField]=\"'title'\"\n [(ngModel)]=\"selectedOperation\"\n (ngModelChange)=\"operatorsPopover.close()\"\n [direction]=\"'vertical'\"\n [items]=\"operations()\"\n [multiple]=\"false\"\n ></ax-selection-list>\n </div>\n</ax-popover>\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i1$6.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i5.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXSelectionListModule }, { kind: "component", type: i2$3.AXSelectionListComponent, selector: "ax-selection-list", inputs: ["id", "name", "disabled", "readonly", "tabIndex", "size", "value", "valueField", "textField", "disabledField", "readonlyField", "multiple", "direction", "customTemplate", "showControl", "items", "look"], outputs: ["onValueChanged", "onBlur", "onFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10592
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPFilterOperationsComponent, isStandalone: true, selector: "axp-filter-operations", inputs: { selectedOperation: { classPropertyName: "selectedOperation", publicName: "selectedOperation", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedOperation: "selectedOperationChange" }, ngImport: i0, template: "@if(operations().length){\n<ax-button #changeOperator look=\"blank\" color=\"default\" class=\"ax-sm\">\n <ax-icon class=\"fa-solid fa-ellipsis-vertical\"></ax-icon>\n</ax-button>\n<ax-popover\n #operatorsPopover\n [target]=\"changeOperator\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n [adaptivityEnabled]=\"true\"\n>\n <div\n class=\"ax-max-h-max ax-overflow-auto ax-bg-surface ax-py-5 ax-px-3 ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full ax-min-w-[250px]\"\n >\n <ax-selection-list\n class=\"\"\n [valueField]=\"'name'\"\n [textField]=\"'title'\"\n [(ngModel)]=\"selectedOperation\"\n (ngModelChange)=\"operatorsPopover.close()\"\n [direction]=\"'vertical'\"\n [items]=\"operations()\"\n [multiple]=\"false\"\n ></ax-selection-list>\n </div>\n</ax-popover>\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i1$7.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i5.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXSelectionListModule }, { kind: "component", type: i2$3.AXSelectionListComponent, selector: "ax-selection-list", inputs: ["id", "name", "disabled", "readonly", "tabIndex", "size", "value", "valueField", "textField", "disabledField", "readonlyField", "multiple", "direction", "customTemplate", "showControl", "items", "look"], outputs: ["onValueChanged", "onBlur", "onFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10206
10593
  }
10207
10594
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFilterOperationsComponent, decorators: [{
10208
10595
  type: Component,
@@ -10592,7 +10979,7 @@ class AXPFormFieldWidgetViewComponent extends AXPWidgetComponent {
10592
10979
  <ng-container axp-widget-renderer [node]="node" [index]="index" [parentNode]="this" [mode]="this.mode"> </ng-container>
10593
10980
  }
10594
10981
  </ax-form-field>
10595
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i3$1.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i2$1.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "directive", type: i1$5.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], exportAs: ["widgetRenderer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10982
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i3$1.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i2$1.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "directive", type: i1$6.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], exportAs: ["widgetRenderer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10596
10983
  }
10597
10984
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFormFieldWidgetViewComponent, decorators: [{
10598
10985
  type: Component,
@@ -10722,7 +11109,7 @@ class AXPGridWidgetViewComponent extends AXPWidgetComponent {
10722
11109
  <ng-container axp-widget-renderer [node]="child" [index]="index" [parentNode]="this" [mode]="this.mode"> </ng-container>
10723
11110
  }
10724
11111
  </div>
10725
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "directive", type: i1$5.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], exportAs: ["widgetRenderer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11112
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "directive", type: i1$6.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], exportAs: ["widgetRenderer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10726
11113
  }
10727
11114
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPGridWidgetViewComponent, decorators: [{
10728
11115
  type: Component,
@@ -10763,17 +11150,33 @@ class AXPGridWidgetDesignerComponent extends AXPWidgetComponent {
10763
11150
  constructor() {
10764
11151
  super(...arguments);
10765
11152
  this.designerService = inject(AXPDesignerService);
10766
- // protected cols = computed<number>(() => (this.options()['cols'] as number) ?? 1);
10767
- // protected rows = computed<number>(() => (this.options()['rows'] as number) ?? 1);
10768
- // protected gap = computed<number>(() => (this.options()['gap'] as number) ?? 0);
10769
- this.data = computed(() => this.options()['gridOptions']);
10770
- this.cols = computed(() => AXPPropertyEditorHelper.parseGridTemplate(this.data().gridTemplateColumns));
10771
- this.rows = computed(() => AXPPropertyEditorHelper.parseGridTemplate(this.data().gridTemplateRows));
10772
- this.gap = computed(() => this.data().gap);
10773
- // #eff = effect(() => console.log(this.data()));
10774
- // #eff2 = effect(() => console.log(this.rows(), this.cols(), this.cells()));
10775
- this.cells = computed(() => Array.from({ length: this.cols() * this.rows() }).map((c, index) => index));
11153
+ this.cols = computed(() => this.calcGridRowOrColumn(this.options()['gridOptions']?.default?.gridTemplateColumns ?? 'repeat(1, 1fr)'));
11154
+ this.rows = computed(() => this.calcGridRowOrColumn(this.options()['gridOptions']?.default?.gridTemplateRows ?? 'repeat(1, 1fr)'));
11155
+ this.align = computed(() => this.options()['gridOptions']?.default?.alignItems ?? 'stretch');
11156
+ this.justify = computed(() => this.options()['gridOptions']?.default?.justifyItems ?? 'stretch');
11157
+ this.gap = computed(() => this.options()['gridOptions']?.default?.gap ?? '1px');
11158
+ this.cells = computed(() => this.calcTotalCells(this.options()['gridOptions']?.default?.gridTemplateRows ?? 'repeat(1, 1fr)', this.options()['gridOptions']?.default?.gridTemplateColumns ?? 'repeat(1, 1fr)'));
10776
11159
  this.settled = computed(() => this.cols() * this.rows() > 1 && this.children().length);
11160
+ // eff = effect(() => console.log(this.options()['gridOptions']));
11161
+ this.#rowOrColumnChangeEffect = effect(() => {
11162
+ const deferent = this.cells() - this.children().length;
11163
+ untracked(() => {
11164
+ if (deferent > 0) {
11165
+ Array.from({ length: deferent })
11166
+ .map(() => ({
11167
+ type: AXPWidgetsCatalog.gridItem,
11168
+ }))
11169
+ .forEach((node) => {
11170
+ this.designerService.addWidget(this.node, node);
11171
+ });
11172
+ }
11173
+ else if (deferent < 0) {
11174
+ this.children()
11175
+ .slice(deferent)
11176
+ .forEach((node) => this.designerService.removeWidget(node));
11177
+ }
11178
+ });
11179
+ });
10777
11180
  }
10778
11181
  handleDrawerSelect(e) {
10779
11182
  this.designerService.update({
@@ -10781,22 +11184,32 @@ class AXPGridWidgetDesignerComponent extends AXPWidgetComponent {
10781
11184
  // options: e,
10782
11185
  options: {
10783
11186
  gridOptions: {
10784
- gridTemplateColumns: `repeat(${e.cols}, 1fr)`,
10785
- gridTemplateRows: `repeat(${e.rows}, 1fr)`,
10786
- gap: '10px',
11187
+ default: {
11188
+ gridTemplateColumns: `repeat(${e.cols}, 1fr)`,
11189
+ gridTemplateRows: `repeat(${e.rows}, 1fr)`,
11190
+ gap: '10px',
11191
+ },
10787
11192
  },
10788
11193
  },
10789
11194
  },
10790
11195
  mode: 'update',
10791
11196
  widget: this.node,
10792
11197
  });
10793
- const list = Array.from({ length: this.cells().length }).map(() => ({
11198
+ const list = Array.from({ length: this.cells() }).map(() => ({
10794
11199
  type: AXPWidgetsCatalog.gridItem,
10795
11200
  }));
10796
11201
  list.forEach((node) => {
10797
11202
  this.designerService.addWidget(this.node, node);
10798
11203
  });
10799
11204
  }
11205
+ // eff = effect(() => console.log(this.options()['gridOptions']));
11206
+ #rowOrColumnChangeEffect;
11207
+ calcTotalCells(rows, cols) {
11208
+ return AXPPropertyEditorHelper.parseGridTemplate(rows) * AXPPropertyEditorHelper.parseGridTemplate(cols);
11209
+ }
11210
+ calcGridRowOrColumn(value) {
11211
+ return AXPPropertyEditorHelper.parseGridTemplate(value);
11212
+ }
10800
11213
  get __class() {
10801
11214
  return {
10802
11215
  'ax-widget-container': true,
@@ -10812,7 +11225,12 @@ class AXPGridWidgetDesignerComponent extends AXPWidgetComponent {
10812
11225
  },
10813
11226
  ], usesInheritance: true, ngImport: i0, template: `
10814
11227
  @if(settled()) {
10815
- <div class="ax-grid ax-grid-cols-{{ cols() }} ax-grid-rows-{{ rows() }}" [style]="{ gap: gap() }">
11228
+ <div
11229
+ class="ax-grid ax-grid-cols-{{ cols() }} ax-grid-rows-{{ rows() }} ax-items-{{ align() }} ax-justify-items-{{
11230
+ justify()
11231
+ }} "
11232
+ [style]="{ gap: gap() }"
11233
+ >
10816
11234
  @for (child of children(); track $index) {
10817
11235
  <ng-container
10818
11236
  axp-widget-designer-renderer
@@ -10827,6 +11245,13 @@ class AXPGridWidgetDesignerComponent extends AXPWidgetComponent {
10827
11245
  }@else {
10828
11246
  <axp-designer-grid-drawer (onSelect)="handleDrawerSelect($event)"></axp-designer-grid-drawer>
10829
11247
  }
11248
+ <!--TO BE SURE ALL DYNAMIC TAILWIND CLASSES WORK WELL!-->
11249
+ @if(false){
11250
+ <div class="ax-hidden">
11251
+ ax-items-start ax-items-center ax-items-end ax-items-stretch ax-justify-items-start ax-justify-items-center
11252
+ ax-justify-items-end ax-justify-items-stretch
11253
+ </div>
11254
+ }
10830
11255
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "directive", type: AXPWidgetDesignerRendererDirective, selector: "[axp-widget-designer-renderer]", inputs: ["parentNode", "index", "locked", "mode", "node"] }, { kind: "component", type: AXPDesignerGridDrawerComponent, selector: "axp-designer-grid-drawer", inputs: ["rows", "columns"], outputs: ["rowsChange", "columnsChange", "onSelect"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10831
11256
  }
10832
11257
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPGridWidgetDesignerComponent, decorators: [{
@@ -10835,7 +11260,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
10835
11260
  selector: 'axp-grid-layout-widget',
10836
11261
  template: `
10837
11262
  @if(settled()) {
10838
- <div class="ax-grid ax-grid-cols-{{ cols() }} ax-grid-rows-{{ rows() }}" [style]="{ gap: gap() }">
11263
+ <div
11264
+ class="ax-grid ax-grid-cols-{{ cols() }} ax-grid-rows-{{ rows() }} ax-items-{{ align() }} ax-justify-items-{{
11265
+ justify()
11266
+ }} "
11267
+ [style]="{ gap: gap() }"
11268
+ >
10839
11269
  @for (child of children(); track $index) {
10840
11270
  <ng-container
10841
11271
  axp-widget-designer-renderer
@@ -10850,6 +11280,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
10850
11280
  }@else {
10851
11281
  <axp-designer-grid-drawer (onSelect)="handleDrawerSelect($event)"></axp-designer-grid-drawer>
10852
11282
  }
11283
+ <!--TO BE SURE ALL DYNAMIC TAILWIND CLASSES WORK WELL!-->
11284
+ @if(false){
11285
+ <div class="ax-hidden">
11286
+ ax-items-start ax-items-center ax-items-end ax-items-stretch ax-justify-items-start ax-justify-items-center
11287
+ ax-justify-items-end ax-justify-items-stretch
11288
+ </div>
11289
+ }
10853
11290
  `,
10854
11291
  changeDetection: ChangeDetectionStrategy.OnPush,
10855
11292
  imports: [CommonModule, AXPLayoutBuilderModule, AXPWidgetDesignerRendererDirective, AXPDesignerGridDrawerComponent],
@@ -10955,7 +11392,7 @@ class AXPGridItemWidgetViewComponent extends AXPWidgetComponent {
10955
11392
  @for (child of children(); track $index) {
10956
11393
  <ng-container axp-widget-renderer [node]="child" [index]="index" [parentNode]="this" [mode]="this.mode"> </ng-container>
10957
11394
  }
10958
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "directive", type: i1$5.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], exportAs: ["widgetRenderer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11395
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "directive", type: i1$6.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], exportAs: ["widgetRenderer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10959
11396
  }
10960
11397
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPGridItemWidgetViewComponent, decorators: [{
10961
11398
  type: Component,
@@ -11014,6 +11451,8 @@ class AXPGridItemWidgetDesignerComponent extends AXPWidgetComponent {
11014
11451
  get __class() {
11015
11452
  const cls = {};
11016
11453
  //
11454
+ cls[`ax-m-4`] = true;
11455
+ //
11017
11456
  cls[`ax-widget-container`] = true;
11018
11457
  cls[`ax-flex`] = true;
11019
11458
  cls[`ax-gap-${this.gap()}`] = true;
@@ -11056,9 +11495,16 @@ class AXPGridItemWidgetDesignerComponent extends AXPWidgetComponent {
11056
11495
  },
11057
11496
  ], usesInheritance: true, ngImport: i0, template: `
11058
11497
  @for (child of children(); track $index) {
11059
- <ng-container axp-widget-designer-renderer [node]="child" [parentNode]="this" [mode]="this.mode" [locked]="this.locked"> </ng-container>
11498
+ <ng-container
11499
+ axp-widget-designer-renderer
11500
+ [node]="child"
11501
+ [parentNode]="this"
11502
+ [mode]="this.mode"
11503
+ [locked]="this.locked"
11504
+ >
11505
+ </ng-container>
11060
11506
  } @empty {
11061
- <axp-designer-add-widget-mini-button ></axp-designer-add-widget-mini-button>
11507
+ <axp-designer-add-widget-mini-button></axp-designer-add-widget-mini-button>
11062
11508
  }
11063
11509
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "directive", type: AXPWidgetDesignerRendererDirective, selector: "[axp-widget-designer-renderer]", inputs: ["parentNode", "index", "locked", "mode", "node"] }, { kind: "component", type: AXPDesignerAddWidgetMiniButtonComponent, selector: "axp-designer-add-widget-mini-button", outputs: ["onClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11064
11510
  }
@@ -11068,9 +11514,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
11068
11514
  selector: 'axp-grid-layout-item-widget',
11069
11515
  template: `
11070
11516
  @for (child of children(); track $index) {
11071
- <ng-container axp-widget-designer-renderer [node]="child" [parentNode]="this" [mode]="this.mode" [locked]="this.locked"> </ng-container>
11517
+ <ng-container
11518
+ axp-widget-designer-renderer
11519
+ [node]="child"
11520
+ [parentNode]="this"
11521
+ [mode]="this.mode"
11522
+ [locked]="this.locked"
11523
+ >
11524
+ </ng-container>
11072
11525
  } @empty {
11073
- <axp-designer-add-widget-mini-button ></axp-designer-add-widget-mini-button>
11526
+ <axp-designer-add-widget-mini-button></axp-designer-add-widget-mini-button>
11074
11527
  }
11075
11528
  `,
11076
11529
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -11085,7 +11538,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
11085
11538
  provide: AXPWidgetComponent,
11086
11539
  useExisting: AXPGridItemWidgetDesignerComponent,
11087
11540
  },
11088
- ]
11541
+ ],
11089
11542
  }]
11090
11543
  }], propDecorators: { __class: [{
11091
11544
  type: HostBinding,
@@ -11139,7 +11592,7 @@ class AXPGridRowWidgetViewComponent extends AXPWidgetComponent {
11139
11592
  <ng-container axp-widget-renderer [node]="child" [index]="index" [parentNode]="this" [mode]="this.mode"> </ng-container>
11140
11593
  }
11141
11594
  </div>
11142
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "directive", type: i1$5.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], exportAs: ["widgetRenderer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11595
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "directive", type: i1$6.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], exportAs: ["widgetRenderer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11143
11596
  }
11144
11597
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPGridRowWidgetViewComponent, decorators: [{
11145
11598
  type: Component,
@@ -11374,7 +11827,7 @@ const AXPTextBlockWidget = {
11374
11827
 
11375
11828
  class AXPWidgetsModule {
11376
11829
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPWidgetsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11377
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.3", ngImport: i0, type: AXPWidgetsModule, imports: [i1$5.AXPLayoutBuilderModule] }); }
11830
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.3", ngImport: i0, type: AXPWidgetsModule, imports: [i1$6.AXPLayoutBuilderModule] }); }
11378
11831
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPWidgetsModule, imports: [AXPLayoutBuilderModule.forChild({
11379
11832
  widgets: [
11380
11833
  AXPDocumentWidget,
@@ -11385,6 +11838,7 @@ class AXPWidgetsModule {
11385
11838
  AXPTextBlockWidget,
11386
11839
  AXPFormFieldWidget,
11387
11840
  AXPGridWidget,
11841
+ AXPAdvancedGridWidget,
11388
11842
  AXPGridItemWidget,
11389
11843
  AXPGridRowWidget,
11390
11844
  //
@@ -11437,6 +11891,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
11437
11891
  AXPTextBlockWidget,
11438
11892
  AXPFormFieldWidget,
11439
11893
  AXPGridWidget,
11894
+ AXPAdvancedGridWidget,
11440
11895
  AXPGridItemWidget,
11441
11896
  AXPGridRowWidget,
11442
11897
  //
@@ -11484,5 +11939,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
11484
11939
  * Generated bundle index. Do not edit.
11485
11940
  */
11486
11941
 
11487
- export { AXPAvatarWidget, AXPAvatarWidgetColumnComponent, AXPAvatarWidgetDesignerComponent, AXPAvatarWidgetEditComponent, AXPAvatarWidgetPrintComponent, AXPAvatarWidgetViewComponent, AXPBlockWidget, AXPBlockWidgetDesignerComponent, AXPBlockWidgetViewComponent, AXPBorderWidget, AXPBorderWidgetEditComponent, AXPButtonWidget, AXPButtonWidgetViewComponent, AXPCheckBoxWidget, AXPCheckBoxWidgetEditComponent, AXPContactWidget, AXPContactWidgetColumnComponent, AXPContactWidgetEditComponent, AXPContactWidgetPrintComponent, AXPContactWidgetViewComponent, AXPDateTimeBoxWidget, AXPDateTimeBoxWidgetColumnComponent, AXPDateTimeBoxWidgetEditComponent, AXPDateTimeBoxWidgetFilterComponent, AXPDateTimeBoxWidgetPrintComponent, AXPDateTimeBoxWidgetViewComponent, AXPEmailBoxWidget, AXPEmailBoxWidgetColumnComponent, AXPEmailBoxWidgetEditComponent, AXPEmailBoxWidgetFilterComponent, AXPEmailBoxWidgetPrintComponent, AXPEmailBoxWidgetViewComponent, AXPFileBoxWidget, AXPFileBoxWidgetColumnComponent, AXPFileBoxWidgetEditComponent, AXPFileBoxWidgetFilterComponent, AXPFileBoxWidgetPrintComponent, AXPFileBoxWidgetViewComponent, AXPFileManagementService, AXPFlexOptionsWidget, AXPFlexOptionsWidgetEditComponent, AXPGalleryWidget, AXPGalleryWidgetColumnComponent, AXPGalleryWidgetEditComponent, AXPGalleryWidgetFilterComponent, AXPGalleryWidgetPrintComponent, AXPGalleryWidgetViewComponent, AXPGridOptionsWidget, AXPGridOptionsWidgetEditComponent, AXPLargeTextWidget, AXPLargeTextWidgetColumnComponent, AXPLargeTextWidgetEditComponent, AXPLargeTextWidgetFilterComponent, AXPLargeTextWidgetPrintComponent, AXPLargeTextWidgetViewComponent, AXPLinkWidget, AXPLinkWidgetColumnComponent, AXPLinkWidgetEditComponent, AXPLinkWidgetFilterComponent, AXPLinkWidgetPrintComponent, AXPLinkWidgetViewComponent, AXPMapBoxWidget, AXPMapBoxWidgetEditComponent, AXPMapBoxWidgetViewComponent, AXPNumberBoxWidget, AXPNumberBoxWidgetColumnComponent, AXPNumberBoxWidgetEditComponent, AXPNumberBoxWidgetFilterComponent, AXPNumberBoxWidgetPrintComponent, AXPNumberBoxWidgetViewComponent, AXPPageWidget, AXPPageWidgetViewComponent, AXPPasswordBoxWidget, AXPPasswordBoxWidgetColumnComponent, AXPPasswordBoxWidgetEditComponent, AXPPasswordBoxWidgetFilterComponent, AXPPasswordBoxWidgetPrintComponent, AXPPasswordBoxWidgetViewComponent, AXPPhoneBoxWidget, AXPPhoneBoxWidgetColumnComponent, AXPPhoneBoxWidgetEditComponent, AXPPhoneBoxWidgetFilterComponent, AXPPhoneBoxWidgetPrintComponent, AXPPhoneBoxWidgetViewComponent, AXPPropertyEditorHelper, AXPRepeaterWidget, AXPRepeaterWidgetDesignerComponent, AXPRepeaterWidgetEditComponent, AXPRepeaterWidgetPrintComponent, AXPRepeaterWidgetViewComponent, AXPRichTextWidget, AXPRichTextWidgetColumnComponent, AXPRichTextWidgetEditComponent, AXPRichTextWidgetFilterComponent, AXPRichTextWidgetPrintComponent, AXPRichTextWidgetViewComponent, AXPSelectBoxWidget, AXPSelectBoxWidgetColumnComponent, AXPSelectBoxWidgetEditComponent, AXPSelectBoxWidgetFilterComponent, AXPSelectBoxWidgetPrintComponent, AXPSelectBoxWidgetViewComponent, AXPSelectionListWidget, AXPSelectionListWidgetColumnComponent, AXPSelectionListWidgetDesignerComponent, AXPSelectionListWidgetEditComponent, AXPSelectionListWidgetFilterComponent, AXPSelectionListWidgetPrintComponent, AXPSelectionListWidgetViewComponent, AXPSignatureWidget, AXPSignatureWidgetColumnComponent, AXPSignatureWidgetEditComponent, AXPSignatureWidgetFilterComponent, AXPSignatureWidgetPrintComponent, AXPSignatureWidgetViewComponent, AXPSpacingWidget, AXPSpacingWidgetEditComponent, AXPTextBoxWidget, AXPTextBoxWidgetColumnComponent, AXPTextBoxWidgetEditComponent, AXPTextBoxWidgetFilterComponent, AXPTextBoxWidgetPrintComponent, AXPTextBoxWidgetViewComponent, AXPToggleWidget, AXPToggleWidgetColumnComponent, AXPToggleWidgetEditComponent, AXPToggleWidgetFilterComponent, AXPToggleWidgetPrintComponent, AXPToggleWidgetViewComponent, AXPWidgetsModule, AXP_ALLOW_MULTIPLE_PROPERTY, AXP_ALLOW_SEARCH_PROPERTY, AXP_BEHAVIOR_PROPERTY_GROUP, AXP_BG_COLOR_PROPERTY, AXP_BOX_MODEL_PROPERTY_GROUP, AXP_COLOR_PROPERTY, AXP_CONTENT_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DATA_PROPERTY_GROUP, AXP_DATA_SOURCE_PROPERTY, AXP_DATE_FORMAT_PROPERTY, AXP_DESCRIPTION_PROPERTY, AXP_DIRECTION_PROPERTY, AXP_DISABLED_PROPERTY, AXP_DOWNLOADABLE_PROPERTY, AXP_FALSY_TEXT_PROPERTY, AXP_FONT_SIZE_PROPERTY, AXP_Flex_Box_Align_Options, AXP_Flex_Box_Alignments, AXP_Flex_Box_Justify_Options, AXP_Grid_Box_Align_Items_Options, AXP_Grid_Box_Alignments, AXP_Grid_Box_Justify_Items_Options, AXP_HAS_CLEAR_BUTTON_PROPERTY, AXP_HAS_COPY_ICON_PROPERTY, AXP_HAS_EYE_ICON_PROPERTY, AXP_HAS_ICON_PROPERTY, AXP_HAS_LABEL_PROPERTY, AXP_ICON_PROPERTY, AXP_IS_LOADING_PROPERTY, AXP_LABEL_PROPERTY, AXP_LAYOUT_ALIGN_CONTENT_PROPERTY, AXP_LAYOUT_BORDER_PROPERTY, AXP_LAYOUT_COLUMNS_PROPERTY, AXP_LAYOUT_COL_END_PROPERTY, AXP_LAYOUT_COL_SPAN_PROPERTY, AXP_LAYOUT_COL_START_PROPERTY, AXP_LAYOUT_FLEX_ALIGN_PROPERTY, AXP_LAYOUT_FLEX_DIRECTION_PROPERTY, AXP_LAYOUT_FLEX_JUSTIFY_PROPERTY, AXP_LAYOUT_FLEX_PROPERTIES, AXP_LAYOUT_FLEX_PROPERTY, AXP_LAYOUT_FLEX_PROPERTY_GROUP, AXP_LAYOUT_FLEX_WRAP_PROPERTY, AXP_LAYOUT_GAP_PROPERTY, AXP_LAYOUT_GRID_ITEM_PROPERTIES, AXP_LAYOUT_GRID_PROPERTIES, AXP_LAYOUT_GRID_PROPERTY, AXP_LAYOUT_GRID_PROPERTY_GROUP, AXP_LAYOUT_GRID_ROW_PROPERTIES, AXP_LAYOUT_ROWS_PROPERTY, AXP_LAYOUT_SPACING_PROPERTY, AXP_NAME_PROPERTY, AXP_PLACEHOLDER_PROPERTY, AXP_READONLY_PROPERTY, AXP_STYLE_COLOR_PROPERTY, AXP_STYLE_LOOK_PROPERTY, AXP_STYLING_PROPERTY_GROUP, AXP_TABLE_COLUMN_HEIGHT_PROPERTY, AXP_TABLE_COLUMN_WIDTH_PROPERTY, AXP_TEXT_FIELD_PROPERTY, AXP_TEXT_PROPERTY, AXP_THEME_PROPERTY, AXP_TITLE_PROPERTY, AXP_TRULY_TEXT_PROPERTY, AXP_VALIDATION_PROPERTY, AXP_VALUE_FIELD_PROPERTY, AXP_WIDGET_PROPERTY_GROUP, AXP_default_Border_Box_Units, AXP_default_Border_Box_Value, AXP_default_Spacing_Box_Units, AXP_default_Spacing_Box_Value, booleanDefaultProperty, largeTextDefaultProperty, numberDefaultProperty, numberMaxValueProperty, numberMinValueProperty, plainTextDefaultProperty };
11942
+ export { AXPAdvancedGridWidget, AXPAdvancedGridWidgetDesignerComponent, AXPAdvancedGridWidgetViewComponent, AXPAvatarWidget, AXPAvatarWidgetColumnComponent, AXPAvatarWidgetDesignerComponent, AXPAvatarWidgetEditComponent, AXPAvatarWidgetPrintComponent, AXPAvatarWidgetViewComponent, AXPBlockWidget, AXPBlockWidgetDesignerComponent, AXPBlockWidgetViewComponent, AXPBorderWidget, AXPBorderWidgetEditComponent, AXPButtonWidget, AXPButtonWidgetViewComponent, AXPCheckBoxWidget, AXPCheckBoxWidgetEditComponent, AXPContactWidget, AXPContactWidgetColumnComponent, AXPContactWidgetEditComponent, AXPContactWidgetPrintComponent, AXPContactWidgetViewComponent, AXPDateTimeBoxWidget, AXPDateTimeBoxWidgetColumnComponent, AXPDateTimeBoxWidgetEditComponent, AXPDateTimeBoxWidgetFilterComponent, AXPDateTimeBoxWidgetPrintComponent, AXPDateTimeBoxWidgetViewComponent, AXPEmailBoxWidget, AXPEmailBoxWidgetColumnComponent, AXPEmailBoxWidgetEditComponent, AXPEmailBoxWidgetFilterComponent, AXPEmailBoxWidgetPrintComponent, AXPEmailBoxWidgetViewComponent, AXPFileBoxWidget, AXPFileBoxWidgetColumnComponent, AXPFileBoxWidgetEditComponent, AXPFileBoxWidgetFilterComponent, AXPFileBoxWidgetPrintComponent, AXPFileBoxWidgetViewComponent, AXPFileManagementService, AXPFlexOptionsWidget, AXPFlexOptionsWidgetEditComponent, AXPGalleryWidget, AXPGalleryWidgetColumnComponent, AXPGalleryWidgetEditComponent, AXPGalleryWidgetFilterComponent, AXPGalleryWidgetPrintComponent, AXPGalleryWidgetViewComponent, AXPGridOptionsWidget, AXPGridOptionsWidgetEditComponent, AXPLargeTextWidget, AXPLargeTextWidgetColumnComponent, AXPLargeTextWidgetEditComponent, AXPLargeTextWidgetFilterComponent, AXPLargeTextWidgetPrintComponent, AXPLargeTextWidgetViewComponent, AXPLinkWidget, AXPLinkWidgetColumnComponent, AXPLinkWidgetEditComponent, AXPLinkWidgetFilterComponent, AXPLinkWidgetPrintComponent, AXPLinkWidgetViewComponent, AXPMapBoxWidget, AXPMapBoxWidgetEditComponent, AXPMapBoxWidgetViewComponent, AXPNumberBoxWidget, AXPNumberBoxWidgetColumnComponent, AXPNumberBoxWidgetEditComponent, AXPNumberBoxWidgetFilterComponent, AXPNumberBoxWidgetPrintComponent, AXPNumberBoxWidgetViewComponent, AXPPageWidget, AXPPageWidgetViewComponent, AXPPasswordBoxWidget, AXPPasswordBoxWidgetColumnComponent, AXPPasswordBoxWidgetEditComponent, AXPPasswordBoxWidgetFilterComponent, AXPPasswordBoxWidgetPrintComponent, AXPPasswordBoxWidgetViewComponent, AXPPhoneBoxWidget, AXPPhoneBoxWidgetColumnComponent, AXPPhoneBoxWidgetEditComponent, AXPPhoneBoxWidgetFilterComponent, AXPPhoneBoxWidgetPrintComponent, AXPPhoneBoxWidgetViewComponent, AXPPropertyEditorHelper, AXPRepeaterWidget, AXPRepeaterWidgetDesignerComponent, AXPRepeaterWidgetEditComponent, AXPRepeaterWidgetPrintComponent, AXPRepeaterWidgetViewComponent, AXPRichTextWidget, AXPRichTextWidgetColumnComponent, AXPRichTextWidgetEditComponent, AXPRichTextWidgetFilterComponent, AXPRichTextWidgetPrintComponent, AXPRichTextWidgetViewComponent, AXPSelectBoxWidget, AXPSelectBoxWidgetColumnComponent, AXPSelectBoxWidgetEditComponent, AXPSelectBoxWidgetFilterComponent, AXPSelectBoxWidgetPrintComponent, AXPSelectBoxWidgetViewComponent, AXPSelectionListWidget, AXPSelectionListWidgetColumnComponent, AXPSelectionListWidgetDesignerComponent, AXPSelectionListWidgetEditComponent, AXPSelectionListWidgetFilterComponent, AXPSelectionListWidgetPrintComponent, AXPSelectionListWidgetViewComponent, AXPSignatureWidget, AXPSignatureWidgetColumnComponent, AXPSignatureWidgetEditComponent, AXPSignatureWidgetFilterComponent, AXPSignatureWidgetPrintComponent, AXPSignatureWidgetViewComponent, AXPSpacingWidget, AXPSpacingWidgetEditComponent, AXPTextBoxWidget, AXPTextBoxWidgetColumnComponent, AXPTextBoxWidgetEditComponent, AXPTextBoxWidgetFilterComponent, AXPTextBoxWidgetPrintComponent, AXPTextBoxWidgetViewComponent, AXPToggleWidget, AXPToggleWidgetColumnComponent, AXPToggleWidgetEditComponent, AXPToggleWidgetFilterComponent, AXPToggleWidgetPrintComponent, AXPToggleWidgetViewComponent, AXPWidgetsModule, AXP_ALLOW_MULTIPLE_PROPERTY, AXP_ALLOW_SEARCH_PROPERTY, AXP_BEHAVIOR_PROPERTY_GROUP, AXP_BG_COLOR_PROPERTY, AXP_BOX_MODEL_PROPERTY_GROUP, AXP_COLOR_PROPERTY, AXP_CONTENT_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DATA_PROPERTY_GROUP, AXP_DATA_SOURCE_PROPERTY, AXP_DATE_FORMAT_PROPERTY, AXP_DESCRIPTION_PROPERTY, AXP_DIRECTION_PROPERTY, AXP_DISABLED_PROPERTY, AXP_DOWNLOADABLE_PROPERTY, AXP_FALSY_TEXT_PROPERTY, AXP_FONT_SIZE_PROPERTY, AXP_Flex_Box_Align_Options, AXP_Flex_Box_Alignments, AXP_Flex_Box_Justify_Options, AXP_Grid_Box_Align_Items_Options, AXP_Grid_Box_Alignments, AXP_Grid_Box_Justify_Items_Options, AXP_HAS_CLEAR_BUTTON_PROPERTY, AXP_HAS_COPY_ICON_PROPERTY, AXP_HAS_EYE_ICON_PROPERTY, AXP_HAS_ICON_PROPERTY, AXP_HAS_LABEL_PROPERTY, AXP_ICON_PROPERTY, AXP_IS_LOADING_PROPERTY, AXP_LABEL_PROPERTY, AXP_LAYOUT_ALIGN_CONTENT_PROPERTY, AXP_LAYOUT_BORDER_PROPERTY, AXP_LAYOUT_COLUMNS_PROPERTY, AXP_LAYOUT_COL_END_PROPERTY, AXP_LAYOUT_COL_SPAN_PROPERTY, AXP_LAYOUT_COL_START_PROPERTY, AXP_LAYOUT_FLEX_ALIGN_PROPERTY, AXP_LAYOUT_FLEX_DIRECTION_PROPERTY, AXP_LAYOUT_FLEX_JUSTIFY_PROPERTY, AXP_LAYOUT_FLEX_PROPERTIES, AXP_LAYOUT_FLEX_PROPERTY, AXP_LAYOUT_FLEX_PROPERTY_GROUP, AXP_LAYOUT_FLEX_WRAP_PROPERTY, AXP_LAYOUT_GAP_PROPERTY, AXP_LAYOUT_GRID_ITEM_PROPERTIES, AXP_LAYOUT_GRID_PROPERTIES, AXP_LAYOUT_GRID_PROPERTY, AXP_LAYOUT_GRID_PROPERTY_GROUP, AXP_LAYOUT_GRID_ROW_PROPERTIES, AXP_LAYOUT_ROWS_PROPERTY, AXP_LAYOUT_SPACING_PROPERTY, AXP_NAME_PROPERTY, AXP_PLACEHOLDER_PROPERTY, AXP_READONLY_PROPERTY, AXP_STYLE_COLOR_PROPERTY, AXP_STYLE_LOOK_PROPERTY, AXP_STYLING_PROPERTY_GROUP, AXP_TABLE_COLUMN_HEIGHT_PROPERTY, AXP_TABLE_COLUMN_WIDTH_PROPERTY, AXP_TEXT_FIELD_PROPERTY, AXP_TEXT_PROPERTY, AXP_THEME_PROPERTY, AXP_TITLE_PROPERTY, AXP_TRULY_TEXT_PROPERTY, AXP_VALIDATION_PROPERTY, AXP_VALUE_FIELD_PROPERTY, AXP_WIDGET_PROPERTY_GROUP, AXP_default_Border_Box_Units, AXP_default_Border_Box_Value, AXP_default_Spacing_Box_Units, AXP_default_Spacing_Box_Value, booleanDefaultProperty, findNonEmptyBreakpoints, largeTextDefaultProperty, numberDefaultProperty, numberMaxValueProperty, numberMinValueProperty, plainTextDefaultProperty };
11488
11943
  //# sourceMappingURL=acorex-platform-widgets.mjs.map