@sdcorejs/angular 20.0.0 → 20.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -19
- package/assets/scss/core/_inline-edit.scss +105 -0
- package/assets/scss/core/form.scss +15 -0
- package/components/autoid-inspector/index.d.ts +53 -4
- package/components/form-generic/index.d.ts +12 -13
- package/components/index.d.ts +1 -0
- package/components/modal-resizable/index.d.ts +32 -0
- package/components/table/index.d.ts +99 -10
- package/components/view/index.d.ts +33 -0
- package/fesm2022/sdcorejs-angular-components-anchor.mjs +9 -9
- package/fesm2022/sdcorejs-angular-components-autoid-inspector.mjs +111 -24
- package/fesm2022/sdcorejs-angular-components-autoid-inspector.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-avatar.mjs +4 -4
- package/fesm2022/sdcorejs-angular-components-avatar.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-badge.mjs +3 -3
- package/fesm2022/sdcorejs-angular-components-base.mjs +3 -3
- package/fesm2022/sdcorejs-angular-components-button.mjs +4 -4
- package/fesm2022/sdcorejs-angular-components-button.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-chart.mjs +12 -12
- package/fesm2022/sdcorejs-angular-components-ckeditor-styles.mjs +3 -3
- package/fesm2022/sdcorejs-angular-components-code-editor.mjs +3 -3
- package/fesm2022/sdcorejs-angular-components-document-builder.mjs +6 -6
- package/fesm2022/sdcorejs-angular-components-editor.mjs +3 -3
- package/fesm2022/sdcorejs-angular-components-form-generic.mjs +288 -375
- package/fesm2022/sdcorejs-angular-components-form-generic.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-history.mjs +7 -7
- package/fesm2022/sdcorejs-angular-components-import-excel.mjs +10 -10
- package/fesm2022/sdcorejs-angular-components-inform.mjs +6 -6
- package/fesm2022/sdcorejs-angular-components-mini-editor.mjs +3 -3
- package/fesm2022/sdcorejs-angular-components-modal-resizable.mjs +158 -0
- package/fesm2022/sdcorejs-angular-components-modal-resizable.mjs.map +1 -0
- package/fesm2022/sdcorejs-angular-components-modal.mjs +3 -3
- package/fesm2022/sdcorejs-angular-components-operator.mjs +6 -4
- package/fesm2022/sdcorejs-angular-components-operator.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-preview.mjs +8 -8
- package/fesm2022/sdcorejs-angular-components-preview.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-query-bar.mjs +60 -106
- package/fesm2022/sdcorejs-angular-components-query-bar.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-query-builder.mjs +3 -3
- package/fesm2022/sdcorejs-angular-components-quick-action.mjs +3 -3
- package/fesm2022/sdcorejs-angular-components-section.mjs +6 -6
- package/fesm2022/sdcorejs-angular-components-side-drawer.mjs +4 -4
- package/fesm2022/sdcorejs-angular-components-side-drawer.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-splitter.mjs +12 -12
- package/fesm2022/sdcorejs-angular-components-stepper.mjs +6 -6
- package/fesm2022/sdcorejs-angular-components-tab-router.mjs +18 -18
- package/fesm2022/sdcorejs-angular-components-tab.mjs +6 -6
- package/fesm2022/sdcorejs-angular-components-table.mjs +335 -208
- package/fesm2022/sdcorejs-angular-components-table.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-upload-file.mjs +16 -16
- package/fesm2022/sdcorejs-angular-components-upload-file.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components-view.mjs +45 -13
- package/fesm2022/sdcorejs-angular-components-view.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-components.mjs +1 -0
- package/fesm2022/sdcorejs-angular-components.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-directives.mjs +21 -21
- package/fesm2022/sdcorejs-angular-forms-autocomplete.mjs +28 -8
- package/fesm2022/sdcorejs-angular-forms-autocomplete.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-checkbox.mjs +11 -6
- package/fesm2022/sdcorejs-angular-forms-checkbox.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-chip-calendar.mjs +15 -10
- package/fesm2022/sdcorejs-angular-forms-chip-calendar.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-chip.mjs +15 -10
- package/fesm2022/sdcorejs-angular-forms-chip.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-date-range.mjs +21 -12
- package/fesm2022/sdcorejs-angular-forms-date-range.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-date.mjs +29 -17
- package/fesm2022/sdcorejs-angular-forms-date.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-datetime.mjs +34 -22
- package/fesm2022/sdcorejs-angular-forms-datetime.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-directives.mjs +12 -12
- package/fesm2022/sdcorejs-angular-forms-inline-text.mjs +167 -0
- package/fesm2022/sdcorejs-angular-forms-inline-text.mjs.map +1 -0
- package/fesm2022/sdcorejs-angular-forms-input-color.mjs +7 -5
- package/fesm2022/sdcorejs-angular-forms-input-color.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-input-number.mjs +37 -10
- package/fesm2022/sdcorejs-angular-forms-input-number.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-input.mjs +38 -12
- package/fesm2022/sdcorejs-angular-forms-input.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-label.mjs +3 -3
- package/fesm2022/sdcorejs-angular-forms-models.mjs +32 -2
- package/fesm2022/sdcorejs-angular-forms-models.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-radio.mjs +11 -6
- package/fesm2022/sdcorejs-angular-forms-radio.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-select.mjs +36 -12
- package/fesm2022/sdcorejs-angular-forms-select.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-switch.mjs +11 -6
- package/fesm2022/sdcorejs-angular-forms-switch.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms-textarea.mjs +17 -7
- package/fesm2022/sdcorejs-angular-forms-textarea.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-forms.mjs +4 -4
- package/fesm2022/sdcorejs-angular-handlers.mjs +3 -3
- package/fesm2022/sdcorejs-angular-i18n.mjs +26 -6
- package/fesm2022/sdcorejs-angular-i18n.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-interceptors.mjs +6 -6
- package/fesm2022/sdcorejs-angular-modules-auth.mjs +9 -9
- package/fesm2022/sdcorejs-angular-modules-authom.mjs +7 -7
- package/fesm2022/sdcorejs-angular-modules-keycloak.mjs +7 -7
- package/fesm2022/sdcorejs-angular-modules-layout.mjs +73 -73
- package/fesm2022/sdcorejs-angular-modules-permission.mjs +9 -9
- package/fesm2022/sdcorejs-angular-pipes.mjs +14 -14
- package/fesm2022/sdcorejs-angular-services-api.mjs +10 -10
- package/fesm2022/sdcorejs-angular-services-cache.mjs +3 -3
- package/fesm2022/sdcorejs-angular-services-confirm.mjs +6 -6
- package/fesm2022/sdcorejs-angular-services-confirm.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-docx.mjs +3 -3
- package/fesm2022/sdcorejs-angular-services-excel.mjs +3 -3
- package/fesm2022/sdcorejs-angular-services-license.mjs +3 -3
- package/fesm2022/sdcorejs-angular-services-loading.mjs +3 -3
- package/fesm2022/sdcorejs-angular-services-notify.mjs +23 -10
- package/fesm2022/sdcorejs-angular-services-notify.mjs.map +1 -1
- package/fesm2022/sdcorejs-angular-services-storage.mjs +3 -3
- package/forms/autocomplete/index.d.ts +16 -3
- package/forms/checkbox/index.d.ts +5 -1
- package/forms/chip/index.d.ts +5 -2
- package/forms/chip-calendar/index.d.ts +5 -2
- package/forms/date/index.d.ts +14 -5
- package/forms/date-range/index.d.ts +12 -5
- package/forms/datetime/index.d.ts +14 -5
- package/forms/inline-text/index.d.ts +80 -0
- package/forms/input/index.d.ts +14 -2
- package/forms/input-color/index.d.ts +3 -1
- package/forms/input-number/index.d.ts +14 -2
- package/forms/models/index.d.ts +40 -2
- package/forms/radio/index.d.ts +5 -2
- package/forms/select/index.d.ts +23 -5
- package/forms/switch/index.d.ts +5 -2
- package/forms/textarea/index.d.ts +9 -2
- package/i18n/index.d.ts +4 -0
- package/package.json +10 -1
package/forms/models/index.d.ts
CHANGED
|
@@ -81,5 +81,43 @@ interface SdFormControlSnapshot<T> {
|
|
|
81
81
|
*/
|
|
82
82
|
declare function sdFormControlState<T = unknown>(control: Signal<AbstractControl<T> | null | undefined>): Signal<SdFormControlSnapshot<T>>;
|
|
83
83
|
|
|
84
|
-
|
|
85
|
-
|
|
84
|
+
/**
|
|
85
|
+
* Three display states shared by sd-form-controls:
|
|
86
|
+
* - `false` → full edit chrome (input / dropdown).
|
|
87
|
+
* - `true` → static read-only view (`<sd-view>` text), no editor.
|
|
88
|
+
* - `'inline'` → the editor is STILL rendered (so its panel works), but its chrome is
|
|
89
|
+
* hidden; the `<sd-view>` text is the visible face / trigger. Click the text to open
|
|
90
|
+
* the picker's panel. The text is retained while the panel is open — it only changes
|
|
91
|
+
* when a new value is committed (JIRA-style click-to-edit).
|
|
92
|
+
*/
|
|
93
|
+
type SdViewed = boolean | 'inline';
|
|
94
|
+
type SdViewedInput = SdViewed | '' | null | undefined;
|
|
95
|
+
/**
|
|
96
|
+
* `viewed` input transform. Keeps `booleanAttribute` coercion so a bare attribute
|
|
97
|
+
* (`<sd-select viewed>`) still resolves to `true`, but intercepts the literal
|
|
98
|
+
* `'inline'` first — `booleanAttribute('inline')` would otherwise coerce it to `true`.
|
|
99
|
+
*/
|
|
100
|
+
declare function sdViewedTransform(v: SdViewedInput): SdViewed;
|
|
101
|
+
interface SdViewedInlineApi {
|
|
102
|
+
/** `viewed() === 'inline'` — editor rendered but chrome hidden; sd-view text is the trigger face. */
|
|
103
|
+
readonly isInline: Signal<boolean>;
|
|
104
|
+
/** `viewed() === true` — static read-only view (no editor rendered). */
|
|
105
|
+
readonly isViewed: Signal<boolean>;
|
|
106
|
+
/** Open the picker from the inline text face. No-op unless `'inline'`. */
|
|
107
|
+
enterInlineEdit(): void;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Compose the tri-state `viewed` semantics into a control. `open` opens the control's
|
|
111
|
+
* native picker (mat-select panel / mat-calendar / overlay). In `'inline'` mode the editor
|
|
112
|
+
* is always rendered (chrome hidden via CSS), so `open()` can fire immediately on click —
|
|
113
|
+
* no render-swap, the view text never disappears.
|
|
114
|
+
*
|
|
115
|
+
* @param viewed the control's `viewed` input signal.
|
|
116
|
+
* @param open opens the control's picker; called by `enterInlineEdit`.
|
|
117
|
+
* @param disabled the control's disabled state. why: a disabled `'inline'` field must behave
|
|
118
|
+
* like `viewed=true` (static, NOT click-to-edit) — you can't edit a disabled control.
|
|
119
|
+
*/
|
|
120
|
+
declare function sdViewedInline(viewed: Signal<SdViewed>, open?: () => void, disabled?: Signal<boolean>): SdViewedInlineApi;
|
|
121
|
+
|
|
122
|
+
export { HandleSdCustomValidator, SD_FORM_CONFIGURATION, SdFormControl, SdInlineErrorValidator, sdFormControlState, sdViewedInline, sdViewedTransform };
|
|
123
|
+
export type { ISdFormConfiguration, SdCustomValidator, SdFormControlSnapshot, SdSearch, SdSearchReq, SdSelectionData, SdViewed, SdViewedInlineApi, SdViewedInput };
|
package/forms/radio/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import * as _angular_core from '@angular/core';
|
|
|
2
2
|
import { OnInit, AfterViewInit, OnDestroy } from '@angular/core';
|
|
3
3
|
import { FormGroup } from '@angular/forms';
|
|
4
4
|
import { SdSuffixDefDirective, SdLabelDefDirective, SdViewDefDirective } from '@sdcorejs/angular/forms/directives';
|
|
5
|
-
import { SdFormControl } from '@sdcorejs/angular/forms/models';
|
|
5
|
+
import { SdFormControl, SdViewed, SdViewedInput } from '@sdcorejs/angular/forms/models';
|
|
6
6
|
import { Color } from '@sdcorejs/utils/models';
|
|
7
7
|
|
|
8
8
|
declare class SdRadio implements OnInit, AfterViewInit, OnDestroy {
|
|
@@ -21,7 +21,10 @@ declare class SdRadio implements OnInit, AfterViewInit, OnDestroy {
|
|
|
21
21
|
readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
22
22
|
readonly inlineError: _angular_core.InputSignalWithTransform<string | undefined, string | null | undefined>;
|
|
23
23
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
24
|
-
|
|
24
|
+
/** Display mode: `false` edit · `true` static view · `'inline'` interactive (disabled `'inline'` → static). */
|
|
25
|
+
readonly viewed: _angular_core.InputSignalWithTransform<SdViewed, SdViewedInput>;
|
|
26
|
+
/** `true` when the static read-only view should render. */
|
|
27
|
+
readonly isViewed: _angular_core.Signal<boolean>;
|
|
25
28
|
readonly color: _angular_core.InputSignalWithTransform<Color, Color | null | undefined>;
|
|
26
29
|
readonly hyperlink: _angular_core.InputSignalWithTransform<string | undefined, string | null | undefined>;
|
|
27
30
|
readonly model: _angular_core.ModelSignal<string | number | boolean | null | undefined>;
|
package/forms/select/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ import { MatFormFieldAppearance, FloatLabelType } from '@angular/material/form-f
|
|
|
5
5
|
import { MatInput } from '@angular/material/input';
|
|
6
6
|
import { MatSelect, MatSelectChange } from '@angular/material/select';
|
|
7
7
|
import { SdItemDefDefDirective, SdViewDefDirective } from '@sdcorejs/angular/forms/directives';
|
|
8
|
-
import { SdCustomValidator, SdSearch, SdSelectionData, SdFormControl } from '@sdcorejs/angular/forms/models';
|
|
8
|
+
import { SdViewed, SdViewedInput, SdCustomValidator, SdSearch, SdSelectionData, SdFormControl } from '@sdcorejs/angular/forms/models';
|
|
9
9
|
import { Size } from '@sdcorejs/utils/models';
|
|
10
10
|
|
|
11
11
|
declare class SdSelect<T extends object | string | number = Record<string, unknown>> implements OnInit {
|
|
@@ -17,6 +17,13 @@ declare class SdSelect<T extends object | string | number = Record<string, unkno
|
|
|
17
17
|
sdValueTemplate: Signal<TemplateRef<any> | undefined>;
|
|
18
18
|
itemDef: Signal<SdItemDefDefDirective<any> | undefined>;
|
|
19
19
|
sdViewDef: Signal<SdViewDefDirective<any, any> | undefined>;
|
|
20
|
+
/**
|
|
21
|
+
* View display template. `sdViewDef` is now just a custom override of the view rendering —
|
|
22
|
+
* it replaces the projected `#sdValue` template when present (fed into `<sd-view>`'s
|
|
23
|
+
* `valueTemplate`), so there is ONE rendering path. No more `.sd-view` class / focus-swap;
|
|
24
|
+
* click-to-edit is governed by `viewed='inline'`.
|
|
25
|
+
*/
|
|
26
|
+
readonly viewTemplate: Signal<TemplateRef<any> | undefined>;
|
|
20
27
|
autoIdInput: _angular_core.InputSignal<string | null | undefined>;
|
|
21
28
|
autoId: Signal<string | undefined>;
|
|
22
29
|
readonly dataDisabled: Signal<"true" | "false">;
|
|
@@ -42,10 +49,21 @@ declare class SdSelect<T extends object | string | number = Record<string, unkno
|
|
|
42
49
|
hideInlineError: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
43
50
|
required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
44
51
|
disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
45
|
-
|
|
52
|
+
/** Display mode: `false` edit · `true` static view · `'inline'` view + click-to-edit (bare editor). */
|
|
53
|
+
viewed: _angular_core.InputSignalWithTransform<SdViewed, SdViewedInput>;
|
|
46
54
|
multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
47
|
-
/**
|
|
48
|
-
|
|
55
|
+
/**
|
|
56
|
+
* Whether the `viewed='inline'` text face shows a hover clear-× to empty the value.
|
|
57
|
+
* Default `true`. Set `false` where the HOST owns removal (e.g. `<sd-query-bar>` chips,
|
|
58
|
+
* whose own `×` removes the whole filter) so the chip isn't cluttered with two ×.
|
|
59
|
+
*/
|
|
60
|
+
clearable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
61
|
+
/** `true` when `viewed === 'inline'` — editor mounted but chrome hidden; sd-view text is the trigger face. */
|
|
62
|
+
readonly isInline: Signal<boolean>;
|
|
63
|
+
/** `true` when `viewed === true` — static read-only view, no editor mounted. */
|
|
64
|
+
readonly isViewed: Signal<boolean>;
|
|
65
|
+
/** Open the picker from the inline text face. No-op unless `viewed='inline'`. */
|
|
66
|
+
enterInlineEdit: () => void;
|
|
49
67
|
validator: _angular_core.InputSignal<SdCustomValidator | undefined>;
|
|
50
68
|
inlineError: _angular_core.InputSignal<string | undefined>;
|
|
51
69
|
/**
|
|
@@ -89,7 +107,7 @@ declare class SdSelect<T extends object | string | number = Record<string, unkno
|
|
|
89
107
|
open: () => void;
|
|
90
108
|
onOpenedChange: (isOpened: boolean) => void;
|
|
91
109
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdSelect<any>, never>;
|
|
92
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdSelect<any>, "sd-select", never, { "autoIdInput": { "alias": "autoId"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": true; "isSignal": true; }; "displayField": { "alias": "displayField"; "required": true; "isSignal": true; }; "disabledField": { "alias": "disabledField"; "required": false; "isSignal": true; }; "cacheChecksum": { "alias": "cacheChecksum"; "required": false; "isSignal": true; }; "limit": { "alias": "limit"; "required": false; "isSignal": true; }; "hyperlink": { "alias": "hyperlink"; "required": false; "isSignal": true; }; "minWidthPanel": { "alias": "minWidthPanel"; "required": false; "isSignal": true; }; "hideInlineError": { "alias": "hideInlineError"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "viewed": { "alias": "viewed"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "
|
|
110
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdSelect<any>, "sd-select", never, { "autoIdInput": { "alias": "autoId"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": true; "isSignal": true; }; "displayField": { "alias": "displayField"; "required": true; "isSignal": true; }; "disabledField": { "alias": "disabledField"; "required": false; "isSignal": true; }; "cacheChecksum": { "alias": "cacheChecksum"; "required": false; "isSignal": true; }; "limit": { "alias": "limit"; "required": false; "isSignal": true; }; "hyperlink": { "alias": "hyperlink"; "required": false; "isSignal": true; }; "minWidthPanel": { "alias": "minWidthPanel"; "required": false; "isSignal": true; }; "hideInlineError": { "alias": "hideInlineError"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "viewed": { "alias": "viewed"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "validator": { "alias": "validator"; "required": false; "isSignal": true; }; "inlineError": { "alias": "inlineError"; "required": false; "isSignal": true; }; "appearanceInput": { "alias": "appearance"; "required": false; "isSignal": true; }; "floatLabel": { "alias": "floatLabel"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "valueModel": { "alias": "model"; "required": false; "isSignal": true; }; }, { "valueModel": "modelChange"; "sdChange": "sdChange"; "sdSelection": "sdSelection"; }, ["sdLabelTemplate", "sdValueTemplate", "itemDef", "sdViewDef"], ["[sdLabel]"], true, never>;
|
|
93
111
|
}
|
|
94
112
|
|
|
95
113
|
export { SdSelect };
|
package/forms/switch/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { OnInit, AfterViewInit, OnDestroy } from '@angular/core';
|
|
3
3
|
import { FormGroup } from '@angular/forms';
|
|
4
|
-
import { SdFormControl } from '@sdcorejs/angular/forms/models';
|
|
4
|
+
import { SdFormControl, SdViewed, SdViewedInput } from '@sdcorejs/angular/forms/models';
|
|
5
5
|
import { Color } from '@sdcorejs/utils/models';
|
|
6
6
|
|
|
7
7
|
declare class SdSwitch implements OnInit, AfterViewInit, OnDestroy {
|
|
@@ -14,7 +14,10 @@ declare class SdSwitch implements OnInit, AfterViewInit, OnDestroy {
|
|
|
14
14
|
readonly label: _angular_core.InputSignalWithTransform<string | undefined, string | null | undefined>;
|
|
15
15
|
readonly color: _angular_core.InputSignalWithTransform<Color, Color | null | undefined>;
|
|
16
16
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
17
|
-
|
|
17
|
+
/** Display mode: `false` edit · `true` static view · `'inline'` interactive (disabled `'inline'` → static). */
|
|
18
|
+
readonly viewed: _angular_core.InputSignalWithTransform<SdViewed, SdViewedInput>;
|
|
19
|
+
/** `true` when the static read-only view should render. */
|
|
20
|
+
readonly isViewed: _angular_core.Signal<boolean>;
|
|
18
21
|
readonly hideInlineError: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
19
22
|
readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
20
23
|
readonly model: _angular_core.ModelSignal<boolean | null | undefined>;
|
|
@@ -3,7 +3,7 @@ import { OnInit, AfterViewInit, OnDestroy, ElementRef } from '@angular/core';
|
|
|
3
3
|
import { FormGroup } from '@angular/forms';
|
|
4
4
|
import { MatFormFieldAppearance, FloatLabelType } from '@angular/material/form-field';
|
|
5
5
|
import { SdViewDefDirective, SdLabelDefDirective, SdSuffixDefDirective } from '@sdcorejs/angular/forms/directives';
|
|
6
|
-
import { SdCustomValidator, SdFormControl } from '@sdcorejs/angular/forms/models';
|
|
6
|
+
import { SdViewed, SdViewedInput, SdCustomValidator, SdFormControl } from '@sdcorejs/angular/forms/models';
|
|
7
7
|
import { Size } from '@sdcorejs/utils/models';
|
|
8
8
|
|
|
9
9
|
declare class SdTextarea implements OnInit, AfterViewInit, OnDestroy {
|
|
@@ -33,8 +33,15 @@ declare class SdTextarea implements OnInit, AfterViewInit, OnDestroy {
|
|
|
33
33
|
hideInlineError: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
34
34
|
required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
35
35
|
disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
36
|
-
|
|
36
|
+
/** Display mode: `false` edit · `true` static view · `'inline'` borderless inline-edit (textarea reads like text). */
|
|
37
|
+
viewed: _angular_core.InputSignalWithTransform<SdViewed, SdViewedInput>;
|
|
37
38
|
autoHeight: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
39
|
+
/** `true` when `viewed === 'inline'`. */
|
|
40
|
+
readonly isInline: _angular_core.Signal<boolean>;
|
|
41
|
+
/** `true` when `viewed === true` (static view, no editor). */
|
|
42
|
+
readonly isViewed: _angular_core.Signal<boolean>;
|
|
43
|
+
/** Focus the inline textarea. No-op unless `viewed='inline'`. */
|
|
44
|
+
enterInlineEdit: () => void;
|
|
38
45
|
maxlength: _angular_core.InputSignalWithTransform<number | null, unknown>;
|
|
39
46
|
pattern: _angular_core.InputSignalWithTransform<string | undefined, string | null | undefined>;
|
|
40
47
|
validator: _angular_core.InputSignal<SdCustomValidator | undefined>;
|
package/i18n/index.d.ts
CHANGED
|
@@ -69,7 +69,9 @@ declare const EN_MESSAGES: {
|
|
|
69
69
|
readonly 'core.operator.contain.display': "Contains";
|
|
70
70
|
readonly 'core.operator.not-contain.display': "Does not contain";
|
|
71
71
|
readonly 'core.operator.start-with.display': "Starts with";
|
|
72
|
+
readonly 'core.operator.not-start-with.display': "Does not start with";
|
|
72
73
|
readonly 'core.operator.end-with.display': "Ends with";
|
|
74
|
+
readonly 'core.operator.not-end-with.display': "Does not end with";
|
|
73
75
|
readonly 'core.operator.in.display': "In";
|
|
74
76
|
readonly 'core.operator.not-in.display': "Not in";
|
|
75
77
|
readonly 'core.operator.between.display': "Between";
|
|
@@ -269,6 +271,8 @@ declare const EN_MESSAGES: {
|
|
|
269
271
|
readonly 'core.component.form-builder.empty-hint': "Build your form by dragging fields from the left panel, or press";
|
|
270
272
|
readonly 'core.component.form-builder.conditional': "Conditional";
|
|
271
273
|
readonly 'core.component.form-builder.group-drop-here': "Drop a field here to add it to this group";
|
|
274
|
+
readonly 'core.component.form-builder.edit-group': "Edit group";
|
|
275
|
+
readonly 'core.component.form-builder.group-empty-hint': "Click Details to add fields to this group";
|
|
272
276
|
readonly 'core.component.form-builder.hidden': "Hidden";
|
|
273
277
|
readonly 'core.component.form-builder.read-only': "Read only";
|
|
274
278
|
readonly 'core.component.form-builder.untitled': "Untitled";
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sdcorejs/angular",
|
|
3
|
-
"version": "20.0.
|
|
3
|
+
"version": "20.0.3",
|
|
4
|
+
"license": "MIT",
|
|
4
5
|
"peerDependencies": {
|
|
5
6
|
"@angular/common": "^19.0.0 || ^20.0.0 || ^21.0.0",
|
|
6
7
|
"@angular/core": "^19.0.0 || ^20.0.0 || ^21.0.0",
|
|
@@ -104,6 +105,10 @@
|
|
|
104
105
|
"types": "./components/modal/index.d.ts",
|
|
105
106
|
"default": "./fesm2022/sdcorejs-angular-components-modal.mjs"
|
|
106
107
|
},
|
|
108
|
+
"./components/modal-resizable": {
|
|
109
|
+
"types": "./components/modal-resizable/index.d.ts",
|
|
110
|
+
"default": "./fesm2022/sdcorejs-angular-components-modal-resizable.mjs"
|
|
111
|
+
},
|
|
107
112
|
"./components/operator": {
|
|
108
113
|
"types": "./components/operator/index.d.ts",
|
|
109
114
|
"default": "./fesm2022/sdcorejs-angular-components-operator.mjs"
|
|
@@ -204,6 +209,10 @@
|
|
|
204
209
|
"types": "./forms/directives/index.d.ts",
|
|
205
210
|
"default": "./fesm2022/sdcorejs-angular-forms-directives.mjs"
|
|
206
211
|
},
|
|
212
|
+
"./forms/inline-text": {
|
|
213
|
+
"types": "./forms/inline-text/index.d.ts",
|
|
214
|
+
"default": "./fesm2022/sdcorejs-angular-forms-inline-text.mjs"
|
|
215
|
+
},
|
|
207
216
|
"./forms/input": {
|
|
208
217
|
"types": "./forms/input/index.d.ts",
|
|
209
218
|
"default": "./fesm2022/sdcorejs-angular-forms-input.mjs"
|