@acorex-platform/framework-client 0.0.33 → 0.0.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/acorex-platform-framework-client-auth.mjs +172 -17
- package/fesm2022/acorex-platform-framework-client-auth.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-common-common-settings.provider-CzBr0cRi.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-common-settings-dialog.helper-DQNOCRL6.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-common.mjs +17 -34
- package/fesm2022/acorex-platform-framework-client-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-domain.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-builder.mjs +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-builder.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-oE8CeLE8.mjs → acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-Bp2cNCPO.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-oE8CeLE8.mjs.map → acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-Bp2cNCPO.mjs.map} +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-components-file-provider-picker.popup.component-BtLEUWAA.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-components.mjs +54 -43
- package/fesm2022/acorex-platform-framework-client-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-designer.mjs +8 -8
- package/fesm2022/acorex-platform-framework-client-layout-designer.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-D1prdDvf.mjs → acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-C74cBc-K.mjs} +719 -203
- package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-C74cBc-K.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-CeVGNzup.mjs → acorex-platform-framework-client-layout-entity-attachments-page.component-B6nG9dIS.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-CeVGNzup.mjs.map → acorex-platform-framework-client-layout-entity-attachments-page.component-B6nG9dIS.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-CFScb-L4.mjs → acorex-platform-framework-client-layout-entity-bulk-entity.command-DLQA_Q2Y.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-CFScb-L4.mjs.map → acorex-platform-framework-client-layout-entity-bulk-entity.command-DLQA_Q2Y.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-entity-file-list-popup.component-B3__csKW.mjs → acorex-platform-framework-client-layout-entity-file-list-popup.component-C0LgUzzv.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-entity-file-list-popup.component-B3__csKW.mjs.map → acorex-platform-framework-client-layout-entity-file-list-popup.component-C0LgUzzv.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-B17l6mbm.mjs → acorex-platform-framework-client-layout-entity-gallery-page.component-B4wC1iqZ.mjs} +3 -3
- package/fesm2022/acorex-platform-framework-client-layout-entity-gallery-page.component-B4wC1iqZ.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-entity.mjs +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-views.mjs +3 -3
- package/fesm2022/acorex-platform-framework-client-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs +16 -10
- package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-button-widget-designer.component-BiWerYcu.mjs → acorex-platform-framework-client-layout-widgets-button-widget-designer.component-BDOdcoyN.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-button-widget-designer.component-BiWerYcu.mjs.map → acorex-platform-framework-client-layout-widgets-button-widget-designer.component-BDOdcoyN.mjs.map} +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-widgets-image-preview.popup-BOrrMm3U.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-widgets-page-widget-designer.component-WzIiwnGC.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-4mX8aYzA.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-CRST84ou.mjs → acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-TWxthl21.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-CRST84ou.mjs.map → acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-TWxthl21.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-tabular-data-view-popup.component-FjtSRxIX.mjs → acorex-platform-framework-client-layout-widgets-tabular-data-view-popup.component-D7P08nHH.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-tabular-data-view-popup.component-FjtSRxIX.mjs.map → acorex-platform-framework-client-layout-widgets-tabular-data-view-popup.component-D7P08nHH.mjs.map} +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-D6HFPmGC.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs +1121 -1107
- package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-native.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-realtime-set-presence-availability.command-CetlUjnM.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-realtime.mjs +2 -1
- package/fesm2022/acorex-platform-framework-client-realtime.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-runtime.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-create-view.component-yeftgJ_K.mjs → acorex-platform-framework-client-themes-default-entity-master-create-view.component-CT7WWWG0.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-create-view.component-yeftgJ_K.mjs.map → acorex-platform-framework-client-themes-default-entity-master-create-view.component-CT7WWWG0.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-modify-view.component-DWE3OWGm.mjs → acorex-platform-framework-client-themes-default-entity-master-modify-view.component-DienTcPE.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-modify-view.component-DWE3OWGm.mjs.map → acorex-platform-framework-client-themes-default-entity-master-modify-view.component-DienTcPE.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-single-view.component-DCpl6AXq.mjs → acorex-platform-framework-client-themes-default-entity-master-single-view.component-DBUwSzvg.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-single-view.component-DCpl6AXq.mjs.map → acorex-platform-framework-client-themes-default-entity-master-single-view.component-DBUwSzvg.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-themes-default-error-401.component-BrTotLx1.mjs → acorex-platform-framework-client-themes-default-error-401.component-CaV3MdRr.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-themes-default-error-401.component-BrTotLx1.mjs.map → acorex-platform-framework-client-themes-default-error-401.component-CaV3MdRr.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-themes-default-error-404.component-DsC7_s59.mjs → acorex-platform-framework-client-themes-default-error-404.component-CTA-lxYp.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-themes-default-error-404.component-DsC7_s59.mjs.map → acorex-platform-framework-client-themes-default-error-404.component-CTA-lxYp.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-themes-default-error-offline.component-CngiQycG.mjs → acorex-platform-framework-client-themes-default-error-offline.component-B85b0lsa.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-themes-default-error-offline.component-CngiQycG.mjs.map → acorex-platform-framework-client-themes-default-error-offline.component-B85b0lsa.mjs.map} +1 -1
- package/fesm2022/acorex-platform-framework-client-themes-default.mjs +21 -21
- package/fesm2022/acorex-platform-framework-client-themes-default.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-themes-shared-icon-chooser-column.component-CbZALjB5.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-themes-shared-icon-chooser-view.component-BRrNT6x2.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-themes-shared-settings.provider-CpsAIsxj.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-themes-shared-theme-color-chooser-column.component-BIsQTr6B.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-themes-shared-theme-color-chooser-view.component-ZclmSbt9.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-themes-shared.mjs +3 -3
- package/fesm2022/acorex-platform-framework-client-themes-shared.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-workflow.mjs.map +1 -1
- package/package.json +2 -2
- package/types/acorex-platform-framework-client-auth.d.ts +56 -10
- package/types/acorex-platform-framework-client-common.d.ts +11 -9
- package/types/acorex-platform-framework-client-layout-components.d.ts +26 -7
- package/types/acorex-platform-framework-client-layout-entity.d.ts +34 -16
- package/types/acorex-platform-framework-client-layout-widgets.d.ts +29 -139
- package/types/acorex-platform-framework-client-realtime.d.ts +20 -2
- package/types/acorex-platform-framework-client-themes-default.d.ts +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-D1prdDvf.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-layout-entity-gallery-page.component-B17l6mbm.mjs.map +0 -1
|
@@ -21,12 +21,12 @@ import * as i1$7 from '@acorex/components/text-box';
|
|
|
21
21
|
import { AXTextBoxModule } from '@acorex/components/text-box';
|
|
22
22
|
import * as i1$5 from '@acorex/core/translation';
|
|
23
23
|
import { AXTranslationModule, AXTranslationService, resolveMultiLanguageString as resolveMultiLanguageString$1 } from '@acorex/core/translation';
|
|
24
|
-
import { AXP_LOCALE_MANAGEMENT_PORT, AXPFilterOperatorMiddlewareService, AXPCleanNestedFilters, AXPClipBoardService, AXPSettingsService, ALL_DEFAULT_OPERATORS, DATE_OPERATORS, BOOLEAN_OPERATORS, NUMBER_OPERATORS, STRING_OPERATORS, resolveDateFilterPresets, findManualPresetIdByOperation, applyDateFilterPreset, AXPFileStorageService, resolveStoredImageDisplayUrl,
|
|
24
|
+
import { AXP_LOCALE_MANAGEMENT_PORT, AXPFilterOperatorMiddlewareService, AXPCleanNestedFilters, AXPClipBoardService, AXPSettingsService, ALL_DEFAULT_OPERATORS, DATE_OPERATORS, BOOLEAN_OPERATORS, NUMBER_OPERATORS, STRING_OPERATORS, resolveDateFilterPresets, findManualPresetIdByOperation, applyDateFilterPreset, AXPFileStorageService, resolveStoredImageDisplayUrl, AXP_INTEGRATION_RUNTIME_PROVIDER, commandMessageTextForError, normalizePositiveNumberOption, resolveEntityRowDisplayText, resolveEntityRowDisplayTitle, downloadGraphicFromElement, printGraphicFromElement, AXPStatusDefinitionProviderService, isStoredImageFileId, AXP_ENTITY_LIST_DISPLAY_MODE_DEFAULT, AXPCommonSettings } from '@acorex-platform/framework-client/common';
|
|
25
25
|
import { AXPDeviceService, setupPopupFooterKeyboardShortcuts, ensureRuntimeSurfaceClass, AXPColorPaletteService, AXPDebugService, FORM_DIRTY_TRACE_NS, AXPTagService, AXPExpressionEvaluatorService, AXPHookService, AXPDataGenerator, AXPLogoComponent, AXPEntityBroadcastService, applyQueryArray, chordToKbdItemKeys, objectKeyValueTransforms } from '@acorex-platform/framework-client/core';
|
|
26
26
|
import * as i1$4 from '@angular/common';
|
|
27
|
-
import { CommonModule, AsyncPipe } from '@angular/common';
|
|
27
|
+
import { CommonModule, AsyncPipe, NgClass } from '@angular/common';
|
|
28
28
|
import * as i0 from '@angular/core';
|
|
29
|
-
import { inject, signal, computed, ChangeDetectionStrategy, Component, InjectionToken, viewChild, effect, untracked, HostBinding, Directive, EventEmitter, linkedSignal, Injectable, model, input, ViewEncapsulation, DestroyRef, afterNextRender, ChangeDetectorRef, output, Input, ElementRef, afterEveryRender, NgZone,
|
|
29
|
+
import { inject, signal, computed, ChangeDetectionStrategy, Component, InjectionToken, viewChild, effect, untracked, HostBinding, Directive, EventEmitter, linkedSignal, Injectable, model, input, ViewEncapsulation, DestroyRef, EnvironmentInjector, ApplicationRef, afterNextRender, ChangeDetectorRef, output, Input, ElementRef, afterEveryRender, NgZone, NgModule } from '@angular/core';
|
|
30
30
|
import * as i1$6 from '@angular/forms';
|
|
31
31
|
import { FormsModule } from '@angular/forms';
|
|
32
32
|
import { AXLookupComponent } from '@acorex/components/lookup';
|
|
@@ -37,7 +37,7 @@ import * as i2$2 from '@acorex/components/loading';
|
|
|
37
37
|
import { AXLoadingModule } from '@acorex/components/loading';
|
|
38
38
|
import { AXPCommandService, AXPQueryService, provideQuerySetups } from '@acorex-platform/framework-client/runtime';
|
|
39
39
|
import { cloneProperty, AXPWidgetGroupEnum, createSelectProperty, createStringProperty, createNumberProperty, createBooleanProperty, AXPWidgetStatus } from '@acorex-platform/framework-shared/widget-core';
|
|
40
|
-
import { AXPConditionBuilderComponent, AXPColorChooserComponent, AXPColorPalettePickerComponent, AXPDragDropListComponent, AXPColumnItemListComponent, AXPImageEditorService,
|
|
40
|
+
import { AXPConditionBuilderComponent, AXPColorChooserComponent, AXPColorPalettePickerComponent, AXPDragDropListComponent, AXPColumnItemListComponent, AXPImageEditorService, AXPFileChooserService, createAttachedFileProviderMenu, AXPFileViewerComponent, AXPStateMessageComponent, normalizeFileViewerBoundValue, AXPOutcomeResultsViewerComponent, AXPSignatureEditorService, AXPStopwatchComponent, AXPWidgetFieldConfiguratorComponent, AXPItemConfiguratorComponent, AXPRepeaterRowsLayoutComponent, AXPQueryFiltersComponent, AXPQuerySortsComponent, AXPQueryColumnsComponent } from '@acorex-platform/framework-client/layout/components';
|
|
41
41
|
import { AXValidationModule, AXValidationService } from '@acorex/core/validation';
|
|
42
42
|
import { AXColorUtil } from '@acorex/core/utils';
|
|
43
43
|
import * as i2$3 from '@acorex/components/color-box';
|
|
@@ -69,6 +69,7 @@ import { AXRangeSliderModule } from '@acorex/components/range-slider';
|
|
|
69
69
|
import { AXRatePickerComponent } from '@acorex/components/rate-picker';
|
|
70
70
|
import * as i2$5 from '@acorex/components/wysiwyg';
|
|
71
71
|
import { AXWysiwygModule } from '@acorex/components/wysiwyg';
|
|
72
|
+
import { AXHighlightTextComponent } from '@acorex/components/highlight';
|
|
72
73
|
import { AXComboBoxComponent } from '@acorex/components/combo-box';
|
|
73
74
|
import * as i3$5 from '@acorex/components/skeleton';
|
|
74
75
|
import { AXSkeletonModule } from '@acorex/components/skeleton';
|
|
@@ -89,45 +90,40 @@ import * as i1$c from '@acorex/components/code-editor';
|
|
|
89
90
|
import { AXCodeEditorModule } from '@acorex/components/code-editor';
|
|
90
91
|
import * as i1$d from '@acorex/components/data-table';
|
|
91
92
|
import { AXDataTableModule } from '@acorex/components/data-table';
|
|
92
|
-
import { AXLoadingDialogService } from '@acorex/components/loading-dialog';
|
|
93
|
-
import * as i1$e from '@acorex/components/media-viewer';
|
|
94
|
-
import { AXMediaViewerModule } from '@acorex/components/media-viewer';
|
|
95
|
-
import * as i1$f from '@acorex/components/image';
|
|
96
|
-
import { AXImageModule } from '@acorex/components/image';
|
|
97
93
|
import { AXDialogService } from '@acorex/components/dialog';
|
|
98
94
|
import { AXToastService } from '@acorex/components/toast';
|
|
99
95
|
import * as i6 from '@acorex/components/dropdown-button';
|
|
100
96
|
import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
|
|
101
97
|
import * as i6$1 from '@acorex/components/tooltip';
|
|
102
98
|
import { AXTooltipModule } from '@acorex/components/tooltip';
|
|
103
|
-
import * as i1$
|
|
99
|
+
import * as i1$e from '@acorex/components/json-viewer';
|
|
104
100
|
import { AXJsonViewerModule } from '@acorex/components/json-viewer';
|
|
105
|
-
import * as i1$
|
|
101
|
+
import * as i1$f from '@acorex/components/map';
|
|
106
102
|
import { AXMapModule } from '@acorex/components/map';
|
|
107
103
|
import * as i5$2 from '@acorex/components/qrcode';
|
|
108
104
|
import { AXQrcodeModule } from '@acorex/components/qrcode';
|
|
109
105
|
import { AXSchedulerPickerService, AXSchedulerPickerComponent } from '@acorex/components/scheduler-picker';
|
|
106
|
+
import * as i3$6 from '@acorex/components/image';
|
|
107
|
+
import { AXImageModule } from '@acorex/components/image';
|
|
110
108
|
import * as i2$8 from '@acorex/components/paint';
|
|
111
109
|
import { AXPaintModule } from '@acorex/components/paint';
|
|
112
|
-
import * as i1$
|
|
110
|
+
import * as i1$g from '@acorex/components/grid-layout-builder';
|
|
113
111
|
import { AXGridLayoutContainerComponent, AXGridLayoutBuilderModule } from '@acorex/components/grid-layout-builder';
|
|
114
112
|
import { AXPDesignerService, AXPWidgetDesignerRendererDirective, AXPDesignerGridDrawerComponent, AXPDesignerAddWidgetMiniButtonComponent, AXPDesignerFlexDrawerComponent } from '@acorex-platform/framework-client/layout/designer';
|
|
115
113
|
import { moveItemInArray } from '@acorex/cdk/drag-drop';
|
|
116
|
-
import * as i1$
|
|
114
|
+
import * as i1$h from '@acorex/components/step-wizard';
|
|
117
115
|
import { AXStepWizardModule } from '@acorex/components/step-wizard';
|
|
118
|
-
import * as i1$
|
|
116
|
+
import * as i1$i from '@acorex/components/button-group';
|
|
119
117
|
import { AXButtonGroupModule } from '@acorex/components/button-group';
|
|
120
118
|
import { AXKBDComponent, AXKBDItemComponent } from '@acorex/components/kbd';
|
|
121
119
|
import { provideFileViewer } from '@acorex/components/file-viewer';
|
|
122
|
-
import * as i1$l from '@acorex/components/cron-job';
|
|
123
|
-
import { AXCronJobModule } from '@acorex/components/cron-job';
|
|
124
120
|
import { normalizeEntityMasterListLayoutType } from '@acorex-platform/framework-shared/entity';
|
|
125
|
-
import * as i3$
|
|
121
|
+
import * as i3$7 from '@acorex/components/time-duration';
|
|
126
122
|
import { AXTimeDurationModule } from '@acorex/components/time-duration';
|
|
127
|
-
import * as i1$
|
|
123
|
+
import * as i1$j from '@acorex/components/alert';
|
|
128
124
|
import { AXAlertModule } from '@acorex/components/alert';
|
|
129
125
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
130
|
-
import * as i1$
|
|
126
|
+
import * as i1$k from '@acorex/components/accordion';
|
|
131
127
|
import { AXAccordionModule } from '@acorex/components/accordion';
|
|
132
128
|
import { AXP_WIDGET_AI_AGENT_NAMES, parseWidgetCatalogMetadataJson, isValidWidgetAiAgentName, matchesWidgetAiAgent, AXP_WIDGET_AI_AGENT_ASSIST_FOLLOW_UP_CHIPS_LAYOUT, AXP_WIDGET_AI_AGENT_CHART_LAYOUT, AXP_WIDGET_AI_AGENT_FORM_LAYOUT } from '@acorex-platform/framework-shared/runtime';
|
|
133
129
|
export { AXP_WIDGET_AI_AGENT_ASSIST_FOLLOW_UP_CHIPS_LAYOUT, AXP_WIDGET_AI_AGENT_CHART_LAYOUT, AXP_WIDGET_AI_AGENT_FORM_LAYOUT, AXP_WIDGET_AI_AGENT_NAMES, matchesWidgetAiAgent } from '@acorex-platform/framework-shared/runtime';
|
|
@@ -386,7 +382,7 @@ class AXPSelectLanguagePopup extends AXBasePageComponent {
|
|
|
386
382
|
});
|
|
387
383
|
}
|
|
388
384
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPSelectLanguagePopup, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
389
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPSelectLanguagePopup, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "@if (isMobile()) {\n<div class=\"flex flex-col w-full\">\n <div class=\"flex items-center justify-between gap-2 px-3 py-2 border-b border-gray-200\">\n <span class=\"font-semibold truncate\">{{ currentLanguageTitle() || (\"@general:fields.language.title\" |\n translate | async) }}</span>\n @if (visibleLanguageList().length > 1) {\n <ax-button (onClick)=\"openLanguagePicker()\" color=\"primary\"\n [text]=\"('@general:actions.change.title' | translate | async)\"></ax-button>\n }\n </div>\n <div class=\"flex-1 min-w-0 overflow-auto p-3\">\n @if (activeLanguage(); as lang) {\n <div class=\"flex flex-grow items-center justify-center\">\n <axp-widgets-container class=\"flex flex-col gap-2 p-4\" [context]=\"lang.context\"\n (onContextChanged)=\"handleContextChanged($event, lang)\">\n <ng-container axp-widget-renderer [node]=\"lang.node\" [mode]=\"'edit'\"> </ng-container>\n </axp-widgets-container>\n </div>\n }\n </div>\n</div>\n} @else {\n<div class=\"flex h-[max(70vh,20rem)]\">\n <aside class=\"overflow-auto flex-shrink-0 min-w-[12rem] border-e border-neutral-200\">\n <ax-tabs [content]=\"content\" location=\"end\" look=\"with-line-color\" [fitParent]=\"true\">\n @for (language of visibleLanguageList(); track language.code) {\n <ax-tab-item [text]=\"language.title\" [key]=\"language.code\" [(active)]=\"language.active\">\n <ax-suffix>\n <ax-badge [color]=\"hasTranslationContent(language.context.value) ? 'success' : 'ghost'\"></ax-badge>\n </ax-suffix>\n <ax-content>\n <p class=\"font-semibold self-start mb-4\">{{ language.title }}</p>\n <div class=\"flex flex-grow items-center justify-center\">\n <axp-widgets-container class=\"flex flex-col gap-2 p-4\" [context]=\"language.context\"\n (onContextChanged)=\"handleContextChanged($event, language)\">\n <ng-container axp-widget-renderer [node]=\"language.node\" [mode]=\"'edit'\"> </ng-container>\n </axp-widgets-container>\n </div>\n </ax-content>\n </ax-tab-item>\n }\n </ax-tabs>\n </aside>\n <div class=\"flex-1 min-w-0 p-4 flex flex-col\">\n <ng-template [axTabContent] #content=\"axTabContent\"> </ng-template>\n </div>\n</div>\n}\n<ax-footer class=\"flex items-center justify-between gap-4\">\n <ax-prefix class=\"flex items-center min-w-0\">\n @if (hasLanguagesBeyondProfiles()) {\n <ax-check-box [value]=\"showOtherLanguages()\" (onValueChanged)=\"onShowOtherLanguagesChanged($event)\">\n <ax-label>{{ ('@general:widgets.multi-language-select.show-other-languages' | translate | async) }}</ax-label>\n </ax-check-box>\n }\n </ax-prefix>\n <ax-suffix>\n <ax-button [text]=\"('@general:actions.cancel.title' | translate | async)\" (onClick)=\"close()\"></ax-button>\n <ax-button color=\"primary\" [text]=\"('@general:actions.save.title' | translate | async)\"\n (onClick)=\"onSaveButtonClick()\"></ax-button>\n </ax-suffix>\n</ax-footer>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "
|
|
385
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPSelectLanguagePopup, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "@if (isMobile()) {\n<div class=\"flex flex-col w-full\">\n <div class=\"flex items-center justify-between gap-2 px-3 py-2 border-b border-gray-200\">\n <span class=\"font-semibold truncate\">{{ currentLanguageTitle() || (\"@general:fields.language.title\" |\n translate | async) }}</span>\n @if (visibleLanguageList().length > 1) {\n <ax-button (onClick)=\"openLanguagePicker()\" color=\"primary\"\n [text]=\"('@general:actions.change.title' | translate | async)\"></ax-button>\n }\n </div>\n <div class=\"flex-1 min-w-0 overflow-auto p-3\">\n @if (activeLanguage(); as lang) {\n <div class=\"flex flex-grow items-center justify-center\">\n <axp-widgets-container class=\"flex flex-col gap-2 p-4\" [context]=\"lang.context\"\n (onContextChanged)=\"handleContextChanged($event, lang)\">\n <ng-container axp-widget-renderer [node]=\"lang.node\" [mode]=\"'edit'\"> </ng-container>\n </axp-widgets-container>\n </div>\n }\n </div>\n</div>\n} @else {\n<div class=\"flex h-[max(70vh,20rem)]\">\n <aside class=\"overflow-auto flex-shrink-0 min-w-[12rem] border-e border-neutral-200\">\n <ax-tabs [content]=\"content\" location=\"end\" look=\"with-line-color\" [fitParent]=\"true\">\n @for (language of visibleLanguageList(); track language.code) {\n <ax-tab-item [text]=\"language.title\" [key]=\"language.code\" [(active)]=\"language.active\">\n <ax-suffix>\n <ax-badge [color]=\"hasTranslationContent(language.context.value) ? 'success' : 'ghost'\"></ax-badge>\n </ax-suffix>\n <ax-content>\n <p class=\"font-semibold self-start mb-4\">{{ language.title }}</p>\n <div class=\"flex flex-grow items-center justify-center\">\n <axp-widgets-container class=\"flex flex-col gap-2 p-4\" [context]=\"language.context\"\n (onContextChanged)=\"handleContextChanged($event, language)\">\n <ng-container axp-widget-renderer [node]=\"language.node\" [mode]=\"'edit'\"> </ng-container>\n </axp-widgets-container>\n </div>\n </ax-content>\n </ax-tab-item>\n }\n </ax-tabs>\n </aside>\n <div class=\"flex-1 min-w-0 p-4 flex flex-col\">\n <ng-template [axTabContent] #content=\"axTabContent\"> </ng-template>\n </div>\n</div>\n}\n<ax-footer class=\"flex items-center justify-between gap-4\">\n <ax-prefix class=\"flex items-center min-w-0\">\n @if (hasLanguagesBeyondProfiles()) {\n <ax-check-box [value]=\"showOtherLanguages()\" (onValueChanged)=\"onShowOtherLanguagesChanged($event)\">\n <ax-label>{{ ('@general:widgets.multi-language-select.show-other-languages' | translate | async) }}</ax-label>\n </ax-check-box>\n }\n </ax-prefix>\n <ax-suffix>\n <ax-button [text]=\"('@general:actions.cancel.title' | translate | async)\" (onClick)=\"close()\"></ax-button>\n <ax-button color=\"primary\" [text]=\"('@general:actions.save.title' | translate | async)\"\n (onClick)=\"onSaveButtonClick()\"></ax-button>\n </ax-suffix>\n</ax-footer>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i2.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXCheckBoxModule }, { kind: "component", type: i1$2.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["disabled", "tabIndex", "readonly", "color", "value", "name", "id", "isLoading", "indeterminate"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i5.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "reorderable", "reorderDelay", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged", "onTabsReordered"] }, { kind: "component", type: i5.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "directive", type: i5.AXTabContentDirective, selector: "[axTabContent]", inputs: ["axTabContent"], exportAs: ["axTabContent"] }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i1$3.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: i1.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i1.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
|
|
390
386
|
}
|
|
391
387
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPSelectLanguagePopup, decorators: [{
|
|
392
388
|
type: Component,
|
|
@@ -798,7 +794,7 @@ class AXPButtonWidgetColumnComponent extends AXPColumnWidgetComponent {
|
|
|
798
794
|
<ax-loading></ax-loading>
|
|
799
795
|
}
|
|
800
796
|
</ax-button>
|
|
801
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "
|
|
797
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i2$2.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
802
798
|
}
|
|
803
799
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPButtonWidgetColumnComponent, decorators: [{
|
|
804
800
|
type: Component,
|
|
@@ -914,7 +910,7 @@ class AXPButtonWidgetViewComponent extends AXPLayoutBaseWidgetComponent {
|
|
|
914
910
|
<ax-loading> </ax-loading>
|
|
915
911
|
}
|
|
916
912
|
</ax-button>
|
|
917
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "
|
|
913
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i2$2.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBadgeModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
918
914
|
}
|
|
919
915
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPButtonWidgetViewComponent, decorators: [{
|
|
920
916
|
type: Component,
|
|
@@ -964,7 +960,7 @@ const AXPButtonWidget = {
|
|
|
964
960
|
],
|
|
965
961
|
components: {
|
|
966
962
|
designer: {
|
|
967
|
-
component: () => import('./acorex-platform-framework-client-layout-widgets-button-widget-designer.component-
|
|
963
|
+
component: () => import('./acorex-platform-framework-client-layout-widgets-button-widget-designer.component-BDOdcoyN.mjs').then((c) => c.AXPButtonWidgetDesignerComponent),
|
|
968
964
|
},
|
|
969
965
|
view: {
|
|
970
966
|
component: () => Promise.resolve().then(function () { return buttonWidgetView_component; }).then((c) => c.AXPButtonWidgetViewComponent),
|
|
@@ -3460,7 +3456,7 @@ class AXPContactWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
3460
3456
|
</ax-lookup>
|
|
3461
3457
|
}
|
|
3462
3458
|
</div>
|
|
3463
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AXLookupComponent, selector: "ax-lookup", inputs: ["name", "mode", "dataSource", "treeDataSource", "valueField", "textField", "disabledField", "columns", "treeParentField", "hasChildrenField", "searchable", "adaptivityEnabled", "caption", "alternate", "searchPlaceholder", "placeholder", "disabled", "readonly", "look", "itemHeight", "maxVisibleItems", "treeSelectionBehavior", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i3.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i1$7.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "maskPattern", "customTokens", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "onMaskChanged"] }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3459
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AXLookupComponent, selector: "ax-lookup", inputs: ["name", "mode", "dataSource", "treeDataSource", "valueField", "textField", "disabledField", "columns", "treeParentField", "hasChildrenField", "searchable", "adaptivityEnabled", "caption", "alternate", "searchPlaceholder", "placeholder", "disabled", "readonly", "look", "itemHeight", "maxVisibleItems", "treeSelectionBehavior", "highlightSearch", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i3.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i1$7.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "maskPattern", "customTokens", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "onMaskChanged"] }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3464
3460
|
}
|
|
3465
3461
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPContactWidgetEditComponent, decorators: [{
|
|
3466
3462
|
type: Component,
|
|
@@ -3944,7 +3940,7 @@ class AXPFilterOperationsComponent {
|
|
|
3944
3940
|
return resolved.length > 0 ? resolved : base;
|
|
3945
3941
|
}
|
|
3946
3942
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPFilterOperationsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3947
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", 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 }, operations: { classPropertyName: "operations", publicName: "operations", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedOperation: "selectedOperationChange" }, ngImport: i0, template: "@if (operationItems().length > 1) {\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=\"max-h-max overflow-auto bg-lightest py-5 px-3 border border-default rounded-md shadow-md w-full 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]=\"operationItems()\"\n [multiple]=\"false\"\n ></ax-selection-list>\n </div>\n</ax-popover>\n}\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i3$1.AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "visualContextScope", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "
|
|
3943
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", 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 }, operations: { classPropertyName: "operations", publicName: "operations", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedOperation: "selectedOperationChange" }, ngImport: i0, template: "@if (operationItems().length > 1) {\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=\"max-h-max overflow-auto bg-lightest py-5 px-3 border border-default rounded-md shadow-md w-full 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]=\"operationItems()\"\n [multiple]=\"false\"\n ></ax-selection-list>\n </div>\n</ax-popover>\n}\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i3$1.AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "visualContextScope", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXSelectionListModule }, { kind: "component", type: i2$4.AXSelectionListComponent, selector: "ax-selection-list", inputs: ["id", "name", "disabled", "readonly", "tabIndex", "value", "valueField", "textField", "disabledField", "readonlyField", "multiple", "direction", "customTemplate", "showControl", "items", "look"], outputs: ["onValueChanged", "onBlur", "onFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3948
3944
|
}
|
|
3949
3945
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPFilterOperationsComponent, decorators: [{
|
|
3950
3946
|
type: Component,
|
|
@@ -4142,15 +4138,31 @@ class AXPDateTimeBoxWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
4142
4138
|
void this.translatePresets(presets);
|
|
4143
4139
|
}, /* @ts-ignore */
|
|
4144
4140
|
...(ngDevMode ? [{ debugName: "#presetTranslateEffect" }] : /* istanbul ignore next */ []));
|
|
4141
|
+
/**
|
|
4142
|
+
* Revalidates when min/max or dependent rules change. Skips the first CD run and
|
|
4143
|
+
* empty/pristine fields so create forms do not show required errors on open.
|
|
4144
|
+
* `refresh()` still validates immediately; later runs revalidate when there is a
|
|
4145
|
+
* value or the user already touched the field.
|
|
4146
|
+
*/
|
|
4147
|
+
this.#hasCompletedInitialDependencyRevalidate = false;
|
|
4148
|
+
this.#hasUserInteracted = false;
|
|
4145
4149
|
this.#revalidateWhenDependenciesChange = effect(() => {
|
|
4146
4150
|
if (this.filterMode()) {
|
|
4147
4151
|
return;
|
|
4148
4152
|
}
|
|
4149
4153
|
this.validationRules();
|
|
4150
4154
|
this.minValue();
|
|
4155
|
+
this.maxValue();
|
|
4151
4156
|
this.validationRevision();
|
|
4152
4157
|
untracked(() => {
|
|
4158
|
+
if (!this.#hasCompletedInitialDependencyRevalidate) {
|
|
4159
|
+
this.#hasCompletedInitialDependencyRevalidate = true;
|
|
4160
|
+
return;
|
|
4161
|
+
}
|
|
4153
4162
|
queueMicrotask(() => {
|
|
4163
|
+
if (!this.#shouldRevalidateStandardDateTimeBox()) {
|
|
4164
|
+
return;
|
|
4165
|
+
}
|
|
4154
4166
|
void this.standardDateTimeBox()?.validate();
|
|
4155
4167
|
});
|
|
4156
4168
|
});
|
|
@@ -4192,11 +4204,23 @@ class AXPDateTimeBoxWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
4192
4204
|
this.selectedPresetId.set(presetId);
|
|
4193
4205
|
}
|
|
4194
4206
|
}
|
|
4207
|
+
/**
|
|
4208
|
+
* Revalidates when min/max or dependent rules change. Skips the first CD run and
|
|
4209
|
+
* empty/pristine fields so create forms do not show required errors on open.
|
|
4210
|
+
* `refresh()` still validates immediately; later runs revalidate when there is a
|
|
4211
|
+
* value or the user already touched the field.
|
|
4212
|
+
*/
|
|
4213
|
+
#hasCompletedInitialDependencyRevalidate;
|
|
4214
|
+
#hasUserInteracted;
|
|
4195
4215
|
#revalidateWhenDependenciesChange;
|
|
4216
|
+
#shouldRevalidateStandardDateTimeBox() {
|
|
4217
|
+
const value = this.getValue();
|
|
4218
|
+
const hasValue = value != null && value !== '';
|
|
4219
|
+
const box = this.standardDateTimeBox();
|
|
4220
|
+
return hasValue || this.#hasUserInteracted || box?.dirty === true || box?.touched === true;
|
|
4221
|
+
}
|
|
4196
4222
|
validationTrackKey(validation, index) {
|
|
4197
|
-
const compareValue = validation.options?.compareValue ??
|
|
4198
|
-
validation.options?.value ??
|
|
4199
|
-
`${validation.options?.min ?? ''}-${validation.options?.max ?? ''}`;
|
|
4223
|
+
const compareValue = validation.options?.compareValue ?? validation.options?.value ?? `${validation.options?.min ?? ''}-${validation.options?.max ?? ''}`;
|
|
4200
4224
|
return `${index}-${validation.rule}-${this.validationRevision()}-${compareValue}-${this.minValue() ?? ''}`;
|
|
4201
4225
|
}
|
|
4202
4226
|
validationMessage(validation) {
|
|
@@ -4210,6 +4234,7 @@ class AXPDateTimeBoxWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
4210
4234
|
}
|
|
4211
4235
|
handleValueChange(e) {
|
|
4212
4236
|
if (e.isUserInteraction) {
|
|
4237
|
+
this.#hasUserInteracted = true;
|
|
4213
4238
|
this.setValue(this.normalizeFieldValue(e.value));
|
|
4214
4239
|
}
|
|
4215
4240
|
}
|
|
@@ -4268,9 +4293,7 @@ class AXPDateTimeBoxWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
4268
4293
|
async translatePresets(presets) {
|
|
4269
4294
|
const translated = await Promise.all(presets.map(async (preset) => ({
|
|
4270
4295
|
id: preset.id,
|
|
4271
|
-
title: preset.title.startsWith('@')
|
|
4272
|
-
? await this.translationService.translateAsync(preset.title)
|
|
4273
|
-
: preset.title,
|
|
4296
|
+
title: preset.title.startsWith('@') ? await this.translationService.translateAsync(preset.title) : preset.title,
|
|
4274
4297
|
})));
|
|
4275
4298
|
this.translatedPresets.set(translated);
|
|
4276
4299
|
}
|
|
@@ -4502,21 +4525,11 @@ class AXPDateTimeBoxWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
4502
4525
|
return cls;
|
|
4503
4526
|
}
|
|
4504
4527
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPDateTimeBoxWidgetEditComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4505
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPDateTimeBoxWidgetEditComponent, isStandalone: true, selector: "axp-date-time-box-widget-edit", host: { properties: { "class": "this.__class" } }, viewQueries: [{ propertyName: "lookup", first: true, predicate: ["lookup"], descendants: true, isSignal: true }, { propertyName: "standardDateTimeBox", first: true, predicate: ["standardDateTimeBox"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<!-- Filter mode: grid/list filters with operation metadata and optional preset ranges -->\n@if (filterMode()) {\n <!-- Simple filter UI: operation picker + one or two datetime inputs -->\n @if (filterUi() === 'simple') {\n <div class=\"flex items-center w-full\">\n <!-- Between operation: from / to range inputs -->\n @if (operation().type === 'between') {\n <div class=\"flex-1 flex gap-2\">\n <ax-datetime-box\n #dateTimeBox\n class=\"w-full\"\n [format]=\"calendarFormat()\"\n [picker]=\"format()\"\n [depth]=\"inputDepth()\"\n [minValue]=\"filterFromMinValue()\"\n [maxValue]=\"filterFromMaxValue()\"\n [placeholder]=\"'@general:terms.common.from' | translate | async\"\n [disabled]=\"isValuelessOperation()\"\n [ngModel]=\"filterRangeValue().from\"\n (onValueChanged)=\"handleFilterValueChange($event, 'from')\"\n >\n <ax-clear-button></ax-clear-button>\n @for (validation of validationRules(); track validationTrackKey(validation, $index)) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validationMessage(validation)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-datetime-box>\n <ax-datetime-box\n class=\"w-full\"\n [format]=\"calendarFormat()\"\n [picker]=\"format()\"\n [depth]=\"inputDepth()\"\n [minValue]=\"filterToMinValue()\"\n [maxValue]=\"filterToMaxValue()\"\n [placeholder]=\"'@general:terms.common.to' | translate | async\"\n [disabled]=\"isValuelessOperation()\"\n [ngModel]=\"filterRangeValue().to\"\n (onValueChanged)=\"handleFilterValueChange($event, 'to')\"\n >\n <ax-clear-button></ax-clear-button>\n @for (validation of validationRules(); track validationTrackKey(validation, $index)) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validationMessage(validation)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-datetime-box>\n </div>\n } @else {\n <!-- Single-value operations: equal, greaterThan, lessThan, isEmpty, isNotEmpty, etc. -->\n <ax-datetime-box\n #dateTimeBox\n class=\"flex-1\"\n [format]=\"calendarFormat()\"\n [picker]=\"format()\"\n [depth]=\"inputDepth()\"\n [placeholder]=\"(placeholder() | translate | async) ?? ''\"\n [disabled]=\"isValuelessOperation()\"\n [ngModel]=\"filterValue()\"\n (onValueChanged)=\"handleFilterValueChange($event, 'self')\"\n >\n <ax-clear-button></ax-clear-button>\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"$safeNavigationMigration(validation.options?.message)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-datetime-box>\n }\n\n <!-- Operation selector (equal, between, isEmpty, ...) -->\n <axp-filter-operations\n type=\"datetime\"\n [operations]=\"filterOperations()\"\n [selectedOperation]=\"operation().type\"\n (selectedOperationChange)=\"handleOperationChange($event)\"\n ></axp-filter-operations>\n </div>\n } @else {\n <!-- Presets filter UI: relative ranges (Today, This Week, ...) plus manual inputs -->\n <div class=\"flex flex-col items-center w-full\">\n <!-- Preset dropdown (Today, Yesterday, This Week, Between, Greater Than, ...) -->\n @if (resolvedPresets().length) {\n <ax-lookup\n #lookup\n mode=\"drop-down-list\"\n class=\"w-full\"\n [dataSource]=\"translatedPresets()\"\n [valueField]=\"'id'\"\n [textField]=\"'title'\"\n [searchable]=\"false\"\n [placeholder]=\"('@general:actions.select.title' | translate | async) ?? ''\"\n [ngModel]=\"selectedPresetId()\"\n (onValueChanged)=\"handlePresetChange($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-lookup>\n }\n\n <!-- Manual preset: custom between range -->\n @if (selectedManualPreset()?.operationType === 'between') {\n <div class=\"flex gap-2 mt-2 w-full\">\n <ax-datetime-box\n [format]=\"calendarFormat()\"\n [picker]=\"format()\"\n [depth]=\"inputDepth()\"\n [minValue]=\"filterFromMinValue()\"\n [maxValue]=\"filterFromMaxValue()\"\n [placeholder]=\"'@general:terms.common.from' | translate | async\"\n [ngModel]=\"filterRangeValue().from\"\n (onValueChanged)=\"handleFilterValueChange($event, 'from')\"\n >\n @for (validation of validationRules(); track validationTrackKey(validation, $index)) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validationMessage(validation)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n <ax-clear-button></ax-clear-button>\n </ax-datetime-box>\n <ax-datetime-box\n [format]=\"calendarFormat()\"\n [picker]=\"format()\"\n [depth]=\"inputDepth()\"\n [minValue]=\"filterToMinValue()\"\n [maxValue]=\"filterToMaxValue()\"\n [placeholder]=\"'@general:terms.common.to' | translate | async\"\n [ngModel]=\"filterRangeValue().to\"\n (onValueChanged)=\"handleFilterValueChange($event, 'to')\"\n >\n <ax-clear-button></ax-clear-button>\n @for (validation of validationRules(); track validationTrackKey(validation, $index)) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validationMessage(validation)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-datetime-box>\n </div>\n }\n\n <!-- Manual preset: single bound for greaterThan / lessThan -->\n @if (\n selectedManualPreset()?.operationType === 'greaterThan' ||\n selectedManualPreset()?.operationType === 'lessThan'\n ) {\n <div class=\"w-full mt-2\">\n <ax-datetime-box\n [format]=\"calendarFormat()\"\n [picker]=\"format()\"\n [depth]=\"inputDepth()\"\n [ngModel]=\"filterValue()\"\n (onValueChanged)=\"handleFilterValueChange($event, 'self')\"\n >\n @for (validation of validationRules(); track validationTrackKey(validation, $index)) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validationMessage(validation)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n <ax-clear-button></ax-clear-button>\n </ax-datetime-box>\n </div>\n }\n </div>\n }\n} @else {\n <!-- Standard form edit: single date/time value bound to entity or form field -->\n <ax-datetime-box\n #standardDateTimeBox\n [ngModel]=\"getValue()\"\n [picker]=\"format()\"\n [depth]=\"inputDepth()\"\n (onValueChanged)=\"handleValueChange($event)\"\n [minValue]=\"minValue()\"\n [maxValue]=\"maxValue()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly()\"\n [format]=\"calendarFormat()\"\n [placeholder]=\"placeholder()\"\n >\n @for (validation of validationRules(); track validationTrackKey(validation, $index)) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validationMessage(validation)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n @if (clearButton()) {\n <ax-clear-button></ax-clear-button>\n }\n </ax-datetime-box>\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i3.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXDateTimeBoxModule }, { kind: "component", type: i3$2.AXDateTimeBoxComponent, selector: "ax-datetime-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "depth", "id", "type", "look", "holidayDates", "allowTyping", "picker", "calendar", "weekend", "weekdays", "calendarLook", "yearRange", "boxLook", "format"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "onOpened", "onClosed", "readonlyChange", "disabledChange", "formatChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: AXLookupComponent, selector: "ax-lookup", inputs: ["name", "mode", "dataSource", "treeDataSource", "valueField", "textField", "disabledField", "columns", "treeParentField", "hasChildrenField", "searchable", "adaptivityEnabled", "caption", "alternate", "searchPlaceholder", "placeholder", "disabled", "readonly", "look", "itemHeight", "maxVisibleItems", "treeSelectionBehavior", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXPFilterOperationsComponent, selector: "axp-filter-operations", inputs: ["selectedOperation", "type", "operations"], outputs: ["selectedOperationChange"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
4528
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPDateTimeBoxWidgetEditComponent, isStandalone: true, selector: "axp-date-time-box-widget-edit", host: { properties: { "class": "this.__class" } }, viewQueries: [{ propertyName: "lookup", first: true, predicate: ["lookup"], descendants: true, isSignal: true }, { propertyName: "standardDateTimeBox", first: true, predicate: ["standardDateTimeBox"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<!-- Filter mode: grid/list filters with operation metadata and optional preset ranges -->\n@if (filterMode()) {\n <!-- Simple filter UI: operation picker + one or two datetime inputs -->\n @if (filterUi() === 'simple') {\n <div class=\"flex items-center w-full\">\n <!-- Between operation: from / to range inputs -->\n @if (operation().type === 'between') {\n <div class=\"flex-1 flex gap-2\">\n <ax-datetime-box\n #dateTimeBox\n class=\"w-full\"\n [format]=\"calendarFormat()\"\n [picker]=\"format()\"\n [depth]=\"inputDepth()\"\n [minValue]=\"filterFromMinValue()\"\n [maxValue]=\"filterFromMaxValue()\"\n [placeholder]=\"'@general:terms.common.from' | translate | async\"\n [disabled]=\"isValuelessOperation()\"\n [ngModel]=\"filterRangeValue().from\"\n (onValueChanged)=\"handleFilterValueChange($event, 'from')\"\n >\n <ax-clear-button></ax-clear-button>\n @for (validation of validationRules(); track validationTrackKey(validation, $index)) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validationMessage(validation)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-datetime-box>\n <ax-datetime-box\n class=\"w-full\"\n [format]=\"calendarFormat()\"\n [picker]=\"format()\"\n [depth]=\"inputDepth()\"\n [minValue]=\"filterToMinValue()\"\n [maxValue]=\"filterToMaxValue()\"\n [placeholder]=\"'@general:terms.common.to' | translate | async\"\n [disabled]=\"isValuelessOperation()\"\n [ngModel]=\"filterRangeValue().to\"\n (onValueChanged)=\"handleFilterValueChange($event, 'to')\"\n >\n <ax-clear-button></ax-clear-button>\n @for (validation of validationRules(); track validationTrackKey(validation, $index)) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validationMessage(validation)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-datetime-box>\n </div>\n } @else {\n <!-- Single-value operations: equal, greaterThan, lessThan, isEmpty, isNotEmpty, etc. -->\n <ax-datetime-box\n #dateTimeBox\n class=\"flex-1\"\n [format]=\"calendarFormat()\"\n [picker]=\"format()\"\n [depth]=\"inputDepth()\"\n [placeholder]=\"(placeholder() | translate | async) ?? ''\"\n [disabled]=\"isValuelessOperation()\"\n [ngModel]=\"filterValue()\"\n (onValueChanged)=\"handleFilterValueChange($event, 'self')\"\n >\n <ax-clear-button></ax-clear-button>\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"$safeNavigationMigration(validation.options?.message)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-datetime-box>\n }\n\n <!-- Operation selector (equal, between, isEmpty, ...) -->\n <axp-filter-operations\n type=\"datetime\"\n [operations]=\"filterOperations()\"\n [selectedOperation]=\"operation().type\"\n (selectedOperationChange)=\"handleOperationChange($event)\"\n ></axp-filter-operations>\n </div>\n } @else {\n <!-- Presets filter UI: relative ranges (Today, This Week, ...) plus manual inputs -->\n <div class=\"flex flex-col items-center w-full\">\n <!-- Preset dropdown (Today, Yesterday, This Week, Between, Greater Than, ...) -->\n @if (resolvedPresets().length) {\n <ax-lookup\n #lookup\n mode=\"drop-down-list\"\n class=\"w-full\"\n [dataSource]=\"translatedPresets()\"\n [valueField]=\"'id'\"\n [textField]=\"'title'\"\n [searchable]=\"false\"\n [placeholder]=\"('@general:actions.select.title' | translate | async) ?? ''\"\n [ngModel]=\"selectedPresetId()\"\n (onValueChanged)=\"handlePresetChange($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-lookup>\n }\n\n <!-- Manual preset: custom between range -->\n @if (selectedManualPreset()?.operationType === 'between') {\n <div class=\"flex gap-2 mt-2 w-full\">\n <ax-datetime-box\n [format]=\"calendarFormat()\"\n [picker]=\"format()\"\n [depth]=\"inputDepth()\"\n [minValue]=\"filterFromMinValue()\"\n [maxValue]=\"filterFromMaxValue()\"\n [placeholder]=\"'@general:terms.common.from' | translate | async\"\n [ngModel]=\"filterRangeValue().from\"\n (onValueChanged)=\"handleFilterValueChange($event, 'from')\"\n >\n @for (validation of validationRules(); track validationTrackKey(validation, $index)) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validationMessage(validation)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n <ax-clear-button></ax-clear-button>\n </ax-datetime-box>\n <ax-datetime-box\n [format]=\"calendarFormat()\"\n [picker]=\"format()\"\n [depth]=\"inputDepth()\"\n [minValue]=\"filterToMinValue()\"\n [maxValue]=\"filterToMaxValue()\"\n [placeholder]=\"'@general:terms.common.to' | translate | async\"\n [ngModel]=\"filterRangeValue().to\"\n (onValueChanged)=\"handleFilterValueChange($event, 'to')\"\n >\n <ax-clear-button></ax-clear-button>\n @for (validation of validationRules(); track validationTrackKey(validation, $index)) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validationMessage(validation)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-datetime-box>\n </div>\n }\n\n <!-- Manual preset: single bound for greaterThan / lessThan -->\n @if (\n selectedManualPreset()?.operationType === 'greaterThan' ||\n selectedManualPreset()?.operationType === 'lessThan'\n ) {\n <div class=\"w-full mt-2\">\n <ax-datetime-box\n [format]=\"calendarFormat()\"\n [picker]=\"format()\"\n [depth]=\"inputDepth()\"\n [ngModel]=\"filterValue()\"\n (onValueChanged)=\"handleFilterValueChange($event, 'self')\"\n >\n @for (validation of validationRules(); track validationTrackKey(validation, $index)) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validationMessage(validation)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n <ax-clear-button></ax-clear-button>\n </ax-datetime-box>\n </div>\n }\n </div>\n }\n} @else {\n <!-- Standard form edit: single date/time value bound to entity or form field -->\n <ax-datetime-box\n #standardDateTimeBox\n [ngModel]=\"getValue()\"\n [picker]=\"format()\"\n [depth]=\"inputDepth()\"\n (onValueChanged)=\"handleValueChange($event)\"\n [minValue]=\"minValue()\"\n [maxValue]=\"maxValue()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly()\"\n [format]=\"calendarFormat()\"\n [placeholder]=\"placeholder()\"\n >\n @for (validation of validationRules(); track validationTrackKey(validation, $index)) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validationMessage(validation)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n @if (clearButton()) {\n <ax-clear-button></ax-clear-button>\n }\n </ax-datetime-box>\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i3.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXDateTimeBoxModule }, { kind: "component", type: i3$2.AXDateTimeBoxComponent, selector: "ax-datetime-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "depth", "id", "type", "look", "holidayDates", "allowTyping", "picker", "calendar", "weekend", "weekdays", "calendarLook", "yearRange", "boxLook", "format"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "onOpened", "onClosed", "readonlyChange", "disabledChange", "formatChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: AXLookupComponent, selector: "ax-lookup", inputs: ["name", "mode", "dataSource", "treeDataSource", "valueField", "textField", "disabledField", "columns", "treeParentField", "hasChildrenField", "searchable", "adaptivityEnabled", "caption", "alternate", "searchPlaceholder", "placeholder", "disabled", "readonly", "look", "itemHeight", "maxVisibleItems", "treeSelectionBehavior", "highlightSearch", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXPFilterOperationsComponent, selector: "axp-filter-operations", inputs: ["selectedOperation", "type", "operations"], outputs: ["selectedOperationChange"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
4506
4529
|
}
|
|
4507
4530
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPDateTimeBoxWidgetEditComponent, decorators: [{
|
|
4508
4531
|
type: Component,
|
|
4509
|
-
args: [{ selector: 'axp-date-time-box-widget-edit', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
4510
|
-
CommonModule,
|
|
4511
|
-
FormsModule,
|
|
4512
|
-
AXFormModule,
|
|
4513
|
-
AXValidationModule,
|
|
4514
|
-
AXDateTimeBoxModule,
|
|
4515
|
-
AXDecoratorModule,
|
|
4516
|
-
AXLookupComponent,
|
|
4517
|
-
AXTranslationModule,
|
|
4518
|
-
AXPFilterOperationsComponent,
|
|
4519
|
-
], template: "<!-- Filter mode: grid/list filters with operation metadata and optional preset ranges -->\n@if (filterMode()) {\n <!-- Simple filter UI: operation picker + one or two datetime inputs -->\n @if (filterUi() === 'simple') {\n <div class=\"flex items-center w-full\">\n <!-- Between operation: from / to range inputs -->\n @if (operation().type === 'between') {\n <div class=\"flex-1 flex gap-2\">\n <ax-datetime-box\n #dateTimeBox\n class=\"w-full\"\n [format]=\"calendarFormat()\"\n [picker]=\"format()\"\n [depth]=\"inputDepth()\"\n [minValue]=\"filterFromMinValue()\"\n [maxValue]=\"filterFromMaxValue()\"\n [placeholder]=\"'@general:terms.common.from' | translate | async\"\n [disabled]=\"isValuelessOperation()\"\n [ngModel]=\"filterRangeValue().from\"\n (onValueChanged)=\"handleFilterValueChange($event, 'from')\"\n >\n <ax-clear-button></ax-clear-button>\n @for (validation of validationRules(); track validationTrackKey(validation, $index)) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validationMessage(validation)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-datetime-box>\n <ax-datetime-box\n class=\"w-full\"\n [format]=\"calendarFormat()\"\n [picker]=\"format()\"\n [depth]=\"inputDepth()\"\n [minValue]=\"filterToMinValue()\"\n [maxValue]=\"filterToMaxValue()\"\n [placeholder]=\"'@general:terms.common.to' | translate | async\"\n [disabled]=\"isValuelessOperation()\"\n [ngModel]=\"filterRangeValue().to\"\n (onValueChanged)=\"handleFilterValueChange($event, 'to')\"\n >\n <ax-clear-button></ax-clear-button>\n @for (validation of validationRules(); track validationTrackKey(validation, $index)) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validationMessage(validation)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-datetime-box>\n </div>\n } @else {\n <!-- Single-value operations: equal, greaterThan, lessThan, isEmpty, isNotEmpty, etc. -->\n <ax-datetime-box\n #dateTimeBox\n class=\"flex-1\"\n [format]=\"calendarFormat()\"\n [picker]=\"format()\"\n [depth]=\"inputDepth()\"\n [placeholder]=\"(placeholder() | translate | async) ?? ''\"\n [disabled]=\"isValuelessOperation()\"\n [ngModel]=\"filterValue()\"\n (onValueChanged)=\"handleFilterValueChange($event, 'self')\"\n >\n <ax-clear-button></ax-clear-button>\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"$safeNavigationMigration(validation.options?.message)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-datetime-box>\n }\n\n <!-- Operation selector (equal, between, isEmpty, ...) -->\n <axp-filter-operations\n type=\"datetime\"\n [operations]=\"filterOperations()\"\n [selectedOperation]=\"operation().type\"\n (selectedOperationChange)=\"handleOperationChange($event)\"\n ></axp-filter-operations>\n </div>\n } @else {\n <!-- Presets filter UI: relative ranges (Today, This Week, ...) plus manual inputs -->\n <div class=\"flex flex-col items-center w-full\">\n <!-- Preset dropdown (Today, Yesterday, This Week, Between, Greater Than, ...) -->\n @if (resolvedPresets().length) {\n <ax-lookup\n #lookup\n mode=\"drop-down-list\"\n class=\"w-full\"\n [dataSource]=\"translatedPresets()\"\n [valueField]=\"'id'\"\n [textField]=\"'title'\"\n [searchable]=\"false\"\n [placeholder]=\"('@general:actions.select.title' | translate | async) ?? ''\"\n [ngModel]=\"selectedPresetId()\"\n (onValueChanged)=\"handlePresetChange($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-lookup>\n }\n\n <!-- Manual preset: custom between range -->\n @if (selectedManualPreset()?.operationType === 'between') {\n <div class=\"flex gap-2 mt-2 w-full\">\n <ax-datetime-box\n [format]=\"calendarFormat()\"\n [picker]=\"format()\"\n [depth]=\"inputDepth()\"\n [minValue]=\"filterFromMinValue()\"\n [maxValue]=\"filterFromMaxValue()\"\n [placeholder]=\"'@general:terms.common.from' | translate | async\"\n [ngModel]=\"filterRangeValue().from\"\n (onValueChanged)=\"handleFilterValueChange($event, 'from')\"\n >\n @for (validation of validationRules(); track validationTrackKey(validation, $index)) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validationMessage(validation)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n <ax-clear-button></ax-clear-button>\n </ax-datetime-box>\n <ax-datetime-box\n [format]=\"calendarFormat()\"\n [picker]=\"format()\"\n [depth]=\"inputDepth()\"\n [minValue]=\"filterToMinValue()\"\n [maxValue]=\"filterToMaxValue()\"\n [placeholder]=\"'@general:terms.common.to' | translate | async\"\n [ngModel]=\"filterRangeValue().to\"\n (onValueChanged)=\"handleFilterValueChange($event, 'to')\"\n >\n <ax-clear-button></ax-clear-button>\n @for (validation of validationRules(); track validationTrackKey(validation, $index)) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validationMessage(validation)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-datetime-box>\n </div>\n }\n\n <!-- Manual preset: single bound for greaterThan / lessThan -->\n @if (\n selectedManualPreset()?.operationType === 'greaterThan' ||\n selectedManualPreset()?.operationType === 'lessThan'\n ) {\n <div class=\"w-full mt-2\">\n <ax-datetime-box\n [format]=\"calendarFormat()\"\n [picker]=\"format()\"\n [depth]=\"inputDepth()\"\n [ngModel]=\"filterValue()\"\n (onValueChanged)=\"handleFilterValueChange($event, 'self')\"\n >\n @for (validation of validationRules(); track validationTrackKey(validation, $index)) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validationMessage(validation)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n <ax-clear-button></ax-clear-button>\n </ax-datetime-box>\n </div>\n }\n </div>\n }\n} @else {\n <!-- Standard form edit: single date/time value bound to entity or form field -->\n <ax-datetime-box\n #standardDateTimeBox\n [ngModel]=\"getValue()\"\n [picker]=\"format()\"\n [depth]=\"inputDepth()\"\n (onValueChanged)=\"handleValueChange($event)\"\n [minValue]=\"minValue()\"\n [maxValue]=\"maxValue()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly()\"\n [format]=\"calendarFormat()\"\n [placeholder]=\"placeholder()\"\n >\n @for (validation of validationRules(); track validationTrackKey(validation, $index)) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validationMessage(validation)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n @if (clearButton()) {\n <ax-clear-button></ax-clear-button>\n }\n </ax-datetime-box>\n}\n" }]
|
|
4532
|
+
args: [{ selector: 'axp-date-time-box-widget-edit', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, FormsModule, AXFormModule, AXValidationModule, AXDateTimeBoxModule, AXDecoratorModule, AXLookupComponent, AXTranslationModule, AXPFilterOperationsComponent], template: "<!-- Filter mode: grid/list filters with operation metadata and optional preset ranges -->\n@if (filterMode()) {\n <!-- Simple filter UI: operation picker + one or two datetime inputs -->\n @if (filterUi() === 'simple') {\n <div class=\"flex items-center w-full\">\n <!-- Between operation: from / to range inputs -->\n @if (operation().type === 'between') {\n <div class=\"flex-1 flex gap-2\">\n <ax-datetime-box\n #dateTimeBox\n class=\"w-full\"\n [format]=\"calendarFormat()\"\n [picker]=\"format()\"\n [depth]=\"inputDepth()\"\n [minValue]=\"filterFromMinValue()\"\n [maxValue]=\"filterFromMaxValue()\"\n [placeholder]=\"'@general:terms.common.from' | translate | async\"\n [disabled]=\"isValuelessOperation()\"\n [ngModel]=\"filterRangeValue().from\"\n (onValueChanged)=\"handleFilterValueChange($event, 'from')\"\n >\n <ax-clear-button></ax-clear-button>\n @for (validation of validationRules(); track validationTrackKey(validation, $index)) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validationMessage(validation)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-datetime-box>\n <ax-datetime-box\n class=\"w-full\"\n [format]=\"calendarFormat()\"\n [picker]=\"format()\"\n [depth]=\"inputDepth()\"\n [minValue]=\"filterToMinValue()\"\n [maxValue]=\"filterToMaxValue()\"\n [placeholder]=\"'@general:terms.common.to' | translate | async\"\n [disabled]=\"isValuelessOperation()\"\n [ngModel]=\"filterRangeValue().to\"\n (onValueChanged)=\"handleFilterValueChange($event, 'to')\"\n >\n <ax-clear-button></ax-clear-button>\n @for (validation of validationRules(); track validationTrackKey(validation, $index)) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validationMessage(validation)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-datetime-box>\n </div>\n } @else {\n <!-- Single-value operations: equal, greaterThan, lessThan, isEmpty, isNotEmpty, etc. -->\n <ax-datetime-box\n #dateTimeBox\n class=\"flex-1\"\n [format]=\"calendarFormat()\"\n [picker]=\"format()\"\n [depth]=\"inputDepth()\"\n [placeholder]=\"(placeholder() | translate | async) ?? ''\"\n [disabled]=\"isValuelessOperation()\"\n [ngModel]=\"filterValue()\"\n (onValueChanged)=\"handleFilterValueChange($event, 'self')\"\n >\n <ax-clear-button></ax-clear-button>\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"$safeNavigationMigration(validation.options?.message)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-datetime-box>\n }\n\n <!-- Operation selector (equal, between, isEmpty, ...) -->\n <axp-filter-operations\n type=\"datetime\"\n [operations]=\"filterOperations()\"\n [selectedOperation]=\"operation().type\"\n (selectedOperationChange)=\"handleOperationChange($event)\"\n ></axp-filter-operations>\n </div>\n } @else {\n <!-- Presets filter UI: relative ranges (Today, This Week, ...) plus manual inputs -->\n <div class=\"flex flex-col items-center w-full\">\n <!-- Preset dropdown (Today, Yesterday, This Week, Between, Greater Than, ...) -->\n @if (resolvedPresets().length) {\n <ax-lookup\n #lookup\n mode=\"drop-down-list\"\n class=\"w-full\"\n [dataSource]=\"translatedPresets()\"\n [valueField]=\"'id'\"\n [textField]=\"'title'\"\n [searchable]=\"false\"\n [placeholder]=\"('@general:actions.select.title' | translate | async) ?? ''\"\n [ngModel]=\"selectedPresetId()\"\n (onValueChanged)=\"handlePresetChange($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-lookup>\n }\n\n <!-- Manual preset: custom between range -->\n @if (selectedManualPreset()?.operationType === 'between') {\n <div class=\"flex gap-2 mt-2 w-full\">\n <ax-datetime-box\n [format]=\"calendarFormat()\"\n [picker]=\"format()\"\n [depth]=\"inputDepth()\"\n [minValue]=\"filterFromMinValue()\"\n [maxValue]=\"filterFromMaxValue()\"\n [placeholder]=\"'@general:terms.common.from' | translate | async\"\n [ngModel]=\"filterRangeValue().from\"\n (onValueChanged)=\"handleFilterValueChange($event, 'from')\"\n >\n @for (validation of validationRules(); track validationTrackKey(validation, $index)) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validationMessage(validation)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n <ax-clear-button></ax-clear-button>\n </ax-datetime-box>\n <ax-datetime-box\n [format]=\"calendarFormat()\"\n [picker]=\"format()\"\n [depth]=\"inputDepth()\"\n [minValue]=\"filterToMinValue()\"\n [maxValue]=\"filterToMaxValue()\"\n [placeholder]=\"'@general:terms.common.to' | translate | async\"\n [ngModel]=\"filterRangeValue().to\"\n (onValueChanged)=\"handleFilterValueChange($event, 'to')\"\n >\n <ax-clear-button></ax-clear-button>\n @for (validation of validationRules(); track validationTrackKey(validation, $index)) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validationMessage(validation)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-datetime-box>\n </div>\n }\n\n <!-- Manual preset: single bound for greaterThan / lessThan -->\n @if (\n selectedManualPreset()?.operationType === 'greaterThan' ||\n selectedManualPreset()?.operationType === 'lessThan'\n ) {\n <div class=\"w-full mt-2\">\n <ax-datetime-box\n [format]=\"calendarFormat()\"\n [picker]=\"format()\"\n [depth]=\"inputDepth()\"\n [ngModel]=\"filterValue()\"\n (onValueChanged)=\"handleFilterValueChange($event, 'self')\"\n >\n @for (validation of validationRules(); track validationTrackKey(validation, $index)) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validationMessage(validation)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n <ax-clear-button></ax-clear-button>\n </ax-datetime-box>\n </div>\n }\n </div>\n }\n} @else {\n <!-- Standard form edit: single date/time value bound to entity or form field -->\n <ax-datetime-box\n #standardDateTimeBox\n [ngModel]=\"getValue()\"\n [picker]=\"format()\"\n [depth]=\"inputDepth()\"\n (onValueChanged)=\"handleValueChange($event)\"\n [minValue]=\"minValue()\"\n [maxValue]=\"maxValue()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly()\"\n [format]=\"calendarFormat()\"\n [placeholder]=\"placeholder()\"\n >\n @for (validation of validationRules(); track validationTrackKey(validation, $index)) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validationMessage(validation)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n @if (clearButton()) {\n <ax-clear-button></ax-clear-button>\n }\n </ax-datetime-box>\n}\n" }]
|
|
4520
4533
|
}], ctorParameters: () => [], propDecorators: { lookup: [{ type: i0.ViewChild, args: ['lookup', { isSignal: true }] }], standardDateTimeBox: [{ type: i0.ViewChild, args: ['standardDateTimeBox', { isSignal: true }] }], __class: [{
|
|
4521
4534
|
type: HostBinding,
|
|
4522
4535
|
args: ['class']
|
|
@@ -4947,7 +4960,15 @@ class AXPLargeTextWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
4947
4960
|
this.currentLanguage = toSignal(this.translationService.langChanges$, {
|
|
4948
4961
|
initialValue: this.translationService.getActiveLang(),
|
|
4949
4962
|
});
|
|
4950
|
-
this.getCurrentText = computed(() =>
|
|
4963
|
+
this.getCurrentText = computed(() => {
|
|
4964
|
+
const value = this.getValue();
|
|
4965
|
+
if ((this.disabled() || this.readonly()) &&
|
|
4966
|
+
typeof value === 'string' &&
|
|
4967
|
+
value.trim().startsWith('@')) {
|
|
4968
|
+
return this.translationService.translateSync(value.trim()) || value;
|
|
4969
|
+
}
|
|
4970
|
+
return this.translationService.resolve(value, this.currentLanguage());
|
|
4971
|
+
}, /* @ts-ignore */
|
|
4951
4972
|
...(ngDevMode ? [{ debugName: "getCurrentText" }] : /* istanbul ignore next */ []));
|
|
4952
4973
|
}
|
|
4953
4974
|
handleValueChange(e) {
|
|
@@ -5026,7 +5047,7 @@ class AXPLargeTextWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
5026
5047
|
}
|
|
5027
5048
|
</div>
|
|
5028
5049
|
</div>
|
|
5029
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i3.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }, { kind: "ngmodule", type: AXTextAreaModule }, { kind: "component", type: i4.AXTextAreaComponent, selector: "ax-text-area", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "placeholder", "maxLength", "look", "rows", "allowResize", "showCounter", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "
|
|
5050
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i3.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }, { kind: "ngmodule", type: AXTextAreaModule }, { kind: "component", type: i4.AXTextAreaComponent, selector: "ax-text-area", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "placeholder", "maxLength", "look", "rows", "allowResize", "showCounter", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
5030
5051
|
}
|
|
5031
5052
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPLargeTextWidgetEditComponent, decorators: [{
|
|
5032
5053
|
type: Component,
|
|
@@ -5595,7 +5616,7 @@ class AXPNumberBoxWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
5595
5616
|
</ax-button>
|
|
5596
5617
|
}
|
|
5597
5618
|
</div>
|
|
5598
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXNumberBoxModule }, { kind: "component", type: i1$8.AXNumberBoxComponent, selector: "ax-number-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "minValue", "maxValue", "showSpinButtons", "thousandsSeparator", "decimals", "changeOnScroll", "step"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "thousandsSeparatorChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i3.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "
|
|
5619
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXNumberBoxModule }, { kind: "component", type: i1$8.AXNumberBoxComponent, selector: "ax-number-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "minValue", "maxValue", "showSpinButtons", "thousandsSeparator", "decimals", "changeOnScroll", "step"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "thousandsSeparatorChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i3.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1$5.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
5599
5620
|
}
|
|
5600
5621
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPNumberBoxWidgetEditComponent, decorators: [{
|
|
5601
5622
|
type: Component,
|
|
@@ -6886,7 +6907,7 @@ class AXPRichTextWidgetColumnComponent extends AXPColumnWidgetComponent {
|
|
|
6886
6907
|
} @else {
|
|
6887
6908
|
<span class="text-muted">---</span>
|
|
6888
6909
|
}
|
|
6889
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "
|
|
6910
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: AXSafePipe, name: "safe" }, { kind: "pipe", type: i1$5.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6890
6911
|
}
|
|
6891
6912
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPRichTextWidgetColumnComponent, decorators: [{
|
|
6892
6913
|
type: Component,
|
|
@@ -7110,7 +7131,7 @@ class AXPRichTextWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
7110
7131
|
[options]="validation.options"
|
|
7111
7132
|
></ax-validation-rule>
|
|
7112
7133
|
}
|
|
7113
|
-
</ax-wysiwyg-container>`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXWysiwygModule }, { kind: "component", type: i2$5.AXWysiwygContainerComponent, selector: "ax-wysiwyg-container", inputs: ["look", "readonly", "disabled", "value", "placeHolder", "initialLine"], outputs: ["onValueChanged"] }, { kind: "component", type: i2$5.AXWysiwygViewComponent, selector: "ax-wysiwyg-view" }, { kind: "component", type: i2$5.AXWysiwygAlignmentComponent, selector: "ax-wysiwyg-alignment" }, { kind: "component", type: i2$5.AXWysiwygColorsComponent, selector: "ax-wysiwyg-colors" }, { kind: "component", type: i2$5.AXWysiwygFontStyleComponent, selector: "ax-wysiwyg-font-style" }, { kind: "component", type: i2$5.AXWysiwygHistoryComponent, selector: "ax-wysiwyg-history" }, { kind: "component", type: i2$5.AXWysiwygInsertComponent, selector: "ax-wysiwyg-insert" }, { kind: "component", type: i2$5.AXWysiwygListComponent, selector: "ax-wysiwyg-list" }, { kind: "component", type: i2$5.AXWysiwygToolbarComponent, selector: "ax-wysiwyg-toolbar" }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i3.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "
|
|
7134
|
+
</ax-wysiwyg-container>`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXWysiwygModule }, { kind: "component", type: i2$5.AXWysiwygContainerComponent, selector: "ax-wysiwyg-container", inputs: ["look", "readonly", "disabled", "value", "placeHolder", "initialLine"], outputs: ["onValueChanged"] }, { kind: "component", type: i2$5.AXWysiwygViewComponent, selector: "ax-wysiwyg-view" }, { kind: "component", type: i2$5.AXWysiwygAlignmentComponent, selector: "ax-wysiwyg-alignment" }, { kind: "component", type: i2$5.AXWysiwygColorsComponent, selector: "ax-wysiwyg-colors" }, { kind: "component", type: i2$5.AXWysiwygFontStyleComponent, selector: "ax-wysiwyg-font-style" }, { kind: "component", type: i2$5.AXWysiwygHistoryComponent, selector: "ax-wysiwyg-history" }, { kind: "component", type: i2$5.AXWysiwygInsertComponent, selector: "ax-wysiwyg-insert" }, { kind: "component", type: i2$5.AXWysiwygListComponent, selector: "ax-wysiwyg-list" }, { kind: "component", type: i2$5.AXWysiwygToolbarComponent, selector: "ax-wysiwyg-toolbar" }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i3.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1$5.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
7114
7135
|
}
|
|
7115
7136
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPRichTextWidgetEditComponent, decorators: [{
|
|
7116
7137
|
type: Component,
|
|
@@ -8122,7 +8143,7 @@ class AXPSelectBoxWidgetEditComponent extends AXPDataListWidgetComponent {
|
|
|
8122
8143
|
return cls;
|
|
8123
8144
|
}
|
|
8124
8145
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPSelectBoxWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
8125
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPSelectBoxWidgetEditComponent, isStandalone: true, selector: "axp-select-box-widget-edit", host: { properties: { "class": "this.__class" }, classAttribute: "block flex-1" }, viewQueries: [{ propertyName: "comboBox", first: true, predicate: AXComboBoxComponent, descendants: true, isSignal: true }, { propertyName: "lookup", first: true, predicate: AXLookupComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (showSelectBoxSkeleton()) {\n <!-- ----- Loading indicator while registry data source resolves ----- -->\n <ax-skeleton [animated]=\"true\" class=\"axp-select-box-skeleton\"></ax-skeleton>\n}\n<!-- ----- In-memory list rendered with combo-box ----- -->\n@else if (isArraySource()) {\n <ax-combo-box\n [placeholder]=\"(placeholder() | translate | async) ?? ''\"\n [caption]=\"(placeholder() | translate | async) ?? ''\"\n [items]=\"comboItems()\"\n [value]=\"comboValue()\"\n [disabled]=\"isSelectBoxDisabled()\"\n [multiple]=\"multiple()\"\n [readonly]=\"readonly()\"\n [searchable]=\"allowSearch()\"\n (onValueChanged)=\"handleComboValueChange($event)\"\n >\n <!--------------------------------------------------------------->\n <!-- ----- Clear button ----- -->\n @if (hasClearButton() && !filterMode()) {\n <ax-clear-button></ax-clear-button>\n }\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"$safeNavigationMigration(validation.options?.message)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-combo-box>\n}\n<!-- ----- Registry or AXDataSource list rendered with lookup ----- -->\n@else if (editorKey()) {\n <ax-lookup\n [placeholder]=\"(placeholder() | translate | async) ?? ''\"\n [caption]=\"(placeholder() | translate | async) ?? ''\"\n [mode]=\"lookupMode()\"\n [dataSource]=\"effectiveDataSource()\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [value]=\"editorValue()\"\n [valueItems]=\"selectedItems()\"\n [disabled]=\"isSelectBoxDisabled()\"\n [readonly]=\"readonly()\"\n [searchable]=\"allowSearch()\"\n [itemTemplate]=\"multiple() ? lookupItemTemplate : lookupDropDownListItemTemplate\"\n [selectedTemplate]=\"lookupItemTemplate\"\n (onValueChanged)=\"handleLookupValueChange($event)\"\n >\n <!--------------------------------------------------------------->\n <!-- ----- Clear button ----- -->\n @if (hasClearButton() && !filterMode()) {\n <ax-clear-button></ax-clear-button>\n }\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"$safeNavigationMigration(validation.options?.message)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-lookup>\n}\n\n<!-- ----- Lookup item and selected-value label ----- -->\n<ng-template #lookupItemTemplate let-item>\n <span class=\"ax-lookup-option-text\"
|
|
8146
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPSelectBoxWidgetEditComponent, isStandalone: true, selector: "axp-select-box-widget-edit", host: { properties: { "class": "this.__class" }, classAttribute: "block flex-1" }, viewQueries: [{ propertyName: "comboBox", first: true, predicate: AXComboBoxComponent, descendants: true, isSignal: true }, { propertyName: "lookup", first: true, predicate: AXLookupComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (showSelectBoxSkeleton()) {\n <!-- ----- Loading indicator while registry data source resolves ----- -->\n <ax-skeleton [animated]=\"true\" class=\"axp-select-box-skeleton\"></ax-skeleton>\n}\n<!-- ----- In-memory list rendered with combo-box ----- -->\n@else if (isArraySource()) {\n <ax-combo-box\n [placeholder]=\"(placeholder() | translate | async) ?? ''\"\n [caption]=\"(placeholder() | translate | async) ?? ''\"\n [items]=\"comboItems()\"\n [value]=\"comboValue()\"\n [disabled]=\"isSelectBoxDisabled()\"\n [multiple]=\"multiple()\"\n [readonly]=\"readonly()\"\n [searchable]=\"allowSearch()\"\n (onValueChanged)=\"handleComboValueChange($event)\"\n >\n <!--------------------------------------------------------------->\n <!-- ----- Clear button ----- -->\n @if (hasClearButton() && !filterMode()) {\n <ax-clear-button></ax-clear-button>\n }\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"$safeNavigationMigration(validation.options?.message)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-combo-box>\n}\n<!-- ----- Registry or AXDataSource list rendered with lookup ----- -->\n@else if (editorKey()) {\n <ax-lookup\n [placeholder]=\"(placeholder() | translate | async) ?? ''\"\n [caption]=\"(placeholder() | translate | async) ?? ''\"\n [mode]=\"lookupMode()\"\n [dataSource]=\"effectiveDataSource()\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [value]=\"editorValue()\"\n [valueItems]=\"selectedItems()\"\n [disabled]=\"isSelectBoxDisabled()\"\n [readonly]=\"readonly()\"\n [searchable]=\"allowSearch()\"\n [itemTemplate]=\"multiple() ? lookupItemTemplate : lookupDropDownListItemTemplate\"\n [selectedTemplate]=\"lookupItemTemplate\"\n (onValueChanged)=\"handleLookupValueChange($event)\"\n >\n <!--------------------------------------------------------------->\n <!-- ----- Clear button ----- -->\n @if (hasClearButton() && !filterMode()) {\n <ax-clear-button></ax-clear-button>\n }\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"$safeNavigationMigration(validation.options?.message)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-lookup>\n}\n\n<!-- ----- Lookup item and selected-value label ----- -->\n<ng-template #lookupItemTemplate let-item let-highlightText=\"highlightText\">\n <span class=\"ax-lookup-option-text\">\n <ax-highlight-text\n [text]=\"(getLookupItemLabel(item) | translate | async) ?? ''\"\n [query]=\"highlightText ?? ''\"\n ></ax-highlight-text>\n </span>\n</ng-template>\n<!-- ----- Drop-down-list rows: library skips .ax-lookup-option chrome when itemTemplate is set ----- -->\n<ng-template #lookupDropDownListItemTemplate let-item let-highlightText=\"highlightText\">\n <span class=\"flex h-full w-full min-w-0 items-center px-3 text-sm\">\n <span class=\"ax-lookup-option-text min-w-0 flex-1 truncate\">\n <ax-highlight-text\n [text]=\"(getLookupItemLabel(item) | translate | async) ?? ''\"\n [query]=\"highlightText ?? ''\"\n ></ax-highlight-text>\n </span>\n </span>\n</ng-template>\n", styles: [":host .axp-select-box-skeleton{display:block;width:100%;height:2.5rem;border-radius:var(--ax-sys-radius-md, .375rem)}\n"], dependencies: [{ kind: "component", type: AXComboBoxComponent, selector: "ax-combo-box", inputs: ["name", "items", "searchable", "multiple", "adaptivityEnabled", "caption", "alternate", "placeholder", "searchPlaceholder", "highlightSearch", "emptyTemplate", "itemTemplate", "selectedTemplate", "disabled", "readonly", "look", "value"], outputs: ["lookChange", "valueChange", "onValueChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i3.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }, { kind: "component", type: AXHighlightTextComponent, selector: "ax-highlight-text", inputs: ["text", "query", "highlightDisabled", "highlightOptions"] }, { kind: "component", type: AXLookupComponent, selector: "ax-lookup", inputs: ["name", "mode", "dataSource", "treeDataSource", "valueField", "textField", "disabledField", "columns", "treeParentField", "hasChildrenField", "searchable", "adaptivityEnabled", "caption", "alternate", "searchPlaceholder", "placeholder", "disabled", "readonly", "look", "itemHeight", "maxVisibleItems", "treeSelectionBehavior", "highlightSearch", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXSkeletonModule }, { kind: "component", type: i3$5.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1$5.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8126
8147
|
}
|
|
8127
8148
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPSelectBoxWidgetEditComponent, decorators: [{
|
|
8128
8149
|
type: Component,
|
|
@@ -8132,11 +8153,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
8132
8153
|
AXComboBoxComponent,
|
|
8133
8154
|
AXDecoratorModule,
|
|
8134
8155
|
AXFormModule,
|
|
8156
|
+
AXHighlightTextComponent,
|
|
8135
8157
|
AXLookupComponent,
|
|
8136
8158
|
AXSkeletonModule,
|
|
8137
8159
|
AXTranslationModule,
|
|
8138
8160
|
AsyncPipe,
|
|
8139
|
-
], template: "@if (showSelectBoxSkeleton()) {\n <!-- ----- Loading indicator while registry data source resolves ----- -->\n <ax-skeleton [animated]=\"true\" class=\"axp-select-box-skeleton\"></ax-skeleton>\n}\n<!-- ----- In-memory list rendered with combo-box ----- -->\n@else if (isArraySource()) {\n <ax-combo-box\n [placeholder]=\"(placeholder() | translate | async) ?? ''\"\n [caption]=\"(placeholder() | translate | async) ?? ''\"\n [items]=\"comboItems()\"\n [value]=\"comboValue()\"\n [disabled]=\"isSelectBoxDisabled()\"\n [multiple]=\"multiple()\"\n [readonly]=\"readonly()\"\n [searchable]=\"allowSearch()\"\n (onValueChanged)=\"handleComboValueChange($event)\"\n >\n <!--------------------------------------------------------------->\n <!-- ----- Clear button ----- -->\n @if (hasClearButton() && !filterMode()) {\n <ax-clear-button></ax-clear-button>\n }\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"$safeNavigationMigration(validation.options?.message)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-combo-box>\n}\n<!-- ----- Registry or AXDataSource list rendered with lookup ----- -->\n@else if (editorKey()) {\n <ax-lookup\n [placeholder]=\"(placeholder() | translate | async) ?? ''\"\n [caption]=\"(placeholder() | translate | async) ?? ''\"\n [mode]=\"lookupMode()\"\n [dataSource]=\"effectiveDataSource()\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [value]=\"editorValue()\"\n [valueItems]=\"selectedItems()\"\n [disabled]=\"isSelectBoxDisabled()\"\n [readonly]=\"readonly()\"\n [searchable]=\"allowSearch()\"\n [itemTemplate]=\"multiple() ? lookupItemTemplate : lookupDropDownListItemTemplate\"\n [selectedTemplate]=\"lookupItemTemplate\"\n (onValueChanged)=\"handleLookupValueChange($event)\"\n >\n <!--------------------------------------------------------------->\n <!-- ----- Clear button ----- -->\n @if (hasClearButton() && !filterMode()) {\n <ax-clear-button></ax-clear-button>\n }\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"$safeNavigationMigration(validation.options?.message)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-lookup>\n}\n\n<!-- ----- Lookup item and selected-value label ----- -->\n<ng-template #lookupItemTemplate let-item>\n <span class=\"ax-lookup-option-text\"
|
|
8161
|
+
], template: "@if (showSelectBoxSkeleton()) {\n <!-- ----- Loading indicator while registry data source resolves ----- -->\n <ax-skeleton [animated]=\"true\" class=\"axp-select-box-skeleton\"></ax-skeleton>\n}\n<!-- ----- In-memory list rendered with combo-box ----- -->\n@else if (isArraySource()) {\n <ax-combo-box\n [placeholder]=\"(placeholder() | translate | async) ?? ''\"\n [caption]=\"(placeholder() | translate | async) ?? ''\"\n [items]=\"comboItems()\"\n [value]=\"comboValue()\"\n [disabled]=\"isSelectBoxDisabled()\"\n [multiple]=\"multiple()\"\n [readonly]=\"readonly()\"\n [searchable]=\"allowSearch()\"\n (onValueChanged)=\"handleComboValueChange($event)\"\n >\n <!--------------------------------------------------------------->\n <!-- ----- Clear button ----- -->\n @if (hasClearButton() && !filterMode()) {\n <ax-clear-button></ax-clear-button>\n }\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"$safeNavigationMigration(validation.options?.message)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-combo-box>\n}\n<!-- ----- Registry or AXDataSource list rendered with lookup ----- -->\n@else if (editorKey()) {\n <ax-lookup\n [placeholder]=\"(placeholder() | translate | async) ?? ''\"\n [caption]=\"(placeholder() | translate | async) ?? ''\"\n [mode]=\"lookupMode()\"\n [dataSource]=\"effectiveDataSource()\"\n [valueField]=\"valueField()\"\n [textField]=\"textField()\"\n [value]=\"editorValue()\"\n [valueItems]=\"selectedItems()\"\n [disabled]=\"isSelectBoxDisabled()\"\n [readonly]=\"readonly()\"\n [searchable]=\"allowSearch()\"\n [itemTemplate]=\"multiple() ? lookupItemTemplate : lookupDropDownListItemTemplate\"\n [selectedTemplate]=\"lookupItemTemplate\"\n (onValueChanged)=\"handleLookupValueChange($event)\"\n >\n <!--------------------------------------------------------------->\n <!-- ----- Clear button ----- -->\n @if (hasClearButton() && !filterMode()) {\n <ax-clear-button></ax-clear-button>\n }\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"$safeNavigationMigration(validation.options?.message)\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-lookup>\n}\n\n<!-- ----- Lookup item and selected-value label ----- -->\n<ng-template #lookupItemTemplate let-item let-highlightText=\"highlightText\">\n <span class=\"ax-lookup-option-text\">\n <ax-highlight-text\n [text]=\"(getLookupItemLabel(item) | translate | async) ?? ''\"\n [query]=\"highlightText ?? ''\"\n ></ax-highlight-text>\n </span>\n</ng-template>\n<!-- ----- Drop-down-list rows: library skips .ax-lookup-option chrome when itemTemplate is set ----- -->\n<ng-template #lookupDropDownListItemTemplate let-item let-highlightText=\"highlightText\">\n <span class=\"flex h-full w-full min-w-0 items-center px-3 text-sm\">\n <span class=\"ax-lookup-option-text min-w-0 flex-1 truncate\">\n <ax-highlight-text\n [text]=\"(getLookupItemLabel(item) | translate | async) ?? ''\"\n [query]=\"highlightText ?? ''\"\n ></ax-highlight-text>\n </span>\n </span>\n</ng-template>\n", styles: [":host .axp-select-box-skeleton{display:block;width:100%;height:2.5rem;border-radius:var(--ax-sys-radius-md, .375rem)}\n"] }]
|
|
8140
8162
|
}], propDecorators: { comboBox: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXComboBoxComponent), { isSignal: true }] }], lookup: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXLookupComponent), { isSignal: true }] }], __class: [{
|
|
8141
8163
|
type: HostBinding,
|
|
8142
8164
|
args: ['class']
|
|
@@ -8405,7 +8427,7 @@ class AXPSelectionListWidgetDesignerComponent extends AXPDataListWidgetComponent
|
|
|
8405
8427
|
[readonly]="readonly()"
|
|
8406
8428
|
>
|
|
8407
8429
|
</ax-selection-list>
|
|
8408
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXSelectionListModule }, { kind: "component", type: i2$4.AXSelectionListComponent, selector: "ax-selection-list", inputs: ["id", "name", "disabled", "readonly", "tabIndex", "
|
|
8430
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXSelectionListModule }, { kind: "component", type: i2$4.AXSelectionListComponent, selector: "ax-selection-list", inputs: ["id", "name", "disabled", "readonly", "tabIndex", "value", "valueField", "textField", "disabledField", "readonlyField", "multiple", "direction", "customTemplate", "showControl", "items", "look"], outputs: ["onValueChanged", "onBlur", "onFocus"] }, { kind: "ngmodule", type: AXFormModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8409
8431
|
}
|
|
8410
8432
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPSelectionListWidgetDesignerComponent, decorators: [{
|
|
8411
8433
|
type: Component,
|
|
@@ -8525,7 +8547,7 @@ class AXPSelectionListWidgetEditComponent extends AXPDataListWidgetComponent {
|
|
|
8525
8547
|
></ax-validation-rule>
|
|
8526
8548
|
}
|
|
8527
8549
|
</ax-selection-list>
|
|
8528
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXSelectionListModule }, { kind: "component", type: i2$4.AXSelectionListComponent, selector: "ax-selection-list", inputs: ["id", "name", "disabled", "readonly", "tabIndex", "
|
|
8550
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXSelectionListModule }, { kind: "component", type: i2$4.AXSelectionListComponent, selector: "ax-selection-list", inputs: ["id", "name", "disabled", "readonly", "tabIndex", "value", "valueField", "textField", "disabledField", "readonlyField", "multiple", "direction", "customTemplate", "showControl", "items", "look"], outputs: ["onValueChanged", "onBlur", "onFocus"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i3.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8529
8551
|
}
|
|
8530
8552
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPSelectionListWidgetEditComponent, decorators: [{
|
|
8531
8553
|
type: Component,
|
|
@@ -9517,7 +9539,7 @@ class AXPTemplateBoxWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
9517
9539
|
</div>
|
|
9518
9540
|
</div>
|
|
9519
9541
|
</div>
|
|
9520
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i3.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }, { kind: "ngmodule", type: AXTextAreaModule }, { kind: "component", type: i4.AXTextAreaComponent, selector: "ax-text-area", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "placeholder", "maxLength", "look", "rows", "allowResize", "showCounter", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i5$1.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "
|
|
9542
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i3.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }, { kind: "ngmodule", type: AXTextAreaModule }, { kind: "component", type: i4.AXTextAreaComponent, selector: "ax-text-area", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "placeholder", "maxLength", "look", "rows", "allowResize", "showCounter", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i5$1.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i1$1.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i1$1.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items", "closeParentOnClick", "lockOnLoading"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9521
9543
|
}
|
|
9522
9544
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPTemplateBoxWidgetEditComponent, decorators: [{
|
|
9523
9545
|
type: Component,
|
|
@@ -9804,7 +9826,13 @@ class AXPTextBoxWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
9804
9826
|
this.setValue(nextValue);
|
|
9805
9827
|
}
|
|
9806
9828
|
getCurrentText() {
|
|
9807
|
-
|
|
9829
|
+
const value = this.getValue();
|
|
9830
|
+
if ((this.disabled() || this.readonly()) &&
|
|
9831
|
+
typeof value === 'string' &&
|
|
9832
|
+
value.trim().startsWith('@')) {
|
|
9833
|
+
return this.translationService.translateSync(value.trim()) || value;
|
|
9834
|
+
}
|
|
9835
|
+
return this.translationService.resolve(value, this.currentLanguage());
|
|
9808
9836
|
}
|
|
9809
9837
|
async openMultiLanguagePopup() {
|
|
9810
9838
|
const node = {
|
|
@@ -9873,7 +9901,7 @@ class AXPTextBoxWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
9873
9901
|
}
|
|
9874
9902
|
</ax-text-box>
|
|
9875
9903
|
</div>
|
|
9876
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i1$7.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "maskPattern", "customTokens", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "onMaskChanged"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i3.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "
|
|
9904
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i1$7.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "maskPattern", "customTokens", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "onMaskChanged"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i3.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1$5.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9877
9905
|
}
|
|
9878
9906
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPTextBoxWidgetEditComponent, decorators: [{
|
|
9879
9907
|
type: Component,
|
|
@@ -10902,7 +10930,7 @@ class AXPAvatarWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
10902
10930
|
</div>
|
|
10903
10931
|
</div>
|
|
10904
10932
|
}
|
|
10905
|
-
`, isInline: true, styles: ["@layer properties;axp-avatar-widget-edit .axp-empty{width:calc(var(--spacing, .25rem) * 28);height:calc(var(--spacing, .25rem) * 28);cursor:pointer;border-radius:calc(infinity * 1px);border-style:var(--tw-border-style);border-width:2px;--tw-border-style: dashed;border-style:dashed;border-color:rgba(var(--ax-sys-color-primary-surface));transition-property:all;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .5s;transition-duration:.5s;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--spacing, .25rem) * 2)}axp-avatar-widget-edit .axp-empty:hover{background-color:rgba(var(--ax-sys-color-primary-50))}axp-avatar-widget-edit .axp-empty.axp-state-error{border-color:rgba(var(--ax-sys-color-danger-surface))}axp-avatar-widget-edit .axp-empty.axp-state-loading{--fa-animation-duration: .7s}axp-avatar-widget-edit .axp-empty.axp-state-loading i{font-size:var(--text-3xl, 1.875rem);line-height:var(--tw-leading, var(--text-3xl--line-height, 1.2 ))}axp-avatar-widget-edit .axp-content{position:relative;display:flex;width:calc(var(--spacing, .25rem) * 28);height:calc(var(--spacing, .25rem) * 28);overflow:hidden;border-radius:calc(infinity * 1px)}axp-avatar-widget-edit .axp-content>:first-child{width:100%;height:100%;cursor:pointer;background-size:cover;background-position:center}axp-avatar-widget-edit .axp-content>:last-child{position:absolute;display:flex;display:none;height:100%;width:100%;align-items:center;justify-content:center;gap:calc(var(--spacing, .25rem) * 2);transition-property:all;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .5s;transition-duration:.5s}axp-avatar-widget-edit .axp-content:hover>:last-child{display:flex;background-color:color-mix(in srgb,#000 30%,transparent)}@supports (color: color-mix(in lab,red,red)){axp-avatar-widget-edit .axp-content:hover>:last-child{background-color:color-mix(in oklab,var(--color-black, #000) 30%,transparent)}}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-duration{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-duration: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "
|
|
10933
|
+
`, isInline: true, styles: ["@layer properties;axp-avatar-widget-edit .axp-empty{width:calc(var(--spacing, .25rem) * 28);height:calc(var(--spacing, .25rem) * 28);cursor:pointer;border-radius:calc(infinity * 1px);border-style:var(--tw-border-style);border-width:2px;--tw-border-style: dashed;border-style:dashed;border-color:rgba(var(--ax-sys-color-primary-surface));transition-property:all;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .5s;transition-duration:.5s;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--spacing, .25rem) * 2)}axp-avatar-widget-edit .axp-empty:hover{background-color:rgba(var(--ax-sys-color-primary-50))}axp-avatar-widget-edit .axp-empty.axp-state-error{border-color:rgba(var(--ax-sys-color-danger-surface))}axp-avatar-widget-edit .axp-empty.axp-state-loading{--fa-animation-duration: .7s}axp-avatar-widget-edit .axp-empty.axp-state-loading i{font-size:var(--text-3xl, 1.875rem);line-height:var(--tw-leading, var(--text-3xl--line-height, 1.2 ))}axp-avatar-widget-edit .axp-content{position:relative;display:flex;width:calc(var(--spacing, .25rem) * 28);height:calc(var(--spacing, .25rem) * 28);overflow:hidden;border-radius:calc(infinity * 1px)}axp-avatar-widget-edit .axp-content>:first-child{width:100%;height:100%;cursor:pointer;background-size:cover;background-position:center}axp-avatar-widget-edit .axp-content>:last-child{position:absolute;display:flex;display:none;height:100%;width:100%;align-items:center;justify-content:center;gap:calc(var(--spacing, .25rem) * 2);transition-property:all;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .5s;transition-duration:.5s}axp-avatar-widget-edit .axp-content:hover>:last-child{display:flex;background-color:color-mix(in srgb,#000 30%,transparent)}@supports (color: color-mix(in lab,red,red)){axp-avatar-widget-edit .axp-content:hover>:last-child{background-color:color-mix(in oklab,var(--color-black, #000) 30%,transparent)}}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-duration{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-duration: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
10906
10934
|
}
|
|
10907
10935
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPAvatarWidgetEditComponent, decorators: [{
|
|
10908
10936
|
type: Component,
|
|
@@ -11122,6 +11150,49 @@ const AXPAvatarWidget = {
|
|
|
11122
11150
|
},
|
|
11123
11151
|
};
|
|
11124
11152
|
|
|
11153
|
+
//#region ----- Code editor value coercion -----
|
|
11154
|
+
/**
|
|
11155
|
+
* Code-editor widgets bind a string. Catalog fields often store object/array JSON.
|
|
11156
|
+
* Coerce those values so column/view/edit never call string methods on non-strings.
|
|
11157
|
+
*/
|
|
11158
|
+
function coerceCodeEditorText(value, pretty = false) {
|
|
11159
|
+
if (value == null) {
|
|
11160
|
+
return '';
|
|
11161
|
+
}
|
|
11162
|
+
if (typeof value === 'string') {
|
|
11163
|
+
return value;
|
|
11164
|
+
}
|
|
11165
|
+
if (typeof value === 'number' || typeof value === 'boolean') {
|
|
11166
|
+
return String(value);
|
|
11167
|
+
}
|
|
11168
|
+
try {
|
|
11169
|
+
return JSON.stringify(value, null, pretty ? 2 : 0) ?? '';
|
|
11170
|
+
}
|
|
11171
|
+
catch {
|
|
11172
|
+
return '';
|
|
11173
|
+
}
|
|
11174
|
+
}
|
|
11175
|
+
/**
|
|
11176
|
+
* Edit mode binds a string. Writing that string over an object/array
|
|
11177
|
+
* (`content`) breaks sibling nested paths such as `content.module`.
|
|
11178
|
+
*/
|
|
11179
|
+
function restoreCodeEditorBoundValue(text, current) {
|
|
11180
|
+
if (current != null && typeof current === 'object') {
|
|
11181
|
+
const trimmed = text?.trim() ?? '';
|
|
11182
|
+
if (!trimmed) {
|
|
11183
|
+
return current;
|
|
11184
|
+
}
|
|
11185
|
+
try {
|
|
11186
|
+
return JSON.parse(trimmed);
|
|
11187
|
+
}
|
|
11188
|
+
catch {
|
|
11189
|
+
return current;
|
|
11190
|
+
}
|
|
11191
|
+
}
|
|
11192
|
+
return text;
|
|
11193
|
+
}
|
|
11194
|
+
//#endregion
|
|
11195
|
+
|
|
11125
11196
|
//#region ---- Imports ----
|
|
11126
11197
|
//#endregion
|
|
11127
11198
|
//#region ---- Component ----
|
|
@@ -11129,10 +11200,7 @@ class AXPCodeEditorWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
11129
11200
|
constructor() {
|
|
11130
11201
|
super(...arguments);
|
|
11131
11202
|
//#region ---- Computed Properties ----
|
|
11132
|
-
this.currentValue = computed(() =>
|
|
11133
|
-
const value = this.getValue();
|
|
11134
|
-
return value ?? '';
|
|
11135
|
-
}, /* @ts-ignore */
|
|
11203
|
+
this.currentValue = computed(() => coerceCodeEditorText(this.getValue(), true), /* @ts-ignore */
|
|
11136
11204
|
...(ngDevMode ? [{ debugName: "currentValue" }] : /* istanbul ignore next */ []));
|
|
11137
11205
|
this.language = computed(() => {
|
|
11138
11206
|
const options = this.options();
|
|
@@ -11144,37 +11212,42 @@ class AXPCodeEditorWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
11144
11212
|
return options?.['lineNumbers'] ?? true;
|
|
11145
11213
|
}, /* @ts-ignore */
|
|
11146
11214
|
...(ngDevMode ? [{ debugName: "lineNumbers" }] : /* istanbul ignore next */ []));
|
|
11215
|
+
this.editorHeight = computed(() => {
|
|
11216
|
+
const options = this.options();
|
|
11217
|
+
return options?.['height'] ?? 'h-96';
|
|
11218
|
+
}, /* @ts-ignore */
|
|
11219
|
+
...(ngDevMode ? [{ debugName: "editorHeight" }] : /* istanbul ignore next */ []));
|
|
11147
11220
|
}
|
|
11148
11221
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCodeEditorWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
11149
11222
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: AXPCodeEditorWidgetViewComponent, isStandalone: true, selector: "axp-code-editor-widget-view", host: { classAttribute: "block w-full" }, usesInheritance: true, ngImport: i0, template: `
|
|
11150
|
-
<div class="w-full border rounded-md
|
|
11223
|
+
<div class="w-full border rounded-md min-h-0 overflow-auto" style="direction: ltr;" [ngClass]="editorHeight()">
|
|
11151
11224
|
<ax-code-editor
|
|
11152
11225
|
[value]="currentValue()"
|
|
11153
11226
|
[readonly]="true"
|
|
11154
11227
|
[language]="language()"
|
|
11155
11228
|
[lineNumbers]="lineNumbers()"
|
|
11156
|
-
class="w-full
|
|
11229
|
+
class="w-full"
|
|
11157
11230
|
></ax-code-editor>
|
|
11158
11231
|
</div>
|
|
11159
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXCodeEditorModule }, { kind: "component", type: i1$c.AXCodeEditorComponent, selector: "ax-code-editor", inputs: ["disabled", "value", "state", "name", "id", "language", "readonly", "placeholder", "lineNumbers", "lineWrapping", "tabSize", "indentWithTab", "theme", "extensions", "ariaLabel", "focusOnReady", "formatOnSave", "minRow", "customCompletions"], outputs: ["onValueChanged", "valueChange", "stateChange", "readonlyChange", "disabledChange", "ready", "save"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
11232
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXCodeEditorModule }, { kind: "component", type: i1$c.AXCodeEditorComponent, selector: "ax-code-editor", inputs: ["disabled", "value", "state", "name", "id", "language", "readonly", "placeholder", "lineNumbers", "lineWrapping", "tabSize", "indentWithTab", "theme", "extensions", "ariaLabel", "focusOnReady", "formatOnSave", "minRow", "customCompletions"], outputs: ["onValueChanged", "valueChange", "stateChange", "readonlyChange", "disabledChange", "ready", "save"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
11160
11233
|
}
|
|
11161
11234
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCodeEditorWidgetViewComponent, decorators: [{
|
|
11162
11235
|
type: Component,
|
|
11163
11236
|
args: [{
|
|
11164
11237
|
selector: 'axp-code-editor-widget-view',
|
|
11165
11238
|
template: `
|
|
11166
|
-
<div class="w-full border rounded-md
|
|
11239
|
+
<div class="w-full border rounded-md min-h-0 overflow-auto" style="direction: ltr;" [ngClass]="editorHeight()">
|
|
11167
11240
|
<ax-code-editor
|
|
11168
11241
|
[value]="currentValue()"
|
|
11169
11242
|
[readonly]="true"
|
|
11170
11243
|
[language]="language()"
|
|
11171
11244
|
[lineNumbers]="lineNumbers()"
|
|
11172
|
-
class="w-full
|
|
11245
|
+
class="w-full"
|
|
11173
11246
|
></ax-code-editor>
|
|
11174
11247
|
</div>
|
|
11175
11248
|
`,
|
|
11176
11249
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
11177
|
-
imports: [AXCodeEditorModule],
|
|
11250
|
+
imports: [AXCodeEditorModule, NgClass],
|
|
11178
11251
|
host: {
|
|
11179
11252
|
class: 'block w-full',
|
|
11180
11253
|
},
|
|
@@ -11193,10 +11266,7 @@ class AXPCodeEditorWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
11193
11266
|
constructor() {
|
|
11194
11267
|
super(...arguments);
|
|
11195
11268
|
//#region ---- Computed Properties ----
|
|
11196
|
-
this.currentValue = computed(() =>
|
|
11197
|
-
const value = this.getValue();
|
|
11198
|
-
return value ?? '';
|
|
11199
|
-
}, /* @ts-ignore */
|
|
11269
|
+
this.currentValue = computed(() => coerceCodeEditorText(this.getValue(), true), /* @ts-ignore */
|
|
11200
11270
|
...(ngDevMode ? [{ debugName: "currentValue" }] : /* istanbul ignore next */ []));
|
|
11201
11271
|
this.language = computed(() => {
|
|
11202
11272
|
const options = this.options();
|
|
@@ -11208,44 +11278,57 @@ class AXPCodeEditorWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
11208
11278
|
return options?.['lineNumbers'] ?? true;
|
|
11209
11279
|
}, /* @ts-ignore */
|
|
11210
11280
|
...(ngDevMode ? [{ debugName: "lineNumbers" }] : /* istanbul ignore next */ []));
|
|
11211
|
-
this.
|
|
11281
|
+
this.editorHeight = computed(() => {
|
|
11282
|
+
const options = this.options();
|
|
11283
|
+
return options?.['height'] ?? 'h-96';
|
|
11284
|
+
}, /* @ts-ignore */
|
|
11285
|
+
...(ngDevMode ? [{ debugName: "editorHeight" }] : /* istanbul ignore next */ []));
|
|
11286
|
+
this.isReadOnly = computed(() => {
|
|
11212
11287
|
const options = this.options();
|
|
11213
|
-
|
|
11214
|
-
return `w-full h-full ${height}`;
|
|
11288
|
+
return options?.['readOnly'] === true || options?.['readonly'] === true || options?.['disabled'] === true;
|
|
11215
11289
|
}, /* @ts-ignore */
|
|
11216
|
-
...(ngDevMode ? [{ debugName: "
|
|
11290
|
+
...(ngDevMode ? [{ debugName: "isReadOnly" }] : /* istanbul ignore next */ []));
|
|
11217
11291
|
}
|
|
11218
11292
|
//#endregion
|
|
11219
11293
|
//#region ---- Event Handlers ----
|
|
11220
11294
|
handleValueChange(newValue) {
|
|
11221
|
-
this.
|
|
11295
|
+
if (this.isReadOnly()) {
|
|
11296
|
+
return;
|
|
11297
|
+
}
|
|
11298
|
+
this.setValue(restoreCodeEditorBoundValue(newValue, this.getValue()));
|
|
11222
11299
|
}
|
|
11223
11300
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCodeEditorWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
11224
11301
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: AXPCodeEditorWidgetEditComponent, isStandalone: true, selector: "axp-code-editor-widget-edit", host: { classAttribute: "block w-full ltr" }, usesInheritance: true, ngImport: i0, template: `
|
|
11302
|
+
<div class="w-full min-h-0 overflow-auto" [ngClass]="editorHeight()">
|
|
11225
11303
|
<ax-code-editor
|
|
11226
11304
|
[ngModel]="currentValue()"
|
|
11227
11305
|
(ngModelChange)="handleValueChange($event)"
|
|
11228
11306
|
[language]="language()"
|
|
11229
11307
|
[lineNumbers]="lineNumbers()"
|
|
11230
|
-
[
|
|
11308
|
+
[readonly]="isReadOnly()"
|
|
11309
|
+
class="w-full"
|
|
11231
11310
|
></ax-code-editor>
|
|
11232
|
-
|
|
11311
|
+
</div>
|
|
11312
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXCodeEditorModule }, { kind: "component", type: i1$c.AXCodeEditorComponent, selector: "ax-code-editor", inputs: ["disabled", "value", "state", "name", "id", "language", "readonly", "placeholder", "lineNumbers", "lineWrapping", "tabSize", "indentWithTab", "theme", "extensions", "ariaLabel", "focusOnReady", "formatOnSave", "minRow", "customCompletions"], outputs: ["onValueChanged", "valueChange", "stateChange", "readonlyChange", "disabledChange", "ready", "save"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
11233
11313
|
}
|
|
11234
11314
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCodeEditorWidgetEditComponent, decorators: [{
|
|
11235
11315
|
type: Component,
|
|
11236
11316
|
args: [{
|
|
11237
11317
|
selector: 'axp-code-editor-widget-edit',
|
|
11238
11318
|
template: `
|
|
11319
|
+
<div class="w-full min-h-0 overflow-auto" [ngClass]="editorHeight()">
|
|
11239
11320
|
<ax-code-editor
|
|
11240
11321
|
[ngModel]="currentValue()"
|
|
11241
11322
|
(ngModelChange)="handleValueChange($event)"
|
|
11242
11323
|
[language]="language()"
|
|
11243
11324
|
[lineNumbers]="lineNumbers()"
|
|
11244
|
-
[
|
|
11325
|
+
[readonly]="isReadOnly()"
|
|
11326
|
+
class="w-full"
|
|
11245
11327
|
></ax-code-editor>
|
|
11328
|
+
</div>
|
|
11246
11329
|
`,
|
|
11247
11330
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
11248
|
-
imports: [FormsModule, AXCodeEditorModule],
|
|
11331
|
+
imports: [FormsModule, AXCodeEditorModule, NgClass],
|
|
11249
11332
|
host: {
|
|
11250
11333
|
class: 'block w-full ltr',
|
|
11251
11334
|
},
|
|
@@ -11264,17 +11347,13 @@ class AXPCodeEditorWidgetColumnComponent extends AXPColumnWidgetComponent {
|
|
|
11264
11347
|
constructor() {
|
|
11265
11348
|
super(...arguments);
|
|
11266
11349
|
//#region ---- Computed Properties ----
|
|
11267
|
-
this.fullValue = computed(() =>
|
|
11268
|
-
const value = this.rawValue;
|
|
11269
|
-
return value ?? '';
|
|
11270
|
-
}, /* @ts-ignore */
|
|
11350
|
+
this.fullValue = computed(() => coerceCodeEditorText(this.rawValue), /* @ts-ignore */
|
|
11271
11351
|
...(ngDevMode ? [{ debugName: "fullValue" }] : /* istanbul ignore next */ []));
|
|
11272
11352
|
this.displayText = computed(() => {
|
|
11273
11353
|
const value = this.fullValue();
|
|
11274
11354
|
if (!value) {
|
|
11275
11355
|
return '';
|
|
11276
11356
|
}
|
|
11277
|
-
// Trim whitespace and normalize line breaks
|
|
11278
11357
|
const trimmed = value.trim().replace(/\r\n/g, '\n').replace(/\r/g, '\n');
|
|
11279
11358
|
// If empty after trimming, return empty
|
|
11280
11359
|
if (!trimmed) {
|
|
@@ -11861,7 +11940,25 @@ const FileViewerWebhookKeys = {
|
|
|
11861
11940
|
AfterFilesAdded: 'file-viewer.afterFilesAdded',
|
|
11862
11941
|
};
|
|
11863
11942
|
|
|
11864
|
-
//#
|
|
11943
|
+
//#endregion
|
|
11944
|
+
//#region ----- Constants -----
|
|
11945
|
+
const FILE_VIEWER_UPLOAD_ACTION = 'upload';
|
|
11946
|
+
//#endregion
|
|
11947
|
+
//#region ----- Helpers -----
|
|
11948
|
+
function resolveChooserMenuTarget(event) {
|
|
11949
|
+
if (!event) {
|
|
11950
|
+
return null;
|
|
11951
|
+
}
|
|
11952
|
+
const source = event.currentTarget instanceof HTMLElement
|
|
11953
|
+
? event.currentTarget
|
|
11954
|
+
: event.target instanceof HTMLElement
|
|
11955
|
+
? event.target
|
|
11956
|
+
: null;
|
|
11957
|
+
if (!source) {
|
|
11958
|
+
return null;
|
|
11959
|
+
}
|
|
11960
|
+
return source.closest('button, ax-button') ?? source;
|
|
11961
|
+
}
|
|
11865
11962
|
//#endregion
|
|
11866
11963
|
//#region ----- Component -----
|
|
11867
11964
|
class AXPFileViewerWidgetEditComponent extends AXPValueWidgetComponent {
|
|
@@ -11869,6 +11966,13 @@ class AXPFileViewerWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
11869
11966
|
super(...arguments);
|
|
11870
11967
|
//#region ----- Services & Dependencies -----
|
|
11871
11968
|
this.hooks = inject(AXPHookService);
|
|
11969
|
+
this.chooserService = inject(AXPFileChooserService);
|
|
11970
|
+
this.translation = inject(AXTranslationService);
|
|
11971
|
+
this.envInjector = inject(EnvironmentInjector);
|
|
11972
|
+
this.appRef = inject(ApplicationRef);
|
|
11973
|
+
this.providerMenu = createAttachedFileProviderMenu(this.envInjector, this.appRef, (key) => {
|
|
11974
|
+
void this.runChooser(key);
|
|
11975
|
+
});
|
|
11872
11976
|
//#endregion
|
|
11873
11977
|
//#region ----- Computed Properties -----
|
|
11874
11978
|
this.thumbnail = computed(() => this.options()['thumbnail'] ?? true, /* @ts-ignore */
|
|
@@ -11905,6 +12009,46 @@ class AXPFileViewerWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
11905
12009
|
//#region ----- State Signals -----
|
|
11906
12010
|
this.isChoosing = signal(false, /* @ts-ignore */
|
|
11907
12011
|
...(ngDevMode ? [{ debugName: "isChoosing" }] : /* istanbul ignore next */ []));
|
|
12012
|
+
this.locale = toSignal(this.translation.currentLocale$, {
|
|
12013
|
+
initialValue: this.translation.getActiveLang(),
|
|
12014
|
+
});
|
|
12015
|
+
//#endregion
|
|
12016
|
+
//#region ----- Header Actions -----
|
|
12017
|
+
/**
|
|
12018
|
+
* Custom headerActions replace the container's built-in download/fullscreen buttons,
|
|
12019
|
+
* so those actions are included whenever upload is shown.
|
|
12020
|
+
*/
|
|
12021
|
+
this.headerActions = computed(() => {
|
|
12022
|
+
this.locale();
|
|
12023
|
+
if (!this.allowUpload()) {
|
|
12024
|
+
return [];
|
|
12025
|
+
}
|
|
12026
|
+
const actions = [
|
|
12027
|
+
{
|
|
12028
|
+
name: FILE_VIEWER_UPLOAD_ACTION,
|
|
12029
|
+
text: this.translation.translateSync('@general:actions.add-item.title'),
|
|
12030
|
+
icon: 'fa-light fa-plus',
|
|
12031
|
+
disabled: this.isChoosing(),
|
|
12032
|
+
isLoading: this.isChoosing(),
|
|
12033
|
+
},
|
|
12034
|
+
];
|
|
12035
|
+
if (this.downloadButton()) {
|
|
12036
|
+
actions.push({
|
|
12037
|
+
name: 'download',
|
|
12038
|
+
text: this.translation.translateSync('@general:actions.download.title'),
|
|
12039
|
+
icon: 'fa-light fa-download',
|
|
12040
|
+
});
|
|
12041
|
+
}
|
|
12042
|
+
if (this.fullScreenButton()) {
|
|
12043
|
+
actions.push({
|
|
12044
|
+
name: 'fullscreen',
|
|
12045
|
+
text: this.translation.translateSync('@platform-layout-widgets:widgets.file-viewer.actions.fullscreen'),
|
|
12046
|
+
icon: 'fa-light fa-expand',
|
|
12047
|
+
});
|
|
12048
|
+
}
|
|
12049
|
+
return actions;
|
|
12050
|
+
}, /* @ts-ignore */
|
|
12051
|
+
...(ngDevMode ? [{ debugName: "headerActions" }] : /* istanbul ignore next */ []));
|
|
11908
12052
|
//#endregion
|
|
11909
12053
|
//#region ----- View Queries -----
|
|
11910
12054
|
this.fileViewer = viewChild('fileViewer', /* @ts-ignore */
|
|
@@ -11918,8 +12062,40 @@ class AXPFileViewerWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
11918
12062
|
}
|
|
11919
12063
|
});
|
|
11920
12064
|
}
|
|
12065
|
+
ngOnDestroy() {
|
|
12066
|
+
this.providerMenu.destroy();
|
|
12067
|
+
}
|
|
11921
12068
|
//#endregion
|
|
11922
12069
|
//#region ----- Event Handlers -----
|
|
12070
|
+
onHeaderActionClick(event) {
|
|
12071
|
+
if (event.item.name !== FILE_VIEWER_UPLOAD_ACTION) {
|
|
12072
|
+
return;
|
|
12073
|
+
}
|
|
12074
|
+
this.onUploadAction(event.nativeEvent);
|
|
12075
|
+
}
|
|
12076
|
+
onUploadAction(event) {
|
|
12077
|
+
if (this.isChoosing()) {
|
|
12078
|
+
return;
|
|
12079
|
+
}
|
|
12080
|
+
const nativeEvent = event instanceof Event ? event : event?.nativeEvent;
|
|
12081
|
+
const providers = this.chooserService.getProviders(this.chooserContext().options).map((provider) => ({
|
|
12082
|
+
key: provider.key,
|
|
12083
|
+
title: provider.title,
|
|
12084
|
+
icon: provider.icon,
|
|
12085
|
+
}));
|
|
12086
|
+
if (providers.length === 0) {
|
|
12087
|
+
return;
|
|
12088
|
+
}
|
|
12089
|
+
if (providers.length === 1) {
|
|
12090
|
+
void this.runChooser(providers[0].key);
|
|
12091
|
+
return;
|
|
12092
|
+
}
|
|
12093
|
+
const target = resolveChooserMenuTarget(nativeEvent);
|
|
12094
|
+
if (!target) {
|
|
12095
|
+
return;
|
|
12096
|
+
}
|
|
12097
|
+
this.providerMenu.open(target, providers, this.isChoosing());
|
|
12098
|
+
}
|
|
11923
12099
|
async onChooserItemsChanged(next) {
|
|
11924
12100
|
const current = this.getValue() ?? [];
|
|
11925
12101
|
const currentIds = new Set(current.map((file) => file.id));
|
|
@@ -11934,6 +12110,19 @@ class AXPFileViewerWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
11934
12110
|
}
|
|
11935
12111
|
//#endregion
|
|
11936
12112
|
//#region ----- Data Loading -----
|
|
12113
|
+
async runChooser(providerKey) {
|
|
12114
|
+
this.providerMenu.close();
|
|
12115
|
+
this.isChoosing.set(true);
|
|
12116
|
+
try {
|
|
12117
|
+
const result = await this.chooserService.choose(providerKey, this.chooserContext());
|
|
12118
|
+
if (result) {
|
|
12119
|
+
await this.onChooserItemsChanged(result);
|
|
12120
|
+
}
|
|
12121
|
+
}
|
|
12122
|
+
finally {
|
|
12123
|
+
this.isChoosing.set(false);
|
|
12124
|
+
}
|
|
12125
|
+
}
|
|
11937
12126
|
async processChosenItems(items) {
|
|
11938
12127
|
if (items.length === 0) {
|
|
11939
12128
|
return;
|
|
@@ -11969,7 +12158,7 @@ class AXPFileViewerWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
11969
12158
|
await this.processChosenItems(newFileItems);
|
|
11970
12159
|
}
|
|
11971
12160
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPFileViewerWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
11972
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPFileViewerWidgetEditComponent, isStandalone: true, selector: "axp-file-viewer-widget-edit", host: { properties: { "style.height": "height()" }, classAttribute: "block" }, viewQueries: [{ propertyName: "fileViewer", first: true, predicate: ["fileViewer"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "
|
|
12161
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPFileViewerWidgetEditComponent, isStandalone: true, selector: "axp-file-viewer-widget-edit", host: { properties: { "style.height": "height()" }, classAttribute: "block" }, viewQueries: [{ propertyName: "fileViewer", first: true, predicate: ["fileViewer"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<!-- ----- Empty state; upload stays available when the carousel has no files ----- -->\n<ng-template #emptyContent>\n <axp-state-message\n icon=\"fa-light fa-file-lines\"\n [title]=\"'@platform-layout-widgets:widgets.file-viewer.empty.title'\"\n [description]=\"'@platform-layout-widgets:widgets.file-viewer.empty.description'\"\n >\n @if (allowUpload()) {\n <!-- ----- Upload action for the empty viewer ----- -->\n <ax-button\n slot=\"actions\"\n class=\"ax-sm\"\n color=\"primary\"\n [text]=\"'@general:actions.add-item.title' | translate | async\"\n [disabled]=\"isChoosing()\"\n (onClick)=\"onUploadAction($event)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-plus\"></ax-icon>\n </ax-prefix>\n </ax-button>\n }\n </axp-state-message>\n</ng-template>\n\n<axp-file-viewer\n #fileViewer\n class=\"h-full\"\n [files]=\"files()\"\n [startIndex]=\"startIndex()\"\n [thumbnail]=\"thumbnail()\"\n [download]=\"downloadButton()\"\n [fullscreen]=\"fullScreenButton()\"\n [loading]=\"isChoosing()\"\n [headerActions]=\"headerActions()\"\n [emptyContent]=\"emptyContent\"\n (headerActionClick)=\"onHeaderActionClick($event)\"\n/>\n", dependencies: [{ kind: "component", type: AXPFileViewerComponent, selector: "axp-file-viewer", inputs: ["items", "files", "startIndex", "thumbnail", "pagination", "download", "fullscreen", "galleryMode", "loading", "height", "headerContent", "headerContentInputs", "fallbackContent", "fallbackContentInputs", "emptyContent", "emptyContentInputs", "headerActions"], outputs: ["headerActionClick", "fullscreenClosed"] }, { kind: "component", type: AXPStateMessageComponent, selector: "axp-state-message", inputs: ["mode", "icon", "title", "description", "titleParams", "descriptionParams", "look"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1$5.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
11973
12162
|
}
|
|
11974
12163
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPFileViewerWidgetEditComponent, decorators: [{
|
|
11975
12164
|
type: Component,
|
|
@@ -11978,12 +12167,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
11978
12167
|
'[style.height]': 'height()',
|
|
11979
12168
|
}, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
11980
12169
|
AXPFileViewerComponent,
|
|
12170
|
+
AXPStateMessageComponent,
|
|
11981
12171
|
AXDecoratorModule,
|
|
11982
12172
|
AXButtonModule,
|
|
11983
12173
|
AXTranslationModule,
|
|
11984
|
-
AXPFileChooserDirective,
|
|
11985
12174
|
AsyncPipe,
|
|
11986
|
-
], template: "
|
|
12175
|
+
], template: "<!-- ----- Empty state; upload stays available when the carousel has no files ----- -->\n<ng-template #emptyContent>\n <axp-state-message\n icon=\"fa-light fa-file-lines\"\n [title]=\"'@platform-layout-widgets:widgets.file-viewer.empty.title'\"\n [description]=\"'@platform-layout-widgets:widgets.file-viewer.empty.description'\"\n >\n @if (allowUpload()) {\n <!-- ----- Upload action for the empty viewer ----- -->\n <ax-button\n slot=\"actions\"\n class=\"ax-sm\"\n color=\"primary\"\n [text]=\"'@general:actions.add-item.title' | translate | async\"\n [disabled]=\"isChoosing()\"\n (onClick)=\"onUploadAction($event)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-plus\"></ax-icon>\n </ax-prefix>\n </ax-button>\n }\n </axp-state-message>\n</ng-template>\n\n<axp-file-viewer\n #fileViewer\n class=\"h-full\"\n [files]=\"files()\"\n [startIndex]=\"startIndex()\"\n [thumbnail]=\"thumbnail()\"\n [download]=\"downloadButton()\"\n [fullscreen]=\"fullScreenButton()\"\n [loading]=\"isChoosing()\"\n [headerActions]=\"headerActions()\"\n [emptyContent]=\"emptyContent\"\n (headerActionClick)=\"onHeaderActionClick($event)\"\n/>\n" }]
|
|
11987
12176
|
}], propDecorators: { fileViewer: [{ type: i0.ViewChild, args: ['fileViewer', { isSignal: true }] }] } });
|
|
11988
12177
|
|
|
11989
12178
|
var fileViewerWidgetEdit_component = /*#__PURE__*/Object.freeze({
|
|
@@ -11997,6 +12186,14 @@ var fileViewerWidgetEdit_component = /*#__PURE__*/Object.freeze({
|
|
|
11997
12186
|
class AXPFileViewerWidgetViewComponent extends AXPValueWidgetComponent {
|
|
11998
12187
|
constructor() {
|
|
11999
12188
|
super(...arguments);
|
|
12189
|
+
//#region ----- Constants -----
|
|
12190
|
+
this.emptyContent = AXPStateMessageComponent;
|
|
12191
|
+
this.emptyContentInputs = {
|
|
12192
|
+
icon: 'fa-light fa-file-lines',
|
|
12193
|
+
title: '@platform-layout-widgets:widgets.file-viewer.empty.title',
|
|
12194
|
+
description: '@platform-layout-widgets:widgets.file-viewer.empty.description',
|
|
12195
|
+
};
|
|
12196
|
+
//#endregion
|
|
12000
12197
|
//#region ----- Computed Properties -----
|
|
12001
12198
|
this.internalValue = computed(() => normalizeFileViewerBoundValue(this.getValue()), /* @ts-ignore */
|
|
12002
12199
|
...(ngDevMode ? [{ debugName: "internalValue" }] : /* istanbul ignore next */ []));
|
|
@@ -12010,14 +12207,14 @@ class AXPFileViewerWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
12010
12207
|
...(ngDevMode ? [{ debugName: "fullScreenButton" }] : /* istanbul ignore next */ []));
|
|
12011
12208
|
}
|
|
12012
12209
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPFileViewerWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
12013
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
12210
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: AXPFileViewerWidgetViewComponent, isStandalone: true, selector: "axp-file-viewer-widget-view", host: { properties: { "style.height": "height()" }, classAttribute: "block" }, usesInheritance: true, ngImport: i0, template: "<axp-file-viewer\n class=\"h-full\"\n [files]=\"internalValue()\"\n [thumbnail]=\"thumbnail()\"\n [download]=\"downloadButton()\"\n [fullscreen]=\"fullScreenButton()\"\n [emptyContent]=\"emptyContent\"\n [emptyContentInputs]=\"emptyContentInputs\"\n/>\n", dependencies: [{ kind: "component", type: AXPFileViewerComponent, selector: "axp-file-viewer", inputs: ["items", "files", "startIndex", "thumbnail", "pagination", "download", "fullscreen", "galleryMode", "loading", "height", "headerContent", "headerContentInputs", "fallbackContent", "fallbackContentInputs", "emptyContent", "emptyContentInputs", "headerActions"], outputs: ["headerActionClick", "fullscreenClosed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12014
12211
|
}
|
|
12015
12212
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPFileViewerWidgetViewComponent, decorators: [{
|
|
12016
12213
|
type: Component,
|
|
12017
12214
|
args: [{ selector: 'axp-file-viewer-widget-view', host: {
|
|
12018
12215
|
class: 'block',
|
|
12019
12216
|
'[style.height]': 'height()',
|
|
12020
|
-
}, changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXPFileViewerComponent
|
|
12217
|
+
}, changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXPFileViewerComponent], template: "<axp-file-viewer\n class=\"h-full\"\n [files]=\"internalValue()\"\n [thumbnail]=\"thumbnail()\"\n [download]=\"downloadButton()\"\n [fullscreen]=\"fullScreenButton()\"\n [emptyContent]=\"emptyContent\"\n [emptyContentInputs]=\"emptyContentInputs\"\n/>\n" }]
|
|
12021
12218
|
}] });
|
|
12022
12219
|
|
|
12023
12220
|
var fileViewerWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
@@ -12072,826 +12269,71 @@ const AXPFileViewerWidget = {
|
|
|
12072
12269
|
},
|
|
12073
12270
|
};
|
|
12074
12271
|
|
|
12075
|
-
|
|
12076
|
-
|
|
12077
|
-
|
|
12078
|
-
|
|
12272
|
+
class AXPImageMarkerPopupComponent extends AXBasePageComponent {
|
|
12273
|
+
ngOnInit() {
|
|
12274
|
+
this.node = {
|
|
12275
|
+
name: 'image-marker-popup-view',
|
|
12276
|
+
type: 'image-marker',
|
|
12277
|
+
options: this.options,
|
|
12278
|
+
defaultValue: this.value,
|
|
12279
|
+
};
|
|
12280
|
+
}
|
|
12281
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPImageMarkerPopupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
12282
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: AXPImageMarkerPopupComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
|
|
12283
|
+
<axp-widgets-container>
|
|
12284
|
+
<ng-container axp-widget-renderer [node]="node" mode="view"></ng-container>
|
|
12285
|
+
</axp-widgets-container>
|
|
12286
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: i1.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i1.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12287
|
+
}
|
|
12288
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPImageMarkerPopupComponent, decorators: [{
|
|
12289
|
+
type: Component,
|
|
12290
|
+
args: [{
|
|
12291
|
+
imports: [AXPWidgetCoreModule],
|
|
12292
|
+
template: `
|
|
12293
|
+
<axp-widgets-container>
|
|
12294
|
+
<ng-container axp-widget-renderer [node]="node" mode="view"></ng-container>
|
|
12295
|
+
</axp-widgets-container>
|
|
12296
|
+
`,
|
|
12297
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
12298
|
+
}]
|
|
12299
|
+
}] });
|
|
12079
12300
|
|
|
12080
|
-
class
|
|
12301
|
+
class AXPImageMarkerWidgetColumnComponent extends AXPColumnWidgetComponent {
|
|
12081
12302
|
constructor() {
|
|
12082
|
-
super(
|
|
12083
|
-
this.
|
|
12084
|
-
|
|
12085
|
-
|
|
12086
|
-
|
|
12087
|
-
this.
|
|
12088
|
-
...(ngDevMode ? [{ debugName: "
|
|
12089
|
-
|
|
12090
|
-
|
|
12091
|
-
|
|
12092
|
-
|
|
12093
|
-
|
|
12094
|
-
...(ngDevMode ? [{ debugName: "downloadButton" }] : /* istanbul ignore next */ []));
|
|
12095
|
-
this.allowUploadTypes = computed(() => this.options()['allowUploadTypes'] ?? [`image/*`], /* @ts-ignore */
|
|
12096
|
-
...(ngDevMode ? [{ debugName: "allowUploadTypes" }] : /* istanbul ignore next */ []));
|
|
12097
|
-
this.allowUpload = computed(() => this.options()['allowUpload'] ?? true, /* @ts-ignore */
|
|
12098
|
-
...(ngDevMode ? [{ debugName: "allowUpload" }] : /* istanbul ignore next */ []));
|
|
12099
|
-
this.startIndex = computed(() => {
|
|
12100
|
-
const index = this.options()['startIndex'];
|
|
12101
|
-
return typeof index === 'number' && index >= 0 ? index : 0;
|
|
12102
|
-
}, /* @ts-ignore */
|
|
12103
|
-
...(ngDevMode ? [{ debugName: "startIndex" }] : /* istanbul ignore next */ []));
|
|
12104
|
-
this.hooks = inject(AXPHookService);
|
|
12105
|
-
this.fileStorageService = inject(AXPFileStorageService);
|
|
12106
|
-
this.loadingDialog = inject(AXLoadingDialogService);
|
|
12107
|
-
this.translationService = inject(AXTranslationService);
|
|
12108
|
-
this.gallery = viewChild('c', /* @ts-ignore */
|
|
12109
|
-
...(ngDevMode ? [{ debugName: "gallery" }] : /* istanbul ignore next */ []));
|
|
12110
|
-
this.isChoosing = signal(false, /* @ts-ignore */
|
|
12111
|
-
...(ngDevMode ? [{ debugName: "isChoosing" }] : /* istanbul ignore next */ []));
|
|
12112
|
-
this.files = computed(() => this.getValue() ?? [], /* @ts-ignore */
|
|
12113
|
-
...(ngDevMode ? [{ debugName: "files" }] : /* istanbul ignore next */ []));
|
|
12114
|
-
this.chooserContext = computed(() => ({
|
|
12115
|
-
options: {
|
|
12116
|
-
multiple: true,
|
|
12117
|
-
accept: this.allowUploadTypes().join(','),
|
|
12118
|
-
scope: this.options()['scope'],
|
|
12119
|
-
destination: this.options()['destination'],
|
|
12120
|
-
excludeProviders: this.options()['excludeProviders'],
|
|
12121
|
-
},
|
|
12122
|
-
items: this.getValue() ?? [],
|
|
12123
|
-
}), /* @ts-ignore */
|
|
12124
|
-
...(ngDevMode ? [{ debugName: "chooserContext" }] : /* istanbul ignore next */ []));
|
|
12125
|
-
/** Navigate to the requested start index once the media viewer is rendered. */
|
|
12126
|
-
this.navigateToStartIndex = afterNextRender(() => {
|
|
12127
|
-
const index = this.startIndex();
|
|
12128
|
-
if (index > 0) {
|
|
12129
|
-
setTimeout(() => this.gallery()?.goToIndex(index), 100);
|
|
12303
|
+
super();
|
|
12304
|
+
this.layoutBuilder = inject(AXPLayoutBuilderService);
|
|
12305
|
+
this.rawImage = computed(() => this.options?.image, /* @ts-ignore */
|
|
12306
|
+
...(ngDevMode ? [{ debugName: "rawImage" }] : /* istanbul ignore next */ []));
|
|
12307
|
+
this.rawPoints = () => this.rawValue;
|
|
12308
|
+
this.imageUrl = signal(null, /* @ts-ignore */
|
|
12309
|
+
...(ngDevMode ? [{ debugName: "imageUrl" }] : /* istanbul ignore next */ []));
|
|
12310
|
+
effect(() => {
|
|
12311
|
+
const imageSource = this.rawImage();
|
|
12312
|
+
const currentUrl = this.imageUrl();
|
|
12313
|
+
if (currentUrl && currentUrl.startsWith('blob:')) {
|
|
12314
|
+
URL.revokeObjectURL(currentUrl);
|
|
12130
12315
|
}
|
|
12131
|
-
|
|
12132
|
-
|
|
12133
|
-
this.objectUrls = new Set();
|
|
12134
|
-
/**
|
|
12135
|
-
* Convert AXPFileListItem[] to AXMediaViewerData[] for display in media viewer.
|
|
12136
|
-
* Uses lazy-loading callbacks for URL resolution.
|
|
12137
|
-
*/
|
|
12138
|
-
this.mediaViewerData = computed(() => {
|
|
12139
|
-
const fileItems = this.getValue() ?? [];
|
|
12140
|
-
return fileItems.map((file) => this.fileItemToMediaViewerData(file));
|
|
12141
|
-
}, /* @ts-ignore */
|
|
12142
|
-
...(ngDevMode ? [{ debugName: "mediaViewerData" }] : /* istanbul ignore next */ []));
|
|
12143
|
-
}
|
|
12144
|
-
/** Downloads the file at the current media viewer index. */
|
|
12145
|
-
async download() {
|
|
12146
|
-
const galleryRef = this.gallery();
|
|
12147
|
-
const files = this.getValue() ?? [];
|
|
12148
|
-
if (!galleryRef || files.length === 0) {
|
|
12149
|
-
return;
|
|
12150
|
-
}
|
|
12151
|
-
const index = galleryRef.getActiveIndex();
|
|
12152
|
-
const file = files[index];
|
|
12153
|
-
if (!file) {
|
|
12154
|
-
return;
|
|
12155
|
-
}
|
|
12156
|
-
const loadingDialogRef = this.loadingDialog.show({
|
|
12157
|
-
title: await this.translationService.translateAsync('@general:actions.download.processing'),
|
|
12158
|
-
mode: 'indeterminate',
|
|
12159
|
-
progressColor: 'primary',
|
|
12160
|
-
status: await this.translationService.translateAsync('@general:actions.download.processing'),
|
|
12161
|
-
});
|
|
12162
|
-
try {
|
|
12163
|
-
const url = await this.resolveFileUrl(file);
|
|
12164
|
-
if (!url) {
|
|
12165
|
-
return;
|
|
12316
|
+
if (typeof imageSource === 'string') {
|
|
12317
|
+
this.imageUrl.set(imageSource);
|
|
12166
12318
|
}
|
|
12167
|
-
|
|
12168
|
-
|
|
12169
|
-
|
|
12170
|
-
|
|
12171
|
-
|
|
12172
|
-
|
|
12173
|
-
|
|
12174
|
-
|
|
12175
|
-
|
|
12176
|
-
|
|
12177
|
-
|
|
12178
|
-
|
|
12179
|
-
|
|
12180
|
-
|
|
12181
|
-
* Providers return the merged list; only newly added items are processed.
|
|
12182
|
-
*/
|
|
12183
|
-
async onChooserItemsChanged(next) {
|
|
12184
|
-
const current = this.getValue() ?? [];
|
|
12185
|
-
const currentIds = new Set(current.map((file) => file.id));
|
|
12186
|
-
const added = next.filter((file) => file.id != null && !currentIds.has(file.id));
|
|
12187
|
-
if (added.length === 0) {
|
|
12188
|
-
return;
|
|
12189
|
-
}
|
|
12190
|
-
await this.processChosenItems(added);
|
|
12319
|
+
else if (imageSource instanceof URL) {
|
|
12320
|
+
this.imageUrl.set(imageSource.href);
|
|
12321
|
+
}
|
|
12322
|
+
else if (imageSource instanceof Blob) {
|
|
12323
|
+
this.imageUrl.set(URL.createObjectURL(imageSource));
|
|
12324
|
+
}
|
|
12325
|
+
else if (imageSource instanceof ArrayBuffer) {
|
|
12326
|
+
const blob = new Blob([imageSource]);
|
|
12327
|
+
this.imageUrl.set(URL.createObjectURL(blob));
|
|
12328
|
+
}
|
|
12329
|
+
else {
|
|
12330
|
+
this.imageUrl.set(null);
|
|
12331
|
+
}
|
|
12332
|
+
});
|
|
12191
12333
|
}
|
|
12192
|
-
|
|
12193
|
-
|
|
12194
|
-
|
|
12195
|
-
async processChosenItems(items) {
|
|
12196
|
-
if (items.length === 0) {
|
|
12197
|
-
return;
|
|
12198
|
-
}
|
|
12199
|
-
await this.hooks.runAsync(GalleryWebhookKeys.BeforeFilesAdded, {
|
|
12200
|
-
host: this,
|
|
12201
|
-
newFiles: items,
|
|
12202
|
-
});
|
|
12203
|
-
const newValue = [...(this.getValue() ?? []), ...items];
|
|
12204
|
-
this.setValue(newValue);
|
|
12205
|
-
await this.hooks.runAsync(GalleryWebhookKeys.AfterFilesAdded, {
|
|
12206
|
-
host: this,
|
|
12207
|
-
newFiles: items,
|
|
12208
|
-
});
|
|
12209
|
-
setTimeout(() => {
|
|
12210
|
-
this.gallery()?.goToIndex(newValue.length - 1);
|
|
12211
|
-
}, 100);
|
|
12212
|
-
}
|
|
12213
|
-
/**
|
|
12214
|
-
* Format file size with appropriate unit (B, KB, MB, GB, etc.)
|
|
12215
|
-
* Divides by 1000 until the value is less than 1000
|
|
12216
|
-
*/
|
|
12217
|
-
formatFileSize(size) {
|
|
12218
|
-
if (!size) {
|
|
12219
|
-
return '';
|
|
12220
|
-
}
|
|
12221
|
-
const units = ['B', 'KB', 'MB', 'GB', 'TB'];
|
|
12222
|
-
let value = size;
|
|
12223
|
-
let unitIndex = 0;
|
|
12224
|
-
while (value >= 1000 && unitIndex < units.length - 1) {
|
|
12225
|
-
value /= 1000;
|
|
12226
|
-
unitIndex++;
|
|
12227
|
-
}
|
|
12228
|
-
// Round to 2 decimal places, but remove trailing zeros
|
|
12229
|
-
const roundedValue = Math.round(value * 100) / 100;
|
|
12230
|
-
return `${roundedValue} ${units[unitIndex]}`;
|
|
12231
|
-
}
|
|
12232
|
-
/**
|
|
12233
|
-
* Convert AXPFileListItem to AXMediaViewerData for display in media viewer.
|
|
12234
|
-
* Uses lazy-loading callbacks for URL and thumbnail resolution.
|
|
12235
|
-
*/
|
|
12236
|
-
fileItemToMediaViewerData(file) {
|
|
12237
|
-
const mediaType = resolveMediaViewerType(file.name);
|
|
12238
|
-
const urlCallback = () => this.resolveFileUrl(file);
|
|
12239
|
-
const thumbnailCallback = mediaType === 'image' || mediaType === 'video'
|
|
12240
|
-
? () => this.resolveFileUrl(file)
|
|
12241
|
-
: undefined;
|
|
12242
|
-
return {
|
|
12243
|
-
id: file.id ??
|
|
12244
|
-
`media-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`,
|
|
12245
|
-
name: file.name,
|
|
12246
|
-
type: mediaType,
|
|
12247
|
-
url: urlCallback,
|
|
12248
|
-
thumbnailUrl: thumbnailCallback,
|
|
12249
|
-
size: this.formatFileSize(file.size),
|
|
12250
|
-
};
|
|
12251
|
-
}
|
|
12252
|
-
/**
|
|
12253
|
-
* Resolve the URL for a file item.
|
|
12254
|
-
* Returns a promise that resolves to the file URL.
|
|
12255
|
-
*/
|
|
12256
|
-
/**
|
|
12257
|
-
* Register an object URL for later revocation on destroy (memory safety).
|
|
12258
|
-
*/
|
|
12259
|
-
trackObjectUrl(url) {
|
|
12260
|
-
if (url.startsWith('blob:')) {
|
|
12261
|
-
this.objectUrls.add(url);
|
|
12262
|
-
}
|
|
12263
|
-
return url;
|
|
12264
|
-
}
|
|
12265
|
-
async resolveFileUrl(file) {
|
|
12266
|
-
// Blob source - create object URL
|
|
12267
|
-
if (file.source?.kind === 'blob' && file.source.value instanceof Blob) {
|
|
12268
|
-
return this.trackObjectUrl(URL.createObjectURL(file.source.value));
|
|
12269
|
-
}
|
|
12270
|
-
// File ID source - fetch from storage service
|
|
12271
|
-
if (file.source?.kind === 'fileId' &&
|
|
12272
|
-
typeof file.source.value === 'string') {
|
|
12273
|
-
const fileId = normalizeStoredImageRef(file.source.value) ?? file.source.value;
|
|
12274
|
-
const fileInfo = await this.fileStorageService.getInfo(fileId);
|
|
12275
|
-
if (fileInfo?.url)
|
|
12276
|
-
return fileInfo.url;
|
|
12277
|
-
if (fileInfo?.binary)
|
|
12278
|
-
return this.trackObjectUrl(URL.createObjectURL(fileInfo.binary));
|
|
12279
|
-
return '';
|
|
12280
|
-
}
|
|
12281
|
-
// URL source - return directly
|
|
12282
|
-
if (file.source?.kind === 'url' && typeof file.source.value === 'string') {
|
|
12283
|
-
return file.source.value;
|
|
12284
|
-
}
|
|
12285
|
-
// String value - check if it's already a URL or needs resolution
|
|
12286
|
-
if (typeof file.source?.value === 'string') {
|
|
12287
|
-
const value = file.source.value;
|
|
12288
|
-
// Already a blob URL or data URL - use directly
|
|
12289
|
-
if (value.startsWith('blob:') ||
|
|
12290
|
-
value.startsWith('data:') ||
|
|
12291
|
-
value.startsWith('http')) {
|
|
12292
|
-
return value;
|
|
12293
|
-
}
|
|
12294
|
-
// Assume it's a file ID - fetch from storage service
|
|
12295
|
-
const fileId = normalizeStoredImageRef(value) ?? value;
|
|
12296
|
-
const fileInfo = await this.fileStorageService.getInfo(fileId);
|
|
12297
|
-
if (fileInfo?.url)
|
|
12298
|
-
return fileInfo.url;
|
|
12299
|
-
if (fileInfo?.binary)
|
|
12300
|
-
return this.trackObjectUrl(URL.createObjectURL(fileInfo.binary));
|
|
12301
|
-
return '';
|
|
12302
|
-
}
|
|
12303
|
-
return '';
|
|
12304
|
-
}
|
|
12305
|
-
ngOnDestroy() {
|
|
12306
|
-
for (const url of this.objectUrls) {
|
|
12307
|
-
URL.revokeObjectURL(url);
|
|
12308
|
-
}
|
|
12309
|
-
this.objectUrls.clear();
|
|
12310
|
-
}
|
|
12311
|
-
/**
|
|
12312
|
-
* Process files from drag-drop or other raw File sources.
|
|
12313
|
-
*/
|
|
12314
|
-
async processFiles(files) {
|
|
12315
|
-
if (files.length === 0) {
|
|
12316
|
-
return;
|
|
12317
|
-
}
|
|
12318
|
-
const newFileItems = files.map((file) => ({
|
|
12319
|
-
id: AXPDataGenerator.uuid(),
|
|
12320
|
-
name: file.name,
|
|
12321
|
-
size: file.size,
|
|
12322
|
-
status: 'attached',
|
|
12323
|
-
source: {
|
|
12324
|
-
kind: 'blob',
|
|
12325
|
-
value: file,
|
|
12326
|
-
},
|
|
12327
|
-
}));
|
|
12328
|
-
await this.processChosenItems(newFileItems);
|
|
12329
|
-
}
|
|
12330
|
-
//#region ---- Drag & Drop Handlers ----
|
|
12331
|
-
onFileChange(event) {
|
|
12332
|
-
void this.processFiles(event.files);
|
|
12333
|
-
}
|
|
12334
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPGalleryWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
12335
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPGalleryWidgetEditComponent, isStandalone: true, selector: "axp-gallery-widget-edit", host: { properties: { "style.height": "height()" }, classAttribute: "block" }, viewQueries: [{ propertyName: "gallery", first: true, predicate: ["c"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: ` <ax-media-viewer-container
|
|
12336
|
-
style="height: 75vh;"
|
|
12337
|
-
[thumbnail]="thumbnail()"
|
|
12338
|
-
#c
|
|
12339
|
-
[dataArray]="mediaViewerData()"
|
|
12340
|
-
>
|
|
12341
|
-
@if (header()) {
|
|
12342
|
-
<ax-header>
|
|
12343
|
-
@if (allowUpload()) {
|
|
12344
|
-
<ax-prefix>
|
|
12345
|
-
<ax-button
|
|
12346
|
-
axpFileChooser
|
|
12347
|
-
class="ax-sm"
|
|
12348
|
-
color="primary"
|
|
12349
|
-
[text]="'@general:actions.add-item.title' | translate | async"
|
|
12350
|
-
[context]="chooserContext()"
|
|
12351
|
-
[items]="files()"
|
|
12352
|
-
[busy]="isChoosing()"
|
|
12353
|
-
(itemsChange)="onChooserItemsChanged($event)"
|
|
12354
|
-
(busyChange)="isChoosing.set($event)"
|
|
12355
|
-
>
|
|
12356
|
-
<ax-prefix>
|
|
12357
|
-
<ax-icon icon="fa-light fa-plus"></ax-icon>
|
|
12358
|
-
</ax-prefix>
|
|
12359
|
-
</ax-button>
|
|
12360
|
-
</ax-prefix>
|
|
12361
|
-
}
|
|
12362
|
-
|
|
12363
|
-
@if (fileInfo()) {
|
|
12364
|
-
<ax-file-info></ax-file-info>
|
|
12365
|
-
}
|
|
12366
|
-
|
|
12367
|
-
<ax-suffix>
|
|
12368
|
-
@if (downloadButton()) {
|
|
12369
|
-
<ax-button
|
|
12370
|
-
class="ax-sm"
|
|
12371
|
-
look="blank"
|
|
12372
|
-
(click)="download()"
|
|
12373
|
-
[disabled]="mediaViewerData().length === 0"
|
|
12374
|
-
>
|
|
12375
|
-
<ax-icon icon="fa-light fa-download"></ax-icon>
|
|
12376
|
-
</ax-button>
|
|
12377
|
-
}
|
|
12378
|
-
@if (fullScreenButton()) {
|
|
12379
|
-
<ax-fullscreen-button> </ax-fullscreen-button>
|
|
12380
|
-
}
|
|
12381
|
-
</ax-suffix>
|
|
12382
|
-
</ax-header>
|
|
12383
|
-
}
|
|
12384
|
-
|
|
12385
|
-
<ax-prefix>
|
|
12386
|
-
<ax-button
|
|
12387
|
-
class="ax-sm"
|
|
12388
|
-
(click)="c.next()"
|
|
12389
|
-
[disabled]="c.getActiveIndex() === this.mediaViewerData().length - 1"
|
|
12390
|
-
>
|
|
12391
|
-
<ax-icon class="rtl:rotate-180 ax-icon ax-icon-chevron-right">
|
|
12392
|
-
</ax-icon>
|
|
12393
|
-
</ax-button>
|
|
12394
|
-
</ax-prefix>
|
|
12395
|
-
|
|
12396
|
-
<ax-suffix>
|
|
12397
|
-
<ax-button
|
|
12398
|
-
class="ax-sm"
|
|
12399
|
-
(click)="c.prev()"
|
|
12400
|
-
[disabled]="c.getActiveIndex() === 0"
|
|
12401
|
-
>
|
|
12402
|
-
<ax-icon class="rtl:rotate-180 ax-icon ax-icon-chevron-left">
|
|
12403
|
-
</ax-icon>
|
|
12404
|
-
</ax-button>
|
|
12405
|
-
</ax-suffix>
|
|
12406
|
-
</ax-media-viewer-container>`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXMediaViewerModule }, { kind: "component", type: i1$e.AXMediaViewerContainerComponent, selector: "ax-media-viewer-container", inputs: ["dataArray", "thumbnail", "pagination"] }, { kind: "component", type: i1$e.AXFileInfoComponent, selector: "ax-file-info" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: i2$1.AXDecoratorFullScreenButtonComponent, selector: "ax-fullscreen-button", inputs: ["element", "isActive"], outputs: ["elementChange", "isActiveChange"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: AXPFileChooserDirective, selector: "[axpFileChooser]", inputs: ["context", "disabled", "items", "busy"], outputs: ["itemsChange", "busyChange"] }, { kind: "pipe", type: i1$5.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12407
|
-
}
|
|
12408
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPGalleryWidgetEditComponent, decorators: [{
|
|
12409
|
-
type: Component,
|
|
12410
|
-
args: [{
|
|
12411
|
-
selector: 'axp-gallery-widget-edit',
|
|
12412
|
-
template: ` <ax-media-viewer-container
|
|
12413
|
-
style="height: 75vh;"
|
|
12414
|
-
[thumbnail]="thumbnail()"
|
|
12415
|
-
#c
|
|
12416
|
-
[dataArray]="mediaViewerData()"
|
|
12417
|
-
>
|
|
12418
|
-
@if (header()) {
|
|
12419
|
-
<ax-header>
|
|
12420
|
-
@if (allowUpload()) {
|
|
12421
|
-
<ax-prefix>
|
|
12422
|
-
<ax-button
|
|
12423
|
-
axpFileChooser
|
|
12424
|
-
class="ax-sm"
|
|
12425
|
-
color="primary"
|
|
12426
|
-
[text]="'@general:actions.add-item.title' | translate | async"
|
|
12427
|
-
[context]="chooserContext()"
|
|
12428
|
-
[items]="files()"
|
|
12429
|
-
[busy]="isChoosing()"
|
|
12430
|
-
(itemsChange)="onChooserItemsChanged($event)"
|
|
12431
|
-
(busyChange)="isChoosing.set($event)"
|
|
12432
|
-
>
|
|
12433
|
-
<ax-prefix>
|
|
12434
|
-
<ax-icon icon="fa-light fa-plus"></ax-icon>
|
|
12435
|
-
</ax-prefix>
|
|
12436
|
-
</ax-button>
|
|
12437
|
-
</ax-prefix>
|
|
12438
|
-
}
|
|
12439
|
-
|
|
12440
|
-
@if (fileInfo()) {
|
|
12441
|
-
<ax-file-info></ax-file-info>
|
|
12442
|
-
}
|
|
12443
|
-
|
|
12444
|
-
<ax-suffix>
|
|
12445
|
-
@if (downloadButton()) {
|
|
12446
|
-
<ax-button
|
|
12447
|
-
class="ax-sm"
|
|
12448
|
-
look="blank"
|
|
12449
|
-
(click)="download()"
|
|
12450
|
-
[disabled]="mediaViewerData().length === 0"
|
|
12451
|
-
>
|
|
12452
|
-
<ax-icon icon="fa-light fa-download"></ax-icon>
|
|
12453
|
-
</ax-button>
|
|
12454
|
-
}
|
|
12455
|
-
@if (fullScreenButton()) {
|
|
12456
|
-
<ax-fullscreen-button> </ax-fullscreen-button>
|
|
12457
|
-
}
|
|
12458
|
-
</ax-suffix>
|
|
12459
|
-
</ax-header>
|
|
12460
|
-
}
|
|
12461
|
-
|
|
12462
|
-
<ax-prefix>
|
|
12463
|
-
<ax-button
|
|
12464
|
-
class="ax-sm"
|
|
12465
|
-
(click)="c.next()"
|
|
12466
|
-
[disabled]="c.getActiveIndex() === this.mediaViewerData().length - 1"
|
|
12467
|
-
>
|
|
12468
|
-
<ax-icon class="rtl:rotate-180 ax-icon ax-icon-chevron-right">
|
|
12469
|
-
</ax-icon>
|
|
12470
|
-
</ax-button>
|
|
12471
|
-
</ax-prefix>
|
|
12472
|
-
|
|
12473
|
-
<ax-suffix>
|
|
12474
|
-
<ax-button
|
|
12475
|
-
class="ax-sm"
|
|
12476
|
-
(click)="c.prev()"
|
|
12477
|
-
[disabled]="c.getActiveIndex() === 0"
|
|
12478
|
-
>
|
|
12479
|
-
<ax-icon class="rtl:rotate-180 ax-icon ax-icon-chevron-left">
|
|
12480
|
-
</ax-icon>
|
|
12481
|
-
</ax-button>
|
|
12482
|
-
</ax-suffix>
|
|
12483
|
-
</ax-media-viewer-container>`,
|
|
12484
|
-
host: {
|
|
12485
|
-
class: 'block',
|
|
12486
|
-
'[style.height]': 'height()',
|
|
12487
|
-
},
|
|
12488
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
12489
|
-
imports: [
|
|
12490
|
-
AXMediaViewerModule,
|
|
12491
|
-
AXDecoratorModule,
|
|
12492
|
-
AXButtonModule,
|
|
12493
|
-
AXTranslationModule,
|
|
12494
|
-
AXPFileChooserDirective,
|
|
12495
|
-
AsyncPipe,
|
|
12496
|
-
],
|
|
12497
|
-
}]
|
|
12498
|
-
}], propDecorators: { gallery: [{ type: i0.ViewChild, args: ['c', { isSignal: true }] }] } });
|
|
12499
|
-
|
|
12500
|
-
var galleryWidgetEdit_component = /*#__PURE__*/Object.freeze({
|
|
12501
|
-
__proto__: null,
|
|
12502
|
-
AXPGalleryWidgetEditComponent: AXPGalleryWidgetEditComponent
|
|
12503
|
-
});
|
|
12504
|
-
|
|
12505
|
-
class AXPGalleryWidgetViewComponent extends AXPValueWidgetComponent {
|
|
12506
|
-
constructor() {
|
|
12507
|
-
super(...arguments);
|
|
12508
|
-
this.loadingDialog = inject(AXLoadingDialogService);
|
|
12509
|
-
this.translationService = inject(AXTranslationService);
|
|
12510
|
-
this.internalValue = computed(() => {
|
|
12511
|
-
const parsedValue = this.getValue() ? JSON.parse(this.getValue()) : [];
|
|
12512
|
-
return Array.isArray(parsedValue) ? parsedValue.map((c) => c) : [parsedValue];
|
|
12513
|
-
}, /* @ts-ignore */
|
|
12514
|
-
...(ngDevMode ? [{ debugName: "internalValue" }] : /* istanbul ignore next */ []));
|
|
12515
|
-
this.multiple = computed(() => this.options()['multiple'], /* @ts-ignore */
|
|
12516
|
-
...(ngDevMode ? [{ debugName: "multiple" }] : /* istanbul ignore next */ []));
|
|
12517
|
-
this.height = computed(() => this.options()['height'] ?? 30, /* @ts-ignore */
|
|
12518
|
-
...(ngDevMode ? [{ debugName: "height" }] : /* istanbul ignore next */ []));
|
|
12519
|
-
this.header = computed(() => this.options()['header'] ?? true, /* @ts-ignore */
|
|
12520
|
-
...(ngDevMode ? [{ debugName: "header" }] : /* istanbul ignore next */ []));
|
|
12521
|
-
this.fullScreenButton = computed(() => this.options()['fullScreenButton'] ?? true, /* @ts-ignore */
|
|
12522
|
-
...(ngDevMode ? [{ debugName: "fullScreenButton" }] : /* istanbul ignore next */ []));
|
|
12523
|
-
this.downloadButton = computed(() => this.options()['downloadButton'] ?? true, /* @ts-ignore */
|
|
12524
|
-
...(ngDevMode ? [{ debugName: "downloadButton" }] : /* istanbul ignore next */ []));
|
|
12525
|
-
this.thumbnails = computed(() => this.internalValue().filter((i) => i.id !== this.activeMedia()?.id), /* @ts-ignore */
|
|
12526
|
-
...(ngDevMode ? [{ debugName: "thumbnails" }] : /* istanbul ignore next */ []));
|
|
12527
|
-
this.activeMedia = signal(undefined, /* @ts-ignore */
|
|
12528
|
-
...(ngDevMode ? [{ debugName: "activeMedia" }] : /* istanbul ignore next */ []));
|
|
12529
|
-
}
|
|
12530
|
-
ngAfterViewInit() {
|
|
12531
|
-
this.activeMedia.set(this.internalValue()[0]);
|
|
12532
|
-
}
|
|
12533
|
-
changeMediaSelected(media) {
|
|
12534
|
-
this.activeMedia.set(media);
|
|
12535
|
-
}
|
|
12536
|
-
/** Downloads the currently active media file. */
|
|
12537
|
-
async download() {
|
|
12538
|
-
const media = this.activeMedia();
|
|
12539
|
-
if (!media?.url) {
|
|
12540
|
-
return;
|
|
12541
|
-
}
|
|
12542
|
-
const loadingDialogRef = this.loadingDialog.show({
|
|
12543
|
-
title: await this.translationService.translateAsync('@general:actions.download.processing'),
|
|
12544
|
-
mode: 'indeterminate',
|
|
12545
|
-
progressColor: 'primary',
|
|
12546
|
-
status: await this.translationService.translateAsync('@general:actions.download.processing'),
|
|
12547
|
-
});
|
|
12548
|
-
try {
|
|
12549
|
-
const link = document.createElement('a');
|
|
12550
|
-
link.href = media.url;
|
|
12551
|
-
link.download = media.name ?? 'download';
|
|
12552
|
-
link.target = '_blank';
|
|
12553
|
-
link.rel = 'noopener noreferrer';
|
|
12554
|
-
link.click();
|
|
12555
|
-
}
|
|
12556
|
-
finally {
|
|
12557
|
-
loadingDialogRef.close();
|
|
12558
|
-
}
|
|
12559
|
-
}
|
|
12560
|
-
getMediaInfo(mediaName) {
|
|
12561
|
-
const extension = mediaName.split('.').pop()?.toLowerCase();
|
|
12562
|
-
switch (extension) {
|
|
12563
|
-
case 'jpg':
|
|
12564
|
-
case 'jpeg':
|
|
12565
|
-
case 'png':
|
|
12566
|
-
case 'gif':
|
|
12567
|
-
case 'bmp':
|
|
12568
|
-
case 'webp':
|
|
12569
|
-
case 'svg':
|
|
12570
|
-
return { icon: '', format: 'image' };
|
|
12571
|
-
case 'pdf':
|
|
12572
|
-
return { icon: 'fa-regular fa-file-pdf', format: 'image' };
|
|
12573
|
-
case 'mp4':
|
|
12574
|
-
case 'webm':
|
|
12575
|
-
case 'avi':
|
|
12576
|
-
case 'mkv':
|
|
12577
|
-
case 'mov':
|
|
12578
|
-
case 'm4v':
|
|
12579
|
-
case 'wmv':
|
|
12580
|
-
return { icon: 'fa-regular fa-play', format: 'video' };
|
|
12581
|
-
case 'mp3':
|
|
12582
|
-
case 'wav':
|
|
12583
|
-
case 'ogg':
|
|
12584
|
-
case 'oga':
|
|
12585
|
-
case 'm4a':
|
|
12586
|
-
case 'flac':
|
|
12587
|
-
case 'aac':
|
|
12588
|
-
case 'wma':
|
|
12589
|
-
case 'weba':
|
|
12590
|
-
return { icon: 'fa-regular fa-volume-high', format: 'audio' };
|
|
12591
|
-
default:
|
|
12592
|
-
return { icon: '', format: 'image' };
|
|
12593
|
-
}
|
|
12594
|
-
}
|
|
12595
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPGalleryWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
12596
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPGalleryWidgetViewComponent, isStandalone: true, selector: "axp-gallery-widget-view", host: { properties: { "style.height": "height()" }, classAttribute: "block" }, usesInheritance: true, ngImport: i0, template: `
|
|
12597
|
-
<div class="grid grid-cols-12 gap-2">
|
|
12598
|
-
@if (internalValue().length) {
|
|
12599
|
-
@if (header()) {
|
|
12600
|
-
<div class="col-start-1 col-end-13 flex justify-end gap-2 mb-2">
|
|
12601
|
-
@if (downloadButton()) {
|
|
12602
|
-
<ax-button class="ax-sm" look="blank" (click)="download()">
|
|
12603
|
-
<ax-icon icon="fa-light fa-download"></ax-icon>
|
|
12604
|
-
</ax-button>
|
|
12605
|
-
}
|
|
12606
|
-
@if (fullScreenButton()) {
|
|
12607
|
-
<ax-fullscreen-button></ax-fullscreen-button>
|
|
12608
|
-
}
|
|
12609
|
-
</div>
|
|
12610
|
-
}
|
|
12611
|
-
<div class="flex items-center justify-between rounded-lg col-start-1 col-end-13">
|
|
12612
|
-
<div class="flex items-center md:justify-start justify-center w-full gap-3">
|
|
12613
|
-
<div class="flex flex-col items-center gap-4">
|
|
12614
|
-
@switch (getMediaInfo(activeMedia()?.name || '').format) {
|
|
12615
|
-
@case ('video') {
|
|
12616
|
-
<video
|
|
12617
|
-
class="rounded-lg h-48 md:h-72 w-auto shadow-md"
|
|
12618
|
-
controls
|
|
12619
|
-
[src]="$safeNavigationMigration(activeMedia()?.url)"
|
|
12620
|
-
></video>
|
|
12621
|
-
}
|
|
12622
|
-
@case ('image') {
|
|
12623
|
-
<ax-image class="rounded-lg h-48 md:h-72 w-auto" [src]="$safeNavigationMigration(activeMedia()?.url)">
|
|
12624
|
-
<ax-loading></ax-loading>
|
|
12625
|
-
<ax-placeholder>
|
|
12626
|
-
<div
|
|
12627
|
-
class="w-96 h-72 gap-4 flex flex-col items-center justify-center border rounded-lg"
|
|
12628
|
-
>
|
|
12629
|
-
<ax-icon class="fa-solid fa-circle-exclamation text-2xl"> </ax-icon>
|
|
12630
|
-
<span>Connection Error!</span>
|
|
12631
|
-
</div>
|
|
12632
|
-
</ax-placeholder>
|
|
12633
|
-
</ax-image>
|
|
12634
|
-
}
|
|
12635
|
-
@case ('audio') {
|
|
12636
|
-
<audio controls class="rounded-lg">
|
|
12637
|
-
<source [src]="$safeNavigationMigration(activeMedia()?.url)" type="audio/mp3" />
|
|
12638
|
-
</audio>
|
|
12639
|
-
}
|
|
12640
|
-
}
|
|
12641
|
-
<div class="flex gap-4 overflow-x-auto max-w-[320px] lg:max-w-[480px] pb-2">
|
|
12642
|
-
@for (media of thumbnails(); track $index) {
|
|
12643
|
-
@if (getMediaInfo(media.name); as mediaInfo) {
|
|
12644
|
-
<div
|
|
12645
|
-
class="hover:opacity-75 transition-all relative cursor-pointer flex justify-center items-center"
|
|
12646
|
-
(click)="changeMediaSelected(media)"
|
|
12647
|
-
>
|
|
12648
|
-
<ax-image
|
|
12649
|
-
class="w-16 brightness-50 h-16 rounded-lg shadow-md filter"
|
|
12650
|
-
[src]="mediaInfo.format == 'image' ? media.url : media.posterUrl"
|
|
12651
|
-
></ax-image>
|
|
12652
|
-
<div class="absolute text-neutral-300 text-xl">
|
|
12653
|
-
<ax-icon [class]="mediaInfo.icon"> </ax-icon>
|
|
12654
|
-
</div>
|
|
12655
|
-
</div>
|
|
12656
|
-
}
|
|
12657
|
-
}
|
|
12658
|
-
</div>
|
|
12659
|
-
</div>
|
|
12660
|
-
</div>
|
|
12661
|
-
</div>
|
|
12662
|
-
} @else {
|
|
12663
|
-
<!-- Empty State -->
|
|
12664
|
-
<axp-state-message
|
|
12665
|
-
icon="fa-light fa-images"
|
|
12666
|
-
[title]="'@general:no-media.title'"
|
|
12667
|
-
[description]="'@general:no-media.description'"
|
|
12668
|
-
>
|
|
12669
|
-
</axp-state-message>
|
|
12670
|
-
}
|
|
12671
|
-
</div>
|
|
12672
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXImageModule }, { kind: "component", type: i1$f.AXImageComponent, selector: "ax-image", inputs: ["width", "height", "overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: i2$1.AXDecoratorFullScreenButtonComponent, selector: "ax-fullscreen-button", inputs: ["element", "isActive"], outputs: ["elementChange", "isActiveChange"] }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i2$2.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "component", type: AXPStateMessageComponent, selector: "axp-state-message", inputs: ["mode", "icon", "title", "description", "titleParams", "descriptionParams", "look"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXMediaViewerModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12673
|
-
}
|
|
12674
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPGalleryWidgetViewComponent, decorators: [{
|
|
12675
|
-
type: Component,
|
|
12676
|
-
args: [{
|
|
12677
|
-
selector: 'axp-gallery-widget-view',
|
|
12678
|
-
template: `
|
|
12679
|
-
<div class="grid grid-cols-12 gap-2">
|
|
12680
|
-
@if (internalValue().length) {
|
|
12681
|
-
@if (header()) {
|
|
12682
|
-
<div class="col-start-1 col-end-13 flex justify-end gap-2 mb-2">
|
|
12683
|
-
@if (downloadButton()) {
|
|
12684
|
-
<ax-button class="ax-sm" look="blank" (click)="download()">
|
|
12685
|
-
<ax-icon icon="fa-light fa-download"></ax-icon>
|
|
12686
|
-
</ax-button>
|
|
12687
|
-
}
|
|
12688
|
-
@if (fullScreenButton()) {
|
|
12689
|
-
<ax-fullscreen-button></ax-fullscreen-button>
|
|
12690
|
-
}
|
|
12691
|
-
</div>
|
|
12692
|
-
}
|
|
12693
|
-
<div class="flex items-center justify-between rounded-lg col-start-1 col-end-13">
|
|
12694
|
-
<div class="flex items-center md:justify-start justify-center w-full gap-3">
|
|
12695
|
-
<div class="flex flex-col items-center gap-4">
|
|
12696
|
-
@switch (getMediaInfo(activeMedia()?.name || '').format) {
|
|
12697
|
-
@case ('video') {
|
|
12698
|
-
<video
|
|
12699
|
-
class="rounded-lg h-48 md:h-72 w-auto shadow-md"
|
|
12700
|
-
controls
|
|
12701
|
-
[src]="$safeNavigationMigration(activeMedia()?.url)"
|
|
12702
|
-
></video>
|
|
12703
|
-
}
|
|
12704
|
-
@case ('image') {
|
|
12705
|
-
<ax-image class="rounded-lg h-48 md:h-72 w-auto" [src]="$safeNavigationMigration(activeMedia()?.url)">
|
|
12706
|
-
<ax-loading></ax-loading>
|
|
12707
|
-
<ax-placeholder>
|
|
12708
|
-
<div
|
|
12709
|
-
class="w-96 h-72 gap-4 flex flex-col items-center justify-center border rounded-lg"
|
|
12710
|
-
>
|
|
12711
|
-
<ax-icon class="fa-solid fa-circle-exclamation text-2xl"> </ax-icon>
|
|
12712
|
-
<span>Connection Error!</span>
|
|
12713
|
-
</div>
|
|
12714
|
-
</ax-placeholder>
|
|
12715
|
-
</ax-image>
|
|
12716
|
-
}
|
|
12717
|
-
@case ('audio') {
|
|
12718
|
-
<audio controls class="rounded-lg">
|
|
12719
|
-
<source [src]="$safeNavigationMigration(activeMedia()?.url)" type="audio/mp3" />
|
|
12720
|
-
</audio>
|
|
12721
|
-
}
|
|
12722
|
-
}
|
|
12723
|
-
<div class="flex gap-4 overflow-x-auto max-w-[320px] lg:max-w-[480px] pb-2">
|
|
12724
|
-
@for (media of thumbnails(); track $index) {
|
|
12725
|
-
@if (getMediaInfo(media.name); as mediaInfo) {
|
|
12726
|
-
<div
|
|
12727
|
-
class="hover:opacity-75 transition-all relative cursor-pointer flex justify-center items-center"
|
|
12728
|
-
(click)="changeMediaSelected(media)"
|
|
12729
|
-
>
|
|
12730
|
-
<ax-image
|
|
12731
|
-
class="w-16 brightness-50 h-16 rounded-lg shadow-md filter"
|
|
12732
|
-
[src]="mediaInfo.format == 'image' ? media.url : media.posterUrl"
|
|
12733
|
-
></ax-image>
|
|
12734
|
-
<div class="absolute text-neutral-300 text-xl">
|
|
12735
|
-
<ax-icon [class]="mediaInfo.icon"> </ax-icon>
|
|
12736
|
-
</div>
|
|
12737
|
-
</div>
|
|
12738
|
-
}
|
|
12739
|
-
}
|
|
12740
|
-
</div>
|
|
12741
|
-
</div>
|
|
12742
|
-
</div>
|
|
12743
|
-
</div>
|
|
12744
|
-
} @else {
|
|
12745
|
-
<!-- Empty State -->
|
|
12746
|
-
<axp-state-message
|
|
12747
|
-
icon="fa-light fa-images"
|
|
12748
|
-
[title]="'@general:no-media.title'"
|
|
12749
|
-
[description]="'@general:no-media.description'"
|
|
12750
|
-
>
|
|
12751
|
-
</axp-state-message>
|
|
12752
|
-
}
|
|
12753
|
-
</div>
|
|
12754
|
-
`,
|
|
12755
|
-
host: {
|
|
12756
|
-
class: 'block',
|
|
12757
|
-
'[style.height]': 'height()',
|
|
12758
|
-
},
|
|
12759
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
12760
|
-
imports: [
|
|
12761
|
-
AXImageModule,
|
|
12762
|
-
AXDecoratorModule,
|
|
12763
|
-
AXLoadingModule,
|
|
12764
|
-
AXPStateMessageComponent,
|
|
12765
|
-
AXButtonModule,
|
|
12766
|
-
AXMediaViewerModule,
|
|
12767
|
-
],
|
|
12768
|
-
}]
|
|
12769
|
-
}] });
|
|
12770
|
-
|
|
12771
|
-
var galleryWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
12772
|
-
__proto__: null,
|
|
12773
|
-
AXPGalleryWidgetViewComponent: AXPGalleryWidgetViewComponent
|
|
12774
|
-
});
|
|
12775
|
-
|
|
12776
|
-
const AXPGalleryWidget = {
|
|
12777
|
-
name: 'gallery',
|
|
12778
|
-
title: '@platform-layout-widgets:widgets.gallery.title',
|
|
12779
|
-
description: '@platform-layout-widgets:widgets.gallery.description',
|
|
12780
|
-
icon: 'fa-light fa-images',
|
|
12781
|
-
categories: [AXP_WIDGETS_ADVANCE_CATEGORY],
|
|
12782
|
-
subCategory: AXP_WIDGETS_ADVANCE_SUB_MEDIA,
|
|
12783
|
-
groups: [AXPWidgetGroupEnum.FormElement],
|
|
12784
|
-
properties: [
|
|
12785
|
-
AXP_NAME_PROPERTY,
|
|
12786
|
-
AXP_DATA_PATH_PROPERTY,
|
|
12787
|
-
createBooleanProperty({
|
|
12788
|
-
name: 'thumbnail',
|
|
12789
|
-
title: 'Thumbnail',
|
|
12790
|
-
group: AXP_BEHAVIOR_PROPERTY_GROUP,
|
|
12791
|
-
defaultValue: true,
|
|
12792
|
-
path: 'options.thumbnail',
|
|
12793
|
-
}),
|
|
12794
|
-
createBooleanProperty({
|
|
12795
|
-
name: 'header',
|
|
12796
|
-
title: 'Header',
|
|
12797
|
-
group: AXP_BEHAVIOR_PROPERTY_GROUP,
|
|
12798
|
-
defaultValue: true,
|
|
12799
|
-
path: 'options.header',
|
|
12800
|
-
}),
|
|
12801
|
-
createBooleanProperty({
|
|
12802
|
-
name: 'fileInfo',
|
|
12803
|
-
title: 'File Info',
|
|
12804
|
-
group: AXP_BEHAVIOR_PROPERTY_GROUP,
|
|
12805
|
-
defaultValue: true,
|
|
12806
|
-
path: 'options.fileInfo',
|
|
12807
|
-
}),
|
|
12808
|
-
createBooleanProperty({
|
|
12809
|
-
name: 'fullScreenButton',
|
|
12810
|
-
title: 'Full Screen Button',
|
|
12811
|
-
group: AXP_BEHAVIOR_PROPERTY_GROUP,
|
|
12812
|
-
defaultValue: true,
|
|
12813
|
-
path: 'options.fullScreenButton',
|
|
12814
|
-
}),
|
|
12815
|
-
],
|
|
12816
|
-
type: 'editor',
|
|
12817
|
-
components: {
|
|
12818
|
-
view: {
|
|
12819
|
-
component: () => Promise.resolve().then(function () { return galleryWidgetView_component; }).then((c) => c.AXPGalleryWidgetViewComponent),
|
|
12820
|
-
},
|
|
12821
|
-
edit: {
|
|
12822
|
-
component: () => Promise.resolve().then(function () { return galleryWidgetEdit_component; }).then((c) => c.AXPGalleryWidgetEditComponent),
|
|
12823
|
-
},
|
|
12824
|
-
designer: {
|
|
12825
|
-
component: () => Promise.resolve().then(function () { return galleryWidgetEdit_component; }).then((c) => c.AXPGalleryWidgetEditComponent),
|
|
12826
|
-
},
|
|
12827
|
-
},
|
|
12828
|
-
};
|
|
12829
|
-
|
|
12830
|
-
class AXPImageMarkerPopupComponent extends AXBasePageComponent {
|
|
12831
|
-
ngOnInit() {
|
|
12832
|
-
this.node = {
|
|
12833
|
-
name: 'image-marker-popup-view',
|
|
12834
|
-
type: 'image-marker',
|
|
12835
|
-
options: this.options,
|
|
12836
|
-
defaultValue: this.value,
|
|
12837
|
-
};
|
|
12838
|
-
}
|
|
12839
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPImageMarkerPopupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
12840
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: AXPImageMarkerPopupComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
|
|
12841
|
-
<axp-widgets-container>
|
|
12842
|
-
<ng-container axp-widget-renderer [node]="node" mode="view"></ng-container>
|
|
12843
|
-
</axp-widgets-container>
|
|
12844
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: i1.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i1.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12845
|
-
}
|
|
12846
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPImageMarkerPopupComponent, decorators: [{
|
|
12847
|
-
type: Component,
|
|
12848
|
-
args: [{
|
|
12849
|
-
imports: [AXPWidgetCoreModule],
|
|
12850
|
-
template: `
|
|
12851
|
-
<axp-widgets-container>
|
|
12852
|
-
<ng-container axp-widget-renderer [node]="node" mode="view"></ng-container>
|
|
12853
|
-
</axp-widgets-container>
|
|
12854
|
-
`,
|
|
12855
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
12856
|
-
}]
|
|
12857
|
-
}] });
|
|
12858
|
-
|
|
12859
|
-
class AXPImageMarkerWidgetColumnComponent extends AXPColumnWidgetComponent {
|
|
12860
|
-
constructor() {
|
|
12861
|
-
super();
|
|
12862
|
-
this.layoutBuilder = inject(AXPLayoutBuilderService);
|
|
12863
|
-
this.rawImage = computed(() => this.options?.image, /* @ts-ignore */
|
|
12864
|
-
...(ngDevMode ? [{ debugName: "rawImage" }] : /* istanbul ignore next */ []));
|
|
12865
|
-
this.rawPoints = () => this.rawValue;
|
|
12866
|
-
this.imageUrl = signal(null, /* @ts-ignore */
|
|
12867
|
-
...(ngDevMode ? [{ debugName: "imageUrl" }] : /* istanbul ignore next */ []));
|
|
12868
|
-
effect(() => {
|
|
12869
|
-
const imageSource = this.rawImage();
|
|
12870
|
-
const currentUrl = this.imageUrl();
|
|
12871
|
-
if (currentUrl && currentUrl.startsWith('blob:')) {
|
|
12872
|
-
URL.revokeObjectURL(currentUrl);
|
|
12873
|
-
}
|
|
12874
|
-
if (typeof imageSource === 'string') {
|
|
12875
|
-
this.imageUrl.set(imageSource);
|
|
12876
|
-
}
|
|
12877
|
-
else if (imageSource instanceof URL) {
|
|
12878
|
-
this.imageUrl.set(imageSource.href);
|
|
12879
|
-
}
|
|
12880
|
-
else if (imageSource instanceof Blob) {
|
|
12881
|
-
this.imageUrl.set(URL.createObjectURL(imageSource));
|
|
12882
|
-
}
|
|
12883
|
-
else if (imageSource instanceof ArrayBuffer) {
|
|
12884
|
-
const blob = new Blob([imageSource]);
|
|
12885
|
-
this.imageUrl.set(URL.createObjectURL(blob));
|
|
12886
|
-
}
|
|
12887
|
-
else {
|
|
12888
|
-
this.imageUrl.set(null);
|
|
12889
|
-
}
|
|
12890
|
-
});
|
|
12891
|
-
}
|
|
12892
|
-
async showPopup() {
|
|
12893
|
-
const url = this.imageUrl();
|
|
12894
|
-
if (!url) {
|
|
12334
|
+
async showPopup() {
|
|
12335
|
+
const url = this.imageUrl();
|
|
12336
|
+
if (!url) {
|
|
12895
12337
|
return;
|
|
12896
12338
|
}
|
|
12897
12339
|
const opts = this.options;
|
|
@@ -12939,7 +12381,7 @@ class AXPImageMarkerWidgetColumnComponent extends AXPColumnWidgetComponent {
|
|
|
12939
12381
|
</ax-icon>
|
|
12940
12382
|
</ax-button>
|
|
12941
12383
|
</div>
|
|
12942
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "
|
|
12384
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12943
12385
|
}
|
|
12944
12386
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPImageMarkerWidgetColumnComponent, decorators: [{
|
|
12945
12387
|
type: Component,
|
|
@@ -13330,7 +12772,7 @@ const AXPImageMarkerWidget = {
|
|
|
13330
12772
|
//#region ----- Imports -----
|
|
13331
12773
|
//#endregion
|
|
13332
12774
|
//#region ----- Constants -----
|
|
13333
|
-
const I18N = '@platform-layout-widgets:widgets.integration-connections-panel';
|
|
12775
|
+
const I18N$1 = '@platform-layout-widgets:widgets.integration-connections-panel';
|
|
13334
12776
|
const ACTION_CLICK_GUARD_MS$1 = 300;
|
|
13335
12777
|
const CONNECTION_UPDATE_COMMAND = 'IntegrationManagement.Connection:Update';
|
|
13336
12778
|
const DISCONNECT_COMMAND = 'IntegrationManagement.Connection:Disconnect';
|
|
@@ -13481,7 +12923,7 @@ class AXPIntegrationConnectionActionsService {
|
|
|
13481
12923
|
}
|
|
13482
12924
|
async disconnect(provider, connection) {
|
|
13483
12925
|
const connectionLabel = await this.resolveConnectionLabel(provider, connection);
|
|
13484
|
-
const confirmed = await this.dialogService.confirm(await this.translationService.translateAsync(`${I18N}.dialogs.disconnect.title`), await this.translationService.translateAsync(`${I18N}.dialogs.disconnect.message`, {
|
|
12926
|
+
const confirmed = await this.dialogService.confirm(await this.translationService.translateAsync(`${I18N$1}.dialogs.disconnect.title`), await this.translationService.translateAsync(`${I18N$1}.dialogs.disconnect.message`, {
|
|
13485
12927
|
params: { provider: connectionLabel },
|
|
13486
12928
|
}), 'danger', 'horizontal', false, 'cancel');
|
|
13487
12929
|
if (confirmed.result !== true) {
|
|
@@ -13494,7 +12936,7 @@ class AXPIntegrationConnectionActionsService {
|
|
|
13494
12936
|
}
|
|
13495
12937
|
async remove(provider, connection) {
|
|
13496
12938
|
const connectionLabel = await this.resolveConnectionLabel(provider, connection);
|
|
13497
|
-
const confirmed = await this.dialogService.confirm(await this.translationService.translateAsync(`${I18N}.dialogs.remove.title`), await this.translationService.translateAsync(`${I18N}.dialogs.remove.message`, {
|
|
12939
|
+
const confirmed = await this.dialogService.confirm(await this.translationService.translateAsync(`${I18N$1}.dialogs.remove.title`), await this.translationService.translateAsync(`${I18N$1}.dialogs.remove.message`, {
|
|
13498
12940
|
params: { provider: connectionLabel },
|
|
13499
12941
|
}), 'danger', 'horizontal', false, 'cancel');
|
|
13500
12942
|
if (confirmed.result !== true) {
|
|
@@ -13973,7 +13415,7 @@ class AXPIntegrationConnectionsPanelWidgetEditComponent extends AXPValueWidgetCo
|
|
|
13973
13415
|
this.providerBadges.set(resolved);
|
|
13974
13416
|
}
|
|
13975
13417
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPIntegrationConnectionsPanelWidgetEditComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13976
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPIntegrationConnectionsPanelWidgetEditComponent, isStandalone: true, selector: "axp-integration-connections-panel-widget-edit", usesInheritance: true, ngImport: i0, template: "<!-- ----- Integration connections panel: loading state or provider cards ----- -->\n<div class=\"flex w-full flex-col gap-4\">\n @if (loading()) {\n <!-- ----- Loading indicator while providers and connections are fetched ----- -->\n <ax-loading></ax-loading>\n }\n <!-- ----- Provider cards filtered by widget options (providerId, domainId) ----- -->\n @else {\n @for (provider of visibleProviders(); track provider.id) {\n <section\n class=\"flex flex-col gap-4 rounded-lg border border-surface bg-lighter-surface p-4\"\n >\n <div class=\"flex items-start justify-between gap-3\">\n <!-- ----- Provider identity: logo/icon, title, description, and status badges ----- -->\n <div class=\"flex min-w-0 items-center gap-3\">\n @if (provider.logoKey) {\n <axp-logo\n [logoKey]=\"provider.logoKey\"\n appearance=\"colored\"\n [size]=\"24\"\n />\n }\n <!-- ----- Fallback icon when no logo key is configured ----- -->\n @else if (provider.icon) {\n <ax-icon class=\"text-lg\">\n <i [class]=\"provider.icon\"></i>\n </ax-icon>\n }\n\n <div class=\"min-w-0\">\n <!-- ----- Provider display name and connect-disabled warning badge ----- -->\n <div class=\"flex flex-wrap items-center gap-2 font-medium\">\n <span>{{ provider.displayName | translate | async }}</span>\n <!--------------------------------------------------------------->\n @if (isConnectDisabled(provider.id) && connectDisabledBadgeKey(provider.id); as badgeKey) {\n <span\n class=\"inline-flex cursor-help\"\n [axTooltip]=\"(connectDisabledMessageKey(provider.id) | translate | async) ?? ''\"\n axTooltipPlacement=\"top\"\n [attr.aria-label]=\"(connectDisabledMessageKey(provider.id) | translate | async) ?? ''\"\n >\n <ax-badge\n size=\"sm\"\n look=\"twotone\"\n color=\"warning\"\n [text]=\"(badgeKey | translate | async) ?? ''\"\n ></ax-badge>\n </span>\n }\n </div>\n\n <!--------------------------------------------------------------->\n <!-- ----- Optional provider description ----- -->\n @if (provider.description) {\n <div class=\"text-sm opacity-70\">\n {{ provider.description | translate | async }}\n </div>\n }\n </div>\n </div>\n\n <!-- ----- Status badges and connect or manage actions ----- -->\n <div class=\"flex shrink-0 flex-wrap items-center justify-end gap-2\">\n @if (getProviderBadges(provider.id); as badges) {\n <!--------------------------------------------------------------->\n <!-- ----- Runtime connection settings badges (e.g. last sync) ----- -->\n @if (badges.length > 0) {\n <div class=\"flex flex-wrap items-center gap-1\">\n @for (badge of badges; track badge.text) {\n <ax-badge\n size=\"sm\"\n [look]=\"'twotone'\"\n [color]=\"badge.color\"\n [text]=\"badge.text\"\n ></ax-badge>\n }\n </div>\n }\n }\n @if (isProviderConnected(provider.id)) {\n <!-- ----- Manage dropdown: reconfigure and disconnect ----- -->\n <ax-dropdown-button\n size=\"sm\"\n look=\"twotone\"\n color=\"primary\"\n [mode]=\"'dropdown'\"\n type=\"button\"\n [disabled]=\"pendingAction()\"\n [text]=\"(I18N + '.actions.manage' | translate | async) ?? ''\"\n >\n <ax-button-item-list>\n @if (supportsConnect(provider)) {\n <ax-button-item\n [text]=\"(I18N + '.actions.reconfigure' | translate | async) ?? ''\"\n [disabled]=\"pendingAction() || isConnectDisabled(provider.id)\"\n (onClick)=\"handleConfigure(provider)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-gear\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n }\n @for (action of getManageActions(provider); track action.commandKey) {\n <ax-button-item\n [text]=\"(action.titleKey | translate | async) ?? ''\"\n [color]=\"action.color\"\n [disabled]=\"pendingAction()\"\n (onClick)=\"handleManageAction(provider, action)\"\n >\n @if (action.icon) {\n <ax-prefix>\n <ax-icon [icon]=\"action.icon\"></ax-icon>\n </ax-prefix>\n }\n </ax-button-item>\n }\n <ax-button-item\n [text]=\"(I18N + '.actions.disconnect' | translate | async) ?? ''\"\n color=\"danger\"\n [disabled]=\"pendingAction()\"\n (onClick)=\"disconnect(provider.id)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-link-slash\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n }\n <!-- ----- Connect action when provider is not yet connected ----- -->\n @else if (supportsConnect(provider)) {\n <ax-button\n size=\"sm\"\n look=\"twotone\"\n color=\"primary\"\n type=\"button\"\n [disabled]=\"pendingAction() || isConnectDisabled(provider.id)\"\n [text]=\"(I18N + '.actions.connect' | translate | async) ?? ''\"\n (onClick)=\"handleConnect(provider)\"\n >\n <ax-suffix>\n <ax-icon icon=\"fa-light fa-arrow-up-right-from-square\"></ax-icon>\n </ax-suffix>\n </ax-button>\n }\n </div>\n </div>\n </section>\n }\n }\n</div>\n", dependencies: [{ kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i1$3.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "
|
|
13418
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPIntegrationConnectionsPanelWidgetEditComponent, isStandalone: true, selector: "axp-integration-connections-panel-widget-edit", usesInheritance: true, ngImport: i0, template: "<!-- ----- Integration connections panel: loading state or provider cards ----- -->\n<div class=\"flex w-full flex-col gap-4\">\n @if (loading()) {\n <!-- ----- Loading indicator while providers and connections are fetched ----- -->\n <ax-loading></ax-loading>\n }\n <!-- ----- Provider cards filtered by widget options (providerId, domainId) ----- -->\n @else {\n @for (provider of visibleProviders(); track provider.id) {\n <section\n class=\"flex flex-col gap-4 rounded-lg border border-surface bg-lighter-surface p-4\"\n >\n <div class=\"flex items-start justify-between gap-3\">\n <!-- ----- Provider identity: logo/icon, title, description, and status badges ----- -->\n <div class=\"flex min-w-0 items-center gap-3\">\n @if (provider.logoKey) {\n <axp-logo\n [logoKey]=\"provider.logoKey\"\n appearance=\"colored\"\n [size]=\"24\"\n />\n }\n <!-- ----- Fallback icon when no logo key is configured ----- -->\n @else if (provider.icon) {\n <ax-icon class=\"text-lg\">\n <i [class]=\"provider.icon\"></i>\n </ax-icon>\n }\n\n <div class=\"min-w-0\">\n <!-- ----- Provider display name and connect-disabled warning badge ----- -->\n <div class=\"flex flex-wrap items-center gap-2 font-medium\">\n <span>{{ provider.displayName | translate | async }}</span>\n <!--------------------------------------------------------------->\n @if (isConnectDisabled(provider.id) && connectDisabledBadgeKey(provider.id); as badgeKey) {\n <span\n class=\"inline-flex cursor-help\"\n [axTooltip]=\"(connectDisabledMessageKey(provider.id) | translate | async) ?? ''\"\n axTooltipPlacement=\"top\"\n [attr.aria-label]=\"(connectDisabledMessageKey(provider.id) | translate | async) ?? ''\"\n >\n <ax-badge\n size=\"sm\"\n look=\"twotone\"\n color=\"warning\"\n [text]=\"(badgeKey | translate | async) ?? ''\"\n ></ax-badge>\n </span>\n }\n </div>\n\n <!--------------------------------------------------------------->\n <!-- ----- Optional provider description ----- -->\n @if (provider.description) {\n <div class=\"text-sm opacity-70\">\n {{ provider.description | translate | async }}\n </div>\n }\n </div>\n </div>\n\n <!-- ----- Status badges and connect or manage actions ----- -->\n <div class=\"flex shrink-0 flex-wrap items-center justify-end gap-2\">\n @if (getProviderBadges(provider.id); as badges) {\n <!--------------------------------------------------------------->\n <!-- ----- Runtime connection settings badges (e.g. last sync) ----- -->\n @if (badges.length > 0) {\n <div class=\"flex flex-wrap items-center gap-1\">\n @for (badge of badges; track badge.text) {\n <ax-badge\n size=\"sm\"\n [look]=\"'twotone'\"\n [color]=\"badge.color\"\n [text]=\"badge.text\"\n ></ax-badge>\n }\n </div>\n }\n }\n @if (isProviderConnected(provider.id)) {\n <!-- ----- Manage dropdown: reconfigure and disconnect ----- -->\n <ax-dropdown-button\n size=\"sm\"\n look=\"twotone\"\n color=\"primary\"\n [mode]=\"'dropdown'\"\n type=\"button\"\n [disabled]=\"pendingAction()\"\n [text]=\"(I18N + '.actions.manage' | translate | async) ?? ''\"\n >\n <ax-button-item-list>\n @if (supportsConnect(provider)) {\n <ax-button-item\n [text]=\"(I18N + '.actions.reconfigure' | translate | async) ?? ''\"\n [disabled]=\"pendingAction() || isConnectDisabled(provider.id)\"\n (onClick)=\"handleConfigure(provider)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-gear\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n }\n @for (action of getManageActions(provider); track action.commandKey) {\n <ax-button-item\n [text]=\"(action.titleKey | translate | async) ?? ''\"\n [color]=\"action.color\"\n [disabled]=\"pendingAction()\"\n (onClick)=\"handleManageAction(provider, action)\"\n >\n @if (action.icon) {\n <ax-prefix>\n <ax-icon [icon]=\"action.icon\"></ax-icon>\n </ax-prefix>\n }\n </ax-button-item>\n }\n <ax-button-item\n [text]=\"(I18N + '.actions.disconnect' | translate | async) ?? ''\"\n color=\"danger\"\n [disabled]=\"pendingAction()\"\n (onClick)=\"disconnect(provider.id)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-link-slash\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n }\n <!-- ----- Connect action when provider is not yet connected ----- -->\n @else if (supportsConnect(provider)) {\n <ax-button\n size=\"sm\"\n look=\"twotone\"\n color=\"primary\"\n type=\"button\"\n [disabled]=\"pendingAction() || isConnectDisabled(provider.id)\"\n [text]=\"(I18N + '.actions.connect' | translate | async) ?? ''\"\n (onClick)=\"handleConnect(provider)\"\n >\n <ax-suffix>\n <ax-icon icon=\"fa-light fa-arrow-up-right-from-square\"></ax-icon>\n </ax-suffix>\n </ax-button>\n }\n </div>\n </div>\n </section>\n }\n }\n</div>\n", dependencies: [{ kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i1$3.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i1$1.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i1$1.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items", "closeParentOnClick", "lockOnLoading"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "component", type: i6.AXDropdownButtonComponent, selector: "ax-dropdown-button", inputs: ["disabled", "size", "text", "color", "look", "type", "mode"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i2$2.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "directive", type: i6$1.AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltipDisabled", "axTooltip", "axTooltipContext", "axTooltipPlacement", "axTooltipOffsetX", "axTooltipOffsetY", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "component", type: AXPLogoComponent, selector: "axp-logo", inputs: ["logoKey", "appearance", "size", "format"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i1$5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13977
13419
|
}
|
|
13978
13420
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPIntegrationConnectionsPanelWidgetEditComponent, decorators: [{
|
|
13979
13421
|
type: Component,
|
|
@@ -14028,7 +13470,7 @@ class AXPJsonViewerWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
14028
13470
|
<div class="w-full">
|
|
14029
13471
|
<ax-json-viewer [json]="jsonValue()"></ax-json-viewer>
|
|
14030
13472
|
</div>
|
|
14031
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXJsonViewerModule }, { kind: "component", type: i1$
|
|
13473
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXJsonViewerModule }, { kind: "component", type: i1$e.JsonViewerComponent, selector: "ax-json-viewer", inputs: ["json"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
14032
13474
|
}
|
|
14033
13475
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPJsonViewerWidgetViewComponent, decorators: [{
|
|
14034
13476
|
type: Component,
|
|
@@ -14085,7 +13527,7 @@ class AXPJsonViewerWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
14085
13527
|
<div class="w-full">
|
|
14086
13528
|
<ax-json-viewer [json]="jsonValue()"></ax-json-viewer>
|
|
14087
13529
|
</div>
|
|
14088
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXJsonViewerModule }, { kind: "component", type: i1$
|
|
13530
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXJsonViewerModule }, { kind: "component", type: i1$e.JsonViewerComponent, selector: "ax-json-viewer", inputs: ["json"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
14089
13531
|
}
|
|
14090
13532
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPJsonViewerWidgetEditComponent, decorators: [{
|
|
14091
13533
|
type: Component,
|
|
@@ -14321,7 +13763,7 @@ class AXPMapWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
14321
13763
|
[readonly]="readonly()"
|
|
14322
13764
|
>
|
|
14323
13765
|
</ax-map>
|
|
14324
|
-
</div>`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXMapModule }, { kind: "component", type: i1$
|
|
13766
|
+
</div>`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXMapModule }, { kind: "component", type: i1$f.AXMapComponent, selector: "ax-map", inputs: ["zoomLevel", "latitude", "longitude", "maxMarker", "maxPolygon", "maxPolyline", "maxRectangle", "maxCircle", "hasDraw", "hasLocator", "fitToDraw", "limitDraw", "addPoiToFitDraw", "addMarkerOnTap", "readonly", "disabled", "markerPlace", "locatePlace", "poiMinZoom", "markers", "polygons", "polylines", "rectangles", "circles", "pois"], outputs: ["zoomLevelChange", "latitudeChange", "longitudeChange", "onMarkerAdded", "onMarkerClick", "onMarkerChanged", "onPolygonAdded", "onPolygonClick", "onPolygonChanged", "onPolylineAdded", "onPolylineClick", "onPolylineChanged", "onRectangleAdded", "onRectangleClick", "onRectangleChanged", "onCircleAdded", "onCircleClick", "onCircleChanged", "onLocationFound", "onPoiChanged", "onPoiAdded", "onMapReady", "onLoadError"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
14325
13767
|
}
|
|
14326
13768
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPMapWidgetEditComponent, decorators: [{
|
|
14327
13769
|
type: Component,
|
|
@@ -14417,7 +13859,7 @@ class AXPMapWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
14417
13859
|
[disabled]="disabled()"
|
|
14418
13860
|
[readonly]="readonly()"
|
|
14419
13861
|
></ax-map>
|
|
14420
|
-
</div>`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXMapModule }, { kind: "component", type: i1$
|
|
13862
|
+
</div>`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXMapModule }, { kind: "component", type: i1$f.AXMapComponent, selector: "ax-map", inputs: ["zoomLevel", "latitude", "longitude", "maxMarker", "maxPolygon", "maxPolyline", "maxRectangle", "maxCircle", "hasDraw", "hasLocator", "fitToDraw", "limitDraw", "addPoiToFitDraw", "addMarkerOnTap", "readonly", "disabled", "markerPlace", "locatePlace", "poiMinZoom", "markers", "polygons", "polylines", "rectangles", "circles", "pois"], outputs: ["zoomLevelChange", "latitudeChange", "longitudeChange", "onMarkerAdded", "onMarkerClick", "onMarkerChanged", "onPolygonAdded", "onPolygonClick", "onPolygonChanged", "onPolylineAdded", "onPolylineClick", "onPolylineChanged", "onRectangleAdded", "onRectangleClick", "onRectangleChanged", "onCircleAdded", "onCircleClick", "onCircleChanged", "onLocationFound", "onPoiChanged", "onPoiAdded", "onMapReady", "onLoadError"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
14421
13863
|
}
|
|
14422
13864
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPMapWidgetViewComponent, decorators: [{
|
|
14423
13865
|
type: Component,
|
|
@@ -14647,7 +14089,7 @@ class AXPQrcodeWidgetColumnComponent extends AXPColumnWidgetComponent {
|
|
|
14647
14089
|
<span>-</span>
|
|
14648
14090
|
}
|
|
14649
14091
|
</div>
|
|
14650
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "
|
|
14092
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
14651
14093
|
}
|
|
14652
14094
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPQrcodeWidgetColumnComponent, decorators: [{
|
|
14653
14095
|
type: Component,
|
|
@@ -14768,7 +14210,7 @@ class AXPQrcodeWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
14768
14210
|
}
|
|
14769
14211
|
}
|
|
14770
14212
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPQrcodeWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
14771
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPQrcodeWidgetEditComponent, isStandalone: true, selector: "axp-qrcode-widget-edit", host: { classAttribute: "block flex-1" }, usesInheritance: true, ngImport: i0, template: "<!-- Main Container -->\n<div class=\"flex flex-col gap-3 p-3 w-fit\">\n <div class=\"flex justify-center\">\n <!-- QR Code Container -->\n <div class=\"bg-lightest border border-default rounded-md shadow-md p-3\" #qr>\n <!-- QR Code Display or Empty Placeholder -->\n @if (value()) {\n <!-- Display QR Code when value exists -->\n <ax-qrcode [content]=\"value()\" [size]=\"size()\" [color]=\"color()\" [level]=\"level()\" [outputType]=\"'svg'\">\n </ax-qrcode>\n } @else {\n <!-- Empty State: Show placeholder when value is null or empty -->\n <div\n class=\"flex flex-col items-center justify-center text-center\"\n [style.width.px]=\"size()\"\n [style.height.px]=\"size()\"\n >\n <ax-icon icon=\"fa-light fa-qrcode\" class=\"text-4xl text-gray-400 mb-3\"></ax-icon>\n <div class=\"text-sm text-gray-500\">\n {{ '@general:state-message.empty.title' | translate | async }}\n </div>\n </div>\n }\n\n <!-- Action Buttons Section -->\n @if (!readonly()) {\n <div class=\"flex items-center justify-between gap-2 pt-4\">\n <!-- Edit Button: Opens popover to edit QR code content -->\n <ax-button\n #editBtn\n look=\"twotone\"\n [title]=\"('@general:actions.edit.title' | translate | async)!\"\n (onClick)=\"beginEdit()\"\n >\n <!-- Edit Popover: Text input for editing QR code content -->\n <ax-popover #po [target]=\"editBtn\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\">\n <div\n class=\"bg-lightest border border-default rounded-md shadow-md p-5 w-full sm:w-96\"\n >\n <!-- Text Input for QR Code Content -->\n <ax-text-box\n [value]=\"draft()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly()\"\n [placeholder]=\"placeholder() | translate | async\"\n (onValueChanged)=\"onDraftChange($event)\"\n >\n @if (hasClearButton()) {\n <ax-clear-button></ax-clear-button>\n }\n </ax-text-box>\n <!-- Popover Action Buttons -->\n <div class=\"flex justify-end gap-2 mt-3\">\n <ax-button\n look=\"outline\"\n class=\"ax-sm\"\n [text]=\"('@general:actions.cancel.title' | translate | async)!\"\n (onClick)=\"cancelEdit(); po.close()\"\n ></ax-button>\n <ax-button\n look=\"solid\"\n class=\"ax-sm\"\n color=\"primary\"\n [text]=\"('@general:actions.submit.title' | translate | async)!\"\n (onClick)=\"applyDraft(); po.close()\"\n ></ax-button>\n </div>\n </div>\n </ax-popover>\n <ax-icon icon=\"fa-light fa-pen\"></ax-icon>\n </ax-button>\n\n <!-- Upload Button: Upload text file to set QR code content -->\n <!-- <ax-button\n look=\"twotone\"\n [title]=\"('@general:actions.upload.title' | translate | async)!\"\n (onClick)=\"fileInput.click()\"\n >\n <input #fileInput type=\"file\" accept=\"text/plain\" class=\"hidden\" (change)=\"onFileSelected($event)\" />\n <ax-icon icon=\"fa-light fa-upload\"></ax-icon>\n </ax-button> -->\n\n <!-- Export Button: Download QR code as image (only shown when value exists) -->\n @if (value()) {\n <ax-button\n look=\"twotone\"\n [title]=\"('@general:actions.preview.title' | translate | async)!\"\n (onClick)=\"openPreview()\"\n >\n <ax-icon icon=\"fa-light fa-expand\"></ax-icon>\n </ax-button>\n\n <ax-button\n look=\"twotone\"\n [title]=\"('@general:actions.export.title' | translate | async)!\"\n (onClick)=\"downloadQr(qr)\"\n >\n <ax-icon icon=\"fa-light fa-download\"></ax-icon>\n </ax-button>\n }\n\n <!-- Delete Button: Clear QR code value (only shown when not readonly and value exists) -->\n @if (!readonly() && value()) {\n <ax-button\n look=\"twotone\"\n [title]=\"('@general:actions.delete.title' | translate | async)!\"\n (onClick)=\"clearValue()\"\n >\n <ax-icon icon=\"text-danger fa-light fa-trash-can\"></ax-icon>\n </ax-button>\n }\n </div>\n }\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i1$7.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "maskPattern", "customTokens", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "onMaskChanged"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "
|
|
14213
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPQrcodeWidgetEditComponent, isStandalone: true, selector: "axp-qrcode-widget-edit", host: { classAttribute: "block flex-1" }, usesInheritance: true, ngImport: i0, template: "<!-- Main Container -->\n<div class=\"flex flex-col gap-3 p-3 w-fit\">\n <div class=\"flex justify-center\">\n <!-- QR Code Container -->\n <div class=\"bg-lightest border border-default rounded-md shadow-md p-3\" #qr>\n <!-- QR Code Display or Empty Placeholder -->\n @if (value()) {\n <!-- Display QR Code when value exists -->\n <ax-qrcode [content]=\"value()\" [size]=\"size()\" [color]=\"color()\" [level]=\"level()\" [outputType]=\"'svg'\">\n </ax-qrcode>\n } @else {\n <!-- Empty State: Show placeholder when value is null or empty -->\n <div\n class=\"flex flex-col items-center justify-center text-center\"\n [style.width.px]=\"size()\"\n [style.height.px]=\"size()\"\n >\n <ax-icon icon=\"fa-light fa-qrcode\" class=\"text-4xl text-gray-400 mb-3\"></ax-icon>\n <div class=\"text-sm text-gray-500\">\n {{ '@general:state-message.empty.title' | translate | async }}\n </div>\n </div>\n }\n\n <!-- Action Buttons Section -->\n @if (!readonly()) {\n <div class=\"flex items-center justify-between gap-2 pt-4\">\n <!-- Edit Button: Opens popover to edit QR code content -->\n <ax-button\n #editBtn\n look=\"twotone\"\n [title]=\"('@general:actions.edit.title' | translate | async)!\"\n (onClick)=\"beginEdit()\"\n >\n <!-- Edit Popover: Text input for editing QR code content -->\n <ax-popover #po [target]=\"editBtn\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\">\n <div\n class=\"bg-lightest border border-default rounded-md shadow-md p-5 w-full sm:w-96\"\n >\n <!-- Text Input for QR Code Content -->\n <ax-text-box\n [value]=\"draft()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly()\"\n [placeholder]=\"placeholder() | translate | async\"\n (onValueChanged)=\"onDraftChange($event)\"\n >\n @if (hasClearButton()) {\n <ax-clear-button></ax-clear-button>\n }\n </ax-text-box>\n <!-- Popover Action Buttons -->\n <div class=\"flex justify-end gap-2 mt-3\">\n <ax-button\n look=\"outline\"\n class=\"ax-sm\"\n [text]=\"('@general:actions.cancel.title' | translate | async)!\"\n (onClick)=\"cancelEdit(); po.close()\"\n ></ax-button>\n <ax-button\n look=\"solid\"\n class=\"ax-sm\"\n color=\"primary\"\n [text]=\"('@general:actions.submit.title' | translate | async)!\"\n (onClick)=\"applyDraft(); po.close()\"\n ></ax-button>\n </div>\n </div>\n </ax-popover>\n <ax-icon icon=\"fa-light fa-pen\"></ax-icon>\n </ax-button>\n\n <!-- Upload Button: Upload text file to set QR code content -->\n <!-- <ax-button\n look=\"twotone\"\n [title]=\"('@general:actions.upload.title' | translate | async)!\"\n (onClick)=\"fileInput.click()\"\n >\n <input #fileInput type=\"file\" accept=\"text/plain\" class=\"hidden\" (change)=\"onFileSelected($event)\" />\n <ax-icon icon=\"fa-light fa-upload\"></ax-icon>\n </ax-button> -->\n\n <!-- Export Button: Download QR code as image (only shown when value exists) -->\n @if (value()) {\n <ax-button\n look=\"twotone\"\n [title]=\"('@general:actions.preview.title' | translate | async)!\"\n (onClick)=\"openPreview()\"\n >\n <ax-icon icon=\"fa-light fa-expand\"></ax-icon>\n </ax-button>\n\n <ax-button\n look=\"twotone\"\n [title]=\"('@general:actions.export.title' | translate | async)!\"\n (onClick)=\"downloadQr(qr)\"\n >\n <ax-icon icon=\"fa-light fa-download\"></ax-icon>\n </ax-button>\n }\n\n <!-- Delete Button: Clear QR code value (only shown when not readonly and value exists) -->\n @if (!readonly() && value()) {\n <ax-button\n look=\"twotone\"\n [title]=\"('@general:actions.delete.title' | translate | async)!\"\n (onClick)=\"clearValue()\"\n >\n <ax-icon icon=\"text-danger fa-light fa-trash-can\"></ax-icon>\n </ax-button>\n }\n </div>\n }\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i1$7.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "maskPattern", "customTokens", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "onMaskChanged"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i3$1.AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "visualContextScope", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXQrcodeModule }, { kind: "component", type: i5$2.AXQrcodeComponent, selector: "ax-qrcode", inputs: ["content", "size", "level", "color", "backgroundColor", "outputType"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: FormsModule }, { kind: "pipe", type: i1$5.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
14772
14214
|
}
|
|
14773
14215
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPQrcodeWidgetEditComponent, decorators: [{
|
|
14774
14216
|
type: Component,
|
|
@@ -14877,7 +14319,7 @@ class AXPQrcodeWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
14877
14319
|
}
|
|
14878
14320
|
</div>
|
|
14879
14321
|
}
|
|
14880
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "
|
|
14322
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXQrcodeModule }, { kind: "component", type: i5$2.AXQrcodeComponent, selector: "ax-qrcode", inputs: ["content", "size", "level", "color", "backgroundColor", "outputType"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1$5.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
14881
14323
|
}
|
|
14882
14324
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPQrcodeWidgetViewComponent, decorators: [{
|
|
14883
14325
|
type: Component,
|
|
@@ -15277,7 +14719,7 @@ class AXPSignatureWidgetColumnComponent extends AXPColumnWidgetComponent {
|
|
|
15277
14719
|
<span>-</span>
|
|
15278
14720
|
}
|
|
15279
14721
|
</div>
|
|
15280
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "
|
|
14722
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
15281
14723
|
}
|
|
15282
14724
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPSignatureWidgetColumnComponent, decorators: [{
|
|
15283
14725
|
type: Component,
|
|
@@ -15453,7 +14895,7 @@ class AXPSignatureWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
15453
14895
|
}
|
|
15454
14896
|
}
|
|
15455
14897
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPSignatureWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
15456
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPSignatureWidgetEditComponent, isStandalone: true, selector: "axp-signature-pad-widget-edit", host: { classAttribute: "block w-full" }, viewQueries: [{ propertyName: "paintContainer", first: true, predicate: ["paintContainer"], descendants: true, isSignal: true }, { propertyName: "paintView", first: true, predicate: ["paintView"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"axp-signature-pad-widget-edit block w-full select-none\">\n <div\n class=\"relative w-full min-h-[9rem] overflow-hidden rounded-md\"\n [class.cursor-pointer]=\"showOverlay() && !disabled()\"\n [class.cursor-not-allowed]=\"disabled()\"\n [class.opacity-60]=\"disabled()\"\n (mouseenter)=\"handleMouseEnter()\"\n (mouseleave)=\"handleMouseLeave()\"\n (click)=\"handleSurfaceClick($event)\"\n (pointerdown)=\"handleSurfacePointerDown($event)\"\n >\n @if (showSignaturePreview()) {\n <ax-image\n [src]=\"getValue()!\"\n class=\"block w-full min-h-[9rem] object-contain\"\n />\n } @else if (showPaintSurface()) {\n <ax-paint-container\n look=\"none\"\n [editMode]=\"editMode()\"\n [disabled]=\"disabled()\"\n [ngModel]=\"getValue()\"\n (ngModelChange)=\"setValue($event)\"\n class=\"__paint\"\n #paintContainer\n >\n <ax-paint-view #paintView paintBackgroundColor=\"white\"></ax-paint-view>\n </ax-paint-container>\n }\n\n @if (showEmptyHint()) {\n <div\n class=\"absolute inset-0 z-5 flex flex-col items-center justify-center gap-2 pointer-events-none\"\n >\n <i class=\"fa-light fa-file-signature text-2xl\"></i>\n <span class=\"text-sm\">{{ emptyHint() | translate | async }}</span>\n </div>\n }\n\n @if (showDialogHint()) {\n <div\n class=\"absolute inset-0 z-5 flex items-center justify-center pointer-events-none text-sm opacity-60\"\n >\n {{ signHereHint() | translate | async }}\n </div>\n }\n\n @if (showDesktopHover()) {\n <div\n class=\"absolute inset-0 z-5 flex cursor-pointer items-center justify-center bg-neutral-900/50 text-neutral-100 transition-opacity duration-400\"\n data-signature-action=\"true\"\n [style.opacity]=\"hovering() ? 1 : 0\"\n (click)=\"handleOverlayClick($event)\"\n >\n <i class=\"fa-light fa-pen\"></i>\n </div>\n }\n </div>\n</div>\n", styles: [".axp-signature-pad-widget-edit .__paint{display:block;width:100%;min-height:9rem}.axp-signature-pad-widget-edit ax-paint-container{display:block;width:100%}.axp-signature-pad-widget-edit ax-paint-container .main-toolbar,.axp-signature-pad-widget-edit ax-paint-container .secondary-toolbar{display:none}:host ::ng-deep .axp-signature-pad-widget-edit ax-paint-container,:host ::ng-deep .axp-signature-pad-widget-edit ax-paint-container>.editor-container,:host ::ng-deep .axp-signature-pad-widget-edit ax-paint-view,:host ::ng-deep .axp-signature-pad-widget-edit ax-paint-view .canvas-element{border:none!important;box-shadow:none!important;outline:none!important}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXPaintModule }, { kind: "component", type: i2$8.AXPaintContainerComponent, selector: "ax-paint-container", inputs: ["look", "disabled", "editMode"] }, { kind: "component", type: i2$8.AXPaintViewComponent, selector: "ax-paint-view", inputs: ["paintBackgroundColor"] }, { kind: "ngmodule", type: AXImageModule }, { kind: "component", type:
|
|
14898
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPSignatureWidgetEditComponent, isStandalone: true, selector: "axp-signature-pad-widget-edit", host: { classAttribute: "block w-full" }, viewQueries: [{ propertyName: "paintContainer", first: true, predicate: ["paintContainer"], descendants: true, isSignal: true }, { propertyName: "paintView", first: true, predicate: ["paintView"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"axp-signature-pad-widget-edit block w-full select-none\">\n <div\n class=\"relative w-full min-h-[9rem] overflow-hidden rounded-md\"\n [class.cursor-pointer]=\"showOverlay() && !disabled()\"\n [class.cursor-not-allowed]=\"disabled()\"\n [class.opacity-60]=\"disabled()\"\n (mouseenter)=\"handleMouseEnter()\"\n (mouseleave)=\"handleMouseLeave()\"\n (click)=\"handleSurfaceClick($event)\"\n (pointerdown)=\"handleSurfacePointerDown($event)\"\n >\n @if (showSignaturePreview()) {\n <ax-image\n [src]=\"getValue()!\"\n class=\"block w-full min-h-[9rem] object-contain\"\n />\n } @else if (showPaintSurface()) {\n <ax-paint-container\n look=\"none\"\n [editMode]=\"editMode()\"\n [disabled]=\"disabled()\"\n [ngModel]=\"getValue()\"\n (ngModelChange)=\"setValue($event)\"\n class=\"__paint\"\n #paintContainer\n >\n <ax-paint-view #paintView paintBackgroundColor=\"white\"></ax-paint-view>\n </ax-paint-container>\n }\n\n @if (showEmptyHint()) {\n <div\n class=\"absolute inset-0 z-5 flex flex-col items-center justify-center gap-2 pointer-events-none\"\n >\n <i class=\"fa-light fa-file-signature text-2xl\"></i>\n <span class=\"text-sm\">{{ emptyHint() | translate | async }}</span>\n </div>\n }\n\n @if (showDialogHint()) {\n <div\n class=\"absolute inset-0 z-5 flex items-center justify-center pointer-events-none text-sm opacity-60\"\n >\n {{ signHereHint() | translate | async }}\n </div>\n }\n\n @if (showDesktopHover()) {\n <div\n class=\"absolute inset-0 z-5 flex cursor-pointer items-center justify-center bg-neutral-900/50 text-neutral-100 transition-opacity duration-400\"\n data-signature-action=\"true\"\n [style.opacity]=\"hovering() ? 1 : 0\"\n (click)=\"handleOverlayClick($event)\"\n >\n <i class=\"fa-light fa-pen\"></i>\n </div>\n }\n </div>\n</div>\n", styles: [".axp-signature-pad-widget-edit .__paint{display:block;width:100%;min-height:9rem}.axp-signature-pad-widget-edit ax-paint-container{display:block;width:100%}.axp-signature-pad-widget-edit ax-paint-container .main-toolbar,.axp-signature-pad-widget-edit ax-paint-container .secondary-toolbar{display:none}:host ::ng-deep .axp-signature-pad-widget-edit ax-paint-container,:host ::ng-deep .axp-signature-pad-widget-edit ax-paint-container>.editor-container,:host ::ng-deep .axp-signature-pad-widget-edit ax-paint-view,:host ::ng-deep .axp-signature-pad-widget-edit ax-paint-view .canvas-element{border:none!important;box-shadow:none!important;outline:none!important}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXPaintModule }, { kind: "component", type: i2$8.AXPaintContainerComponent, selector: "ax-paint-container", inputs: ["look", "disabled", "editMode"] }, { kind: "component", type: i2$8.AXPaintViewComponent, selector: "ax-paint-view", inputs: ["paintBackgroundColor"] }, { kind: "ngmodule", type: AXImageModule }, { kind: "component", type: i3$6.AXImageComponent, selector: "ax-image", inputs: ["width", "height", "overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1$5.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
15457
14899
|
}
|
|
15458
14900
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPSignatureWidgetEditComponent, decorators: [{
|
|
15459
14901
|
type: Component,
|
|
@@ -15490,7 +14932,7 @@ class AXPSignatureWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
15490
14932
|
<span>{{ placeholder() }}</span>
|
|
15491
14933
|
}
|
|
15492
14934
|
</div>
|
|
15493
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXImageModule }, { kind: "component", type:
|
|
14935
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXImageModule }, { kind: "component", type: i3$6.AXImageComponent, selector: "ax-image", inputs: ["width", "height", "overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
15494
14936
|
}
|
|
15495
14937
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPSignatureWidgetViewComponent, decorators: [{
|
|
15496
14938
|
type: Component,
|
|
@@ -17807,7 +17249,7 @@ class AXPAdvancedGridWidgetDesignerComponent extends AXPLayoutBaseWidgetComponen
|
|
|
17807
17249
|
justify-items-end justify-items-stretch grid-flow-row grid-flow-col
|
|
17808
17250
|
</div>
|
|
17809
17251
|
}
|
|
17810
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXGridLayoutBuilderModule }, { kind: "component", type: i1$
|
|
17252
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXGridLayoutBuilderModule }, { kind: "component", type: i1$g.AXGridLayoutContainerComponent, selector: "ax-grid-layout-container", inputs: ["options", "isEmpty"], outputs: ["onAdded", "onRemoved", "onWidgetChange", "onChange", "onRender", "isEmptyChange"] }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "directive", type: AXPWidgetDesignerRendererDirective, selector: "[axp-widget-designer-renderer]", inputs: ["parentNode", "parentElement", "parentComponent", "index", "locked", "mode", "node"] }, { kind: "component", type: AXPDesignerGridDrawerComponent, selector: "axp-designer-grid-drawer", inputs: ["rows", "columns"], outputs: ["rowsChange", "columnsChange", "onSelect"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
17811
17253
|
}
|
|
17812
17254
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPAdvancedGridWidgetDesignerComponent, decorators: [{
|
|
17813
17255
|
type: Component,
|
|
@@ -18063,7 +17505,7 @@ class AXPAdvancedGridWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
18063
17505
|
justify-items-end justify-items-stretch
|
|
18064
17506
|
</div>
|
|
18065
17507
|
}
|
|
18066
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXGridLayoutBuilderModule }, { kind: "component", type: i1$
|
|
17508
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXGridLayoutBuilderModule }, { kind: "component", type: i1$g.AXGridLayoutContainerComponent, selector: "ax-grid-layout-container", inputs: ["options", "isEmpty"], outputs: ["onAdded", "onRemoved", "onWidgetChange", "onChange", "onRender", "isEmptyChange"] }, { kind: "component", type: i1$g.AXGridLayoutWidgetComponent, selector: "ax-grid-layout-widget", inputs: ["options"] }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "directive", type: AXPWidgetDesignerRendererDirective, selector: "[axp-widget-designer-renderer]", inputs: ["parentNode", "parentElement", "parentComponent", "index", "locked", "mode", "node"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
18067
17509
|
}
|
|
18068
17510
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPAdvancedGridWidgetViewComponent, decorators: [{
|
|
18069
17511
|
type: Component,
|
|
@@ -18215,7 +17657,7 @@ class AXPAdvancedGridItemWidgetDesignerComponent extends AXPLayoutBaseWidgetComp
|
|
|
18215
17657
|
><axp-designer-add-widget-mini-button></axp-designer-add-widget-mini-button>
|
|
18216
17658
|
</ax-grid-layout-widget>
|
|
18217
17659
|
}
|
|
18218
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "directive", type: AXPWidgetDesignerRendererDirective, selector: "[axp-widget-designer-renderer]", inputs: ["parentNode", "parentElement", "parentComponent", "index", "locked", "mode", "node"] }, { kind: "component", type: AXPDesignerAddWidgetMiniButtonComponent, selector: "axp-designer-add-widget-mini-button", outputs: ["onClick"] }, { kind: "ngmodule", type: AXGridLayoutBuilderModule }, { kind: "component", type: i1$
|
|
17660
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "directive", type: AXPWidgetDesignerRendererDirective, selector: "[axp-widget-designer-renderer]", inputs: ["parentNode", "parentElement", "parentComponent", "index", "locked", "mode", "node"] }, { kind: "component", type: AXPDesignerAddWidgetMiniButtonComponent, selector: "axp-designer-add-widget-mini-button", outputs: ["onClick"] }, { kind: "ngmodule", type: AXGridLayoutBuilderModule }, { kind: "component", type: i1$g.AXGridLayoutWidgetComponent, selector: "ax-grid-layout-widget", inputs: ["options"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
18219
17661
|
}
|
|
18220
17662
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPAdvancedGridItemWidgetDesignerComponent, decorators: [{
|
|
18221
17663
|
type: Component,
|
|
@@ -19213,7 +18655,7 @@ class AXPRepeaterWidgetDesignerComponent extends AXPValueWidgetComponent {
|
|
|
19213
18655
|
<axp-designer-add-widget-mini-button></axp-designer-add-widget-mini-button>
|
|
19214
18656
|
}
|
|
19215
18657
|
</ng-template>
|
|
19216
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "
|
|
18658
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "directive", type: AXPWidgetDesignerRendererDirective, selector: "[axp-widget-designer-renderer]", inputs: ["parentNode", "parentElement", "parentComponent", "index", "locked", "mode", "node"] }, { kind: "component", type: AXPDesignerAddWidgetMiniButtonComponent, selector: "axp-designer-add-widget-mini-button", outputs: ["onClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
19217
18659
|
}
|
|
19218
18660
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPRepeaterWidgetDesignerComponent, decorators: [{
|
|
19219
18661
|
type: Component,
|
|
@@ -19792,7 +19234,7 @@ class AXPStepWizardWidgetViewComponent extends AXPLayoutBaseWidgetComponent {
|
|
|
19792
19234
|
</div>
|
|
19793
19235
|
}
|
|
19794
19236
|
</div>
|
|
19795
|
-
`, isInline: true, styles: [":host ax-step-wizard-item>ax-content{display:none!important}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: AXStepWizardModule }, { kind: "component", type: i1$
|
|
19237
|
+
`, isInline: true, styles: [":host ax-step-wizard-item>ax-content{display:none!important}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: AXStepWizardModule }, { kind: "component", type: i1$h.AXStepWizardComponent, selector: "ax-step-wizard", inputs: ["connector", "scrollToStep", "size", "look", "changeStep", "orientation", "content"], outputs: ["stepChanged"] }, { kind: "component", type: i1$h.AXStepWizardItemComponent, selector: "ax-step-wizard-item", inputs: ["disabled", "color", "step", "label", "description", "customTemplate", "active", "passed", "look", "state", "id"], outputs: ["activeChange", "passedChange", "lookChange", "stateChange"] }, { kind: "directive", type: i1$h.AXStepWizardContentDirective, selector: "[axStepWizardContent]", inputs: ["axStepWizardContent"], exportAs: ["axStepWizardContent"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "directive", type: i1.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "pipe", type: i1$5.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
19796
19238
|
}
|
|
19797
19239
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPStepWizardWidgetViewComponent, decorators: [{
|
|
19798
19240
|
type: Component,
|
|
@@ -21677,7 +21119,7 @@ class AXPGridOptionsWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
21677
21119
|
}
|
|
21678
21120
|
}
|
|
21679
21121
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPGridOptionsWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
21680
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPGridOptionsWidgetEditComponent, isStandalone: true, selector: "axp-grid-options-widget-editor", usesInheritance: true, ngImport: i0, template: "<div class=\"axp-grid-breakpoints 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] ? '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 grid grid-cols-[auto_1fr] pt-2 gap-2 items-center justify-items-start\">\n <span> Direction </span>\n <div>\n <ax-button-group [selection]=\"'single'\">\n <ax-button-group-item (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 (onClick)=\"setGridDirection('column')\" [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>Grid</span>\n <div class=\"flex items-center justify-between gap-1\">\n <span class=\"text-xs\">Row</span>\n <ax-number-box\n [minValue]=\"1\"\n [maxValue]=\"12\"\n [value]=\"rows()\"\n (onValueChanged)=\"setRowOrColumn($event.value, 'row')\"\n [changeOnScroll]=\"true\"\n [showSpinButtons]=\"false\"\n class=\"ax-sm max-w-12\"\n ></ax-number-box>\n <span class=\"text-xs\">Column</span>\n <ax-number-box\n [minValue]=\"1\"\n [maxValue]=\"12\"\n [value]=\"columns()\"\n (onValueChanged)=\"setRowOrColumn($event.value, 'column')\"\n [changeOnScroll]=\"true\"\n [showSpinButtons]=\"false\"\n class=\"ax-sm max-w-12\"\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\n <span>Align</span>\n <div class=\"flex justify-between gap-2 items-center\">\n <div\n class=\"relative size-[62px] bg-[rgb(30,30,30)] border border-white border-opacity-15 rounded\"\n >\n <div class=\"absolute inset-0 grid grid-cols-3 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=\"grid 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 absolute inset-0 grid pointer-events-none transition-all\"\n [style.justify-items]=\"hoveredJustify()\"\n [style.align-items]=\"hoveredAlign()\"\n >\n <div class=\"flex justify-center items-center min-w-5 min-h-5\">\n <div class=\"size-auto z-[1] rounded-lg bg-[rgb(30,30,30)] flex-none\">\n @if (clickedJustify() === 'stretch' && clickedAlign() === 'stretch') {\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.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 absolute inset-0 grid pointer-events-none transition-all\"\n [style.justify-items]=\"clickedJustify()\"\n [style.align-items]=\"clickedAlign()\"\n >\n <div class=\"flex justify-center items-center min-w-5 min-h-5\">\n <div class=\"size-auto z-[2] rounded-lg bg-[rgb(30,30,30)] 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=\"grid grid-cols-[auto_1fr] items-center justify-items-start gap-2\">\n <span>X:</span>\n <div class=\"w-24\">\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"ax-sm\"\n [dataSource]=\"justifyDataSource\"\n [value]=\"selectedJustify()\"\n (onValueChanged)=\"onJustifyChange($event)\"\n textField=\"label\"\n valueField=\"value\"\n [searchable]=\"false\"\n placeholder=\"Choose...\"\n >\n </ax-lookup>\n </div>\n <span>Y:</span>\n <div class=\"w-24\">\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"ax-sm\"\n [dataSource]=\"alignDataSource\"\n [value]=\"selectedAlign()\"\n (onValueChanged)=\"onAlignChange($event)\"\n textField=\"label\"\n valueField=\"value\"\n [searchable]=\"false\"\n placeholder=\"Choose...\"\n >\n </ax-lookup>\n </div>\n </div>\n </div>\n\n <span>Gap</span>\n <div class=\"flex gap-2 justify-between items-center\">\n @if (gapMode() === 'single') {\n <ax-range-slider\n class=\"w-32\"\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-sm min-w-6\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"text-xs! px-1!\">PX</ax-text></ax-suffix></ax-number-box\n >\n } @else {\n <div class=\"flex items-center gap-2 h-12\">\n <span class=\"text-xs\"\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 ></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-sm min-w-5\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"text-xs! px-1!\">PX</ax-text></ax-suffix></ax-number-box\n >\n <span class=\"text-xs\"><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></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-sm min-w-5\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"text-xs! 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-options-widget{--ax-comp-range-slider-handler-size: .75rem}axp-grid-options-widget ax-selection-list>ul{gap:var(--spacing, .25rem);overflow:auto;padding-bottom:calc(var(--spacing, .25rem) * 2);flex-wrap:nowrap}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: AXButtonGroupModule }, { kind: "component", type: i1$k.AXButtonGroupComponent, selector: "ax-button-group", inputs: ["disabled", "fitParent", "color", "look", "class", "selection"], outputs: ["onBlur", "onFocus", "disabledChange", "colorChange", "lookChange", "onClick", "selectionChange", "selectedButtonChange"] }, { kind: "component", type: i1$k.AXButtonGroupItemComponent, selector: "ax-button-group-item", inputs: ["disabled", "color", "text", "class", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange", "classChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: AXLookupComponent, selector: "ax-lookup", inputs: ["name", "mode", "dataSource", "treeDataSource", "valueField", "textField", "disabledField", "columns", "treeParentField", "hasChildrenField", "searchable", "adaptivityEnabled", "caption", "alternate", "searchPlaceholder", "placeholder", "disabled", "readonly", "look", "itemHeight", "maxVisibleItems", "treeSelectionBehavior", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXNumberBoxModule }, { kind: "component", type: i1$8.AXNumberBoxComponent, selector: "ax-number-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "minValue", "maxValue", "showSpinButtons", "thousandsSeparator", "decimals", "changeOnScroll", "step"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "thousandsSeparatorChange"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXRangeSliderModule }, { kind: "component", type: i3$4.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$4.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 }); }
|
|
21122
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPGridOptionsWidgetEditComponent, isStandalone: true, selector: "axp-grid-options-widget-editor", usesInheritance: true, ngImport: i0, template: "<div class=\"axp-grid-breakpoints 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] ? '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 grid grid-cols-[auto_1fr] pt-2 gap-2 items-center justify-items-start\">\n <span> Direction </span>\n <div>\n <ax-button-group [selection]=\"'single'\">\n <ax-button-group-item (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 (onClick)=\"setGridDirection('column')\" [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>Grid</span>\n <div class=\"flex items-center justify-between gap-1\">\n <span class=\"text-xs\">Row</span>\n <ax-number-box\n [minValue]=\"1\"\n [maxValue]=\"12\"\n [value]=\"rows()\"\n (onValueChanged)=\"setRowOrColumn($event.value, 'row')\"\n [changeOnScroll]=\"true\"\n [showSpinButtons]=\"false\"\n class=\"ax-sm max-w-12\"\n ></ax-number-box>\n <span class=\"text-xs\">Column</span>\n <ax-number-box\n [minValue]=\"1\"\n [maxValue]=\"12\"\n [value]=\"columns()\"\n (onValueChanged)=\"setRowOrColumn($event.value, 'column')\"\n [changeOnScroll]=\"true\"\n [showSpinButtons]=\"false\"\n class=\"ax-sm max-w-12\"\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\n <span>Align</span>\n <div class=\"flex justify-between gap-2 items-center\">\n <div\n class=\"relative size-[62px] bg-[rgb(30,30,30)] border border-white border-opacity-15 rounded\"\n >\n <div class=\"absolute inset-0 grid grid-cols-3 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=\"grid 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 absolute inset-0 grid pointer-events-none transition-all\"\n [style.justify-items]=\"hoveredJustify()\"\n [style.align-items]=\"hoveredAlign()\"\n >\n <div class=\"flex justify-center items-center min-w-5 min-h-5\">\n <div class=\"size-auto z-[1] rounded-lg bg-[rgb(30,30,30)] flex-none\">\n @if (clickedJustify() === 'stretch' && clickedAlign() === 'stretch') {\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.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 absolute inset-0 grid pointer-events-none transition-all\"\n [style.justify-items]=\"clickedJustify()\"\n [style.align-items]=\"clickedAlign()\"\n >\n <div class=\"flex justify-center items-center min-w-5 min-h-5\">\n <div class=\"size-auto z-[2] rounded-lg bg-[rgb(30,30,30)] 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=\"grid grid-cols-[auto_1fr] items-center justify-items-start gap-2\">\n <span>X:</span>\n <div class=\"w-24\">\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"ax-sm\"\n [dataSource]=\"justifyDataSource\"\n [value]=\"selectedJustify()\"\n (onValueChanged)=\"onJustifyChange($event)\"\n textField=\"label\"\n valueField=\"value\"\n [searchable]=\"false\"\n placeholder=\"Choose...\"\n >\n </ax-lookup>\n </div>\n <span>Y:</span>\n <div class=\"w-24\">\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"ax-sm\"\n [dataSource]=\"alignDataSource\"\n [value]=\"selectedAlign()\"\n (onValueChanged)=\"onAlignChange($event)\"\n textField=\"label\"\n valueField=\"value\"\n [searchable]=\"false\"\n placeholder=\"Choose...\"\n >\n </ax-lookup>\n </div>\n </div>\n </div>\n\n <span>Gap</span>\n <div class=\"flex gap-2 justify-between items-center\">\n @if (gapMode() === 'single') {\n <ax-range-slider\n class=\"w-32\"\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-sm min-w-6\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"text-xs! px-1!\">PX</ax-text></ax-suffix></ax-number-box\n >\n } @else {\n <div class=\"flex items-center gap-2 h-12\">\n <span class=\"text-xs\"\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 ></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-sm min-w-5\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"text-xs! px-1!\">PX</ax-text></ax-suffix></ax-number-box\n >\n <span class=\"text-xs\"><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></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-sm min-w-5\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"text-xs! 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-options-widget{--ax-comp-range-slider-handler-size: .75rem}axp-grid-options-widget ax-selection-list>ul{gap:var(--spacing, .25rem);overflow:auto;padding-bottom:calc(var(--spacing, .25rem) * 2);flex-wrap:nowrap}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: AXButtonGroupModule }, { kind: "component", type: i1$i.AXButtonGroupComponent, selector: "ax-button-group", inputs: ["disabled", "fitParent", "color", "look", "class", "selection"], outputs: ["onBlur", "onFocus", "disabledChange", "colorChange", "lookChange", "onClick", "selectionChange", "selectedButtonChange"] }, { kind: "component", type: i1$i.AXButtonGroupItemComponent, selector: "ax-button-group-item", inputs: ["disabled", "color", "text", "class", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange", "classChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: AXLookupComponent, selector: "ax-lookup", inputs: ["name", "mode", "dataSource", "treeDataSource", "valueField", "textField", "disabledField", "columns", "treeParentField", "hasChildrenField", "searchable", "adaptivityEnabled", "caption", "alternate", "searchPlaceholder", "placeholder", "disabled", "readonly", "look", "itemHeight", "maxVisibleItems", "treeSelectionBehavior", "highlightSearch", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXNumberBoxModule }, { kind: "component", type: i1$8.AXNumberBoxComponent, selector: "ax-number-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "minValue", "maxValue", "showSpinButtons", "thousandsSeparator", "decimals", "changeOnScroll", "step"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "thousandsSeparatorChange"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXRangeSliderModule }, { kind: "component", type: i3$4.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$4.AXSelectionListComponent, selector: "ax-selection-list", inputs: ["id", "name", "disabled", "readonly", "tabIndex", "value", "valueField", "textField", "disabledField", "readonlyField", "multiple", "direction", "customTemplate", "showControl", "items", "look"], outputs: ["onValueChanged", "onBlur", "onFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
21681
21123
|
}
|
|
21682
21124
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPGridOptionsWidgetEditComponent, decorators: [{
|
|
21683
21125
|
type: Component,
|
|
@@ -21857,7 +21299,7 @@ class AXPAdvancedGridOptionsWidgetEditComponent extends AXPValueWidgetComponent
|
|
|
21857
21299
|
this.selectedAlign.set({ value: align, label: this.findAlignNameById(align) });
|
|
21858
21300
|
}
|
|
21859
21301
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPAdvancedGridOptionsWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
21860
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPAdvancedGridOptionsWidgetEditComponent, isStandalone: true, selector: "axp-advanced-grid-options-widget-editor", usesInheritance: true, ngImport: i0, template: "<div class=\"axp-advanced-grid w-11/12\">\n <div class=\"grid grid-cols-2 grid-rows-2 gap-x-3 items-center pb-2\">\n <span>Columns</span>\n <span>Items</span>\n <ax-number-box\n [minValue]=\"1\"\n [maxValue]=\"12\"\n [value]=\"columns()\"\n (onValueChanged)=\"changeValue($event, 'columns')\"\n ></ax-number-box>\n <ax-number-box\n [minValue]=\"1\"\n [maxValue]=\"99\"\n [value]=\"items()\"\n (onValueChanged)=\"changeValue($event, 'itemsCount')\"\n ></ax-number-box>\n </div>\n <span>Align</span>\n <div class=\"flex justify-between gap-2 items-center\">\n <div\n class=\"relative size-[62px] bg-[rgb(30,30,30)] border border-white border-opacity-15 rounded\"\n >\n <div class=\"absolute inset-0 grid grid-cols-3 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=\"grid 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 absolute inset-0 grid pointer-events-none transition-all\"\n [style.justify-items]=\"hoveredJustify()\"\n [style.align-items]=\"hoveredAlign()\"\n >\n <div class=\"flex justify-center items-center min-w-5 min-h-5\">\n <div class=\"size-auto z-[1] rounded-lg bg-[rgb(30,30,30)] 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 absolute inset-0 grid pointer-events-none transition-all\"\n [style.justify-items]=\"clickedJustify()\"\n [style.align-items]=\"clickedAlign()\"\n >\n <div class=\"flex justify-center items-center min-w-5 min-h-5\">\n <div class=\"size-auto z-[2] rounded-lg bg-[rgb(30,30,30)] 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=\"grid grid-cols-[auto_1fr] items-center justify-items-start gap-2\">\n <span>X:</span>\n <div class=\"w-36\">\n <ax-lookup\n mode=\"drop-down-list\"\n [dataSource]=\"justifyDataSource\"\n [value]=\"selectedJustify()\"\n (onValueChanged)=\"onJustifyChange($event)\"\n textField=\"label\"\n valueField=\"value\"\n [searchable]=\"false\"\n placeholder=\"Choose...\"\n >\n </ax-lookup>\n </div>\n <span>Y:</span>\n <div class=\"w-36\">\n <ax-lookup\n mode=\"drop-down-list\"\n [dataSource]=\"alignDataSource\"\n [value]=\"selectedAlign()\"\n (onValueChanged)=\"onAlignChange($event)\"\n textField=\"label\"\n valueField=\"value\"\n [searchable]=\"false\"\n placeholder=\"Choose...\"\n >\n </ax-lookup>\n </div>\n </div>\n </div>\n</div>\n", styles: ["/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXNumberBoxModule }, { kind: "component", type: i1$8.AXNumberBoxComponent, selector: "ax-number-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "minValue", "maxValue", "showSpinButtons", "thousandsSeparator", "decimals", "changeOnScroll", "step"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "thousandsSeparatorChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: AXLookupComponent, selector: "ax-lookup", inputs: ["name", "mode", "dataSource", "treeDataSource", "valueField", "textField", "disabledField", "columns", "treeParentField", "hasChildrenField", "searchable", "adaptivityEnabled", "caption", "alternate", "searchPlaceholder", "placeholder", "disabled", "readonly", "look", "itemHeight", "maxVisibleItems", "treeSelectionBehavior", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
21302
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPAdvancedGridOptionsWidgetEditComponent, isStandalone: true, selector: "axp-advanced-grid-options-widget-editor", usesInheritance: true, ngImport: i0, template: "<div class=\"axp-advanced-grid w-11/12\">\n <div class=\"grid grid-cols-2 grid-rows-2 gap-x-3 items-center pb-2\">\n <span>Columns</span>\n <span>Items</span>\n <ax-number-box\n [minValue]=\"1\"\n [maxValue]=\"12\"\n [value]=\"columns()\"\n (onValueChanged)=\"changeValue($event, 'columns')\"\n ></ax-number-box>\n <ax-number-box\n [minValue]=\"1\"\n [maxValue]=\"99\"\n [value]=\"items()\"\n (onValueChanged)=\"changeValue($event, 'itemsCount')\"\n ></ax-number-box>\n </div>\n <span>Align</span>\n <div class=\"flex justify-between gap-2 items-center\">\n <div\n class=\"relative size-[62px] bg-[rgb(30,30,30)] border border-white border-opacity-15 rounded\"\n >\n <div class=\"absolute inset-0 grid grid-cols-3 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=\"grid 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 absolute inset-0 grid pointer-events-none transition-all\"\n [style.justify-items]=\"hoveredJustify()\"\n [style.align-items]=\"hoveredAlign()\"\n >\n <div class=\"flex justify-center items-center min-w-5 min-h-5\">\n <div class=\"size-auto z-[1] rounded-lg bg-[rgb(30,30,30)] 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 absolute inset-0 grid pointer-events-none transition-all\"\n [style.justify-items]=\"clickedJustify()\"\n [style.align-items]=\"clickedAlign()\"\n >\n <div class=\"flex justify-center items-center min-w-5 min-h-5\">\n <div class=\"size-auto z-[2] rounded-lg bg-[rgb(30,30,30)] 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=\"grid grid-cols-[auto_1fr] items-center justify-items-start gap-2\">\n <span>X:</span>\n <div class=\"w-36\">\n <ax-lookup\n mode=\"drop-down-list\"\n [dataSource]=\"justifyDataSource\"\n [value]=\"selectedJustify()\"\n (onValueChanged)=\"onJustifyChange($event)\"\n textField=\"label\"\n valueField=\"value\"\n [searchable]=\"false\"\n placeholder=\"Choose...\"\n >\n </ax-lookup>\n </div>\n <span>Y:</span>\n <div class=\"w-36\">\n <ax-lookup\n mode=\"drop-down-list\"\n [dataSource]=\"alignDataSource\"\n [value]=\"selectedAlign()\"\n (onValueChanged)=\"onAlignChange($event)\"\n textField=\"label\"\n valueField=\"value\"\n [searchable]=\"false\"\n placeholder=\"Choose...\"\n >\n </ax-lookup>\n </div>\n </div>\n </div>\n</div>\n", styles: ["/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXNumberBoxModule }, { kind: "component", type: i1$8.AXNumberBoxComponent, selector: "ax-number-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "minValue", "maxValue", "showSpinButtons", "thousandsSeparator", "decimals", "changeOnScroll", "step"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "thousandsSeparatorChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: AXLookupComponent, selector: "ax-lookup", inputs: ["name", "mode", "dataSource", "treeDataSource", "valueField", "textField", "disabledField", "columns", "treeParentField", "hasChildrenField", "searchable", "adaptivityEnabled", "caption", "alternate", "searchPlaceholder", "placeholder", "disabled", "readonly", "look", "itemHeight", "maxVisibleItems", "treeSelectionBehavior", "highlightSearch", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
21861
21303
|
}
|
|
21862
21304
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPAdvancedGridOptionsWidgetEditComponent, decorators: [{
|
|
21863
21305
|
type: Component,
|
|
@@ -22302,7 +21744,7 @@ class AXPBorderWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
22302
21744
|
};
|
|
22303
21745
|
}
|
|
22304
21746
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPBorderWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
22305
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPBorderWidgetEditComponent, isStandalone: true, selector: "axp-border-widget-editor", 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=\"pt-2 axp-border-container\">\n <div class=\"radius-box flex justify-between items-center gap-2 h-[26px]\">\n <span class=\"text-sm font-light\">Radius</span>\n <div class=\"flex gap-1 items-center\">\n <button\n #allRadiusEl\n (pointerdown)=\"handleActiveRadiusSide($event)\"\n name=\"all\"\n class=\"p-1 hover:!bg-[var(--hover-effect)]\"\n >\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 >\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=\"p-1 hover:!bg-[var(--hover-effect)]\"\n >\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 >\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=\"flex justify-center items-center flex-shrink\">\n <ax-range-slider\n [values]=\"allRadius()\"\n [min]=\"0\"\n [max]=\"100\"\n (valuesChange)=\"setBorder($event ?? 0, 'radius', 'all')\"\n class=\"min-w-24\"\n ></ax-range-slider>\n </div>\n <div class=\"flex justify-start 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=\"min-w-[4.5rem] ax-sm\"\n [showSpinButtons]=\"false\"\n ><ax-suffix>\n <ax-dropdown-button\n [text]=\"getRadiusUnitLabel('all')\"\n [look]=\"'blank'\"\n [mode]=\"'dropdown'\"\n >\n <ax-button-item-list>\n @for (u of radiusUnits; track $index) {\n <ax-button-item\n [text]=\"u.toUpperCase()\"\n [selected]=\"getRadiusUnit('all') === u\"\n (onClick)=\"onRadiusUnitChange(u, 'all')\"\n ></ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-button> </ax-suffix\n ></ax-number-box>\n </div>\n } @else {\n <div class=\"w-48\"></div>\n }\n </div>\n </div>\n\n <div\n class=\"axp-border-radius-sides flex justify-end items-center overflow-y-hidden transition-[height] duration-300 ease-in-out\"\n [class]=\"currentActiveRadiusSide() === 'all' ? '!h-0' : '!h-auto'\"\n style=\"interpolate-size: allow-keywords\"\n >\n <div class=\"grid grid-cols-2 grid-rows-2 gap-2\">\n <div class=\"flex gap-1 items-center\">\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 >\n <g opacity=\"0.4\">\n <path d=\"M14 14V9H13V13H9V14H14Z\" fill=\"currentColor\"></path>\n <path d=\"M7 14V13H3V9H2V14H7Z\" fill=\"currentColor\"></path>\n <path\n d=\"M2 7H3V6.5C3 4.567 4.567 3 6.5 3H7V2H6.5C4.01472 2 2 4.01472 2 6.5V7Z\"\n fill=\"currentColor\"\n ></path>\n <path d=\"M9 2V3H13V7H14V2H9Z\" fill=\"currentColor\"></path>\n </g>\n <path\n d=\"M2.5 7V6.5C2.5 4.29086 4.29086 2.5 6.5 2.5H7\"\n stroke=\"currentColor\"\n ></path>\n </svg>\n <div class=\"flex justify-start items-center max-w-24\">\n <ax-number-box\n class=\"ax-sm\"\n [minValue]=\"0\"\n [changeOnScroll]=\"true\"\n [ngModel]=\"calculatedValues().radius['top-left']\"\n (onValueChanged)=\"\n setBorder($event.value ?? 0, 'radius', 'top-left')\n \"\n [showSpinButtons]=\"false\"\n ><ax-suffix>\n <ax-dropdown-button\n [text]=\"getRadiusUnitLabel('top-left')\"\n [look]=\"'blank'\"\n [mode]=\"'dropdown'\"\n >\n <ax-button-item-list>\n @for (u of radiusUnits; track $index) {\n <ax-button-item\n [text]=\"u.toUpperCase()\"\n [selected]=\"getRadiusUnit('top-left') === u\"\n (onClick)=\"onRadiusUnitChange(u, 'top-left')\"\n ></ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-button> </ax-suffix\n ></ax-number-box>\n </div>\n </div>\n <div class=\"flex gap-1 items-center\">\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 >\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\n d=\"M13.5 7V6.5C13.5 4.29086 11.7091 2.5 9.5 2.5H9\"\n stroke=\"currentColor\"\n ></path>\n </svg>\n <div class=\"flex justify-start items-center max-w-24\">\n <ax-number-box\n class=\"ax-sm\"\n [minValue]=\"0\"\n [changeOnScroll]=\"true\"\n [ngModel]=\"calculatedValues().radius['top-right']\"\n (onValueChanged)=\"\n setBorder($event.value ?? 0, 'radius', 'top-right')\n \"\n [showSpinButtons]=\"false\"\n ><ax-suffix>\n <ax-dropdown-button\n [text]=\"getRadiusUnitLabel('top-right')\"\n [look]=\"'blank'\"\n [mode]=\"'dropdown'\"\n >\n <ax-button-item-list>\n @for (u of radiusUnits; track $index) {\n <ax-button-item\n [text]=\"u.toUpperCase()\"\n [selected]=\"getRadiusUnit('top-right') === u\"\n (onClick)=\"onRadiusUnitChange(u, 'top-right')\"\n ></ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-button> </ax-suffix\n ></ax-number-box>\n </div>\n </div>\n <div class=\"flex gap-1 items-center\">\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 >\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\n d=\"M2.5 9V9.5C2.5 11.7091 4.29086 13.5 6.5 13.5H7\"\n stroke=\"currentColor\"\n ></path>\n </svg>\n <div class=\"flex justify-start items-center max-w-24\">\n <ax-number-box\n class=\"ax-sm\"\n [minValue]=\"0\"\n [changeOnScroll]=\"true\"\n [ngModel]=\"calculatedValues().radius['bottom-left']\"\n (onValueChanged)=\"\n setBorder($event.value ?? 0, 'radius', 'bottom-left')\n \"\n [showSpinButtons]=\"false\"\n ><ax-suffix>\n <ax-dropdown-button\n [text]=\"getRadiusUnitLabel('bottom-left')\"\n [look]=\"'blank'\"\n [mode]=\"'dropdown'\"\n >\n <ax-button-item-list>\n @for (u of radiusUnits; track $index) {\n <ax-button-item\n [text]=\"u.toUpperCase()\"\n [selected]=\"getRadiusUnit('bottom-left') === u\"\n (onClick)=\"onRadiusUnitChange(u, 'bottom-left')\"\n ></ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-button> </ax-suffix\n ></ax-number-box>\n </div>\n </div>\n <div class=\"flex gap-1 items-center\">\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 >\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\n d=\"M13.5 9V9.5C13.5 11.7091 11.7091 13.5 9.5 13.5H9\"\n stroke=\"currentColor\"\n ></path>\n </svg>\n <div class=\"flex justify-start items-center max-w-24\">\n <ax-number-box\n class=\"ax-sm\"\n [minValue]=\"0\"\n [changeOnScroll]=\"true\"\n [ngModel]=\"calculatedValues().radius['bottom-right']\"\n (onValueChanged)=\"\n setBorder($event.value ?? 0, 'radius', 'bottom-right')\n \"\n [showSpinButtons]=\"false\"\n ><ax-suffix>\n <ax-dropdown-button\n [text]=\"getRadiusUnitLabel('bottom-right')\"\n [look]=\"'blank'\"\n [mode]=\"'dropdown'\"\n >\n <ax-button-item-list>\n @for (u of radiusUnits; track $index) {\n <ax-button-item\n [text]=\"u.toUpperCase()\"\n [selected]=\"getRadiusUnit('bottom-right') === u\"\n (onClick)=\"onRadiusUnitChange(u, 'bottom-right')\"\n ></ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-button> </ax-suffix\n ></ax-number-box>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"flex justify-between items-center py-1\">\n <span class=\"text-sm font-light\">Borders</span>\n </div>\n\n <div class=\"border-box flex justify-between items-center gap-4\">\n <div class=\"grid grid-cols-3 grid-rows-3 gap-1 flex-shrink-0\">\n <!-- Top Border -->\n <div class=\"border-box-top col-start-2 row-start-1\">\n <button\n (pointerdown)=\"handleActiveBorderSide($event)\"\n name=\"top\"\n class=\"p-1 hover:!bg-[var(--hover-effect)]\"\n >\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 >\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\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M2 3H14V2H2V3Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n </button>\n </div>\n\n <!-- Right Border -->\n <div class=\"border-box-right col-start-3 row-start-2\">\n <button\n (pointerdown)=\"handleActiveBorderSide($event)\"\n name=\"right\"\n class=\"p-1 hover:!bg-[var(--hover-effect)]\"\n >\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 >\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\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M13 2L13 14L14 14L14 2L13 2Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n </button>\n </div>\n\n <!-- Bottom Border -->\n <div class=\"border-box-bottom col-start-2 row-start-3\">\n <button\n (pointerdown)=\"handleActiveBorderSide($event)\"\n name=\"bottom\"\n class=\"p-1 hover:!bg-[var(--hover-effect)]\"\n >\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 >\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\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M2 13H14V14H2V13Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n </button>\n </div>\n\n <!-- Left Border -->\n <div class=\"border-box-left col-start-1 row-start-2\">\n <button\n (pointerdown)=\"handleActiveBorderSide($event)\"\n name=\"left\"\n class=\"p-1 hover:!bg-[var(--hover-effect)]\"\n >\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 >\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\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M3 2L3 14L2 14L2 2L3 2Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n </button>\n </div>\n\n <!-- All -->\n <div class=\"border-box-all col-start-2 row-start-2\">\n <button\n #allBorderEl\n (pointerdown)=\"handleActiveBorderSide($event)\"\n name=\"all\"\n class=\"p-1 hover:!bg-[var(--hover-effect)]\"\n >\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 >\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\n class=\"grid grid-cols-[auto_1fr] items-center justify-items-center gap-x-2 gap-y-2\"\n >\n <div class=\"text-sm font-light\">Style</div>\n <ax-button-group class=\"ax-sm\" [selection]=\"'single'\">\n <ax-button-group-item\n (onClick)=\"setBorder('none', 'style', currentActiveSide())\"\n [selected]=\"shownStyle() === 'none'\"\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 >\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\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 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\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=\"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\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 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\n class=\"contents\"\n [class]=\"shownStyle() === 'none' ? 'invisible' : 'visible'\"\n >\n <div class=\"text-sm font-light\">Width</div>\n <div class=\"flex justify-start items-center max-w-36\">\n <ax-number-box\n [minValue]=\"0\"\n [changeOnScroll]=\"true\"\n [value]=\"shownWidth()\"\n (onValueChanged)=\"\n setBorder($event.value ?? 0, 'width', currentActiveSide())\n \"\n class=\"ax-sm exclude\"\n [showSpinButtons]=\"false\"\n ><ax-suffix>\n <ax-dropdown-button\n [text]=\"getWidthUnitLabel(currentActiveSide())\"\n [look]=\"'blank'\"\n [mode]=\"'dropdown'\"\n >\n <ax-button-item-list>\n @for (u of widthUnits; track $index) {\n <ax-button-item\n [text]=\"u.toUpperCase()\"\n [selected]=\"getWidthUnit(currentActiveSide()) === u\"\n (onClick)=\"onWidthUnitChange(u, currentActiveSide())\"\n ></ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-button> </ax-suffix\n ></ax-number-box>\n </div>\n\n <div class=\"text-sm font-light\">Color</div>\n <div class=\"flex justify-start items-center max-w-36 overflow-hidden\">\n <ax-color-box\n class=\"ax-sm\"\n [value]=\"shownColor()\"\n (onValueChanged)=\"\n setBorder($event.value ?? '', 'color', currentActiveSide())\n \"\n ></ax-color-box>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: ["axp-border-widget-edit{--ax-comp-range-slider-handler-size: .75rem;--focus-color: rgb(var(--ax-sys-color-primary-700));--hover-effect: rgb(var(--ax-sys-color-primary-500))}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: AXNumberBoxModule }, { kind: "component", type: i1$8.AXNumberBoxComponent, selector: "ax-number-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "minValue", "maxValue", "showSpinButtons", "thousandsSeparator", "decimals", "changeOnScroll", "step"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "thousandsSeparatorChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXCheckBoxModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i1$1.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items", "closeParentOnClick", "lockOnLoading"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXRangeSliderModule }, { kind: "component", type: i3$4.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: i1$k.AXButtonGroupComponent, selector: "ax-button-group", inputs: ["disabled", "fitParent", "color", "look", "class", "selection"], outputs: ["onBlur", "onFocus", "disabledChange", "colorChange", "lookChange", "onClick", "selectionChange", "selectedButtonChange"] }, { kind: "component", type: i1$k.AXButtonGroupItemComponent, selector: "ax-button-group-item", inputs: ["disabled", "color", "text", "class", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange", "classChange"] }, { kind: "ngmodule", type: AXColorBoxModule }, { kind: "component", type: i2$3.AXColorBoxComponent, selector: "ax-color-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "showBadge", "showValue", "showClearButton", "showIcon"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "component", type: i6.AXDropdownButtonComponent, selector: "ax-dropdown-button", inputs: ["disabled", "size", "text", "color", "look", "type", "mode"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "lookChange", "colorChange", "disabledChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
21747
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPBorderWidgetEditComponent, isStandalone: true, selector: "axp-border-widget-editor", 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=\"pt-2 axp-border-container\">\n <div class=\"radius-box flex justify-between items-center gap-2 h-[26px]\">\n <span class=\"text-sm font-light\">Radius</span>\n <div class=\"flex gap-1 items-center\">\n <button\n #allRadiusEl\n (pointerdown)=\"handleActiveRadiusSide($event)\"\n name=\"all\"\n class=\"p-1 hover:!bg-[var(--hover-effect)]\"\n >\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 >\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=\"p-1 hover:!bg-[var(--hover-effect)]\"\n >\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 >\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=\"flex justify-center items-center flex-shrink\">\n <ax-range-slider\n [values]=\"allRadius()\"\n [min]=\"0\"\n [max]=\"100\"\n (valuesChange)=\"setBorder($event ?? 0, 'radius', 'all')\"\n class=\"min-w-24\"\n ></ax-range-slider>\n </div>\n <div class=\"flex justify-start 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=\"min-w-[4.5rem] ax-sm\"\n [showSpinButtons]=\"false\"\n ><ax-suffix>\n <ax-dropdown-button\n [text]=\"getRadiusUnitLabel('all')\"\n [look]=\"'blank'\"\n [mode]=\"'dropdown'\"\n >\n <ax-button-item-list>\n @for (u of radiusUnits; track $index) {\n <ax-button-item\n [text]=\"u.toUpperCase()\"\n [selected]=\"getRadiusUnit('all') === u\"\n (onClick)=\"onRadiusUnitChange(u, 'all')\"\n ></ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-button> </ax-suffix\n ></ax-number-box>\n </div>\n } @else {\n <div class=\"w-48\"></div>\n }\n </div>\n </div>\n\n <div\n class=\"axp-border-radius-sides flex justify-end items-center overflow-y-hidden transition-[height] duration-300 ease-in-out\"\n [class]=\"currentActiveRadiusSide() === 'all' ? '!h-0' : '!h-auto'\"\n style=\"interpolate-size: allow-keywords\"\n >\n <div class=\"grid grid-cols-2 grid-rows-2 gap-2\">\n <div class=\"flex gap-1 items-center\">\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 >\n <g opacity=\"0.4\">\n <path d=\"M14 14V9H13V13H9V14H14Z\" fill=\"currentColor\"></path>\n <path d=\"M7 14V13H3V9H2V14H7Z\" fill=\"currentColor\"></path>\n <path\n d=\"M2 7H3V6.5C3 4.567 4.567 3 6.5 3H7V2H6.5C4.01472 2 2 4.01472 2 6.5V7Z\"\n fill=\"currentColor\"\n ></path>\n <path d=\"M9 2V3H13V7H14V2H9Z\" fill=\"currentColor\"></path>\n </g>\n <path\n d=\"M2.5 7V6.5C2.5 4.29086 4.29086 2.5 6.5 2.5H7\"\n stroke=\"currentColor\"\n ></path>\n </svg>\n <div class=\"flex justify-start items-center max-w-24\">\n <ax-number-box\n class=\"ax-sm\"\n [minValue]=\"0\"\n [changeOnScroll]=\"true\"\n [ngModel]=\"calculatedValues().radius['top-left']\"\n (onValueChanged)=\"\n setBorder($event.value ?? 0, 'radius', 'top-left')\n \"\n [showSpinButtons]=\"false\"\n ><ax-suffix>\n <ax-dropdown-button\n [text]=\"getRadiusUnitLabel('top-left')\"\n [look]=\"'blank'\"\n [mode]=\"'dropdown'\"\n >\n <ax-button-item-list>\n @for (u of radiusUnits; track $index) {\n <ax-button-item\n [text]=\"u.toUpperCase()\"\n [selected]=\"getRadiusUnit('top-left') === u\"\n (onClick)=\"onRadiusUnitChange(u, 'top-left')\"\n ></ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-button> </ax-suffix\n ></ax-number-box>\n </div>\n </div>\n <div class=\"flex gap-1 items-center\">\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 >\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\n d=\"M13.5 7V6.5C13.5 4.29086 11.7091 2.5 9.5 2.5H9\"\n stroke=\"currentColor\"\n ></path>\n </svg>\n <div class=\"flex justify-start items-center max-w-24\">\n <ax-number-box\n class=\"ax-sm\"\n [minValue]=\"0\"\n [changeOnScroll]=\"true\"\n [ngModel]=\"calculatedValues().radius['top-right']\"\n (onValueChanged)=\"\n setBorder($event.value ?? 0, 'radius', 'top-right')\n \"\n [showSpinButtons]=\"false\"\n ><ax-suffix>\n <ax-dropdown-button\n [text]=\"getRadiusUnitLabel('top-right')\"\n [look]=\"'blank'\"\n [mode]=\"'dropdown'\"\n >\n <ax-button-item-list>\n @for (u of radiusUnits; track $index) {\n <ax-button-item\n [text]=\"u.toUpperCase()\"\n [selected]=\"getRadiusUnit('top-right') === u\"\n (onClick)=\"onRadiusUnitChange(u, 'top-right')\"\n ></ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-button> </ax-suffix\n ></ax-number-box>\n </div>\n </div>\n <div class=\"flex gap-1 items-center\">\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 >\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\n d=\"M2.5 9V9.5C2.5 11.7091 4.29086 13.5 6.5 13.5H7\"\n stroke=\"currentColor\"\n ></path>\n </svg>\n <div class=\"flex justify-start items-center max-w-24\">\n <ax-number-box\n class=\"ax-sm\"\n [minValue]=\"0\"\n [changeOnScroll]=\"true\"\n [ngModel]=\"calculatedValues().radius['bottom-left']\"\n (onValueChanged)=\"\n setBorder($event.value ?? 0, 'radius', 'bottom-left')\n \"\n [showSpinButtons]=\"false\"\n ><ax-suffix>\n <ax-dropdown-button\n [text]=\"getRadiusUnitLabel('bottom-left')\"\n [look]=\"'blank'\"\n [mode]=\"'dropdown'\"\n >\n <ax-button-item-list>\n @for (u of radiusUnits; track $index) {\n <ax-button-item\n [text]=\"u.toUpperCase()\"\n [selected]=\"getRadiusUnit('bottom-left') === u\"\n (onClick)=\"onRadiusUnitChange(u, 'bottom-left')\"\n ></ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-button> </ax-suffix\n ></ax-number-box>\n </div>\n </div>\n <div class=\"flex gap-1 items-center\">\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 >\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\n d=\"M13.5 9V9.5C13.5 11.7091 11.7091 13.5 9.5 13.5H9\"\n stroke=\"currentColor\"\n ></path>\n </svg>\n <div class=\"flex justify-start items-center max-w-24\">\n <ax-number-box\n class=\"ax-sm\"\n [minValue]=\"0\"\n [changeOnScroll]=\"true\"\n [ngModel]=\"calculatedValues().radius['bottom-right']\"\n (onValueChanged)=\"\n setBorder($event.value ?? 0, 'radius', 'bottom-right')\n \"\n [showSpinButtons]=\"false\"\n ><ax-suffix>\n <ax-dropdown-button\n [text]=\"getRadiusUnitLabel('bottom-right')\"\n [look]=\"'blank'\"\n [mode]=\"'dropdown'\"\n >\n <ax-button-item-list>\n @for (u of radiusUnits; track $index) {\n <ax-button-item\n [text]=\"u.toUpperCase()\"\n [selected]=\"getRadiusUnit('bottom-right') === u\"\n (onClick)=\"onRadiusUnitChange(u, 'bottom-right')\"\n ></ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-button> </ax-suffix\n ></ax-number-box>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"flex justify-between items-center py-1\">\n <span class=\"text-sm font-light\">Borders</span>\n </div>\n\n <div class=\"border-box flex justify-between items-center gap-4\">\n <div class=\"grid grid-cols-3 grid-rows-3 gap-1 flex-shrink-0\">\n <!-- Top Border -->\n <div class=\"border-box-top col-start-2 row-start-1\">\n <button\n (pointerdown)=\"handleActiveBorderSide($event)\"\n name=\"top\"\n class=\"p-1 hover:!bg-[var(--hover-effect)]\"\n >\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 >\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\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M2 3H14V2H2V3Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n </button>\n </div>\n\n <!-- Right Border -->\n <div class=\"border-box-right col-start-3 row-start-2\">\n <button\n (pointerdown)=\"handleActiveBorderSide($event)\"\n name=\"right\"\n class=\"p-1 hover:!bg-[var(--hover-effect)]\"\n >\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 >\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\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M13 2L13 14L14 14L14 2L13 2Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n </button>\n </div>\n\n <!-- Bottom Border -->\n <div class=\"border-box-bottom col-start-2 row-start-3\">\n <button\n (pointerdown)=\"handleActiveBorderSide($event)\"\n name=\"bottom\"\n class=\"p-1 hover:!bg-[var(--hover-effect)]\"\n >\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 >\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\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M2 13H14V14H2V13Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n </button>\n </div>\n\n <!-- Left Border -->\n <div class=\"border-box-left col-start-1 row-start-2\">\n <button\n (pointerdown)=\"handleActiveBorderSide($event)\"\n name=\"left\"\n class=\"p-1 hover:!bg-[var(--hover-effect)]\"\n >\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 >\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\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M3 2L3 14L2 14L2 2L3 2Z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n </button>\n </div>\n\n <!-- All -->\n <div class=\"border-box-all col-start-2 row-start-2\">\n <button\n #allBorderEl\n (pointerdown)=\"handleActiveBorderSide($event)\"\n name=\"all\"\n class=\"p-1 hover:!bg-[var(--hover-effect)]\"\n >\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 >\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\n class=\"grid grid-cols-[auto_1fr] items-center justify-items-center gap-x-2 gap-y-2\"\n >\n <div class=\"text-sm font-light\">Style</div>\n <ax-button-group class=\"ax-sm\" [selection]=\"'single'\">\n <ax-button-group-item\n (onClick)=\"setBorder('none', 'style', currentActiveSide())\"\n [selected]=\"shownStyle() === 'none'\"\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 >\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\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 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\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=\"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\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 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\n class=\"contents\"\n [class]=\"shownStyle() === 'none' ? 'invisible' : 'visible'\"\n >\n <div class=\"text-sm font-light\">Width</div>\n <div class=\"flex justify-start items-center max-w-36\">\n <ax-number-box\n [minValue]=\"0\"\n [changeOnScroll]=\"true\"\n [value]=\"shownWidth()\"\n (onValueChanged)=\"\n setBorder($event.value ?? 0, 'width', currentActiveSide())\n \"\n class=\"ax-sm exclude\"\n [showSpinButtons]=\"false\"\n ><ax-suffix>\n <ax-dropdown-button\n [text]=\"getWidthUnitLabel(currentActiveSide())\"\n [look]=\"'blank'\"\n [mode]=\"'dropdown'\"\n >\n <ax-button-item-list>\n @for (u of widthUnits; track $index) {\n <ax-button-item\n [text]=\"u.toUpperCase()\"\n [selected]=\"getWidthUnit(currentActiveSide()) === u\"\n (onClick)=\"onWidthUnitChange(u, currentActiveSide())\"\n ></ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-button> </ax-suffix\n ></ax-number-box>\n </div>\n\n <div class=\"text-sm font-light\">Color</div>\n <div class=\"flex justify-start items-center max-w-36 overflow-hidden\">\n <ax-color-box\n class=\"ax-sm\"\n [value]=\"shownColor()\"\n (onValueChanged)=\"\n setBorder($event.value ?? '', 'color', currentActiveSide())\n \"\n ></ax-color-box>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: ["axp-border-widget-edit{--ax-comp-range-slider-handler-size: .75rem;--focus-color: rgb(var(--ax-sys-color-primary-700));--hover-effect: rgb(var(--ax-sys-color-primary-500))}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: AXNumberBoxModule }, { kind: "component", type: i1$8.AXNumberBoxComponent, selector: "ax-number-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "minValue", "maxValue", "showSpinButtons", "thousandsSeparator", "decimals", "changeOnScroll", "step"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "thousandsSeparatorChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXCheckBoxModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i1$1.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items", "closeParentOnClick", "lockOnLoading"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXRangeSliderModule }, { kind: "component", type: i3$4.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: i1$i.AXButtonGroupComponent, selector: "ax-button-group", inputs: ["disabled", "fitParent", "color", "look", "class", "selection"], outputs: ["onBlur", "onFocus", "disabledChange", "colorChange", "lookChange", "onClick", "selectionChange", "selectedButtonChange"] }, { kind: "component", type: i1$i.AXButtonGroupItemComponent, selector: "ax-button-group-item", inputs: ["disabled", "color", "text", "class", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange", "classChange"] }, { kind: "ngmodule", type: AXColorBoxModule }, { kind: "component", type: i2$3.AXColorBoxComponent, selector: "ax-color-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "showBadge", "showValue", "showClearButton", "showIcon"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "component", type: i6.AXDropdownButtonComponent, selector: "ax-dropdown-button", inputs: ["disabled", "size", "text", "color", "look", "type", "mode"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "lookChange", "colorChange", "disabledChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
22306
21748
|
}
|
|
22307
21749
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPBorderWidgetEditComponent, decorators: [{
|
|
22308
21750
|
type: Component,
|
|
@@ -22803,7 +22245,7 @@ class AXPDataSourceOptionsWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
22803
22245
|
//#region ----- Lifecycle -----
|
|
22804
22246
|
#init;
|
|
22805
22247
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPDataSourceOptionsWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
22806
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPDataSourceOptionsWidgetEditComponent, isStandalone: true, selector: "axp-data-source-options-widget-editor", usesInheritance: true, ngImport: i0, template: "<div class=\"axp-data-source-options flex flex-col gap-3 py-2\">\n <!-- ----- Mode: exists or list ----- -->\n <div class=\"flex flex-col gap-2\">\n <span class=\"font-medium text-sm\">{{ I18N.source | translate | async }}</span>\n <ax-selection-list [items]=\"modeItems()\" [ngModel]=\"dataSourceMode()\"\n (onValueChanged)=\"setDataSourceMode($event.value)\" direction=\"horizontal\" [multiple]=\"false\" [showControl]=\"true\"\n valueField=\"value\" textField=\"text\" />\n </div>\n\n <!-- ----- Select registered query (only when mode is exists) ----- -->\n @if (dataSourceMode() === 'exists') {\n <div class=\"flex flex-col gap-2\">\n <span class=\"font-medium text-sm\">{{ I18N.dataSource | translate | async }}</span>\n <ax-lookup mode=\"drop-down-list\" [dataSource]=\"queriesDataSource\" [ngModel]=\"getValue()['dataSource']\"\n (onValueChanged)=\"onQueryChange($event)\" valueField=\"name\" textField=\"title\"\n [searchable]=\"true\"\n [placeholder]=\"(I18N.dataSourcePlaceholder | translate | async) ?? ''\">\n <ax-clear-button></ax-clear-button>\n </ax-lookup>\n </div>\n }\n\n <!-- ----- Simple list (text rows) ----- -->\n @if (dataSourceMode() === 'list') {\n <div class=\"flex flex-col gap-2\">\n <span class=\"font-medium text-sm\">{{ I18N.listItems | translate | async }}</span>\n <axp-repeater-rows-layout\n [count]=\"listEntries().length\"\n [rowTemplate]=\"listRowTpl\"\n [hasControls]=\"true\"\n [allowReorder]=\"true\"\n [addItemLabelKey]=\"I18N.addListItem\"\n (addClick)=\"addListEntry()\"\n (removeClick)=\"removeListEntry($event)\"\n (drop)=\"onListDrop($event)\"\n ></axp-repeater-rows-layout>\n <ng-template #listRowTpl let-index=\"index\">\n <ax-text-box\n class=\"w-full\"\n [ngModel]=\"listEntries()[index]\"\n (onValueChanged)=\"onListEntryChange(index, $event)\"\n />\n </ng-template>\n </div>\n }\n\n <!-- ----- valueField / textField (exists only) ----- -->\n @if (fieldSelectsKey() && dataSourceMode() === 'exists') {\n <div class=\"flex flex-col gap-2\">\n <span class=\"font-medium text-sm\">{{ I18N.valueField | translate | async }}</span>\n <ax-lookup mode=\"drop-down-list\" [dataSource]=\"valueFieldDataSource()\" [ngModel]=\"getValue()['valueField']\"\n (onValueChanged)=\"onValueFieldChange($event)\" valueField=\"value\" textField=\"text\"\n [searchable]=\"false\"\n [disabled]=\"valueTextFieldDisabled()\"\n [placeholder]=\"((valueTextFieldDisabled() ? I18N.valueFieldPlaceholderDisabled : I18N.valueFieldPlaceholder) | translate | async) ?? ''\">\n <ax-clear-button></ax-clear-button>\n </ax-lookup>\n </div>\n\n <!-- ----- textField select ----- -->\n <div class=\"flex flex-col gap-2\">\n <span class=\"font-medium text-sm\">{{ I18N.textField | translate | async }}</span>\n <ax-lookup mode=\"drop-down-list\" [dataSource]=\"textFieldDataSource()\" [ngModel]=\"getValue()['textField']\"\n (onValueChanged)=\"onTextFieldChange($event)\" valueField=\"value\" textField=\"text\"\n [searchable]=\"false\"\n [disabled]=\"valueTextFieldDisabled()\"\n [placeholder]=\"((valueTextFieldDisabled() ? I18N.textFieldPlaceholderDisabled : I18N.textFieldPlaceholder) | translate | async) ?? ''\">\n <ax-clear-button></ax-clear-button>\n </ax-lookup>\n </div>\n }\n</div>\n", styles: [".axp-data-source-options{min-width:0px}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: AXLookupComponent, selector: "ax-lookup", inputs: ["name", "mode", "dataSource", "treeDataSource", "valueField", "textField", "disabledField", "columns", "treeParentField", "hasChildrenField", "searchable", "adaptivityEnabled", "caption", "alternate", "searchPlaceholder", "placeholder", "disabled", "readonly", "look", "itemHeight", "maxVisibleItems", "treeSelectionBehavior", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXSelectionListModule }, { kind: "component", type: i2$4.AXSelectionListComponent, selector: "ax-selection-list", inputs: ["id", "name", "disabled", "readonly", "tabIndex", "
|
|
22248
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPDataSourceOptionsWidgetEditComponent, isStandalone: true, selector: "axp-data-source-options-widget-editor", usesInheritance: true, ngImport: i0, template: "<div class=\"axp-data-source-options flex flex-col gap-3 py-2\">\n <!-- ----- Mode: exists or list ----- -->\n <div class=\"flex flex-col gap-2\">\n <span class=\"font-medium text-sm\">{{ I18N.source | translate | async }}</span>\n <ax-selection-list [items]=\"modeItems()\" [ngModel]=\"dataSourceMode()\"\n (onValueChanged)=\"setDataSourceMode($event.value)\" direction=\"horizontal\" [multiple]=\"false\" [showControl]=\"true\"\n valueField=\"value\" textField=\"text\" />\n </div>\n\n <!-- ----- Select registered query (only when mode is exists) ----- -->\n @if (dataSourceMode() === 'exists') {\n <div class=\"flex flex-col gap-2\">\n <span class=\"font-medium text-sm\">{{ I18N.dataSource | translate | async }}</span>\n <ax-lookup mode=\"drop-down-list\" [dataSource]=\"queriesDataSource\" [ngModel]=\"getValue()['dataSource']\"\n (onValueChanged)=\"onQueryChange($event)\" valueField=\"name\" textField=\"title\"\n [searchable]=\"true\"\n [placeholder]=\"(I18N.dataSourcePlaceholder | translate | async) ?? ''\">\n <ax-clear-button></ax-clear-button>\n </ax-lookup>\n </div>\n }\n\n <!-- ----- Simple list (text rows) ----- -->\n @if (dataSourceMode() === 'list') {\n <div class=\"flex flex-col gap-2\">\n <span class=\"font-medium text-sm\">{{ I18N.listItems | translate | async }}</span>\n <axp-repeater-rows-layout\n [count]=\"listEntries().length\"\n [rowTemplate]=\"listRowTpl\"\n [hasControls]=\"true\"\n [allowReorder]=\"true\"\n [addItemLabelKey]=\"I18N.addListItem\"\n (addClick)=\"addListEntry()\"\n (removeClick)=\"removeListEntry($event)\"\n (drop)=\"onListDrop($event)\"\n ></axp-repeater-rows-layout>\n <ng-template #listRowTpl let-index=\"index\">\n <ax-text-box\n class=\"w-full\"\n [ngModel]=\"listEntries()[index]\"\n (onValueChanged)=\"onListEntryChange(index, $event)\"\n />\n </ng-template>\n </div>\n }\n\n <!-- ----- valueField / textField (exists only) ----- -->\n @if (fieldSelectsKey() && dataSourceMode() === 'exists') {\n <div class=\"flex flex-col gap-2\">\n <span class=\"font-medium text-sm\">{{ I18N.valueField | translate | async }}</span>\n <ax-lookup mode=\"drop-down-list\" [dataSource]=\"valueFieldDataSource()\" [ngModel]=\"getValue()['valueField']\"\n (onValueChanged)=\"onValueFieldChange($event)\" valueField=\"value\" textField=\"text\"\n [searchable]=\"false\"\n [disabled]=\"valueTextFieldDisabled()\"\n [placeholder]=\"((valueTextFieldDisabled() ? I18N.valueFieldPlaceholderDisabled : I18N.valueFieldPlaceholder) | translate | async) ?? ''\">\n <ax-clear-button></ax-clear-button>\n </ax-lookup>\n </div>\n\n <!-- ----- textField select ----- -->\n <div class=\"flex flex-col gap-2\">\n <span class=\"font-medium text-sm\">{{ I18N.textField | translate | async }}</span>\n <ax-lookup mode=\"drop-down-list\" [dataSource]=\"textFieldDataSource()\" [ngModel]=\"getValue()['textField']\"\n (onValueChanged)=\"onTextFieldChange($event)\" valueField=\"value\" textField=\"text\"\n [searchable]=\"false\"\n [disabled]=\"valueTextFieldDisabled()\"\n [placeholder]=\"((valueTextFieldDisabled() ? I18N.textFieldPlaceholderDisabled : I18N.textFieldPlaceholder) | translate | async) ?? ''\">\n <ax-clear-button></ax-clear-button>\n </ax-lookup>\n </div>\n }\n</div>\n", styles: [".axp-data-source-options{min-width:0px}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: AXLookupComponent, selector: "ax-lookup", inputs: ["name", "mode", "dataSource", "treeDataSource", "valueField", "textField", "disabledField", "columns", "treeParentField", "hasChildrenField", "searchable", "adaptivityEnabled", "caption", "alternate", "searchPlaceholder", "placeholder", "disabled", "readonly", "look", "itemHeight", "maxVisibleItems", "treeSelectionBehavior", "highlightSearch", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXSelectionListModule }, { kind: "component", type: i2$4.AXSelectionListComponent, selector: "ax-selection-list", inputs: ["id", "name", "disabled", "readonly", "tabIndex", "value", "valueField", "textField", "disabledField", "readonlyField", "multiple", "direction", "customTemplate", "showControl", "items", "look"], outputs: ["onValueChanged", "onBlur", "onFocus"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i1$7.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "maskPattern", "customTokens", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "onMaskChanged"] }, { kind: "component", type: AXPRepeaterRowsLayoutComponent, selector: "axp-repeater-rows-layout", inputs: ["count", "disabled", "hasControls", "allowReorder", "rowTemplate", "addItemLabelKey", "emptyTitleKey", "emptyDescriptionKey", "addFirstItemLabelKey"], outputs: ["addClick", "removeClick", "drop"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i1$5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
22807
22249
|
}
|
|
22808
22250
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPDataSourceOptionsWidgetEditComponent, decorators: [{
|
|
22809
22251
|
type: Component,
|
|
@@ -22850,7 +22292,7 @@ class AXPDirectionWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
22850
22292
|
];
|
|
22851
22293
|
}
|
|
22852
22294
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPDirectionWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
22853
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: AXPDirectionWidgetEditComponent, isStandalone: true, selector: "axp-direction-widget-editor", usesInheritance: true, ngImport: i0, template: "<div class=\"pt-2\">\n <div class=\"mt-2\">\n <ax-selection-list\n [items]=\"directionOptions\"\n [ngModel]=\"direction()\"\n (onValueChanged)=\"handleValueChanged($event)\"\n direction=\"horizontal\"\n [multiple]=\"false\"\n [showControl]=\"true\"\n look=\"card\"\n valueField=\"id\"\n textField=\"text\"\n >\n <ng-template #itemTemplate let-item>\n <div class=\"flex items-center\">\n <i [class]=\"item.icon\"></i>\n <span class=\"ml-2\">{{ item.text }}</span>\n </div>\n </ng-template>\n </ax-selection-list>\n </div>\n</div>\n", styles: ["axp-direction-widget-editor ax-selection-list>ul{flex-wrap:nowrap}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: AXSelectionListModule }, { kind: "component", type: i2$4.AXSelectionListComponent, selector: "ax-selection-list", inputs: ["id", "name", "disabled", "readonly", "tabIndex", "
|
|
22295
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: AXPDirectionWidgetEditComponent, isStandalone: true, selector: "axp-direction-widget-editor", usesInheritance: true, ngImport: i0, template: "<div class=\"pt-2\">\n <div class=\"mt-2\">\n <ax-selection-list\n [items]=\"directionOptions\"\n [ngModel]=\"direction()\"\n (onValueChanged)=\"handleValueChanged($event)\"\n direction=\"horizontal\"\n [multiple]=\"false\"\n [showControl]=\"true\"\n look=\"card\"\n valueField=\"id\"\n textField=\"text\"\n >\n <ng-template #itemTemplate let-item>\n <div class=\"flex items-center\">\n <i [class]=\"item.icon\"></i>\n <span class=\"ml-2\">{{ item.text }}</span>\n </div>\n </ng-template>\n </ax-selection-list>\n </div>\n</div>\n", styles: ["axp-direction-widget-editor ax-selection-list>ul{flex-wrap:nowrap}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: AXSelectionListModule }, { kind: "component", type: i2$4.AXSelectionListComponent, selector: "ax-selection-list", inputs: ["id", "name", "disabled", "readonly", "tabIndex", "value", "valueField", "textField", "disabledField", "readonlyField", "multiple", "direction", "customTemplate", "showControl", "items", "look"], outputs: ["onValueChanged", "onBlur", "onFocus"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
22854
22296
|
}
|
|
22855
22297
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPDirectionWidgetEditComponent, decorators: [{
|
|
22856
22298
|
type: Component,
|
|
@@ -23300,7 +22742,7 @@ class AXPFlexOptionsWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
23300
22742
|
}
|
|
23301
22743
|
#af;
|
|
23302
22744
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPFlexOptionsWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
23303
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPFlexOptionsWidgetEditComponent, isStandalone: true, selector: "axp-flex-options-widget-editor", usesInheritance: true, ngImport: i0, template: "<div class=\"axp-flex-option grid grid-cols-[auto_1fr] pt-2 gap-2 items-center justify-items-start\">\n <span>Direction</span>\n <div>\n <ax-button-group class=\"ax-sm\" [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>\n </div>\n <span> Wrap </span>\n <div>\n <ax-selection-list\n [items]=\"['wrap', 'nowrap']\"\n [value]=\"flexWrap()\"\n (onValueChanged)=\"setWrapMode($event.value)\"\n direction=\"horizontal\"\n [multiple]=\"false\"\n [showControl]=\"true\"\n look=\"card\"\n valueField=\"id\"\n textField=\"text\"\n >\n <ng-template #itemTemplate let-item>\n <div class=\"flex items-center\">\n <ax-icon [icon]=\"item.icon\"></ax-icon>\n <span class=\"ml-2\">{{ item.text }}</span>\n </div>\n </ng-template>\n </ax-selection-list>\n </div>\n <span>Align</span>\n <div class=\"flex justify-between gap-2 items-center\">\n <div\n class=\"relative size-[62px] bg-[rgb(30,30,30)] border border-white border-opacity-15 rounded\"\n >\n <div class=\"absolute inset-0 grid grid-cols-3 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=\"grid 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=\"absolute inset-0 flex pointer-events-none transition-all\"\n [style.justify-content]=\"hoveredJustify()\"\n [style.align-items]=\"hoveredAlign()\"\n [style.flex-direction]=\"flexDirection()\"\n >\n <div class=\"flex justify-center items-center min-w-5 min-h-5\">\n <div\n class=\"size-auto z-[1] rounded-lg bg-[rgb(30,30,30)] flex-none\"\n [class]=\"flexDirectionIsColumn() ? '-ax-rotate-90' : ''\"\n >\n @if (hoveredJustify() === 'space-between') {\n @if (clickedAlign() === 'stretch') {\n } @else if (clickedAlign() === 'baseline' && hoveredAlign() === 'flex-start') {\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 fill-opacity=\"0.3\"\n ></path>\n </svg>\n }\n } @else if (hoveredJustify() === 'space-around') {\n @if (clickedAlign() === 'stretch') {\n } @else if (clickedAlign() === 'baseline' && hoveredAlign() === 'flex-start') {\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\" 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 }\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=\"absolute inset-0 flex pointer-events-none transition-all\"\n [style.justify-content]=\"clickedJustify()\"\n [style.align-items]=\"clickedAlign()\"\n [style.flex-direction]=\"flexDirection()\"\n >\n <div class=\"flex justify-center items-center min-w-5 min-h-5\">\n <div\n class=\"size-auto z-[2] rounded-lg bg-[rgb(30,30,30)] flex-none\"\n [class]=\"flexDirectionIsColumn() ? '-ax-rotate-90' : ''\"\n >\n @if (clickedJustify() === 'space-between') {\n @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 }\n } @else if (clickedJustify() === 'space-around') {\n @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 }\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=\"grid grid-cols-[auto_1fr] items-center justify-items-start gap-2\">\n <span class=\"order-1\">X:</span>\n <div class=\"max-w-28\" [style.order]=\"flexDirectionIsColumn() ? '4' : '2'\">\n <!-- removed legacy ax-select-box align/justify picker -->\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"ax-sm\"\n [dataSource]=\"justifyDataSource\"\n [(ngModel)]=\"selectedJustify\"\n (onValueChanged)=\"onJustifyChange($event)\"\n textField=\"label\"\n valueField=\"value\"\n [searchable]=\"false\"\n placeholder=\"Choose...\"\n >\n </ax-lookup>\n </div>\n <span class=\"order-3\">Y:</span>\n <div class=\"max-w-28\" [style.order]=\"flexDirectionIsColumn() ? '2' : '4'\">\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"ax-sm\"\n [dataSource]=\"alignDataSource\"\n [(ngModel)]=\"selectedAlign\"\n (onValueChanged)=\"onAlignChange($event)\"\n textField=\"label\"\n valueField=\"value\"\n [searchable]=\"false\"\n placeholder=\"Choose...\"\n >\n </ax-lookup>\n </div>\n </div>\n </div>\n <span>Gap</span>\n <div class=\"flex gap-2 justify-between items-center\">\n @if (gapMode() === 'both') {\n <ax-range-slider\n class=\"w-32\"\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 (onValueChanged)=\"setGap($event.value ?? 0, 'both')\"\n class=\"ax-sm max-w-[5.5rem]\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"text-xs! px-1!\">PX</ax-text></ax-suffix></ax-number-box\n >\n } @else {\n <div class=\"flex items-center gap-2 h-12\">\n <span class=\"text-xs\"\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 ></span>\n <ax-number-box\n [minValue]=\"0\"\n [maxValue]=\"999\"\n [value]=\"gap().x\"\n [changeOnScroll]=\"true\"\n (onValueChanged)=\"setGap($event.value ?? 0, 'x')\"\n class=\"ax-sm min-w-5\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"text-xs! px-1!\">PX</ax-text></ax-suffix></ax-number-box\n >\n <span class=\"text-xs\"\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></span>\n <ax-number-box\n [minValue]=\"0\"\n [maxValue]=\"999\"\n [value]=\"gap().y\"\n [changeOnScroll]=\"true\"\n (onValueChanged)=\"setGap($event.value ?? 0, 'y')\"\n class=\"ax-sm min-w-5\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"text-xs! 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 <!-- <span>Items</span>\n <div>\n <ax-number-box\n [minValue]=\"0\"\n [maxValue]=\"12\"\n [ngModel]=\"itemsCount()\"\n (ngModelChange)=\"setItemsCount($event ?? 0)\"\n class=\"w-32\"\n ></ax-number-box>\n </div> -->\n</div>\n", styles: [":host{--ax-comp-range-slider-handler-size: .75rem}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: AXButtonGroupModule }, { kind: "component", type: i1$k.AXButtonGroupComponent, selector: "ax-button-group", inputs: ["disabled", "fitParent", "color", "look", "class", "selection"], outputs: ["onBlur", "onFocus", "disabledChange", "colorChange", "lookChange", "onClick", "selectionChange", "selectedButtonChange"] }, { kind: "component", type: i1$k.AXButtonGroupItemComponent, selector: "ax-button-group-item", inputs: ["disabled", "color", "text", "class", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange", "classChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: AXLookupComponent, selector: "ax-lookup", inputs: ["name", "mode", "dataSource", "treeDataSource", "valueField", "textField", "disabledField", "columns", "treeParentField", "hasChildrenField", "searchable", "adaptivityEnabled", "caption", "alternate", "searchPlaceholder", "placeholder", "disabled", "readonly", "look", "itemHeight", "maxVisibleItems", "treeSelectionBehavior", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXRangeSliderModule }, { kind: "component", type: i3$4.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$8.AXNumberBoxComponent, selector: "ax-number-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "minValue", "maxValue", "showSpinButtons", "thousandsSeparator", "decimals", "changeOnScroll", "step"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "thousandsSeparatorChange"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXSelectionListModule }, { kind: "component", type: i2$4.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"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
22745
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPFlexOptionsWidgetEditComponent, isStandalone: true, selector: "axp-flex-options-widget-editor", usesInheritance: true, ngImport: i0, template: "<div class=\"axp-flex-option grid grid-cols-[auto_1fr] pt-2 gap-2 items-center justify-items-start\">\n <span>Direction</span>\n <div>\n <ax-button-group class=\"ax-sm\" [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>\n </div>\n <span> Wrap </span>\n <div>\n <ax-selection-list\n [items]=\"['wrap', 'nowrap']\"\n [value]=\"flexWrap()\"\n (onValueChanged)=\"setWrapMode($event.value)\"\n direction=\"horizontal\"\n [multiple]=\"false\"\n [showControl]=\"true\"\n look=\"card\"\n valueField=\"id\"\n textField=\"text\"\n >\n <ng-template #itemTemplate let-item>\n <div class=\"flex items-center\">\n <ax-icon [icon]=\"item.icon\"></ax-icon>\n <span class=\"ml-2\">{{ item.text }}</span>\n </div>\n </ng-template>\n </ax-selection-list>\n </div>\n <span>Align</span>\n <div class=\"flex justify-between gap-2 items-center\">\n <div\n class=\"relative size-[62px] bg-[rgb(30,30,30)] border border-white border-opacity-15 rounded\"\n >\n <div class=\"absolute inset-0 grid grid-cols-3 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=\"grid 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=\"absolute inset-0 flex pointer-events-none transition-all\"\n [style.justify-content]=\"hoveredJustify()\"\n [style.align-items]=\"hoveredAlign()\"\n [style.flex-direction]=\"flexDirection()\"\n >\n <div class=\"flex justify-center items-center min-w-5 min-h-5\">\n <div\n class=\"size-auto z-[1] rounded-lg bg-[rgb(30,30,30)] flex-none\"\n [class]=\"flexDirectionIsColumn() ? '-ax-rotate-90' : ''\"\n >\n @if (hoveredJustify() === 'space-between') {\n @if (clickedAlign() === 'stretch') {\n } @else if (clickedAlign() === 'baseline' && hoveredAlign() === 'flex-start') {\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 fill-opacity=\"0.3\"\n ></path>\n </svg>\n }\n } @else if (hoveredJustify() === 'space-around') {\n @if (clickedAlign() === 'stretch') {\n } @else if (clickedAlign() === 'baseline' && hoveredAlign() === 'flex-start') {\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\" 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 }\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=\"absolute inset-0 flex pointer-events-none transition-all\"\n [style.justify-content]=\"clickedJustify()\"\n [style.align-items]=\"clickedAlign()\"\n [style.flex-direction]=\"flexDirection()\"\n >\n <div class=\"flex justify-center items-center min-w-5 min-h-5\">\n <div\n class=\"size-auto z-[2] rounded-lg bg-[rgb(30,30,30)] flex-none\"\n [class]=\"flexDirectionIsColumn() ? '-ax-rotate-90' : ''\"\n >\n @if (clickedJustify() === 'space-between') {\n @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 }\n } @else if (clickedJustify() === 'space-around') {\n @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 }\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=\"grid grid-cols-[auto_1fr] items-center justify-items-start gap-2\">\n <span class=\"order-1\">X:</span>\n <div class=\"max-w-28\" [style.order]=\"flexDirectionIsColumn() ? '4' : '2'\">\n <!-- removed legacy ax-select-box align/justify picker -->\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"ax-sm\"\n [dataSource]=\"justifyDataSource\"\n [(ngModel)]=\"selectedJustify\"\n (onValueChanged)=\"onJustifyChange($event)\"\n textField=\"label\"\n valueField=\"value\"\n [searchable]=\"false\"\n placeholder=\"Choose...\"\n >\n </ax-lookup>\n </div>\n <span class=\"order-3\">Y:</span>\n <div class=\"max-w-28\" [style.order]=\"flexDirectionIsColumn() ? '2' : '4'\">\n <ax-lookup\n mode=\"drop-down-list\"\n class=\"ax-sm\"\n [dataSource]=\"alignDataSource\"\n [(ngModel)]=\"selectedAlign\"\n (onValueChanged)=\"onAlignChange($event)\"\n textField=\"label\"\n valueField=\"value\"\n [searchable]=\"false\"\n placeholder=\"Choose...\"\n >\n </ax-lookup>\n </div>\n </div>\n </div>\n <span>Gap</span>\n <div class=\"flex gap-2 justify-between items-center\">\n @if (gapMode() === 'both') {\n <ax-range-slider\n class=\"w-32\"\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 (onValueChanged)=\"setGap($event.value ?? 0, 'both')\"\n class=\"ax-sm max-w-[5.5rem]\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"text-xs! px-1!\">PX</ax-text></ax-suffix></ax-number-box\n >\n } @else {\n <div class=\"flex items-center gap-2 h-12\">\n <span class=\"text-xs\"\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 ></span>\n <ax-number-box\n [minValue]=\"0\"\n [maxValue]=\"999\"\n [value]=\"gap().x\"\n [changeOnScroll]=\"true\"\n (onValueChanged)=\"setGap($event.value ?? 0, 'x')\"\n class=\"ax-sm min-w-5\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"text-xs! px-1!\">PX</ax-text></ax-suffix></ax-number-box\n >\n <span class=\"text-xs\"\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></span>\n <ax-number-box\n [minValue]=\"0\"\n [maxValue]=\"999\"\n [value]=\"gap().y\"\n [changeOnScroll]=\"true\"\n (onValueChanged)=\"setGap($event.value ?? 0, 'y')\"\n class=\"ax-sm min-w-5\"\n [showSpinButtons]=\"false\"\n ><ax-suffix><ax-text class=\"text-xs! 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 <!-- <span>Items</span>\n <div>\n <ax-number-box\n [minValue]=\"0\"\n [maxValue]=\"12\"\n [ngModel]=\"itemsCount()\"\n (ngModelChange)=\"setItemsCount($event ?? 0)\"\n class=\"w-32\"\n ></ax-number-box>\n </div> -->\n</div>\n", styles: [":host{--ax-comp-range-slider-handler-size: .75rem}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: AXButtonGroupModule }, { kind: "component", type: i1$i.AXButtonGroupComponent, selector: "ax-button-group", inputs: ["disabled", "fitParent", "color", "look", "class", "selection"], outputs: ["onBlur", "onFocus", "disabledChange", "colorChange", "lookChange", "onClick", "selectionChange", "selectedButtonChange"] }, { kind: "component", type: i1$i.AXButtonGroupItemComponent, selector: "ax-button-group-item", inputs: ["disabled", "color", "text", "class", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange", "classChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: AXLookupComponent, selector: "ax-lookup", inputs: ["name", "mode", "dataSource", "treeDataSource", "valueField", "textField", "disabledField", "columns", "treeParentField", "hasChildrenField", "searchable", "adaptivityEnabled", "caption", "alternate", "searchPlaceholder", "placeholder", "disabled", "readonly", "look", "itemHeight", "maxVisibleItems", "treeSelectionBehavior", "highlightSearch", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXRangeSliderModule }, { kind: "component", type: i3$4.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$8.AXNumberBoxComponent, selector: "ax-number-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "minValue", "maxValue", "showSpinButtons", "thousandsSeparator", "decimals", "changeOnScroll", "step"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "thousandsSeparatorChange"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXSelectionListModule }, { kind: "component", type: i2$4.AXSelectionListComponent, selector: "ax-selection-list", inputs: ["id", "name", "disabled", "readonly", "tabIndex", "value", "valueField", "textField", "disabledField", "readonlyField", "multiple", "direction", "customTemplate", "showControl", "items", "look"], outputs: ["onValueChanged", "onBlur", "onFocus"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
23304
22746
|
}
|
|
23305
22747
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPFlexOptionsWidgetEditComponent, decorators: [{
|
|
23306
22748
|
type: Component,
|
|
@@ -24720,79 +24162,631 @@ const AXPRegularExpressionValidationWidget = {
|
|
|
24720
24162
|
|
|
24721
24163
|
class AXPRequiredValidationWidgetEditComponent extends AXPValueWidgetComponent {
|
|
24722
24164
|
constructor() {
|
|
24723
|
-
super(...arguments);
|
|
24724
|
-
this.validationName = this.token.node.name;
|
|
24725
|
-
this.validationInformation = AXP_BASE_VALIDATION_INFORMATION[this.validationName];
|
|
24726
|
-
this.validationStatus = linkedSignal(() => this.getValue()?.rule === this.validationInformation.rule ? true : false, /* @ts-ignore */
|
|
24727
|
-
...(ngDevMode ? [{ debugName: "validationStatus" }] : /* istanbul ignore next */ []));
|
|
24728
|
-
this.validationText = linkedSignal(() => this.getValue()?.message ?? this.validationInformation.message, /* @ts-ignore */
|
|
24729
|
-
...(ngDevMode ? [{ debugName: "validationText" }] : /* istanbul ignore next */ []));
|
|
24730
|
-
this.validationPlaceholder = this.validationInformation.placeholder;
|
|
24731
|
-
this.#syncChange = effect(() => {
|
|
24732
|
-
if (this.validationStatus()) {
|
|
24733
|
-
this.setValue({ rule: this.validationInformation.rule, message: this.validationText() });
|
|
24165
|
+
super(...arguments);
|
|
24166
|
+
this.validationName = this.token.node.name;
|
|
24167
|
+
this.validationInformation = AXP_BASE_VALIDATION_INFORMATION[this.validationName];
|
|
24168
|
+
this.validationStatus = linkedSignal(() => this.getValue()?.rule === this.validationInformation.rule ? true : false, /* @ts-ignore */
|
|
24169
|
+
...(ngDevMode ? [{ debugName: "validationStatus" }] : /* istanbul ignore next */ []));
|
|
24170
|
+
this.validationText = linkedSignal(() => this.getValue()?.message ?? this.validationInformation.message, /* @ts-ignore */
|
|
24171
|
+
...(ngDevMode ? [{ debugName: "validationText" }] : /* istanbul ignore next */ []));
|
|
24172
|
+
this.validationPlaceholder = this.validationInformation.placeholder;
|
|
24173
|
+
this.#syncChange = effect(() => {
|
|
24174
|
+
if (this.validationStatus()) {
|
|
24175
|
+
this.setValue({ rule: this.validationInformation.rule, message: this.validationText() });
|
|
24176
|
+
}
|
|
24177
|
+
else
|
|
24178
|
+
this.setValue(undefined);
|
|
24179
|
+
}, /* @ts-ignore */
|
|
24180
|
+
...(ngDevMode ? [{ debugName: "#syncChange" }] : /* istanbul ignore next */ []));
|
|
24181
|
+
}
|
|
24182
|
+
ToggleRule(event) {
|
|
24183
|
+
this.validationStatus.set(event);
|
|
24184
|
+
}
|
|
24185
|
+
#syncChange;
|
|
24186
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPRequiredValidationWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
24187
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: AXPRequiredValidationWidgetEditComponent, isStandalone: true, selector: "axp-required-validation-widget-editor", usesInheritance: true, ngImport: i0, template: `<axp-base-validation-component
|
|
24188
|
+
[validationStatus]="validationStatus()"
|
|
24189
|
+
(validationStatusChange)="ToggleRule($event)"
|
|
24190
|
+
[(validationText)]="validationText"
|
|
24191
|
+
[validationTextPlaceholder]="validationPlaceholder"
|
|
24192
|
+
>
|
|
24193
|
+
</axp-base-validation-component>`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: AXPBaseValidationComponent, selector: "axp-base-validation-component", inputs: ["validationStatus", "validationText", "validationTextPlaceholder"], outputs: ["validationStatusChange", "validationTextChange"] }, { kind: "ngmodule", type: FormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24194
|
+
}
|
|
24195
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPRequiredValidationWidgetEditComponent, decorators: [{
|
|
24196
|
+
type: Component,
|
|
24197
|
+
args: [{
|
|
24198
|
+
selector: 'axp-required-validation-widget-editor',
|
|
24199
|
+
template: `<axp-base-validation-component
|
|
24200
|
+
[validationStatus]="validationStatus()"
|
|
24201
|
+
(validationStatusChange)="ToggleRule($event)"
|
|
24202
|
+
[(validationText)]="validationText"
|
|
24203
|
+
[validationTextPlaceholder]="validationPlaceholder"
|
|
24204
|
+
>
|
|
24205
|
+
</axp-base-validation-component>`,
|
|
24206
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
24207
|
+
imports: [AXPWidgetCoreModule, AXPBaseValidationComponent, FormsModule],
|
|
24208
|
+
}]
|
|
24209
|
+
}] });
|
|
24210
|
+
|
|
24211
|
+
var requiredValidationWidgetEdit_component = /*#__PURE__*/Object.freeze({
|
|
24212
|
+
__proto__: null,
|
|
24213
|
+
AXPRequiredValidationWidgetEditComponent: AXPRequiredValidationWidgetEditComponent
|
|
24214
|
+
});
|
|
24215
|
+
|
|
24216
|
+
const AXPRequiredValidationWidget = {
|
|
24217
|
+
name: 'required-validation',
|
|
24218
|
+
title: 'Mandatory Field Validation',
|
|
24219
|
+
type: 'validation',
|
|
24220
|
+
icon: 'fa-light fa-exclamation-circle',
|
|
24221
|
+
properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],
|
|
24222
|
+
components: {
|
|
24223
|
+
edit: {
|
|
24224
|
+
component: () => Promise.resolve().then(function () { return requiredValidationWidgetEdit_component; }).then((c) => c.AXPRequiredValidationWidgetEditComponent),
|
|
24225
|
+
},
|
|
24226
|
+
},
|
|
24227
|
+
};
|
|
24228
|
+
|
|
24229
|
+
//#region ----- Constants -----
|
|
24230
|
+
const UNIX_FIELD_PATTERN = /^(?:\*|\d+(?:-\d+)?(?:\/\d+)?|\*\/\d+)(?:,(?:\*|\d+(?:-\d+)?(?:\/\d+)?|\*\/\d+))*$/;
|
|
24231
|
+
const ALL_WEEKDAYS = [0, 1, 2, 3, 4, 5, 6];
|
|
24232
|
+
const AXP_CRON_DEFAULT_MODEL = {
|
|
24233
|
+
preset: 'daily',
|
|
24234
|
+
minute: 0,
|
|
24235
|
+
hour: 0,
|
|
24236
|
+
hourInterval: 1,
|
|
24237
|
+
weekdays: [1],
|
|
24238
|
+
monthDay: 1,
|
|
24239
|
+
raw: '0 0 * * *',
|
|
24240
|
+
};
|
|
24241
|
+
//#endregion
|
|
24242
|
+
//#region ----- Validation -----
|
|
24243
|
+
function normalizeCronExpression(value) {
|
|
24244
|
+
return typeof value === 'string' ? value.trim() : '';
|
|
24245
|
+
}
|
|
24246
|
+
function isValidUnixCron(value) {
|
|
24247
|
+
const raw = normalizeCronExpression(value);
|
|
24248
|
+
if (!raw) {
|
|
24249
|
+
return false;
|
|
24250
|
+
}
|
|
24251
|
+
const fields = raw.split(/\s+/);
|
|
24252
|
+
if (fields.length !== 5 && fields.length !== 6) {
|
|
24253
|
+
return false;
|
|
24254
|
+
}
|
|
24255
|
+
return fields.every((field) => UNIX_FIELD_PATTERN.test(field));
|
|
24256
|
+
}
|
|
24257
|
+
//#endregion
|
|
24258
|
+
//#region ----- Parse / build -----
|
|
24259
|
+
function parseCronExpression(value) {
|
|
24260
|
+
const raw = normalizeCronExpression(value);
|
|
24261
|
+
if (!raw || !isValidUnixCron(raw)) {
|
|
24262
|
+
return { ...AXP_CRON_DEFAULT_MODEL, preset: raw ? 'custom' : 'daily', raw };
|
|
24263
|
+
}
|
|
24264
|
+
const fiveField = toFiveFieldCron(raw);
|
|
24265
|
+
const [minuteField, hourField, dayOfMonthField, monthField, dayOfWeekField] = fiveField.split(' ');
|
|
24266
|
+
const minute = parseExactNumber(minuteField, 0, 59);
|
|
24267
|
+
const monthDay = parseExactNumber(dayOfMonthField, 1, 31);
|
|
24268
|
+
const hour = parseExactNumber(hourField, 0, 23);
|
|
24269
|
+
const hourInterval = parseStarStep(hourField);
|
|
24270
|
+
const weekdays = parseWeekdays(dayOfWeekField);
|
|
24271
|
+
const base = {
|
|
24272
|
+
...AXP_CRON_DEFAULT_MODEL,
|
|
24273
|
+
minute: minute ?? AXP_CRON_DEFAULT_MODEL.minute,
|
|
24274
|
+
hour: hour ?? AXP_CRON_DEFAULT_MODEL.hour,
|
|
24275
|
+
hourInterval: hourInterval ?? AXP_CRON_DEFAULT_MODEL.hourInterval,
|
|
24276
|
+
weekdays: weekdays ?? AXP_CRON_DEFAULT_MODEL.weekdays,
|
|
24277
|
+
monthDay: monthDay ?? AXP_CRON_DEFAULT_MODEL.monthDay,
|
|
24278
|
+
raw: fiveField,
|
|
24279
|
+
};
|
|
24280
|
+
if (monthField !== '*') {
|
|
24281
|
+
return { ...base, preset: 'custom', raw };
|
|
24282
|
+
}
|
|
24283
|
+
if (minute == null) {
|
|
24284
|
+
return { ...base, preset: 'custom', raw };
|
|
24285
|
+
}
|
|
24286
|
+
if (dayOfMonthField === '*' && dayOfWeekField === '*' && hourInterval != null) {
|
|
24287
|
+
return { ...base, preset: 'hourly', hour: 0 };
|
|
24288
|
+
}
|
|
24289
|
+
if (hour != null && dayOfMonthField === '*' && dayOfWeekField === '*') {
|
|
24290
|
+
return { ...base, preset: 'daily' };
|
|
24291
|
+
}
|
|
24292
|
+
if (hour != null && dayOfMonthField === '*' && weekdays != null) {
|
|
24293
|
+
if (weekdays.length === ALL_WEEKDAYS.length) {
|
|
24294
|
+
return { ...base, preset: 'daily' };
|
|
24295
|
+
}
|
|
24296
|
+
return { ...base, preset: 'weekly', weekdays };
|
|
24297
|
+
}
|
|
24298
|
+
if (hour != null && monthDay != null && dayOfWeekField === '*') {
|
|
24299
|
+
return { ...base, preset: 'monthly' };
|
|
24300
|
+
}
|
|
24301
|
+
return { ...base, preset: 'custom', raw };
|
|
24302
|
+
}
|
|
24303
|
+
function buildCronExpression(model) {
|
|
24304
|
+
const minute = clampInt(model.minute, 0, 59);
|
|
24305
|
+
const hour = clampInt(model.hour, 0, 23);
|
|
24306
|
+
const hourInterval = clampInt(model.hourInterval, 1, 23);
|
|
24307
|
+
const monthDay = clampInt(model.monthDay, 1, 31);
|
|
24308
|
+
const weekdays = normalizeWeekdays(model.weekdays);
|
|
24309
|
+
switch (model.preset) {
|
|
24310
|
+
case 'hourly':
|
|
24311
|
+
return `${minute} ${hourInterval === 1 ? '*' : `*/${hourInterval}`} * * *`;
|
|
24312
|
+
case 'daily':
|
|
24313
|
+
return `${minute} ${hour} * * *`;
|
|
24314
|
+
case 'weekly':
|
|
24315
|
+
return `${minute} ${hour} * * ${formatWeekdays(weekdays.length ? weekdays : [1])}`;
|
|
24316
|
+
case 'monthly':
|
|
24317
|
+
return `${minute} ${hour} ${monthDay} * *`;
|
|
24318
|
+
case 'custom':
|
|
24319
|
+
return normalizeCronExpression(model.raw);
|
|
24320
|
+
default:
|
|
24321
|
+
return AXP_CRON_DEFAULT_MODEL.raw;
|
|
24322
|
+
}
|
|
24323
|
+
}
|
|
24324
|
+
function describeCronExpression(value) {
|
|
24325
|
+
const raw = normalizeCronExpression(value);
|
|
24326
|
+
if (!raw) {
|
|
24327
|
+
return { kind: 'empty' };
|
|
24328
|
+
}
|
|
24329
|
+
if (!isValidUnixCron(raw)) {
|
|
24330
|
+
return { kind: 'invalid', raw };
|
|
24331
|
+
}
|
|
24332
|
+
const model = parseCronExpression(raw);
|
|
24333
|
+
switch (model.preset) {
|
|
24334
|
+
case 'hourly':
|
|
24335
|
+
return { kind: 'hourly', interval: model.hourInterval, minute: model.minute };
|
|
24336
|
+
case 'daily':
|
|
24337
|
+
return { kind: 'daily', hour: model.hour, minute: model.minute };
|
|
24338
|
+
case 'weekly':
|
|
24339
|
+
return { kind: 'weekly', hour: model.hour, minute: model.minute, weekdays: model.weekdays };
|
|
24340
|
+
case 'monthly':
|
|
24341
|
+
return { kind: 'monthly', hour: model.hour, minute: model.minute, monthDay: model.monthDay };
|
|
24342
|
+
default:
|
|
24343
|
+
return { kind: 'custom', raw: toFiveFieldCron(raw) };
|
|
24344
|
+
}
|
|
24345
|
+
}
|
|
24346
|
+
function applyCronPreset(model, preset) {
|
|
24347
|
+
const next = { ...model, preset };
|
|
24348
|
+
return { ...next, raw: buildCronExpression(next) };
|
|
24349
|
+
}
|
|
24350
|
+
//#endregion
|
|
24351
|
+
//#region ----- Field helpers -----
|
|
24352
|
+
function toFiveFieldCron(raw) {
|
|
24353
|
+
const fields = raw.split(/\s+/);
|
|
24354
|
+
return fields.length === 6 ? fields.slice(1).join(' ') : fields.join(' ');
|
|
24355
|
+
}
|
|
24356
|
+
function parseExactNumber(field, min, max) {
|
|
24357
|
+
if (!/^\d+$/.test(field)) {
|
|
24358
|
+
return null;
|
|
24359
|
+
}
|
|
24360
|
+
const value = Number(field);
|
|
24361
|
+
if (!Number.isInteger(value) || value < min || value > max) {
|
|
24362
|
+
return null;
|
|
24363
|
+
}
|
|
24364
|
+
return value;
|
|
24365
|
+
}
|
|
24366
|
+
function parseStarStep(field) {
|
|
24367
|
+
if (field === '*') {
|
|
24368
|
+
return 1;
|
|
24369
|
+
}
|
|
24370
|
+
const match = /^\*\/(\d+)$/.exec(field);
|
|
24371
|
+
if (!match) {
|
|
24372
|
+
return null;
|
|
24373
|
+
}
|
|
24374
|
+
const interval = Number(match[1]);
|
|
24375
|
+
if (!Number.isInteger(interval) || interval < 1 || interval > 23) {
|
|
24376
|
+
return null;
|
|
24377
|
+
}
|
|
24378
|
+
return interval;
|
|
24379
|
+
}
|
|
24380
|
+
function parseWeekdays(field) {
|
|
24381
|
+
if (field === '*') {
|
|
24382
|
+
return null;
|
|
24383
|
+
}
|
|
24384
|
+
const values = new Set();
|
|
24385
|
+
for (const part of field.split(',')) {
|
|
24386
|
+
if (part.includes('/')) {
|
|
24387
|
+
return null;
|
|
24388
|
+
}
|
|
24389
|
+
if (part.includes('-')) {
|
|
24390
|
+
const [fromRaw, toRaw] = part.split('-');
|
|
24391
|
+
const from = normalizeWeekday(Number(fromRaw));
|
|
24392
|
+
const to = normalizeWeekday(Number(toRaw));
|
|
24393
|
+
if (from == null || to == null || from > to) {
|
|
24394
|
+
return null;
|
|
24395
|
+
}
|
|
24396
|
+
for (let day = from; day <= to; day += 1) {
|
|
24397
|
+
values.add(day);
|
|
24398
|
+
}
|
|
24399
|
+
continue;
|
|
24400
|
+
}
|
|
24401
|
+
const day = normalizeWeekday(Number(part));
|
|
24402
|
+
if (day == null) {
|
|
24403
|
+
return null;
|
|
24404
|
+
}
|
|
24405
|
+
values.add(day);
|
|
24406
|
+
}
|
|
24407
|
+
return values.size ? [...values].sort((left, right) => left - right) : null;
|
|
24408
|
+
}
|
|
24409
|
+
function normalizeWeekday(value) {
|
|
24410
|
+
if (!Number.isInteger(value) || value < 0 || value > 7) {
|
|
24411
|
+
return null;
|
|
24412
|
+
}
|
|
24413
|
+
return value === 7 ? 0 : value;
|
|
24414
|
+
}
|
|
24415
|
+
function normalizeWeekdays(weekdays) {
|
|
24416
|
+
const values = new Set();
|
|
24417
|
+
for (const weekday of weekdays) {
|
|
24418
|
+
const day = normalizeWeekday(weekday);
|
|
24419
|
+
if (day != null) {
|
|
24420
|
+
values.add(day);
|
|
24421
|
+
}
|
|
24422
|
+
}
|
|
24423
|
+
return [...values].sort((left, right) => left - right);
|
|
24424
|
+
}
|
|
24425
|
+
function formatWeekdays(weekdays) {
|
|
24426
|
+
const days = normalizeWeekdays(weekdays);
|
|
24427
|
+
if (days.length === 0) {
|
|
24428
|
+
return '1';
|
|
24429
|
+
}
|
|
24430
|
+
const isContiguous = days.every((day, index) => index === 0 || day === days[index - 1] + 1);
|
|
24431
|
+
if (isContiguous && days.length > 2) {
|
|
24432
|
+
return `${days[0]}-${days[days.length - 1]}`;
|
|
24433
|
+
}
|
|
24434
|
+
return days.join(',');
|
|
24435
|
+
}
|
|
24436
|
+
function resolveLocaleWeekStartsOn(startsOn) {
|
|
24437
|
+
const start = Number(startsOn);
|
|
24438
|
+
return Number.isInteger(start) && start >= 0 && start <= 6 ? start : 0;
|
|
24439
|
+
}
|
|
24440
|
+
function orderWeekdaysFromStart(startsOn) {
|
|
24441
|
+
const origin = resolveLocaleWeekStartsOn(startsOn);
|
|
24442
|
+
return ALL_WEEKDAYS.map((_, offset) => (origin + offset) % 7);
|
|
24443
|
+
}
|
|
24444
|
+
function clampInt(value, min, max) {
|
|
24445
|
+
if (!Number.isFinite(value)) {
|
|
24446
|
+
return min;
|
|
24447
|
+
}
|
|
24448
|
+
return Math.min(max, Math.max(min, Math.trunc(value)));
|
|
24449
|
+
}
|
|
24450
|
+
//#endregion
|
|
24451
|
+
|
|
24452
|
+
//#region ----- Constants -----
|
|
24453
|
+
const I18N_PREFIX = '@platform-layout-widgets:widgets.cron-job';
|
|
24454
|
+
const WEEKDAYS = [1, 2, 3, 4, 5];
|
|
24455
|
+
const WEEKEND = [0, 6];
|
|
24456
|
+
//#endregion
|
|
24457
|
+
//#region ----- Service -----
|
|
24458
|
+
class AXPCronExpressionDisplayService {
|
|
24459
|
+
constructor() {
|
|
24460
|
+
//#region ----- Services & Dependencies -----
|
|
24461
|
+
this.translation = inject(AXTranslationService);
|
|
24462
|
+
this.formatService = inject(AXFormatService);
|
|
24463
|
+
this.settingsService = inject(AXPSettingsService);
|
|
24464
|
+
this.localeService = inject(AXLocaleService);
|
|
24465
|
+
}
|
|
24466
|
+
//#endregion
|
|
24467
|
+
//#region ----- Public API -----
|
|
24468
|
+
async describe(value) {
|
|
24469
|
+
const model = describeCronExpression(value);
|
|
24470
|
+
switch (model.kind) {
|
|
24471
|
+
case 'empty':
|
|
24472
|
+
return (await this.translation.translateAsync(`${I18N_PREFIX}.summary.empty`)) ?? '';
|
|
24473
|
+
case 'invalid':
|
|
24474
|
+
return (await this.translation.translateAsync(`${I18N_PREFIX}.summary.invalid`)) ?? model.raw;
|
|
24475
|
+
case 'hourly':
|
|
24476
|
+
return this.describeHourly(model.interval, model.minute);
|
|
24477
|
+
case 'daily':
|
|
24478
|
+
return this.translate(`${I18N_PREFIX}.summary.daily`, {
|
|
24479
|
+
time: await this.formatTime(model.hour, model.minute),
|
|
24480
|
+
});
|
|
24481
|
+
case 'weekly':
|
|
24482
|
+
return this.describeWeekly(model.weekdays, model.hour, model.minute);
|
|
24483
|
+
case 'monthly':
|
|
24484
|
+
return this.translate(`${I18N_PREFIX}.summary.monthly`, {
|
|
24485
|
+
day: String(model.monthDay),
|
|
24486
|
+
time: await this.formatTime(model.hour, model.minute),
|
|
24487
|
+
});
|
|
24488
|
+
case 'custom':
|
|
24489
|
+
return model.raw;
|
|
24490
|
+
default:
|
|
24491
|
+
return '';
|
|
24492
|
+
}
|
|
24493
|
+
}
|
|
24494
|
+
//#endregion
|
|
24495
|
+
//#region ----- Private helpers -----
|
|
24496
|
+
async describeHourly(interval, minute) {
|
|
24497
|
+
if (interval === 1 && minute === 0) {
|
|
24498
|
+
return this.translate(`${I18N_PREFIX}.summary.every-hour`);
|
|
24499
|
+
}
|
|
24500
|
+
if (interval === 1) {
|
|
24501
|
+
return this.translate(`${I18N_PREFIX}.summary.every-hour-at-minute`, { minute: String(minute) });
|
|
24502
|
+
}
|
|
24503
|
+
if (minute === 0) {
|
|
24504
|
+
return this.translate(`${I18N_PREFIX}.summary.every-n-hours`, { n: String(interval) });
|
|
24505
|
+
}
|
|
24506
|
+
return this.translate(`${I18N_PREFIX}.summary.every-n-hours-at-minute`, {
|
|
24507
|
+
n: String(interval),
|
|
24508
|
+
minute: String(minute),
|
|
24509
|
+
});
|
|
24510
|
+
}
|
|
24511
|
+
async describeWeekly(weekdays, hour, minute) {
|
|
24512
|
+
const time = await this.formatTime(hour, minute);
|
|
24513
|
+
if (sameDays(weekdays, WEEKDAYS)) {
|
|
24514
|
+
return this.translate(`${I18N_PREFIX}.summary.weekdays`, { time });
|
|
24515
|
+
}
|
|
24516
|
+
if (sameDays(weekdays, WEEKEND)) {
|
|
24517
|
+
return this.translate(`${I18N_PREFIX}.summary.weekend`, { time });
|
|
24518
|
+
}
|
|
24519
|
+
const selected = new Set(weekdays);
|
|
24520
|
+
const dayNames = await Promise.all(orderWeekdaysFromStart(this.localeService.activeProfile()?.calendar?.week?.startsOn)
|
|
24521
|
+
.filter((day) => selected.has(day))
|
|
24522
|
+
.map((day) => this.translate(`${I18N_PREFIX}.weekdays.${day}`)));
|
|
24523
|
+
return this.translate(`${I18N_PREFIX}.summary.weekly`, {
|
|
24524
|
+
days: dayNames.filter(Boolean).join(', '),
|
|
24525
|
+
time,
|
|
24526
|
+
});
|
|
24527
|
+
}
|
|
24528
|
+
async formatTime(hour, minute) {
|
|
24529
|
+
const format = await this.settingsService.get(AXPRegionalSetting.ShortTime);
|
|
24530
|
+
return this.formatService.format(new Date(2000, 0, 1, hour, minute, 0), 'time', { format });
|
|
24531
|
+
}
|
|
24532
|
+
async translate(key, params) {
|
|
24533
|
+
return (await this.translation.translateAsync(key, params ? { params } : undefined)) ?? '';
|
|
24534
|
+
}
|
|
24535
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCronExpressionDisplayService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
24536
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCronExpressionDisplayService, providedIn: 'root' }); }
|
|
24537
|
+
}
|
|
24538
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCronExpressionDisplayService, decorators: [{
|
|
24539
|
+
type: Injectable,
|
|
24540
|
+
args: [{ providedIn: 'root' }]
|
|
24541
|
+
}] });
|
|
24542
|
+
//#endregion
|
|
24543
|
+
function sameDays(left, right) {
|
|
24544
|
+
if (left.length !== right.length) {
|
|
24545
|
+
return false;
|
|
24546
|
+
}
|
|
24547
|
+
return left.every((day, index) => day === right[index]);
|
|
24548
|
+
}
|
|
24549
|
+
|
|
24550
|
+
//#region ----- Types -----
|
|
24551
|
+
const AXP_CRON_UI_PRESETS = ['hourly', 'daily', 'weekly', 'monthly'];
|
|
24552
|
+
const AXP_CRON_PRESETS = [...AXP_CRON_UI_PRESETS, 'custom'];
|
|
24553
|
+
//#endregion
|
|
24554
|
+
|
|
24555
|
+
//#endregion
|
|
24556
|
+
//#region ----- Constants -----
|
|
24557
|
+
const I18N = '@platform-layout-widgets:widgets.cron-job';
|
|
24558
|
+
const HOUR_ITEMS = Array.from({ length: 24 }, (_, hour) => ({
|
|
24559
|
+
id: String(hour),
|
|
24560
|
+
text: String(hour).padStart(2, '0'),
|
|
24561
|
+
value: String(hour),
|
|
24562
|
+
}));
|
|
24563
|
+
const MINUTE_ITEMS = Array.from({ length: 60 }, (_, minute) => ({
|
|
24564
|
+
id: String(minute),
|
|
24565
|
+
text: String(minute).padStart(2, '0'),
|
|
24566
|
+
value: String(minute),
|
|
24567
|
+
}));
|
|
24568
|
+
const MONTH_DAY_ITEMS = Array.from({ length: 31 }, (_, index) => {
|
|
24569
|
+
const day = String(index + 1);
|
|
24570
|
+
return { id: day, text: day, value: day };
|
|
24571
|
+
});
|
|
24572
|
+
//#endregion
|
|
24573
|
+
//#region ----- Component -----
|
|
24574
|
+
class AXPCronExpressionEditorComponent {
|
|
24575
|
+
//#endregion
|
|
24576
|
+
//#region ----- Lifecycle -----
|
|
24577
|
+
constructor() {
|
|
24578
|
+
//#region ----- Services & Dependencies -----
|
|
24579
|
+
this.translation = inject(AXTranslationService);
|
|
24580
|
+
this.display = inject(AXPCronExpressionDisplayService);
|
|
24581
|
+
this.localeService = inject(AXLocaleService);
|
|
24582
|
+
this.destroyRef = inject(DestroyRef);
|
|
24583
|
+
//#endregion
|
|
24584
|
+
//#region ----- Inputs & Outputs -----
|
|
24585
|
+
this.value = input(null, /* @ts-ignore */
|
|
24586
|
+
...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
24587
|
+
this.disabled = input(false, /* @ts-ignore */
|
|
24588
|
+
...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
24589
|
+
this.valueChange = output();
|
|
24590
|
+
//#endregion
|
|
24591
|
+
//#region ----- State Signals -----
|
|
24592
|
+
this.i18n = I18N;
|
|
24593
|
+
this.hourItems = HOUR_ITEMS;
|
|
24594
|
+
this.minuteItems = MINUTE_ITEMS;
|
|
24595
|
+
this.monthDayItems = MONTH_DAY_ITEMS;
|
|
24596
|
+
this.model = signal({ ...AXP_CRON_DEFAULT_MODEL }, /* @ts-ignore */
|
|
24597
|
+
...(ngDevMode ? [{ debugName: "model" }] : /* istanbul ignore next */ []));
|
|
24598
|
+
this.summary = signal('', /* @ts-ignore */
|
|
24599
|
+
...(ngDevMode ? [{ debugName: "summary" }] : /* istanbul ignore next */ []));
|
|
24600
|
+
this.presetItems = signal([], /* @ts-ignore */
|
|
24601
|
+
...(ngDevMode ? [{ debugName: "presetItems" }] : /* istanbul ignore next */ []));
|
|
24602
|
+
this.weekdayItems = signal([], /* @ts-ignore */
|
|
24603
|
+
...(ngDevMode ? [{ debugName: "weekdayItems" }] : /* istanbul ignore next */ []));
|
|
24604
|
+
//#endregion
|
|
24605
|
+
//#region ----- Computed Properties -----
|
|
24606
|
+
this.preset = computed(() => this.model().preset, /* @ts-ignore */
|
|
24607
|
+
...(ngDevMode ? [{ debugName: "preset" }] : /* istanbul ignore next */ []));
|
|
24608
|
+
this.#syncFromValue = effect(() => {
|
|
24609
|
+
const incoming = normalizeCronExpression(this.value());
|
|
24610
|
+
const current = untracked(() => this.model().raw);
|
|
24611
|
+
if (incoming === current) {
|
|
24612
|
+
return;
|
|
24734
24613
|
}
|
|
24735
|
-
|
|
24736
|
-
this.
|
|
24614
|
+
untracked(() => {
|
|
24615
|
+
this.model.set(incoming ? parseCronExpression(incoming) : { ...AXP_CRON_DEFAULT_MODEL, raw: '' });
|
|
24616
|
+
void this.refreshSummary();
|
|
24617
|
+
});
|
|
24737
24618
|
}, /* @ts-ignore */
|
|
24738
|
-
...(ngDevMode ? [{ debugName: "#
|
|
24619
|
+
...(ngDevMode ? [{ debugName: "#syncFromValue" }] : /* istanbul ignore next */ []));
|
|
24620
|
+
void this.loadLabels();
|
|
24621
|
+
merge(this.translation.langChanges$, this.localeService.profileChanged$)
|
|
24622
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
24623
|
+
.subscribe(() => {
|
|
24624
|
+
void this.loadLabels();
|
|
24625
|
+
void this.refreshSummary();
|
|
24626
|
+
});
|
|
24739
24627
|
}
|
|
24740
|
-
|
|
24741
|
-
|
|
24628
|
+
#syncFromValue;
|
|
24629
|
+
//#endregion
|
|
24630
|
+
//#region ----- Event Handlers -----
|
|
24631
|
+
onPresetChange(event) {
|
|
24632
|
+
if (!event.isUserInteraction) {
|
|
24633
|
+
return;
|
|
24634
|
+
}
|
|
24635
|
+
const preset = event.value;
|
|
24636
|
+
if (!preset || preset === this.model().preset) {
|
|
24637
|
+
return;
|
|
24638
|
+
}
|
|
24639
|
+
this.commit(applyCronPreset(this.model(), preset));
|
|
24742
24640
|
}
|
|
24743
|
-
|
|
24744
|
-
|
|
24745
|
-
|
|
24746
|
-
|
|
24747
|
-
|
|
24748
|
-
|
|
24749
|
-
|
|
24750
|
-
|
|
24751
|
-
|
|
24641
|
+
onHourChange(event) {
|
|
24642
|
+
if (!event.isUserInteraction) {
|
|
24643
|
+
return;
|
|
24644
|
+
}
|
|
24645
|
+
this.patch({ hour: coerceSelectNumber(event.value, this.model().hour) });
|
|
24646
|
+
}
|
|
24647
|
+
onMinuteChange(event) {
|
|
24648
|
+
if (!event.isUserInteraction) {
|
|
24649
|
+
return;
|
|
24650
|
+
}
|
|
24651
|
+
this.patch({ minute: coerceSelectNumber(event.value, this.model().minute) });
|
|
24652
|
+
}
|
|
24653
|
+
onHourIntervalChange(event) {
|
|
24654
|
+
if (!event.isUserInteraction) {
|
|
24655
|
+
return;
|
|
24656
|
+
}
|
|
24657
|
+
const interval = Number(event.value);
|
|
24658
|
+
this.patch({ hourInterval: Number.isFinite(interval) ? interval : 1 });
|
|
24659
|
+
}
|
|
24660
|
+
onMonthDayChange(event) {
|
|
24661
|
+
if (!event.isUserInteraction) {
|
|
24662
|
+
return;
|
|
24663
|
+
}
|
|
24664
|
+
this.patch({ monthDay: coerceSelectNumber(event.value, this.model().monthDay) });
|
|
24665
|
+
}
|
|
24666
|
+
onWeekdaysChange(event) {
|
|
24667
|
+
if (!event.isUserInteraction) {
|
|
24668
|
+
return;
|
|
24669
|
+
}
|
|
24670
|
+
const selected = normalizeWeekdaySelection(event.value);
|
|
24671
|
+
this.patch({ weekdays: selected.length ? selected : this.model().weekdays });
|
|
24672
|
+
}
|
|
24673
|
+
//#endregion
|
|
24674
|
+
//#region ----- Private helpers -----
|
|
24675
|
+
patch(partial) {
|
|
24676
|
+
const next = { ...this.model(), ...partial };
|
|
24677
|
+
this.commit({ ...next, raw: buildCronExpression(next) });
|
|
24678
|
+
}
|
|
24679
|
+
commit(next) {
|
|
24680
|
+
this.model.set(next);
|
|
24681
|
+
this.valueChange.emit(next.raw);
|
|
24682
|
+
void this.refreshSummary();
|
|
24683
|
+
}
|
|
24684
|
+
async refreshSummary() {
|
|
24685
|
+
this.summary.set(await this.display.describe(this.model().raw));
|
|
24686
|
+
}
|
|
24687
|
+
async loadLabels() {
|
|
24688
|
+
const presets = await Promise.all(AXP_CRON_UI_PRESETS.map(async (id) => ({
|
|
24689
|
+
id,
|
|
24690
|
+
text: (await this.translation.translateAsync(`${I18N}.presets.${id}`)) ?? id,
|
|
24691
|
+
})));
|
|
24692
|
+
const weekdays = await Promise.all(orderWeekdaysFromStart(this.localeService.activeProfile()?.calendar?.week?.startsOn).map(async (id) => ({
|
|
24693
|
+
id,
|
|
24694
|
+
text: (await this.translation.translateAsync(`${I18N}.weekdays-short.${id}`)) ?? String(id),
|
|
24695
|
+
})));
|
|
24696
|
+
this.presetItems.set(presets);
|
|
24697
|
+
this.weekdayItems.set(weekdays);
|
|
24698
|
+
}
|
|
24699
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCronExpressionEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24700
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPCronExpressionEditorComponent, isStandalone: true, selector: "axp-cron-expression-editor", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, host: { classAttribute: "block w-full" }, ngImport: i0, template: "<div class=\"flex flex-col gap-4\">\n <!-- ----- Recurrence presets ----- -->\n <ax-selection-list\n [items]=\"presetItems()\"\n [ngModel]=\"preset()\"\n (onValueChanged)=\"onPresetChange($event)\"\n direction=\"horizontal\"\n [multiple]=\"false\"\n [showControl]=\"true\"\n valueField=\"id\"\n textField=\"text\"\n [disabled]=\"disabled()\"\n ></ax-selection-list>\n\n @if (preset() === 'hourly') {\n <!-- ----- Hourly interval and minute ----- -->\n <div class=\"flex flex-wrap items-end gap-3\">\n <div class=\"flex flex-col gap-1 w-28\">\n <ax-label class=\"text-sm\">{{ i18n + '.fields.every' | translate | async }}</ax-label>\n <ax-number-box\n [ngModel]=\"model().hourInterval\"\n (onValueChanged)=\"onHourIntervalChange($event)\"\n [minValue]=\"1\"\n [maxValue]=\"23\"\n [disabled]=\"disabled()\"\n [showSpinButtons]=\"true\"\n ></ax-number-box>\n </div>\n <div class=\"flex flex-col gap-1\">\n <ax-label class=\"text-sm invisible select-none\" aria-hidden=\"true\"> </ax-label>\n <ax-label class=\"flex h-9 items-center text-sm\">{{ i18n + '.fields.hours' | translate | async }}</ax-label>\n </div>\n <div class=\"flex flex-col gap-1 w-24\">\n <ax-label class=\"text-sm\">{{ i18n + '.fields.at-minute' | translate | async }}</ax-label>\n <ax-combo-box\n [items]=\"minuteItems\"\n [value]=\"'' + model().minute\"\n [searchable]=\"false\"\n [disabled]=\"disabled()\"\n (onValueChanged)=\"onMinuteChange($event)\"\n ></ax-combo-box>\n </div>\n </div>\n }\n <!-- ----- Daily time ----- -->\n @else if (preset() === 'daily') {\n <div class=\"flex flex-wrap items-end gap-3\">\n <div class=\"flex flex-col gap-1\">\n <ax-label class=\"text-sm invisible select-none\" aria-hidden=\"true\"> </ax-label>\n <ax-label class=\"flex h-9 items-center text-sm\">{{ i18n + '.fields.at' | translate | async }}</ax-label>\n </div>\n <div class=\"flex flex-col gap-1 w-24\">\n <ax-label class=\"text-sm\">{{ i18n + '.fields.hour' | translate | async }}</ax-label>\n <ax-combo-box\n [items]=\"hourItems\"\n [value]=\"'' + model().hour\"\n [searchable]=\"false\"\n [disabled]=\"disabled()\"\n (onValueChanged)=\"onHourChange($event)\"\n ></ax-combo-box>\n </div>\n <div class=\"flex flex-col gap-1\">\n <ax-label class=\"text-sm invisible select-none\" aria-hidden=\"true\"> </ax-label>\n <ax-label class=\"flex h-9 items-center text-sm\">:</ax-label>\n </div>\n <div class=\"flex flex-col gap-1 w-24\">\n <ax-label class=\"text-sm\">{{ i18n + '.fields.minute' | translate | async }}</ax-label>\n <ax-combo-box\n [items]=\"minuteItems\"\n [value]=\"'' + model().minute\"\n [searchable]=\"false\"\n [disabled]=\"disabled()\"\n (onValueChanged)=\"onMinuteChange($event)\"\n ></ax-combo-box>\n </div>\n </div>\n }\n <!-- ----- Weekly days and time ----- -->\n @else if (preset() === 'weekly') {\n <div class=\"flex flex-col gap-3\">\n <ax-selection-list\n [items]=\"weekdayItems()\"\n [ngModel]=\"model().weekdays\"\n (onValueChanged)=\"onWeekdaysChange($event)\"\n direction=\"horizontal\"\n [multiple]=\"true\"\n [showControl]=\"true\"\n valueField=\"id\"\n textField=\"text\"\n [disabled]=\"disabled()\"\n ></ax-selection-list>\n <div class=\"flex flex-wrap items-end gap-3\">\n <div class=\"flex flex-col gap-1\">\n <ax-label class=\"text-sm invisible select-none\" aria-hidden=\"true\"> </ax-label>\n <ax-label class=\"flex h-9 items-center text-sm\">{{ i18n + '.fields.at' | translate | async }}</ax-label>\n </div>\n <div class=\"flex flex-col gap-1 w-24\">\n <ax-label class=\"text-sm\">{{ i18n + '.fields.hour' | translate | async }}</ax-label>\n <ax-combo-box\n [items]=\"hourItems\"\n [value]=\"'' + model().hour\"\n [searchable]=\"false\"\n [disabled]=\"disabled()\"\n (onValueChanged)=\"onHourChange($event)\"\n ></ax-combo-box>\n </div>\n <div class=\"flex flex-col gap-1\">\n <ax-label class=\"text-sm invisible select-none\" aria-hidden=\"true\"> </ax-label>\n <ax-label class=\"flex h-9 items-center text-sm\">:</ax-label>\n </div>\n <div class=\"flex flex-col gap-1 w-24\">\n <ax-label class=\"text-sm\">{{ i18n + '.fields.minute' | translate | async }}</ax-label>\n <ax-combo-box\n [items]=\"minuteItems\"\n [value]=\"'' + model().minute\"\n [searchable]=\"false\"\n [disabled]=\"disabled()\"\n (onValueChanged)=\"onMinuteChange($event)\"\n ></ax-combo-box>\n </div>\n </div>\n </div>\n }\n <!-- ----- Monthly day and time ----- -->\n @else if (preset() === 'monthly') {\n <div class=\"flex flex-wrap items-end gap-3\">\n <div class=\"flex flex-col gap-1\">\n <ax-label class=\"text-sm invisible select-none\" aria-hidden=\"true\"> </ax-label>\n <ax-label class=\"flex h-9 items-center text-sm\">{{ i18n + '.fields.on-day' | translate | async }}</ax-label>\n </div>\n <div class=\"flex flex-col gap-1 w-24\">\n <ax-label class=\"text-sm\">{{ i18n + '.fields.day-of-month' | translate | async }}</ax-label>\n <ax-combo-box\n [items]=\"monthDayItems\"\n [value]=\"'' + model().monthDay\"\n [searchable]=\"false\"\n [disabled]=\"disabled()\"\n (onValueChanged)=\"onMonthDayChange($event)\"\n ></ax-combo-box>\n </div>\n <div class=\"flex flex-col gap-1\">\n <ax-label class=\"text-sm invisible select-none\" aria-hidden=\"true\"> </ax-label>\n <ax-label class=\"flex h-9 items-center text-sm\">{{ i18n + '.fields.at' | translate | async }}</ax-label>\n </div>\n <div class=\"flex flex-col gap-1 w-24\">\n <ax-label class=\"text-sm\">{{ i18n + '.fields.hour' | translate | async }}</ax-label>\n <ax-combo-box\n [items]=\"hourItems\"\n [value]=\"'' + model().hour\"\n [searchable]=\"false\"\n [disabled]=\"disabled()\"\n (onValueChanged)=\"onHourChange($event)\"\n ></ax-combo-box>\n </div>\n <div class=\"flex flex-col gap-1\">\n <ax-label class=\"text-sm invisible select-none\" aria-hidden=\"true\"> </ax-label>\n <ax-label class=\"flex h-9 items-center text-sm\">:</ax-label>\n </div>\n <div class=\"flex flex-col gap-1 w-24\">\n <ax-label class=\"text-sm\">{{ i18n + '.fields.minute' | translate | async }}</ax-label>\n <ax-combo-box\n [items]=\"minuteItems\"\n [value]=\"'' + model().minute\"\n [searchable]=\"false\"\n [disabled]=\"disabled()\"\n (onValueChanged)=\"onMinuteChange($event)\"\n ></ax-combo-box>\n </div>\n </div>\n }\n\n @if (summary()) {\n <!-- ----- Human-readable schedule summary ----- -->\n <ax-badge size=\"sm\" look=\"twotone\" color=\"primary\" [text]=\"summary()\"></ax-badge>\n }\n</div>\n", dependencies: [{ kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i1$3.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "component", type: AXComboBoxComponent, selector: "ax-combo-box", inputs: ["name", "items", "searchable", "multiple", "adaptivityEnabled", "caption", "alternate", "placeholder", "searchPlaceholder", "highlightSearch", "emptyTemplate", "itemTemplate", "selectedTemplate", "disabled", "readonly", "look", "value"], outputs: ["lookChange", "valueChange", "onValueChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i2.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXNumberBoxModule }, { kind: "component", type: i1$8.AXNumberBoxComponent, selector: "ax-number-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "minValue", "maxValue", "showSpinButtons", "thousandsSeparator", "decimals", "changeOnScroll", "step"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "thousandsSeparatorChange"] }, { kind: "ngmodule", type: AXSelectionListModule }, { kind: "component", type: i2$4.AXSelectionListComponent, selector: "ax-selection-list", inputs: ["id", "name", "disabled", "readonly", "tabIndex", "value", "valueField", "textField", "disabledField", "readonlyField", "multiple", "direction", "customTemplate", "showControl", "items", "look"], outputs: ["onValueChanged", "onBlur", "onFocus"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i1$5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24752
24701
|
}
|
|
24753
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type:
|
|
24702
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCronExpressionEditorComponent, decorators: [{
|
|
24754
24703
|
type: Component,
|
|
24755
|
-
args: [{
|
|
24756
|
-
|
|
24757
|
-
|
|
24758
|
-
|
|
24759
|
-
|
|
24760
|
-
|
|
24761
|
-
|
|
24762
|
-
|
|
24763
|
-
|
|
24764
|
-
|
|
24765
|
-
|
|
24766
|
-
|
|
24767
|
-
|
|
24768
|
-
|
|
24769
|
-
|
|
24770
|
-
|
|
24771
|
-
|
|
24772
|
-
}
|
|
24773
|
-
|
|
24774
|
-
|
|
24775
|
-
|
|
24776
|
-
|
|
24777
|
-
|
|
24778
|
-
|
|
24779
|
-
|
|
24780
|
-
|
|
24781
|
-
|
|
24782
|
-
|
|
24783
|
-
},
|
|
24784
|
-
},
|
|
24785
|
-
};
|
|
24704
|
+
args: [{ selector: 'axp-cron-expression-editor', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'block w-full' }, imports: [
|
|
24705
|
+
AsyncPipe,
|
|
24706
|
+
AXBadgeModule,
|
|
24707
|
+
AXComboBoxComponent,
|
|
24708
|
+
AXFormModule,
|
|
24709
|
+
AXLabelModule,
|
|
24710
|
+
AXNumberBoxModule,
|
|
24711
|
+
AXSelectionListModule,
|
|
24712
|
+
AXTranslationModule,
|
|
24713
|
+
FormsModule,
|
|
24714
|
+
], template: "<div class=\"flex flex-col gap-4\">\n <!-- ----- Recurrence presets ----- -->\n <ax-selection-list\n [items]=\"presetItems()\"\n [ngModel]=\"preset()\"\n (onValueChanged)=\"onPresetChange($event)\"\n direction=\"horizontal\"\n [multiple]=\"false\"\n [showControl]=\"true\"\n valueField=\"id\"\n textField=\"text\"\n [disabled]=\"disabled()\"\n ></ax-selection-list>\n\n @if (preset() === 'hourly') {\n <!-- ----- Hourly interval and minute ----- -->\n <div class=\"flex flex-wrap items-end gap-3\">\n <div class=\"flex flex-col gap-1 w-28\">\n <ax-label class=\"text-sm\">{{ i18n + '.fields.every' | translate | async }}</ax-label>\n <ax-number-box\n [ngModel]=\"model().hourInterval\"\n (onValueChanged)=\"onHourIntervalChange($event)\"\n [minValue]=\"1\"\n [maxValue]=\"23\"\n [disabled]=\"disabled()\"\n [showSpinButtons]=\"true\"\n ></ax-number-box>\n </div>\n <div class=\"flex flex-col gap-1\">\n <ax-label class=\"text-sm invisible select-none\" aria-hidden=\"true\"> </ax-label>\n <ax-label class=\"flex h-9 items-center text-sm\">{{ i18n + '.fields.hours' | translate | async }}</ax-label>\n </div>\n <div class=\"flex flex-col gap-1 w-24\">\n <ax-label class=\"text-sm\">{{ i18n + '.fields.at-minute' | translate | async }}</ax-label>\n <ax-combo-box\n [items]=\"minuteItems\"\n [value]=\"'' + model().minute\"\n [searchable]=\"false\"\n [disabled]=\"disabled()\"\n (onValueChanged)=\"onMinuteChange($event)\"\n ></ax-combo-box>\n </div>\n </div>\n }\n <!-- ----- Daily time ----- -->\n @else if (preset() === 'daily') {\n <div class=\"flex flex-wrap items-end gap-3\">\n <div class=\"flex flex-col gap-1\">\n <ax-label class=\"text-sm invisible select-none\" aria-hidden=\"true\"> </ax-label>\n <ax-label class=\"flex h-9 items-center text-sm\">{{ i18n + '.fields.at' | translate | async }}</ax-label>\n </div>\n <div class=\"flex flex-col gap-1 w-24\">\n <ax-label class=\"text-sm\">{{ i18n + '.fields.hour' | translate | async }}</ax-label>\n <ax-combo-box\n [items]=\"hourItems\"\n [value]=\"'' + model().hour\"\n [searchable]=\"false\"\n [disabled]=\"disabled()\"\n (onValueChanged)=\"onHourChange($event)\"\n ></ax-combo-box>\n </div>\n <div class=\"flex flex-col gap-1\">\n <ax-label class=\"text-sm invisible select-none\" aria-hidden=\"true\"> </ax-label>\n <ax-label class=\"flex h-9 items-center text-sm\">:</ax-label>\n </div>\n <div class=\"flex flex-col gap-1 w-24\">\n <ax-label class=\"text-sm\">{{ i18n + '.fields.minute' | translate | async }}</ax-label>\n <ax-combo-box\n [items]=\"minuteItems\"\n [value]=\"'' + model().minute\"\n [searchable]=\"false\"\n [disabled]=\"disabled()\"\n (onValueChanged)=\"onMinuteChange($event)\"\n ></ax-combo-box>\n </div>\n </div>\n }\n <!-- ----- Weekly days and time ----- -->\n @else if (preset() === 'weekly') {\n <div class=\"flex flex-col gap-3\">\n <ax-selection-list\n [items]=\"weekdayItems()\"\n [ngModel]=\"model().weekdays\"\n (onValueChanged)=\"onWeekdaysChange($event)\"\n direction=\"horizontal\"\n [multiple]=\"true\"\n [showControl]=\"true\"\n valueField=\"id\"\n textField=\"text\"\n [disabled]=\"disabled()\"\n ></ax-selection-list>\n <div class=\"flex flex-wrap items-end gap-3\">\n <div class=\"flex flex-col gap-1\">\n <ax-label class=\"text-sm invisible select-none\" aria-hidden=\"true\"> </ax-label>\n <ax-label class=\"flex h-9 items-center text-sm\">{{ i18n + '.fields.at' | translate | async }}</ax-label>\n </div>\n <div class=\"flex flex-col gap-1 w-24\">\n <ax-label class=\"text-sm\">{{ i18n + '.fields.hour' | translate | async }}</ax-label>\n <ax-combo-box\n [items]=\"hourItems\"\n [value]=\"'' + model().hour\"\n [searchable]=\"false\"\n [disabled]=\"disabled()\"\n (onValueChanged)=\"onHourChange($event)\"\n ></ax-combo-box>\n </div>\n <div class=\"flex flex-col gap-1\">\n <ax-label class=\"text-sm invisible select-none\" aria-hidden=\"true\"> </ax-label>\n <ax-label class=\"flex h-9 items-center text-sm\">:</ax-label>\n </div>\n <div class=\"flex flex-col gap-1 w-24\">\n <ax-label class=\"text-sm\">{{ i18n + '.fields.minute' | translate | async }}</ax-label>\n <ax-combo-box\n [items]=\"minuteItems\"\n [value]=\"'' + model().minute\"\n [searchable]=\"false\"\n [disabled]=\"disabled()\"\n (onValueChanged)=\"onMinuteChange($event)\"\n ></ax-combo-box>\n </div>\n </div>\n </div>\n }\n <!-- ----- Monthly day and time ----- -->\n @else if (preset() === 'monthly') {\n <div class=\"flex flex-wrap items-end gap-3\">\n <div class=\"flex flex-col gap-1\">\n <ax-label class=\"text-sm invisible select-none\" aria-hidden=\"true\"> </ax-label>\n <ax-label class=\"flex h-9 items-center text-sm\">{{ i18n + '.fields.on-day' | translate | async }}</ax-label>\n </div>\n <div class=\"flex flex-col gap-1 w-24\">\n <ax-label class=\"text-sm\">{{ i18n + '.fields.day-of-month' | translate | async }}</ax-label>\n <ax-combo-box\n [items]=\"monthDayItems\"\n [value]=\"'' + model().monthDay\"\n [searchable]=\"false\"\n [disabled]=\"disabled()\"\n (onValueChanged)=\"onMonthDayChange($event)\"\n ></ax-combo-box>\n </div>\n <div class=\"flex flex-col gap-1\">\n <ax-label class=\"text-sm invisible select-none\" aria-hidden=\"true\"> </ax-label>\n <ax-label class=\"flex h-9 items-center text-sm\">{{ i18n + '.fields.at' | translate | async }}</ax-label>\n </div>\n <div class=\"flex flex-col gap-1 w-24\">\n <ax-label class=\"text-sm\">{{ i18n + '.fields.hour' | translate | async }}</ax-label>\n <ax-combo-box\n [items]=\"hourItems\"\n [value]=\"'' + model().hour\"\n [searchable]=\"false\"\n [disabled]=\"disabled()\"\n (onValueChanged)=\"onHourChange($event)\"\n ></ax-combo-box>\n </div>\n <div class=\"flex flex-col gap-1\">\n <ax-label class=\"text-sm invisible select-none\" aria-hidden=\"true\"> </ax-label>\n <ax-label class=\"flex h-9 items-center text-sm\">:</ax-label>\n </div>\n <div class=\"flex flex-col gap-1 w-24\">\n <ax-label class=\"text-sm\">{{ i18n + '.fields.minute' | translate | async }}</ax-label>\n <ax-combo-box\n [items]=\"minuteItems\"\n [value]=\"'' + model().minute\"\n [searchable]=\"false\"\n [disabled]=\"disabled()\"\n (onValueChanged)=\"onMinuteChange($event)\"\n ></ax-combo-box>\n </div>\n </div>\n }\n\n @if (summary()) {\n <!-- ----- Human-readable schedule summary ----- -->\n <ax-badge size=\"sm\" look=\"twotone\" color=\"primary\" [text]=\"summary()\"></ax-badge>\n }\n</div>\n" }]
|
|
24715
|
+
}], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
|
|
24716
|
+
//#endregion
|
|
24717
|
+
function coerceSelectNumber(value, fallback) {
|
|
24718
|
+
const scalar = Array.isArray(value) ? value[0] : value;
|
|
24719
|
+
if (scalar == null || scalar === '') {
|
|
24720
|
+
return fallback;
|
|
24721
|
+
}
|
|
24722
|
+
const parsed = Number(scalar);
|
|
24723
|
+
return Number.isFinite(parsed) ? parsed : fallback;
|
|
24724
|
+
}
|
|
24725
|
+
function normalizeWeekdaySelection(value) {
|
|
24726
|
+
const raw = Array.isArray(value) ? value : value == null ? [] : [value];
|
|
24727
|
+
const days = raw
|
|
24728
|
+
.map((day) => Number(day))
|
|
24729
|
+
.filter((day) => Number.isInteger(day) && day >= 0 && day <= 6);
|
|
24730
|
+
return [...new Set(days)].sort((left, right) => left - right);
|
|
24731
|
+
}
|
|
24786
24732
|
|
|
24733
|
+
//#region ----- Imports -----
|
|
24734
|
+
//#endregion
|
|
24735
|
+
//#region ----- Component -----
|
|
24787
24736
|
class AXPCronJobWidgetColumnComponent extends AXPColumnWidgetComponent {
|
|
24737
|
+
constructor() {
|
|
24738
|
+
super(...arguments);
|
|
24739
|
+
//#region ----- Services & Dependencies -----
|
|
24740
|
+
this.display = inject(AXPCronExpressionDisplayService);
|
|
24741
|
+
//#endregion
|
|
24742
|
+
//#region ----- State Signals -----
|
|
24743
|
+
this.summary = signal('', /* @ts-ignore */
|
|
24744
|
+
...(ngDevMode ? [{ debugName: "summary" }] : /* istanbul ignore next */ []));
|
|
24745
|
+
this.rawExpression = signal('', /* @ts-ignore */
|
|
24746
|
+
...(ngDevMode ? [{ debugName: "rawExpression" }] : /* istanbul ignore next */ []));
|
|
24747
|
+
//#endregion
|
|
24748
|
+
//#region ----- Lifecycle -----
|
|
24749
|
+
this.#describe = effect(() => {
|
|
24750
|
+
const raw = normalizeCronExpression(this.rawValue);
|
|
24751
|
+
this.rawExpression.set(raw);
|
|
24752
|
+
void this.refreshSummary(raw);
|
|
24753
|
+
}, /* @ts-ignore */
|
|
24754
|
+
...(ngDevMode ? [{ debugName: "#describe" }] : /* istanbul ignore next */ []));
|
|
24755
|
+
}
|
|
24756
|
+
//#endregion
|
|
24757
|
+
//#region ----- Lifecycle -----
|
|
24758
|
+
#describe;
|
|
24759
|
+
//#endregion
|
|
24760
|
+
//#region ----- Private helpers -----
|
|
24761
|
+
async refreshSummary(raw) {
|
|
24762
|
+
this.summary.set(raw ? await this.display.describe(raw) : '');
|
|
24763
|
+
}
|
|
24788
24764
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCronJobWidgetColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
24789
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
24765
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPCronJobWidgetColumnComponent, isStandalone: true, selector: "axp-cron-job-widget-column", inputs: { rawValue: "rawValue", rowData: "rowData" }, usesInheritance: true, ngImport: i0, template: `
|
|
24766
|
+
@if (summary()) {
|
|
24767
|
+
<!-- ----- Human-readable cron with raw tooltip ----- -->
|
|
24768
|
+
<span class="text-sm" [title]="rawExpression()">{{ summary() }}</span>
|
|
24769
|
+
}
|
|
24770
|
+
<!-- ----- Empty cron cell ----- -->
|
|
24771
|
+
@else {
|
|
24772
|
+
<span class="text-sm text-muted">---</span>
|
|
24773
|
+
}
|
|
24774
|
+
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24790
24775
|
}
|
|
24791
24776
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCronJobWidgetColumnComponent, decorators: [{
|
|
24792
24777
|
type: Component,
|
|
24793
24778
|
args: [{
|
|
24794
24779
|
selector: 'axp-cron-job-widget-column',
|
|
24795
|
-
template: `
|
|
24780
|
+
template: `
|
|
24781
|
+
@if (summary()) {
|
|
24782
|
+
<!-- ----- Human-readable cron with raw tooltip ----- -->
|
|
24783
|
+
<span class="text-sm" [title]="rawExpression()">{{ summary() }}</span>
|
|
24784
|
+
}
|
|
24785
|
+
<!-- ----- Empty cron cell ----- -->
|
|
24786
|
+
@else {
|
|
24787
|
+
<span class="text-sm text-muted">---</span>
|
|
24788
|
+
}
|
|
24789
|
+
`,
|
|
24796
24790
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
24797
24791
|
inputs: ['rawValue', 'rowData'],
|
|
24798
24792
|
}]
|
|
@@ -24803,49 +24797,44 @@ var cronJobWidgetColumn_component = /*#__PURE__*/Object.freeze({
|
|
|
24803
24797
|
AXPCronJobWidgetColumnComponent: AXPCronJobWidgetColumnComponent
|
|
24804
24798
|
});
|
|
24805
24799
|
|
|
24806
|
-
|
|
24807
|
-
|
|
24808
|
-
|
|
24809
|
-
this.expreesion = signal('* * * ? * * *', /* @ts-ignore */
|
|
24810
|
-
...(ngDevMode ? [{ debugName: "expreesion" }] : /* istanbul ignore next */ []));
|
|
24811
|
-
}
|
|
24812
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCronJobWidgetDesignerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
24813
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: AXPCronJobWidgetDesignerComponent, isStandalone: true, selector: "axp-cron-job-widget-designer", usesInheritance: true, ngImport: i0, template: `<ax-cron-job-container [ngModel]="expreesion()"> </ax-cron-job-container>`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXCronJobModule }, { kind: "component", type: i1$l.AXCronJobContainerComponent, selector: "ax-cron-job-container", outputs: ["onValueChanged"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24814
|
-
}
|
|
24815
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCronJobWidgetDesignerComponent, decorators: [{
|
|
24816
|
-
type: Component,
|
|
24817
|
-
args: [{
|
|
24818
|
-
selector: 'axp-cron-job-widget-designer',
|
|
24819
|
-
template: `<ax-cron-job-container [ngModel]="expreesion()"> </ax-cron-job-container>`,
|
|
24820
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
24821
|
-
imports: [AXCronJobModule, FormsModule],
|
|
24822
|
-
}]
|
|
24823
|
-
}] });
|
|
24824
|
-
|
|
24825
|
-
var cronJobWidgetDesigner_component = /*#__PURE__*/Object.freeze({
|
|
24826
|
-
__proto__: null,
|
|
24827
|
-
AXPCronJobWidgetDesignerComponent: AXPCronJobWidgetDesignerComponent
|
|
24828
|
-
});
|
|
24829
|
-
|
|
24800
|
+
//#region ----- Imports -----
|
|
24801
|
+
//#endregion
|
|
24802
|
+
//#region ----- Component -----
|
|
24830
24803
|
class AXPCronJobWidgetEditComponent extends AXPValueWidgetComponent {
|
|
24831
24804
|
constructor() {
|
|
24832
24805
|
super(...arguments);
|
|
24833
|
-
|
|
24834
|
-
|
|
24835
|
-
|
|
24836
|
-
|
|
24837
|
-
|
|
24806
|
+
//#region ----- Computed Properties -----
|
|
24807
|
+
this.boundValue = computed(() => {
|
|
24808
|
+
const value = this.getValue();
|
|
24809
|
+
return typeof value === 'string' ? value : null;
|
|
24810
|
+
}, /* @ts-ignore */
|
|
24811
|
+
...(ngDevMode ? [{ debugName: "boundValue" }] : /* istanbul ignore next */ []));
|
|
24812
|
+
this.disabled = computed(() => Boolean(this.options()['disabled']), /* @ts-ignore */
|
|
24813
|
+
...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
24838
24814
|
}
|
|
24839
24815
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCronJobWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
24840
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: AXPCronJobWidgetEditComponent, isStandalone: true, selector: "axp-cron-job-widget-edit",
|
|
24816
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: AXPCronJobWidgetEditComponent, isStandalone: true, selector: "axp-cron-job-widget-edit", host: { classAttribute: "block flex-1" }, usesInheritance: true, ngImport: i0, template: `
|
|
24817
|
+
<axp-cron-expression-editor
|
|
24818
|
+
[value]="boundValue()"
|
|
24819
|
+
[disabled]="disabled()"
|
|
24820
|
+
(valueChange)="setValue($event)"
|
|
24821
|
+
></axp-cron-expression-editor>
|
|
24822
|
+
`, isInline: true, dependencies: [{ kind: "component", type: AXPCronExpressionEditorComponent, selector: "axp-cron-expression-editor", inputs: ["value", "disabled"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24841
24823
|
}
|
|
24842
24824
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCronJobWidgetEditComponent, decorators: [{
|
|
24843
24825
|
type: Component,
|
|
24844
24826
|
args: [{
|
|
24845
24827
|
selector: 'axp-cron-job-widget-edit',
|
|
24846
|
-
template:
|
|
24828
|
+
template: `
|
|
24829
|
+
<axp-cron-expression-editor
|
|
24830
|
+
[value]="boundValue()"
|
|
24831
|
+
[disabled]="disabled()"
|
|
24832
|
+
(valueChange)="setValue($event)"
|
|
24833
|
+
></axp-cron-expression-editor>
|
|
24834
|
+
`,
|
|
24847
24835
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
24848
|
-
imports: [
|
|
24836
|
+
imports: [AXPCronExpressionEditorComponent],
|
|
24837
|
+
host: { class: 'block flex-1' },
|
|
24849
24838
|
}]
|
|
24850
24839
|
}] });
|
|
24851
24840
|
|
|
@@ -24854,21 +24843,78 @@ var cronJobWidgetEdit_component = /*#__PURE__*/Object.freeze({
|
|
|
24854
24843
|
AXPCronJobWidgetEditComponent: AXPCronJobWidgetEditComponent
|
|
24855
24844
|
});
|
|
24856
24845
|
|
|
24846
|
+
//#region ----- Imports -----
|
|
24847
|
+
//#endregion
|
|
24848
|
+
//#region ----- Component -----
|
|
24857
24849
|
class AXPCronJobWidgetViewComponent extends AXPValueWidgetComponent {
|
|
24858
24850
|
constructor() {
|
|
24859
24851
|
super(...arguments);
|
|
24860
|
-
|
|
24861
|
-
|
|
24852
|
+
//#region ----- Services & Dependencies -----
|
|
24853
|
+
this.display = inject(AXPCronExpressionDisplayService);
|
|
24854
|
+
//#endregion
|
|
24855
|
+
//#region ----- State Signals -----
|
|
24856
|
+
this.summary = signal('', /* @ts-ignore */
|
|
24857
|
+
...(ngDevMode ? [{ debugName: "summary" }] : /* istanbul ignore next */ []));
|
|
24858
|
+
this.rawExpression = signal('', /* @ts-ignore */
|
|
24859
|
+
...(ngDevMode ? [{ debugName: "rawExpression" }] : /* istanbul ignore next */ []));
|
|
24860
|
+
//#endregion
|
|
24861
|
+
//#region ----- Lifecycle -----
|
|
24862
|
+
this.#describe = effect(() => {
|
|
24863
|
+
const raw = normalizeCronExpression(this.getValue());
|
|
24864
|
+
this.rawExpression.set(raw);
|
|
24865
|
+
void this.refreshSummary(raw);
|
|
24866
|
+
}, /* @ts-ignore */
|
|
24867
|
+
...(ngDevMode ? [{ debugName: "#describe" }] : /* istanbul ignore next */ []));
|
|
24868
|
+
}
|
|
24869
|
+
//#endregion
|
|
24870
|
+
//#region ----- Lifecycle -----
|
|
24871
|
+
#describe;
|
|
24872
|
+
//#endregion
|
|
24873
|
+
//#region ----- Private helpers -----
|
|
24874
|
+
async refreshSummary(raw) {
|
|
24875
|
+
this.summary.set(raw ? await this.display.describe(raw) : '');
|
|
24862
24876
|
}
|
|
24863
24877
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCronJobWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
24864
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
24878
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPCronJobWidgetViewComponent, isStandalone: true, selector: "axp-cron-job-widget-view", host: { classAttribute: "inline-block" }, usesInheritance: true, ngImport: i0, template: `
|
|
24879
|
+
<div class="flex flex-col gap-0.5 p-2">
|
|
24880
|
+
@if (summary()) {
|
|
24881
|
+
<!-- ----- Human-readable cron summary ----- -->
|
|
24882
|
+
<ax-label class="text-sm">{{ summary() }}</ax-label>
|
|
24883
|
+
}
|
|
24884
|
+
<!-- ----- Fallback when no expression is stored ----- -->
|
|
24885
|
+
@else {
|
|
24886
|
+
<ax-label class="text-sm text-muted">---</ax-label>
|
|
24887
|
+
}
|
|
24888
|
+
@if (rawExpression()) {
|
|
24889
|
+
<!-- ----- Raw unix cron ----- -->
|
|
24890
|
+
<ax-label class="text-xs text-muted font-mono" dir="ltr">{{ rawExpression() }}</ax-label>
|
|
24891
|
+
}
|
|
24892
|
+
</div>
|
|
24893
|
+
`, isInline: true, dependencies: [{ kind: "component", type: AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24865
24894
|
}
|
|
24866
24895
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPCronJobWidgetViewComponent, decorators: [{
|
|
24867
24896
|
type: Component,
|
|
24868
24897
|
args: [{
|
|
24869
24898
|
selector: 'axp-cron-job-widget-view',
|
|
24870
|
-
template:
|
|
24899
|
+
template: `
|
|
24900
|
+
<div class="flex flex-col gap-0.5 p-2">
|
|
24901
|
+
@if (summary()) {
|
|
24902
|
+
<!-- ----- Human-readable cron summary ----- -->
|
|
24903
|
+
<ax-label class="text-sm">{{ summary() }}</ax-label>
|
|
24904
|
+
}
|
|
24905
|
+
<!-- ----- Fallback when no expression is stored ----- -->
|
|
24906
|
+
@else {
|
|
24907
|
+
<ax-label class="text-sm text-muted">---</ax-label>
|
|
24908
|
+
}
|
|
24909
|
+
@if (rawExpression()) {
|
|
24910
|
+
<!-- ----- Raw unix cron ----- -->
|
|
24911
|
+
<ax-label class="text-xs text-muted font-mono" dir="ltr">{{ rawExpression() }}</ax-label>
|
|
24912
|
+
}
|
|
24913
|
+
</div>
|
|
24914
|
+
`,
|
|
24871
24915
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
24916
|
+
imports: [AXLabelComponent],
|
|
24917
|
+
host: { class: 'inline-block' },
|
|
24872
24918
|
}]
|
|
24873
24919
|
}] });
|
|
24874
24920
|
|
|
@@ -24880,6 +24926,7 @@ var cronJobWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
24880
24926
|
const AXPCronJobWidget = {
|
|
24881
24927
|
name: 'cron-job',
|
|
24882
24928
|
title: '@platform-layout-widgets:widgets.cron-job.title',
|
|
24929
|
+
description: '@platform-layout-widgets:widgets.cron-job.description',
|
|
24883
24930
|
icon: 'fa-light fa-alarm-clock',
|
|
24884
24931
|
categories: [AXP_WIDGETS_ADVANCE_CATEGORY],
|
|
24885
24932
|
subCategory: AXP_WIDGETS_ADVANCE_SUB_INPUT,
|
|
@@ -24897,7 +24944,7 @@ const AXPCronJobWidget = {
|
|
|
24897
24944
|
component: () => Promise.resolve().then(function () { return cronJobWidgetColumn_component; }).then((c) => c.AXPCronJobWidgetColumnComponent),
|
|
24898
24945
|
},
|
|
24899
24946
|
designer: {
|
|
24900
|
-
component: () => Promise.resolve().then(function () { return
|
|
24947
|
+
component: () => Promise.resolve().then(function () { return cronJobWidgetEdit_component; }).then((c) => c.AXPCronJobWidgetEditComponent),
|
|
24901
24948
|
},
|
|
24902
24949
|
},
|
|
24903
24950
|
};
|
|
@@ -26466,7 +26513,7 @@ class AXPListToolbarWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
26466
26513
|
}
|
|
26467
26514
|
}
|
|
26468
26515
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPListToolbarWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
26469
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPListToolbarWidgetViewComponent, isStandalone: true, selector: "axp-list-toolbar-widget-view", viewQueries: [{ propertyName: "listDisplayModePopover", first: true, predicate: ["listDisplayModePopover"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"flex items-center gap-2 border-b border-light w-full\">\n @if (canFilter()) {\n <axp-query-filters\n class=\"min-w-0 flex-1\"\n [filtersDefinitions]=\"filterDefinitions()\"\n [initialFilters]=\"initialFilters()\"\n (onFiltersChanged)=\"onFiltersChanged($event)\"\n ></axp-query-filters>\n }\n <div class=\"ms-auto flex shrink-0 items-center gap-1 md:gap-2\">\n @if (filterTriggerMode() === 'manual' && isFiltersDirty()) {\n <ax-button\n [title]=\"'@general:actions.apply.title'\"\n [iconOnly]=\"true\"\n #filterButton\n [color]=\"'primary'\"\n (onClick)=\"applyFilters()\"\n >\n <ax-prefix>\n <i class=\"fa-light fa-search\"></i>\n </ax-prefix>\n </ax-button>\n }\n @if (showColumnsControl()) {\n <ax-button [iconOnly]=\"true\" #columnButton [color]=\"'default'\">\n <i class=\"fa-light fa-table-columns\"></i>\n </ax-button>\n <ax-popover\n [adaptivityEnabled]=\"true\"\n [offsetY]=\"30\"\n [target]=\"columnButton\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n #popover\n >\n <div class=\"lightest-surface shadow-md border md:w-72 w-full rounded-md\">\n <ax-header class=\"border-b lighter-surface rounded-t-md p-4 font-bold\">\n {{ '@general:terms.common.columns' | translate | async }}\n </ax-header>\n <div class=\"py-2 px-4\">\n <axp-query-columns\n [columns]=\"columnDefinitions()\"\n (columnsChange)=\"onColumnsChanged($event)\"\n ></axp-query-columns>\n </div>\n </div>\n </ax-popover>\n }\n @if (canSort()) {\n <ax-button [iconOnly]=\"true\" [text]=\"'Sorts'\" #sortButton [color]=\"'default'\">\n <i class=\"fa-light fa-sort-amount-up\"></i>\n </ax-button>\n <ax-popover\n [adaptivityEnabled]=\"true\"\n [offsetY]=\"10\"\n [target]=\"sortButton\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n #popover\n >\n <div class=\"lightest-surface shadow-md border md:w-72 w-full rounded-md\">\n <ax-header class=\"border-b lighter-surface rounded-t-md p-4 font-bold\">\n {{ '@general:terms.common.sorts' | translate | async }}\n </ax-header>\n <div class=\"py-2 px-4\">\n <axp-query-sorts\n [sortDefinitions]=\"sortDefinitions()\"\n (sortQueriesChange)=\"onSortsChanged($event)\"\n [initialSortQueries]=\"initialSorts()\"\n ></axp-query-sorts>\n </div>\n </div>\n </ax-popover>\n }\n @if (showListDisplayModeControl()) {\n <div>\n <ax-button [iconOnly]=\"true\" #listDisplayButton [color]=\"'default'\">\n <i [class]=\"listDisplayModeButtonIcon()\"></i>\n </ax-button>\n <ax-popover\n [adaptivityEnabled]=\"true\"\n [offsetY]=\"10\"\n [target]=\"listDisplayButton\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n #listDisplayModePopover\n >\n <div class=\"lightest-surface shadow-md border md:w-72 w-full rounded-md\">\n <ax-header class=\"border-b lighter-surface rounded-t-md p-4 font-bold\">\n {{ '@general:terms.interface.list-display' | translate | async }}\n </ax-header>\n <div class=\"py-2 px-2\">\n <ax-button-item-list>\n @if (hasTableListDisplayOption()) {\n <ax-button-item\n [text]=\"('@general:terms.interface.table-view' | translate | async)!\"\n [selected]=\"listDisplayMode() === 'table'\"\n (onClick)=\"setListDisplayMode('table')\"\n >\n <ax-prefix>\n <i class=\"fa-light fa-table\"></i>\n </ax-prefix>\n </ax-button-item>\n }\n @if (hasTableListDisplayOption() && (hasCardListDisplayOption() || hasRowListDisplayOption())) {\n <ax-divider />\n }\n @if (hasCardListDisplayOption()) {\n <!-- ----- Card grid presentation ----- -->\n <ax-button-item\n [text]=\"('@general:terms.interface.card-view' | translate | async)!\"\n [selected]=\"listDisplayMode() === 'card'\"\n (onClick)=\"setListDisplayMode('card')\"\n >\n <ax-prefix>\n <i class=\"fa-light fa-grid-2\"></i>\n </ax-prefix>\n </ax-button-item>\n }\n @if (hasRowListDisplayOption()) {\n <!-- ----- Horizontal row-list presentation ----- -->\n <ax-button-item\n [text]=\"('@general:terms.interface.row-view' | translate | async)!\"\n [selected]=\"listDisplayMode() === 'row'\"\n (onClick)=\"setListDisplayMode('row')\"\n >\n <ax-prefix>\n <i class=\"fa-light fa-grip-lines\"></i>\n </ax-prefix>\n </ax-button-item>\n }\n </ax-button-item-list>\n </div>\n </div>\n </ax-popover>\n </div>\n }\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "
|
|
26516
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPListToolbarWidgetViewComponent, isStandalone: true, selector: "axp-list-toolbar-widget-view", viewQueries: [{ propertyName: "listDisplayModePopover", first: true, predicate: ["listDisplayModePopover"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"flex items-center gap-2 border-b border-light w-full\">\n @if (canFilter()) {\n <axp-query-filters\n class=\"min-w-0 flex-1\"\n [filtersDefinitions]=\"filterDefinitions()\"\n [initialFilters]=\"initialFilters()\"\n (onFiltersChanged)=\"onFiltersChanged($event)\"\n ></axp-query-filters>\n }\n <div class=\"ms-auto flex shrink-0 items-center gap-1 md:gap-2\">\n @if (filterTriggerMode() === 'manual' && isFiltersDirty()) {\n <ax-button\n [title]=\"'@general:actions.apply.title'\"\n [iconOnly]=\"true\"\n #filterButton\n [color]=\"'primary'\"\n (onClick)=\"applyFilters()\"\n >\n <ax-prefix>\n <i class=\"fa-light fa-search\"></i>\n </ax-prefix>\n </ax-button>\n }\n @if (showColumnsControl()) {\n <ax-button [iconOnly]=\"true\" #columnButton [color]=\"'default'\">\n <i class=\"fa-light fa-table-columns\"></i>\n </ax-button>\n <ax-popover\n [adaptivityEnabled]=\"true\"\n [offsetY]=\"30\"\n [target]=\"columnButton\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n #popover\n >\n <div class=\"lightest-surface shadow-md border md:w-72 w-full rounded-md\">\n <ax-header class=\"border-b lighter-surface rounded-t-md p-4 font-bold\">\n {{ '@general:terms.common.columns' | translate | async }}\n </ax-header>\n <div class=\"py-2 px-4\">\n <axp-query-columns\n [columns]=\"columnDefinitions()\"\n (columnsChange)=\"onColumnsChanged($event)\"\n ></axp-query-columns>\n </div>\n </div>\n </ax-popover>\n }\n @if (canSort()) {\n <ax-button [iconOnly]=\"true\" [text]=\"'Sorts'\" #sortButton [color]=\"'default'\">\n <i class=\"fa-light fa-sort-amount-up\"></i>\n </ax-button>\n <ax-popover\n [adaptivityEnabled]=\"true\"\n [offsetY]=\"10\"\n [target]=\"sortButton\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n #popover\n >\n <div class=\"lightest-surface shadow-md border md:w-72 w-full rounded-md\">\n <ax-header class=\"border-b lighter-surface rounded-t-md p-4 font-bold\">\n {{ '@general:terms.common.sorts' | translate | async }}\n </ax-header>\n <div class=\"py-2 px-4\">\n <axp-query-sorts\n [sortDefinitions]=\"sortDefinitions()\"\n (sortQueriesChange)=\"onSortsChanged($event)\"\n [initialSortQueries]=\"initialSorts()\"\n ></axp-query-sorts>\n </div>\n </div>\n </ax-popover>\n }\n @if (showListDisplayModeControl()) {\n <div>\n <ax-button [iconOnly]=\"true\" #listDisplayButton [color]=\"'default'\">\n <i [class]=\"listDisplayModeButtonIcon()\"></i>\n </ax-button>\n <ax-popover\n [adaptivityEnabled]=\"true\"\n [offsetY]=\"10\"\n [target]=\"listDisplayButton\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n #listDisplayModePopover\n >\n <div class=\"lightest-surface shadow-md border md:w-72 w-full rounded-md\">\n <ax-header class=\"border-b lighter-surface rounded-t-md p-4 font-bold\">\n {{ '@general:terms.interface.list-display' | translate | async }}\n </ax-header>\n <div class=\"py-2 px-2\">\n <ax-button-item-list>\n @if (hasTableListDisplayOption()) {\n <ax-button-item\n [text]=\"('@general:terms.interface.table-view' | translate | async)!\"\n [selected]=\"listDisplayMode() === 'table'\"\n (onClick)=\"setListDisplayMode('table')\"\n >\n <ax-prefix>\n <i class=\"fa-light fa-table\"></i>\n </ax-prefix>\n </ax-button-item>\n }\n @if (hasTableListDisplayOption() && (hasCardListDisplayOption() || hasRowListDisplayOption())) {\n <ax-divider />\n }\n @if (hasCardListDisplayOption()) {\n <!-- ----- Card grid presentation ----- -->\n <ax-button-item\n [text]=\"('@general:terms.interface.card-view' | translate | async)!\"\n [selected]=\"listDisplayMode() === 'card'\"\n (onClick)=\"setListDisplayMode('card')\"\n >\n <ax-prefix>\n <i class=\"fa-light fa-grid-2\"></i>\n </ax-prefix>\n </ax-button-item>\n }\n @if (hasRowListDisplayOption()) {\n <!-- ----- Horizontal row-list presentation ----- -->\n <ax-button-item\n [text]=\"('@general:terms.interface.row-view' | translate | async)!\"\n [selected]=\"listDisplayMode() === 'row'\"\n (onClick)=\"setListDisplayMode('row')\"\n >\n <ax-prefix>\n <i class=\"fa-light fa-grip-lines\"></i>\n </ax-prefix>\n </ax-button-item>\n }\n </ax-button-item-list>\n </div>\n </div>\n </ax-popover>\n </div>\n }\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i1$1.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i1$1.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items", "closeParentOnClick", "lockOnLoading"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXPQueryFiltersComponent, selector: "axp-query-filters", inputs: ["filtersDefinitions", "initialFilters", "quickSearch"], outputs: ["onFiltersChanged"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i3$1.AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "visualContextScope", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: AXPQuerySortsComponent, selector: "axp-query-sorts", inputs: ["sortDefinitions", "initialSortQueries"], outputs: ["sortDefinitionsChange", "sortQueriesChange"] }, { kind: "component", type: AXPQueryColumnsComponent, selector: "axp-query-columns", inputs: ["columns"], outputs: ["columnsChange"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26470
26517
|
}
|
|
26471
26518
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPListToolbarWidgetViewComponent, decorators: [{
|
|
26472
26519
|
type: Component,
|
|
@@ -27233,7 +27280,7 @@ class AXPTabularDataWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
27233
27280
|
this.platform = inject(AXPlatform);
|
|
27234
27281
|
}
|
|
27235
27282
|
async openPopup() {
|
|
27236
|
-
const { AXPTabularDataPopupComponent } = await import('./acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-
|
|
27283
|
+
const { AXPTabularDataPopupComponent } = await import('./acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-TWxthl21.mjs');
|
|
27237
27284
|
const popupData = await this.popupService.open(AXPTabularDataPopupComponent, {
|
|
27238
27285
|
size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : this.columns().length > 3 ? 'lg' : 'md',
|
|
27239
27286
|
header: true,
|
|
@@ -27285,7 +27332,7 @@ class AXPTabularDataEditorWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
27285
27332
|
this.columns = this.options()['columns'];
|
|
27286
27333
|
}
|
|
27287
27334
|
async openPopup() {
|
|
27288
|
-
const { AXPTabularDataPopupComponent } = await import('./acorex-platform-framework-client-layout-widgets-tabular-data-view-popup.component-
|
|
27335
|
+
const { AXPTabularDataPopupComponent } = await import('./acorex-platform-framework-client-layout-widgets-tabular-data-view-popup.component-D7P08nHH.mjs');
|
|
27289
27336
|
this.popupService.open(AXPTabularDataPopupComponent, {
|
|
27290
27337
|
size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',
|
|
27291
27338
|
header: true,
|
|
@@ -27445,8 +27492,8 @@ class AXPTimerDurationWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
27445
27492
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPTimerDurationWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
27446
27493
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPTimerDurationWidgetEditComponent, isStandalone: true, selector: "axp-time-duration-widget-edit", usesInheritance: true, ngImport: i0, template: `
|
|
27447
27494
|
@if (filterMode()) {
|
|
27448
|
-
<div class="
|
|
27449
|
-
<div class="
|
|
27495
|
+
<div class="flex items-center" [class.gap-2]="operationsMenuVisible()">
|
|
27496
|
+
<div class="flex-1">
|
|
27450
27497
|
<ax-time-duration
|
|
27451
27498
|
[ngModel]="filterEditorValue()"
|
|
27452
27499
|
(onValueChanged)="handleFilterValueChange($event)"
|
|
@@ -27459,43 +27506,20 @@ class AXPTimerDurationWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
27459
27506
|
[maskDigits]="maskDigits()"
|
|
27460
27507
|
>
|
|
27461
27508
|
@for (validation of validationRules(); track $index) {
|
|
27462
|
-
<ax-validation-rule
|
|
27463
|
-
[rule]="validation.rule"
|
|
27464
|
-
[message]="$safeNavigationMigration(validation.options?.message)"
|
|
27465
|
-
[options]="validation.options"
|
|
27466
|
-
></ax-validation-rule>
|
|
27509
|
+
<ax-validation-rule [rule]="validation.rule" [message]="$safeNavigationMigration(validation.options?.message)" [options]="validation.options"></ax-validation-rule>
|
|
27467
27510
|
}
|
|
27468
27511
|
</ax-time-duration>
|
|
27469
27512
|
</div>
|
|
27470
|
-
<axp-filter-operations
|
|
27471
|
-
[type]="'number'"
|
|
27472
|
-
[operations]="operations()"
|
|
27473
|
-
[selectedOperation]="operation().type"
|
|
27474
|
-
(selectedOperationChange)="handleOperationChanged($event)"
|
|
27475
|
-
></axp-filter-operations>
|
|
27513
|
+
<axp-filter-operations [type]="'number'" [operations]="operations()" [selectedOperation]="operation().type" (selectedOperationChange)="handleOperationChanged($event)"></axp-filter-operations>
|
|
27476
27514
|
</div>
|
|
27477
27515
|
} @else {
|
|
27478
|
-
<ax-time-duration
|
|
27479
|
-
[ngModel]="getValue()"
|
|
27480
|
-
(onValueChanged)="handleChangeValue($event)"
|
|
27481
|
-
[valueStart]="from()"
|
|
27482
|
-
[valueEnd]="to()"
|
|
27483
|
-
[label]="label()"
|
|
27484
|
-
[minValue]="minValue()"
|
|
27485
|
-
[maxValue]="maxValue()"
|
|
27486
|
-
[disabled]="disabled()"
|
|
27487
|
-
[maskDigits]="maskDigits()"
|
|
27488
|
-
>
|
|
27516
|
+
<ax-time-duration [ngModel]="getValue()" (onValueChanged)="handleChangeValue($event)" [valueStart]="from()" [valueEnd]="to()" [label]="label()" [minValue]="minValue()" [maxValue]="maxValue()" [disabled]="disabled()" [maskDigits]="maskDigits()">
|
|
27489
27517
|
@for (validation of validationRules(); track $index) {
|
|
27490
|
-
<ax-validation-rule
|
|
27491
|
-
[rule]="validation.rule"
|
|
27492
|
-
[message]="$safeNavigationMigration(validation.options?.message)"
|
|
27493
|
-
[options]="validation.options"
|
|
27494
|
-
></ax-validation-rule>
|
|
27518
|
+
<ax-validation-rule [rule]="validation.rule" [message]="$safeNavigationMigration(validation.options?.message)" [options]="validation.options"></ax-validation-rule>
|
|
27495
27519
|
}
|
|
27496
27520
|
</ax-time-duration>
|
|
27497
27521
|
}
|
|
27498
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i3.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }, { kind: "ngmodule", type: AXTimeDurationModule }, { kind: "component", type: i3$
|
|
27522
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i3.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }, { kind: "ngmodule", type: AXTimeDurationModule }, { kind: "component", type: i3$7.AXTimeDurationComponent, selector: "ax-time-duration", inputs: ["disabled", "tabIndex", "readonly", "look", "name", "valueStart", "valueEnd", "label", "maskDigits", "minValue", "maxValue"], outputs: ["onValueChanged"] }, { kind: "ngmodule", type: AXValidationModule }, { kind: "component", type: AXPFilterOperationsComponent, selector: "axp-filter-operations", inputs: ["selectedOperation", "type", "operations"], outputs: ["selectedOperationChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27499
27523
|
}
|
|
27500
27524
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPTimerDurationWidgetEditComponent, decorators: [{
|
|
27501
27525
|
type: Component,
|
|
@@ -27503,8 +27527,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
27503
27527
|
selector: 'axp-time-duration-widget-edit',
|
|
27504
27528
|
template: `
|
|
27505
27529
|
@if (filterMode()) {
|
|
27506
|
-
<div class="
|
|
27507
|
-
<div class="
|
|
27530
|
+
<div class="flex items-center" [class.gap-2]="operationsMenuVisible()">
|
|
27531
|
+
<div class="flex-1">
|
|
27508
27532
|
<ax-time-duration
|
|
27509
27533
|
[ngModel]="filterEditorValue()"
|
|
27510
27534
|
(onValueChanged)="handleFilterValueChange($event)"
|
|
@@ -27517,39 +27541,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
27517
27541
|
[maskDigits]="maskDigits()"
|
|
27518
27542
|
>
|
|
27519
27543
|
@for (validation of validationRules(); track $index) {
|
|
27520
|
-
<ax-validation-rule
|
|
27521
|
-
[rule]="validation.rule"
|
|
27522
|
-
[message]="$safeNavigationMigration(validation.options?.message)"
|
|
27523
|
-
[options]="validation.options"
|
|
27524
|
-
></ax-validation-rule>
|
|
27544
|
+
<ax-validation-rule [rule]="validation.rule" [message]="$safeNavigationMigration(validation.options?.message)" [options]="validation.options"></ax-validation-rule>
|
|
27525
27545
|
}
|
|
27526
27546
|
</ax-time-duration>
|
|
27527
27547
|
</div>
|
|
27528
|
-
<axp-filter-operations
|
|
27529
|
-
[type]="'number'"
|
|
27530
|
-
[operations]="operations()"
|
|
27531
|
-
[selectedOperation]="operation().type"
|
|
27532
|
-
(selectedOperationChange)="handleOperationChanged($event)"
|
|
27533
|
-
></axp-filter-operations>
|
|
27548
|
+
<axp-filter-operations [type]="'number'" [operations]="operations()" [selectedOperation]="operation().type" (selectedOperationChange)="handleOperationChanged($event)"></axp-filter-operations>
|
|
27534
27549
|
</div>
|
|
27535
27550
|
} @else {
|
|
27536
|
-
<ax-time-duration
|
|
27537
|
-
[ngModel]="getValue()"
|
|
27538
|
-
(onValueChanged)="handleChangeValue($event)"
|
|
27539
|
-
[valueStart]="from()"
|
|
27540
|
-
[valueEnd]="to()"
|
|
27541
|
-
[label]="label()"
|
|
27542
|
-
[minValue]="minValue()"
|
|
27543
|
-
[maxValue]="maxValue()"
|
|
27544
|
-
[disabled]="disabled()"
|
|
27545
|
-
[maskDigits]="maskDigits()"
|
|
27546
|
-
>
|
|
27551
|
+
<ax-time-duration [ngModel]="getValue()" (onValueChanged)="handleChangeValue($event)" [valueStart]="from()" [valueEnd]="to()" [label]="label()" [minValue]="minValue()" [maxValue]="maxValue()" [disabled]="disabled()" [maskDigits]="maskDigits()">
|
|
27547
27552
|
@for (validation of validationRules(); track $index) {
|
|
27548
|
-
<ax-validation-rule
|
|
27549
|
-
[rule]="validation.rule"
|
|
27550
|
-
[message]="$safeNavigationMigration(validation.options?.message)"
|
|
27551
|
-
[options]="validation.options"
|
|
27552
|
-
></ax-validation-rule>
|
|
27553
|
+
<ax-validation-rule [rule]="validation.rule" [message]="$safeNavigationMigration(validation.options?.message)" [options]="validation.options"></ax-validation-rule>
|
|
27553
27554
|
}
|
|
27554
27555
|
</ax-time-duration>
|
|
27555
27556
|
}
|
|
@@ -27729,13 +27730,27 @@ class AXPBooleanFilterWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
27729
27730
|
}, /* @ts-ignore */
|
|
27730
27731
|
...(ngDevMode ? [{ debugName: "#effect" }] : /* istanbul ignore next */ []));
|
|
27731
27732
|
}
|
|
27733
|
+
/**
|
|
27734
|
+
* Lookup may skip `onValueChanged` on the first pick (`#lastValue === undefined`).
|
|
27735
|
+
* `onItemSelected` always fires from `handleSinglePick`.
|
|
27736
|
+
*/
|
|
27737
|
+
handleItemSelected(e) {
|
|
27738
|
+
const text = e.item?.['text'];
|
|
27739
|
+
this.commitSelection(e.item?.['value'], typeof text === 'string' ? text : undefined);
|
|
27740
|
+
}
|
|
27732
27741
|
handleValueChange(e) {
|
|
27733
|
-
|
|
27734
|
-
|
|
27735
|
-
|
|
27736
|
-
|
|
27737
|
-
|
|
27742
|
+
this.commitSelection(e.value);
|
|
27743
|
+
}
|
|
27744
|
+
commitSelection(value, displayText) {
|
|
27745
|
+
if (typeof value !== 'boolean') {
|
|
27746
|
+
return;
|
|
27738
27747
|
}
|
|
27748
|
+
const item = this.items.find((c) => c.value === value);
|
|
27749
|
+
this.setValue({
|
|
27750
|
+
value,
|
|
27751
|
+
operation: this.negative() ? { type: 'notEqual' } : { type: 'equal' },
|
|
27752
|
+
displayText: displayText ?? item?.text,
|
|
27753
|
+
});
|
|
27739
27754
|
}
|
|
27740
27755
|
#effect;
|
|
27741
27756
|
focus() {
|
|
@@ -27753,11 +27768,12 @@ class AXPBooleanFilterWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
27753
27768
|
[placeholder]="('@general:actions.select.title' | translate | async) ?? ''"
|
|
27754
27769
|
[dataSource]="dataSource"
|
|
27755
27770
|
[ngModel]="value()"
|
|
27771
|
+
(onItemSelected)="handleItemSelected($event)"
|
|
27756
27772
|
(onValueChanged)="handleValueChange($event)"
|
|
27757
27773
|
>
|
|
27758
27774
|
</ax-lookup>
|
|
27759
27775
|
</div>
|
|
27760
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: AXLookupComponent, selector: "ax-lookup", inputs: ["name", "mode", "dataSource", "treeDataSource", "valueField", "textField", "disabledField", "columns", "treeParentField", "hasChildrenField", "searchable", "adaptivityEnabled", "caption", "alternate", "searchPlaceholder", "placeholder", "disabled", "readonly", "look", "itemHeight", "maxVisibleItems", "treeSelectionBehavior", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27776
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: AXLookupComponent, selector: "ax-lookup", inputs: ["name", "mode", "dataSource", "treeDataSource", "valueField", "textField", "disabledField", "columns", "treeParentField", "hasChildrenField", "searchable", "adaptivityEnabled", "caption", "alternate", "searchPlaceholder", "placeholder", "disabled", "readonly", "look", "itemHeight", "maxVisibleItems", "treeSelectionBehavior", "highlightSearch", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27761
27777
|
}
|
|
27762
27778
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPBooleanFilterWidgetEditComponent, decorators: [{
|
|
27763
27779
|
type: Component,
|
|
@@ -27773,6 +27789,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
27773
27789
|
[placeholder]="('@general:actions.select.title' | translate | async) ?? ''"
|
|
27774
27790
|
[dataSource]="dataSource"
|
|
27775
27791
|
[ngModel]="value()"
|
|
27792
|
+
(onItemSelected)="handleItemSelected($event)"
|
|
27776
27793
|
(onValueChanged)="handleValueChange($event)"
|
|
27777
27794
|
>
|
|
27778
27795
|
</ax-lookup>
|
|
@@ -28131,7 +28148,7 @@ class AXPStatusFilterWidgetEditComponent extends AXPDataListWidgetComponent {
|
|
|
28131
28148
|
<ax-clear-button></ax-clear-button>
|
|
28132
28149
|
</ax-lookup>
|
|
28133
28150
|
</div>
|
|
28134
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AXLookupComponent, selector: "ax-lookup", inputs: ["name", "mode", "dataSource", "treeDataSource", "valueField", "textField", "disabledField", "columns", "treeParentField", "hasChildrenField", "searchable", "adaptivityEnabled", "caption", "alternate", "searchPlaceholder", "placeholder", "disabled", "readonly", "look", "itemHeight", "maxVisibleItems", "treeSelectionBehavior", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28151
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AXLookupComponent, selector: "ax-lookup", inputs: ["name", "mode", "dataSource", "treeDataSource", "valueField", "textField", "disabledField", "columns", "treeParentField", "hasChildrenField", "searchable", "adaptivityEnabled", "caption", "alternate", "searchPlaceholder", "placeholder", "disabled", "readonly", "look", "itemHeight", "maxVisibleItems", "treeSelectionBehavior", "highlightSearch", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "value", "valueItems"], outputs: ["lookChange", "valueChange", "onValueChanged", "onSelectionChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28135
28152
|
}
|
|
28136
28153
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPStatusFilterWidgetEditComponent, decorators: [{
|
|
28137
28154
|
type: Component,
|
|
@@ -28452,7 +28469,7 @@ class AXPAlertBoxWidgetViewComponent extends AXPLayoutBaseWidgetComponent {
|
|
|
28452
28469
|
<div [innerHTML]="innerContent()"></div>
|
|
28453
28470
|
</ax-content>
|
|
28454
28471
|
</ax-alert>
|
|
28455
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "ngmodule", type: AXAlertModule }, { kind: "component", type: i1$
|
|
28472
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "ngmodule", type: AXAlertModule }, { kind: "component", type: i1$j.AXAlertComponent, selector: "ax-alert", inputs: ["color", "timeOut"], outputs: ["colorChange", "onClosed", "timeOutChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28456
28473
|
}
|
|
28457
28474
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPAlertBoxWidgetViewComponent, decorators: [{
|
|
28458
28475
|
type: Component,
|
|
@@ -28516,7 +28533,7 @@ class AXPAlertBoxWidgetDesignerComponent extends AXPLayoutBaseWidgetComponent {
|
|
|
28516
28533
|
<div [innerHTML]="innerContent()"></div>
|
|
28517
28534
|
</ax-content>
|
|
28518
28535
|
</ax-alert>
|
|
28519
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "ngmodule", type: AXAlertModule }, { kind: "component", type: i1$
|
|
28536
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "ngmodule", type: AXAlertModule }, { kind: "component", type: i1$j.AXAlertComponent, selector: "ax-alert", inputs: ["color", "timeOut"], outputs: ["colorChange", "onClosed", "timeOutChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28520
28537
|
}
|
|
28521
28538
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPAlertBoxWidgetDesignerComponent, decorators: [{
|
|
28522
28539
|
type: Component,
|
|
@@ -30138,7 +30155,7 @@ class AXPPanelWidgetDesignerComponent extends AXPLayoutBaseWidgetComponent {
|
|
|
30138
30155
|
}
|
|
30139
30156
|
</ax-accordion-item>
|
|
30140
30157
|
</ax-accordion-group>
|
|
30141
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "ngmodule", type: AXAccordionModule }, { kind: "component", type: i1$
|
|
30158
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "ngmodule", type: AXAccordionModule }, { kind: "component", type: i1$k.AXAccordionItemComponent, selector: "ax-accordion-item", inputs: ["isCollapsed", "icon", "textdecoration", "caption", "isLoading", "headerTemplate", "look", "disabled"], outputs: ["isCollapsedChange", "isLoadingChange", "onClick"] }, { kind: "component", type: i1$k.AXAccordionGroupComponent, selector: "ax-accordion-group", inputs: ["accordion", "activeIndex", "look", "collapsedOnItemClick"], outputs: ["activeIndexChange"] }, { kind: "directive", type: AXPWidgetDesignerRendererDirective, selector: "[axp-widget-designer-renderer]", inputs: ["parentNode", "parentElement", "parentComponent", "index", "locked", "mode", "node"] }, { kind: "component", type: AXPDesignerAddWidgetMiniButtonComponent, selector: "axp-designer-add-widget-mini-button", outputs: ["onClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
30142
30159
|
}
|
|
30143
30160
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPPanelWidgetDesignerComponent, decorators: [{
|
|
30144
30161
|
type: Component,
|
|
@@ -30240,7 +30257,7 @@ class AXPPanelWidgetViewComponent extends AXPLayoutBaseWidgetComponent {
|
|
|
30240
30257
|
}
|
|
30241
30258
|
</ax-accordion-item>
|
|
30242
30259
|
</ax-accordion-group>
|
|
30243
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "directive", type: i1.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXAccordionModule }, { kind: "component", type: i1$
|
|
30260
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "directive", type: i1.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXAccordionModule }, { kind: "component", type: i1$k.AXAccordionItemComponent, selector: "ax-accordion-item", inputs: ["isCollapsed", "icon", "textdecoration", "caption", "isLoading", "headerTemplate", "look", "disabled"], outputs: ["isCollapsedChange", "isLoadingChange", "onClick"] }, { kind: "component", type: i1$k.AXAccordionGroupComponent, selector: "ax-accordion-group", inputs: ["accordion", "activeIndex", "look", "collapsedOnItemClick"], outputs: ["activeIndexChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
30244
30261
|
}
|
|
30245
30262
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPPanelWidgetViewComponent, decorators: [{
|
|
30246
30263
|
type: Component,
|
|
@@ -30488,7 +30505,7 @@ class AXPTabSetWidgetViewComponent extends AXPLayoutBaseWidgetComponent {
|
|
|
30488
30505
|
</div>
|
|
30489
30506
|
}
|
|
30490
30507
|
</div>
|
|
30491
|
-
`, isInline: true, styles: [":host.vertical{display:flex;width:100%;flex-direction:row}:host.vertical .content{display:block;width:100%}:host.horizontal{display:flex;width:100%;flex-direction:column}:host.horizontal .content{margin-top:calc(var(--spacing, .25rem) * 4);display:block;width:100%}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i5.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i5.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "directive", type: i1.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
30508
|
+
`, isInline: true, styles: [":host.vertical{display:flex;width:100%;flex-direction:row}:host.vertical .content{display:block;width:100%}:host.horizontal{display:flex;width:100%;flex-direction:column}:host.horizontal .content{margin-top:calc(var(--spacing, .25rem) * 4);display:block;width:100%}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i5.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "reorderable", "reorderDelay", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged", "onTabsReordered"] }, { kind: "component", type: i5.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "directive", type: i1.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
30492
30509
|
}
|
|
30493
30510
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPTabSetWidgetViewComponent, decorators: [{
|
|
30494
30511
|
type: Component,
|
|
@@ -31140,7 +31157,7 @@ class AXPTriggersWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
31140
31157
|
</div>
|
|
31141
31158
|
}
|
|
31142
31159
|
</div>
|
|
31143
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "
|
|
31160
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXPStateMessageComponent, selector: "axp-state-message", inputs: ["mode", "icon", "title", "description", "titleParams", "descriptionParams", "look"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
31144
31161
|
}
|
|
31145
31162
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPTriggersWidgetEditComponent, decorators: [{
|
|
31146
31163
|
type: Component,
|
|
@@ -31330,7 +31347,7 @@ class AXPTriggerExpressionEditorPopupComponent extends AXBasePageComponent {
|
|
|
31330
31347
|
></ax-button>
|
|
31331
31348
|
</ax-suffix>
|
|
31332
31349
|
</ax-footer>
|
|
31333
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "
|
|
31350
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXCodeEditorModule }, { kind: "component", type: i1$c.AXCodeEditorComponent, selector: "ax-code-editor", inputs: ["disabled", "value", "state", "name", "id", "language", "readonly", "placeholder", "lineNumbers", "lineWrapping", "tabSize", "indentWithTab", "theme", "extensions", "ariaLabel", "focusOnReady", "formatOnSave", "minRow", "customCompletions"], outputs: ["onValueChanged", "valueChange", "stateChange", "readonlyChange", "disabledChange", "ready", "save"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
31334
31351
|
}
|
|
31335
31352
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPTriggerExpressionEditorPopupComponent, decorators: [{
|
|
31336
31353
|
type: Component,
|
|
@@ -31428,7 +31445,6 @@ const REGISTERED_WIDGETS = [
|
|
|
31428
31445
|
AXPQrcodeWidget,
|
|
31429
31446
|
AXPSchedulerPickerWidget,
|
|
31430
31447
|
AXPPasswordBoxWidget,
|
|
31431
|
-
AXPGalleryWidget,
|
|
31432
31448
|
AXPFileViewerWidget,
|
|
31433
31449
|
AXPCodeEditorWidget,
|
|
31434
31450
|
AXPJsonViewerWidget,
|
|
@@ -31560,7 +31576,6 @@ class AXPWidgetsModule {
|
|
|
31560
31576
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPWidgetsModule, providers: [
|
|
31561
31577
|
{ provide: AXP_WIDGET_DEFINITION_PROVIDER, useClass: AXPCoreWidgetsProvider, multi: true },
|
|
31562
31578
|
{ provide: STRATEGY_CONFIG_TOKEN, useValue: DEFAULT_STRATEGY_CONFIG },
|
|
31563
|
-
importProvidersFrom(AXMediaViewerModule.forRoot()),
|
|
31564
31579
|
...provideFileViewer(),
|
|
31565
31580
|
//TODO convert dialogService to layoutBuilder saeed:
|
|
31566
31581
|
provideQuerySetups([
|
|
@@ -31578,7 +31593,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
31578
31593
|
providers: [
|
|
31579
31594
|
{ provide: AXP_WIDGET_DEFINITION_PROVIDER, useClass: AXPCoreWidgetsProvider, multi: true },
|
|
31580
31595
|
{ provide: STRATEGY_CONFIG_TOKEN, useValue: DEFAULT_STRATEGY_CONFIG },
|
|
31581
|
-
importProvidersFrom(AXMediaViewerModule.forRoot()),
|
|
31582
31596
|
...provideFileViewer(),
|
|
31583
31597
|
//TODO convert dialogService to layoutBuilder saeed:
|
|
31584
31598
|
provideQuerySetups([
|
|
@@ -31970,5 +31984,5 @@ var getWidgetsForAi_query = /*#__PURE__*/Object.freeze({
|
|
|
31970
31984
|
* Generated bundle index. Do not edit.
|
|
31971
31985
|
*/
|
|
31972
31986
|
|
|
31973
|
-
export { AXPAdvancedGridItemWidget, AXPAdvancedGridItemWidgetDesignerComponent, AXPAdvancedGridItemWidgetViewComponent, AXPAdvancedGridOptionsWidget, AXPAdvancedGridOptionsWidgetEditComponent, AXPAdvancedGridWidget, AXPAdvancedGridWidgetDesignerComponent, AXPAdvancedGridWidgetViewComponent, AXPAvatarWidget, AXPAvatarWidgetColumnComponent, AXPAvatarWidgetDesignerComponent, AXPAvatarWidgetEditComponent, AXPAvatarWidgetViewComponent, AXPBetweenExpressionValidationWidget, AXPBetweenValidationWidgetEditComponent, AXPBlockWidget, AXPBlockWidgetDesignerComponent, AXPBlockWidgetViewComponent, AXPBorderWidget, AXPBorderWidgetEditComponent, AXPButtonWidget, AXPButtonWidgetColumnComponent, AXPButtonWidgetViewComponent, AXPCallbackValidationWidget, AXPCallbackValidationWidgetEditComponent, AXPCheckBoxWidget, AXPCheckBoxWidgetColumnComponent, AXPCheckBoxWidgetDesignerComponent, AXPCheckBoxWidgetEditComponent, AXPCheckBoxWidgetPrintComponent, AXPCheckBoxWidgetViewComponent, AXPCodeEditorWidget, AXPCodeEditorWidgetColumnComponent, AXPCodeEditorWidgetEditComponent, AXPCodeEditorWidgetViewComponent, AXPColorBoxWidget, AXPColorBoxWidgetColumnComponent, AXPColorBoxWidgetDesignerComponent, AXPColorBoxWidgetEditComponent, AXPColorBoxWidgetViewComponent, AXPColorChooserWidget, AXPColorChooserWidgetColumnComponent, AXPColorChooserWidgetDesignerComponent, AXPColorChooserWidgetEditComponent, AXPColorChooserWidgetViewComponent, AXPColorPaletteWidget, AXPColorPaletteWidgetColumnComponent, AXPColorPaletteWidgetDesignerComponent, AXPColorPaletteWidgetEditComponent, AXPColorPaletteWidgetViewComponent, AXPConditionBuilderWidget, AXPConditionBuilderWidgetEditComponent, AXPConditionBuilderWidgetViewComponent, AXPConnectedDragDropListsWidget, AXPConnectedListsWidgetColumnComponent, AXPConnectedListsWidgetEditComponent, AXPConnectedListsWidgetViewComponent, AXPContactWidget, AXPContactWidgetColumnComponent, AXPContactWidgetEditComponent, AXPContactWidgetViewComponent, AXPDataListWidget, AXPDataListWidgetViewComponent, AXPDataSourceOptionsWidget, AXPDataSourceOptionsWidgetEditComponent, AXPDateTimeBoxWidget, AXPDateTimeBoxWidgetColumnComponent, AXPDateTimeBoxWidgetEditComponent, AXPDateTimeBoxWidgetViewComponent, AXPDirectionWidget, AXPDirectionWidgetEditComponent, AXPDragDropListWidget, AXPEditorJsWidget, AXPEditorJsWidgetColumnComponent, AXPEditorJsWidgetEditComponent, AXPEditorJsWidgetViewComponent, AXPEqualValidationWidget, AXPEqualValidationWidgetEditComponent, AXPFieldsetWidget, AXPFieldsetWidgetDesignerComponent, AXPFieldsetWidgetViewComponent, AXPFileViewerWidget, AXPFileViewerWidgetEditComponent, AXPFileViewerWidgetViewComponent, AXPFlexItemOptionsWidget, AXPFlexItemOptionsWidgetEditComponent, AXPFlexItemWidget, AXPFlexItemWidgetDesignerComponent, AXPFlexItemWidgetViewComponent, AXPFlexOptionsWidget, AXPFlexOptionsWidgetEditComponent, AXPFlexWidget, AXPFlexWidgetDesignerComponent, AXPFlexWidgetViewComponent,
|
|
31987
|
+
export { AXPAdvancedGridItemWidget, AXPAdvancedGridItemWidgetDesignerComponent, AXPAdvancedGridItemWidgetViewComponent, AXPAdvancedGridOptionsWidget, AXPAdvancedGridOptionsWidgetEditComponent, AXPAdvancedGridWidget, AXPAdvancedGridWidgetDesignerComponent, AXPAdvancedGridWidgetViewComponent, AXPAvatarWidget, AXPAvatarWidgetColumnComponent, AXPAvatarWidgetDesignerComponent, AXPAvatarWidgetEditComponent, AXPAvatarWidgetViewComponent, AXPBetweenExpressionValidationWidget, AXPBetweenValidationWidgetEditComponent, AXPBlockWidget, AXPBlockWidgetDesignerComponent, AXPBlockWidgetViewComponent, AXPBorderWidget, AXPBorderWidgetEditComponent, AXPButtonWidget, AXPButtonWidgetColumnComponent, AXPButtonWidgetViewComponent, AXPCallbackValidationWidget, AXPCallbackValidationWidgetEditComponent, AXPCheckBoxWidget, AXPCheckBoxWidgetColumnComponent, AXPCheckBoxWidgetDesignerComponent, AXPCheckBoxWidgetEditComponent, AXPCheckBoxWidgetPrintComponent, AXPCheckBoxWidgetViewComponent, AXPCodeEditorWidget, AXPCodeEditorWidgetColumnComponent, AXPCodeEditorWidgetEditComponent, AXPCodeEditorWidgetViewComponent, AXPColorBoxWidget, AXPColorBoxWidgetColumnComponent, AXPColorBoxWidgetDesignerComponent, AXPColorBoxWidgetEditComponent, AXPColorBoxWidgetViewComponent, AXPColorChooserWidget, AXPColorChooserWidgetColumnComponent, AXPColorChooserWidgetDesignerComponent, AXPColorChooserWidgetEditComponent, AXPColorChooserWidgetViewComponent, AXPColorPaletteWidget, AXPColorPaletteWidgetColumnComponent, AXPColorPaletteWidgetDesignerComponent, AXPColorPaletteWidgetEditComponent, AXPColorPaletteWidgetViewComponent, AXPConditionBuilderWidget, AXPConditionBuilderWidgetEditComponent, AXPConditionBuilderWidgetViewComponent, AXPConnectedDragDropListsWidget, AXPConnectedListsWidgetColumnComponent, AXPConnectedListsWidgetEditComponent, AXPConnectedListsWidgetViewComponent, AXPContactWidget, AXPContactWidgetColumnComponent, AXPContactWidgetEditComponent, AXPContactWidgetViewComponent, AXPDataListWidget, AXPDataListWidgetViewComponent, AXPDataSourceOptionsWidget, AXPDataSourceOptionsWidgetEditComponent, AXPDateTimeBoxWidget, AXPDateTimeBoxWidgetColumnComponent, AXPDateTimeBoxWidgetEditComponent, AXPDateTimeBoxWidgetViewComponent, AXPDirectionWidget, AXPDirectionWidgetEditComponent, AXPDragDropListWidget, AXPEditorJsWidget, AXPEditorJsWidgetColumnComponent, AXPEditorJsWidgetEditComponent, AXPEditorJsWidgetViewComponent, AXPEqualValidationWidget, AXPEqualValidationWidgetEditComponent, AXPFieldsetWidget, AXPFieldsetWidgetDesignerComponent, AXPFieldsetWidgetViewComponent, AXPFileViewerWidget, AXPFileViewerWidgetEditComponent, AXPFileViewerWidgetViewComponent, AXPFlexItemOptionsWidget, AXPFlexItemOptionsWidgetEditComponent, AXPFlexItemWidget, AXPFlexItemWidgetDesignerComponent, AXPFlexItemWidgetViewComponent, AXPFlexOptionsWidget, AXPFlexOptionsWidgetEditComponent, AXPFlexWidget, AXPFlexWidgetDesignerComponent, AXPFlexWidgetViewComponent, AXPGetWidgetsForAIQuery, AXPGreaterThanExpressionValidationWidget, AXPGreaterThanValidationWidgetEditComponent, AXPGridItemOptionsWidget, AXPGridItemOptionsWidgetEditComponent, AXPGridOptionsWidget, AXPGridOptionsWidgetEditComponent, AXPImageMarkerPopupComponent, AXPImageMarkerWidget, AXPImageMarkerWidgetColumnComponent, AXPImageMarkerWidgetEditComponent, AXPImageMarkerWidgetViewComponent, AXPIntegrationConnectionActionsService, AXPIntegrationConnectionsPanelWidget, AXPIntegrationConnectionsPanelWidgetEditComponent, AXPItemConfiguratorWidget, AXPItemConfiguratorWidgetColumnComponent, AXPItemConfiguratorWidgetEditComponent, AXPJsonViewerWidget, AXPJsonViewerWidgetEditComponent, AXPJsonViewerWidgetViewComponent, AXPLargeTextWidget, AXPLargeTextWidgetColumnComponent, AXPLargeTextWidgetEditComponent, AXPLargeTextWidgetPrintComponent, AXPLargeTextWidgetViewComponent, AXPLessThanExpressionValidationWidget, AXPLessThanValidationWidgetEditComponent, AXPListWidgetColumnComponent, AXPListWidgetEditComponent, AXPListWidgetViewComponent, AXPMapWidgetEditComponent, AXPMapWidgetViewComponent, AXPMaxLengthExpressionValidationWidget, AXPMaxLengthValidationWidgetEditComponent, AXPMinLengthExpressionValidationWidget, AXPMinLengthValidationWidgetEditComponent, AXPNodeRendererWidget, AXPNodeRendererWidgetEditComponent, AXPNodeRendererWidgetViewComponent, AXPNumberBoxWidget, AXPNumberBoxWidgetColumnComponent, AXPNumberBoxWidgetEditComponent, AXPNumberBoxWidgetPrintComponent, AXPNumberBoxWidgetViewComponent, AXPOutcomeResultsViewerWidget, AXPOutcomeResultsViewerWidgetViewComponent, AXPPageWidget, AXPPageWidgetViewComponent, AXPPasswordBoxWidget, AXPPasswordBoxWidgetColumnComponent, AXPPasswordBoxWidgetEditComponent, AXPPasswordBoxWidgetViewComponent, AXPProgressBarWidget, AXPProgressBarWidgetColumnComponent, AXPProgressBarWidgetEditComponent, AXPProgressBarWidgetViewComponent, AXPProviderSelectWidgetColumnComponent, AXPProviderSelectWidgetEditBase, AXPProviderSelectWidgetViewComponent, AXPQrcodeViewerService, AXPQrcodeWidget, AXPQrcodeWidgetColumnComponent, AXPQrcodeWidgetEditComponent, AXPQrcodeWidgetViewComponent, AXPRatePickerWidget, AXPRatePickerWidgetColumnComponent, AXPRatePickerWidgetEditComponent, AXPRatePickerWidgetViewComponent, AXPRegularExpressionValidationWidget, AXPRegularExpressionValidationWidgetEditComponent, AXPRepeaterWidget, AXPRepeaterWidgetDesignerComponent, AXPRepeaterWidgetEditComponent, AXPRepeaterWidgetViewComponent, AXPRequiredValidationWidget, AXPRequiredValidationWidgetEditComponent, AXPRichTextWidget, AXPRichTextWidgetColumnComponent, AXPRichTextWidgetEditComponent, AXPRichTextWidgetPrintComponent, AXPRichTextWidgetViewComponent, AXPSchedulerPickerWidget, AXPSchedulerPickerWidgetColumnComponent, AXPSchedulerPickerWidgetEditComponent, AXPSchedulerPickerWidgetViewComponent, AXPSelectBoxWidget, AXPSelectBoxWidgetColumnComponent, AXPSelectBoxWidgetEditComponent, AXPSelectBoxWidgetViewComponent, AXPSelectLanguagePopup, AXPSelectionListWidget, AXPSelectionListWidgetColumnComponent, AXPSelectionListWidgetDesignerComponent, AXPSelectionListWidgetEditComponent, AXPSelectionListWidgetViewComponent, AXPSignatureWidget, AXPSignatureWidgetColumnComponent, AXPSignatureWidgetEditComponent, AXPSignatureWidgetViewComponent, AXPSpacingWidget, AXPSpacingWidgetEditComponent, AXPStatusChipComponent, AXPStatusWidget, AXPStatusWidgetColumnComponent, AXPStatusWidgetEditComponent, AXPStatusWidgetViewComponent, AXPStepWizardWidget, AXPStepWizardWidgetViewComponent, AXPStopwatchWidget, AXPStopwatchWidgetViewComponent, AXPTableItemWidget, AXPTableItemWidgetDesignerComponent, AXPTableItemWidgetViewComponent, AXPTableWidget, AXPTableWidgetDesignerComponent, AXPTableWidgetViewComponent, AXPTagEditorWidget, AXPTagEditorWidgetColumnComponent, AXPTagEditorWidgetEditComponent, AXPTagEditorWidgetViewComponent, AXPTemplateBoxWidget, AXPTemplateBoxWidgetColumnComponent, AXPTemplateBoxWidgetEditComponent, AXPTemplateBoxWidgetPrintComponent, AXPTemplateBoxWidgetViewComponent, AXPTextBoxWidget, AXPTextBoxWidgetColumnComponent, AXPTextBoxWidgetEditComponent, AXPTextBoxWidgetPrintComponent, AXPTextBoxWidgetViewComponent, AXPToggleWidget, AXPToggleWidgetColumnComponent, AXPToggleWidgetEditComponent, AXPToggleWidgetPrintComponent, AXPToggleWidgetViewComponent, AXPWidgetFieldConfiguratorWidget, AXPWidgetFieldConfiguratorWidgetColumnComponent, AXPWidgetFieldConfiguratorWidgetEditComponent, AXPWidgetsModule, AXP_ABSOLUTE_UNITS, AXP_BORDER_RADIUS_UNITS, AXP_BORDER_WIDTH_UNITS, AXP_DATA_LIST_CMD_DELETE, AXP_DATA_LIST_CMD_EDIT, AXP_DATA_LIST_PENDING_DELETE_KEY, 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_RELATIVE_UNITS, AXP_RELATIVE_UNITS_NO_PERCENT, AXP_REPEATER_ENTITY_BY_KEY_LOOKUP, AXP_ROW_EXPR_PREFIX, AXP_SPACING_UNITS, AXP_default_Border_Box_Units, AXP_default_Border_Box_Value, AXP_default_Spacing_Box_Units, AXP_default_Spacing_Box_Value, DEFAULT_QRCODE_SIZE, DEFAULT_STRATEGY_CONFIG, STRATEGY_CONFIG_TOKEN, prepareNodeRendererChild, resolveColorChooserGroups, resolveDataListColumnWidth };
|
|
31974
31988
|
//# sourceMappingURL=acorex-platform-framework-client-layout-widgets.mjs.map
|