@ldquocc/dynamic-form 0.0.9 → 0.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/ldquocc-dynamic-form.mjs +4909 -0
- package/fesm2022/ldquocc-dynamic-form.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/dynamic-form.component.d.ts +67 -0
- package/lib/shared/base/base-select.component.d.ts +19 -0
- package/lib/shared/base/base-value-accessor.d.ts +69 -0
- package/{src/lib/shared/components/component.ts → lib/shared/components/component.d.ts} +14 -34
- package/lib/shared/components/dynamic-field/dynamic-field.component.d.ts +23 -0
- package/lib/shared/components/field-user-config/field-user-config.component.d.ts +10 -0
- package/lib/shared/components/fields/components/suffix/suffix.component.d.ts +12 -0
- package/lib/shared/components/fields/date/date-picker/date-picker.component.d.ts +17 -0
- package/lib/shared/components/fields/date/date-range/date-range.component.d.ts +17 -0
- package/lib/shared/components/fields/input/input-formatted/input-formatted.component.d.ts +20 -0
- package/lib/shared/components/fields/input/input-password/input-password.component.d.ts +12 -0
- package/lib/shared/components/fields/input/input-text/input-text.component.d.ts +14 -0
- package/lib/shared/components/fields/select/multi-select/multi-select.component.d.ts +21 -0
- package/lib/shared/components/fields/select/single-select/single-select.component.d.ts +21 -0
- package/lib/shared/components/fields/select/tree-select/tree-select.component.d.ts +28 -0
- package/lib/shared/components/fields/textarea/textarea.component.d.ts +14 -0
- package/lib/shared/components/fields/upload/avatar-upload/avatar-upload.component.d.ts +25 -0
- package/lib/shared/components/fields/upload/multi-file-upload/multi-file-upload.component.d.ts +76 -0
- package/lib/shared/components/fields/upload/multi-image-upload/multi-image-upload.component.d.ts +27 -0
- package/lib/shared/components/fields/upload/single-file-upload/single-file-upload.component.d.ts +29 -0
- package/lib/shared/config/dynamic-form.config.d.ts +9 -0
- package/lib/shared/consts/common/common.const.d.ts +5 -0
- package/lib/shared/consts/common/field-dependency.const.d.ts +1 -0
- package/lib/shared/consts/common/file.const.d.ts +148 -0
- package/{src/lib/shared/consts/common/index.ts → lib/shared/consts/common/index.d.ts} +4 -4
- package/lib/shared/consts/common/standalone-import.const.d.ts +7 -0
- package/lib/shared/consts/controls/control.const.d.ts +1 -0
- package/{src/lib/shared/consts/controls/index.ts → lib/shared/consts/controls/index.d.ts} +1 -1
- package/lib/shared/consts/fields/date-field.const.d.ts +7 -0
- package/lib/shared/consts/fields/field.const.d.ts +4 -0
- package/{src/lib/shared/consts/fields/index.ts → lib/shared/consts/fields/index.d.ts} +5 -5
- package/lib/shared/consts/fields/input-field.const.d.ts +4 -0
- package/lib/shared/consts/fields/input-formatted-field.const.d.ts +4 -0
- package/lib/shared/consts/fields/radio-field.const.d.ts +10 -0
- package/lib/shared/consts/fields/select-field.const.d.ts +6 -0
- package/lib/shared/consts/fields/upload-field.const.d.ts +1 -0
- package/lib/shared/consts/validators/pattern.const.d.ts +2 -0
- package/lib/shared/enums/common/field-dependency.enum.d.ts +9 -0
- package/lib/shared/enums/common/file-size-type.enum.d.ts +6 -0
- package/{src/lib/shared/enums/common/index.ts → lib/shared/enums/common/index.d.ts} +4 -4
- package/lib/shared/enums/common/output-value-type.enum.d.ts +19 -0
- package/lib/shared/enums/common/view-mode.enum.d.ts +4 -0
- package/lib/shared/enums/controls/control.enum.d.ts +11 -0
- package/{src/lib/shared/enums/controls/index.ts → lib/shared/enums/controls/index.d.ts} +1 -1
- package/lib/shared/enums/fields/date-field.enum.d.ts +4 -0
- package/lib/shared/enums/fields/field.enum.d.ts +20 -0
- package/{src/lib/shared/enums/fields/index.ts → lib/shared/enums/fields/index.d.ts} +6 -6
- package/lib/shared/enums/fields/input-field.enum.d.ts +6 -0
- package/lib/shared/enums/fields/input-formatted-field.enum.d.ts +6 -0
- package/lib/shared/enums/fields/select-field.enum.d.ts +4 -0
- package/lib/shared/enums/fields/upload-field.enum.d.ts +5 -0
- package/lib/shared/enums/form/dynamic-form.enum.d.ts +6 -0
- package/{src/lib/shared/enums/form/index.ts → lib/shared/enums/form/index.d.ts} +1 -1
- package/{src/lib/shared/enums/validators/index.ts → lib/shared/enums/validators/index.d.ts} +2 -2
- package/lib/shared/enums/validators/regex.enum.d.ts +38 -0
- package/lib/shared/enums/validators/validators.enum.d.ts +14 -0
- package/lib/shared/factories/auto-numeric-options.factory.d.ts +5 -0
- package/lib/shared/models/common/api-config.model.d.ts +4 -0
- package/lib/shared/models/common/api-response.model.d.ts +19 -0
- package/lib/shared/models/common/common.model.d.ts +29 -0
- package/lib/shared/models/common/field-dependency.model.d.ts +16 -0
- package/lib/shared/models/common/file-config.model.d.ts +11 -0
- package/{src/lib/shared/models/common/index.ts → lib/shared/models/common/index.d.ts} +7 -7
- package/lib/shared/models/common/obj-field.model.d.ts +59 -0
- package/lib/shared/models/common/object-storage.model.d.ts +15 -0
- package/{src/lib/shared/models/common/output-value-type.model.ts → lib/shared/models/common/output-value-type.model.d.ts} +4 -4
- package/lib/shared/models/common/table-models.d.ts +15 -0
- package/{src/lib/shared/models/common/view-mode.model.ts → lib/shared/models/common/view-mode.model.d.ts} +1 -1
- package/{src/lib/shared/models/controls/control.model.ts → lib/shared/models/controls/control.model.d.ts} +2 -3
- package/{src/lib/shared/models/controls/index.ts → lib/shared/models/controls/index.d.ts} +1 -1
- package/lib/shared/models/fields/date/base-date-field.model.d.ts +19 -0
- package/lib/shared/models/fields/date/date-picker-field.model.d.ts +12 -0
- package/lib/shared/models/fields/date/date-range-field.model.d.ts +12 -0
- package/{src/lib/shared/models/fields/date/index.ts → lib/shared/models/fields/date/index.d.ts} +3 -3
- package/lib/shared/models/fields/field-grid.model.d.ts +9 -0
- package/lib/shared/models/fields/field-group.model.d.ts +21 -0
- package/lib/shared/models/fields/field-user-config.model.d.ts +3 -0
- package/lib/shared/models/fields/field.model.d.ts +57 -0
- package/{src/lib/shared/models/fields/index.ts → lib/shared/models/fields/index.d.ts} +2 -2
- package/{src/lib/shared/models/fields/input/index.ts → lib/shared/models/fields/input/index.d.ts} +4 -4
- package/lib/shared/models/fields/input/input-field.model.d.ts +31 -0
- package/lib/shared/models/fields/input/input-formatted-field.model.d.ts +13 -0
- package/lib/shared/models/fields/input/input-password-field.model.d.ts +11 -0
- package/lib/shared/models/fields/input/input-text-field.model.d.ts +9 -0
- package/lib/shared/models/fields/radio/radio-base-field.model.d.ts +26 -0
- package/lib/shared/models/fields/select/multi-select-field.model.d.ts +11 -0
- package/lib/shared/models/fields/select/select-base-field.model.d.ts +40 -0
- package/lib/shared/models/fields/select/single-select-field.model.d.ts +9 -0
- package/lib/shared/models/fields/select/tree-select-field.model.d.ts +10 -0
- package/lib/shared/models/fields/textarea/textarea-field.model.d.ts +20 -0
- package/lib/shared/models/fields/upload/avatar-upload-field.model.d.ts +9 -0
- package/lib/shared/models/fields/upload/base-upload-field.model.d.ts +25 -0
- package/{src/lib/shared/models/fields/upload/index.ts → lib/shared/models/fields/upload/index.d.ts} +5 -5
- package/lib/shared/models/fields/upload/multi-file-upload-field.model.d.ts +10 -0
- package/lib/shared/models/fields/upload/multi-image-upload-field.model.d.ts +12 -0
- package/lib/shared/models/fields/upload/single-file-upload-field.model.d.ts +11 -0
- package/{src/lib/shared/models/form/dynamic-form.model.ts → lib/shared/models/form/dynamic-form.model.d.ts} +1 -1
- package/{src/lib/shared/models/form/index.ts → lib/shared/models/form/index.d.ts} +1 -1
- package/lib/shared/services/dynamic-form.service.d.ts +48 -0
- package/lib/shared/services/field.service.d.ts +41 -0
- package/lib/shared/services/file.service.d.ts +20 -0
- package/lib/shared/services/form-config.service.d.ts +10 -0
- package/lib/shared/services/form-data.service.d.ts +53 -0
- package/lib/shared/services/form-utils.d.ts +5 -0
- package/lib/shared/services/suffix.service.d.ts +12 -0
- package/lib/shared/services/validation.service.d.ts +10 -0
- package/lib/shared/utils/common/common.utils.d.ts +7 -0
- package/{src/lib/shared/utils/common/index.ts → lib/shared/utils/common/index.d.ts} +1 -1
- package/lib/shared/utils/date/date.utils.d.ts +6 -0
- package/{src/lib/shared/utils/date/index.ts → lib/shared/utils/date/index.d.ts} +1 -1
- package/lib/shared/utils/dynamic-form/dynamic-form.d.ts +11 -0
- package/lib/shared/utils/fields/fields.d.ts +20 -0
- package/{src/lib/shared/utils/fields/index.ts → lib/shared/utils/fields/index.d.ts} +1 -1
- package/lib/shared/utils/file/file.utils.d.ts +4 -0
- package/{src/lib/shared/utils/file/index.ts → lib/shared/utils/file/index.d.ts} +1 -1
- package/lib/shared/utils/validators/custom-validators.d.ts +11 -0
- package/lib/shared/utils/validators/default-error-message.d.ts +6 -0
- package/{src/lib/shared/utils/validators/index.ts → lib/shared/utils/validators/index.d.ts} +3 -3
- package/lib/shared/utils/validators/pattern.d.ts +4 -0
- package/package.json +31 -20
- package/{src/public-api.ts → public-api.d.ts} +29 -68
- package/ng-package.json +0 -15
- package/src/lib/dynamic-form.component.html +0 -121
- package/src/lib/dynamic-form.component.scss +0 -7
- package/src/lib/dynamic-form.component.spec.ts +0 -21
- package/src/lib/dynamic-form.component.ts +0 -237
- package/src/lib/dynamic-form.service.spec.ts +0 -16
- package/src/lib/dynamic-form.service.ts +0 -9
- package/src/lib/shared/base/base-select.component.ts +0 -183
- package/src/lib/shared/base/base-value-accessor.ts +0 -192
- package/src/lib/shared/components/d-form-testing/d-form-testing.component.html +0 -197
- package/src/lib/shared/components/d-form-testing/d-form-testing.component.less +0 -12
- package/src/lib/shared/components/d-form-testing/d-form-testing.component.spec.ts +0 -22
- package/src/lib/shared/components/d-form-testing/d-form-testing.component.ts +0 -197
- package/src/lib/shared/components/dynamic-field/dynamic-field.component.html +0 -218
- package/src/lib/shared/components/dynamic-field/dynamic-field.component.scss +0 -28
- package/src/lib/shared/components/dynamic-field/dynamic-field.component.spec.ts +0 -21
- package/src/lib/shared/components/dynamic-field/dynamic-field.component.ts +0 -67
- package/src/lib/shared/components/field-user-config/field-user-config.component.html +0 -38
- package/src/lib/shared/components/field-user-config/field-user-config.component.scss +0 -29
- package/src/lib/shared/components/field-user-config/field-user-config.component.ts +0 -33
- package/src/lib/shared/components/fields/components/suffix/suffix.component.html +0 -42
- package/src/lib/shared/components/fields/components/suffix/suffix.component.scss +0 -3
- package/src/lib/shared/components/fields/components/suffix/suffix.component.spec.ts +0 -22
- package/src/lib/shared/components/fields/components/suffix/suffix.component.ts +0 -32
- package/src/lib/shared/components/fields/date/date-picker/date-picker.component.html +0 -20
- package/src/lib/shared/components/fields/date/date-picker/date-picker.component.scss +0 -5
- package/src/lib/shared/components/fields/date/date-picker/date-picker.component.spec.ts +0 -21
- package/src/lib/shared/components/fields/date/date-picker/date-picker.component.ts +0 -148
- package/src/lib/shared/components/fields/date/date-range/date-range.component.html +0 -33
- package/src/lib/shared/components/fields/date/date-range/date-range.component.scss +0 -22
- package/src/lib/shared/components/fields/date/date-range/date-range.component.spec.ts +0 -21
- package/src/lib/shared/components/fields/date/date-range/date-range.component.ts +0 -133
- package/src/lib/shared/components/fields/input/input-formatted/input-formatted.component.html +0 -31
- package/src/lib/shared/components/fields/input/input-formatted/input-formatted.component.scss +0 -3
- package/src/lib/shared/components/fields/input/input-formatted/input-formatted.component.spec.ts +0 -21
- package/src/lib/shared/components/fields/input/input-formatted/input-formatted.component.ts +0 -148
- package/src/lib/shared/components/fields/input/input-password/input-password.component.html +0 -18
- package/src/lib/shared/components/fields/input/input-password/input-password.component.scss +0 -0
- package/src/lib/shared/components/fields/input/input-password/input-password.component.spec.ts +0 -21
- package/src/lib/shared/components/fields/input/input-password/input-password.component.ts +0 -56
- package/src/lib/shared/components/fields/input/input-text/input-text.component.html +0 -73
- package/src/lib/shared/components/fields/input/input-text/input-text.component.scss +0 -0
- package/src/lib/shared/components/fields/input/input-text/input-text.component.spec.ts +0 -21
- package/src/lib/shared/components/fields/input/input-text/input-text.component.ts +0 -98
- package/src/lib/shared/components/fields/select/multi-select/multi-select.component.html +0 -73
- package/src/lib/shared/components/fields/select/multi-select/multi-select.component.scss +0 -21
- package/src/lib/shared/components/fields/select/multi-select/multi-select.component.spec.ts +0 -21
- package/src/lib/shared/components/fields/select/multi-select/multi-select.component.ts +0 -212
- package/src/lib/shared/components/fields/select/single-select/single-select.component.html +0 -55
- package/src/lib/shared/components/fields/select/single-select/single-select.component.scss +0 -1
- package/src/lib/shared/components/fields/select/single-select/single-select.component.spec.ts +0 -21
- package/src/lib/shared/components/fields/select/single-select/single-select.component.ts +0 -217
- package/src/lib/shared/components/fields/select/single-select/sl.component.old.txt +0 -337
- package/src/lib/shared/components/fields/select/single-select/sl.component.old2.txt +0 -340
- package/src/lib/shared/components/fields/select/tree-select/tree-select.component.html +0 -38
- package/src/lib/shared/components/fields/select/tree-select/tree-select.component.scss +0 -1
- package/src/lib/shared/components/fields/select/tree-select/tree-select.component.spec.ts +0 -21
- package/src/lib/shared/components/fields/select/tree-select/tree-select.component.ts +0 -401
- package/src/lib/shared/components/fields/textarea/textarea.component.html +0 -29
- package/src/lib/shared/components/fields/textarea/textarea.component.scss +0 -17
- package/src/lib/shared/components/fields/textarea/textarea.component.spec.ts +0 -21
- package/src/lib/shared/components/fields/textarea/textarea.component.ts +0 -76
- package/src/lib/shared/components/fields/upload/avatar-upload/avatar-upload.component.html +0 -30
- package/src/lib/shared/components/fields/upload/avatar-upload/avatar-upload.component.scss +0 -22
- package/src/lib/shared/components/fields/upload/avatar-upload/avatar-upload.component.spec.ts +0 -22
- package/src/lib/shared/components/fields/upload/avatar-upload/avatar-upload.component.ts +0 -217
- package/src/lib/shared/components/fields/upload/multi-file-upload/multi-file-upload.component.html +0 -101
- package/src/lib/shared/components/fields/upload/multi-file-upload/multi-file-upload.component.scss +0 -117
- package/src/lib/shared/components/fields/upload/multi-file-upload/multi-file-upload.component.spec.ts +0 -22
- package/src/lib/shared/components/fields/upload/multi-file-upload/multi-file-upload.component.ts +0 -480
- package/src/lib/shared/components/fields/upload/multi-image-upload/multi-image-upload.component.html +0 -82
- package/src/lib/shared/components/fields/upload/multi-image-upload/multi-image-upload.component.less +0 -80
- package/src/lib/shared/components/fields/upload/multi-image-upload/multi-image-upload.component.spec.ts +0 -22
- package/src/lib/shared/components/fields/upload/multi-image-upload/multi-image-upload.component.ts +0 -288
- package/src/lib/shared/components/fields/upload/single-file-upload/single-file-upload.component.html +0 -104
- package/src/lib/shared/components/fields/upload/single-file-upload/single-file-upload.component.scss +0 -37
- package/src/lib/shared/components/fields/upload/single-file-upload/single-file-upload.component.spec.ts +0 -21
- package/src/lib/shared/components/fields/upload/single-file-upload/single-file-upload.component.ts +0 -317
- package/src/lib/shared/config/dynamic-form.config.ts +0 -11
- package/src/lib/shared/consts/common/common.const.ts +0 -5
- package/src/lib/shared/consts/common/field-dependency.const.ts +0 -1
- package/src/lib/shared/consts/common/file.const.ts +0 -130
- package/src/lib/shared/consts/common/sample-test.const.ts +0 -1648
- package/src/lib/shared/consts/common/standalone-import.const.ts +0 -51
- package/src/lib/shared/consts/controls/control.const.ts +0 -11
- package/src/lib/shared/consts/fields/date-field.const.ts +0 -12
- package/src/lib/shared/consts/fields/field.const.ts +0 -23
- package/src/lib/shared/consts/fields/input-field.const.ts +0 -4
- package/src/lib/shared/consts/fields/input-formatted-field.const.ts +0 -35
- package/src/lib/shared/consts/fields/radio-field.const.ts +0 -31
- package/src/lib/shared/consts/fields/select-field.const.ts +0 -7
- package/src/lib/shared/consts/fields/upload-field.const.ts +0 -1
- package/src/lib/shared/consts/validators/index.ts +0 -0
- package/src/lib/shared/consts/validators/pattern.const.ts +0 -117
- package/src/lib/shared/enums/common/component-ui.enum.ts +0 -8
- package/src/lib/shared/enums/common/field-dependency.enum.ts +0 -10
- package/src/lib/shared/enums/common/file-size-type.enum.ts +0 -6
- package/src/lib/shared/enums/common/output-value-type.enum.ts +0 -22
- package/src/lib/shared/enums/common/view-mode.enum.ts +0 -4
- package/src/lib/shared/enums/controls/control.enum.ts +0 -12
- package/src/lib/shared/enums/fields/date-field.enum.ts +0 -4
- package/src/lib/shared/enums/fields/field.enum.ts +0 -21
- package/src/lib/shared/enums/fields/input-field.enum.ts +0 -6
- package/src/lib/shared/enums/fields/input-formatted-field.enum.ts +0 -6
- package/src/lib/shared/enums/fields/select-field.enum.ts +0 -4
- package/src/lib/shared/enums/fields/upload-field.enum.ts +0 -5
- package/src/lib/shared/enums/form/dynamic-form.enum.ts +0 -6
- package/src/lib/shared/enums/validators/regex.enum.ts +0 -47
- package/src/lib/shared/enums/validators/validators.enum.ts +0 -17
- package/src/lib/shared/factories/auto-numeric-options.factory.ts +0 -14
- package/src/lib/shared/models/common/api-config.model.ts +0 -7
- package/src/lib/shared/models/common/api-response.model.ts +0 -20
- package/src/lib/shared/models/common/common.model.ts +0 -39
- package/src/lib/shared/models/common/field-dependency.model.ts +0 -27
- package/src/lib/shared/models/common/file-config.model.ts +0 -22
- package/src/lib/shared/models/common/obj-field.model.ts +0 -68
- package/src/lib/shared/models/common/object-storage.model.ts +0 -15
- package/src/lib/shared/models/common/table-models.ts +0 -16
- package/src/lib/shared/models/fields/date/base-date-field.model.ts +0 -52
- package/src/lib/shared/models/fields/date/date-picker-field.model.ts +0 -43
- package/src/lib/shared/models/fields/date/date-range-field.model.ts +0 -52
- package/src/lib/shared/models/fields/field-grid.model.ts +0 -10
- package/src/lib/shared/models/fields/field-group.model.ts +0 -50
- package/src/lib/shared/models/fields/field-user-config.model.ts +0 -8
- package/src/lib/shared/models/fields/field.model.ts +0 -184
- package/src/lib/shared/models/fields/input/input-field.model.ts +0 -111
- package/src/lib/shared/models/fields/input/input-formatted-field.model.ts +0 -38
- package/src/lib/shared/models/fields/input/input-password-field.model.ts +0 -38
- package/src/lib/shared/models/fields/input/input-text-field.model.ts +0 -26
- package/src/lib/shared/models/fields/radio/index.ts +0 -0
- package/src/lib/shared/models/fields/radio/radio-base-field.model.ts +0 -84
- package/src/lib/shared/models/fields/select/index.ts +0 -0
- package/src/lib/shared/models/fields/select/multi-select-field.model.ts +0 -46
- package/src/lib/shared/models/fields/select/select-base-field.model.ts +0 -125
- package/src/lib/shared/models/fields/select/single-select-field.model.ts +0 -43
- package/src/lib/shared/models/fields/select/tree-select-field.model.ts +0 -44
- package/src/lib/shared/models/fields/textarea/index.ts +0 -0
- package/src/lib/shared/models/fields/textarea/textarea-field.model.ts +0 -97
- package/src/lib/shared/models/fields/upload/avatar-upload-field.model.ts +0 -33
- package/src/lib/shared/models/fields/upload/base-upload-field.model.ts +0 -105
- package/src/lib/shared/models/fields/upload/multi-file-upload-field.model.ts +0 -34
- package/src/lib/shared/models/fields/upload/multi-image-upload-field.model.ts +0 -42
- package/src/lib/shared/models/fields/upload/single-file-upload-field.model.ts +0 -33
- package/src/lib/shared/models/validations/index.ts +0 -1
- package/src/lib/shared/models/validations/validations.model.ts +0 -14
- package/src/lib/shared/services/dynamic-form.service.spec.ts +0 -16
- package/src/lib/shared/services/dynamic-form.service.ts +0 -251
- package/src/lib/shared/services/field.service.spec.ts +0 -16
- package/src/lib/shared/services/field.service.ts +0 -152
- package/src/lib/shared/services/file.service.spec.ts +0 -16
- package/src/lib/shared/services/file.service.ts +0 -53
- package/src/lib/shared/services/form-config.service.ts +0 -53
- package/src/lib/shared/services/form-data.service.spec.ts +0 -16
- package/src/lib/shared/services/form-data.service.ts +0 -114
- package/src/lib/shared/services/form-utils.ts +0 -52
- package/src/lib/shared/services/suffix.service.spec.ts +0 -16
- package/src/lib/shared/services/suffix.service.ts +0 -16
- package/src/lib/shared/services/validation.service.spec.ts +0 -16
- package/src/lib/shared/services/validation.service.ts +0 -38
- package/src/lib/shared/utils/common/common.utils.ts +0 -52
- package/src/lib/shared/utils/date/date.utils.ts +0 -129
- package/src/lib/shared/utils/dynamic-field/dynamic-field.ts +0 -0
- package/src/lib/shared/utils/dynamic-field/index.ts +0 -0
- package/src/lib/shared/utils/dynamic-form/dynamic-form.ts +0 -114
- package/src/lib/shared/utils/dynamic-form/index.ts +0 -0
- package/src/lib/shared/utils/fields/fields.ts +0 -78
- package/src/lib/shared/utils/file/file.utils.ts +0 -37
- package/src/lib/shared/utils/validators/custom-validators.ts +0 -158
- package/src/lib/shared/utils/validators/default-error-message.ts +0 -42
- package/src/lib/shared/utils/validators/pattern.ts +0 -26
- package/tsconfig.lib.json +0 -15
- package/tsconfig.lib.prod.json +0 -11
- package/tsconfig.spec.json +0 -15
- /package/{src/lib/shared/styles → styles}/_common-form.scss +0 -0
package/index.d.ts
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { BaseField } from "./shared/models/fields/field.model";
|
|
2
|
+
import { EventEmitter } from "@angular/core";
|
|
3
|
+
import { FormGroup } from "@angular/forms";
|
|
4
|
+
import { FieldTypeEnum } from "./shared/enums/fields";
|
|
5
|
+
import { FormModeEnum } from "./shared/enums/form";
|
|
6
|
+
import { FormMode } from "./shared/models/form";
|
|
7
|
+
import { DynamicFormService } from "./shared/services/dynamic-form.service";
|
|
8
|
+
import { FieldGroup, GroupedFields } from "./shared/models/fields/field-group.model";
|
|
9
|
+
import { FormDataService } from "./shared/services/form-data.service";
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
export declare class DynamicFormComponent {
|
|
12
|
+
private dFormService;
|
|
13
|
+
formId: string;
|
|
14
|
+
valueChangesDebounceTime: number;
|
|
15
|
+
readonly formValueChanges: EventEmitter<Record<string, unknown>>;
|
|
16
|
+
private readonly destroy$;
|
|
17
|
+
readonly fields: import("@angular/core").InputSignal<BaseField<any>[]>;
|
|
18
|
+
readonly model: import("@angular/core").InputSignal<Record<string, any>>;
|
|
19
|
+
readonly mode: import("@angular/core").InputSignal<FormMode>;
|
|
20
|
+
readonly fieldGroups: import("@angular/core").InputSignal<FieldGroup[]>;
|
|
21
|
+
readonly displayNonGroupedFields: import("@angular/core").InputSignal<boolean>;
|
|
22
|
+
readonly formSubmit: import("@angular/core").OutputEmitterRef<Record<string, unknown>>;
|
|
23
|
+
readonly formInvalid: import("@angular/core").OutputEmitterRef<BaseField<any>[]>;
|
|
24
|
+
protected readonly oldFields: import("@angular/core").WritableSignal<BaseField<any>[]>;
|
|
25
|
+
readonly isAddOrEdit: import("@angular/core").Signal<boolean>;
|
|
26
|
+
readonly formState: import("@angular/core").Signal<{
|
|
27
|
+
mode: FormMode;
|
|
28
|
+
newFields: BaseField<any>[];
|
|
29
|
+
model: Record<string, any>;
|
|
30
|
+
}>;
|
|
31
|
+
groupedFields: import("@angular/core").Signal<GroupedFields>;
|
|
32
|
+
protected readonly formModeEnum: typeof FormModeEnum;
|
|
33
|
+
protected readonly fieldTypeEnum: typeof FieldTypeEnum;
|
|
34
|
+
isHiddenField: (field: BaseField<any>) => boolean;
|
|
35
|
+
formGroup: FormGroup;
|
|
36
|
+
readonly formDataService: FormDataService;
|
|
37
|
+
constructor(dFormService: DynamicFormService);
|
|
38
|
+
ngOnDestroy(): void;
|
|
39
|
+
syncFieldsEffect: import("@angular/core").EffectRef;
|
|
40
|
+
/**
|
|
41
|
+
* Effect tạo FormGroup.
|
|
42
|
+
*/
|
|
43
|
+
createFormGroupEffect: import("@angular/core").EffectRef;
|
|
44
|
+
/**
|
|
45
|
+
* Subscribe to form value changes
|
|
46
|
+
* Subscribe lắng nghe sự thay đổi giá trị của form
|
|
47
|
+
*/
|
|
48
|
+
private subscribeToFormValueChanges;
|
|
49
|
+
/**
|
|
50
|
+
* Xử lý submit form và output ra ngoài.
|
|
51
|
+
*/
|
|
52
|
+
private handleSubmit;
|
|
53
|
+
/**
|
|
54
|
+
* Kích submit form ảo khi nhấn nút submit.
|
|
55
|
+
*/
|
|
56
|
+
private markControlForValidation;
|
|
57
|
+
/**
|
|
58
|
+
* TrackBy function for ngFor to optimize rendering.
|
|
59
|
+
*/
|
|
60
|
+
protected trackByField(index: number, field: BaseField<any>): string;
|
|
61
|
+
readonly collapseCustomStyle: {
|
|
62
|
+
background: string;
|
|
63
|
+
border: string;
|
|
64
|
+
};
|
|
65
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFormComponent, never>;
|
|
66
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DynamicFormComponent, "app-dynamic-forms", never, { "formId": { "alias": "formId"; "required": false; }; "valueChangesDebounceTime": { "alias": "valueChangesDebounceTime"; "required": false; }; "fields": { "alias": "fields"; "required": true; "isSignal": true; }; "model": { "alias": "model"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "fieldGroups": { "alias": "fieldGroups"; "required": false; "isSignal": true; }; "displayNonGroupedFields": { "alias": "displayNonGroupedFields"; "required": false; "isSignal": true; }; }, { "formValueChanges": "formValueChanges"; "formSubmit": "formSubmit"; "formInvalid": "formInvalid"; }, never, never, true, never>;
|
|
67
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ApiResponse } from "../models/common/api-response.model";
|
|
2
|
+
import { SelectBaseField } from "../models/fields/select/select-base-field.model";
|
|
3
|
+
import { BaseValueAccessor } from "./base-value-accessor";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare abstract class BaseSelectComponent<T> extends BaseValueAccessor<T> {
|
|
6
|
+
protected readonly selectField: import("@angular/core").Signal<SelectBaseField<any>>;
|
|
7
|
+
protected isFirstLoad: boolean;
|
|
8
|
+
private dependParams$;
|
|
9
|
+
private createDependencyStreams;
|
|
10
|
+
private evaluateDependencies;
|
|
11
|
+
private dependParamsSignal;
|
|
12
|
+
optionsResource: import("@angular/core").ResourceRef<ApiResponse<Record<string, unknown>[]> | undefined>;
|
|
13
|
+
disabled: import("@angular/core").Signal<boolean>;
|
|
14
|
+
options: import("@angular/core").Signal<Record<string, unknown>[]>;
|
|
15
|
+
constructor();
|
|
16
|
+
protected onApiOptionsLoaded(): void;
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BaseSelectComponent<any>, never>;
|
|
18
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<BaseSelectComponent<any>, never, never, {}, {}, never, never, true, never>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { AbstractControl, ControlValueAccessor } from "@angular/forms";
|
|
2
|
+
import { Subject } from "rxjs";
|
|
3
|
+
import { FormMode } from "../models/form";
|
|
4
|
+
import { FormModeEnum } from "../enums/form";
|
|
5
|
+
import { DynamicFormService } from "../services/dynamic-form.service";
|
|
6
|
+
import { FieldService } from "../services/field.service";
|
|
7
|
+
import { BaseField } from "../models/fields/field.model";
|
|
8
|
+
import { ViewModeEnum } from "../enums/common";
|
|
9
|
+
import { FormDataService } from "../services/form-data.service";
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
export declare abstract class BaseValueAccessor<T> implements ControlValueAccessor {
|
|
12
|
+
formId: string;
|
|
13
|
+
readonly fieldInput: import("@angular/core").InputSignal<BaseField<T>>;
|
|
14
|
+
protected readonly fieldKey: import("@angular/core").Signal<string>;
|
|
15
|
+
control: AbstractControl<T> | null;
|
|
16
|
+
readonly modeSignal: import("@angular/core").InputSignal<FormMode>;
|
|
17
|
+
readonly isAdd: import("@angular/core").Signal<boolean>;
|
|
18
|
+
readonly isEdit: import("@angular/core").Signal<boolean>;
|
|
19
|
+
readonly isView: import("@angular/core").Signal<boolean>;
|
|
20
|
+
readonly isAddOrEdit: import("@angular/core").Signal<boolean>;
|
|
21
|
+
readonly isEditOrView: import("@angular/core").Signal<boolean>;
|
|
22
|
+
protected readonly formModeEnum: typeof FormModeEnum;
|
|
23
|
+
protected readonly viewModeEnum: typeof ViewModeEnum;
|
|
24
|
+
protected readonly destroy$: Subject<void>;
|
|
25
|
+
protected value: T | null;
|
|
26
|
+
protected readonly valueSignal: import("@angular/core").WritableSignal<T | null>;
|
|
27
|
+
protected onChange: (value: T | null) => void;
|
|
28
|
+
protected onTouched: () => void;
|
|
29
|
+
protected isDisabled: boolean;
|
|
30
|
+
protected readonly disabledSignal: import("@angular/core").WritableSignal<boolean>;
|
|
31
|
+
protected dFormService: DynamicFormService;
|
|
32
|
+
protected formDataService: FormDataService;
|
|
33
|
+
protected fieldService: FieldService;
|
|
34
|
+
private readonly resetEffect;
|
|
35
|
+
protected readonly viewMode: import("@angular/core").Signal<import("@ldquocc/dynamic-form").ViewMode>;
|
|
36
|
+
protected readonly displayPlaceholder: import("@angular/core").Signal<string>;
|
|
37
|
+
protected resolvePlaceholderText(): string;
|
|
38
|
+
ngOnDestroy(): void;
|
|
39
|
+
protected takeUntilDestroy<T>(): import("rxjs").MonoTypeOperatorFunction<T>;
|
|
40
|
+
writeValue(value: T | null): void;
|
|
41
|
+
registerOnChange(fn: (value: T | null) => void): void;
|
|
42
|
+
registerOnTouched(fn: () => void): void;
|
|
43
|
+
setDisabledState(isDisabled: boolean): void;
|
|
44
|
+
protected propagateValue(value: T | null): void;
|
|
45
|
+
protected reset(): void;
|
|
46
|
+
/**
|
|
47
|
+
* Thêm dữ liệu ở từng dạng field vào form data theo form id cụ thể.
|
|
48
|
+
* @param key Mã của field.
|
|
49
|
+
* @param value Giá trị của field.
|
|
50
|
+
*/
|
|
51
|
+
protected patchFormData(key: string, value: T | null): void;
|
|
52
|
+
protected updateDependValues(key: string, value: string): void;
|
|
53
|
+
protected updateLastChangedParent(key: string, value: unknown): void;
|
|
54
|
+
protected disableAndResetControl(): void;
|
|
55
|
+
protected disableControl(): void;
|
|
56
|
+
protected enableControl(): void;
|
|
57
|
+
protected resetControl(): void;
|
|
58
|
+
/**
|
|
59
|
+
* Optional: để component override riêng.
|
|
60
|
+
*/
|
|
61
|
+
protected writeValueToView(value: T | null): void;
|
|
62
|
+
protected handleValueChange(value: T | null): void;
|
|
63
|
+
protected setDisabledOnView(isDisabled: boolean): void;
|
|
64
|
+
protected resetForAdd(): void;
|
|
65
|
+
protected resetForEdit(): void;
|
|
66
|
+
protected finalizeReset(): void;
|
|
67
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BaseValueAccessor<any>, never>;
|
|
68
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<BaseValueAccessor<any>, never, never, { "formId": { "alias": "formId"; "required": true; }; "fieldInput": { "alias": "fieldInput"; "required": true; "isSignal": true; }; "control": { "alias": "control"; "required": false; }; "modeSignal": { "alias": "modeSignal"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
69
|
+
}
|
|
@@ -1,34 +1,14 @@
|
|
|
1
|
-
import { DatePickerComponent } from "./fields/date/date-picker/date-picker.component";
|
|
2
|
-
import { DateRangeComponent } from "./fields/date/date-range/date-range.component";
|
|
3
|
-
import { InputFormattedComponent } from "./fields/input/input-formatted/input-formatted.component";
|
|
4
|
-
import { InputPasswordComponent } from "./fields/input/input-password/input-password.component";
|
|
5
|
-
import { InputTextComponent } from "./fields/input/input-text/input-text.component";
|
|
6
|
-
import { MultiSelectComponent } from "./fields/select/multi-select/multi-select.component";
|
|
7
|
-
import { SingleSelectComponent } from "./fields/select/single-select/single-select.component";
|
|
8
|
-
import { TreeSelectComponent } from "./fields/select/tree-select/tree-select.component";
|
|
9
|
-
import { TextareaComponent } from "./fields/textarea/textarea.component";
|
|
10
|
-
import { AvatarUploadComponent } from "./fields/upload/avatar-upload/avatar-upload.component";
|
|
11
|
-
import { MultiFileUploadComponent } from "./fields/upload/multi-file-upload/multi-file-upload.component";
|
|
12
|
-
import { MultiImageUploadComponent } from "./fields/upload/multi-image-upload/multi-image-upload.component";
|
|
13
|
-
import { SingleFileUploadComponent } from "./fields/upload/single-file-upload/single-file-upload.component";
|
|
14
|
-
|
|
15
|
-
// Các field component đại diện cho giao diện của từng control.
|
|
16
|
-
export const FIELD_COMPONENTS = [
|
|
17
|
-
InputTextComponent,
|
|
18
|
-
InputPasswordComponent,
|
|
19
|
-
InputFormattedComponent,
|
|
20
|
-
|
|
21
|
-
SingleSelectComponent,
|
|
22
|
-
MultiSelectComponent,
|
|
23
|
-
TreeSelectComponent,
|
|
24
|
-
|
|
25
|
-
TextareaComponent,
|
|
26
|
-
|
|
27
|
-
DatePickerComponent,
|
|
28
|
-
DateRangeComponent,
|
|
29
|
-
|
|
30
|
-
SingleFileUploadComponent,
|
|
31
|
-
MultiFileUploadComponent,
|
|
32
|
-
MultiImageUploadComponent,
|
|
33
|
-
AvatarUploadComponent,
|
|
34
|
-
];
|
|
1
|
+
import { DatePickerComponent } from "./fields/date/date-picker/date-picker.component";
|
|
2
|
+
import { DateRangeComponent } from "./fields/date/date-range/date-range.component";
|
|
3
|
+
import { InputFormattedComponent } from "./fields/input/input-formatted/input-formatted.component";
|
|
4
|
+
import { InputPasswordComponent } from "./fields/input/input-password/input-password.component";
|
|
5
|
+
import { InputTextComponent } from "./fields/input/input-text/input-text.component";
|
|
6
|
+
import { MultiSelectComponent } from "./fields/select/multi-select/multi-select.component";
|
|
7
|
+
import { SingleSelectComponent } from "./fields/select/single-select/single-select.component";
|
|
8
|
+
import { TreeSelectComponent } from "./fields/select/tree-select/tree-select.component";
|
|
9
|
+
import { TextareaComponent } from "./fields/textarea/textarea.component";
|
|
10
|
+
import { AvatarUploadComponent } from "./fields/upload/avatar-upload/avatar-upload.component";
|
|
11
|
+
import { MultiFileUploadComponent } from "./fields/upload/multi-file-upload/multi-file-upload.component";
|
|
12
|
+
import { MultiImageUploadComponent } from "./fields/upload/multi-image-upload/multi-image-upload.component";
|
|
13
|
+
import { SingleFileUploadComponent } from "./fields/upload/single-file-upload/single-file-upload.component";
|
|
14
|
+
export declare const FIELD_COMPONENTS: (typeof DatePickerComponent | typeof DateRangeComponent | typeof InputFormattedComponent | typeof InputPasswordComponent | typeof InputTextComponent | typeof MultiSelectComponent | typeof SingleSelectComponent | typeof TreeSelectComponent | typeof TextareaComponent | typeof AvatarUploadComponent | typeof MultiFileUploadComponent | typeof MultiImageUploadComponent | typeof SingleFileUploadComponent)[];
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { BaseField } from "../../models/fields/field.model";
|
|
2
|
+
import { AbstractControl, FormGroup } from "@angular/forms";
|
|
3
|
+
import { FormMode } from "../../models/form";
|
|
4
|
+
import { FieldTypeEnum } from "../../enums/fields";
|
|
5
|
+
import { FormModeEnum } from "../../enums/form";
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export declare class DynamicFieldComponent {
|
|
8
|
+
readonly field: import("@angular/core").InputSignal<BaseField<any>>;
|
|
9
|
+
readonly fields: import("@angular/core").InputSignal<BaseField<any>[]>;
|
|
10
|
+
readonly mode: import("@angular/core").InputSignal<FormMode>;
|
|
11
|
+
readonly control: import("@angular/core").InputSignal<AbstractControl<any, any>>;
|
|
12
|
+
readonly formGroup: import("@angular/core").InputSignal<FormGroup<any>>;
|
|
13
|
+
readonly formId: import("@angular/core").InputSignal<string>;
|
|
14
|
+
fieldTypeEnum: typeof FieldTypeEnum;
|
|
15
|
+
formModeEnum: typeof FormModeEnum;
|
|
16
|
+
private validationService;
|
|
17
|
+
/**
|
|
18
|
+
* Lấy thông báo lỗi đầu tiên của trường đang thao tác dựa trên control và field.
|
|
19
|
+
*/
|
|
20
|
+
protected getErrorMessage(): string;
|
|
21
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFieldComponent, never>;
|
|
22
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DynamicFieldComponent, "app-dynamic-field", never, { "field": { "alias": "field"; "required": true; "isSignal": true; }; "fields": { "alias": "fields"; "required": true; "isSignal": true; }; "mode": { "alias": "mode"; "required": true; "isSignal": true; }; "control": { "alias": "control"; "required": true; "isSignal": true; }; "formGroup": { "alias": "formGroup"; "required": true; "isSignal": true; }; "formId": { "alias": "formId"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
23
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseField } from "../../models/fields/field.model";
|
|
2
|
+
import { AbstractControl } from "@angular/forms";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class FieldUserConfigComponent {
|
|
5
|
+
readonly field: import("@angular/core").InputSignal<BaseField<any>>;
|
|
6
|
+
readonly control: import("@angular/core").InputSignal<AbstractControl<any, any>>;
|
|
7
|
+
onToggleUserRequired(isRequired: boolean): void;
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FieldUserConfigComponent, never>;
|
|
9
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FieldUserConfigComponent, "app-field-user-config", never, { "field": { "alias": "field"; "required": true; "isSignal": true; }; "control": { "alias": "control"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Suffix } from '../../../../models/common/common.model';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class SuffixComponent {
|
|
4
|
+
suffixConfig: Suffix;
|
|
5
|
+
formId: string;
|
|
6
|
+
protected defaultText: string;
|
|
7
|
+
private suffixService;
|
|
8
|
+
ngOnInit(): void;
|
|
9
|
+
handleSuffix(): void;
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SuffixComponent, never>;
|
|
11
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SuffixComponent, "app-suffix", never, { "suffixConfig": { "alias": "suffixConfig"; "required": false; }; "formId": { "alias": "formId"; "required": false; }; }, {}, never, never, true, never>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { BaseValueAccessor } from "../../../../base/base-value-accessor";
|
|
2
|
+
import { DatePickerField } from "../../../../models/fields/date/date-picker-field.model";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class DatePickerComponent extends BaseValueAccessor<string | Date> {
|
|
5
|
+
readonly field: import("@angular/core").Signal<DatePickerField>;
|
|
6
|
+
format: import("@angular/core").Signal<string>;
|
|
7
|
+
disabledDate: import("@angular/core").Signal<(current: Date) => boolean>;
|
|
8
|
+
readonly viewDisplayValue: import("@angular/core").Signal<string>;
|
|
9
|
+
constructor();
|
|
10
|
+
resolvePlaceholderText(): string;
|
|
11
|
+
handleChangeDate(date: Date): void;
|
|
12
|
+
protected writeValueToView(value: Date): void;
|
|
13
|
+
protected handleValueChange(value: Date): void;
|
|
14
|
+
private getValueByOutputAs;
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DatePickerComponent, never>;
|
|
16
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DatePickerComponent, "app-date-picker", never, {}, {}, never, never, true, never>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { BaseValueAccessor } from "../../../../base/base-value-accessor";
|
|
2
|
+
import { DateRangeField } from "../../../../models/fields/date/date-range-field.model";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class DateRangeComponent extends BaseValueAccessor<string | string[] | Date[]> {
|
|
5
|
+
readonly field: import("@angular/core").Signal<DateRangeField>;
|
|
6
|
+
format: import("@angular/core").Signal<string>;
|
|
7
|
+
placeholders: import("@angular/core").Signal<string[]>;
|
|
8
|
+
displayValueNoInfo: string;
|
|
9
|
+
disabledDate: import("@angular/core").Signal<(current: Date) => boolean>;
|
|
10
|
+
constructor();
|
|
11
|
+
handleChangeDateRange(dateRange: Date[]): void;
|
|
12
|
+
protected writeValueToView(value: Date[]): void;
|
|
13
|
+
protected handleValueChange(value: Date[]): void;
|
|
14
|
+
private getValueByOutputAs;
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DateRangeComponent, never>;
|
|
16
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DateRangeComponent, "app-date-range", never, {}, {}, never, never, true, never>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ElementRef } from "@angular/core";
|
|
2
|
+
import { BaseValueAccessor } from "../../../../base/base-value-accessor";
|
|
3
|
+
import { InputFormattedField } from "../../../../models/fields/input/input-formatted-field.model";
|
|
4
|
+
import AutoNumeric from "@zeedhi/autonumeric";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class InputFormattedComponent extends BaseValueAccessor<string> {
|
|
7
|
+
readonly field: import("@angular/core").Signal<InputFormattedField>;
|
|
8
|
+
private autoNumeric?;
|
|
9
|
+
readonly inputFormattedEle: import("@angular/core").Signal<ElementRef<HTMLInputElement> | undefined>;
|
|
10
|
+
readonly autoNumericOptions: import("@angular/core").Signal<AutoNumeric.Options>;
|
|
11
|
+
readonly internalValue: import("@angular/core").WritableSignal<string>;
|
|
12
|
+
readonly inputDisplayValues: import("@angular/core").Signal<string>;
|
|
13
|
+
readonly autoNumericLifeCycleEffect: import("@angular/core").EffectRef;
|
|
14
|
+
constructor();
|
|
15
|
+
resolvePlaceholderText(): string;
|
|
16
|
+
handleChangeInputText(): void;
|
|
17
|
+
protected writeValueToView(value: string): void;
|
|
18
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<InputFormattedComponent, never>;
|
|
19
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<InputFormattedComponent, "app-input-formatted", never, {}, {}, never, never, true, never>;
|
|
20
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { InputPasswordField } from "../../../../models/fields/input";
|
|
2
|
+
import { BaseValueAccessor } from "../../../../base/base-value-accessor";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class InputPasswordComponent extends BaseValueAccessor<string> {
|
|
5
|
+
readonly field: import("@angular/core").Signal<InputPasswordField>;
|
|
6
|
+
passwordVisible: boolean;
|
|
7
|
+
constructor();
|
|
8
|
+
resolvePlaceholderText(): string;
|
|
9
|
+
handleChangeInputPassword(event: Event): void;
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<InputPasswordComponent, never>;
|
|
11
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<InputPasswordComponent, "app-input-password", never, {}, {}, never, never, true, never>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { InputTextField } from "../../../../models/fields/input";
|
|
2
|
+
import { BaseValueAccessor } from "../../../../base/base-value-accessor";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class InputTextComponent extends BaseValueAccessor<string> {
|
|
5
|
+
readonly field: import("@angular/core").Signal<InputTextField>;
|
|
6
|
+
readonly viewDisplayValue: import("@angular/core").Signal<string>;
|
|
7
|
+
constructor();
|
|
8
|
+
resolvePlaceholderText(): string;
|
|
9
|
+
handleChangeInputText(event: Event): void;
|
|
10
|
+
handleChangeFormValue(value: number): void;
|
|
11
|
+
protected writeValueToView(value: string): void;
|
|
12
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<InputTextComponent, never>;
|
|
13
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<InputTextComponent, "app-input-text", never, {}, {}, never, never, true, never>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { BaseSelectComponent } from "../../../../base/base-select.component";
|
|
2
|
+
import { MultiSelectField } from "../../../../models/fields/select/multi-select-field.model";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class MultiSelectComponent extends BaseSelectComponent<string[] | number[] | Record<string, unknown>[]> {
|
|
5
|
+
readonly field: import("@angular/core").Signal<MultiSelectField>;
|
|
6
|
+
displayNoValueText: string;
|
|
7
|
+
viewDisplayValue: import("@angular/core").Signal<string[]>;
|
|
8
|
+
constructor();
|
|
9
|
+
protected onApiOptionsLoaded(): void;
|
|
10
|
+
resolvePlaceholderText(): string;
|
|
11
|
+
handleChangeOptions(optionValue: string[]): void;
|
|
12
|
+
protected writeValueToView(value: string[]): void;
|
|
13
|
+
protected handleValueChange(value: string[]): void;
|
|
14
|
+
private getValueByOutputAs;
|
|
15
|
+
protected getDisplayValue(value: string[] | Record<string, unknown>[]): string[];
|
|
16
|
+
protected transformOptionValue(option: Record<string, unknown>): unknown;
|
|
17
|
+
protected getOptionLabel(option: Record<string, unknown>): string;
|
|
18
|
+
private getCustomLabel;
|
|
19
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MultiSelectComponent, never>;
|
|
20
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MultiSelectComponent, "app-multi-select", never, {}, {}, never, never, true, never>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { BaseSelectComponent } from "../../../../base/base-select.component";
|
|
2
|
+
import { SingleSelectField } from "../../../../models/fields/select/single-select-field.model";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class SingleSelectComponent extends BaseSelectComponent<string | Record<string, unknown>> {
|
|
5
|
+
isCustomInputText: boolean;
|
|
6
|
+
readonly field: import("@angular/core").Signal<SingleSelectField>;
|
|
7
|
+
readonly viewDisplayValue: import("@angular/core").Signal<string>;
|
|
8
|
+
constructor();
|
|
9
|
+
protected onApiOptionsLoaded(): void;
|
|
10
|
+
resolvePlaceholderText(): string;
|
|
11
|
+
protected writeValueToView(value: string | null): void;
|
|
12
|
+
protected handleValueChange(value: string): void;
|
|
13
|
+
handleChangeOptions(optionValue: string): void;
|
|
14
|
+
private getValueByOutputAs;
|
|
15
|
+
protected getDisplayValue(value: string | Record<string, unknown>): string;
|
|
16
|
+
protected transformOptionValue(option: Record<string, unknown>): unknown;
|
|
17
|
+
protected getOptionLabel(option: Record<string, unknown>): string;
|
|
18
|
+
private getCustomLabel;
|
|
19
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SingleSelectComponent, never>;
|
|
20
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SingleSelectComponent, "app-single-select", never, { "isCustomInputText": { "alias": "isCustomInputText"; "required": false; }; }, {}, never, never, true, never>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { BaseValueAccessor } from "../../../../base/base-value-accessor";
|
|
2
|
+
import { TreeSelectField } from "../../../../models/fields/select/tree-select-field.model";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class TreeSelectComponent extends BaseValueAccessor<string | Record<string, unknown>> {
|
|
5
|
+
isCustomInputText: boolean;
|
|
6
|
+
readonly field: import("@angular/core").Signal<TreeSelectField>;
|
|
7
|
+
displayValue: string | number;
|
|
8
|
+
loadingSignal: import("@angular/core").WritableSignal<boolean>;
|
|
9
|
+
isDisabledSignal: import("@angular/core").WritableSignal<boolean>;
|
|
10
|
+
disabled: import("@angular/core").Signal<boolean>;
|
|
11
|
+
options: any[];
|
|
12
|
+
queryParams: Record<string, unknown>;
|
|
13
|
+
constructor();
|
|
14
|
+
resolvePlaceholderText(): string;
|
|
15
|
+
protected writeValueToView(value: string | null): void;
|
|
16
|
+
protected handleValueChange(value: string): void;
|
|
17
|
+
private createFullApiUrl;
|
|
18
|
+
private buildTree;
|
|
19
|
+
private getOptions;
|
|
20
|
+
handleChangeOptions(optionValue: string): void;
|
|
21
|
+
private getValueByOutputAs;
|
|
22
|
+
protected getDisplayValue(value: string | Record<string, unknown>): string;
|
|
23
|
+
protected transformOptionValue(option: Record<string, unknown>): unknown;
|
|
24
|
+
protected getOptionLabel(option: Record<string, unknown>): string;
|
|
25
|
+
private getCustomLabel;
|
|
26
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TreeSelectComponent, never>;
|
|
27
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TreeSelectComponent, "app-tree-select", never, { "isCustomInputText": { "alias": "isCustomInputText"; "required": false; }; }, {}, never, never, true, never>;
|
|
28
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BaseValueAccessor } from "../../../base/base-value-accessor";
|
|
2
|
+
import { TextareaField } from "../../../models/fields/textarea/textarea-field.model";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class TextareaComponent extends BaseValueAccessor<string> {
|
|
5
|
+
readonly field: import("@angular/core").Signal<TextareaField>;
|
|
6
|
+
displayNoValueText: string;
|
|
7
|
+
readonly viewDisplayValue: import("@angular/core").Signal<string>;
|
|
8
|
+
constructor();
|
|
9
|
+
resolvePlaceholderText(): string;
|
|
10
|
+
handleChangeTextarea(event: Event): void;
|
|
11
|
+
protected writeValueToView(value: string): void;
|
|
12
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TextareaComponent, never>;
|
|
13
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TextareaComponent, "app-textarea", never, {}, {}, never, never, true, never>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { NzUploadFile, NzUploadXHRArgs } from "ng-zorro-antd/upload";
|
|
2
|
+
import { BaseValueAccessor } from "../../../../base/base-value-accessor";
|
|
3
|
+
import { AvatarUploadField } from "../../../../models/fields/upload/avatar-upload-field.model";
|
|
4
|
+
import { ObjectStorage } from "../../../../models/common";
|
|
5
|
+
import { Observable, Subscription } from "rxjs";
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export declare class AvatarUploadComponent extends BaseValueAccessor<string | File> {
|
|
8
|
+
size: number;
|
|
9
|
+
readonly field: import("@angular/core").Signal<AvatarUploadField>;
|
|
10
|
+
private readonly fileService;
|
|
11
|
+
private readonly formConfigService;
|
|
12
|
+
private readonly nzNotification;
|
|
13
|
+
readonly avatarUrl: import("@angular/core").WritableSignal<string | null>;
|
|
14
|
+
readonly uploading: import("@angular/core").WritableSignal<boolean>;
|
|
15
|
+
readonly objStorageList: import("@angular/core").WritableSignal<ObjectStorage[]>;
|
|
16
|
+
constructor();
|
|
17
|
+
protected writeValueToView(value: string): void;
|
|
18
|
+
private handleInitAllData;
|
|
19
|
+
beforeUpload: (file: NzUploadFile, fileList: NzUploadFile[]) => boolean | Observable<boolean>;
|
|
20
|
+
customRequest: (item: NzUploadXHRArgs) => Subscription;
|
|
21
|
+
private uploadFile;
|
|
22
|
+
deleteObjStorage(id: string): Subscription;
|
|
23
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AvatarUploadComponent, never>;
|
|
24
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AvatarUploadComponent, "app-avatar-upload", never, { "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
|
|
25
|
+
}
|
package/lib/shared/components/fields/upload/multi-file-upload/multi-file-upload.component.d.ts
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { BaseValueAccessor } from "../../../../base/base-value-accessor";
|
|
2
|
+
import { NzUploadFile, NzUploadXHRArgs } from "ng-zorro-antd/upload";
|
|
3
|
+
import { MultiFileUploadField } from "../../../../models/fields/upload/multi-file-upload-field.model";
|
|
4
|
+
import { MyUploadFile } from "../../../../models/common/common.model";
|
|
5
|
+
import { ObjectStorage } from "../../../../models/common";
|
|
6
|
+
import { Observable, Subscription } from "rxjs";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export declare class MultiFileUploadComponent extends BaseValueAccessor<string | File | NzUploadFile> {
|
|
9
|
+
readonly field: import("@angular/core").Signal<MultiFileUploadField>;
|
|
10
|
+
objStorageList: import("@angular/core").WritableSignal<ObjectStorage[]>;
|
|
11
|
+
allFiles: import("@angular/core").WritableSignal<MyUploadFile[]>;
|
|
12
|
+
readonly fileExtensionGuide: import("@angular/core").Signal<string>;
|
|
13
|
+
pendingCount: import("@angular/core").WritableSignal<number>;
|
|
14
|
+
private _batchBuffer;
|
|
15
|
+
private _batchTimer;
|
|
16
|
+
private fileService;
|
|
17
|
+
private nzMessage;
|
|
18
|
+
private nzNotification;
|
|
19
|
+
private formConfigService;
|
|
20
|
+
constructor();
|
|
21
|
+
protected writeValueToView(value: string): void;
|
|
22
|
+
private handleInitAllData;
|
|
23
|
+
/**
|
|
24
|
+
* Xử lý trước khi upload — trả về Observable<boolean> để hỗ trợ batch detection.
|
|
25
|
+
*
|
|
26
|
+
* Cơ chế batch detection:
|
|
27
|
+
* nz-upload gọi beforeUpload() từng file một (đồng bộ) trong cùng 1 JS tick khi user
|
|
28
|
+
* chọn nhiều file. Mỗi lần gọi, file được đẩy vào _batchBuffer. Sau khi tất cả các
|
|
29
|
+
* lần gọi đồng bộ kết thúc, setTimeout(0) kích hoạt _processBatch() để xử lý toàn bộ
|
|
30
|
+
* batch một lần, cho phép kiểm tra tổng số lượng chính xác trước khi upload.
|
|
31
|
+
*/
|
|
32
|
+
beforeUpload: (file: NzUploadFile) => Observable<boolean>;
|
|
33
|
+
/**
|
|
34
|
+
* Xử lý toàn bộ batch file sau khi tất cả beforeUpload calls trong cùng 1 tick đã hoàn tất.
|
|
35
|
+
*
|
|
36
|
+
* Logic:
|
|
37
|
+
* 1. Nếu tổng (file hiện tại + pending + batch) vượt maxFileCount → reject TOÀN BỘ batch.
|
|
38
|
+
* 2. Validate từng file trong batch:
|
|
39
|
+
* - File thỏa (MIME + size) → pendingCount++, resolve(true) → cho phép upload.
|
|
40
|
+
* - File không thỏa → hiển thị NzMessage lỗi, resolve(false) → bỏ qua.
|
|
41
|
+
*/
|
|
42
|
+
private _processBatch;
|
|
43
|
+
customRequest: (item: NzUploadXHRArgs) => Subscription;
|
|
44
|
+
private uploadFile;
|
|
45
|
+
handleDelete(file: MyUploadFile): void;
|
|
46
|
+
deleteObjStorage(id: string): Subscription;
|
|
47
|
+
/**
|
|
48
|
+
* Xử lý click vào file item:
|
|
49
|
+
* - Không làm gì nếu file đang loading hoặc ở trạng thái error.
|
|
50
|
+
* - Gọi fileClick để xem file nếu đã upload thành công.
|
|
51
|
+
*/
|
|
52
|
+
onFileItemClick(file: MyUploadFile): void;
|
|
53
|
+
fileClick(objStorage: ObjectStorage): void;
|
|
54
|
+
/**
|
|
55
|
+
* Hủy toàn bộ batch đang chờ xử lý:
|
|
56
|
+
* - Clear timer batch detection.
|
|
57
|
+
* - Reject tất cả file trong buffer (resolve false).
|
|
58
|
+
* - Reset pendingCount về 0.
|
|
59
|
+
* Gọi khi form bị reset từ bên ngoài.
|
|
60
|
+
*/
|
|
61
|
+
private _clearBatch;
|
|
62
|
+
/**
|
|
63
|
+
* Đồng bộ control value với trạng thái thực tế của danh sách file đã upload thành công.
|
|
64
|
+
*
|
|
65
|
+
* Gọi sau mỗi thay đổi về danh sách file (upload xong, xóa file) để đảm bảo:
|
|
66
|
+
* - Không có file nào thành công → propagateValue('') → Validators.required kích hoạt.
|
|
67
|
+
* - Có ít nhất 1 file thành công → propagateValue(JSON string) → validators pass.
|
|
68
|
+
*
|
|
69
|
+
* Validators hiện tại tương thích:
|
|
70
|
+
* - acceptedMimeTypesValidator: bỏ qua nếu value falsy; parse JSON nếu là string.
|
|
71
|
+
* - maxFileSizeInMBValidator: bỏ qua nếu value.size undefined (JSON string).
|
|
72
|
+
*/
|
|
73
|
+
private _syncControlValue;
|
|
74
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MultiFileUploadComponent, never>;
|
|
75
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MultiFileUploadComponent, "app-multi-file-upload", never, {}, {}, never, never, true, never>;
|
|
76
|
+
}
|
package/lib/shared/components/fields/upload/multi-image-upload/multi-image-upload.component.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { BaseValueAccessor } from "../../../../base/base-value-accessor";
|
|
2
|
+
import { NzUploadFile, NzUploadXHRArgs } from "ng-zorro-antd/upload";
|
|
3
|
+
import { MultiImageUploadField } from "../../../../models/fields/upload/multi-image-upload-field.model";
|
|
4
|
+
import { MyUploadFile } from "../../../../models/common/common.model";
|
|
5
|
+
import { ObjectStorage } from "../../../../models/common";
|
|
6
|
+
import { Observable, Subscription } from "rxjs";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export declare class MultiImageUploadComponent extends BaseValueAccessor<string | File | NzUploadFile> {
|
|
9
|
+
readonly field: import("@angular/core").Signal<MultiImageUploadField>;
|
|
10
|
+
readonly objStorageList: import("@angular/core").WritableSignal<ObjectStorage[]>;
|
|
11
|
+
readonly allFiles: import("@angular/core").WritableSignal<MyUploadFile[]>;
|
|
12
|
+
readonly uploading: import("@angular/core").WritableSignal<boolean>;
|
|
13
|
+
private fileService;
|
|
14
|
+
private nzNotification;
|
|
15
|
+
private formConfigService;
|
|
16
|
+
constructor();
|
|
17
|
+
protected writeValueToView(value: string): void;
|
|
18
|
+
private handleInitAllData;
|
|
19
|
+
beforeUpload: (file: NzUploadFile) => boolean | Observable<boolean>;
|
|
20
|
+
customRequest: (item: NzUploadXHRArgs) => Subscription;
|
|
21
|
+
private uploadFile;
|
|
22
|
+
handleDelete(file: MyUploadFile): void;
|
|
23
|
+
deleteObjStorage(id: string): Subscription;
|
|
24
|
+
protected handlePreview(file: MyUploadFile): void;
|
|
25
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MultiImageUploadComponent, never>;
|
|
26
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MultiImageUploadComponent, "app-multi-image-upload", never, {}, {}, never, never, true, never>;
|
|
27
|
+
}
|
package/lib/shared/components/fields/upload/single-file-upload/single-file-upload.component.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { BaseValueAccessor } from "../../../../base/base-value-accessor";
|
|
2
|
+
import { SingleFileUploadField } from "../../../../models/fields/upload/single-file-upload-field.model";
|
|
3
|
+
import { NzUploadFile, NzUploadXHRArgs } from "ng-zorro-antd/upload";
|
|
4
|
+
import { Observable, Subscription } from "rxjs";
|
|
5
|
+
import { ObjectStorage } from "../../../../models/common/object-storage.model";
|
|
6
|
+
import { MyUploadFile } from "../../../../models/common/common.model";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export declare class SingleFileUploadComponent extends BaseValueAccessor<string | File | NzUploadFile> {
|
|
9
|
+
readonly field: import("@angular/core").Signal<SingleFileUploadField>;
|
|
10
|
+
private readonly fileService;
|
|
11
|
+
private readonly nzNotification;
|
|
12
|
+
private readonly formConfigService;
|
|
13
|
+
readonly objStorageList: import("@angular/core").WritableSignal<ObjectStorage[]>;
|
|
14
|
+
readonly allFiles: import("@angular/core").WritableSignal<MyUploadFile[]>;
|
|
15
|
+
readonly fileExtensionGuide: import("@angular/core").Signal<string>;
|
|
16
|
+
readonly viewDisplayValue: import("@angular/core").Signal<string | undefined>;
|
|
17
|
+
readonly addEditDisplayValue: import("@angular/core").Signal<string | undefined>;
|
|
18
|
+
readonly uploading: import("@angular/core").WritableSignal<boolean>;
|
|
19
|
+
constructor();
|
|
20
|
+
protected writeValueToView(value: string): void;
|
|
21
|
+
private handleInitAllData;
|
|
22
|
+
beforeUpload: (file: NzUploadFile, fileList: NzUploadFile[]) => boolean | Observable<boolean>;
|
|
23
|
+
customRequest: (item: NzUploadXHRArgs) => Subscription;
|
|
24
|
+
private uploadFile;
|
|
25
|
+
handleDelete(file: MyUploadFile): void;
|
|
26
|
+
deleteObjStorage(id: string): Subscription;
|
|
27
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SingleFileUploadComponent, never>;
|
|
28
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SingleFileUploadComponent, "app-single-file-upload", never, {}, {}, never, never, true, never>;
|
|
29
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
export interface DynamicFormConfig {
|
|
3
|
+
prefix: string;
|
|
4
|
+
mainApiUrl: string;
|
|
5
|
+
systemApiUrl: string;
|
|
6
|
+
portalApiUrl: string;
|
|
7
|
+
storageUrl: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const DYNAMIC_FORM_CONFIG: InjectionToken<DynamicFormConfig>;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const NO_INFO_TEXT = "Kh\u00F4ng c\u00F3 th\u00F4ng tin";
|
|
2
|
+
export declare const UPLOAD_FILE_TEXT = "T\u1EA3i l\u00EAn t\u1EADp tin";
|
|
3
|
+
export declare const NO_FILE_NAME = "Ch\u01B0a c\u00F3 th\u00F4ng tin t\u00EAn t\u1EADp tin";
|
|
4
|
+
export declare const UPLOAD_FILE_ERROR = "L\u1ED7i trong qu\u00E1 tr\u00ECnh t\u1EA3i t\u1EADp tin \u0111\u1EBFn m\u00E1y ch\u1EE7!";
|
|
5
|
+
export declare const DELETE_FILE_ERROR = "L\u1ED7i trong qu\u00E1 tr\u00ECnh x\u00F3a t\u1EADp tin \u0111\u1EBFn m\u00E1y ch\u1EE7!";
|