@messaia/cdk 18.2.3 → 19.0.0-rc01
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 +1147 -932
- package/fesm2022/messaia-cdk.mjs.map +1 -1
- 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 +1 -1
- package/lib/base/components/generic-form.component.d.ts +1 -1
- package/lib/base/components/generic-list.component.d.ts +7 -3
- package/lib/base/components/generic-reactive-form.component.d.ts +1 -1
- 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 +4 -4
- package/lib/common/styles/core/_button.scss +7 -21
- package/lib/common/styles/core/_card.scss +13 -97
- package/lib/common/styles/core/_core.scss +8 -21
- 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/m3/_common-theme.scss +27 -10
- package/lib/common/styles/platform.scss +10 -8
- package/lib/common/styles/utilities/_general.scss +55 -51
- 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/common/theming/_m3-all-theme.scss +18 -0
- 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/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-toggle.class.d.ts +1 -1
- package/lib/list/components/list.component.d.ts +3 -15
- package/lib/select/components/select.component.d.ts +3 -16
- package/lib/table/components/filter-select/filter-select.component.d.ts +2 -3
- 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/theming/_all-theme.scss +0 -27
- package/lib/common/typography/_all-typography.scss +0 -33
|
@@ -1,198 +0,0 @@
|
|
|
1
|
-
import { MODEL_INSTANCE, RXCODE } from "../const/app.const";
|
|
2
|
-
import { OBJECT_PROPERTY } from "../const/validator.const";
|
|
3
|
-
import { defaultContainer } from "../core/default-container";
|
|
4
|
-
import { ApplicationUtil } from "../util/app-util";
|
|
5
|
-
import { instanceProvider } from "../util/instance-provider.function";
|
|
6
|
-
/**
|
|
7
|
-
* Provides functionality for disabling form controls based on decorator configuration.
|
|
8
|
-
*/
|
|
9
|
-
export class DisableProvider {
|
|
10
|
-
decoratorType;
|
|
11
|
-
entityObject;
|
|
12
|
-
/**
|
|
13
|
-
* Initializes a new instance of the DisableProvider class.
|
|
14
|
-
* @param decoratorType The type of decorator.
|
|
15
|
-
* @param entityObject The entity object associated with the decorator.
|
|
16
|
-
*/
|
|
17
|
-
constructor(decoratorType, entityObject) {
|
|
18
|
-
this.decoratorType = decoratorType;
|
|
19
|
-
this.entityObject = entityObject;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Gets the name of the form group associated with the provided form control.
|
|
23
|
-
* @param currentFormGroup The current form group.
|
|
24
|
-
* @returns The name of the form group.
|
|
25
|
-
*/
|
|
26
|
-
getFormGroupName(currentFormGroup) {
|
|
27
|
-
/* Initialize keyName as an empty string */
|
|
28
|
-
let keyName = '';
|
|
29
|
-
/* Check if the currentFormGroup has a parent */
|
|
30
|
-
if (currentFormGroup.parent) {
|
|
31
|
-
/* Iterate over the control names of the parent FormGroup */
|
|
32
|
-
for (var controlName of Object.keys(currentFormGroup.parent.controls)) {
|
|
33
|
-
/* Check if the current control is the same as the currentFormGroup */
|
|
34
|
-
if (currentFormGroup.parent.controls[controlName] == currentFormGroup) {
|
|
35
|
-
/* If it matches, assign the controlName to keyName and exit the loop */
|
|
36
|
-
keyName = controlName;
|
|
37
|
-
break;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
/* Return the keyName */
|
|
42
|
-
return keyName;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Processes disabling based on zero arguments.
|
|
46
|
-
* @param control The form control.
|
|
47
|
-
* @param columnName The name of the column.
|
|
48
|
-
* @returns An array of disabled columns.
|
|
49
|
-
*/
|
|
50
|
-
zeroArgumentProcess(control, columnName) {
|
|
51
|
-
/* Initialize disabledColumns array */
|
|
52
|
-
let disabledColumns = [];
|
|
53
|
-
/* Add disabled columns from the parent FormGroup */
|
|
54
|
-
this.getDisabledColumns(control.parent, `${columnName}${RXCODE}0`, false).forEach(t => disabledColumns.push(t));
|
|
55
|
-
/* Get the top control path */
|
|
56
|
-
let path = this.topControlPath(control, columnName);
|
|
57
|
-
/* Split the path into segments */
|
|
58
|
-
let splitPath = path.split(".");
|
|
59
|
-
/* Check if the path has multiple segments */
|
|
60
|
-
if (splitPath.length > 1) {
|
|
61
|
-
/* Get the root form group */
|
|
62
|
-
let rootFormGroup = ApplicationUtil.getRootFormGroup(control);
|
|
63
|
-
/* Add disabled columns from the root form group */
|
|
64
|
-
this.getDisabledColumns(rootFormGroup, `${path}${RXCODE}0`, true).forEach(t => disabledColumns.push(t));
|
|
65
|
-
/* Initialize controlPath */
|
|
66
|
-
let controlPath = '';
|
|
67
|
-
/* Iterate through the segments of the path */
|
|
68
|
-
for (var i = 0; i < splitPath.length - 2; i++) {
|
|
69
|
-
let controlName = splitPath[i];
|
|
70
|
-
/* Update controlPath */
|
|
71
|
-
controlPath = `${path.replace(`${controlName}.`, '')}${RXCODE}-0`;
|
|
72
|
-
/* Check if the control exists in the root form group */
|
|
73
|
-
if (rootFormGroup.controls[controlName]) {
|
|
74
|
-
/* Add disabled columns from the control */
|
|
75
|
-
this.getDisabledColumns(rootFormGroup.controls[controlName], controlPath, true, controlName).forEach(t => disabledColumns.push(t));
|
|
76
|
-
/* Update rootFormGroup */
|
|
77
|
-
rootFormGroup = rootFormGroup.controls[controlName];
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
/* Return the disabledColumns array */
|
|
82
|
-
return disabledColumns;
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Gets the disabled columns for the provided form group.
|
|
86
|
-
* @param formGroup The form group.
|
|
87
|
-
* @param columnName The name of the column.
|
|
88
|
-
* @param isRoot Indicates whether the form group is the root form group.
|
|
89
|
-
* @param pathName The path name.
|
|
90
|
-
* @returns An array of disabled columns.
|
|
91
|
-
*/
|
|
92
|
-
getDisabledColumns(formGroup, columnName, isRoot, pathName = "") {
|
|
93
|
-
/* Check if the formGroup has a MODEL_INSTANCE */
|
|
94
|
-
if (formGroup[MODEL_INSTANCE]) {
|
|
95
|
-
/* Get the instance container using instanceProvider */
|
|
96
|
-
let instanceContainer = instanceProvider(formGroup[MODEL_INSTANCE].constructor, this.entityObject);
|
|
97
|
-
/* Return the result of getChangeDetectionColumns */
|
|
98
|
-
return this.getChangeDetectionColumns(instanceContainer, columnName, isRoot, pathName);
|
|
99
|
-
}
|
|
100
|
-
/* If no MODEL_INSTANCE, return an empty array */
|
|
101
|
-
return [];
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Gets the change detection columns for the provided instance container.
|
|
105
|
-
* @param instanceContainer The instance container.
|
|
106
|
-
* @param columnName The name of the column.
|
|
107
|
-
* @param isRoot Indicates whether the form group is the root form group.
|
|
108
|
-
* @param pathName The path name.
|
|
109
|
-
* @returns An array of change detection columns.
|
|
110
|
-
*/
|
|
111
|
-
getChangeDetectionColumns(instanceContainer, columnName, isRoot, pathName = "") {
|
|
112
|
-
/* Initialize an array to store conditional disable controls */
|
|
113
|
-
let conditionalDisableControls = [];
|
|
114
|
-
/* Retrieve columns from instanceContainer based on decoratorType and columnName */
|
|
115
|
-
let columns = instanceContainer.nonValidationDecorators[this.decoratorType].changeDetection[columnName];
|
|
116
|
-
/* Check if columns exist */
|
|
117
|
-
if (columns) {
|
|
118
|
-
/* Iterate through columns */
|
|
119
|
-
columns.forEach((t) => {
|
|
120
|
-
/* Push control path, conditional expression, and isRoot status to conditionalDisableControls */
|
|
121
|
-
conditionalDisableControls.push({ controlPath: pathName ? `${pathName}.${t}` : t, conditionalExpression: instanceContainer.nonValidationDecorators[this.decoratorType].conditionalExpressions[t], isRoot: isRoot });
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
/* Return the array of conditional disable controls */
|
|
125
|
-
return conditionalDisableControls;
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Gets the top control path based on the form control and column name.
|
|
129
|
-
* @param control The form control.
|
|
130
|
-
* @param columnName The name of the column.
|
|
131
|
-
* @returns The top control path.
|
|
132
|
-
*/
|
|
133
|
-
topControlPath(control, columnName) {
|
|
134
|
-
/* Check if the control has a parent */
|
|
135
|
-
if (control.parent) {
|
|
136
|
-
/* Retrieve the name of the parent form group */
|
|
137
|
-
let name = this.getFormGroupName(control.parent);
|
|
138
|
-
if (name) {
|
|
139
|
-
/* Append the column name to the parent form group name */
|
|
140
|
-
columnName = `${name}.${columnName}`;
|
|
141
|
-
/* Recursively call the topControlPath function with the parent control and the updated column name */
|
|
142
|
-
return this.topControlPath(control.parent, columnName);
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
return columnName;
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Retrieves the disabled expressions for child controls within the provided form group.
|
|
149
|
-
* @param formGroup The form group.
|
|
150
|
-
* @param columnName The name of the column.
|
|
151
|
-
* @param path The path for the controls.
|
|
152
|
-
* @returns An array of disabled expressions for child controls.
|
|
153
|
-
*/
|
|
154
|
-
childControlDisabledExpression(formGroup, columnName, path = "") {
|
|
155
|
-
/* Initialize an array to store disabled columns */
|
|
156
|
-
let disabledColumns = [];
|
|
157
|
-
/* Check if the form group has a model instance */
|
|
158
|
-
if (formGroup[MODEL_INSTANCE]) {
|
|
159
|
-
/* Get the instance container for the model */
|
|
160
|
-
let instanceContainer = defaultContainer.get(formGroup[MODEL_INSTANCE].constructor);
|
|
161
|
-
if (instanceContainer) {
|
|
162
|
-
/* Iterate through the change detection columns and push them to the disabledColumns array */
|
|
163
|
-
this.getChangeDetectionColumns(instanceContainer, columnName, true, path).forEach(t => disabledColumns.push(t));
|
|
164
|
-
/* Filter properties of type OBJECT_PROPERTY */
|
|
165
|
-
var props = instanceContainer.properties?.filter(t => t.propertyType == OBJECT_PROPERTY);
|
|
166
|
-
props?.forEach(t => {
|
|
167
|
-
/* Check if the form group has controls for the property */
|
|
168
|
-
if (formGroup.controls[t.name]) {
|
|
169
|
-
/* Get the disabled columns for the nested form group */
|
|
170
|
-
let columns = this.getDisabledColumns(formGroup.controls[t.name], columnName, true, path ? `${path}.${t.name}` : `${t.name}`);
|
|
171
|
-
columns.forEach(x => disabledColumns.push(x));
|
|
172
|
-
/* Recursively call childControlDisabledExpression for nested form groups */
|
|
173
|
-
this.childControlDisabledExpression(formGroup.controls[t.name], columnName, path ? `${path}.${t.name}` : `${t.name}`).forEach(y => disabledColumns.push(y));
|
|
174
|
-
}
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
/* Return the array of disabled columns */
|
|
179
|
-
return disabledColumns;
|
|
180
|
-
}
|
|
181
|
-
/**
|
|
182
|
-
* Processes disabling based on one argument.
|
|
183
|
-
* @param control The form control or form group.
|
|
184
|
-
* @param columnName The name of the column.
|
|
185
|
-
* @returns An array of disabled columns.
|
|
186
|
-
*/
|
|
187
|
-
oneArgumentProcess(control, columnName) {
|
|
188
|
-
/* Get the top control path */
|
|
189
|
-
let path = this.topControlPath(control, columnName);
|
|
190
|
-
/* Get the root form group */
|
|
191
|
-
let rootFormGroup = ApplicationUtil.getRootFormGroup(control);
|
|
192
|
-
/* Get the child columns */
|
|
193
|
-
let childColumns = this.childControlDisabledExpression(rootFormGroup, path);
|
|
194
|
-
/* Return the child columns */
|
|
195
|
-
return childColumns;
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZS1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Zvcm0tdmFsaWRhdG9ycy9kb21haW4vZGlzYWJsZS1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFdEU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQU9KO0lBQStCO0lBTG5EOzs7O09BSUc7SUFDSCxZQUFvQixhQUFxQixFQUFVLFlBQW9DO1FBQW5FLGtCQUFhLEdBQWIsYUFBYSxDQUFRO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQXdCO0lBQUksQ0FBQztJQUU1Rjs7OztPQUlHO0lBQ0ksZ0JBQWdCLENBQUMsZ0JBQTJCO1FBQy9DLDJDQUEyQztRQUMzQyxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFFakIsZ0RBQWdEO1FBQ2hELElBQUksZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDMUIsNERBQTREO1lBQzVELEtBQUssSUFBSSxXQUFXLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFDcEUsc0VBQXNFO2dCQUN0RSxJQUFLLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxRQUFnQixDQUFDLFdBQVcsQ0FBQyxJQUFJLGdCQUFnQixFQUFFLENBQUM7b0JBQzdFLHdFQUF3RTtvQkFDeEUs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QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTlELDJCQUEyQjtRQUMzQixJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsOEJBQThCLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTVFLDhCQUE4QjtRQUM5QixPQUFPLFlBQVksQ0FBQztJQUN4QixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBNT0RFTF9JTlNUQU5DRSwgUlhDT0RFIH0gZnJvbSBcIi4uL2NvbnN0L2FwcC5jb25zdFwiO1xyXG5pbXBvcnQgeyBPQkpFQ1RfUFJPUEVSVFkgfSBmcm9tIFwiLi4vY29uc3QvdmFsaWRhdG9yLmNvbnN0XCI7XHJcbmltcG9ydCB7IGRlZmF1bHRDb250YWluZXIgfSBmcm9tIFwiLi4vY29yZS9kZWZhdWx0LWNvbnRhaW5lclwiO1xyXG5pbXBvcnQgeyBJbnN0YW5jZUNvbnRhaW5lciB9IGZyb20gXCIuLi9tb2RlbHMvaW5zdGFuY2UtY29udGFpbmVyXCI7XHJcbmltcG9ydCB7IEFwcGxpY2F0aW9uVXRpbCB9IGZyb20gXCIuLi91dGlsL2FwcC11dGlsXCI7XHJcbmltcG9ydCB7IGluc3RhbmNlUHJvdmlkZXIgfSBmcm9tIFwiLi4vdXRpbC9pbnN0YW5jZS1wcm92aWRlci5mdW5jdGlvblwiO1xyXG5cclxuLyoqXHJcbiAqIFByb3ZpZGVzIGZ1bmN0aW9uYWxpdHkgZm9yIGRpc2FibGluZyBmb3JtIGNvbnRyb2xzIGJhc2VkIG9uIGRlY29yYXRvciBjb25maWd1cmF0aW9uLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIERpc2FibGVQcm92aWRlciB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgRGlzYWJsZVByb3ZpZGVyIGNsYXNzLlxyXG4gICAgICogQHBhcmFtIGRlY29yYXRvclR5cGUgVGhlIHR5cGUgb2YgZGVjb3JhdG9yLlxyXG4gICAgICogQHBhcmFtIGVudGl0eU9iamVjdCBUaGUgZW50aXR5IG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhlIGRlY29yYXRvci5cclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkZWNvcmF0b3JUeXBlOiBzdHJpbmcsIHByaXZhdGUgZW50aXR5T2JqZWN0OiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIG5hbWUgb2YgdGhlIGZvcm0gZ3JvdXAgYXNzb2NpYXRlZCB3aXRoIHRoZSBwcm92aWRlZCBmb3JtIGNvbnRyb2wuXHJcbiAgICAgKiBAcGFyYW0gY3VycmVudEZvcm1Hcm91cCBUaGUgY3VycmVudCBmb3JtIGdyb3VwLlxyXG4gICAgICogQHJldHVybnMgVGhlIG5hbWUgb2YgdGhlIGZvcm0gZ3JvdXAuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRGb3JtR3JvdXBOYW1lKGN1cnJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cCk6IHN0cmluZyB7XHJcbiAgICAgICAgLyogSW5pdGlhbGl6ZSBrZXlOYW1lIGFzIGFuIGVtcHR5IHN0cmluZyAqL1xyXG4gICAgICAgIGxldCBrZXlOYW1lID0gJyc7XHJcblxyXG4gICAgICAgIC8qIENoZWNrIGlmIHRoZSBjdXJyZW50Rm9ybUdyb3VwIGhhcyBhIHBhcmVudCAqL1xyXG4gICAgICAgIGlmIChjdXJyZW50Rm9ybUdyb3VwLnBhcmVudCkge1xyXG4gICAgICAgICAgICAvKiBJdGVyYXRlIG92ZXIgdGhlIGNvbnRyb2wgbmFtZXMgb2YgdGhlIHBhcmVudCBGb3JtR3JvdXAgKi9cclxuICAgICAgICAgICAgZm9yICh2YXIgY29udHJvbE5hbWUgb2YgT2JqZWN0LmtleXMoY3VycmVudEZvcm1Hcm91cC5wYXJlbnQuY29udHJvbHMpKSB7XHJcbiAgICAgICAgICAgICAgICAvKiBDaGVjayBpZiB0aGUgY3VycmVudCBjb250cm9sIGlzIHRoZSBzYW1lIGFzIHRoZSBjdXJyZW50Rm9ybUdyb3VwICovXHJcbiAgICAgICAgICAgICAgICBpZiAoKGN1cnJlbnRGb3JtR3JvdXAucGFyZW50LmNvbnRyb2xzIGFzIGFueSlbY29udHJvbE5hbWVdID09IGN1cnJlbnRGb3JtR3JvdXApIHtcclxuICAgICAgICAgICAgICAgICAgICAvKiBJZiBpdCBtYXRjaGVzLCBhc3NpZ24gdGhlIGNvbnRyb2xOYW1lIHRvIGtleU5hbWUgYW5kIGV4aXQgdGhlIGxvb3AgKi9cclxuICAgICAgICAgICAgICAgICAgICBrZXlOYW1lID0gY29udHJvbE5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIFJldHVybiB0aGUga2V5TmFtZSAqL1xyXG4gICAgICAgIHJldHVybiBrZXlOYW1lO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb2Nlc3NlcyBkaXNhYmxpbmcgYmFzZWQgb24gemVybyBhcmd1bWVudHMuXHJcbiAgICAgKiBAcGFyYW0gY29udHJvbCBUaGUgZm9ybSBjb250cm9sLlxyXG4gICAgICogQHBhcmFtIGNvbHVtbk5hbWUgVGhlIG5hbWUgb2YgdGhlIGNvbHVtbi5cclxuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGRpc2FibGVkIGNvbHVtbnMuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB6ZXJvQXJndW1lbnRQcm9jZXNzKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgY29sdW1uTmFtZTogc3RyaW5nKSB7XHJcbiAgICAgICAgLyogSW5pdGlhbGl6ZSBkaXNhYmxlZENvbHVtbnMgYXJyYXkgKi9cclxuICAgICAgICBsZXQgZGlzYWJsZWRDb2x1bW5zOiBhbnlbXSA9IFtdO1xyXG5cclxuICAgICAgICAvKiBBZGQgZGlzYWJsZWQgY29sdW1ucyBmcm9tIHRoZSBwYXJlbnQgRm9ybUdyb3VwICovXHJcbiAgICAgICAgdGhpcy5nZXREaXNhYmxlZENvbHVtbnMoPEZvcm1Hcm91cD5jb250cm9sLnBhcmVudCwgYCR7Y29sdW1uTmFtZX0ke1JYQ09ERX0wYCwgZmFsc2UpLmZvckVhY2godCA9PiBkaXNhYmxlZENvbHVtbnMucHVzaCh0KSk7XHJcblxyXG4gICAgICAgIC8qIEdldCB0aGUgdG9wIGNvbnRyb2wgcGF0aCAqL1xyXG4gICAgICAgIGxldCBwYXRoID0gdGhpcy50b3BDb250cm9sUGF0aChjb250cm9sLCBjb2x1bW5OYW1lKTtcclxuXHJcbiAgICAgICAgLyogU3BsaXQgdGhlIHBhdGggaW50byBzZWdtZW50cyAqL1xyXG4gICAgICAgIGxldCBzcGxpdFBhdGggPSBwYXRoLnNwbGl0KFwiLlwiKTtcclxuXHJcbiAgICAgICAgLyogQ2hlY2sgaWYgdGhlIHBhdGggaGFzIG11bHRpcGxlIHNlZ21lbnRzICovXHJcbiAgICAgICAgaWYgKHNwbGl0UGF0aC5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICAgIC8qIEdldCB0aGUgcm9vdCBmb3JtIGdyb3VwICovXHJcbiAgICAgICAgICAgIGxldCByb290Rm9ybUdyb3VwID0gQXBwbGljYXRpb25VdGlsLmdldFJvb3RGb3JtR3JvdXAoY29udHJvbCk7XHJcblxyXG4gICAgICAgICAgICAvKiBBZGQgZGlzYWJsZWQgY29sdW1ucyBmcm9tIHRoZSByb290IGZvcm0gZ3JvdXAgKi9cclxuICAgICAgICAgICAgdGhpcy5nZXREaXNhYmxlZENvbHVtbnMocm9vdEZvcm1Hcm91cCwgYCR7cGF0aH0ke1JYQ09ERX0wYCwgdHJ1ZSkuZm9yRWFjaCh0ID0+IGRpc2FibGVkQ29sdW1ucy5wdXNoKHQpKTtcclxuXHJcbiAgICAgICAgICAgIC8qIEluaXRpYWxpemUgY29udHJvbFBhdGggKi9cclxuICAgICAgICAgICAgbGV0IGNvbnRyb2xQYXRoOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICAgICAgICAgIC8qIEl0ZXJhdGUgdGhyb3VnaCB0aGUgc2VnbWVudHMgb2YgdGhlIHBhdGggKi9cclxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzcGxpdFBhdGgubGVuZ3RoIC0gMjsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgY29udHJvbE5hbWUgPSBzcGxpdFBhdGhbaV07XHJcblxyXG4gICAgICAgICAgICAgICAgLyogVXBkYXRlIGNvbnRyb2xQYXRoICovXHJcbiAgICAgICAgICAgICAgICBjb250cm9sUGF0aCA9IGAke3BhdGgucmVwbGFjZShgJHtjb250cm9sTmFtZX0uYCwgJycpfSR7UlhDT0RFfS0wYDtcclxuXHJcbiAgICAgICAgICAgICAgICAvKiBDaGVjayBpZiB0aGUgY29udHJvbCBleGlzdHMgaW4gdGhlIHJvb3QgZm9ybSBncm91cCAqL1xyXG4gICAgICAgICAgICAgICAgaWYgKHJvb3RGb3JtR3JvdXAuY29udHJvbHNbY29udHJvbE5hbWVdKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLyogQWRkIGRpc2FibGVkIGNvbHVtbnMgZnJvbSB0aGUgY29udHJvbCAqL1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0RGlzYWJsZWRDb2x1bW5zKDxGb3JtR3JvdXA+cm9vdEZvcm1Hcm91cC5jb250cm9sc1tjb250cm9sTmFtZV0sIGNvbnRyb2xQYXRoLCB0cnVlLCBjb250cm9sTmFtZSkuZm9yRWFjaCh0ID0+IGRpc2FibGVkQ29sdW1ucy5wdXNoKHQpKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLyogVXBkYXRlIHJvb3RGb3JtR3JvdXAgKi9cclxuICAgICAgICAgICAgICAgICAgICByb290Rm9ybUdyb3VwID0gPEZvcm1Hcm91cD5yb290Rm9ybUdyb3VwLmNvbnRyb2xzW2NvbnRyb2xOYW1lXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogUmV0dXJuIHRoZSBkaXNhYmxlZENvbHVtbnMgYXJyYXkgKi9cclxuICAgICAgICByZXR1cm4gZGlzYWJsZWRDb2x1bW5zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgZGlzYWJsZWQgY29sdW1ucyBmb3IgdGhlIHByb3ZpZGVkIGZvcm0gZ3JvdXAuXHJcbiAgICAgKiBAcGFyYW0gZm9ybUdyb3VwIFRoZSBmb3JtIGdyb3VwLlxyXG4gICAgICogQHBhcmFtIGNvbHVtbk5hbWUgVGhlIG5hbWUgb2YgdGhlIGNvbHVtbi5cclxuICAgICAqIEBwYXJhbSBpc1Jvb3QgSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGZvcm0gZ3JvdXAgaXMgdGhlIHJvb3QgZm9ybSBncm91cC5cclxuICAgICAqIEBwYXJhbSBwYXRoTmFtZSBUaGUgcGF0aCBuYW1lLlxyXG4gICAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgZGlzYWJsZWQgY29sdW1ucy5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBnZXREaXNhYmxlZENvbHVtbnMoZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGNvbHVtbk5hbWU6IHN0cmluZywgaXNSb290OiBCb29sZWFuLCBwYXRoTmFtZTogc3RyaW5nID0gXCJcIikge1xyXG4gICAgICAgIC8qIENoZWNrIGlmIHRoZSBmb3JtR3JvdXAgaGFzIGEgTU9ERUxfSU5TVEFOQ0UgKi9cclxuICAgICAgICBpZiAoKGZvcm1Hcm91cCBhcyBhbnkpW01PREVMX0lOU1RBTkNFXSkge1xyXG4gICAgICAgICAgICAvKiBHZXQgdGhlIGluc3RhbmNlIGNvbnRhaW5lciB1c2luZyBpbnN0YW5jZVByb3ZpZGVyICovXHJcbiAgICAgICAgICAgIGxldCBpbnN0YW5jZUNvbnRhaW5lciA9IGluc3RhbmNlUHJvdmlkZXIoKGZvcm1Hcm91cCBhcyBhbnkpW01PREVMX0lOU1RBTkNFXS5jb25zdHJ1Y3RvciwgdGhpcy5lbnRpdHlPYmplY3QpO1xyXG5cclxuICAgICAgICAgICAgLyogUmV0dXJuIHRoZSByZXN1bHQgb2YgZ2V0Q2hhbmdlRGV0ZWN0aW9uQ29sdW1ucyAqL1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRDaGFuZ2VEZXRlY3Rpb25Db2x1bW5zKGluc3RhbmNlQ29udGFpbmVyLCBjb2x1bW5OYW1lLCBpc1Jvb3QsIHBhdGhOYW1lKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIElmIG5vIE1PREVMX0lOU1RBTkNFLCByZXR1cm4gYW4gZW1wdHkgYXJyYXkgKi9cclxuICAgICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIHRoZSBjaGFuZ2UgZGV0ZWN0aW9uIGNvbHVtbnMgZm9yIHRoZSBwcm92aWRlZCBpbnN0YW5jZSBjb250YWluZXIuXHJcbiAgICAgKiBAcGFyYW0gaW5zdGFuY2VDb250YWluZXIgVGhlIGluc3RhbmNlIGNvbnRhaW5lci5cclxuICAgICAqIEBwYXJhbSBjb2x1bW5OYW1lIFRoZSBuYW1lIG9mIHRoZSBjb2x1bW4uXHJcbiAgICAgKiBAcGFyYW0gaXNSb290IEluZGljYXRlcyB3aGV0aGVyIHRoZSBmb3JtIGdyb3VwIGlzIHRoZSByb290IGZvcm0gZ3JvdXAuXHJcbiAgICAgKiBAcGFyYW0gcGF0aE5hbWUgVGhlIHBhdGggbmFtZS5cclxuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGNoYW5nZSBkZXRlY3Rpb24gY29sdW1ucy5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBnZXRDaGFuZ2VEZXRlY3Rpb25Db2x1bW5zKGluc3RhbmNlQ29udGFpbmVyOiBJbnN0YW5jZUNvbnRhaW5lciwgY29sdW1uTmFtZTogc3RyaW5nLCBpc1Jvb3Q6IEJvb2xlYW4sIHBhdGhOYW1lOiBzdHJpbmcgPSBcIlwiKSB7XHJcbiAgICAgICAgLyogSW5pdGlhbGl6ZSBhbiBhcnJheSB0byBzdG9yZSBjb25kaXRpb25hbCBkaXNhYmxlIGNvbnRyb2xzICovXHJcbiAgICAgICAgbGV0IGNvbmRpdGlvbmFsRGlzYWJsZUNvbnRyb2xzOiBhbnlbXSA9IFtdO1xyXG5cclxuICAgICAgICAvKiBSZXRyaWV2ZSBjb2x1bW5zIGZyb20gaW5zdGFuY2VDb250YWluZXIgYmFzZWQgb24gZGVjb3JhdG9yVHlwZSBhbmQgY29sdW1uTmFtZSAqL1xyXG4gICAgICAgIGxldCBjb2x1bW5zID0gKGluc3RhbmNlQ29udGFpbmVyLm5vblZhbGlkYXRpb25EZWNvcmF0b3JzIGFzIGFueSlbdGhpcy5kZWNvcmF0b3JUeXBlXS5jaGFuZ2VEZXRlY3Rpb25bY29sdW1uTmFtZV07XHJcblxyXG4gICAgICAgIC8qIENoZWNrIGlmIGNvbHVtbnMgZXhpc3QgKi9cclxuICAgICAgICBpZiAoY29sdW1ucykge1xyXG4gICAgICAgICAgICAvKiBJdGVyYXRlIHRocm91Z2ggY29sdW1ucyAqL1xyXG4gICAgICAgICAgICBjb2x1bW5zLmZvckVhY2goKHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgLyogUHVzaCBjb250cm9sIHBhdGgsIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24sIGFuZCBpc1Jvb3Qgc3RhdHVzIHRvIGNvbmRpdGlvbmFsRGlzYWJsZUNvbnRyb2xzICovXHJcbiAgICAgICAgICAgICAgICBjb25kaXRpb25hbERpc2FibGVDb250cm9scy5wdXNoKHsgY29udHJvbFBhdGg6IHBhdGhOYW1lID8gYCR7cGF0aE5hbWV9LiR7dH1gIDogdCwgY29uZGl0aW9uYWxFeHByZXNzaW9uOiAoaW5zdGFuY2VDb250YWluZXIubm9uVmFsaWRhdGlvbkRlY29yYXRvcnMgYXMgYW55KVt0aGlzLmRlY29yYXRvclR5cGVdLmNvbmRpdGlvbmFsRXhwcmVzc2lvbnNbdF0sIGlzUm9vdDogaXNSb290IH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIFJldHVybiB0aGUgYXJyYXkgb2YgY29uZGl0aW9uYWwgZGlzYWJsZSBjb250cm9scyAqL1xyXG4gICAgICAgIHJldHVybiBjb25kaXRpb25hbERpc2FibGVDb250cm9scztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIHRvcCBjb250cm9sIHBhdGggYmFzZWQgb24gdGhlIGZvcm0gY29udHJvbCBhbmQgY29sdW1uIG5hbWUuXHJcbiAgICAgKiBAcGFyYW0gY29udHJvbCBUaGUgZm9ybSBjb250cm9sLlxyXG4gICAgICogQHBhcmFtIGNvbHVtbk5hbWUgVGhlIG5hbWUgb2YgdGhlIGNvbHVtbi5cclxuICAgICAqIEByZXR1cm5zIFRoZSB0b3AgY29udHJvbCBwYXRoLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHRvcENvbnRyb2xQYXRoKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IEZvcm1Hcm91cCwgY29sdW1uTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICAvKiBDaGVjayBpZiB0aGUgY29udHJvbCBoYXMgYSBwYXJlbnQgKi9cclxuICAgICAgICBpZiAoY29udHJvbC5wYXJlbnQpIHtcclxuICAgICAgICAgICAgLyogUmV0cmlldmUgdGhlIG5hbWUgb2YgdGhlIHBhcmVudCBmb3JtIGdyb3VwICovXHJcbiAgICAgICAgICAgIGxldCBuYW1lID0gdGhpcy5nZXRGb3JtR3JvdXBOYW1lKCg8Rm9ybUdyb3VwPmNvbnRyb2wucGFyZW50KSlcclxuICAgICAgICAgICAgaWYgKG5hbWUpIHtcclxuICAgICAgICAgICAgICAgIC8qIEFwcGVuZCB0aGUgY29sdW1uIG5hbWUgdG8gdGhlIHBhcmVudCBmb3JtIGdyb3VwIG5hbWUgKi9cclxuICAgICAgICAgICAgICAgIGNvbHVtbk5hbWUgPSBgJHtuYW1lfS4ke2NvbHVtbk5hbWV9YDtcclxuXHJcbiAgICAgICAgICAgICAgICAvKiBSZWN1cnNpdmVseSBjYWxsIHRoZSB0b3BDb250cm9sUGF0aCBmdW5jdGlvbiB3aXRoIHRoZSBwYXJlbnQgY29udHJvbCBhbmQgdGhlIHVwZGF0ZWQgY29sdW1uIG5hbWUgKi9cclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRvcENvbnRyb2xQYXRoKGNvbnRyb2wucGFyZW50LCBjb2x1bW5OYW1lKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGNvbHVtbk5hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIGRpc2FibGVkIGV4cHJlc3Npb25zIGZvciBjaGlsZCBjb250cm9scyB3aXRoaW4gdGhlIHByb3ZpZGVkIGZvcm0gZ3JvdXAuXHJcbiAgICAgKiBAcGFyYW0gZm9ybUdyb3VwIFRoZSBmb3JtIGdyb3VwLlxyXG4gICAgICogQHBhcmFtIGNvbHVtbk5hbWUgVGhlIG5hbWUgb2YgdGhlIGNvbHVtbi5cclxuICAgICAqIEBwYXJhbSBwYXRoIFRoZSBwYXRoIGZvciB0aGUgY29udHJvbHMuXHJcbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBkaXNhYmxlZCBleHByZXNzaW9ucyBmb3IgY2hpbGQgY29udHJvbHMuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjaGlsZENvbnRyb2xEaXNhYmxlZEV4cHJlc3Npb24oZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGNvbHVtbk5hbWU6IHN0cmluZywgcGF0aDogc3RyaW5nID0gXCJcIik6IGFueVtdIHtcclxuICAgICAgICAvKiBJbml0aWFsaXplIGFuIGFycmF5IHRvIHN0b3JlIGRpc2FibGVkIGNvbHVtbnMgKi9cclxuICAgICAgICBsZXQgZGlzYWJsZWRDb2x1bW5zOiBhbnlbXSA9IFtdO1xyXG5cclxuICAgICAgICAvKiBDaGVjayBpZiB0aGUgZm9ybSBncm91cCBoYXMgYSBtb2RlbCBpbnN0YW5jZSAqL1xyXG4gICAgICAgIGlmICgoZm9ybUdyb3VwIGFzIGFueSlbTU9ERUxfSU5TVEFOQ0VdKSB7XHJcbiAgICAgICAgICAgIC8qIEdldCB0aGUgaW5zdGFuY2UgY29udGFpbmVyIGZvciB0aGUgbW9kZWwgKi9cclxuICAgICAgICAgICAgbGV0IGluc3RhbmNlQ29udGFpbmVyID0gZGVmYXVsdENvbnRhaW5lci5nZXQoKGZvcm1Hcm91cCBhcyBhbnkpW01PREVMX0lOU1RBTkNFXS5jb25zdHJ1Y3Rvcik7XHJcbiAgICAgICAgICAgIGlmIChpbnN0YW5jZUNvbnRhaW5lcikge1xyXG4gICAgICAgICAgICAgICAgLyogSXRlcmF0ZSB0aHJvdWdoIHRoZSBjaGFuZ2UgZGV0ZWN0aW9uIGNvbHVtbnMgYW5kIHB1c2ggdGhlbSB0byB0aGUgZGlzYWJsZWRDb2x1bW5zIGFycmF5ICovXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldENoYW5nZURldGVjdGlvbkNvbHVtbnMoaW5zdGFuY2VDb250YWluZXIsIGNvbHVtbk5hbWUsIHRydWUsIHBhdGgpLmZvckVhY2godCA9PiBkaXNhYmxlZENvbHVtbnMucHVzaCh0KSk7XHJcblxyXG4gICAgICAgICAgICAgICAgLyogRmlsdGVyIHByb3BlcnRpZXMgb2YgdHlwZSBPQkpFQ1RfUFJPUEVSVFkgKi9cclxuICAgICAgICAgICAgICAgIHZhciBwcm9wcyA9IGluc3RhbmNlQ29udGFpbmVyLnByb3BlcnRpZXM/LmZpbHRlcih0ID0+IHQucHJvcGVydHlUeXBlID09IE9CSkVDVF9QUk9QRVJUWSk7XHJcbiAgICAgICAgICAgICAgICBwcm9wcz8uZm9yRWFjaCh0ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAvKiBDaGVjayBpZiB0aGUgZm9ybSBncm91cCBoYXMgY29udHJvbHMgZm9yIHRoZSBwcm9wZXJ0eSAqL1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChmb3JtR3JvdXAuY29udHJvbHNbdC5uYW1lXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvKiBHZXQgdGhlIGRpc2FibGVkIGNvbHVtbnMgZm9yIHRoZSBuZXN0ZWQgZm9ybSBncm91cCAqL1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29sdW1ucyA9IHRoaXMuZ2V0RGlzYWJsZWRDb2x1bW5zKDxGb3JtR3JvdXA+Zm9ybUdyb3VwLmNvbnRyb2xzW3QubmFtZV0sIGNvbHVtbk5hbWUsIHRydWUsIHBhdGggPyBgJHtwYXRofS4ke3QubmFtZX1gIDogYCR7dC5uYW1lfWApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zLmZvckVhY2goeCA9PiBkaXNhYmxlZENvbHVtbnMucHVzaCh4KSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvKiBSZWN1cnNpdmVseSBjYWxsIGNoaWxkQ29udHJvbERpc2FibGVkRXhwcmVzc2lvbiBmb3IgbmVzdGVkIGZvcm0gZ3JvdXBzICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hpbGRDb250cm9sRGlzYWJsZWRFeHByZXNzaW9uKCg8Rm9ybUdyb3VwPmZvcm1Hcm91cC5jb250cm9sc1t0Lm5hbWVdKSwgY29sdW1uTmFtZSwgcGF0aCA/IGAke3BhdGh9LiR7dC5uYW1lfWAgOiBgJHt0Lm5hbWV9YCkuZm9yRWFjaCh5ID0+IGRpc2FibGVkQ29sdW1ucy5wdXNoKHkpKVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBSZXR1cm4gdGhlIGFycmF5IG9mIGRpc2FibGVkIGNvbHVtbnMgKi9cclxuICAgICAgICByZXR1cm4gZGlzYWJsZWRDb2x1bW5zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvY2Vzc2VzIGRpc2FibGluZyBiYXNlZCBvbiBvbmUgYXJndW1lbnQuXHJcbiAgICAgKiBAcGFyYW0gY29udHJvbCBUaGUgZm9ybSBjb250cm9sIG9yIGZvcm0gZ3JvdXAuXHJcbiAgICAgKiBAcGFyYW0gY29sdW1uTmFtZSBUaGUgbmFtZSBvZiB0aGUgY29sdW1uLlxyXG4gICAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgZGlzYWJsZWQgY29sdW1ucy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG9uZUFyZ3VtZW50UHJvY2Vzcyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBGb3JtR3JvdXAsIGNvbHVtbk5hbWU6IHN0cmluZyk6IGFueVtdIHtcclxuICAgICAgICAvKiBHZXQgdGhlIHRvcCBjb250cm9sIHBhdGggKi9cclxuICAgICAgICBsZXQgcGF0aCA9IHRoaXMudG9wQ29udHJvbFBhdGgoY29udHJvbCwgY29sdW1uTmFtZSk7XHJcblxyXG4gICAgICAgIC8qIEdldCB0aGUgcm9vdCBmb3JtIGdyb3VwICovXHJcbiAgICAgICAgbGV0IHJvb3RGb3JtR3JvdXAgPSBBcHBsaWNhdGlvblV0aWwuZ2V0Um9vdEZvcm1Hcm91cChjb250cm9sKTtcclxuXHJcbiAgICAgICAgLyogR2V0IHRoZSBjaGlsZCBjb2x1bW5zICovXHJcbiAgICAgICAgbGV0IGNoaWxkQ29sdW1ucyA9IHRoaXMuY2hpbGRDb250cm9sRGlzYWJsZWRFeHByZXNzaW9uKHJvb3RGb3JtR3JvdXAsIHBhdGgpO1xyXG5cclxuICAgICAgICAvKiBSZXR1cm4gdGhlIGNoaWxkIGNvbHVtbnMgKi9cclxuICAgICAgICByZXR1cm4gY2hpbGRDb2x1bW5zO1xyXG4gICAgfVxyXG59Il19
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
import { DecimalPipe, NumberSymbol, getLocaleNumberSymbol } from "@angular/common";
|
|
2
|
-
import { Inject, Injectable, LOCALE_ID } from "@angular/core";
|
|
3
|
-
import { BLANK } from "../../const";
|
|
4
|
-
import { ReactiveFormConfig } from "../../util/reactive-form-config";
|
|
5
|
-
import { RegexValidator } from '../../util/regex-validator';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/common";
|
|
8
|
-
export class DecimalProvider {
|
|
9
|
-
decimalPipe;
|
|
10
|
-
localeId;
|
|
11
|
-
/**
|
|
12
|
-
* Decimal separator
|
|
13
|
-
*/
|
|
14
|
-
decimalSeperator = ".";
|
|
15
|
-
/**
|
|
16
|
-
* Group separator
|
|
17
|
-
*/
|
|
18
|
-
groupSeperator = ",";
|
|
19
|
-
/**
|
|
20
|
-
* Optional variable for custom decimal symbol
|
|
21
|
-
*/
|
|
22
|
-
allowDecimalSymbol;
|
|
23
|
-
/**
|
|
24
|
-
* Flag indicating whether configuration is set
|
|
25
|
-
*/
|
|
26
|
-
isSetConfig = false;
|
|
27
|
-
/**
|
|
28
|
-
* Constructor for DecimalProvider
|
|
29
|
-
* @param decimalPipe DecimalPipe
|
|
30
|
-
* @param localeId LOCALE_ID
|
|
31
|
-
*/
|
|
32
|
-
constructor(decimalPipe, localeId) {
|
|
33
|
-
this.decimalPipe = decimalPipe;
|
|
34
|
-
this.localeId = localeId;
|
|
35
|
-
/* Initialize decimal and group separators based on locale */
|
|
36
|
-
this.decimalSeperator = getLocaleNumberSymbol(localeId, NumberSymbol.Decimal);
|
|
37
|
-
this.groupSeperator = getLocaleNumberSymbol(localeId, NumberSymbol.Group);
|
|
38
|
-
/* Set symbols in ReactiveFormConfig */
|
|
39
|
-
this.setSymbolInConfig();
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Replaces the decimal and group separators in the value.
|
|
43
|
-
* @param value The value to replace separators in.
|
|
44
|
-
* @returns The value with replaced separators.
|
|
45
|
-
*/
|
|
46
|
-
replacer(value) {
|
|
47
|
-
value = String(value);
|
|
48
|
-
/* Bind configuration settings if not already set */
|
|
49
|
-
if (!this.isSetConfig) {
|
|
50
|
-
this.bindConfig();
|
|
51
|
-
}
|
|
52
|
-
/* Remove group separators */
|
|
53
|
-
value = value.split(this.groupSeperator).join(BLANK);
|
|
54
|
-
/* Replace decimal separator if allowed */
|
|
55
|
-
if (this.allowDecimalSymbol) {
|
|
56
|
-
value = value.replace(this.decimalSeperator, this.allowDecimalSymbol);
|
|
57
|
-
}
|
|
58
|
-
/* Check for zero after decimal point and remove if present */
|
|
59
|
-
var splitValue = value.split(this.decimalSeperator);
|
|
60
|
-
value = (splitValue.length > 1 && splitValue[1] && RegexValidator.isZero(splitValue[1])) ? splitValue[0] : value;
|
|
61
|
-
return value;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Transforms a value into a formatted decimal string.
|
|
65
|
-
* @param value The value to transform.
|
|
66
|
-
* @param digitsInfo The number of digits after the decimal point.
|
|
67
|
-
* @param persistZero Whether to persist zero after decimal digits.
|
|
68
|
-
* @returns The formatted decimal string.
|
|
69
|
-
*/
|
|
70
|
-
transFormDecimal(value, digitsInfo, persistZero) {
|
|
71
|
-
/* Convert value to string */
|
|
72
|
-
value = String(value);
|
|
73
|
-
/* If value is falsy, return it */
|
|
74
|
-
if (!value) {
|
|
75
|
-
return value;
|
|
76
|
-
}
|
|
77
|
-
/* Transform the value using DecimalPipe */
|
|
78
|
-
let transformedValue = this.decimalPipe.transform(value.replace(ReactiveFormConfig.number.groupSymbol, "").replace(this.decimalSeperator, "."), digitsInfo, this.localeId);
|
|
79
|
-
/* Add trailing zeros if persistZero is true */
|
|
80
|
-
if (persistZero && value.indexOf(this.decimalSeperator)) {
|
|
81
|
-
/* Split the transformed value by decimal point */
|
|
82
|
-
let splitTransformed = transformedValue?.split(".");
|
|
83
|
-
/* Split the digitsInfo by hyphen or use an empty array if digitsInfo is falsy */
|
|
84
|
-
let splitDigitsInfo = digitsInfo ? digitsInfo.split("-") : [];
|
|
85
|
-
/* Extract the number of digits from the splitDigitsInfo */
|
|
86
|
-
let digits = splitDigitsInfo.length > 1 ? parseInt(splitDigitsInfo[splitDigitsInfo.length - 1]) : 0;
|
|
87
|
-
/* Check if there are two parts after splitting the transformed value, digitsInfo is not empty, digits is not 0, and the length of the decimal part is not equal to digits */
|
|
88
|
-
if ((splitTransformed?.length ?? 0) > 1 && splitDigitsInfo.length > 0 && digits !== 0 && splitTransformed[1].length !== digits) {
|
|
89
|
-
/* Calculate the difference in length */
|
|
90
|
-
let diff = digits - splitTransformed[1].length;
|
|
91
|
-
/* Append trailing zeros to the transformed value */
|
|
92
|
-
for (let i = 0; i < diff; i++) {
|
|
93
|
-
transformedValue += "0";
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
return transformedValue;
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Sets the decimal and group symbols in the ReactiveFormConfig.
|
|
101
|
-
*/
|
|
102
|
-
setSymbolInConfig() {
|
|
103
|
-
ReactiveFormConfig.number = { decimalSymbol: this.decimalSeperator, groupSymbol: this.groupSeperator };
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Binds configuration settings from ReactiveFormConfig.json.
|
|
107
|
-
*/
|
|
108
|
-
bindConfig() {
|
|
109
|
-
/* Check if ReactiveFormConfig.json exists */
|
|
110
|
-
if (ReactiveFormConfig.json) {
|
|
111
|
-
/* Check if localeId is defined in ReactiveFormConfig.json */
|
|
112
|
-
if (ReactiveFormConfig.json.localeId) {
|
|
113
|
-
/* Assign the localeId from ReactiveFormConfig.json */
|
|
114
|
-
this.localeId = ReactiveFormConfig.json.localeId;
|
|
115
|
-
}
|
|
116
|
-
/* Check if allowDecimalSymbol is defined in ReactiveFormConfig.json */
|
|
117
|
-
if (ReactiveFormConfig.json.allowDecimalSymbol) {
|
|
118
|
-
/* Assign the allowDecimalSymbol from ReactiveFormConfig.json */
|
|
119
|
-
this.allowDecimalSymbol = ReactiveFormConfig.json.allowDecimalSymbol;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
/* Set isSetConfig to true after configuring */
|
|
123
|
-
this.isSetConfig = true;
|
|
124
|
-
}
|
|
125
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DecimalProvider, deps: [{ token: i1.DecimalPipe }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
126
|
-
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DecimalProvider });
|
|
127
|
-
}
|
|
128
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DecimalProvider, decorators: [{
|
|
129
|
-
type: Injectable
|
|
130
|
-
}], ctorParameters: () => [{ type: i1.DecimalPipe }, { type: undefined, decorators: [{
|
|
131
|
-
type: Inject,
|
|
132
|
-
args: [LOCALE_ID]
|
|
133
|
-
}] }] });
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaW1hbC5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Zvcm0tdmFsaWRhdG9ycy9kb21haW4vZWxlbWVudC1wcm9jZXNzb3IvZGVjaW1hbC5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBRzVELE1BQU0sT0FBTyxlQUFlO0lBMEJKO0lBQXFEO0lBekJ6RTs7T0FFRztJQUNLLGdCQUFnQixHQUFXLEdBQUcsQ0FBQztJQUV2Qzs7T0FFRztJQUNLLGNBQWMsR0FBVyxHQUFHLENBQUM7SUFFckM7O09BRUc7SUFDSyxrQkFBa0IsQ0FBVTtJQUVwQzs7T0FFRztJQUNLLFdBQVcsR0FBWSxLQUFLLENBQUM7SUFFckM7Ozs7T0FJRztJQUNILFlBQW9CLFdBQXdCLEVBQTZCLFFBQWdCO1FBQXJFLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQTZCLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDckYsNkRBQTZEO1FBQzdELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxjQUFjLEdBQUcscUJBQXFCLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxRSx1Q0FBdUM7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OlsiaW1wb3J0IHsgRGVjaW1hbFBpcGUsIE51bWJlclN5bWJvbCwgZ2V0TG9jYWxlTnVtYmVyU3ltYm9sIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIExPQ0FMRV9JRCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEJMQU5LIH0gZnJvbSBcIi4uLy4uL2NvbnN0XCI7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybUNvbmZpZyB9IGZyb20gXCIuLi8uLi91dGlsL3JlYWN0aXZlLWZvcm0tY29uZmlnXCI7XHJcbmltcG9ydCB7IFJlZ2V4VmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vdXRpbC9yZWdleC12YWxpZGF0b3InO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRGVjaW1hbFByb3ZpZGVyIHtcclxuICAgIC8qKlxyXG4gICAgICogRGVjaW1hbCBzZXBhcmF0b3JcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBkZWNpbWFsU2VwZXJhdG9yOiBzdHJpbmcgPSBcIi5cIjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdyb3VwIHNlcGFyYXRvclxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdyb3VwU2VwZXJhdG9yOiBzdHJpbmcgPSBcIixcIjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE9wdGlvbmFsIHZhcmlhYmxlIGZvciBjdXN0b20gZGVjaW1hbCBzeW1ib2xcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBhbGxvd0RlY2ltYWxTeW1ib2w/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGbGFnIGluZGljYXRpbmcgd2hldGhlciBjb25maWd1cmF0aW9uIGlzIHNldFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGlzU2V0Q29uZmlnOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25zdHJ1Y3RvciBmb3IgRGVjaW1hbFByb3ZpZGVyXHJcbiAgICAgKiBAcGFyYW0gZGVjaW1hbFBpcGUgRGVjaW1hbFBpcGVcclxuICAgICAqIEBwYXJhbSBsb2NhbGVJZCBMT0NBTEVfSURcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkZWNpbWFsUGlwZTogRGVjaW1hbFBpcGUsIEBJbmplY3QoTE9DQUxFX0lEKSBwcml2YXRlIGxvY2FsZUlkOiBzdHJpbmcpIHtcclxuICAgICAgICAvKiBJbml0aWFsaXplIGRlY2ltYWwgYW5kIGdyb3VwIHNlcGFyYXRvcnMgYmFzZWQgb24gbG9jYWxlICovXHJcbiAgICAgICAgdGhpcy5kZWNpbWFsU2VwZXJhdG9yID0gZ2V0TG9jYWxlTnVtYmVyU3ltYm9sKGxvY2FsZUlkLCBOdW1iZXJTeW1ib2wuRGVjaW1hbCk7XHJcbiAgICAgICAgdGhpcy5ncm91cFNlcGVyYXRvciA9IGdldExvY2FsZU51bWJlclN5bWJvbChsb2NhbGVJZCwgTnVtYmVyU3ltYm9sLkdyb3VwKTtcclxuXHJcbiAgICAgICAgLyogU2V0IHN5bWJvbHMgaW4gUmVhY3RpdmVGb3JtQ29uZmlnICovXHJcbiAgICAgICAgdGhpcy5zZXRTeW1ib2xJbkNvbmZpZygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVwbGFjZXMgdGhlIGRlY2ltYWwgYW5kIGdyb3VwIHNlcGFyYXRvcnMgaW4gdGhlIHZhbHVlLlxyXG4gICAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSB0byByZXBsYWNlIHNlcGFyYXRvcnMgaW4uXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgdmFsdWUgd2l0aCByZXBsYWNlZCBzZXBhcmF0b3JzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVwbGFjZXIodmFsdWU6IGFueSk6IGFueSB7XHJcbiAgICAgICAgdmFsdWUgPSBTdHJpbmcodmFsdWUpO1xyXG5cclxuICAgICAgICAvKiBCaW5kIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgaWYgbm90IGFscmVhZHkgc2V0ICovXHJcbiAgICAgICAgaWYgKCF0aGlzLmlzU2V0Q29uZmlnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYmluZENvbmZpZygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogUmVtb3ZlIGdyb3VwIHNlcGFyYXRvcnMgKi9cclxuICAgICAgICB2YWx1ZSA9IHZhbHVlLnNwbGl0KHRoaXMuZ3JvdXBTZXBlcmF0b3IpLmpvaW4oQkxBTkspO1xyXG5cclxuICAgICAgICAvKiBSZXBsYWNlIGRlY2ltYWwgc2VwYXJhdG9yIGlmIGFsbG93ZWQgKi9cclxuICAgICAgICBpZiAodGhpcy5hbGxvd0RlY2ltYWxTeW1ib2wpIHtcclxuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKHRoaXMuZGVjaW1hbFNlcGVyYXRvciwgdGhpcy5hbGxvd0RlY2ltYWxTeW1ib2wpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogQ2hlY2sgZm9yIHplcm8gYWZ0ZXIgZGVjaW1hbCBwb2ludCBhbmQgcmVtb3ZlIGlmIHByZXNlbnQgKi9cclxuICAgICAgICB2YXIgc3BsaXRWYWx1ZSA9IHZhbHVlLnNwbGl0KHRoaXMuZGVjaW1hbFNlcGVyYXRvcik7XHJcbiAgICAgICAgdmFsdWUgPSAoc3BsaXRWYWx1ZS5sZW5ndGggPiAxICYmIHNwbGl0VmFsdWVbMV0gJiYgUmVnZXhWYWxpZGF0b3IuaXNaZXJvKHNwbGl0VmFsdWVbMV0pKSA/IHNwbGl0VmFsdWVbMF0gOiB2YWx1ZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVHJhbnNmb3JtcyBhIHZhbHVlIGludG8gYSBmb3JtYXR0ZWQgZGVjaW1hbCBzdHJpbmcuXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIHRyYW5zZm9ybS5cclxuICAgICAqIEBwYXJhbSBkaWdpdHNJbmZvIFRoZSBudW1iZXIgb2YgZGlnaXRzIGFmdGVyIHRoZSBkZWNpbWFsIHBvaW50LlxyXG4gICAgICogQHBhcmFtIHBlcnNpc3RaZXJvIFdoZXRoZXIgdG8gcGVyc2lzdCB6ZXJvIGFmdGVyIGRlY2ltYWwgZGlnaXRzLlxyXG4gICAgICogQHJldHVybnMgVGhlIGZvcm1hdHRlZCBkZWNpbWFsIHN0cmluZy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHRyYW5zRm9ybURlY2ltYWwodmFsdWU6IGFueSwgZGlnaXRzSW5mbzogc3RyaW5nLCBwZXJzaXN0WmVybzogYm9vbGVhbik6IHN0cmluZyB8IG51bGwge1xyXG4gICAgICAgIC8qIENvbnZlcnQgdmFsdWUgdG8gc3RyaW5nICovXHJcbiAgICAgICAgdmFsdWUgPSBTdHJpbmcodmFsdWUpO1xyXG5cclxuICAgICAgICAvKiBJZiB2YWx1ZSBpcyBmYWxzeSwgcmV0dXJuIGl0ICovXHJcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBUcmFuc2Zvcm0gdGhlIHZhbHVlIHVzaW5nIERlY2ltYWxQaXBlICovXHJcbiAgICAgICAgbGV0IHRyYW5zZm9ybWVkVmFsdWUgPSB0aGlzLmRlY2ltYWxQaXBlLnRyYW5zZm9ybSh2YWx1ZS5yZXBsYWNlKFJlYWN0aXZlRm9ybUNvbmZpZy5udW1iZXIuZ3JvdXBTeW1ib2wsIFwiXCIpLnJlcGxhY2UodGhpcy5kZWNpbWFsU2VwZXJhdG9yLCBcIi5cIiksIGRpZ2l0c0luZm8sIHRoaXMubG9jYWxlSWQpO1xyXG5cclxuICAgICAgICAvKiBBZGQgdHJhaWxpbmcgemVyb3MgaWYgcGVyc2lzdFplcm8gaXMgdHJ1ZSAqL1xyXG4gICAgICAgIGlmIChwZXJzaXN0WmVybyAmJiB2YWx1ZS5pbmRleE9mKHRoaXMuZGVjaW1hbFNlcGVyYXRvcikpIHtcclxuICAgICAgICAgICAgLyogU3BsaXQgdGhlIHRyYW5zZm9ybWVkIHZhbHVlIGJ5IGRlY2ltYWwgcG9pbnQgKi9cclxuICAgICAgICAgICAgbGV0IHNwbGl0VHJhbnNmb3JtZWQgPSB0cmFuc2Zvcm1lZFZhbHVlPy5zcGxpdChcIi5cIik7XHJcblxyXG4gICAgICAgICAgICAvKiBTcGxpdCB0aGUgZGlnaXRzSW5mbyBieSBoeXBoZW4gb3IgdXNlIGFuIGVtcHR5IGFycmF5IGlmIGRpZ2l0c0luZm8gaXMgZmFsc3kgKi9cclxuICAgICAgICAgICAgbGV0IHNwbGl0RGlnaXRzSW5mbyA9IGRpZ2l0c0luZm8gPyBkaWdpdHNJbmZvLnNwbGl0KFwiLVwiKSA6IFtdO1xyXG5cclxuICAgICAgICAgICAgLyogRXh0cmFjdCB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBmcm9tIHRoZSBzcGxpdERpZ2l0c0luZm8gKi9cclxuICAgICAgICAgICAgbGV0IGRpZ2l0cyA9IHNwbGl0RGlnaXRzSW5mby5sZW5ndGggPiAxID8gcGFyc2VJbnQoc3BsaXREaWdpdHNJbmZvW3NwbGl0RGlnaXRzSW5mby5sZW5ndGggLSAxXSkgOiAwO1xyXG5cclxuICAgICAgICAgICAgLyogQ2hlY2sgaWYgdGhlcmUgYXJlIHR3byBwYXJ0cyBhZnRlciBzcGxpdHRpbmcgdGhlIHRyYW5zZm9ybWVkIHZhbHVlLCBkaWdpdHNJbmZvIGlzIG5vdCBlbXB0eSwgZGlnaXRzIGlzIG5vdCAwLCBhbmQgdGhlIGxlbmd0aCBvZiB0aGUgZGVjaW1hbCBwYXJ0IGlzIG5vdCBlcXVhbCB0byBkaWdpdHMgKi9cclxuICAgICAgICAgICAgaWYgKChzcGxpdFRyYW5zZm9ybWVkPy5sZW5ndGggPz8gMCkgPiAxICYmIHNwbGl0RGlnaXRzSW5mby5sZW5ndGggPiAwICYmIGRpZ2l0cyAhPT0gMCAmJiBzcGxpdFRyYW5zZm9ybWVkIVsxXS5sZW5ndGggIT09IGRpZ2l0cykge1xyXG4gICAgICAgICAgICAgICAgLyogQ2FsY3VsYXRlIHRoZSBkaWZmZXJlbmNlIGluIGxlbmd0aCAqL1xyXG4gICAgICAgICAgICAgICAgbGV0IGRpZmYgPSBkaWdpdHMgLSBzcGxpdFRyYW5zZm9ybWVkIVsxXS5sZW5ndGg7XHJcblxyXG4gICAgICAgICAgICAgICAgLyogQXBwZW5kIHRyYWlsaW5nIHplcm9zIHRvIHRoZSB0cmFuc2Zvcm1lZCB2YWx1ZSAqL1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkaWZmOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm1lZFZhbHVlICs9IFwiMFwiO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdHJhbnNmb3JtZWRWYWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIGRlY2ltYWwgYW5kIGdyb3VwIHN5bWJvbHMgaW4gdGhlIFJlYWN0aXZlRm9ybUNvbmZpZy5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBzZXRTeW1ib2xJbkNvbmZpZygpIHtcclxuICAgICAgICBSZWFjdGl2ZUZvcm1Db25maWcubnVtYmVyID0geyBkZWNpbWFsU3ltYm9sOiB0aGlzLmRlY2ltYWxTZXBlcmF0b3IsIGdyb3VwU3ltYm9sOiB0aGlzLmdyb3VwU2VwZXJhdG9yIH07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBCaW5kcyBjb25maWd1cmF0aW9uIHNldHRpbmdzIGZyb20gUmVhY3RpdmVGb3JtQ29uZmlnLmpzb24uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBiaW5kQ29uZmlnKCkge1xyXG4gICAgICAgIC8qIENoZWNrIGlmIFJlYWN0aXZlRm9ybUNvbmZpZy5qc29uIGV4aXN0cyAqL1xyXG4gICAgICAgIGlmIChSZWFjdGl2ZUZvcm1Db25maWcuanNvbikge1xyXG4gICAgICAgICAgICAvKiBDaGVjayBpZiBsb2NhbGVJZCBpcyBkZWZpbmVkIGluIFJlYWN0aXZlRm9ybUNvbmZpZy5qc29uICovXHJcbiAgICAgICAgICAgIGlmIChSZWFjdGl2ZUZvcm1Db25maWcuanNvbi5sb2NhbGVJZCkge1xyXG4gICAgICAgICAgICAgICAgLyogQXNzaWduIHRoZSBsb2NhbGVJZCBmcm9tIFJlYWN0aXZlRm9ybUNvbmZpZy5qc29uICovXHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvY2FsZUlkID0gUmVhY3RpdmVGb3JtQ29uZmlnLmpzb24ubG9jYWxlSWQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8qIENoZWNrIGlmIGFsbG93RGVjaW1hbFN5bWJvbCBpcyBkZWZpbmVkIGluIFJlYWN0aXZlRm9ybUNvbmZpZy5qc29uICovXHJcbiAgICAgICAgICAgIGlmIChSZWFjdGl2ZUZvcm1Db25maWcuanNvbi5hbGxvd0RlY2ltYWxTeW1ib2wpIHtcclxuICAgICAgICAgICAgICAgIC8qIEFzc2lnbiB0aGUgYWxsb3dEZWNpbWFsU3ltYm9sIGZyb20gUmVhY3RpdmVGb3JtQ29uZmlnLmpzb24gKi9cclxuICAgICAgICAgICAgICAgIHRoaXMuYWxsb3dEZWNpbWFsU3ltYm9sID0gUmVhY3RpdmVGb3JtQ29uZmlnLmpzb24uYWxsb3dEZWNpbWFsU3ltYm9sO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBTZXQgaXNTZXRDb25maWcgdG8gdHJ1ZSBhZnRlciBjb25maWd1cmluZyAqL1xyXG4gICAgICAgIHRoaXMuaXNTZXRDb25maWcgPSB0cnVlO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|