@messaia/cdk 18.2.3 → 19.0.0-rc02
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/messaia-cdk.mjs +1592 -1239
- package/fesm2022/messaia-cdk.mjs.map +1 -1
- package/lib/base/base.module.d.ts +14 -13
- package/lib/base/components/base.component.d.ts +1 -1
- package/lib/base/components/generic-embedded-list.component.d.ts +1 -1
- package/lib/base/components/generic-form-base.component.d.ts +3 -2
- package/lib/base/components/generic-form.component.d.ts +1 -1
- package/lib/base/components/generic-list.component.d.ts +23 -3
- package/lib/base/components/generic-reactive-form.component.d.ts +1 -1
- package/lib/base/constants/common.d.ts +2 -0
- package/lib/base/helpers/auth-helper.d.ts +1 -1
- package/lib/chips/components/chips.component.d.ts +5 -16
- package/lib/common/functions/utils.d.ts +1 -1
- package/lib/common/helpers/app-storage.d.ts +1 -1
- package/lib/common/styles/_layout.scss +1 -1
- package/lib/common/styles/_variables.scss +4 -25
- package/lib/common/styles/colors/_colors-dark.scss +2 -0
- package/lib/common/styles/colors/_colors.scss +34 -4
- package/lib/common/styles/core/_button.scss +7 -21
- package/lib/common/styles/core/_card.scss +19 -88
- package/lib/common/styles/core/_core.scss +10 -21
- package/lib/common/styles/core/_overrides.scss +45 -0
- package/lib/common/styles/core/_sidenav.scss +9 -7
- package/lib/common/styles/core/_structure.scss +4 -11
- package/lib/common/styles/font/_font.scss +5 -13
- package/lib/common/styles/m2/_common-theme.scss +10 -10
- package/lib/common/styles/m2/platform.scss +13 -0
- package/lib/common/styles/m3/_common-theme.scss +27 -10
- package/lib/common/styles/m3/platform.scss +13 -0
- package/lib/common/styles/utilities/_general.scss +522 -492
- package/lib/common/styles/utilities/_pull.scss +23 -30
- package/lib/common/styles/utilities/_push.scss +23 -30
- package/lib/common/styles/utilities/_size.scss +3 -3
- package/lib/common/styles/utilities/_utilities.scss +14 -14
- package/lib/common/theming/_m2-all-theme.scss +4 -11
- package/lib/form-validators/directives/base-directive.d.ts +1 -1
- package/lib/form-validators/directives/template-validations/base-validator.directive.d.ts +1 -1
- package/lib/form-validators/directives/template-validations/control-expression-process.d.ts +1 -1
- package/lib/form-validators/services/rx-form-array.d.ts +2 -2
- package/lib/form-validators/util/reset-form.d.ts +3 -3
- package/lib/forms/directives/mat-form-field-editor.directive.d.ts +31 -28
- package/lib/forms/forms.module.d.ts +4 -3
- package/lib/forms/helpers/abstract-mat-form-field.d.ts +147 -91
- package/lib/forms/helpers/abstract-select-form-field.component.d.ts +144 -67
- package/lib/forms/helpers/value-accessor-base.d.ts +1 -1
- package/lib/layout/_m2-layout-theme.scss +14 -50
- package/lib/layout/layout-nav/layout-nav.component.d.ts +7 -1
- package/lib/layout/layout-toggle.class.d.ts +1 -1
- package/lib/list/components/list.component.d.ts +3 -15
- package/lib/menu/components/menu.component.d.ts +16 -1
- package/lib/menu/menu.module.d.ts +3 -2
- package/lib/select/components/select.component.d.ts +3 -16
- package/lib/table/components/dynamic-table/dynamic-table.component.d.ts +5 -1
- package/lib/table/components/filter-select/filter-select.component.d.ts +2 -3
- package/lib/table/models/table-definition.d.ts +69 -20
- package/package.json +3 -5
- package/esm2022/lib/base/base.module.mjs +0 -114
- package/esm2022/lib/base/components/base.component.mjs +0 -904
- package/esm2022/lib/base/components/dynamic-table-config-dialog/dynamic-table-config-dialog.comnponent.mjs +0 -123
- package/esm2022/lib/base/components/generic-embedded-list.component.mjs +0 -197
- package/esm2022/lib/base/components/generic-form-base.component.mjs +0 -891
- package/esm2022/lib/base/components/generic-form.component.mjs +0 -44
- package/esm2022/lib/base/components/generic-list.component.mjs +0 -966
- package/esm2022/lib/base/components/generic-reactive-form.component.mjs +0 -101
- package/esm2022/lib/base/components/task-dialog/task-dialog.component.mjs +0 -147
- package/esm2022/lib/base/constants/common.mjs +0 -92
- package/esm2022/lib/base/constants/global-roles.mjs +0 -9
- package/esm2022/lib/base/enums/message-type.mjs +0 -7
- package/esm2022/lib/base/helpers/auth-helper.mjs +0 -53
- package/esm2022/lib/base/interceptors/base.interceptor.mjs +0 -168
- package/esm2022/lib/base/interceptors/caching-interceptor.mjs +0 -67
- package/esm2022/lib/base/interceptors/loading.interceptor.mjs +0 -64
- package/esm2022/lib/base/interfaces/ibase-component.mjs +0 -2
- package/esm2022/lib/base/interfaces/igeneric-form-base.mjs +0 -2
- package/esm2022/lib/base/interfaces/igeneric-list-component.mjs +0 -2
- package/esm2022/lib/base/interfaces/igeneric-reactive-form-base.mjs +0 -2
- package/esm2022/lib/base/models/auth-user.mjs +0 -18
- package/esm2022/lib/base/models/task-dialog-data.mjs +0 -85
- package/esm2022/lib/base/public_api.mjs +0 -2
- package/esm2022/lib/base/services/file.service.mjs +0 -18
- package/esm2022/lib/base/services/loading-screen.service.mjs +0 -45
- package/esm2022/lib/base/services/print.service.mjs +0 -41
- package/esm2022/lib/chips/chips.module.mjs +0 -77
- package/esm2022/lib/chips/components/chips.component.mjs +0 -702
- package/esm2022/lib/chips/directives/autocomplete-option.directive.mjs +0 -18
- package/esm2022/lib/chips/directives/chip.directive.mjs +0 -18
- package/esm2022/lib/chips/public_api.mjs +0 -3
- package/esm2022/lib/common/animations/collapse/collapse.animation.mjs +0 -33
- package/esm2022/lib/common/animations/common/interfaces.mjs +0 -2
- package/esm2022/lib/common/behaviors/constructor.mjs +0 -2
- package/esm2022/lib/common/behaviors/control-value-accesor.mixin.mjs +0 -41
- package/esm2022/lib/common/behaviors/disabled.mixin.mjs +0 -24
- package/esm2022/lib/common/common.module.mjs +0 -176
- package/esm2022/lib/common/constants/constants.mjs +0 -3
- package/esm2022/lib/common/directives/autofocus.directive.mjs +0 -62
- package/esm2022/lib/common/directives/delayed-hover.directive.mjs +0 -133
- package/esm2022/lib/common/directives/disable-control.directive.mjs +0 -35
- package/esm2022/lib/common/enums/app-event-type.mjs +0 -6
- package/esm2022/lib/common/enums/filter-glue.mjs +0 -16
- package/esm2022/lib/common/enums/filter-operator.mjs +0 -15
- package/esm2022/lib/common/enums/salutation.mjs +0 -7
- package/esm2022/lib/common/functions/decorators.mjs +0 -22
- package/esm2022/lib/common/functions/functions.mjs +0 -22
- package/esm2022/lib/common/functions/utils.mjs +0 -271
- package/esm2022/lib/common/helpers/app-storage.mjs +0 -77
- package/esm2022/lib/common/helpers/delegate.mjs +0 -2
- package/esm2022/lib/common/helpers/dynamic-builder.mjs +0 -52
- package/esm2022/lib/common/helpers/dynamic-component-compiler.mjs +0 -11
- package/esm2022/lib/common/models/action-item.mjs +0 -77
- package/esm2022/lib/common/models/app-event.mjs +0 -21
- package/esm2022/lib/common/models/app-setting.mjs +0 -92
- package/esm2022/lib/common/models/audit-entity.mjs +0 -53
- package/esm2022/lib/common/models/audit-user.mjs +0 -24
- package/esm2022/lib/common/models/base-entity.mjs +0 -40
- package/esm2022/lib/common/models/common-error.mjs +0 -29
- package/esm2022/lib/common/models/common-handler-context.mjs +0 -45
- package/esm2022/lib/common/models/displayname-number-projection.mjs +0 -56
- package/esm2022/lib/common/models/displayname-projection.mjs +0 -38
- package/esm2022/lib/common/models/entity.mjs +0 -2
- package/esm2022/lib/common/models/enum-item.mjs +0 -2
- package/esm2022/lib/common/models/enum-metadata.mjs +0 -44
- package/esm2022/lib/common/models/filter-field.mjs +0 -2
- package/esm2022/lib/common/models/filter.mjs +0 -2
- package/esm2022/lib/common/models/icommon-handler-context.mjs +0 -2
- package/esm2022/lib/common/models/icon.mjs +0 -42
- package/esm2022/lib/common/models/key-value.mjs +0 -11
- package/esm2022/lib/common/models/modifiable-entity.mjs +0 -22
- package/esm2022/lib/common/models/name-number-projection.mjs +0 -35
- package/esm2022/lib/common/models/name-projection.mjs +0 -25
- package/esm2022/lib/common/models/permission.mjs +0 -29
- package/esm2022/lib/common/models/save-action.mjs +0 -7
- package/esm2022/lib/common/models/suffix-button.mjs +0 -15
- package/esm2022/lib/common/models/title-projection.mjs +0 -25
- package/esm2022/lib/common/pipes/bind.mjs +0 -31
- package/esm2022/lib/common/pipes/data-source.pipe.mjs +0 -15
- package/esm2022/lib/common/pipes/enum.pipe.mjs +0 -41
- package/esm2022/lib/common/pipes/file-size.pipe.mjs +0 -35
- package/esm2022/lib/common/pipes/filter.pipe.mjs +0 -54
- package/esm2022/lib/common/pipes/first-letter.mjs +0 -24
- package/esm2022/lib/common/pipes/form-array.pipe.mjs +0 -14
- package/esm2022/lib/common/pipes/form-control.pipe.mjs +0 -14
- package/esm2022/lib/common/pipes/form-group.pipe.mjs +0 -14
- package/esm2022/lib/common/pipes/func.pipe.mjs +0 -14
- package/esm2022/lib/common/pipes/join.pipe.mjs +0 -26
- package/esm2022/lib/common/pipes/keys.mjs +0 -18
- package/esm2022/lib/common/pipes/map.pipe.mjs +0 -48
- package/esm2022/lib/common/pipes/month-name.pipe.mjs +0 -25
- package/esm2022/lib/common/pipes/nested-property.mjs +0 -29
- package/esm2022/lib/common/pipes/only-number.mjs +0 -58
- package/esm2022/lib/common/pipes/order.pipe.mjs +0 -269
- package/esm2022/lib/common/pipes/placeholder.pipe.mjs +0 -26
- package/esm2022/lib/common/pipes/property-join.pipe.mjs +0 -27
- package/esm2022/lib/common/pipes/safe-html.pipe.mjs +0 -32
- package/esm2022/lib/common/pipes/split.pipe.mjs +0 -25
- package/esm2022/lib/common/pipes/time.pipe.mjs +0 -21
- package/esm2022/lib/common/pipes/titlecase.pipe.mjs +0 -14
- package/esm2022/lib/common/pipes/truncate.pipe.mjs +0 -15
- package/esm2022/lib/common/pipes/values.mjs +0 -14
- package/esm2022/lib/common/public_api.mjs +0 -41
- package/esm2022/lib/common/services/base.service.mjs +0 -19
- package/esm2022/lib/common/services/context-helper.mjs +0 -17
- package/esm2022/lib/common/services/enum.service.mjs +0 -81
- package/esm2022/lib/common/services/event-queue.service.mjs +0 -31
- package/esm2022/lib/common/services/service-locator.mjs +0 -25
- package/esm2022/lib/common/templates/templates.mjs +0 -87
- package/esm2022/lib/dialogs/alert-dialog/alert-dialog.component.mjs +0 -46
- package/esm2022/lib/dialogs/confirm-dialog/confirm-dialog.component.mjs +0 -60
- package/esm2022/lib/dialogs/dialog.component.mjs +0 -59
- package/esm2022/lib/dialogs/dialogs.module.mjs +0 -72
- package/esm2022/lib/dialogs/prompt-dialog/prompt-dialog.component.mjs +0 -44
- package/esm2022/lib/dialogs/public_api.mjs +0 -2
- package/esm2022/lib/dialogs/services/dialog.service.mjs +0 -154
- package/esm2022/lib/file/file-input.component.mjs +0 -334
- package/esm2022/lib/file/file.module.mjs +0 -37
- package/esm2022/lib/file/public_api.mjs +0 -2
- package/esm2022/lib/form-validators/abstract/typed-form.mjs +0 -13
- package/esm2022/lib/form-validators/algorithm/luhn-algorithm.mjs +0 -33
- package/esm2022/lib/form-validators/const/app-validators.const.mjs +0 -68
- package/esm2022/lib/form-validators/const/app.const.mjs +0 -65
- package/esm2022/lib/form-validators/const/config-names.const.mjs +0 -33
- package/esm2022/lib/form-validators/const/config-required-fields.const.mjs +0 -35
- package/esm2022/lib/form-validators/const/decorators.const.mjs +0 -23
- package/esm2022/lib/form-validators/const/events.const.mjs +0 -53
- package/esm2022/lib/form-validators/const/html-elements.const.mjs +0 -25
- package/esm2022/lib/form-validators/const/iban-country-wise-regex.const.mjs +0 -80
- package/esm2022/lib/form-validators/const/index.mjs +0 -6
- package/esm2022/lib/form-validators/const/operators.const.mjs +0 -7
- package/esm2022/lib/form-validators/const/validation-alphabet-locale.const.mjs +0 -9
- package/esm2022/lib/form-validators/const/validator.const.mjs +0 -29
- package/esm2022/lib/form-validators/core/annotation-types.mjs +0 -75
- package/esm2022/lib/form-validators/core/default-container.mjs +0 -500
- package/esm2022/lib/form-validators/decorators/allOf.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/alpha.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/alphaNumeric.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/and.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/ascii.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/async.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/base-decorator.function.mjs +0 -7
- package/esm2022/lib/form-validators/decorators/choice.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/compare.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/compose.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/contains.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/credit-card.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/cusip.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/custom.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/dataUri.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/date.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/different.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/digit.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/email.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/endsWith.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/even.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/extension.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/factor.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/file.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/fileSize.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/greater-than-equal-to.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/greater-than.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/grid.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/hexColor.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/image.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/index.mjs +0 -93
- package/esm2022/lib/form-validators/decorators/json.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/latLong.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/latitude.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/leapYear.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/less-than-equal-to.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/less-than.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/longitude.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/lowercase.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/mac.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/mask.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/maxDate.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/maxLength.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/maxNumber.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/maxTime.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/minDate.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/minLength.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/minNumber.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/minTime.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/model.decorator.mjs +0 -7
- package/esm2022/lib/form-validators/decorators/non-validation-decorators/disable.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/non-validation-decorators/elementClass.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/non-validation-decorators/error.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/non-validation-decorators/update-on.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/noneOf.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/not.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/notEmpty.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/numeric.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/odd.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/oneOf.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/or.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/password.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/pattern.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/port.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/primeNumber.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/prop-array.decorator.mjs +0 -18
- package/esm2022/lib/form-validators/decorators/prop-object.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/prop.decorator.mjs +0 -18
- package/esm2022/lib/form-validators/decorators/range.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/required.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/requiredTrue.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/rule.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/sanitize/blacklist.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/sanitize/escape.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/sanitize/ltrim.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/sanitize/prefix.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/sanitize/rtrim.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/sanitize/sanitize.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/sanitize/stripLow.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/sanitize/suffix.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/sanitize/toBoolean.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/sanitize/toDate.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/sanitize/toDouble.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/sanitize/toFloat.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/sanitize/toInt.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/sanitize/toString.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/sanitize/trim.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/sanitize/whitelist.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/startsWith.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/time.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/unique.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/uppercase.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/url.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/directives/base-directive.mjs +0 -75
- package/esm2022/lib/form-validators/directives/control-host.directive.mjs +0 -55
- package/esm2022/lib/form-validators/directives/html-control-template.directive.mjs +0 -36
- package/esm2022/lib/form-validators/directives/rx-form.directive.mjs +0 -234
- package/esm2022/lib/form-validators/directives/template-validations/async-validation.directive.mjs +0 -40
- package/esm2022/lib/form-validators/directives/template-validations/base-validator.directive.mjs +0 -76
- package/esm2022/lib/form-validators/directives/template-validations/control-expression-process.mjs +0 -60
- package/esm2022/lib/form-validators/directives/template-validations/file-control.directive.mjs +0 -122
- package/esm2022/lib/form-validators/directives/template-validations/image-file-control.directive.mjs +0 -74
- package/esm2022/lib/form-validators/directives/template-validations/rxformcontrol.directive.mjs +0 -394
- package/esm2022/lib/form-validators/domain/disable-provider.mjs +0 -198
- package/esm2022/lib/form-validators/domain/element-processor/decimal.provider.mjs +0 -134
- package/esm2022/lib/form-validators/domain/element-processor/mask.provider.mjs +0 -453
- package/esm2022/lib/form-validators/domain/form-data.mjs +0 -93
- package/esm2022/lib/form-validators/enums/error-message-binding-strategy.mjs +0 -11
- package/esm2022/lib/form-validators/enums/index.mjs +0 -5
- package/esm2022/lib/form-validators/enums/ip-version.mjs +0 -7
- package/esm2022/lib/form-validators/enums/numeric-value-type.mjs +0 -7
- package/esm2022/lib/form-validators/enums/reset-type.mjs +0 -10
- package/esm2022/lib/form-validators/enums/url-validation-type.mjs +0 -7
- package/esm2022/lib/form-validators/models/config/alpha-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/array-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/base-config-fn.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/base-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/base-date-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/choice-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/compare-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/component-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/compose-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/contains-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/credit-card-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/custom-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/date-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/default-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/digit-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/disable-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/element-class-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/email-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/error-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/extension-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/factor-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/field-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/file-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/hex-color-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/iban-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/image-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/index.mjs +0 -35
- package/esm2022/lib/form-validators/models/config/ip-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/logical-operator-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/mask-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/max-date-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/message-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/min-date-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/model-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/number-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/numeric-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/password-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/pattern-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/prop-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/props-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/range-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/relational-operator-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/required-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/rule-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/sanitize-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/size-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/string-comparison-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/string-value-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/time-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/todate-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/unique-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/update-on-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/url-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/control-info.mjs +0 -2
- package/esm2022/lib/form-validators/models/data-sanitizer.mjs +0 -2
- package/esm2022/lib/form-validators/models/decorator-configuration.mjs +0 -2
- package/esm2022/lib/form-validators/models/form-builder-configuration.mjs +0 -58
- package/esm2022/lib/form-validators/models/index.mjs +0 -3
- package/esm2022/lib/form-validators/models/instance-container.mjs +0 -2
- package/esm2022/lib/form-validators/models/interface/array-prop-instance-config.interface.mjs +0 -2
- package/esm2022/lib/form-validators/models/interface/auto-instance-config.interface.mjs +0 -2
- package/esm2022/lib/form-validators/models/interface/form-data-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/interface/i-abstract-control.mjs +0 -30
- package/esm2022/lib/form-validators/models/interface/i-form-group.mjs +0 -2
- package/esm2022/lib/form-validators/models/interface/instance-argument.interface.mjs +0 -2
- package/esm2022/lib/form-validators/models/interface/object-prop-instance-config.interface.mjs +0 -2
- package/esm2022/lib/form-validators/models/interface/options.mjs +0 -2
- package/esm2022/lib/form-validators/models/password-validation.model.mjs +0 -2
- package/esm2022/lib/form-validators/models/prop-validation-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/property-info.mjs +0 -2
- package/esm2022/lib/form-validators/public_api.mjs +0 -26
- package/esm2022/lib/form-validators/reactive-form-validators/allOf.validator.mjs +0 -33
- package/esm2022/lib/form-validators/reactive-form-validators/alpha.validator.mjs +0 -15
- package/esm2022/lib/form-validators/reactive-form-validators/alphaNumeric.validator.mjs +0 -15
- package/esm2022/lib/form-validators/reactive-form-validators/and.validator.mjs +0 -38
- package/esm2022/lib/form-validators/reactive-form-validators/ascii.validator.mjs +0 -15
- package/esm2022/lib/form-validators/reactive-form-validators/async/base.async.validator.mjs +0 -45
- package/esm2022/lib/form-validators/reactive-form-validators/choice.validator.mjs +0 -31
- package/esm2022/lib/form-validators/reactive-form-validators/compare.validator.mjs +0 -32
- package/esm2022/lib/form-validators/reactive-form-validators/compose.validator.mjs +0 -34
- package/esm2022/lib/form-validators/reactive-form-validators/conditional-change.validator.mjs +0 -63
- package/esm2022/lib/form-validators/reactive-form-validators/contains.validator.mjs +0 -22
- package/esm2022/lib/form-validators/reactive-form-validators/credit-card.validator.mjs +0 -48
- package/esm2022/lib/form-validators/reactive-form-validators/cusip.validator.mjs +0 -38
- package/esm2022/lib/form-validators/reactive-form-validators/custom.validator.mjs +0 -25
- package/esm2022/lib/form-validators/reactive-form-validators/dataUri.validator.mjs +0 -9
- package/esm2022/lib/form-validators/reactive-form-validators/date.validator.mjs +0 -8
- package/esm2022/lib/form-validators/reactive-form-validators/different.validator.mjs +0 -19
- package/esm2022/lib/form-validators/reactive-form-validators/digit.validator.mjs +0 -9
- package/esm2022/lib/form-validators/reactive-form-validators/email.validator.mjs +0 -9
- package/esm2022/lib/form-validators/reactive-form-validators/endsWith.validator.mjs +0 -23
- package/esm2022/lib/form-validators/reactive-form-validators/even.validator.mjs +0 -15
- package/esm2022/lib/form-validators/reactive-form-validators/extension.validator.mjs +0 -40
- package/esm2022/lib/form-validators/reactive-form-validators/factor.validator.mjs +0 -37
- package/esm2022/lib/form-validators/reactive-form-validators/file.validator.mjs +0 -26
- package/esm2022/lib/form-validators/reactive-form-validators/fileSize.validator.mjs +0 -34
- package/esm2022/lib/form-validators/reactive-form-validators/greater-than-equal-to.validator.mjs +0 -8
- package/esm2022/lib/form-validators/reactive-form-validators/greater-than.validator.mjs +0 -8
- package/esm2022/lib/form-validators/reactive-form-validators/grid.validator.mjs +0 -31
- package/esm2022/lib/form-validators/reactive-form-validators/hexcolor.validator.mjs +0 -9
- package/esm2022/lib/form-validators/reactive-form-validators/iban.validator.mjs +0 -28
- package/esm2022/lib/form-validators/reactive-form-validators/image.validator.mjs +0 -52
- package/esm2022/lib/form-validators/reactive-form-validators/index.mjs +0 -66
- package/esm2022/lib/form-validators/reactive-form-validators/ip.validator.mjs +0 -28
- package/esm2022/lib/form-validators/reactive-form-validators/json.validator.mjs +0 -26
- package/esm2022/lib/form-validators/reactive-form-validators/latLong.validator.mjs +0 -18
- package/esm2022/lib/form-validators/reactive-form-validators/latitude.validator.mjs +0 -9
- package/esm2022/lib/form-validators/reactive-form-validators/leapYear.validator.mjs +0 -16
- package/esm2022/lib/form-validators/reactive-form-validators/less-than-equal-to.validator.mjs +0 -8
- package/esm2022/lib/form-validators/reactive-form-validators/less-than.validator.mjs +0 -8
- package/esm2022/lib/form-validators/reactive-form-validators/longitude.validator.mjs +0 -9
- package/esm2022/lib/form-validators/reactive-form-validators/lowercase.validator.mjs +0 -15
- package/esm2022/lib/form-validators/reactive-form-validators/mac.validator.mjs +0 -9
- package/esm2022/lib/form-validators/reactive-form-validators/mask.validator.mjs +0 -14
- package/esm2022/lib/form-validators/reactive-form-validators/maxDate.validator.mjs +0 -8
- package/esm2022/lib/form-validators/reactive-form-validators/maxLength.validator.mjs +0 -17
- package/esm2022/lib/form-validators/reactive-form-validators/maxNumber.validator.mjs +0 -17
- package/esm2022/lib/form-validators/reactive-form-validators/maxTime.validator.mjs +0 -8
- package/esm2022/lib/form-validators/reactive-form-validators/minDate.validator.mjs +0 -8
- package/esm2022/lib/form-validators/reactive-form-validators/minLength.validator.mjs +0 -16
- package/esm2022/lib/form-validators/reactive-form-validators/minNumber.validator.mjs +0 -16
- package/esm2022/lib/form-validators/reactive-form-validators/minTime.validator.mjs +0 -8
- package/esm2022/lib/form-validators/reactive-form-validators/noneOf.validator.mjs +0 -24
- package/esm2022/lib/form-validators/reactive-form-validators/not.validator.mjs +0 -25
- package/esm2022/lib/form-validators/reactive-form-validators/notEmpty.validator.mjs +0 -17
- package/esm2022/lib/form-validators/reactive-form-validators/numeric.validator.mjs +0 -22
- package/esm2022/lib/form-validators/reactive-form-validators/odd.validator.mjs +0 -17
- package/esm2022/lib/form-validators/reactive-form-validators/oneOf.validator.mjs +0 -26
- package/esm2022/lib/form-validators/reactive-form-validators/or.validator.mjs +0 -25
- package/esm2022/lib/form-validators/reactive-form-validators/password.validator.mjs +0 -35
- package/esm2022/lib/form-validators/reactive-form-validators/pattern.validator.mjs +0 -19
- package/esm2022/lib/form-validators/reactive-form-validators/port.validator.mjs +0 -19
- package/esm2022/lib/form-validators/reactive-form-validators/primeNumber.validator.mjs +0 -27
- package/esm2022/lib/form-validators/reactive-form-validators/range.validator.mjs +0 -17
- package/esm2022/lib/form-validators/reactive-form-validators/required.validator.mjs +0 -17
- package/esm2022/lib/form-validators/reactive-form-validators/requiredTrue.validator.mjs +0 -16
- package/esm2022/lib/form-validators/reactive-form-validators/rule.validator.mjs +0 -22
- package/esm2022/lib/form-validators/reactive-form-validators/startsWith.validator.mjs +0 -25
- package/esm2022/lib/form-validators/reactive-form-validators/time.validator.mjs +0 -19
- package/esm2022/lib/form-validators/reactive-form-validators/unique.validator.mjs +0 -77
- package/esm2022/lib/form-validators/reactive-form-validators/uppercase.validator.mjs +0 -16
- package/esm2022/lib/form-validators/reactive-form-validators/url.validator.mjs +0 -28
- package/esm2022/lib/form-validators/services/base-form-builder.mjs +0 -220
- package/esm2022/lib/form-validators/services/entity.service.mjs +0 -76
- package/esm2022/lib/form-validators/services/form-control.mjs +0 -370
- package/esm2022/lib/form-validators/services/form-group.mjs +0 -2
- package/esm2022/lib/form-validators/services/reactive-form.module.mjs +0 -52
- package/esm2022/lib/form-validators/services/rx-form-array.mjs +0 -114
- package/esm2022/lib/form-validators/services/rx-form-builder.mjs +0 -1035
- package/esm2022/lib/form-validators/services/rx-form-group.mjs +0 -451
- package/esm2022/lib/form-validators/services/typed-form-builder.mjs +0 -25
- package/esm2022/lib/form-validators/util/alphabet-regex.locale.mjs +0 -29
- package/esm2022/lib/form-validators/util/app-util.mjs +0 -161
- package/esm2022/lib/form-validators/util/check-length.mjs +0 -11
- package/esm2022/lib/form-validators/util/config-provider.mjs +0 -37
- package/esm2022/lib/form-validators/util/date-checker.function.mjs +0 -52
- package/esm2022/lib/form-validators/util/date-provider.mjs +0 -108
- package/esm2022/lib/form-validators/util/form-const.mjs +0 -3
- package/esm2022/lib/form-validators/util/form-provider.mjs +0 -87
- package/esm2022/lib/form-validators/util/index.mjs +0 -7
- package/esm2022/lib/form-validators/util/instance-provider.function.mjs +0 -63
- package/esm2022/lib/form-validators/util/ip-checker.mjs +0 -19
- package/esm2022/lib/form-validators/util/linq.mjs +0 -157
- package/esm2022/lib/form-validators/util/object-maker.mjs +0 -68
- package/esm2022/lib/form-validators/util/reactive-form-config.mjs +0 -25
- package/esm2022/lib/form-validators/util/regex-rules.mjs +0 -37
- package/esm2022/lib/form-validators/util/regex-validator.mjs +0 -74
- package/esm2022/lib/form-validators/util/relational-checker.function.mjs +0 -92
- package/esm2022/lib/form-validators/util/reset-form.mjs +0 -57
- package/esm2022/lib/form-validators/util/sanitizers.mjs +0 -140
- package/esm2022/lib/form-validators/util/time-checker.function.mjs +0 -50
- package/esm2022/lib/form-validators/util/type.mjs +0 -2
- package/esm2022/lib/form-validators/util/validator-value-checker.mjs +0 -21
- package/esm2022/lib/form-validators/validators-extension/allOf-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/alpha-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/alphaNumeric-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/and-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/ascii-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/base-validator.function.mjs +0 -34
- package/esm2022/lib/form-validators/validators-extension/choice-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/compare-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/compose-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/contains-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/credit-card-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/cusip-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/custom-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/dataUri-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/date-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/different-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/digit-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/email-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/endsWith-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/even-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/extension-validator.extension.mjs +0 -10
- package/esm2022/lib/form-validators/validators-extension/factor-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/file-validator.extension.mjs +0 -10
- package/esm2022/lib/form-validators/validators-extension/fileSize-validator.extension.mjs +0 -10
- package/esm2022/lib/form-validators/validators-extension/greater-than-equal-to-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/greater-than-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/grid-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/hexcolor-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/iban-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/image-validator.extension.mjs +0 -10
- package/esm2022/lib/form-validators/validators-extension/index.mjs +0 -68
- package/esm2022/lib/form-validators/validators-extension/ip-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/json-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/latLong-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/latitude-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/leapYear-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/less-than-equal-to-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/less-than-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/longitude-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/lowercase-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/mac-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/mask-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/maxDate-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/maxLength-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/maxNumber-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/maxTime-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/minDate-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/minLength-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/minNumber-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/minTime-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/noneOf-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/not-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/notEmpty-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/numeric-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/odd-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/oneOf-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/or-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/password-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/pattern-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/port-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/primeNumber-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/range-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/required-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/requiredTrue-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/rxweb-validators.mjs +0 -108
- package/esm2022/lib/form-validators/validators-extension/startsWith-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/time-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/unique-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/uppercase-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/url-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-function/alpha-validation.function.mjs +0 -71
- package/esm2022/lib/form-validators/validators-function/regex-validation.function.mjs +0 -33
- package/esm2022/lib/forms/components/datepicker/datepicker-header.component.mjs +0 -84
- package/esm2022/lib/forms/components/generic-form/generic-form.component.mjs +0 -602
- package/esm2022/lib/forms/constants/constants.mjs +0 -4
- package/esm2022/lib/forms/directives/mat-form-field-editor.directive.mjs +0 -197
- package/esm2022/lib/forms/directives/mat-form-field-readonly.directive.mjs +0 -34
- package/esm2022/lib/forms/directives/parse-decimal-directive.mjs +0 -87
- package/esm2022/lib/forms/directives/vd-generic-form-custom-field.directive.mjs +0 -35
- package/esm2022/lib/forms/enums/form-field-type.mjs +0 -23
- package/esm2022/lib/forms/forms.module.mjs +0 -168
- package/esm2022/lib/forms/functions/decorators.mjs +0 -136
- package/esm2022/lib/forms/functions/functions.mjs +0 -72
- package/esm2022/lib/forms/helpers/abstract-mat-form-field.mjs +0 -308
- package/esm2022/lib/forms/helpers/abstract-select-form-field.component.mjs +0 -492
- package/esm2022/lib/forms/helpers/value-accessor-base.mjs +0 -146
- package/esm2022/lib/forms/models/form-definition.mjs +0 -63
- package/esm2022/lib/forms/models/form-field-definition.mjs +0 -468
- package/esm2022/lib/forms/models/form-field-group-definition.mjs +0 -55
- package/esm2022/lib/forms/pipes/field-func.pipe.mjs +0 -23
- package/esm2022/lib/forms/pipes/group-filter.pipe.mjs +0 -34
- package/esm2022/lib/forms/public_api.mjs +0 -5
- package/esm2022/lib/forms/validators/empty-string-reset.directive.mjs +0 -25
- package/esm2022/lib/forms/validators/equal-validator.directive.mjs +0 -69
- package/esm2022/lib/forms/validators/native-element-injector.directive.mjs +0 -41
- package/esm2022/lib/forms/validators/unique-validator-directive.mjs +0 -88
- package/esm2022/lib/http/http.module.mjs +0 -15
- package/esm2022/lib/http/models/response.mjs +0 -24
- package/esm2022/lib/http/public_api.mjs +0 -2
- package/esm2022/lib/http/services/generic.service.mjs +0 -331
- package/esm2022/lib/layout/dynamic-menu/dynamic-menu.component.mjs +0 -103
- package/esm2022/lib/layout/layout-card-over/layout-card-over.component.mjs +0 -49
- package/esm2022/lib/layout/layout-compact/layout-compact.component.mjs +0 -193
- package/esm2022/lib/layout/layout-footer/layout-footer.component.mjs +0 -37
- package/esm2022/lib/layout/layout-manage-list/layout-manage-list.component.mjs +0 -150
- package/esm2022/lib/layout/layout-manage-list/layout-manage-list.directives.mjs +0 -108
- package/esm2022/lib/layout/layout-nav/layout-nav.component.mjs +0 -146
- package/esm2022/lib/layout/layout-nav-list/layout-nav-list.component.mjs +0 -141
- package/esm2022/lib/layout/layout-nav-list/layout-nav-list.directives.mjs +0 -105
- package/esm2022/lib/layout/layout-toggle.class.mjs +0 -89
- package/esm2022/lib/layout/layout.component.mjs +0 -230
- package/esm2022/lib/layout/layout.directives.mjs +0 -81
- package/esm2022/lib/layout/layout.module.mjs +0 -144
- package/esm2022/lib/layout/list-toolbar/list-toolbar.component.mjs +0 -47
- package/esm2022/lib/layout/navigation-drawer/navigation-drawer.component.mjs +0 -275
- package/esm2022/lib/layout/public_api.mjs +0 -2
- package/esm2022/lib/list/components/list.component.mjs +0 -78
- package/esm2022/lib/list/directives/vd-list-option.directive.mjs +0 -23
- package/esm2022/lib/list/list.module.mjs +0 -36
- package/esm2022/lib/list/public_api.mjs +0 -3
- package/esm2022/lib/media/directives/media-toggle.directive.mjs +0 -154
- package/esm2022/lib/media/media.module.mjs +0 -35
- package/esm2022/lib/media/public_api.mjs +0 -2
- package/esm2022/lib/media/services/media.service.mjs +0 -110
- package/esm2022/lib/menu/components/menu.component.mjs +0 -95
- package/esm2022/lib/menu/enums/menu-scope.mjs +0 -6
- package/esm2022/lib/menu/menu.module.mjs +0 -64
- package/esm2022/lib/menu/models/menu-client.mjs +0 -39
- package/esm2022/lib/menu/models/menu-department.mjs +0 -39
- package/esm2022/lib/menu/models/menu-item-client.mjs +0 -39
- package/esm2022/lib/menu/models/menu-item-department.mjs +0 -39
- package/esm2022/lib/menu/models/menu-item.mjs +0 -351
- package/esm2022/lib/menu/models/menu-settings.mjs +0 -13
- package/esm2022/lib/menu/models/menu.mjs +0 -224
- package/esm2022/lib/menu/public_api.mjs +0 -3
- package/esm2022/lib/menu/resolvers/menu-form-includes.resolve.mjs +0 -50
- package/esm2022/lib/menu/resolvers/menu-item-form-includes.resolve.mjs +0 -50
- package/esm2022/lib/menu/resolvers/menu-list-projection.resolve.mjs +0 -51
- package/esm2022/lib/menu/resolvers/menu-settings.resolve.mjs +0 -24
- package/esm2022/lib/menu/services/menu-items.service.mjs +0 -19
- package/esm2022/lib/menu/services/menu.resolve.mjs +0 -68
- package/esm2022/lib/menu/services/menu.service.mjs +0 -19
- package/esm2022/lib/search/public_api.mjs +0 -2
- package/esm2022/lib/search/search.module.mjs +0 -33
- package/esm2022/lib/select/components/select.component.mjs +0 -215
- package/esm2022/lib/select/directives/vd-select-option.directive.mjs +0 -23
- package/esm2022/lib/select/directives/vd-select-trigger.directive.mjs +0 -23
- package/esm2022/lib/select/public_api.mjs +0 -4
- package/esm2022/lib/select/select.module.mjs +0 -48
- package/esm2022/lib/table/components/dynamic-table/dynamic-table.component.mjs +0 -810
- package/esm2022/lib/table/components/filter-clear/filter-clear.component.mjs +0 -36
- package/esm2022/lib/table/components/filter-date/filter-date.component.mjs +0 -146
- package/esm2022/lib/table/components/filter-input/filter-input.component.mjs +0 -198
- package/esm2022/lib/table/components/filter-select/filter-select.component.mjs +0 -375
- package/esm2022/lib/table/constants/constants.mjs +0 -3
- package/esm2022/lib/table/directives/data-source-filter.directive.mjs +0 -49
- package/esm2022/lib/table/directives/vd-table-field.directive.mjs +0 -35
- package/esm2022/lib/table/enums/grid.mjs +0 -12
- package/esm2022/lib/table/enums/table-column-type.mjs +0 -17
- package/esm2022/lib/table/functions/decorators.mjs +0 -163
- package/esm2022/lib/table/functions/functions.mjs +0 -28
- package/esm2022/lib/table/models/facet-value.mjs +0 -47
- package/esm2022/lib/table/models/facet.mjs +0 -48
- package/esm2022/lib/table/models/pagination.mjs +0 -27
- package/esm2022/lib/table/models/table-column-config.mjs +0 -128
- package/esm2022/lib/table/models/table-column.mjs +0 -270
- package/esm2022/lib/table/models/table-config.mjs +0 -41
- package/esm2022/lib/table/models/table-definition.mjs +0 -110
- package/esm2022/lib/table/models/table-query-config.mjs +0 -26
- package/esm2022/lib/table/paginator-intl.mjs +0 -41
- package/esm2022/lib/table/public_api.mjs +0 -2
- package/esm2022/lib/table/table.data-source.mjs +0 -326
- package/esm2022/lib/table/table.module.mjs +0 -165
- package/esm2022/lib/table/table.static-data-source.mjs +0 -198
- package/esm2022/messaia-cdk.mjs +0 -5
- package/esm2022/public_api.mjs +0 -19
- package/lib/common/styles/_elevation.scss +0 -147
- package/lib/common/styles/_rtl.scss +0 -28
- package/lib/common/styles/_styles.scss +0 -12
- package/lib/common/styles/_theme-functions.scss +0 -4
- package/lib/common/styles/_typography.scss +0 -76
- package/lib/common/styles/core/_content.scss +0 -42
- package/lib/common/styles/core/_divider.scss +0 -14
- package/lib/common/styles/core/_icons.scss +0 -27
- package/lib/common/styles/core/_list.scss +0 -8
- package/lib/common/styles/core/_toolbar.scss +0 -31
- package/lib/common/styles/core/_whiteframe.scss +0 -111
- package/lib/common/styles/m2/_theme-functions.scss +0 -21
- package/lib/common/styles/m3/_theme-functions.scss +0 -21
- package/lib/common/styles/platform.scss +0 -11
- package/lib/common/theming/_all-theme.scss +0 -27
- package/lib/common/typography/_all-typography.scss +0 -33
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectorRef, Component, Inject } from '@angular/core';
|
|
2
|
-
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
|
3
|
-
import { ActivatedRoute } from '@angular/router';
|
|
4
|
-
import { RxFormBuilder } from '../../../form-validators/services/rx-form-builder';
|
|
5
|
-
import { TableColumnConfig } from '../../../table/models/table-column-config';
|
|
6
|
-
import { TableConfig } from '../../../table/models/table-config';
|
|
7
|
-
import { BaseComponent } from '../base.component';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@angular/router";
|
|
10
|
-
import * as i2 from "@angular/material/dialog";
|
|
11
|
-
import * as i3 from "../../../form-validators/services/rx-form-builder";
|
|
12
|
-
import * as i4 from "@angular/common";
|
|
13
|
-
import * as i5 from "@angular/forms";
|
|
14
|
-
import * as i6 from "../../../table/components/dynamic-table/dynamic-table.component";
|
|
15
|
-
import * as i7 from "@angular/material/button";
|
|
16
|
-
import * as i8 from "@angular/material/icon";
|
|
17
|
-
import * as i9 from "@angular/material/divider";
|
|
18
|
-
import * as i10 from "@angular/cdk/drag-drop";
|
|
19
|
-
import * as i11 from "@angular/material/checkbox";
|
|
20
|
-
import * as i12 from "@angular/material/form-field";
|
|
21
|
-
export class VdDynamicTableConfigDialogComponent extends BaseComponent {
|
|
22
|
-
route;
|
|
23
|
-
changeDetectorRef;
|
|
24
|
-
dialogRef;
|
|
25
|
-
genericList;
|
|
26
|
-
formBuilder;
|
|
27
|
-
/**
|
|
28
|
-
* The array of columns to be configured in the dynamic table.
|
|
29
|
-
* This is of type TableColumnConfig, which holds the configuration details for each column.
|
|
30
|
-
*/
|
|
31
|
-
columns = [];
|
|
32
|
-
/**
|
|
33
|
-
* A reference to the TableConfig class for use in the template.
|
|
34
|
-
*/
|
|
35
|
-
tableConfigClassType = TableConfig;
|
|
36
|
-
/**
|
|
37
|
-
* A reference to the TableColumnConfig class for use in the template.
|
|
38
|
-
*/
|
|
39
|
-
tableColumnConfigClassType = TableColumnConfig;
|
|
40
|
-
/**
|
|
41
|
-
* Form group to manage the table configuration form controls.
|
|
42
|
-
*/
|
|
43
|
-
configForm;
|
|
44
|
-
/**
|
|
45
|
-
* Constructor to initialize the dialog component.
|
|
46
|
-
*
|
|
47
|
-
* @param route - The activated route for the current component.
|
|
48
|
-
* @param changeDetectorRef - Service to request change detection for the component.
|
|
49
|
-
* @param dialogRef - Reference to the dialog instance.
|
|
50
|
-
* @param genericList - The generic list component that contains the table data and configurations.
|
|
51
|
-
* @param formBuilder - Service to build reactive forms.
|
|
52
|
-
*/
|
|
53
|
-
constructor(route, changeDetectorRef, dialogRef, genericList, formBuilder /* Inject RxFormBuilder */) {
|
|
54
|
-
super(route, changeDetectorRef);
|
|
55
|
-
this.route = route;
|
|
56
|
-
this.changeDetectorRef = changeDetectorRef;
|
|
57
|
-
this.dialogRef = dialogRef;
|
|
58
|
-
this.genericList = genericList;
|
|
59
|
-
this.formBuilder = formBuilder;
|
|
60
|
-
/* Initialize the form controls */
|
|
61
|
-
/* Create a new FormGroup instance for TableConfig using the FormBuilder */
|
|
62
|
-
this.configForm = this.formBuilder.formGroup(new TableConfig());
|
|
63
|
-
/* Check if a genericList and its tableConfig exist */
|
|
64
|
-
if (genericList?.tableConfig) {
|
|
65
|
-
/* Patch the existing tableConfig values into the form controls */
|
|
66
|
-
this.configForm.patchValue(genericList.tableConfig);
|
|
67
|
-
}
|
|
68
|
-
/* Subscribe to value changes on the 'sticky' control */
|
|
69
|
-
if (genericList.dynamicTable) {
|
|
70
|
-
this.configForm.controls.sticky.valueChanges.subscribe(value => genericList.dynamicTable.sticky = value);
|
|
71
|
-
}
|
|
72
|
-
/* Filter columns that are configurable from the provided dynamic table configuration */
|
|
73
|
-
this.columns = genericList?.dynamicTable?.columns?.filter((x) => x.configurable);
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Saves the current column configuration and closes the dialog.
|
|
77
|
-
*/
|
|
78
|
-
save() {
|
|
79
|
-
this.apply(); /* Apply changes before closing */
|
|
80
|
-
this.dialogRef.close(); /* Close the dialog */
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Applies the current column configuration to the generic list.
|
|
84
|
-
* Maps the column data to a new array of TableColumnConfig instances
|
|
85
|
-
* and saves the configuration.
|
|
86
|
-
*/
|
|
87
|
-
apply() {
|
|
88
|
-
/* Map the config data from the columns */
|
|
89
|
-
let tableConfig = new TableConfig({
|
|
90
|
-
sticky: this.configForm?.value?.sticky,
|
|
91
|
-
tableWidth: this.configForm?.value?.tableWidth,
|
|
92
|
-
columns: this.columns?.map(x => new TableColumnConfig({
|
|
93
|
-
name: x.name,
|
|
94
|
-
header: x.header,
|
|
95
|
-
index: x.index,
|
|
96
|
-
display: x.display,
|
|
97
|
-
width: x.width,
|
|
98
|
-
maxWidth: x.maxWidth,
|
|
99
|
-
minWidth: x.minWidth,
|
|
100
|
-
sticky: x.sticky,
|
|
101
|
-
stickyEnd: x.stickyEnd
|
|
102
|
-
}))
|
|
103
|
-
});
|
|
104
|
-
/* Save the table configurations using the generic list component's method */
|
|
105
|
-
this.genericList?.saveConfigs(tableConfig);
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Triggers an update of the columns in the generic list component.
|
|
109
|
-
*/
|
|
110
|
-
updateColumns() {
|
|
111
|
-
this.genericList?.updateColumns();
|
|
112
|
-
}
|
|
113
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: VdDynamicTableConfigDialogComponent, deps: [{ token: i1.ActivatedRoute }, { token: i0.ChangeDetectorRef }, { token: i2.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i3.RxFormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
114
|
-
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: VdDynamicTableConfigDialogComponent, selector: "vd-dynamic-table-config-dialog", usesInheritance: true, ngImport: i0, template: "<!-- Title bar with close button -->\r\n<div cdkDrag cdkDragRootElement=\".cdk-overlay-pane\" class=\"pad-right-sm push-none\" layout=\"row\" layout-align=\"space-between center\" cdkDragHandle>\r\n <!-- Container for title and close button -->\r\n <!-- <div layout=\"row\" layout-align=\"space-between center\"> -->\r\n <!-- Dialog title -->\r\n <span mat-dialog-title class=\"pad-left-sm push-left-sm\" i18n=\"@@tableConfiguration\" flex>Table configuration</span>\r\n\r\n <!-- Close button -->\r\n <button mat-icon-button (click)=\"dialogRef.close()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <!-- </div> -->\r\n</div>\r\n\r\n<!-- Form section -->\r\n<mat-divider></mat-divider>\r\n<form *ngIf=\"configForm\" [formGroup]=\"configForm\" class=\"pad-xs\">\r\n <div layout-gt-sm=\"row\" layout=\"column\">\r\n <mat-checkbox formControlName=\"sticky\">\r\n <span i18n=\"@@sticky\">Sticky</span>\r\n <span class=\"description\" i18n=\"@@tableStickyDescription\"> - Select to make the table headers fixed during scrolling.</span>\r\n </mat-checkbox>\r\n <mat-form-field layout-margin flex *ngIf=\"false\">\r\n <mat-label i18n=\"@@tableWidth\">Table width</mat-label>\r\n <input matInput type=\"number\" formControlName=\"tableWidth\" />\r\n </mat-form-field>\r\n </div>\r\n</form>\r\n\r\n<!-- Table configuration with actions -->\r\n<vd-dynamic-table [data]=\"columns\" [classType]=\"tableColumnConfigClassType\" [filterable]=\"true\" [useFilterOperator]=\"false\" [pageSize]=\"10\" [context]=\"this\">\r\n <div table-footer layout-padding class=\"push-xs\">\r\n <a mat-flat-button color=\"primary\" (click)=\"save()\" i18n=\"@@save\">Save</a>\r\n <a mat-flat-button (click)=\"apply()\" i18n=\"@@apply\">Apply</a>\r\n <a mat-flat-button (click)=\"dialogRef.close()\" i18n=\"@@close\">Close</a>\r\n </div>\r\n</vd-dynamic-table>", styles: [".mat-mdc-dialog-title{cursor:move}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "component", type: i6.VdDynamicTableComponent, selector: "vd-dynamic-table", inputs: ["dataSource", "data", "formArray", "debugValue", "classType", "context", "dataSourceFilter", "static", "filterable", "sticky", "tableWidth", "useFilterOperator", "paginable", "selectable", "sortActive", "sortDirection", "stickyHeader", "stickyFilter", "columnSets", "rowNgClass", "detailsTemplate", "readonly", "selectAllFilter", "columns", "rowMenuItems", "rowAction", "excludedColumns", "pageSize", "pageSizeOptions"], outputs: ["rowClick"] }, { kind: "component", type: i7.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i10.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i10.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i11.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i12.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i12.MatLabel, selector: "mat-label" }] });
|
|
115
|
-
}
|
|
116
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: VdDynamicTableConfigDialogComponent, decorators: [{
|
|
117
|
-
type: Component,
|
|
118
|
-
args: [{ selector: 'vd-dynamic-table-config-dialog', template: "<!-- Title bar with close button -->\r\n<div cdkDrag cdkDragRootElement=\".cdk-overlay-pane\" class=\"pad-right-sm push-none\" layout=\"row\" layout-align=\"space-between center\" cdkDragHandle>\r\n <!-- Container for title and close button -->\r\n <!-- <div layout=\"row\" layout-align=\"space-between center\"> -->\r\n <!-- Dialog title -->\r\n <span mat-dialog-title class=\"pad-left-sm push-left-sm\" i18n=\"@@tableConfiguration\" flex>Table configuration</span>\r\n\r\n <!-- Close button -->\r\n <button mat-icon-button (click)=\"dialogRef.close()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <!-- </div> -->\r\n</div>\r\n\r\n<!-- Form section -->\r\n<mat-divider></mat-divider>\r\n<form *ngIf=\"configForm\" [formGroup]=\"configForm\" class=\"pad-xs\">\r\n <div layout-gt-sm=\"row\" layout=\"column\">\r\n <mat-checkbox formControlName=\"sticky\">\r\n <span i18n=\"@@sticky\">Sticky</span>\r\n <span class=\"description\" i18n=\"@@tableStickyDescription\"> - Select to make the table headers fixed during scrolling.</span>\r\n </mat-checkbox>\r\n <mat-form-field layout-margin flex *ngIf=\"false\">\r\n <mat-label i18n=\"@@tableWidth\">Table width</mat-label>\r\n <input matInput type=\"number\" formControlName=\"tableWidth\" />\r\n </mat-form-field>\r\n </div>\r\n</form>\r\n\r\n<!-- Table configuration with actions -->\r\n<vd-dynamic-table [data]=\"columns\" [classType]=\"tableColumnConfigClassType\" [filterable]=\"true\" [useFilterOperator]=\"false\" [pageSize]=\"10\" [context]=\"this\">\r\n <div table-footer layout-padding class=\"push-xs\">\r\n <a mat-flat-button color=\"primary\" (click)=\"save()\" i18n=\"@@save\">Save</a>\r\n <a mat-flat-button (click)=\"apply()\" i18n=\"@@apply\">Apply</a>\r\n <a mat-flat-button (click)=\"dialogRef.close()\" i18n=\"@@close\">Close</a>\r\n </div>\r\n</vd-dynamic-table>", styles: [".mat-mdc-dialog-title{cursor:move}\n"] }]
|
|
119
|
-
}], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: i2.MatDialogRef }, { type: undefined, decorators: [{
|
|
120
|
-
type: Inject,
|
|
121
|
-
args: [MAT_DIALOG_DATA]
|
|
122
|
-
}] }, { type: i3.RxFormBuilder }] });
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10YWJsZS1jb25maWctZGlhbG9nLmNvbW5wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi9iYXNlL2NvbXBvbmVudHMvZHluYW1pYy10YWJsZS1jb25maWctZGlhbG9nL2R5bmFtaWMtdGFibGUtY29uZmlnLWRpYWxvZy5jb21ucG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvYmFzZS9jb21wb25lbnRzL2R5bmFtaWMtdGFibGUtY29uZmlnLWRpYWxvZy9keW5hbWljLXRhYmxlLWNvbmZpZy1kaWFsb2cuY29tbnBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJFLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUVsRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQU9sRCxNQUFNLE9BQU8sbUNBQW9DLFNBQVEsYUFBYTtJQWlDcEQ7SUFDQTtJQUNIO0lBQ3lCO0lBQ3hCO0lBbkNaOzs7T0FHRztJQUNJLE9BQU8sR0FBeUIsRUFBRSxDQUFDO0lBRTFDOztPQUVHO0lBQ0ksb0JBQW9CLEdBQXVCLFdBQVcsQ0FBQztJQUU5RDs7T0FFRztJQUNJLDBCQUEwQixHQUE2QixpQkFBaUIs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O2tCQUwvQyxTQUFTOytCQUNJLGdDQUFnQzs7MEJBd0NyQyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnOyAvKiBJbXBvcnQgRm9ybUJ1aWxkZXIgYW5kIEZvcm1Hcm91cCAqL1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgUnhGb3JtQnVpbGRlciB9IGZyb20gJy4uLy4uLy4uL2Zvcm0tdmFsaWRhdG9ycy9zZXJ2aWNlcy9yeC1mb3JtLWJ1aWxkZXInO1xyXG5pbXBvcnQgeyBUYWJsZUNvbHVtbiB9IGZyb20gJy4uLy4uLy4uL3RhYmxlL21vZGVscy90YWJsZS1jb2x1bW4nO1xyXG5pbXBvcnQgeyBUYWJsZUNvbHVtbkNvbmZpZyB9IGZyb20gJy4uLy4uLy4uL3RhYmxlL21vZGVscy90YWJsZS1jb2x1bW4tY29uZmlnJztcclxuaW1wb3J0IHsgVGFibGVDb25maWcgfSBmcm9tICcuLi8uLi8uLi90YWJsZS9tb2RlbHMvdGFibGUtY29uZmlnJztcclxuaW1wb3J0IHsgSUdlbmVyaWNMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9pZ2VuZXJpYy1saXN0LWNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmQtZHluYW1pYy10YWJsZS1jb25maWctZGlhbG9nJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnZHluYW1pYy10YWJsZS1jb25maWctZGlhbG9nLmNvbW5wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybDogJ2R5bmFtaWMtdGFibGUtY29uZmlnLWRpYWxvZy5jb21ucG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWZER5bmFtaWNUYWJsZUNvbmZpZ0RpYWxvZ0NvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGFycmF5IG9mIGNvbHVtbnMgdG8gYmUgY29uZmlndXJlZCBpbiB0aGUgZHluYW1pYyB0YWJsZS5cclxuICAgICAqIFRoaXMgaXMgb2YgdHlwZSBUYWJsZUNvbHVtbkNvbmZpZywgd2hpY2ggaG9sZHMgdGhlIGNvbmZpZ3VyYXRpb24gZGV0YWlscyBmb3IgZWFjaCBjb2x1bW4uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjb2x1bW5zPzogVGFibGVDb2x1bW5Db25maWdbXSA9IFtdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQSByZWZlcmVuY2UgdG8gdGhlIFRhYmxlQ29uZmlnIGNsYXNzIGZvciB1c2UgaW4gdGhlIHRlbXBsYXRlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdGFibGVDb25maWdDbGFzc1R5cGU6IHR5cGVvZiBUYWJsZUNvbmZpZyA9IFRhYmxlQ29uZmlnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQSByZWZlcmVuY2UgdG8gdGhlIFRhYmxlQ29sdW1uQ29uZmlnIGNsYXNzIGZvciB1c2UgaW4gdGhlIHRlbXBsYXRlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdGFibGVDb2x1bW5Db25maWdDbGFzc1R5cGU6IHR5cGVvZiBUYWJsZUNvbHVtbkNvbmZpZyA9IFRhYmxlQ29sdW1uQ29uZmlnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRm9ybSBncm91cCB0byBtYW5hZ2UgdGhlIHRhYmxlIGNvbmZpZ3VyYXRpb24gZm9ybSBjb250cm9scy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGNvbmZpZ0Zvcm06IEZvcm1Hcm91cDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnN0cnVjdG9yIHRvIGluaXRpYWxpemUgdGhlIGRpYWxvZyBjb21wb25lbnQuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSByb3V0ZSAtIFRoZSBhY3RpdmF0ZWQgcm91dGUgZm9yIHRoZSBjdXJyZW50IGNvbXBvbmVudC5cclxuICAgICAqIEBwYXJhbSBjaGFuZ2VEZXRlY3RvclJlZiAtIFNlcnZpY2UgdG8gcmVxdWVzdCBjaGFuZ2UgZGV0ZWN0aW9uIGZvciB0aGUgY29tcG9uZW50LlxyXG4gICAgICogQHBhcmFtIGRpYWxvZ1JlZiAtIFJlZmVyZW5jZSB0byB0aGUgZGlhbG9nIGluc3RhbmNlLlxyXG4gICAgICogQHBhcmFtIGdlbmVyaWNMaXN0IC0gVGhlIGdlbmVyaWMgbGlzdCBjb21wb25lbnQgdGhhdCBjb250YWlucyB0aGUgdGFibGUgZGF0YSBhbmQgY29uZmlndXJhdGlvbnMuXHJcbiAgICAgKiBAcGFyYW0gZm9ybUJ1aWxkZXIgLSBTZXJ2aWNlIHRvIGJ1aWxkIHJlYWN0aXZlIGZvcm1zLlxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgIHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFZkRHluYW1pY1RhYmxlQ29uZmlnRGlhbG9nQ29tcG9uZW50PixcclxuICAgICAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGdlbmVyaWNMaXN0OiBJR2VuZXJpY0xpc3RDb21wb25lbnQ8YW55PixcclxuICAgICAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBSeEZvcm1CdWlsZGVyIC8qIEluamVjdCBSeEZvcm1CdWlsZGVyICovXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihyb3V0ZSwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG5cclxuICAgICAgICAvKiBJbml0aWFsaXplIHRoZSBmb3JtIGNvbnRyb2xzICovXHJcbiAgICAgICAgLyogQ3JlYXRlIGEgbmV3IEZvcm1Hcm91cCBpbnN0YW5jZSBmb3IgVGFibGVDb25maWcgdXNpbmcgdGhlIEZvcm1CdWlsZGVyICovXHJcbiAgICAgICAgdGhpcy5jb25maWdGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5mb3JtR3JvdXA8VGFibGVDb25maWc+KG5ldyBUYWJsZUNvbmZpZygpKTtcclxuXHJcbiAgICAgICAgLyogQ2hlY2sgaWYgYSBnZW5lcmljTGlzdCBhbmQgaXRzIHRhYmxlQ29uZmlnIGV4aXN0ICovXHJcbiAgICAgICAgaWYgKGdlbmVyaWNMaXN0Py50YWJsZUNvbmZpZykge1xyXG4gICAgICAgICAgICAvKiBQYXRjaCB0aGUgZXhpc3RpbmcgdGFibGVDb25maWcgdmFsdWVzIGludG8gdGhlIGZvcm0gY29udHJvbHMgKi9cclxuICAgICAgICAgICAgdGhpcy5jb25maWdGb3JtLnBhdGNoVmFsdWUoZ2VuZXJpY0xpc3QudGFibGVDb25maWcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogU3Vic2NyaWJlIHRvIHZhbHVlIGNoYW5nZXMgb24gdGhlICdzdGlja3knIGNvbnRyb2wgKi9cclxuICAgICAgICBpZiAoZ2VuZXJpY0xpc3QuZHluYW1pY1RhYmxlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlnRm9ybS5jb250cm9scy5zdGlja3kudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiBnZW5lcmljTGlzdC5keW5hbWljVGFibGUhLnN0aWNreSA9IHZhbHVlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIEZpbHRlciBjb2x1bW5zIHRoYXQgYXJlIGNvbmZpZ3VyYWJsZSBmcm9tIHRoZSBwcm92aWRlZCBkeW5hbWljIHRhYmxlIGNvbmZpZ3VyYXRpb24gKi9cclxuICAgICAgICB0aGlzLmNvbHVtbnMgPSBnZW5lcmljTGlzdD8uZHluYW1pY1RhYmxlPy5jb2x1bW5zPy5maWx0ZXIoKHg6IFRhYmxlQ29sdW1uKSA9PiB4LmNvbmZpZ3VyYWJsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTYXZlcyB0aGUgY3VycmVudCBjb2x1bW4gY29uZmlndXJhdGlvbiBhbmQgY2xvc2VzIHRoZSBkaWFsb2cuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzYXZlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuYXBwbHkoKTsgIC8qIEFwcGx5IGNoYW5nZXMgYmVmb3JlIGNsb3NpbmcgKi9cclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpOyAvKiBDbG9zZSB0aGUgZGlhbG9nICovXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBcHBsaWVzIHRoZSBjdXJyZW50IGNvbHVtbiBjb25maWd1cmF0aW9uIHRvIHRoZSBnZW5lcmljIGxpc3QuXHJcbiAgICAgKiBNYXBzIHRoZSBjb2x1bW4gZGF0YSB0byBhIG5ldyBhcnJheSBvZiBUYWJsZUNvbHVtbkNvbmZpZyBpbnN0YW5jZXMgXHJcbiAgICAgKiBhbmQgc2F2ZXMgdGhlIGNvbmZpZ3VyYXRpb24uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhcHBseSgpOiB2b2lkIHtcclxuICAgICAgICAvKiBNYXAgdGhlIGNvbmZpZyBkYXRhIGZyb20gdGhlIGNvbHVtbnMgKi9cclxuICAgICAgICBsZXQgdGFibGVDb25maWcgPSBuZXcgVGFibGVDb25maWcoe1xyXG4gICAgICAgICAgICBzdGlja3k6IHRoaXMuY29uZmlnRm9ybT8udmFsdWU/LnN0aWNreSxcclxuICAgICAgICAgICAgdGFibGVXaWR0aDogdGhpcy5jb25maWdGb3JtPy52YWx1ZT8udGFibGVXaWR0aCxcclxuICAgICAgICAgICAgY29sdW1uczogdGhpcy5jb2x1bW5zPy5tYXAoeCA9PiBuZXcgVGFibGVDb2x1bW5Db25maWcoe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogeC5uYW1lLFxyXG4gICAgICAgICAgICAgICAgaGVhZGVyOiB4LmhlYWRlcixcclxuICAgICAgICAgICAgICAgIGluZGV4OiB4LmluZGV4LFxyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogeC5kaXNwbGF5LFxyXG4gICAgICAgICAgICAgICAgd2lkdGg6IHgud2lkdGgsXHJcbiAgICAgICAgICAgICAgICBtYXhXaWR0aDogeC5tYXhXaWR0aCxcclxuICAgICAgICAgICAgICAgIG1pbldpZHRoOiB4Lm1pbldpZHRoLFxyXG4gICAgICAgICAgICAgICAgc3RpY2t5OiB4LnN0aWNreSxcclxuICAgICAgICAgICAgICAgIHN0aWNreUVuZDogeC5zdGlja3lFbmRcclxuICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8qIFNhdmUgdGhlIHRhYmxlIGNvbmZpZ3VyYXRpb25zIHVzaW5nIHRoZSBnZW5lcmljIGxpc3QgY29tcG9uZW50J3MgbWV0aG9kICovXHJcbiAgICAgICAgdGhpcy5nZW5lcmljTGlzdD8uc2F2ZUNvbmZpZ3ModGFibGVDb25maWcpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVHJpZ2dlcnMgYW4gdXBkYXRlIG9mIHRoZSBjb2x1bW5zIGluIHRoZSBnZW5lcmljIGxpc3QgY29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdXBkYXRlQ29sdW1ucygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmdlbmVyaWNMaXN0Py51cGRhdGVDb2x1bW5zKCk7XHJcbiAgICB9XHJcbn0iLCI8IS0tIFRpdGxlIGJhciB3aXRoIGNsb3NlIGJ1dHRvbiAtLT5cclxuPGRpdiBjZGtEcmFnIGNka0RyYWdSb290RWxlbWVudD1cIi5jZGstb3ZlcmxheS1wYW5lXCIgY2xhc3M9XCJwYWQtcmlnaHQtc20gcHVzaC1ub25lXCIgbGF5b3V0PVwicm93XCIgbGF5b3V0LWFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIiBjZGtEcmFnSGFuZGxlPlxyXG4gICAgPCEtLSBDb250YWluZXIgZm9yIHRpdGxlIGFuZCBjbG9zZSBidXR0b24gLS0+XHJcbiAgICA8IS0tIDxkaXYgbGF5b3V0PVwicm93XCIgbGF5b3V0LWFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIj4gLS0+XHJcbiAgICA8IS0tIERpYWxvZyB0aXRsZSAtLT5cclxuICAgIDxzcGFuIG1hdC1kaWFsb2ctdGl0bGUgY2xhc3M9XCJwYWQtbGVmdC1zbSBwdXNoLWxlZnQtc21cIiBpMThuPVwiQEB0YWJsZUNvbmZpZ3VyYXRpb25cIiBmbGV4PlRhYmxlIGNvbmZpZ3VyYXRpb248L3NwYW4+XHJcblxyXG4gICAgPCEtLSBDbG9zZSBidXR0b24gLS0+XHJcbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZGlhbG9nUmVmLmNsb3NlKClcIj5cclxuICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8IS0tIDwvZGl2PiAtLT5cclxuPC9kaXY+XHJcblxyXG48IS0tIEZvcm0gc2VjdGlvbiAtLT5cclxuPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XHJcbjxmb3JtICpuZ0lmPVwiY29uZmlnRm9ybVwiIFtmb3JtR3JvdXBdPVwiY29uZmlnRm9ybVwiIGNsYXNzPVwicGFkLXhzXCI+XHJcbiAgICA8ZGl2IGxheW91dC1ndC1zbT1cInJvd1wiIGxheW91dD1cImNvbHVtblwiPlxyXG4gICAgICAgIDxtYXQtY2hlY2tib3ggZm9ybUNvbnRyb2xOYW1lPVwic3RpY2t5XCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGkxOG49XCJAQHN0aWNreVwiPlN0aWNreTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjcmlwdGlvblwiIGkxOG49XCJAQHRhYmxlU3RpY2t5RGVzY3JpcHRpb25cIj4gLSBTZWxlY3QgdG8gbWFrZSB0aGUgdGFibGUgaGVhZGVycyBmaXhlZCBkdXJpbmcgc2Nyb2xsaW5nLjwvc3Bhbj5cclxuICAgICAgICA8L21hdC1jaGVja2JveD5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgbGF5b3V0LW1hcmdpbiBmbGV4ICpuZ0lmPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgPG1hdC1sYWJlbCBpMThuPVwiQEB0YWJsZVdpZHRoXCI+VGFibGUgd2lkdGg8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJudW1iZXJcIiBmb3JtQ29udHJvbE5hbWU9XCJ0YWJsZVdpZHRoXCIgLz5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9kaXY+XHJcbjwvZm9ybT5cclxuXHJcbjwhLS0gVGFibGUgY29uZmlndXJhdGlvbiB3aXRoIGFjdGlvbnMgLS0+XHJcbjx2ZC1keW5hbWljLXRhYmxlIFtkYXRhXT1cImNvbHVtbnNcIiBbY2xhc3NUeXBlXT1cInRhYmxlQ29sdW1uQ29uZmlnQ2xhc3NUeXBlXCIgW2ZpbHRlcmFibGVdPVwidHJ1ZVwiIFt1c2VGaWx0ZXJPcGVyYXRvcl09XCJmYWxzZVwiIFtwYWdlU2l6ZV09XCIxMFwiIFtjb250ZXh0XT1cInRoaXNcIj5cclxuICAgIDxkaXYgdGFibGUtZm9vdGVyIGxheW91dC1wYWRkaW5nIGNsYXNzPVwicHVzaC14c1wiPlxyXG4gICAgICAgIDxhIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwic2F2ZSgpXCIgaTE4bj1cIkBAc2F2ZVwiPlNhdmU8L2E+XHJcbiAgICAgICAgPGEgbWF0LWZsYXQtYnV0dG9uIChjbGljayk9XCJhcHBseSgpXCIgaTE4bj1cIkBAYXBwbHlcIj5BcHBseTwvYT5cclxuICAgICAgICA8YSBtYXQtZmxhdC1idXR0b24gKGNsaWNrKT1cImRpYWxvZ1JlZi5jbG9zZSgpXCIgaTE4bj1cIkBAY2xvc2VcIj5DbG9zZTwvYT5cclxuICAgIDwvZGl2PlxyXG48L3ZkLWR5bmFtaWMtdGFibGU+Il19
|
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectorRef, Directive, Input, Type } from '@angular/core';
|
|
2
|
-
import { FormGroup } from '@angular/forms';
|
|
3
|
-
import { ActivatedRoute } from '@angular/router';
|
|
4
|
-
import { RxFormBuilder } from '../../form-validators/services/rx-form-builder';
|
|
5
|
-
import { TableStaticDataSource } from '../../table/table.module';
|
|
6
|
-
import { GenericListComponent } from './generic-list.component';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "../../form-validators/services/rx-form-builder";
|
|
9
|
-
import * as i2 from "@angular/router";
|
|
10
|
-
/**
|
|
11
|
-
* @class GenericEmbeddedListComponent
|
|
12
|
-
*
|
|
13
|
-
* A base class for managing a list of embedded items within a form.
|
|
14
|
-
* It provides common functionalities for adding, removing, and managing items.
|
|
15
|
-
*/
|
|
16
|
-
export class GenericEmbeddedListComponent extends GenericListComponent {
|
|
17
|
-
entity;
|
|
18
|
-
service;
|
|
19
|
-
formBuilder;
|
|
20
|
-
route;
|
|
21
|
-
changeDetectorRef;
|
|
22
|
-
/**
|
|
23
|
-
* The reactive form associated with this component.
|
|
24
|
-
*/
|
|
25
|
-
form;
|
|
26
|
-
/**
|
|
27
|
-
* The parent entity that this component is associated with.
|
|
28
|
-
*/
|
|
29
|
-
parent;
|
|
30
|
-
/**
|
|
31
|
-
* A prefix for hashing purposes, default is an empty string.
|
|
32
|
-
*/
|
|
33
|
-
hashPrefix = '';
|
|
34
|
-
/**
|
|
35
|
-
* Determines whether the list supports pagination.
|
|
36
|
-
* If true, pagination controls will be available for navigating through the data.
|
|
37
|
-
*/
|
|
38
|
-
paginable = false;
|
|
39
|
-
/**
|
|
40
|
-
* @property pageSize
|
|
41
|
-
* @description The number of items displayed per page in the data-table.
|
|
42
|
-
* It controls how many records are shown on a single page.
|
|
43
|
-
* @type {number}
|
|
44
|
-
*/
|
|
45
|
-
pageSize = 10;
|
|
46
|
-
/**
|
|
47
|
-
* The name of the property representing the list of items.
|
|
48
|
-
*/
|
|
49
|
-
itemsPropertyName = 'items';
|
|
50
|
-
/**
|
|
51
|
-
* Menu options for managing a list of items, including delete and more options.
|
|
52
|
-
*/
|
|
53
|
-
itemListMenu = [
|
|
54
|
-
{
|
|
55
|
-
/* Option to remove the selected item from the list */
|
|
56
|
-
icon: 'delete_forever',
|
|
57
|
-
event: (_, __, i) => this.removeItem(i),
|
|
58
|
-
hide: (item) => (item?.id ?? 0) > 0
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
/* Action to show additional options for the item */
|
|
62
|
-
icon: 'more_vert',
|
|
63
|
-
hide: (item) => (item?.id ?? 0) <= 0,
|
|
64
|
-
items: this.rowMenuItems
|
|
65
|
-
}
|
|
66
|
-
];
|
|
67
|
-
/**
|
|
68
|
-
* Constructor for initializing the component.
|
|
69
|
-
*
|
|
70
|
-
* @param entity The type of entity being managed.
|
|
71
|
-
* @param service The service for managing entity operations.
|
|
72
|
-
* @param formBuilder The builder for creating reactive forms.
|
|
73
|
-
* @param route The activated route for navigation.
|
|
74
|
-
* @param changeDetectorRef The change detector for managing view updates.
|
|
75
|
-
*/
|
|
76
|
-
constructor(entity, service, formBuilder, route, changeDetectorRef) {
|
|
77
|
-
super(service, route, changeDetectorRef, null);
|
|
78
|
-
this.entity = entity;
|
|
79
|
-
this.service = service;
|
|
80
|
-
this.formBuilder = formBuilder;
|
|
81
|
-
this.route = route;
|
|
82
|
-
this.changeDetectorRef = changeDetectorRef;
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Lifecycle hook called after the constructor.
|
|
86
|
-
* Initializes input properties and sets up data fetching.
|
|
87
|
-
*/
|
|
88
|
-
ngOnInit() {
|
|
89
|
-
super.ngOnInit();
|
|
90
|
-
if (this.parent?.id) {
|
|
91
|
-
/* Sets the paginator for the dataSource */
|
|
92
|
-
this.dataSource.paginator = this.paginator;
|
|
93
|
-
/*
|
|
94
|
-
If a parent entity exists (i.e., it has an ID), connect to the data source
|
|
95
|
-
with the specified page size and any additional fetch data.
|
|
96
|
-
*/
|
|
97
|
-
this.connect(Object.assign({ pageSize: 10 }, this.getFetchData(), { id: null }));
|
|
98
|
-
}
|
|
99
|
-
else if (this.dataSource.items.length <= 0) {
|
|
100
|
-
/*
|
|
101
|
-
If there is no parent entity and the data source items are empty,
|
|
102
|
-
populate the data source with initial items from the form's value.
|
|
103
|
-
*/
|
|
104
|
-
this.dataSource.items?.push(...this.form?.value[this.itemsPropertyName]);
|
|
105
|
-
}
|
|
106
|
-
if (!this.parent?.id && this.paginable) {
|
|
107
|
-
/* Initializes the dataSource with the entities */
|
|
108
|
-
this.dataSource = new TableStaticDataSource(...this.form?.value[this.itemsPropertyName]);
|
|
109
|
-
/* Set the default page size */
|
|
110
|
-
this.dataSource.pageSize = this.pageSize;
|
|
111
|
-
/* Sets the paginator for the dataSource */
|
|
112
|
-
this.dataSource.paginator = this.paginator;
|
|
113
|
-
/* Subscribes to the dataSource connection and assigns the result to the items array */
|
|
114
|
-
this.connect();
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Adds a new item to the current list.
|
|
119
|
-
*
|
|
120
|
-
* @param init Optional initial values for the new entity.
|
|
121
|
-
*/
|
|
122
|
-
addItem(init) {
|
|
123
|
-
/* Create a new entity instance with optional initial values */
|
|
124
|
-
var entity = this.newInstance(init || {});
|
|
125
|
-
/* Add the new item to the data source to show it in the expansion panel */
|
|
126
|
-
this.dataSource.items?.push(entity);
|
|
127
|
-
/* Update the data source with the modified items array */
|
|
128
|
-
this.dataSource.data = this.dataSource.items;
|
|
129
|
-
/* Add the entity to the form array in 'add mode' */
|
|
130
|
-
if (!this.parent?.id) {
|
|
131
|
-
this.form?.controls[this.itemsPropertyName]?.push(this.formBuilder.formGroup(entity));
|
|
132
|
-
/* Ensure the form is valid after adding the item */
|
|
133
|
-
this.form?.updateValueAndValidity();
|
|
134
|
-
}
|
|
135
|
-
/* Trigger change detection to update the view */
|
|
136
|
-
this.changeDetectorRef.detectChanges();
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Removes an item from the list and the form.
|
|
140
|
-
*
|
|
141
|
-
* @param index The index of the item to remove.
|
|
142
|
-
*/
|
|
143
|
-
removeItem(index) {
|
|
144
|
-
/* Remove item from the form array */
|
|
145
|
-
this.form?.controls[this.itemsPropertyName]?.removeAt(index);
|
|
146
|
-
/* Remove item from the data source */
|
|
147
|
-
this.dataSource.items?.splice(index, 1);
|
|
148
|
-
this.items?.splice(index, 1);
|
|
149
|
-
if (this.parent?.id) {
|
|
150
|
-
/* Refresh data source if associated with a parent */
|
|
151
|
-
this.dataSource.connect().subscribe();
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Clears all items from the list and the form.
|
|
156
|
-
*/
|
|
157
|
-
clearItems() {
|
|
158
|
-
/* Clear the items from the data source */
|
|
159
|
-
this.dataSource.items = [];
|
|
160
|
-
this.dataSource.data = [];
|
|
161
|
-
/* Clear the form array */
|
|
162
|
-
this.form?.controls[this.itemsPropertyName]?.clear();
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* Creates a new instance of the TEntity.
|
|
166
|
-
*
|
|
167
|
-
* @param init Optional initial values for the entity.
|
|
168
|
-
* @returns A new instance of TEntity.
|
|
169
|
-
*/
|
|
170
|
-
newInstance(init) {
|
|
171
|
-
/* Create a new entity instance */
|
|
172
|
-
return new this.entity(init);
|
|
173
|
-
}
|
|
174
|
-
/**
|
|
175
|
-
* Adds menu items to the row options for managing individual items.
|
|
176
|
-
*/
|
|
177
|
-
addRowMenuItems() {
|
|
178
|
-
this.editable = false;
|
|
179
|
-
super.addRowMenuItems();
|
|
180
|
-
}
|
|
181
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: GenericEmbeddedListComponent, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
|
|
182
|
-
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: GenericEmbeddedListComponent, inputs: { form: "form", parent: "parent", hashPrefix: "hashPrefix", paginable: "paginable", pageSize: "pageSize" }, usesInheritance: true, ngImport: i0 });
|
|
183
|
-
}
|
|
184
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: GenericEmbeddedListComponent, decorators: [{
|
|
185
|
-
type: Directive
|
|
186
|
-
}], ctorParameters: () => [{ type: i0.Type }, { type: undefined }, { type: i1.RxFormBuilder }, { type: i2.ActivatedRoute }, { type: i0.ChangeDetectorRef }], propDecorators: { form: [{
|
|
187
|
-
type: Input
|
|
188
|
-
}], parent: [{
|
|
189
|
-
type: Input
|
|
190
|
-
}], hashPrefix: [{
|
|
191
|
-
type: Input
|
|
192
|
-
}], paginable: [{
|
|
193
|
-
type: Input
|
|
194
|
-
}], pageSize: [{
|
|
195
|
-
type: Input
|
|
196
|
-
}] } });
|
|
197
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1lbWJlZGRlZC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Jhc2UvY29tcG9uZW50cy9nZW5lcmljLWVtYmVkZGVkLWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUUvRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQUVoRTs7Ozs7R0FLRztBQUVILE1BQU0sT0FBZ0IsNEJBSXBCLFNBQVEsb0JBQXVDO0lBb0VyQztJQUNIO0lBQ0c7SUFDQTtJQUNBO0lBdkVYOztPQUVHO0lBRUksSUFBSSxDQUFhO0lBRXhCOztPQUVHO0lBRUksTUFBTSxDQUFXO0lBRXhCOztPQUVHO0lBRUksVUFBVSxHQUFXLEVBQUUsQ0FBQztJQUUvQjs7O09BR0c7SUFFSSxTQUFTLEdBQVksS0FBSyxDQUFDO0lBRWxDOzs7OztPQUtHO0lBRUksUUFBUSxHQUFXLEVBQUUsQ0FBQztJQUU3Qjs7T0FFRztJQUNPLGlCQUFpQixHQUFHLE9BQU8sQ0FBQztJQUV0Qzs7T0FFRztJQUNJLFlBQVksR0FBMEI7UUFDNUM7WUFDQyxzREFBc0Q7WUFDdEQsSUFBSSxFQUFFLGdCQUFnQjtZQUN0QixLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxF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SUFBSSxDQUFDLGlCQUFpQixDQUFpQixFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3ZFLENBQUM7SUFRRDs7Ozs7T0FLRztJQUNPLFdBQVcsQ0FBQyxJQUFzQjtRQUMzQyxrQ0FBa0M7UUFDbEMsT0FBTyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVEOztPQUVHO0lBQ08sZUFBZTtRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQzswSEF4TW9CLDRCQUE0Qjs4R0FBNUIsNEJBQTRCOzsyRkFBNUIsNEJBQTRCO2tCQURqRCxTQUFTO3VMQVVGLElBQUk7c0JBRFYsS0FBSztnQkFPQyxNQUFNO3NCQURaLEtBQUs7Z0JBT0MsVUFBVTtzQkFEaEIsS0FBSztnQkFRQyxTQUFTO3NCQURmLEtBQUs7Z0JBVUMsUUFBUTtzQkFEZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgSW5wdXQsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEFjdGlvbkl0ZW0sIElFbnRpdHkgfSBmcm9tICcuLi8uLi9jb21tb24vY29tbW9uLm1vZHVsZSc7XHJcbmltcG9ydCB7IFJ4Rm9ybUFycmF5IH0gZnJvbSAnLi4vLi4vZm9ybS12YWxpZGF0b3JzL3NlcnZpY2VzL3J4LWZvcm0tYXJyYXknO1xyXG5pbXBvcnQgeyBSeEZvcm1CdWlsZGVyIH0gZnJvbSAnLi4vLi4vZm9ybS12YWxpZGF0b3JzL3NlcnZpY2VzL3J4LWZvcm0tYnVpbGRlcic7XHJcbmltcG9ydCB7IEdlbmVyaWNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaHR0cC9odHRwLm1vZHVsZSc7XHJcbmltcG9ydCB7IFRhYmxlU3RhdGljRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uL3RhYmxlL3RhYmxlLm1vZHVsZSc7XHJcbmltcG9ydCB7IEdlbmVyaWNMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9nZW5lcmljLWxpc3QuY29tcG9uZW50JztcclxuXHJcbi8qKlxyXG4gKiBAY2xhc3MgR2VuZXJpY0VtYmVkZGVkTGlzdENvbXBvbmVudFxyXG4gKiBcclxuICogQSBiYXNlIGNsYXNzIGZvciBtYW5hZ2luZyBhIGxpc3Qgb2YgZW1iZWRkZWQgaXRlbXMgd2l0aGluIGEgZm9ybS5cclxuICogSXQgcHJvdmlkZXMgY29tbW9uIGZ1bmN0aW9uYWxpdGllcyBmb3IgYWRkaW5nLCByZW1vdmluZywgYW5kIG1hbmFnaW5nIGl0ZW1zLlxyXG4gKi9cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBHZW5lcmljRW1iZWRkZWRMaXN0Q29tcG9uZW50PFxyXG5cdFRFbnRpdHkgZXh0ZW5kcyBJRW50aXR5LFxyXG5cdFRQYXJlbnQgZXh0ZW5kcyBJRW50aXR5LFxyXG5cdFRTZXJ2aWNlIGV4dGVuZHMgR2VuZXJpY1NlcnZpY2U8VEVudGl0eT5cclxuPiBleHRlbmRzIEdlbmVyaWNMaXN0Q29tcG9uZW50PFRFbnRpdHksIFRTZXJ2aWNlPiB7XHJcblx0LyoqXHJcblx0ICogVGhlIHJlYWN0aXZlIGZvcm0gYXNzb2NpYXRlZCB3aXRoIHRoaXMgY29tcG9uZW50LlxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIGZvcm0/OiBGb3JtR3JvdXA7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRoZSBwYXJlbnQgZW50aXR5IHRoYXQgdGhpcyBjb21wb25lbnQgaXMgYXNzb2NpYXRlZCB3aXRoLlxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIHBhcmVudD86IFRQYXJlbnQ7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEEgcHJlZml4IGZvciBoYXNoaW5nIHB1cnBvc2VzLCBkZWZhdWx0IGlzIGFuIGVtcHR5IHN0cmluZy5cclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyBoYXNoUHJlZml4OiBzdHJpbmcgPSAnJztcclxuXHJcblx0LyoqXHJcblx0ICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBsaXN0IHN1cHBvcnRzIHBhZ2luYXRpb24uXHJcblx0ICogSWYgdHJ1ZSwgcGFnaW5hdGlvbiBjb250cm9scyB3aWxsIGJlIGF2YWlsYWJsZSBmb3IgbmF2aWdhdGluZyB0aHJvdWdoIHRoZSBkYXRhLlxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIHBhZ2luYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgcGFnZVNpemVcclxuXHQgKiBAZGVzY3JpcHRpb24gVGhlIG51bWJlciBvZiBpdGVtcyBkaXNwbGF5ZWQgcGVyIHBhZ2UgaW4gdGhlIGRhdGEtdGFibGUuXHJcblx0ICogSXQgY29udHJvbHMgaG93IG1hbnkgcmVjb3JkcyBhcmUgc2hvd24gb24gYSBzaW5nbGUgcGFnZS5cclxuXHQgKiBAdHlwZSB7bnVtYmVyfVxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIHBhZ2VTaXplOiBudW1iZXIgPSAxMDtcclxuXHJcblx0LyoqXHJcblx0ICogVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHJlcHJlc2VudGluZyB0aGUgbGlzdCBvZiBpdGVtcy5cclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgaXRlbXNQcm9wZXJ0eU5hbWUgPSAnaXRlbXMnO1xyXG5cclxuXHQvKipcclxuXHQgKiBNZW51IG9wdGlvbnMgZm9yIG1hbmFnaW5nIGEgbGlzdCBvZiBpdGVtcywgaW5jbHVkaW5nIGRlbGV0ZSBhbmQgbW9yZSBvcHRpb25zLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBpdGVtTGlzdE1lbnU6IEFjdGlvbkl0ZW08VEVudGl0eT5bXSA9IFtcclxuXHRcdHtcclxuXHRcdFx0LyogT3B0aW9uIHRvIHJlbW92ZSB0aGUgc2VsZWN0ZWQgaXRlbSBmcm9tIHRoZSBsaXN0ICovXHJcblx0XHRcdGljb246ICdkZWxldGVfZm9yZXZlcicsXHJcblx0XHRcdGV2ZW50OiAoXywgX18sIGkpID0+IHRoaXMucmVtb3ZlSXRlbShpISksXHJcblx0XHRcdGhpZGU6IChpdGVtKSA9PiAoaXRlbT8uaWQgPz8gMCkgPiAwXHJcblx0XHR9LFxyXG5cdFx0e1xyXG5cdFx0XHQvKiBBY3Rpb24gdG8gc2hvdyBhZGRpdGlvbmFsIG9wdGlvbnMgZm9yIHRoZSBpdGVtICovXHJcblx0XHRcdGljb246ICdtb3JlX3ZlcnQnLFxyXG5cdFx0XHRoaWRlOiAoaXRlbSkgPT4gKGl0ZW0/LmlkID8/IDApIDw9IDAsXHJcblx0XHRcdGl0ZW1zOiB0aGlzLnJvd01lbnVJdGVtc1xyXG5cdFx0fVxyXG5cdF07XHJcblxyXG5cdC8qKlxyXG5cdCAqIENvbnN0cnVjdG9yIGZvciBpbml0aWFsaXppbmcgdGhlIGNvbXBvbmVudC5cclxuXHQgKiBcclxuXHQgKiBAcGFyYW0gZW50aXR5IFRoZSB0eXBlIG9mIGVudGl0eSBiZWluZyBtYW5hZ2VkLlxyXG5cdCAqIEBwYXJhbSBzZXJ2aWNlIFRoZSBzZXJ2aWNlIGZvciBtYW5hZ2luZyBlbnRpdHkgb3BlcmF0aW9ucy5cclxuXHQgKiBAcGFyYW0gZm9ybUJ1aWxkZXIgVGhlIGJ1aWxkZXIgZm9yIGNyZWF0aW5nIHJlYWN0aXZlIGZvcm1zLlxyXG5cdCAqIEBwYXJhbSByb3V0ZSBUaGUgYWN0aXZhdGVkIHJvdXRlIGZvciBuYXZpZ2F0aW9uLlxyXG5cdCAqIEBwYXJhbSBjaGFuZ2VEZXRlY3RvclJlZiBUaGUgY2hhbmdlIGRldGVjdG9yIGZvciBtYW5hZ2luZyB2aWV3IHVwZGF0ZXMuXHJcblx0ICovXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcm90ZWN0ZWQgZW50aXR5OiBUeXBlPFRFbnRpdHk+LFxyXG5cdFx0cHVibGljIHNlcnZpY2U6IFRTZXJ2aWNlLFxyXG5cdFx0cHJvdGVjdGVkIGZvcm1CdWlsZGVyOiBSeEZvcm1CdWlsZGVyLFxyXG5cdFx0cHJvdGVjdGVkIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuXHRcdHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuXHQpIHtcclxuXHRcdHN1cGVyKHNlcnZpY2UsIHJvdXRlLCBjaGFuZ2VEZXRlY3RvclJlZiwgPGFueT5udWxsKVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogTGlmZWN5Y2xlIGhvb2sgY2FsbGVkIGFmdGVyIHRoZSBjb25zdHJ1Y3Rvci5cclxuXHQgKiBJbml0aWFsaXplcyBpbnB1dCBwcm9wZXJ0aWVzIGFuZCBzZXRzIHVwIGRhdGEgZmV0Y2hpbmcuXHJcblx0ICovXHJcblx0bmdPbkluaXQoKTogdm9pZCB7XHJcblx0XHRzdXBlci5uZ09uSW5pdCgpO1xyXG5cdFx0aWYgKHRoaXMucGFyZW50Py5pZCkge1xyXG5cdFx0XHQvKiBTZXRzIHRoZSBwYWdpbmF0b3IgZm9yIHRoZSBkYXRhU291cmNlICovXHJcblx0XHRcdHRoaXMuZGF0YVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLnBhZ2luYXRvciE7XHJcblxyXG5cdFx0XHQvKiBcclxuXHRcdFx0SWYgYSBwYXJlbnQgZW50aXR5IGV4aXN0cyAoaS5lLiwgaXQgaGFzIGFuIElEKSwgY29ubmVjdCB0byB0aGUgZGF0YSBzb3VyY2UgXHJcblx0XHRcdHdpdGggdGhlIHNwZWNpZmllZCBwYWdlIHNpemUgYW5kIGFueSBhZGRpdGlvbmFsIGZldGNoIGRhdGEuXHJcblx0XHRcdCovXHJcblx0XHRcdHRoaXMuY29ubmVjdChPYmplY3QuYXNzaWduKHsgcGFnZVNpemU6IDEwIH0sIHRoaXMuZ2V0RmV0Y2hEYXRhKCksIHsgaWQ6IG51bGwgfSkpO1xyXG5cdFx0fSBlbHNlIGlmICh0aGlzLmRhdGFTb3VyY2UuaXRlbXMubGVuZ3RoIDw9IDApIHtcclxuXHRcdFx0LyogXHJcblx0XHRcdElmIHRoZXJlIGlzIG5vIHBhcmVudCBlbnRpdHkgYW5kIHRoZSBkYXRhIHNvdXJjZSBpdGVtcyBhcmUgZW1wdHksXHJcblx0XHRcdHBvcHVsYXRlIHRoZSBkYXRhIHNvdXJjZSB3aXRoIGluaXRpYWwgaXRlbXMgZnJvbSB0aGUgZm9ybSdzIHZhbHVlLlxyXG5cdFx0XHQqL1xyXG5cdFx0XHR0aGlzLmRhdGFTb3VyY2UuaXRlbXM/LnB1c2goLi4udGhpcy5mb3JtPy52YWx1ZVt0aGlzLml0ZW1zUHJvcGVydHlOYW1lXSk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCF0aGlzLnBhcmVudD8uaWQgJiYgdGhpcy5wYWdpbmFibGUpIHtcclxuXHRcdFx0LyogSW5pdGlhbGl6ZXMgdGhlIGRhdGFTb3VyY2Ugd2l0aCB0aGUgZW50aXRpZXMgKi9cclxuXHRcdFx0dGhpcy5kYXRhU291cmNlID0gbmV3IFRhYmxlU3RhdGljRGF0YVNvdXJjZSguLi50aGlzLmZvcm0/LnZhbHVlW3RoaXMuaXRlbXNQcm9wZXJ0eU5hbWVdKTtcclxuXHJcblx0XHRcdC8qIFNldCB0aGUgZGVmYXVsdCBwYWdlIHNpemUgKi9cclxuXHRcdFx0dGhpcy5kYXRhU291cmNlLnBhZ2VTaXplID0gdGhpcy5wYWdlU2l6ZTtcclxuXHJcblx0XHRcdC8qIFNldHMgdGhlIHBhZ2luYXRvciBmb3IgdGhlIGRhdGFTb3VyY2UgKi9cclxuXHRcdFx0dGhpcy5kYXRhU291cmNlLnBhZ2luYXRvciA9IHRoaXMucGFnaW5hdG9yO1xyXG5cclxuXHRcdFx0LyogU3Vic2NyaWJlcyB0byB0aGUgZGF0YVNvdXJjZSBjb25uZWN0aW9uIGFuZCBhc3NpZ25zIHRoZSByZXN1bHQgdG8gdGhlIGl0ZW1zIGFycmF5ICovXHJcblx0XHRcdHRoaXMuY29ubmVjdCgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQWRkcyBhIG5ldyBpdGVtIHRvIHRoZSBjdXJyZW50IGxpc3QuXHJcblx0ICogXHJcblx0ICogQHBhcmFtIGluaXQgT3B0aW9uYWwgaW5pdGlhbCB2YWx1ZXMgZm9yIHRoZSBuZXcgZW50aXR5LlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBhZGRJdGVtKGluaXQ/OiBQYXJ0aWFsPFRFbnRpdHk+KTogdm9pZCB7XHJcblx0XHQvKiBDcmVhdGUgYSBuZXcgZW50aXR5IGluc3RhbmNlIHdpdGggb3B0aW9uYWwgaW5pdGlhbCB2YWx1ZXMgKi9cclxuXHRcdHZhciBlbnRpdHkgPSA8VEVudGl0eT50aGlzLm5ld0luc3RhbmNlKGluaXQgfHwge30pO1xyXG5cclxuXHRcdC8qIEFkZCB0aGUgbmV3IGl0ZW0gdG8gdGhlIGRhdGEgc291cmNlIHRvIHNob3cgaXQgaW4gdGhlIGV4cGFuc2lvbiBwYW5lbCAqL1xyXG5cdFx0dGhpcy5kYXRhU291cmNlLml0ZW1zPy5wdXNoKGVudGl0eSk7XHJcblxyXG5cdFx0LyogVXBkYXRlIHRoZSBkYXRhIHNvdXJjZSB3aXRoIHRoZSBtb2RpZmllZCBpdGVtcyBhcnJheSAqL1xyXG5cdFx0dGhpcy5kYXRhU291cmNlLmRhdGEgPSB0aGlzLmRhdGFTb3VyY2UuaXRlbXM7XHJcblxyXG5cdFx0LyogQWRkIHRoZSBlbnRpdHkgdG8gdGhlIGZvcm0gYXJyYXkgaW4gJ2FkZCBtb2RlJyAqL1xyXG5cdFx0aWYgKCF0aGlzLnBhcmVudD8uaWQpIHtcclxuXHRcdFx0KHRoaXMuZm9ybT8uY29udHJvbHNbdGhpcy5pdGVtc1Byb3BlcnR5TmFtZV0gYXMgUnhGb3JtQXJyYXkpPy5wdXNoKHRoaXMuZm9ybUJ1aWxkZXIuZm9ybUdyb3VwPFRFbnRpdHk+KGVudGl0eSkpO1xyXG5cclxuXHRcdFx0LyogRW5zdXJlIHRoZSBmb3JtIGlzIHZhbGlkIGFmdGVyIGFkZGluZyB0aGUgaXRlbSAqL1xyXG5cdFx0XHR0aGlzLmZvcm0/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuXHRcdH1cclxuXHJcblx0XHQvKiBUcmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb24gdG8gdXBkYXRlIHRoZSB2aWV3ICovXHJcblx0XHR0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFJlbW92ZXMgYW4gaXRlbSBmcm9tIHRoZSBsaXN0IGFuZCB0aGUgZm9ybS5cclxuXHQgKiBcclxuXHQgKiBAcGFyYW0gaW5kZXggVGhlIGluZGV4IG9mIHRoZSBpdGVtIHRvIHJlbW92ZS5cclxuXHQgKi9cclxuXHRwdWJsaWMgcmVtb3ZlSXRlbShpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcblx0XHQvKiBSZW1vdmUgaXRlbSBmcm9tIHRoZSBmb3JtIGFycmF5ICovXHJcblx0XHQodGhpcy5mb3JtPy5jb250cm9sc1t0aGlzLml0ZW1zUHJvcGVydHlOYW1lXSBhcyBSeEZvcm1BcnJheSk/LnJlbW92ZUF0KGluZGV4KTtcclxuXHJcblx0XHQvKiBSZW1vdmUgaXRlbSBmcm9tIHRoZSBkYXRhIHNvdXJjZSAqL1xyXG5cdFx0dGhpcy5kYXRhU291cmNlLml0ZW1zPy5zcGxpY2UoaW5kZXgsIDEpO1xyXG5cdFx0dGhpcy5pdGVtcz8uc3BsaWNlKGluZGV4LCAxKTtcclxuXHJcblx0XHRpZiAodGhpcy5wYXJlbnQ/LmlkKSB7XHJcblx0XHRcdC8qIFJlZnJlc2ggZGF0YSBzb3VyY2UgaWYgYXNzb2NpYXRlZCB3aXRoIGEgcGFyZW50ICovXHJcblx0XHRcdHRoaXMuZGF0YVNvdXJjZS5jb25uZWN0KCkuc3Vic2NyaWJlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBDbGVhcnMgYWxsIGl0ZW1zIGZyb20gdGhlIGxpc3QgYW5kIHRoZSBmb3JtLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBjbGVhckl0ZW1zKCk6IHZvaWQge1xyXG5cdFx0LyogQ2xlYXIgdGhlIGl0ZW1zIGZyb20gdGhlIGRhdGEgc291cmNlICovXHJcblx0XHR0aGlzLmRhdGFTb3VyY2UuaXRlbXMgPSBbXTtcclxuXHRcdHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gW107XHJcblxyXG5cdFx0LyogQ2xlYXIgdGhlIGZvcm0gYXJyYXkgKi9cclxuXHRcdCh0aGlzLmZvcm0/LmNvbnRyb2xzW3RoaXMuaXRlbXNQcm9wZXJ0eU5hbWVdIGFzIFJ4Rm9ybUFycmF5KT8uY2xlYXIoKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEFic3RyYWN0IG1ldGhvZCB0byBmZXRjaCBkYXRhIGZvciB0aGUgbGlzdC5cclxuXHQgKiBNdXN0IGJlIGltcGxlbWVudGVkIGJ5IGRlcml2ZWQgY2xhc3Nlcy5cclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0RmV0Y2hEYXRhKCk6IGFueTtcclxuXHJcblx0LyoqXHJcblx0ICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgVEVudGl0eS5cclxuXHQgKiBcclxuXHQgKiBAcGFyYW0gaW5pdCBPcHRpb25hbCBpbml0aWFsIHZhbHVlcyBmb3IgdGhlIGVudGl0eS5cclxuXHQgKiBAcmV0dXJucyBBIG5ldyBpbnN0YW5jZSBvZiBURW50aXR5LlxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCBuZXdJbnN0YW5jZShpbml0OiBQYXJ0aWFsPFRFbnRpdHk+KTogVEVudGl0eSB7XHJcblx0XHQvKiBDcmVhdGUgYSBuZXcgZW50aXR5IGluc3RhbmNlICovXHJcblx0XHRyZXR1cm4gbmV3IHRoaXMuZW50aXR5KGluaXQpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQWRkcyBtZW51IGl0ZW1zIHRvIHRoZSByb3cgb3B0aW9ucyBmb3IgbWFuYWdpbmcgaW5kaXZpZHVhbCBpdGVtcy5cclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgYWRkUm93TWVudUl0ZW1zKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5lZGl0YWJsZSA9IGZhbHNlO1xyXG5cdFx0c3VwZXIuYWRkUm93TWVudUl0ZW1zKCk7XHJcblx0fVxyXG59Il19
|