hisonvue 1.1.21 → 1.1.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +260 -260
  3. package/dist/{HAccordion-Djhoj_2Q.mjs → HAccordion-BFl1mLFn.mjs} +2 -2
  4. package/dist/{HAccordion-a5UZil7t.js → HAccordion-D4VuY7dP.js} +1 -1
  5. package/dist/{HBaggie-CD26mD1p.js → HBaggie-B2-hUbeO.js} +1 -1
  6. package/dist/{HBaggie-YMHv54ny.mjs → HBaggie-Cu0cqy_0.mjs} +2 -2
  7. package/dist/{HBanner-DEcDBbAa.js → HBanner-Bbp_22he.js} +1 -1
  8. package/dist/{HBanner-Glkj36dA.mjs → HBanner-CJhgh8Av.mjs} +2 -2
  9. package/dist/{HButton-DlOQpSFM.mjs → HButton-BJy7qJxO.mjs} +2 -2
  10. package/dist/{HButton-zN47uq3g.js → HButton-CnI66WaY.js} +1 -1
  11. package/dist/{HCalendar-PxP8M1kE.js → HCalendar-Birc716P.js} +2 -2
  12. package/dist/{HCalendar-Cr2oVDTO.mjs → HCalendar-CkzhtP-a.mjs} +2 -2
  13. package/dist/{HCaption-BbrgZlbJ.mjs → HCaption-CvfOGjLH.mjs} +1 -1
  14. package/dist/{HCaption-DxOZcWcP.js → HCaption-o7zHNPFi.js} +1 -1
  15. package/dist/{HChart-BcslvuI8.mjs → HChart-9HpLcSAF.mjs} +1 -1
  16. package/dist/{HChart-D217Yxxq.js → HChart-CRNhurrL.js} +1 -1
  17. package/dist/HDrawer-C4C1soyr.js +1 -0
  18. package/dist/{HDrawer-DlMTX7M_.mjs → HDrawer-_GV5YZAt.mjs} +163 -163
  19. package/dist/{HDropdown-BhJOYbaN.js → HDropdown-CZOjJzGI.js} +1 -1
  20. package/dist/{HDropdown-CvV8k1qQ.mjs → HDropdown-rOSEF1le.mjs} +2 -2
  21. package/dist/{HFileset-C6dqnLa8.js → HFileset-BWdpsZxK.js} +1 -1
  22. package/dist/{HFileset-x00ZXjyE.mjs → HFileset-DEtMGoeG.mjs} +1 -1
  23. package/dist/{HGap-Do40sUXA.mjs → HGap-Bu7F233f.mjs} +1 -1
  24. package/dist/{HGap-BgzODoWp.js → HGap-DzddYH3m.js} +1 -1
  25. package/dist/{HGrid-Dp7v84g5.mjs → HGrid--_YRxc-I.mjs} +1 -1
  26. package/dist/{HGrid-CAU32_zq.js → HGrid-Bt_iy9Kt.js} +1 -1
  27. package/dist/{HImagebox-FYftlSK2.mjs → HImagebox-BOE4P4WI.mjs} +1 -1
  28. package/dist/{HImagebox-XTSKnoBD.js → HImagebox-BSjnoCEL.js} +1 -1
  29. package/dist/HInput-BPqc5Yki.js +1 -0
  30. package/dist/{HInput-CInEGmfe.mjs → HInput-WrTJ-7Za.mjs} +364 -451
  31. package/dist/HInputGroup-B9TLmdJA.mjs +320 -0
  32. package/dist/HInputGroup-CmYq67bE.js +1 -0
  33. package/dist/{HLabel-uSniKpDF.js → HLabel-BOD2RCZp.js} +1 -1
  34. package/dist/{HLabel-B4n5-mtx.mjs → HLabel-D5wM-IkN.mjs} +2 -2
  35. package/dist/{HLayout-BsPro3dN.mjs → HLayout-B5lrXA5M.mjs} +1 -1
  36. package/dist/{HLayout-wEq-lzHN.js → HLayout-ddBZkvt_.js} +1 -1
  37. package/dist/{HList-DcV0Ssb3.js → HList-CAsiBzwq.js} +1 -1
  38. package/dist/{HList-Dko7kLGO.mjs → HList-qvvMg1GY.mjs} +2 -2
  39. package/dist/{HModal-BkjH2wMJ.js → HModal-CK9wkc73.js} +1 -1
  40. package/dist/{HModal-D_vWZ5My.mjs → HModal-DxuxiUAp.mjs} +1 -1
  41. package/dist/{HNote-CbfXDxO2.mjs → HNote-8-eRuRxV.mjs} +2 -2
  42. package/dist/HNote-DAiqR0NK.js +1 -0
  43. package/dist/{HPagination-HDTloKdH.js → HPagination-D2EbHt09.js} +1 -1
  44. package/dist/{HPagination-Cq2OV1tY.mjs → HPagination-DSfxM1dp.mjs} +2 -2
  45. package/dist/{HParagraph-BUGeL78g.mjs → HParagraph-BwXjwyuQ.mjs} +1 -1
  46. package/dist/{HParagraph-Bg2lZxZR.js → HParagraph-CBsf7TXw.js} +1 -1
  47. package/dist/{HPopup-Lqxe1H-e.mjs → HPopup-CFt35psB.mjs} +1 -1
  48. package/dist/{HPopup-3KITyE24.js → HPopup-DF9ffRS8.js} +1 -1
  49. package/dist/{HSpinner-BqVl4t2n.js → HSpinner-CUBK5bDY.js} +1 -1
  50. package/dist/{HSpinner-VJJNUuXg.mjs → HSpinner-DYOnQbZ_.mjs} +1 -1
  51. package/dist/{HTable-6O4rYicc.mjs → HTable-CTqwvXER.mjs} +1 -1
  52. package/dist/{HTable-DzbCLDIn.js → HTable-Y-8ga-98.js} +1 -1
  53. package/dist/hisonvue.cjs.js +1 -1
  54. package/dist/hisonvue.css +1 -1
  55. package/dist/hisonvue.d.ts +97 -64
  56. package/dist/hisonvue.es.js +2 -2
  57. package/dist/{index-5k-aAQlJ.js → index-B6cKtmm6.js} +3 -3
  58. package/dist/{index-Cvhi7T4w.mjs → index-HfC1PNxb.mjs} +5 -7
  59. package/dist/{setButtonCssEvent-BScAn_gY.mjs → setButtonCssEvent-DKQg_9AF.mjs} +1 -1
  60. package/dist/{setButtonCssEvent-BI-R9EJt.js → setButtonCssEvent-fK8lE3Ve.js} +1 -1
  61. package/nuxt/module.mjs +40 -40
  62. package/nuxt/plugin.mjs +21 -21
  63. package/nuxt/warn-filter.mjs +41 -41
  64. package/package.json +56 -56
  65. package/dist/HDrawer-CtMgceI2.js +0 -1
  66. package/dist/HInput-DxhtO9q3.js +0 -1
  67. package/dist/HInputGroup-Cou5-12U.mjs +0 -281
  68. package/dist/HInputGroup-DrjZO_7J.js +0 -1
  69. package/dist/HNote-DQr6iUu0.js +0 -1
@@ -8245,6 +8245,10 @@ id: {
8245
8245
  type: StringConstructor;
8246
8246
  required: boolean;
8247
8247
  };
8248
+ dataKey: {
8249
+ type: StringConstructor;
8250
+ required: boolean;
8251
+ };
8248
8252
  name: {
8249
8253
  type: StringConstructor;
8250
8254
  required: boolean;
@@ -8360,11 +8364,6 @@ uncheckedText: {
8360
8364
  type: StringConstructor;
8361
8365
  default: string;
8362
8366
  };
8363
- tabIndex: {
8364
- type: PropType<number | string | null>;
8365
- default: null;
8366
- validator: (v: any) => boolean;
8367
- };
8368
8367
  inputTextdHandler: {
8369
8368
  type: PropType<(value: any) => string>;
8370
8369
  default: undefined;
@@ -8374,6 +8373,11 @@ type: PropType<"default" | "switch">;
8374
8373
  default: string;
8375
8374
  validator: (v: any) => boolean;
8376
8375
  };
8376
+ tabIndex: {
8377
+ type: PropType<number | string | null>;
8378
+ default: null;
8379
+ validator: (v: any) => boolean;
8380
+ };
8377
8381
  }>, {
8378
8382
  inputRef: Ref<HTMLTextAreaElement | HTMLSelectElement | HTMLInputElement | null, HTMLTextAreaElement | HTMLSelectElement | HTMLInputElement | null>;
8379
8383
  inputTextRef: Ref<HTMLInputElement | null, HTMLInputElement | null>;
@@ -8381,6 +8385,8 @@ inputMethods: ComputedRef<HInputMethods | {
8381
8385
  getType: () => "input";
8382
8386
  getName: () => string;
8383
8387
  setName: (name: string) => void;
8388
+ getDataKey: () => string;
8389
+ setDataKey: (dataKey: string) => void;
8384
8390
  getText: () => string;
8385
8391
  getValue: () => any;
8386
8392
  setValue: (value: any) => void;
@@ -8442,6 +8448,10 @@ id: {
8442
8448
  type: StringConstructor;
8443
8449
  required: boolean;
8444
8450
  };
8451
+ dataKey: {
8452
+ type: StringConstructor;
8453
+ required: boolean;
8454
+ };
8445
8455
  name: {
8446
8456
  type: StringConstructor;
8447
8457
  required: boolean;
@@ -8557,11 +8567,6 @@ uncheckedText: {
8557
8567
  type: StringConstructor;
8558
8568
  default: string;
8559
8569
  };
8560
- tabIndex: {
8561
- type: PropType<number | string | null>;
8562
- default: null;
8563
- validator: (v: any) => boolean;
8564
- };
8565
8570
  inputTextdHandler: {
8566
8571
  type: PropType<(value: any) => string>;
8567
8572
  default: undefined;
@@ -8571,6 +8576,11 @@ type: PropType<"default" | "switch">;
8571
8576
  default: string;
8572
8577
  validator: (v: any) => boolean;
8573
8578
  };
8579
+ tabIndex: {
8580
+ type: PropType<number | string | null>;
8581
+ default: null;
8582
+ validator: (v: any) => boolean;
8583
+ };
8574
8584
  }>> & Readonly<{
8575
8585
  onClick?: ((...args: any[]) => any) | undefined;
8576
8586
  onInput?: ((...args: any[]) => any) | undefined;
@@ -8654,6 +8664,10 @@ id: {
8654
8664
  type: StringConstructor;
8655
8665
  required: boolean;
8656
8666
  };
8667
+ dataKey: {
8668
+ type: StringConstructor;
8669
+ required: boolean;
8670
+ };
8657
8671
  name: {
8658
8672
  type: StringConstructor;
8659
8673
  required: boolean;
@@ -8769,11 +8783,6 @@ uncheckedText: {
8769
8783
  type: StringConstructor;
8770
8784
  default: string;
8771
8785
  };
8772
- tabIndex: {
8773
- type: PropType<number | string | null>;
8774
- default: null;
8775
- validator: (v: any) => boolean;
8776
- };
8777
8786
  inputTextdHandler: {
8778
8787
  type: PropType<(value: any) => string>;
8779
8788
  default: undefined;
@@ -8783,6 +8792,11 @@ type: PropType<"default" | "switch">;
8783
8792
  default: string;
8784
8793
  validator: (v: any) => boolean;
8785
8794
  };
8795
+ tabIndex: {
8796
+ type: PropType<number | string | null>;
8797
+ default: null;
8798
+ validator: (v: any) => boolean;
8799
+ };
8786
8800
  }>> & Readonly<{
8787
8801
  onClick?: ((...args: any[]) => any) | undefined;
8788
8802
  onInput?: ((...args: any[]) => any) | undefined;
@@ -9133,6 +9147,18 @@ export declare interface HInputMethods extends ComponentMethods {
9133
9147
  * - Does **not** toggle the radio’s checked state by itself.
9134
9148
  */
9135
9149
  setName(name: string): void;
9150
+ /**
9151
+ * Gets the data extraction key for `HInputGroup`.
9152
+ * - Used as the key when `HInputGroup` extracts data.
9153
+ * - If empty, `HInput` falls back to `id`.
9154
+ */
9155
+ getDataKey(): string;
9156
+ /**
9157
+ * Sets the data extraction key for `HInputGroup`.
9158
+ * - If empty, it falls back to `id`.
9159
+ * - This does not change the runtime identifier (`id`).
9160
+ */
9161
+ setDataKey(dataKey: string): void;
9136
9162
  /**
9137
9163
  * Returns the formatted display text shown in the span layer.
9138
9164
  * - Applies `format`, `nullText`, and masking logic based on `type`.
@@ -18965,12 +18991,13 @@ declare module 'vue' {
18965
18991
  * - For `inputType="radio"`, the HTML `name` attribute **defines the group**.
18966
18992
  * - `HInputGroup` aggregates radios by `name` and exposes/accepts values in the shape:
18967
18993
  * ```ts
18968
- * { [name: string]: selectedRadioId | null }
18994
+ * { [name: string]: selectedRadioKey | null }
18969
18995
  * ```
18970
- * where `selectedRadioId` is the `id` of the checked `HInput` in that group.
18996
+ * where `selectedRadioKey` is the `dataKey` of the checked `HInput`
18997
+ * (falls back to `id` when `dataKey` is omitted or empty).
18971
18998
  * - When the user checks a radio:
18972
18999
  * - The radio’s own `v-model` becomes `true` (others in the same group become `false`).
18973
- * - The parent `HInputGroup` updates its mapping `{ [name]: id | null }`.
19000
+ * - The parent `HInputGroup` updates its mapping `{ [name]: dataKey | null }` (fallback to `id`).
18974
19001
  * - If there is **no initial value** (no `v-model` provided), radios/checkboxes default to:
18975
19002
  * - `getValue() === false`
18976
19003
  * - `getText() === uncheckedText`
@@ -18983,13 +19010,13 @@ declare module 'vue' {
18983
19010
  * <HInput id="r3" inputType="radio" name="theme" />
18984
19011
  * </HInputGroup>
18985
19012
  * ```
18986
- * - Group `lang` → `{ lang: "r1" }`
19013
+ * - Group `lang` → `{ lang: "r1" }` (or the checked radio’s `dataKey` if provided)
18987
19014
  * - Group `theme` → `{ theme: null }` (none selected)
18988
19015
  *
18989
19016
  * #### Dynamic re-grouping
18990
19017
  * - Calling `setName('newGroup')` on a radio **moves** it to another group at runtime.
18991
19018
  * - `HInputGroup` re-registers the membership and preserves the radio’s checked state,
18992
- * updating its `{ [name]: id | null }` mapping accordingly.
19019
+ * updating its `{ [name]: dataKey | null }` mapping accordingly (fallback to `id`).
18993
19020
  *
18994
19021
  * ---
18995
19022
  *
@@ -19007,9 +19034,11 @@ declare module 'vue' {
19007
19034
  *
19008
19035
  * ---
19009
19036
  *
19010
- * ### 📛 About `id` and `name`
19037
+ * ### 📛 About `id`, `name`, and `dataKey`
19011
19038
  * - `id` is applied to the **editable** input element and is used to access methods via
19012
19039
  * `hison.component.getInput(id)`. If `name` is not provided, it **defaults to** `id`.
19040
+ * - `dataKey` is used by `HInputGroup` when extracting data (`getDataObject()` / `getDataModel()`).
19041
+ * If `dataKey` is omitted or empty, it falls back to `id`.
19013
19042
  * - For the **readonly display** (span-text) that uses a hidden text input for layout consistency
19014
19043
  * (i.e., for types other than `range`, `color`, `checkbox`, `radio`, `select`, `textarea`),
19015
19044
  * the component renders:
@@ -19020,9 +19049,11 @@ declare module 'vue' {
19020
19049
  * ---
19021
19050
  *
19022
19051
  * @prop {string} id - Unique input identifier. Enables runtime access via `hison.component.getInput(id)`.
19052
+ * @prop {string} [dataKey] - Data extraction key used by `HInputGroup`. Defaults to `id` when omitted/empty.
19023
19053
  * @prop {string} [name] - HTML `name` attribute. Defaults to `id`.
19024
19054
  * For `inputType="radio"`, this acts as the **group key**. `HInputGroup` will expose/accept the current
19025
- * selection as `{ [name]: selectedRadioId | null }`. When radios share the same `name`, only one can be `true`.
19055
+ * selection as `{ [name]: selectedRadioKey | null }`, where `selectedRadioKey` is the checked radio’s `dataKey`
19056
+ * (fallback to `id`). When radios share the same `name`, only one can be `true`.
19026
19057
  *
19027
19058
  * @prop {string | string[] | Record<string, boolean>} [class] - Additional class string. Supports `hison-*` responsive system.
19028
19059
  * @prop {string | CSSProperties | CSSProperties[]} [style] - Inline CSS style.
@@ -19082,9 +19113,8 @@ declare module 'vue' {
19082
19113
  * and provides group-level runtime control such as loading data, resetting values,
19083
19114
  * validating required fields, and checking modification state.
19084
19115
  *
19085
- * It is especially useful for handling structured form data such as
19086
- * `Record<string, any>`, `DataWrapper`, or `DataModel`, and integrates with
19087
- * `hison.component.getInputGroup(id)` to expose runtime control methods like
19116
+ * It is designed to manage structured form data such as `Record<string, any>` and `DataModel`,
19117
+ * and integrates with `hison.component.getInputGroup(id)` to expose runtime control methods like
19088
19118
  * `.load()`, `.clear()`, `.getDataObject()`, and more.
19089
19119
  *
19090
19120
  * ---
@@ -19093,7 +19123,6 @@ declare module 'vue' {
19093
19123
  * - Automatically registers all child `<HInput>` components rendered inside its `<slot />`.
19094
19124
  * - Supports loading data from:
19095
19125
  * - `Record<string, any>`
19096
- * - `InterfaceDataWrapper`
19097
19126
  * - `InterfaceDataModel`
19098
19127
  * - Two-way binding with `v-model` for entire form data as `Record<string, any>`.
19099
19128
  * - Can reset all child inputs via `.clear()`.
@@ -19105,6 +19134,16 @@ declare module 'vue' {
19105
19134
  *
19106
19135
  * ---
19107
19136
  *
19137
+ * ### 🧩 About `id` and `dataKey`
19138
+ * - Every child `HInput` must have a unique **`id`**. This `id` is used for runtime access
19139
+ * (e.g., `hison.component.getInput(id)`), focus control, and internal registration.
19140
+ * - For group-level data I/O (`v-model`, `getDataObject()`, `load()`, `setDataObject()`),
19141
+ * `HInputGroup` uses each child input’s **`dataKey`** (if provided). If `dataKey` is empty,
19142
+ * it falls back to the input’s `id`.
19143
+ * - If duplicate `dataKey` values exist within the same group, a `console.warn` is emitted.
19144
+ *
19145
+ * ---
19146
+ *
19108
19147
  * ### 🔘 Radio Grouping by `name`
19109
19148
  * - When a child `HInput` has `inputType="radio"`, its **HTML `name`** defines
19110
19149
  * the radio **group key** within this `HInputGroup`.
@@ -19112,14 +19151,14 @@ declare module 'vue' {
19112
19151
  * - **Data shape (I/O)** for radios is normalized to:
19113
19152
  * ```ts
19114
19153
  * // Used in getDataObject(), v-model emits, load(), setDataObject()
19115
- * { [radioGroupName: string]: selectedRadioId | null }
19154
+ * { [radioGroupName: string]: selectedRadioDataKey | null }
19116
19155
  * ```
19117
19156
  * - `radioGroupName`: the `name` of the radio group
19118
- * - `selectedRadioId`: the `id` of the selected `HInput` in that group
19157
+ * - `selectedRadioDataKey`: the selected radio’s `dataKey` (fallback to `id`)
19119
19158
  * - `null`: no selection in that group
19120
- * - Non-radio fields use their **input `id` as key**:
19159
+ * - Non-radio fields use their **`dataKey` as key** (fallback to `id`):
19121
19160
  * ```ts
19122
- * { [inputId: string]: value }
19161
+ * { [dataKey: string]: value }
19123
19162
  * ```
19124
19163
  * - If no initial value is provided, each radio’s local `v-model` is `false`,
19125
19164
  * and the group entry becomes `{ [name]: null }` in the group-level object.
@@ -19128,32 +19167,27 @@ declare module 'vue' {
19128
19167
  * ```vue
19129
19168
  * <HInputGroup id="grp" v-model="form">
19130
19169
  * <!-- group: 'lang' -->
19131
- * <HInput id="r1" inputType="radio" name="lang" :modelValue="true" />
19132
- * <HInput id="r2" inputType="radio" name="lang" />
19133
- *
19134
- * <!-- group: 'theme' -->
19135
- * <HInput id="r3" inputType="radio" name="theme" />
19136
- * <HInput id="r4" inputType="radio" name="theme" />
19170
+ * <HInput id="r1" inputType="radio" name="lang" dataKey="lang_ko" :modelValue="true" />
19171
+ * <HInput id="r2" inputType="radio" name="lang" dataKey="lang_en" />
19137
19172
  *
19138
- * <!-- normal inputs -->
19139
- * <HInput id="email" inputType="email" />
19173
+ * <!-- normal input -->
19174
+ * <HInput id="email" inputType="email" dataKey="user_email" />
19140
19175
  * </HInputGroup>
19141
19176
  * ```
19142
19177
  * - Example result of `getDataObject()` (or v-model binding object):
19143
19178
  * ```ts
19144
19179
  * {
19145
19180
  * // radios by group name
19146
- * lang: "r1",
19147
- * theme: null,
19148
- * // non-radio by id
19149
- * email: "user@example.com"
19181
+ * lang: "lang_ko",
19182
+ * // non-radio by dataKey
19183
+ * user_email: "user@example.com"
19150
19184
  * }
19151
19185
  * ```
19152
19186
  *
19153
19187
  * #### Dynamic re-grouping
19154
19188
  * - When `setName('newGroup')` is called on a radio, that radio moves
19155
19189
  * **to the new group at runtime**. The `HInputGroup` re-registers membership
19156
- * and immediately updates the `{ [name]: id | null }` mapping.
19190
+ * and immediately updates the `{ [name]: dataKey | null }` mapping.
19157
19191
  * - A previously checked radio will transfer to the new group,
19158
19192
  * and the old group’s selection will be reset (leaving `null` if applicable).
19159
19193
  *
@@ -19162,12 +19196,12 @@ declare module 'vue' {
19162
19196
  * ### ⚙️ Usage
19163
19197
  * ```vue
19164
19198
  * <HInputGroup id="group1" v-model="formData" :editMode="'editable'">
19165
- * <HInput id="userid" inputType="text" required />
19166
- * <HInput id="email" inputType="email" />
19199
+ * <HInput id="userid" inputType="text" dataKey="user_id" required />
19200
+ * <HInput id="email" inputType="email" dataKey="email" />
19167
19201
  *
19168
19202
  * <!-- radio group 'agree' -->
19169
- * <HInput id="agreeY" inputType="radio" name="agree" />
19170
- * <HInput id="agreeN" inputType="radio" name="agree" />
19203
+ * <HInput id="agreeY" inputType="radio" name="agree" dataKey="Y" />
19204
+ * <HInput id="agreeN" inputType="radio" name="agree" dataKey="N" />
19171
19205
  * </HInputGroup>
19172
19206
  * ```
19173
19207
  *
@@ -19176,30 +19210,29 @@ declare module 'vue' {
19176
19210
  * ### 🛠 Runtime Usage
19177
19211
  * Use `hison.component.getInputGroup(id)` to access and control the group:
19178
19212
  * ```ts
19179
- * const group = hison.component.getInputGroup('group1');
19213
+ * const group = hison.component.getInputGroup('group1')
19180
19214
  * group.load({
19181
- * userid: 'abc',
19215
+ * user_id: 'abc',
19182
19216
  * email: 'test@example.com',
19183
- * agree: 'agreeY' // radio by group name → selected radio id
19184
- * });
19185
- *
19186
- * const data = group.getDataObject(); // { userid, email, agree }
19187
- * group.clear();
19188
- * group.setStatus('U');
19189
- * group.setEditMode('readonly');
19190
- * const dataModel = group.getDataModel(); // hison.data.DataModel
19191
- * const changed = group.isModified();
19217
+ * agree: 'Y' // radio by group name → selected radio dataKey (fallback to id)
19218
+ * })
19219
+ *
19220
+ * const data = group.getDataObject() // { user_id, email, agree }
19221
+ * group.clear()
19222
+ * group.setStatus('U')
19223
+ * group.setEditMode('readonly')
19224
+ * const dataModel = group.getDataModel() // hison.data.DataModel
19225
+ * const changed = group.isModified()
19192
19226
  * ```
19193
19227
  *
19194
19228
  * ---
19195
19229
  *
19196
19230
  * ### 🔒 Notes
19197
19231
  * - `v-model` is fully supported and emits changes whenever any child `HInput` updates.
19198
- * - Child `HInput` components must have an `id` matching their corresponding data key
19199
- * (except radios, which are keyed by group `name`).
19200
- * - Radios default to `false` when not initialized; group mapping defaults to `null`.
19232
+ * - Child `HInput` **`id`** is always required for runtime control and registration.
19233
+ * - Group data keys use **`dataKey` first** (fallback to `id`) for non-radio fields.
19234
+ * - Radios are keyed by group `name`, and store **selected radio `dataKey`** (fallback to `id`) or `null`.
19201
19235
  * - Inputs auto-sync their values from `v-model` on registration and emit changes upward.
19202
- * - Modification tracking reflects only user-triggered changes.
19203
19236
  * - Grouped `HInput` instances self-register via `provide('registerToInputGroup')`.
19204
19237
  *
19205
19238
  * ---
@@ -19208,8 +19241,8 @@ declare module 'vue' {
19208
19241
  * @prop {('editable' | 'disable' | 'readonly')} [editMode='editable'] - Edit mode.
19209
19242
  * @prop {('C' | 'R' | 'U' | 'D')} [status='R'] - Data status (`C`, `R`, `U`, `D`). Controlled via `.getStatus()` / `.setStatus()`.
19210
19243
  * @prop {Record<string, any>} [modelValue] - Used with `v-model` for two-way binding.
19211
- * - **Non-radio**: keyed by child input **`id`** → value
19212
- * - **Radio**: keyed by radio **`name`** → **selected radio `id`** or `null`
19244
+ * - **Non-radio**: keyed by child input **`dataKey`** (fallback to `id`) → value
19245
+ * - **Radio**: keyed by radio **`name`** → **selected radio `dataKey`** (fallback to `id`) or `null`
19213
19246
  *
19214
19247
  * @event mounted - Fired after mount with `HInputGroupMethods` instance.
19215
19248
  * @event update:modelValue - Fired whenever any child `HInput` changes, emitting the updated object.
@@ -1,5 +1,5 @@
1
- import { Q as a, au as e, av as t } from "./index-Cvhi7T4w.mjs";
2
- import { B as aa, Y as ta, Z as ea, X as oa, ax as na, az as sa, ay as la, f as ia, G as ra, aJ as Aa, aw as ca, V as _a, D as Ea, W as ma, aK as Ca, x as Sa, E as Da, y as Oa, aH as pa, L as La, K as ya, J as Ta, a4 as Va, a5 as Ha, a6 as Fa, a7 as ga, a8 as ua, aL as Ia, m as Ua, a9 as Ma, aa as Na, ab as da, ac as Ga, aI as Pa, ad as Ra, ae as ha, aF as fa, aG as Ba, af as ka, ag as Wa, ah as Ya, ai as Ka, aj as wa, ak as xa, al as ba, am as va, an as za, ao as Xa, ap as $a, aq as ja, ar as Ja, as as qa, k as Qa, H as Za, z as at, A as tt, N as et, O as ot, aA as nt, aB as st, $ as lt, S as it, M as rt, aC as At, i as ct, v as _t, aD as Et, T as mt, _ as Ct, w as St, a1 as Dt, a2 as Ot, a0 as pt, aE as Lt, at as yt, l as Tt, a3 as Vt, I as Ht } from "./index-Cvhi7T4w.mjs";
1
+ import { Q as a, au as e, av as t } from "./index-HfC1PNxb.mjs";
2
+ import { B as aa, Y as ta, Z as ea, X as oa, ax as na, az as sa, ay as la, f as ia, G as ra, aJ as Aa, aw as ca, V as _a, D as Ea, W as ma, aK as Ca, x as Sa, E as Da, y as Oa, aH as pa, L as La, K as ya, J as Ta, a4 as Va, a5 as Ha, a6 as Fa, a7 as ga, a8 as ua, aL as Ia, m as Ua, a9 as Ma, aa as Na, ab as da, ac as Ga, aI as Pa, ad as Ra, ae as ha, aF as fa, aG as Ba, af as ka, ag as Wa, ah as Ya, ai as Ka, aj as wa, ak as xa, al as ba, am as va, an as za, ao as Xa, ap as $a, aq as ja, ar as Ja, as as qa, k as Qa, H as Za, z as at, A as tt, N as et, O as ot, aA as nt, aB as st, $ as lt, S as it, M as rt, aC as At, i as ct, v as _t, aD as Et, T as mt, _ as Ct, w as St, a1 as Dt, a2 as Ot, a0 as pt, aE as Lt, at as yt, l as Tt, a3 as Vt, I as Ht } from "./index-HfC1PNxb.mjs";
3
3
  const n = a.AllDateTimeFormat, s = a.ApiDelete, l = a.ApiDeleteUrl, i = a.ApiGet, r = a.ApiGetUrl, A = a.ApiPatch, c = a.ApiPatchUrl, _ = a.ApiPost, E = a.ApiPostUrl, m = a.ApiPut, C = a.ApiPutUrl, S = a.CachingModule, D = t.ColorSet, O = a.CountDateType, p = a.DataModel, L = a.DataWrapper, y = a.DateFormat, T = a.DateTimeFormat, V = a.DayFormat, H = a.DayOfWeekFormat, F = a.DayOfWeekFullName, g = a.DayOfWeekFullNameKR, u = a.DayOfWeekShortName, I = a.DayOfWeekShortNameKR, U = t.Align, M = t.BasicDataType, N = t.DateFormat, d = t.MonthFormat, G = t.RowStatus, P = t.VerticalAlign, R = a.HourFormat, h = a.HourMinuteFormat, f = a.MinuteFormat, B = a.MonthFormat, k = a.MonthFullName, W = a.MonthShortName, Y = e.NoteModeByDevice, K = e.ToolPosition, w = a.SecondFormat, x = t.SelectionPolicy, b = a.TimeFormat, v = a.YearFormat, z = a.YearMonthFormat, X = a.createHison, $ = t.getVanillagrid, j = t.getVanillagridConfig, J = e.getVanillanote, q = e.getVanillanoteConfig;
4
4
  export {
5
5
  n as AllDateTimeFormat,