@messaia/cdk 0.0.0-CDK
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/esm2020/lib/base/base.module.mjs +66 -0
- package/esm2020/lib/base/components/base.component.mjs +441 -0
- package/esm2020/lib/base/components/generic-form-base.component.mjs +602 -0
- package/esm2020/lib/base/components/generic-form.component.mjs +31 -0
- package/esm2020/lib/base/components/generic-list.component.mjs +539 -0
- package/esm2020/lib/base/components/generic-reactive-form.component.mjs +54 -0
- package/esm2020/lib/base/constants/common.mjs +24 -0
- package/esm2020/lib/base/enums/message-type.mjs +7 -0
- package/esm2020/lib/base/helpers/auth-helper.mjs +46 -0
- package/esm2020/lib/base/interceptors/base.interceptor.mjs +138 -0
- package/esm2020/lib/base/interceptors/caching-interceptor.mjs +68 -0
- package/esm2020/lib/base/interceptors/loading.interceptor.mjs +63 -0
- package/esm2020/lib/base/models/auth-user.mjs +3 -0
- package/esm2020/lib/base/public_api.mjs +2 -0
- package/esm2020/lib/base/services/file.service.mjs +18 -0
- package/esm2020/lib/base/services/loading-screen.service.mjs +47 -0
- package/esm2020/lib/base/services/print.service.mjs +40 -0
- package/esm2020/lib/chips/chips.module.mjs +63 -0
- package/esm2020/lib/chips/components/chips.component.mjs +419 -0
- package/esm2020/lib/chips/public_api.mjs +3 -0
- package/esm2020/lib/common/animations/collapse/collapse.animation.mjs +44 -0
- package/esm2020/lib/common/animations/common/interfaces.mjs +2 -0
- package/esm2020/lib/common/behaviors/constructor.mjs +2 -0
- package/esm2020/lib/common/behaviors/control-value-accesor.mixin.mjs +39 -0
- package/esm2020/lib/common/behaviors/disabled.mixin.mjs +24 -0
- package/esm2020/lib/common/common.module.mjs +121 -0
- package/esm2020/lib/common/constants/constants.mjs +2 -0
- package/esm2020/lib/common/directives/disable-control.directive.mjs +34 -0
- package/esm2020/lib/common/enums/salutation.mjs +7 -0
- package/esm2020/lib/common/functions/decorators.mjs +22 -0
- package/esm2020/lib/common/functions/functions.mjs +9 -0
- package/esm2020/lib/common/functions/utils.mjs +161 -0
- package/esm2020/lib/common/helpers/app-storage.mjs +53 -0
- package/esm2020/lib/common/helpers/dynamic-builder.mjs +49 -0
- package/esm2020/lib/common/models/action-menu-item.mjs +12 -0
- package/esm2020/lib/common/models/app-setting.mjs +10 -0
- package/esm2020/lib/common/models/audit-entity.mjs +18 -0
- package/esm2020/lib/common/models/audit-user.mjs +3 -0
- package/esm2020/lib/common/models/base-entity.mjs +18 -0
- package/esm2020/lib/common/models/entity.mjs +2 -0
- package/esm2020/lib/common/models/enum-item.mjs +2 -0
- package/esm2020/lib/common/models/key-value.mjs +3 -0
- package/esm2020/lib/common/models/save-action.mjs +7 -0
- package/esm2020/lib/common/pipes/data-source.pipe.mjs +15 -0
- package/esm2020/lib/common/pipes/enum.pipe.mjs +23 -0
- package/esm2020/lib/common/pipes/file-size.pipe.mjs +37 -0
- package/esm2020/lib/common/pipes/filter.pipe.mjs +23 -0
- package/esm2020/lib/common/pipes/first-letter.mjs +24 -0
- package/esm2020/lib/common/pipes/keys.mjs +18 -0
- package/esm2020/lib/common/pipes/month-name.pipe.mjs +27 -0
- package/esm2020/lib/common/pipes/only-number.mjs +53 -0
- package/esm2020/lib/common/pipes/order.pipe.mjs +183 -0
- package/esm2020/lib/common/pipes/placeholder.pipe.mjs +26 -0
- package/esm2020/lib/common/pipes/safe-html.pipe.mjs +31 -0
- package/esm2020/lib/common/pipes/time.pipe.mjs +20 -0
- package/esm2020/lib/common/pipes/titlecase.pipe.mjs +14 -0
- package/esm2020/lib/common/pipes/truncate.pipe.mjs +15 -0
- package/esm2020/lib/common/pipes/values.mjs +14 -0
- package/esm2020/lib/common/public_api.mjs +18 -0
- package/esm2020/lib/common/services/base.service.mjs +19 -0
- package/esm2020/lib/common/services/context-helper.mjs +4 -0
- package/esm2020/lib/common/services/enum.service.mjs +44 -0
- package/esm2020/lib/common/services/service-locator.mjs +24 -0
- package/esm2020/lib/dialogs/alert-dialog/alert-dialog.component.mjs +31 -0
- package/esm2020/lib/dialogs/confirm-dialog/confirm-dialog.component.mjs +37 -0
- package/esm2020/lib/dialogs/dialog.component.mjs +56 -0
- package/esm2020/lib/dialogs/dialogs.module.mjs +82 -0
- package/esm2020/lib/dialogs/prompt-dialog/prompt-dialog.component.mjs +40 -0
- package/esm2020/lib/dialogs/public_api.mjs +2 -0
- package/esm2020/lib/dialogs/services/dialog.service.mjs +136 -0
- package/esm2020/lib/file/file-input.component.mjs +327 -0
- package/esm2020/lib/file/file.module.mjs +39 -0
- package/esm2020/lib/file/public_api.mjs +2 -0
- package/esm2020/lib/form-validators/abstract/typed-form.mjs +3 -0
- package/esm2020/lib/form-validators/algorithm/luhn-algorithm.mjs +15 -0
- package/esm2020/lib/form-validators/const/app-validators.const.mjs +68 -0
- package/esm2020/lib/form-validators/const/app.const.mjs +17 -0
- package/esm2020/lib/form-validators/const/config-names.const.mjs +9 -0
- package/esm2020/lib/form-validators/const/config-required-fields.const.mjs +11 -0
- package/esm2020/lib/form-validators/const/decorators.const.mjs +23 -0
- package/esm2020/lib/form-validators/const/events.const.mjs +14 -0
- package/esm2020/lib/form-validators/const/html-elements.const.mjs +7 -0
- package/esm2020/lib/form-validators/const/iban-country-wise-regex.const.mjs +80 -0
- package/esm2020/lib/form-validators/const/index.mjs +6 -0
- package/esm2020/lib/form-validators/const/operators.const.mjs +7 -0
- package/esm2020/lib/form-validators/const/validation-alphabet-locale.const.mjs +9 -0
- package/esm2020/lib/form-validators/const/validator.const.mjs +8 -0
- package/esm2020/lib/form-validators/core/defaultContainer.mjs +243 -0
- package/esm2020/lib/form-validators/core/validator.interface.mjs +2 -0
- package/esm2020/lib/form-validators/core/validator.static.mjs +74 -0
- package/esm2020/lib/form-validators/decorators/allOf.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/alpha.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/alphaNumeric.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/and.decorator.mjs +6 -0
- package/esm2020/lib/form-validators/decorators/ascii.decorator.mjs +6 -0
- package/esm2020/lib/form-validators/decorators/async.decorator.mjs +6 -0
- package/esm2020/lib/form-validators/decorators/base-decorator.function.mjs +7 -0
- package/esm2020/lib/form-validators/decorators/choice.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/compare.decorator.mjs +6 -0
- package/esm2020/lib/form-validators/decorators/compose.decorator.mjs +6 -0
- package/esm2020/lib/form-validators/decorators/contains.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/credit-card.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/cusip.decorator.mjs +6 -0
- package/esm2020/lib/form-validators/decorators/custom.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/dataUri.decorator.mjs +6 -0
- package/esm2020/lib/form-validators/decorators/date.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/different.decorator.mjs +6 -0
- package/esm2020/lib/form-validators/decorators/digit.decorator.mjs +6 -0
- package/esm2020/lib/form-validators/decorators/email.decorator.mjs +6 -0
- package/esm2020/lib/form-validators/decorators/endsWith.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/even.decorator.mjs +6 -0
- package/esm2020/lib/form-validators/decorators/extension.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/factor.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/file.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/fileSize.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/greater-than-equal-to.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/greater-than.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/grid.decorator.mjs +6 -0
- package/esm2020/lib/form-validators/decorators/hexColor.decorator.mjs +6 -0
- package/esm2020/lib/form-validators/decorators/image.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/index.mjs +91 -0
- package/esm2020/lib/form-validators/decorators/json.decorator.mjs +6 -0
- package/esm2020/lib/form-validators/decorators/latLong.decorator.mjs +6 -0
- package/esm2020/lib/form-validators/decorators/latitude.decorator.mjs +6 -0
- package/esm2020/lib/form-validators/decorators/leapYear.decorator.mjs +6 -0
- package/esm2020/lib/form-validators/decorators/less-than-equal-to.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/less-than.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/longitude.decorator.mjs +6 -0
- package/esm2020/lib/form-validators/decorators/lowercase.decorator.mjs +6 -0
- package/esm2020/lib/form-validators/decorators/mac.decorator.mjs +6 -0
- package/esm2020/lib/form-validators/decorators/mask.decorator.mjs +6 -0
- package/esm2020/lib/form-validators/decorators/maxDate.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/maxLength.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/maxNumber.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/maxTime.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/minDate.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/minLength.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/minNumber.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/minTime.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/model.decorator.mjs +7 -0
- package/esm2020/lib/form-validators/decorators/non-validation-decorators/disable.decorator.mjs +8 -0
- package/esm2020/lib/form-validators/decorators/non-validation-decorators/elementClass.decorator.mjs +8 -0
- package/esm2020/lib/form-validators/decorators/non-validation-decorators/error.decorator.mjs +8 -0
- package/esm2020/lib/form-validators/decorators/noneOf.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/not.decorator.mjs +6 -0
- package/esm2020/lib/form-validators/decorators/notEmpty.decorator.mjs +6 -0
- package/esm2020/lib/form-validators/decorators/numeric.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/odd.decorator.mjs +6 -0
- package/esm2020/lib/form-validators/decorators/oneOf.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/or.decorator.mjs +6 -0
- package/esm2020/lib/form-validators/decorators/password.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/pattern.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/port.decorator.mjs +6 -0
- package/esm2020/lib/form-validators/decorators/primeNumber.decorator.mjs +6 -0
- package/esm2020/lib/form-validators/decorators/prop-array.decorator.mjs +18 -0
- package/esm2020/lib/form-validators/decorators/prop-object.decorator.mjs +8 -0
- package/esm2020/lib/form-validators/decorators/prop.decorator.mjs +16 -0
- package/esm2020/lib/form-validators/decorators/range.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/required.decorator.mjs +6 -0
- package/esm2020/lib/form-validators/decorators/requiredTrue.decorator.mjs +6 -0
- package/esm2020/lib/form-validators/decorators/rule.decorator.mjs +6 -0
- package/esm2020/lib/form-validators/decorators/sanitize/blacklist.decorator.mjs +8 -0
- package/esm2020/lib/form-validators/decorators/sanitize/escape.decorator.mjs +8 -0
- package/esm2020/lib/form-validators/decorators/sanitize/ltrim.decorator.mjs +8 -0
- package/esm2020/lib/form-validators/decorators/sanitize/prefix.decorator.mjs +8 -0
- package/esm2020/lib/form-validators/decorators/sanitize/rtrim.decorator.mjs +8 -0
- package/esm2020/lib/form-validators/decorators/sanitize/sanitize.decorator.mjs +8 -0
- package/esm2020/lib/form-validators/decorators/sanitize/stripLow.decorator.mjs +8 -0
- package/esm2020/lib/form-validators/decorators/sanitize/suffix.decorator.mjs +8 -0
- package/esm2020/lib/form-validators/decorators/sanitize/toBoolean.decorator.mjs +8 -0
- package/esm2020/lib/form-validators/decorators/sanitize/toDate.decorator.mjs +8 -0
- package/esm2020/lib/form-validators/decorators/sanitize/toDouble.decorator.mjs +8 -0
- package/esm2020/lib/form-validators/decorators/sanitize/toFloat.decorator.mjs +8 -0
- package/esm2020/lib/form-validators/decorators/sanitize/toInt.decorator.mjs +8 -0
- package/esm2020/lib/form-validators/decorators/sanitize/toString.decorator.mjs +8 -0
- package/esm2020/lib/form-validators/decorators/sanitize/trim.decorator.mjs +8 -0
- package/esm2020/lib/form-validators/decorators/sanitize/whitelist.decorator.mjs +8 -0
- package/esm2020/lib/form-validators/decorators/startsWith.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/time.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/decorators/unique.decorator.mjs +6 -0
- package/esm2020/lib/form-validators/decorators/uppercase.decorator.mjs +6 -0
- package/esm2020/lib/form-validators/decorators/url.decorator.mjs +10 -0
- package/esm2020/lib/form-validators/directives/base-directive.mjs +43 -0
- package/esm2020/lib/form-validators/directives/control-host.directive.mjs +34 -0
- package/esm2020/lib/form-validators/directives/html-control-template.directive.mjs +20 -0
- package/esm2020/lib/form-validators/directives/rx-form.directive.mjs +134 -0
- package/esm2020/lib/form-validators/directives/template-validations/async-validation.directive.mjs +31 -0
- package/esm2020/lib/form-validators/directives/template-validations/base-validator.directive.mjs +42 -0
- package/esm2020/lib/form-validators/directives/template-validations/control-expression-process.mjs +26 -0
- package/esm2020/lib/form-validators/directives/template-validations/file-control.directive.mjs +91 -0
- package/esm2020/lib/form-validators/directives/template-validations/image-file-control.directive.mjs +50 -0
- package/esm2020/lib/form-validators/directives/template-validations/rxformcontrol.directive.mjs +277 -0
- package/esm2020/lib/form-validators/domain/disable-provider.mjs +93 -0
- package/esm2020/lib/form-validators/domain/element-processor/decimal.provider.mjs +59 -0
- package/esm2020/lib/form-validators/domain/element-processor/mask.provider.mjs +430 -0
- package/esm2020/lib/form-validators/domain/form-data.mjs +47 -0
- package/esm2020/lib/form-validators/enums/error-message-binding-strategy.mjs +11 -0
- package/esm2020/lib/form-validators/enums/index.mjs +5 -0
- package/esm2020/lib/form-validators/enums/ip-version.mjs +7 -0
- package/esm2020/lib/form-validators/enums/numeric-value-type.mjs +7 -0
- package/esm2020/lib/form-validators/enums/reset-type.mjs +10 -0
- package/esm2020/lib/form-validators/enums/url-validation-type.mjs +7 -0
- package/esm2020/lib/form-validators/models/config/alpha-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/array-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/base-config-fn.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/base-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/base-date-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/choice-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/compare-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/component-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/compose-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/contains-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/credit-card-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/custom-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/date-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/default-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/digit-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/disable-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/element-class-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/email-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/error-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/extension-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/factor-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/field-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/file-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/hex-color-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/iban-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/image-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/index.mjs +35 -0
- package/esm2020/lib/form-validators/models/config/ip-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/logical-operator-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/mask-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/max-date-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/message-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/min-date-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/model-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/number-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/numeric-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/password-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/pattern-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/prop-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/props-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/range-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/relational-operator-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/required-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/rule-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/sanitize-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/size-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/string-comparison-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/time-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/todate-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/unique-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/config/url-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/form-builder-configuration.mjs +8 -0
- package/esm2020/lib/form-validators/models/index.mjs +3 -0
- package/esm2020/lib/form-validators/models/interface/array-prop-instance-config.interface.mjs +2 -0
- package/esm2020/lib/form-validators/models/interface/auto-instance-config.interface.mjs +2 -0
- package/esm2020/lib/form-validators/models/interface/form-data-config.mjs +2 -0
- package/esm2020/lib/form-validators/models/interface/i-abstract-control.mjs +4 -0
- package/esm2020/lib/form-validators/models/interface/i-form-group.mjs +2 -0
- package/esm2020/lib/form-validators/models/interface/instance-argument.interface.mjs +2 -0
- package/esm2020/lib/form-validators/models/interface/object-prop-instance-config.interface.mjs +2 -0
- package/esm2020/lib/form-validators/models/interface/options.mjs +2 -0
- package/esm2020/lib/form-validators/models/password-validation.model.mjs +2 -0
- package/esm2020/lib/form-validators/models/prop-validation-config.mjs +2 -0
- package/esm2020/lib/form-validators/public_api.mjs +25 -0
- package/esm2020/lib/form-validators/reactive-form-validators/allOf.validator.mjs +22 -0
- package/esm2020/lib/form-validators/reactive-form-validators/alpha.validator.mjs +9 -0
- package/esm2020/lib/form-validators/reactive-form-validators/alphaNumeric.validator.mjs +9 -0
- package/esm2020/lib/form-validators/reactive-form-validators/and.validator.mjs +23 -0
- package/esm2020/lib/form-validators/reactive-form-validators/ascii.validator.mjs +9 -0
- package/esm2020/lib/form-validators/reactive-form-validators/async/base.async.validator.mjs +24 -0
- package/esm2020/lib/form-validators/reactive-form-validators/choice.validator.mjs +19 -0
- package/esm2020/lib/form-validators/reactive-form-validators/compare.validator.mjs +20 -0
- package/esm2020/lib/form-validators/reactive-form-validators/compose.validator.mjs +23 -0
- package/esm2020/lib/form-validators/reactive-form-validators/conditional-change.validator.mjs +63 -0
- package/esm2020/lib/form-validators/reactive-form-validators/contains.validator.mjs +15 -0
- package/esm2020/lib/form-validators/reactive-form-validators/credit-card.validator.mjs +48 -0
- package/esm2020/lib/form-validators/reactive-form-validators/cusip.validator.mjs +38 -0
- package/esm2020/lib/form-validators/reactive-form-validators/custom.validator.mjs +23 -0
- package/esm2020/lib/form-validators/reactive-form-validators/dataUri.validator.mjs +9 -0
- package/esm2020/lib/form-validators/reactive-form-validators/date.validator.mjs +8 -0
- package/esm2020/lib/form-validators/reactive-form-validators/different.validator.mjs +19 -0
- package/esm2020/lib/form-validators/reactive-form-validators/digit.validator.mjs +9 -0
- package/esm2020/lib/form-validators/reactive-form-validators/email.validator.mjs +9 -0
- package/esm2020/lib/form-validators/reactive-form-validators/endsWith.validator.mjs +16 -0
- package/esm2020/lib/form-validators/reactive-form-validators/even.validator.mjs +15 -0
- package/esm2020/lib/form-validators/reactive-form-validators/extension.validator.mjs +40 -0
- package/esm2020/lib/form-validators/reactive-form-validators/factor.validator.mjs +37 -0
- package/esm2020/lib/form-validators/reactive-form-validators/file.validator.mjs +26 -0
- package/esm2020/lib/form-validators/reactive-form-validators/fileSize.validator.mjs +32 -0
- package/esm2020/lib/form-validators/reactive-form-validators/greater-than-equal-to.validator.mjs +8 -0
- package/esm2020/lib/form-validators/reactive-form-validators/greater-than.validator.mjs +8 -0
- package/esm2020/lib/form-validators/reactive-form-validators/grid.validator.mjs +31 -0
- package/esm2020/lib/form-validators/reactive-form-validators/hexcolor.validator.mjs +9 -0
- package/esm2020/lib/form-validators/reactive-form-validators/iban.validator.mjs +30 -0
- package/esm2020/lib/form-validators/reactive-form-validators/image.validator.mjs +48 -0
- package/esm2020/lib/form-validators/reactive-form-validators/index.mjs +66 -0
- package/esm2020/lib/form-validators/reactive-form-validators/ip.validator.mjs +35 -0
- package/esm2020/lib/form-validators/reactive-form-validators/json.validator.mjs +26 -0
- package/esm2020/lib/form-validators/reactive-form-validators/latLong.validator.mjs +18 -0
- package/esm2020/lib/form-validators/reactive-form-validators/latitude.validator.mjs +9 -0
- package/esm2020/lib/form-validators/reactive-form-validators/leapYear.validator.mjs +16 -0
- package/esm2020/lib/form-validators/reactive-form-validators/less-than-equal-to.validator.mjs +8 -0
- package/esm2020/lib/form-validators/reactive-form-validators/less-than.validator.mjs +8 -0
- package/esm2020/lib/form-validators/reactive-form-validators/longitude.validator.mjs +9 -0
- package/esm2020/lib/form-validators/reactive-form-validators/lowercase.validator.mjs +15 -0
- package/esm2020/lib/form-validators/reactive-form-validators/mac.validator.mjs +9 -0
- package/esm2020/lib/form-validators/reactive-form-validators/mask.validator.mjs +13 -0
- package/esm2020/lib/form-validators/reactive-form-validators/maxDate.validator.mjs +8 -0
- package/esm2020/lib/form-validators/reactive-form-validators/maxLength.validator.mjs +16 -0
- package/esm2020/lib/form-validators/reactive-form-validators/maxNumber.validator.mjs +16 -0
- package/esm2020/lib/form-validators/reactive-form-validators/maxTime.validator.mjs +8 -0
- package/esm2020/lib/form-validators/reactive-form-validators/minDate.validator.mjs +8 -0
- package/esm2020/lib/form-validators/reactive-form-validators/minLength.validator.mjs +16 -0
- package/esm2020/lib/form-validators/reactive-form-validators/minNumber.validator.mjs +16 -0
- package/esm2020/lib/form-validators/reactive-form-validators/minTime.validator.mjs +8 -0
- package/esm2020/lib/form-validators/reactive-form-validators/noneOf.validator.mjs +24 -0
- package/esm2020/lib/form-validators/reactive-form-validators/not.validator.mjs +23 -0
- package/esm2020/lib/form-validators/reactive-form-validators/notEmpty.validator.mjs +17 -0
- package/esm2020/lib/form-validators/reactive-form-validators/numeric.validator.mjs +20 -0
- package/esm2020/lib/form-validators/reactive-form-validators/odd.validator.mjs +16 -0
- package/esm2020/lib/form-validators/reactive-form-validators/oneOf.validator.mjs +22 -0
- package/esm2020/lib/form-validators/reactive-form-validators/or.validator.mjs +23 -0
- package/esm2020/lib/form-validators/reactive-form-validators/password.validator.mjs +33 -0
- package/esm2020/lib/form-validators/reactive-form-validators/pattern.validator.mjs +17 -0
- package/esm2020/lib/form-validators/reactive-form-validators/port.validator.mjs +18 -0
- package/esm2020/lib/form-validators/reactive-form-validators/primeNumber.validator.mjs +26 -0
- package/esm2020/lib/form-validators/reactive-form-validators/range.validator.mjs +16 -0
- package/esm2020/lib/form-validators/reactive-form-validators/required.validator.mjs +17 -0
- package/esm2020/lib/form-validators/reactive-form-validators/requiredTrue.validator.mjs +16 -0
- package/esm2020/lib/form-validators/reactive-form-validators/rule.validator.mjs +20 -0
- package/esm2020/lib/form-validators/reactive-form-validators/startsWith.validator.mjs +16 -0
- package/esm2020/lib/form-validators/reactive-form-validators/time.validator.mjs +18 -0
- package/esm2020/lib/form-validators/reactive-form-validators/unique.validator.mjs +70 -0
- package/esm2020/lib/form-validators/reactive-form-validators/uppercase.validator.mjs +15 -0
- package/esm2020/lib/form-validators/reactive-form-validators/url.validator.mjs +28 -0
- package/esm2020/lib/form-validators/services/base-form-builder.mjs +115 -0
- package/esm2020/lib/form-validators/services/entity.service.mjs +64 -0
- package/esm2020/lib/form-validators/services/form-control.mjs +349 -0
- package/esm2020/lib/form-validators/services/form-group.mjs +2 -0
- package/esm2020/lib/form-validators/services/reactive-form.module.mjs +52 -0
- package/esm2020/lib/form-validators/services/rx-form-array.mjs +100 -0
- package/esm2020/lib/form-validators/services/rx-form-builder.mjs +559 -0
- package/esm2020/lib/form-validators/services/rx-form-group.mjs +299 -0
- package/esm2020/lib/form-validators/services/typed-form-builder.mjs +23 -0
- package/esm2020/lib/form-validators/util/alphabet-regex.locale.mjs +29 -0
- package/esm2020/lib/form-validators/util/app-util.mjs +141 -0
- package/esm2020/lib/form-validators/util/check-length.mjs +10 -0
- package/esm2020/lib/form-validators/util/config-provider.mjs +35 -0
- package/esm2020/lib/form-validators/util/date-checker.function.mjs +52 -0
- package/esm2020/lib/form-validators/util/date-provider.mjs +97 -0
- package/esm2020/lib/form-validators/util/form-const.mjs +3 -0
- package/esm2020/lib/form-validators/util/form-provider.mjs +37 -0
- package/esm2020/lib/form-validators/util/index.mjs +7 -0
- package/esm2020/lib/form-validators/util/instance-provider.function.mjs +30 -0
- package/esm2020/lib/form-validators/util/ip-checker.mjs +18 -0
- package/esm2020/lib/form-validators/util/linq.mjs +147 -0
- package/esm2020/lib/form-validators/util/object-maker.mjs +38 -0
- package/esm2020/lib/form-validators/util/reactive-form-config.mjs +23 -0
- package/esm2020/lib/form-validators/util/regex-rules.mjs +37 -0
- package/esm2020/lib/form-validators/util/regex-validator.mjs +74 -0
- package/esm2020/lib/form-validators/util/relational-checker.function.mjs +85 -0
- package/esm2020/lib/form-validators/util/reset-form.mjs +56 -0
- package/esm2020/lib/form-validators/util/sanitizers.mjs +131 -0
- package/esm2020/lib/form-validators/util/time-checker.function.mjs +48 -0
- package/esm2020/lib/form-validators/util/type.mjs +2 -0
- package/esm2020/lib/form-validators/util/validator-value-checker.mjs +17 -0
- package/esm2020/lib/form-validators/validators-extension/allOf-validator.extension.mjs +11 -0
- package/esm2020/lib/form-validators/validators-extension/alpha-validator.extension.mjs +11 -0
- package/esm2020/lib/form-validators/validators-extension/alphaNumeric-validator.extension.mjs +11 -0
- package/esm2020/lib/form-validators/validators-extension/and-validator.extension.mjs +7 -0
- package/esm2020/lib/form-validators/validators-extension/ascii-validator.extension.mjs +7 -0
- package/esm2020/lib/form-validators/validators-extension/base-validator.function.mjs +33 -0
- package/esm2020/lib/form-validators/validators-extension/choice-validator.extension.mjs +11 -0
- package/esm2020/lib/form-validators/validators-extension/compare-validator.extension.mjs +7 -0
- package/esm2020/lib/form-validators/validators-extension/compose-validator.extension.mjs +7 -0
- package/esm2020/lib/form-validators/validators-extension/contains-validator.extension.mjs +11 -0
- package/esm2020/lib/form-validators/validators-extension/credit-card-validator.extension.mjs +11 -0
- package/esm2020/lib/form-validators/validators-extension/cusip-validator.extension.mjs +7 -0
- package/esm2020/lib/form-validators/validators-extension/custom-validator.extension.mjs +11 -0
- package/esm2020/lib/form-validators/validators-extension/dataUri-validator.extension.mjs +7 -0
- package/esm2020/lib/form-validators/validators-extension/date-validator.extension.mjs +11 -0
- package/esm2020/lib/form-validators/validators-extension/different-validator.extension.mjs +7 -0
- package/esm2020/lib/form-validators/validators-extension/digit-validator.extension.mjs +7 -0
- package/esm2020/lib/form-validators/validators-extension/email-validator.extension.mjs +7 -0
- package/esm2020/lib/form-validators/validators-extension/endsWith-validator.extension.mjs +11 -0
- package/esm2020/lib/form-validators/validators-extension/even-validator.extension.mjs +7 -0
- package/esm2020/lib/form-validators/validators-extension/extension-validator.extension.mjs +10 -0
- package/esm2020/lib/form-validators/validators-extension/factor-validator.extension.mjs +11 -0
- package/esm2020/lib/form-validators/validators-extension/file-validator.extension.mjs +10 -0
- package/esm2020/lib/form-validators/validators-extension/fileSize-validator.extension.mjs +10 -0
- package/esm2020/lib/form-validators/validators-extension/greater-than-equal-to-validator.extension.mjs +11 -0
- package/esm2020/lib/form-validators/validators-extension/greater-than-validator.extension.mjs +11 -0
- package/esm2020/lib/form-validators/validators-extension/grid-validator.extension.mjs +7 -0
- package/esm2020/lib/form-validators/validators-extension/hexcolor-validator.extension.mjs +7 -0
- package/esm2020/lib/form-validators/validators-extension/iban-validator.extension.mjs +11 -0
- package/esm2020/lib/form-validators/validators-extension/image-validator.extension.mjs +10 -0
- package/esm2020/lib/form-validators/validators-extension/index.mjs +68 -0
- package/esm2020/lib/form-validators/validators-extension/ip-validator.extension.mjs +11 -0
- package/esm2020/lib/form-validators/validators-extension/json-validator.extension.mjs +7 -0
- package/esm2020/lib/form-validators/validators-extension/latLong-validator.extension.mjs +7 -0
- package/esm2020/lib/form-validators/validators-extension/latitude-validator.extension.mjs +7 -0
- package/esm2020/lib/form-validators/validators-extension/leapYear-validator.extension.mjs +7 -0
- package/esm2020/lib/form-validators/validators-extension/less-than-equal-to-validator.extension.mjs +11 -0
- package/esm2020/lib/form-validators/validators-extension/less-than-validator.extension.mjs +11 -0
- package/esm2020/lib/form-validators/validators-extension/longitude-validator.extension.mjs +7 -0
- package/esm2020/lib/form-validators/validators-extension/lowercase-validator.extension.mjs +7 -0
- package/esm2020/lib/form-validators/validators-extension/mac-validator.extension.mjs +7 -0
- package/esm2020/lib/form-validators/validators-extension/mask-validator.extension.mjs +7 -0
- package/esm2020/lib/form-validators/validators-extension/maxDate-validator.extension.mjs +11 -0
- package/esm2020/lib/form-validators/validators-extension/maxLength-validator.extension.mjs +11 -0
- package/esm2020/lib/form-validators/validators-extension/maxNumber-validator.extension.mjs +11 -0
- package/esm2020/lib/form-validators/validators-extension/maxTime-validator.extension.mjs +11 -0
- package/esm2020/lib/form-validators/validators-extension/minDate-validator.extension.mjs +11 -0
- package/esm2020/lib/form-validators/validators-extension/minLength-validator.extension.mjs +11 -0
- package/esm2020/lib/form-validators/validators-extension/minNumber-validator.extension.mjs +11 -0
- package/esm2020/lib/form-validators/validators-extension/minTime-validator.extension.mjs +11 -0
- package/esm2020/lib/form-validators/validators-extension/noneOf-validator.extension.mjs +11 -0
- package/esm2020/lib/form-validators/validators-extension/not-validator.extension.mjs +7 -0
- package/esm2020/lib/form-validators/validators-extension/notEmpty-validator.extension.mjs +7 -0
- package/esm2020/lib/form-validators/validators-extension/numeric-validator.extension.mjs +11 -0
- package/esm2020/lib/form-validators/validators-extension/odd-validator.extension.mjs +7 -0
- package/esm2020/lib/form-validators/validators-extension/oneOf-validator.extension.mjs +11 -0
- package/esm2020/lib/form-validators/validators-extension/or-validator.extension.mjs +7 -0
- package/esm2020/lib/form-validators/validators-extension/password-validator.extension.mjs +11 -0
- package/esm2020/lib/form-validators/validators-extension/pattern-validator.extension.mjs +11 -0
- package/esm2020/lib/form-validators/validators-extension/port-validator.extension.mjs +7 -0
- package/esm2020/lib/form-validators/validators-extension/primeNumber-validator.extension.mjs +7 -0
- package/esm2020/lib/form-validators/validators-extension/range-validator.extension.mjs +11 -0
- package/esm2020/lib/form-validators/validators-extension/required-validator.extension.mjs +7 -0
- package/esm2020/lib/form-validators/validators-extension/requiredTrue-validator.extension.mjs +7 -0
- package/esm2020/lib/form-validators/validators-extension/rxweb-validators.mjs +108 -0
- package/esm2020/lib/form-validators/validators-extension/startsWith-validator.extension.mjs +11 -0
- package/esm2020/lib/form-validators/validators-extension/time-validator.extension.mjs +11 -0
- package/esm2020/lib/form-validators/validators-extension/unique-validator.extension.mjs +7 -0
- package/esm2020/lib/form-validators/validators-extension/uppercase-validator.extension.mjs +7 -0
- package/esm2020/lib/form-validators/validators-extension/url-validator.extension.mjs +11 -0
- package/esm2020/lib/form-validators/validators-function/alpha-validation.function.mjs +37 -0
- package/esm2020/lib/form-validators/validators-function/regex-validation.function.mjs +16 -0
- package/esm2020/lib/forms/components/generic-form/generic-form.component.mjs +131 -0
- package/esm2020/lib/forms/constants/constants.mjs +2 -0
- package/esm2020/lib/forms/directives/mat-form-field-editor.directive.mjs +162 -0
- package/esm2020/lib/forms/directives/mat-form-field-readonly.directive.mjs +33 -0
- package/esm2020/lib/forms/enums/form-field-type.mjs +19 -0
- package/esm2020/lib/forms/forms.module.mjs +125 -0
- package/esm2020/lib/forms/functions/decorators.mjs +127 -0
- package/esm2020/lib/forms/functions/functions.mjs +10 -0
- package/esm2020/lib/forms/helpers/abstract-mat-form-field.mjs +251 -0
- package/esm2020/lib/forms/helpers/value-accessor-base.mjs +141 -0
- package/esm2020/lib/forms/models/form-field-definition.mjs +18 -0
- package/esm2020/lib/forms/models/form-field-group.mjs +11 -0
- package/esm2020/lib/forms/public_api.mjs +4 -0
- package/esm2020/lib/forms/validators/equal-validator.directive.mjs +79 -0
- package/esm2020/lib/forms/validators/native-element-injector.directive.mjs +32 -0
- package/esm2020/lib/forms/validators/unique-validator-directive.mjs +75 -0
- package/esm2020/lib/http/http.module.mjs +20 -0
- package/esm2020/lib/http/public_api.mjs +2 -0
- package/esm2020/lib/http/services/generic.service.mjs +319 -0
- package/esm2020/lib/layout/form-toolbar/form-toolbar.component.mjs +30 -0
- package/esm2020/lib/layout/form-toolbar-menu/form-toolbar-menu.component.mjs +17 -0
- package/esm2020/lib/layout/layout-card-over/layout-card-over.component.mjs +43 -0
- package/esm2020/lib/layout/layout-footer/layout-footer.component.mjs +34 -0
- package/esm2020/lib/layout/layout-manage-list/layout-manage-list.component.mjs +130 -0
- package/esm2020/lib/layout/layout-manage-list/layout-manage-list.directives.mjs +108 -0
- package/esm2020/lib/layout/layout-nav/layout-nav.component.mjs +95 -0
- package/esm2020/lib/layout/layout-nav-list/layout-nav-list.component.mjs +123 -0
- package/esm2020/lib/layout/layout-nav-list/layout-nav-list.directives.mjs +81 -0
- package/esm2020/lib/layout/layout-toggle.class.mjs +71 -0
- package/esm2020/lib/layout/layout.component.mjs +82 -0
- package/esm2020/lib/layout/layout.directives.mjs +81 -0
- package/esm2020/lib/layout/layout.module.mjs +146 -0
- package/esm2020/lib/layout/list-toolbar/list-toolbar.component.mjs +23 -0
- package/esm2020/lib/layout/list-toolbar-menu/list-toolbar-menu.component.mjs +17 -0
- package/esm2020/lib/layout/navigation-drawer/navigation-drawer.component.mjs +167 -0
- package/esm2020/lib/layout/public_api.mjs +2 -0
- package/esm2020/lib/media/directives/media-toggle.directive.mjs +115 -0
- package/esm2020/lib/media/media.module.mjs +37 -0
- package/esm2020/lib/media/public_api.mjs +2 -0
- package/esm2020/lib/media/services/media.service.mjs +108 -0
- package/esm2020/lib/menu/components/menu.component.mjs +52 -0
- package/esm2020/lib/menu/enums/menu-scope.mjs +6 -0
- package/esm2020/lib/menu/menu.module.mjs +50 -0
- package/esm2020/lib/menu/models/menu-item.mjs +3 -0
- package/esm2020/lib/menu/models/menu.mjs +3 -0
- package/esm2020/lib/menu/public_api.mjs +2 -0
- package/esm2020/lib/menu/services/menu-items.service.mjs +19 -0
- package/esm2020/lib/menu/services/menu.resolve.mjs +62 -0
- package/esm2020/lib/menu/services/menu.service.mjs +19 -0
- package/esm2020/lib/search/public_api.mjs +2 -0
- package/esm2020/lib/search/search.module.mjs +47 -0
- package/esm2020/lib/search/vd-search-box/vd-search-box.component.mjs +143 -0
- package/esm2020/lib/search/vd-search-input/vd-search-input.component.mjs +148 -0
- package/esm2020/lib/select/public_api.mjs +3 -0
- package/esm2020/lib/select/select.component.mjs +407 -0
- package/esm2020/lib/select/select.module.mjs +45 -0
- package/esm2020/lib/table/components/dynamic-table/dynamic-table.component.mjs +349 -0
- package/esm2020/lib/table/components/filter-clear.component.mjs +44 -0
- package/esm2020/lib/table/components/filter-date.component.mjs +151 -0
- package/esm2020/lib/table/components/filter-input.component.mjs +198 -0
- package/esm2020/lib/table/components/filter-select.component.mjs +334 -0
- package/esm2020/lib/table/directives/data-source-filter.directive.mjs +45 -0
- package/esm2020/lib/table/enums/table-column-type.mjs +14 -0
- package/esm2020/lib/table/functions/decorators.mjs +135 -0
- package/esm2020/lib/table/functions/functions.mjs +15 -0
- package/esm2020/lib/table/models/pagination.mjs +3 -0
- package/esm2020/lib/table/models/table-column.mjs +10 -0
- package/esm2020/lib/table/models/table-definition.mjs +17 -0
- package/esm2020/lib/table/models/table-menu-item.mjs +12 -0
- package/esm2020/lib/table/paginator-intl.mjs +44 -0
- package/esm2020/lib/table/public_api.mjs +3 -0
- package/esm2020/lib/table/table.data-source.mjs +212 -0
- package/esm2020/lib/table/table.module.mjs +139 -0
- package/esm2020/lib/table/table.static-data-source.mjs +131 -0
- package/esm2020/messaia-cdk.mjs +5 -0
- package/esm2020/public_api.mjs +18 -0
- package/fesm2015/messaia-cdk.mjs +16621 -0
- package/fesm2015/messaia-cdk.mjs.map +1 -0
- package/fesm2020/messaia-cdk.mjs +16538 -0
- package/fesm2020/messaia-cdk.mjs.map +1 -0
- package/lib/base/base.module.d.ts +25 -0
- package/lib/base/components/base.component.d.ts +258 -0
- package/lib/base/components/generic-form-base.component.d.ts +310 -0
- package/lib/base/components/generic-form.component.d.ts +32 -0
- package/lib/base/components/generic-list.component.d.ts +273 -0
- package/lib/base/components/generic-reactive-form.component.d.ts +47 -0
- package/lib/base/constants/common.d.ts +9 -0
- package/lib/base/enums/message-type.d.ts +5 -0
- package/lib/base/helpers/auth-helper.d.ts +26 -0
- package/lib/base/interceptors/base.interceptor.d.ts +40 -0
- package/lib/base/interceptors/caching-interceptor.d.ts +35 -0
- package/lib/base/interceptors/loading.interceptor.d.ts +30 -0
- package/lib/base/models/auth-user.d.ts +15 -0
- package/lib/base/public_api.d.ts +1 -0
- package/lib/base/services/file.service.d.ts +10 -0
- package/lib/base/services/loading-screen.service.d.ts +30 -0
- package/lib/base/services/print.service.d.ts +23 -0
- package/lib/chips/chips.module.d.ts +15 -0
- package/lib/chips/components/chips.component.d.ts +223 -0
- package/lib/chips/public_api.d.ts +2 -0
- package/lib/common/animations/collapse/collapse.animation.d.ts +21 -0
- package/lib/common/animations/common/interfaces.d.ts +5 -0
- package/lib/common/behaviors/constructor.d.ts +1 -0
- package/lib/common/behaviors/control-value-accesor.mixin.d.ts +16 -0
- package/lib/common/behaviors/disabled.mixin.d.ts +8 -0
- package/lib/common/common.module.d.ts +53 -0
- package/lib/common/constants/constants.d.ts +1 -0
- package/lib/common/directives/disable-control.directive.d.ts +16 -0
- package/lib/common/enums/salutation.d.ts +5 -0
- package/lib/common/functions/decorators.d.ts +12 -0
- package/lib/common/functions/functions.d.ts +6 -0
- package/lib/common/functions/utils.d.ts +73 -0
- package/lib/common/helpers/app-storage.d.ts +32 -0
- package/lib/common/helpers/dynamic-builder.d.ts +19 -0
- package/lib/common/models/action-menu-item.d.ts +15 -0
- package/lib/common/models/app-setting.d.ts +17 -0
- package/lib/common/models/audit-entity.d.ts +12 -0
- package/lib/common/models/audit-user.d.ts +5 -0
- package/lib/common/models/base-entity.d.ts +10 -0
- package/lib/common/models/entity.d.ts +3 -0
- package/lib/common/models/enum-item.d.ts +4 -0
- package/lib/common/models/key-value.d.ts +4 -0
- package/lib/common/models/save-action.d.ts +5 -0
- package/lib/common/pipes/data-source.pipe.d.ts +7 -0
- package/lib/common/pipes/enum.pipe.d.ts +12 -0
- package/lib/common/pipes/file-size.pipe.d.ts +13 -0
- package/lib/common/pipes/filter.pipe.d.ts +13 -0
- package/lib/common/pipes/first-letter.d.ts +12 -0
- package/lib/common/pipes/keys.d.ts +7 -0
- package/lib/common/pipes/month-name.pipe.d.ts +15 -0
- package/lib/common/pipes/only-number.d.ts +21 -0
- package/lib/common/pipes/order.pipe.d.ts +77 -0
- package/lib/common/pipes/placeholder.pipe.d.ts +13 -0
- package/lib/common/pipes/safe-html.pipe.d.ts +22 -0
- package/lib/common/pipes/time.pipe.d.ts +7 -0
- package/lib/common/pipes/titlecase.pipe.d.ts +7 -0
- package/lib/common/pipes/truncate.pipe.d.ts +7 -0
- package/lib/common/pipes/values.d.ts +7 -0
- package/lib/common/public_api.d.ts +17 -0
- package/lib/common/services/base.service.d.ts +10 -0
- package/lib/common/services/context-helper.d.ts +17 -0
- package/lib/common/services/enum.service.d.ts +23 -0
- package/lib/common/services/service-locator.d.ts +19 -0
- package/lib/common/styles/_common-theme.scss +27 -0
- package/lib/common/styles/_elevation.scss +147 -0
- package/lib/common/styles/_layout.scss +588 -0
- package/lib/common/styles/_rtl.scss +28 -0
- package/lib/common/styles/_styles.scss +12 -0
- package/lib/common/styles/_theme-functions.scss +27 -0
- package/lib/common/styles/_typography-functions.scss +35 -0
- package/lib/common/styles/_typography.scss +76 -0
- package/lib/common/styles/_variables.scss +98 -0
- package/lib/common/styles/colors/_colors-dark.scss +388 -0
- package/lib/common/styles/colors/_colors-light.scss +904 -0
- package/lib/common/styles/colors/_colors.scss +7 -0
- package/lib/common/styles/core/_button.scss +59 -0
- package/lib/common/styles/core/_card.scss +160 -0
- package/lib/common/styles/core/_content.scss +42 -0
- package/lib/common/styles/core/_core.scss +23 -0
- package/lib/common/styles/core/_divider.scss +14 -0
- package/lib/common/styles/core/_icons.scss +26 -0
- package/lib/common/styles/core/_list.scss +8 -0
- package/lib/common/styles/core/_sidenav.scss +20 -0
- package/lib/common/styles/core/_structure.scss +126 -0
- package/lib/common/styles/core/_toolbar.scss +31 -0
- package/lib/common/styles/core/_whiteframe.scss +111 -0
- package/lib/common/styles/font/_font.scss +92 -0
- package/lib/common/styles/material-icons.scss +3 -0
- package/lib/common/styles/platform.scss +11 -0
- package/lib/common/styles/utilities/_general.scss +81 -0
- package/lib/common/styles/utilities/_pad.scss +36 -0
- package/lib/common/styles/utilities/_pull.scss +36 -0
- package/lib/common/styles/utilities/_push.scss +36 -0
- package/lib/common/styles/utilities/_size.scss +24 -0
- package/lib/common/styles/utilities/_text.scss +87 -0
- package/lib/common/styles/utilities/_utilities.scss +15 -0
- package/lib/common/theming/_all-theme.scss +14 -0
- package/lib/common/typography/_all-typography.scss +33 -0
- package/lib/dialogs/alert-dialog/alert-dialog.component.d.ts +20 -0
- package/lib/dialogs/confirm-dialog/confirm-dialog.component.d.ts +24 -0
- package/lib/dialogs/dialog.component.d.ts +23 -0
- package/lib/dialogs/dialogs.module.d.ts +21 -0
- package/lib/dialogs/prompt-dialog/prompt-dialog.component.d.ts +25 -0
- package/lib/dialogs/public_api.d.ts +1 -0
- package/lib/dialogs/services/dialog.service.d.ts +96 -0
- package/lib/file/file-input.component.d.ts +191 -0
- package/lib/file/file.module.d.ts +13 -0
- package/lib/file/public_api.d.ts +1 -0
- package/lib/form-validators/abstract/typed-form.d.ts +4 -0
- package/lib/form-validators/algorithm/luhn-algorithm.d.ts +1 -0
- package/lib/form-validators/const/app-validators.const.d.ts +3 -0
- package/lib/form-validators/const/app.const.d.ts +16 -0
- package/lib/form-validators/const/config-names.const.d.ts +8 -0
- package/lib/form-validators/const/config-required-fields.const.d.ts +3 -0
- package/lib/form-validators/const/decorators.const.d.ts +3 -0
- package/lib/form-validators/const/events.const.d.ts +13 -0
- package/lib/form-validators/const/html-elements.const.d.ts +6 -0
- package/lib/form-validators/const/iban-country-wise-regex.const.d.ts +79 -0
- package/lib/form-validators/const/index.d.ts +5 -0
- package/lib/form-validators/const/operators.const.d.ts +3 -0
- package/lib/form-validators/const/validation-alphabet-locale.const.d.ts +3 -0
- package/lib/form-validators/const/validator.const.d.ts +7 -0
- package/lib/form-validators/core/defaultContainer.d.ts +19 -0
- package/lib/form-validators/core/validator.interface.d.ts +61 -0
- package/lib/form-validators/core/validator.static.d.ts +3 -0
- package/lib/form-validators/decorators/allOf.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/alpha.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/alphaNumeric.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/and.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/ascii.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/async.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/base-decorator.function.d.ts +1 -0
- package/lib/form-validators/decorators/choice.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/compare.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/compose.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/contains.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/credit-card.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/cusip.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/custom.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/dataUri.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/date.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/different.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/digit.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/email.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/endsWith.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/even.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/extension.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/factor.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/file.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/fileSize.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/greater-than-equal-to.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/greater-than.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/grid.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/hexColor.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/image.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/index.d.ts +90 -0
- package/lib/form-validators/decorators/json.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/latLong.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/latitude.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/leapYear.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/less-than-equal-to.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/less-than.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/longitude.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/lowercase.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/mac.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/mask.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/maxDate.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/maxLength.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/maxNumber.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/maxTime.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/minDate.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/minLength.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/minNumber.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/minTime.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/model.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/non-validation-decorators/disable.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/non-validation-decorators/elementClass.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/non-validation-decorators/error.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/noneOf.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/not.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/notEmpty.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/numeric.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/odd.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/oneOf.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/or.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/password.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/pattern.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/port.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/primeNumber.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/prop-array.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/prop-object.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/prop.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/range.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/required.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/requiredTrue.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/rule.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/sanitize/blacklist.decorator.d.ts +1 -0
- package/lib/form-validators/decorators/sanitize/escape.decorator.d.ts +1 -0
- package/lib/form-validators/decorators/sanitize/ltrim.decorator.d.ts +1 -0
- package/lib/form-validators/decorators/sanitize/prefix.decorator.d.ts +1 -0
- package/lib/form-validators/decorators/sanitize/rtrim.decorator.d.ts +1 -0
- package/lib/form-validators/decorators/sanitize/sanitize.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/sanitize/stripLow.decorator.d.ts +1 -0
- package/lib/form-validators/decorators/sanitize/suffix.decorator.d.ts +1 -0
- package/lib/form-validators/decorators/sanitize/toBoolean.decorator.d.ts +1 -0
- package/lib/form-validators/decorators/sanitize/toDate.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/sanitize/toDouble.decorator.d.ts +1 -0
- package/lib/form-validators/decorators/sanitize/toFloat.decorator.d.ts +1 -0
- package/lib/form-validators/decorators/sanitize/toInt.decorator.d.ts +1 -0
- package/lib/form-validators/decorators/sanitize/toString.decorator.d.ts +1 -0
- package/lib/form-validators/decorators/sanitize/trim.decorator.d.ts +1 -0
- package/lib/form-validators/decorators/sanitize/whitelist.decorator.d.ts +1 -0
- package/lib/form-validators/decorators/startsWith.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/time.decorator.d.ts +3 -0
- package/lib/form-validators/decorators/unique.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/uppercase.decorator.d.ts +2 -0
- package/lib/form-validators/decorators/url.decorator.d.ts +3 -0
- package/lib/form-validators/directives/base-directive.d.ts +8 -0
- package/lib/form-validators/directives/control-host.directive.d.ts +11 -0
- package/lib/form-validators/directives/html-control-template.directive.d.ts +9 -0
- package/lib/form-validators/directives/rx-form.directive.d.ts +18 -0
- package/lib/form-validators/directives/template-validations/async-validation.directive.d.ts +9 -0
- package/lib/form-validators/directives/template-validations/base-validator.directive.d.ts +17 -0
- package/lib/form-validators/directives/template-validations/control-expression-process.d.ts +18 -0
- package/lib/form-validators/directives/template-validations/file-control.directive.d.ts +29 -0
- package/lib/form-validators/directives/template-validations/image-file-control.directive.d.ts +17 -0
- package/lib/form-validators/directives/template-validations/rxformcontrol.directive.d.ts +89 -0
- package/lib/form-validators/domain/disable-provider.d.ts +15 -0
- package/lib/form-validators/domain/element-processor/decimal.provider.d.ts +17 -0
- package/lib/form-validators/domain/element-processor/mask.provider.d.ts +63 -0
- package/lib/form-validators/domain/form-data.d.ts +10 -0
- package/lib/form-validators/enums/error-message-binding-strategy.d.ts +9 -0
- package/lib/form-validators/enums/index.d.ts +4 -0
- package/lib/form-validators/enums/ip-version.d.ts +5 -0
- package/lib/form-validators/enums/numeric-value-type.d.ts +5 -0
- package/lib/form-validators/enums/reset-type.d.ts +8 -0
- package/lib/form-validators/enums/url-validation-type.d.ts +5 -0
- package/lib/form-validators/models/config/alpha-config.d.ts +5 -0
- package/lib/form-validators/models/config/array-config.d.ts +4 -0
- package/lib/form-validators/models/config/base-config-fn.d.ts +10 -0
- package/lib/form-validators/models/config/base-config.d.ts +7 -0
- package/lib/form-validators/models/config/base-date-config.d.ts +4 -0
- package/lib/form-validators/models/config/choice-config.d.ts +5 -0
- package/lib/form-validators/models/config/compare-config.d.ts +5 -0
- package/lib/form-validators/models/config/component-config.d.ts +3 -0
- package/lib/form-validators/models/config/compose-config.d.ts +5 -0
- package/lib/form-validators/models/config/contains-config.d.ts +4 -0
- package/lib/form-validators/models/config/credit-card-config.d.ts +5 -0
- package/lib/form-validators/models/config/custom-config.d.ts +5 -0
- package/lib/form-validators/models/config/date-config.d.ts +6 -0
- package/lib/form-validators/models/config/default-config.d.ts +4 -0
- package/lib/form-validators/models/config/digit-config.d.ts +3 -0
- package/lib/form-validators/models/config/disable-config.d.ts +3 -0
- package/lib/form-validators/models/config/element-class-config.d.ts +3 -0
- package/lib/form-validators/models/config/email-config.d.ts +3 -0
- package/lib/form-validators/models/config/error-config.d.ts +3 -0
- package/lib/form-validators/models/config/extension-config.d.ts +5 -0
- package/lib/form-validators/models/config/factor-config.d.ts +5 -0
- package/lib/form-validators/models/config/field-config.d.ts +4 -0
- package/lib/form-validators/models/config/file-config.d.ts +5 -0
- package/lib/form-validators/models/config/hex-color-config.d.ts +4 -0
- package/lib/form-validators/models/config/iban-config.d.ts +4 -0
- package/lib/form-validators/models/config/image-config.d.ts +7 -0
- package/lib/form-validators/models/config/index.d.ts +34 -0
- package/lib/form-validators/models/config/ip-config.d.ts +6 -0
- package/lib/form-validators/models/config/logical-operator-config.d.ts +5 -0
- package/lib/form-validators/models/config/mask-config.d.ts +6 -0
- package/lib/form-validators/models/config/max-date-config.d.ts +4 -0
- package/lib/form-validators/models/config/message-config.d.ts +3 -0
- package/lib/form-validators/models/config/min-date-config.d.ts +4 -0
- package/lib/form-validators/models/config/model-config.d.ts +4 -0
- package/lib/form-validators/models/config/number-config.d.ts +4 -0
- package/lib/form-validators/models/config/numeric-config.d.ts +8 -0
- package/lib/form-validators/models/config/password-config.d.ts +13 -0
- package/lib/form-validators/models/config/pattern-config.d.ts +6 -0
- package/lib/form-validators/models/config/prop-config.d.ts +14 -0
- package/lib/form-validators/models/config/props-config.d.ts +12 -0
- package/lib/form-validators/models/config/range-config.d.ts +5 -0
- package/lib/form-validators/models/config/relational-operator-config.d.ts +6 -0
- package/lib/form-validators/models/config/required-config.d.ts +3 -0
- package/lib/form-validators/models/config/rule-config.d.ts +4 -0
- package/lib/form-validators/models/config/sanitize-config.d.ts +3 -0
- package/lib/form-validators/models/config/size-config.d.ts +5 -0
- package/lib/form-validators/models/config/string-comparison-config.d.ts +4 -0
- package/lib/form-validators/models/config/time-config.d.ts +15 -0
- package/lib/form-validators/models/config/todate-config.d.ts +3 -0
- package/lib/form-validators/models/config/unique-config.d.ts +4 -0
- package/lib/form-validators/models/config/url-config.d.ts +5 -0
- package/lib/form-validators/models/form-builder-configuration.d.ts +28 -0
- package/lib/form-validators/models/index.d.ts +2 -0
- package/lib/form-validators/models/interface/array-prop-instance-config.interface.d.ts +5 -0
- package/lib/form-validators/models/interface/auto-instance-config.interface.d.ts +7 -0
- package/lib/form-validators/models/interface/form-data-config.d.ts +3 -0
- package/lib/form-validators/models/interface/i-abstract-control.d.ts +15 -0
- package/lib/form-validators/models/interface/i-form-group.d.ts +37 -0
- package/lib/form-validators/models/interface/instance-argument.interface.d.ts +3 -0
- package/lib/form-validators/models/interface/object-prop-instance-config.interface.d.ts +4 -0
- package/lib/form-validators/models/interface/options.d.ts +9 -0
- package/lib/form-validators/models/password-validation.model.d.ts +20 -0
- package/lib/form-validators/models/prop-validation-config.d.ts +78 -0
- package/lib/form-validators/public_api.d.ts +24 -0
- package/lib/form-validators/reactive-form-validators/allOf.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/alpha.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/alphaNumeric.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/and.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/ascii.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/async/base.async.validator.d.ts +2 -0
- package/lib/form-validators/reactive-form-validators/choice.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/compare.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/compose.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/conditional-change.validator.d.ts +2 -0
- package/lib/form-validators/reactive-form-validators/contains.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/credit-card.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/cusip.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/custom.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/dataUri.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/date.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/different.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/digit.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/email.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/endsWith.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/even.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/extension.validator.d.ts +2 -0
- package/lib/form-validators/reactive-form-validators/factor.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/file.validator.d.ts +2 -0
- package/lib/form-validators/reactive-form-validators/fileSize.validator.d.ts +2 -0
- package/lib/form-validators/reactive-form-validators/greater-than-equal-to.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/greater-than.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/grid.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/hexcolor.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/iban.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/image.validator.d.ts +2 -0
- package/lib/form-validators/reactive-form-validators/index.d.ts +65 -0
- package/lib/form-validators/reactive-form-validators/ip.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/json.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/latLong.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/latitude.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/leapYear.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/less-than-equal-to.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/less-than.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/longitude.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/lowercase.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/mac.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/mask.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/maxDate.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/maxLength.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/maxNumber.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/maxTime.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/minDate.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/minLength.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/minNumber.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/minTime.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/noneOf.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/not.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/notEmpty.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/numeric.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/odd.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/oneOf.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/or.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/password.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/pattern.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/port.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/primeNumber.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/range.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/required.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/requiredTrue.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/rule.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/startsWith.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/time.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/unique.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/uppercase.validator.d.ts +3 -0
- package/lib/form-validators/reactive-form-validators/url.validator.d.ts +3 -0
- package/lib/form-validators/services/base-form-builder.d.ts +13 -0
- package/lib/form-validators/services/entity.service.d.ts +15 -0
- package/lib/form-validators/services/form-control.d.ts +99 -0
- package/lib/form-validators/services/form-group.d.ts +9 -0
- package/lib/form-validators/services/reactive-form.module.d.ts +24 -0
- package/lib/form-validators/services/rx-form-array.d.ts +38 -0
- package/lib/form-validators/services/rx-form-builder.d.ts +54 -0
- package/lib/form-validators/services/rx-form-group.d.ts +66 -0
- package/lib/form-validators/services/typed-form-builder.d.ts +14 -0
- package/lib/form-validators/util/alphabet-regex.locale.d.ts +28 -0
- package/lib/form-validators/util/app-util.d.ts +28 -0
- package/lib/form-validators/util/check-length.d.ts +1 -0
- package/lib/form-validators/util/config-provider.d.ts +1 -0
- package/lib/form-validators/util/date-checker.function.d.ts +7 -0
- package/lib/form-validators/util/date-provider.d.ts +9 -0
- package/lib/form-validators/util/form-const.d.ts +2 -0
- package/lib/form-validators/util/form-provider.d.ts +8 -0
- package/lib/form-validators/util/index.d.ts +6 -0
- package/lib/form-validators/util/instance-provider.function.d.ts +3 -0
- package/lib/form-validators/util/ip-checker.d.ts +2 -0
- package/lib/form-validators/util/linq.d.ts +15 -0
- package/lib/form-validators/util/object-maker.d.ts +7 -0
- package/lib/form-validators/util/reactive-form-config.d.ts +17 -0
- package/lib/form-validators/util/regex-rules.d.ts +3 -0
- package/lib/form-validators/util/regex-validator.d.ts +11 -0
- package/lib/form-validators/util/relational-checker.function.d.ts +2 -0
- package/lib/form-validators/util/reset-form.d.ts +21 -0
- package/lib/form-validators/util/sanitizers.d.ts +3 -0
- package/lib/form-validators/util/time-checker.function.d.ts +4 -0
- package/lib/form-validators/util/type.d.ts +3 -0
- package/lib/form-validators/util/validator-value-checker.d.ts +5 -0
- package/lib/form-validators/validators-extension/allOf-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/alpha-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/alphaNumeric-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/and-validator.extension.d.ts +3 -0
- package/lib/form-validators/validators-extension/ascii-validator.extension.d.ts +3 -0
- package/lib/form-validators/validators-extension/base-validator.function.d.ts +3 -0
- package/lib/form-validators/validators-extension/choice-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/compare-validator.extension.d.ts +3 -0
- package/lib/form-validators/validators-extension/compose-validator.extension.d.ts +3 -0
- package/lib/form-validators/validators-extension/contains-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/credit-card-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/cusip-validator.extension.d.ts +3 -0
- package/lib/form-validators/validators-extension/custom-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/dataUri-validator.extension.d.ts +3 -0
- package/lib/form-validators/validators-extension/date-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/different-validator.extension.d.ts +3 -0
- package/lib/form-validators/validators-extension/digit-validator.extension.d.ts +3 -0
- package/lib/form-validators/validators-extension/email-validator.extension.d.ts +3 -0
- package/lib/form-validators/validators-extension/endsWith-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/even-validator.extension.d.ts +3 -0
- package/lib/form-validators/validators-extension/extension-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/factor-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/file-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/fileSize-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/greater-than-equal-to-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/greater-than-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/grid-validator.extension.d.ts +3 -0
- package/lib/form-validators/validators-extension/hexcolor-validator.extension.d.ts +3 -0
- package/lib/form-validators/validators-extension/iban-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/image-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/index.d.ts +67 -0
- package/lib/form-validators/validators-extension/ip-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/json-validator.extension.d.ts +3 -0
- package/lib/form-validators/validators-extension/latLong-validator.extension.d.ts +3 -0
- package/lib/form-validators/validators-extension/latitude-validator.extension.d.ts +3 -0
- package/lib/form-validators/validators-extension/leapYear-validator.extension.d.ts +3 -0
- package/lib/form-validators/validators-extension/less-than-equal-to-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/less-than-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/longitude-validator.extension.d.ts +3 -0
- package/lib/form-validators/validators-extension/lowercase-validator.extension.d.ts +3 -0
- package/lib/form-validators/validators-extension/mac-validator.extension.d.ts +3 -0
- package/lib/form-validators/validators-extension/mask-validator.extension.d.ts +3 -0
- package/lib/form-validators/validators-extension/maxDate-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/maxLength-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/maxNumber-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/maxTime-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/minDate-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/minLength-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/minNumber-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/minTime-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/noneOf-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/not-validator.extension.d.ts +3 -0
- package/lib/form-validators/validators-extension/notEmpty-validator.extension.d.ts +3 -0
- package/lib/form-validators/validators-extension/numeric-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/odd-validator.extension.d.ts +3 -0
- package/lib/form-validators/validators-extension/oneOf-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/or-validator.extension.d.ts +3 -0
- package/lib/form-validators/validators-extension/password-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/pattern-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/port-validator.extension.d.ts +3 -0
- package/lib/form-validators/validators-extension/primeNumber-validator.extension.d.ts +3 -0
- package/lib/form-validators/validators-extension/range-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/required-validator.extension.d.ts +3 -0
- package/lib/form-validators/validators-extension/requiredTrue-validator.extension.d.ts +3 -0
- package/lib/form-validators/validators-extension/rxweb-validators.d.ts +107 -0
- package/lib/form-validators/validators-extension/startsWith-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/time-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-extension/unique-validator.extension.d.ts +3 -0
- package/lib/form-validators/validators-extension/uppercase-validator.extension.d.ts +3 -0
- package/lib/form-validators/validators-extension/url-validator.extension.d.ts +4 -0
- package/lib/form-validators/validators-function/alpha-validation.function.d.ts +3 -0
- package/lib/form-validators/validators-function/regex-validation.function.d.ts +4 -0
- package/lib/forms/components/generic-form/generic-form.component.d.ts +91 -0
- package/lib/forms/constants/constants.d.ts +1 -0
- package/lib/forms/directives/mat-form-field-editor.directive.d.ts +82 -0
- package/lib/forms/directives/mat-form-field-readonly.directive.d.ts +16 -0
- package/lib/forms/enums/form-field-type.d.ts +17 -0
- package/lib/forms/forms.module.d.ts +39 -0
- package/lib/forms/functions/decorators.d.ts +14 -0
- package/lib/forms/functions/functions.d.ts +7 -0
- package/lib/forms/helpers/abstract-mat-form-field.d.ts +182 -0
- package/lib/forms/helpers/value-accessor-base.d.ts +92 -0
- package/lib/forms/models/form-field-definition.d.ts +39 -0
- package/lib/forms/models/form-field-group.d.ts +12 -0
- package/lib/forms/public_api.d.ts +3 -0
- package/lib/forms/validators/equal-validator.directive.d.ts +20 -0
- package/lib/forms/validators/native-element-injector.directive.d.ts +17 -0
- package/lib/forms/validators/unique-validator-directive.d.ts +36 -0
- package/lib/http/http.module.d.ts +8 -0
- package/lib/http/public_api.d.ts +1 -0
- package/lib/http/services/generic.service.d.ts +166 -0
- package/lib/layout/_layout-theme.scss +89 -0
- package/lib/layout/form-toolbar/form-toolbar.component.d.ts +23 -0
- package/lib/layout/form-toolbar-menu/form-toolbar-menu.component.d.ts +10 -0
- package/lib/layout/layout-card-over/layout-card-over.component.d.ts +31 -0
- package/lib/layout/layout-footer/layout-footer.component.d.ts +17 -0
- package/lib/layout/layout-manage-list/layout-manage-list.component.d.ts +100 -0
- package/lib/layout/layout-manage-list/layout-manage-list.directives.d.ts +61 -0
- package/lib/layout/layout-nav/layout-nav.component.d.ts +85 -0
- package/lib/layout/layout-nav-list/layout-nav-list.component.d.ts +94 -0
- package/lib/layout/layout-nav-list/layout-nav-list.directives.d.ts +25 -0
- package/lib/layout/layout-toggle.class.d.ts +37 -0
- package/lib/layout/layout.component.d.ts +56 -0
- package/lib/layout/layout.directives.d.ts +25 -0
- package/lib/layout/layout.module.d.ts +46 -0
- package/lib/layout/list-toolbar/list-toolbar.component.d.ts +19 -0
- package/lib/layout/list-toolbar-menu/list-toolbar-menu.component.d.ts +10 -0
- package/lib/layout/navigation-drawer/navigation-drawer.component.d.ts +114 -0
- package/lib/layout/public_api.d.ts +1 -0
- package/lib/media/directives/media-toggle.directive.d.ts +44 -0
- package/lib/media/media.module.d.ts +11 -0
- package/lib/media/public_api.d.ts +1 -0
- package/lib/media/services/media.service.d.ts +37 -0
- package/lib/menu/components/menu.component.d.ts +28 -0
- package/lib/menu/enums/menu-scope.d.ts +4 -0
- package/lib/menu/menu.module.d.ts +19 -0
- package/lib/menu/models/menu-item.d.ts +17 -0
- package/lib/menu/models/menu.d.ts +14 -0
- package/lib/menu/public_api.d.ts +1 -0
- package/lib/menu/services/menu-items.service.d.ts +12 -0
- package/lib/menu/services/menu.resolve.d.ts +39 -0
- package/lib/menu/services/menu.service.d.ts +12 -0
- package/lib/search/public_api.d.ts +1 -0
- package/lib/search/search.module.d.ts +15 -0
- package/lib/search/vd-search-box/vd-search-box.component.d.ts +60 -0
- package/lib/search/vd-search-input/vd-search-input.component.d.ts +57 -0
- package/lib/select/public_api.d.ts +2 -0
- package/lib/select/select.component.d.ts +233 -0
- package/lib/select/select.module.d.ts +13 -0
- package/lib/table/components/dynamic-table/dynamic-table.component.d.ts +202 -0
- package/lib/table/components/filter-clear.component.d.ts +16 -0
- package/lib/table/components/filter-date.component.d.ts +70 -0
- package/lib/table/components/filter-input.component.d.ts +94 -0
- package/lib/table/components/filter-select.component.d.ts +178 -0
- package/lib/table/directives/data-source-filter.directive.d.ts +28 -0
- package/lib/table/enums/table-column-type.d.ts +12 -0
- package/lib/table/functions/decorators.d.ts +17 -0
- package/lib/table/functions/functions.d.ts +8 -0
- package/lib/table/models/pagination.d.ts +7 -0
- package/lib/table/models/table-column.d.ts +59 -0
- package/lib/table/models/table-definition.d.ts +24 -0
- package/lib/table/models/table-menu-item.d.ts +8 -0
- package/lib/table/paginator-intl.d.ts +27 -0
- package/lib/table/public_api.d.ts +2 -0
- package/lib/table/table.data-source.d.ts +140 -0
- package/lib/table/table.module.d.ts +46 -0
- package/lib/table/table.static-data-source.d.ts +88 -0
- package/messaia-cdk.d.ts +5 -0
- package/package.json +31 -0
- package/public_api.d.ts +14 -0
- package/src/lib/layout/README.md +119 -0
- package/src/lib/layout/layout-card-over/README.md +36 -0
- package/src/lib/layout/layout-manage-list/README.md +76 -0
- package/src/lib/layout/layout-nav/README.md +40 -0
- package/src/lib/layout/layout-nav-list/README.md +85 -0
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
import { FormGroup, FormArray, FormControl } from "@angular/forms";
|
|
2
|
+
import { RxFormControl } from "./form-control";
|
|
3
|
+
import { clone } from './entity.service';
|
|
4
|
+
import { RegexValidator } from '../util/regex-validator';
|
|
5
|
+
import { ApplicationUtil } from '../util/app-util';
|
|
6
|
+
import { RxFormArray } from './rx-form-array';
|
|
7
|
+
import { FormDataProvider } from "../domain/form-data";
|
|
8
|
+
import { isResetControl, getNestedOptions } from '../util/reset-form';
|
|
9
|
+
import { defaultContainer } from '../core/defaultContainer';
|
|
10
|
+
export class RxFormGroup extends FormGroup {
|
|
11
|
+
constructor(model, entityObject, controls, validatorOrOpts, asyncValidator) {
|
|
12
|
+
super(controls, validatorOrOpts, asyncValidator);
|
|
13
|
+
this.model = model;
|
|
14
|
+
this.entityObject = entityObject;
|
|
15
|
+
this._modified = {};
|
|
16
|
+
this._isModified = false;
|
|
17
|
+
this.changing = false;
|
|
18
|
+
this.baseObject = {};
|
|
19
|
+
for (var column in this.entityObject)
|
|
20
|
+
this.baseObject[column] = this.entityObject[column];
|
|
21
|
+
this.formDataProvider = new FormDataProvider();
|
|
22
|
+
}
|
|
23
|
+
bindPrimaryKey(modelInstance, jObject) {
|
|
24
|
+
let instanceContainer = defaultContainer.get(modelInstance.constructor);
|
|
25
|
+
if (instanceContainer) {
|
|
26
|
+
let primaryKeyProp = instanceContainer.properties.filter(x => x.isPrimaryKey)[0];
|
|
27
|
+
if (primaryKeyProp && this.modelInstance[primaryKeyProp.name])
|
|
28
|
+
jObject[primaryKeyProp.name] = this.modelInstance[primaryKeyProp.name];
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
get modifiedValue() {
|
|
32
|
+
let jObject = {};
|
|
33
|
+
if (Object.keys(this._modified).length > 0) {
|
|
34
|
+
this.bindPrimaryKey(this.modelInstance, jObject);
|
|
35
|
+
for (var columnName in this._modified) {
|
|
36
|
+
if (this.controls[columnName] instanceof RxFormGroup)
|
|
37
|
+
jObject[columnName] = this.controls[columnName].modifiedValue;
|
|
38
|
+
else if (this.controls[columnName] instanceof FormArray) {
|
|
39
|
+
let formArray = this.controls[columnName];
|
|
40
|
+
jObject[columnName] = [];
|
|
41
|
+
for (var i = 0; i < this._modified[columnName].length; i++) {
|
|
42
|
+
let modifiedValue = formArray.controls[i].modifiedValue;
|
|
43
|
+
if (Object.keys(modifiedValue).length > 0)
|
|
44
|
+
jObject[columnName].push(modifiedValue);
|
|
45
|
+
}
|
|
46
|
+
if (jObject[columnName].length == 0)
|
|
47
|
+
delete jObject[columnName];
|
|
48
|
+
}
|
|
49
|
+
else
|
|
50
|
+
jObject[columnName] = this._modified[columnName];
|
|
51
|
+
}
|
|
52
|
+
return jObject;
|
|
53
|
+
}
|
|
54
|
+
return this._modified;
|
|
55
|
+
}
|
|
56
|
+
get isModified() {
|
|
57
|
+
return this._isModified;
|
|
58
|
+
}
|
|
59
|
+
patch(controlName) {
|
|
60
|
+
if (controlName) {
|
|
61
|
+
let control = this.controls[controlName];
|
|
62
|
+
this.processModified(controlName, control);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
this.nestedFormsModification();
|
|
66
|
+
}
|
|
67
|
+
this._isModified = Object.keys(this._modified).length > 0;
|
|
68
|
+
if (!this._isModified)
|
|
69
|
+
this.nestedArrayIsModified();
|
|
70
|
+
if (this.parent && this.parent.patch)
|
|
71
|
+
this.parent.patch();
|
|
72
|
+
}
|
|
73
|
+
isDirty() {
|
|
74
|
+
let isDirty = false;
|
|
75
|
+
for (let name in this.value) {
|
|
76
|
+
let currentValue = this.modelInstance[name];
|
|
77
|
+
if (!(this.controls[name] instanceof FormGroup || this.controls[name] instanceof FormArray)) {
|
|
78
|
+
isDirty = ApplicationUtil.notEqualTo(this.baseObject[name], currentValue);
|
|
79
|
+
}
|
|
80
|
+
else if (this.controls[name] instanceof RxFormGroup)
|
|
81
|
+
isDirty = this.controls[name].isDirty();
|
|
82
|
+
else if (this.controls[name] instanceof FormArray) {
|
|
83
|
+
for (let formGroup of this.controls[name].controls) {
|
|
84
|
+
isDirty = formGroup.isDirty();
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if (isDirty)
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
return isDirty;
|
|
91
|
+
}
|
|
92
|
+
;
|
|
93
|
+
resetForm(options) {
|
|
94
|
+
for (let name in this.controls) {
|
|
95
|
+
if (isResetControl(name, this.controls[name], options)) {
|
|
96
|
+
if (this.controls[name] instanceof FormGroup)
|
|
97
|
+
this.controls[name].resetForm(getNestedOptions(name, options));
|
|
98
|
+
else if (this.controls[name] instanceof FormArray) {
|
|
99
|
+
this.controls[name].resetForm(options && options.value ? options.value[name] : undefined);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
if (options && options.value && RegexValidator.isNotBlank(options.value[name]))
|
|
103
|
+
this.controls[name].reset(options.value[name]);
|
|
104
|
+
else
|
|
105
|
+
this.controls[name].reset();
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
commit() {
|
|
111
|
+
for (let name in this.controls) {
|
|
112
|
+
if (this.controls[name] instanceof FormGroup)
|
|
113
|
+
this.controls[name].commit();
|
|
114
|
+
else if (this.controls[name] instanceof FormArray) {
|
|
115
|
+
this.controls[name].commit();
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
this.controls[name].commit();
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
patchModelValue(value, options) {
|
|
123
|
+
if (value) {
|
|
124
|
+
for (let name in this.controls) {
|
|
125
|
+
if (this.controls[name] instanceof RxFormGroup && value[name])
|
|
126
|
+
this.controls[name].patchModelValue(value[name], options);
|
|
127
|
+
else if (this.controls[name] instanceof FormArray && Array.isArray(value[name])) {
|
|
128
|
+
let index = 0;
|
|
129
|
+
for (let formGroup of this.controls[name].controls) {
|
|
130
|
+
if (value[name][index])
|
|
131
|
+
formGroup.patchModelValue(value[name][index], options);
|
|
132
|
+
index = index + 1;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
else if (value[name] !== undefined)
|
|
136
|
+
this.controls[name].patchValue(value[name], options);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
getErrorSummary(onlyMessage) {
|
|
141
|
+
let jObject = {};
|
|
142
|
+
Object.keys(this.controls).forEach(columnName => {
|
|
143
|
+
if (this.controls[columnName] instanceof FormGroup) {
|
|
144
|
+
let error = this.controls[columnName].getErrorSummary(false);
|
|
145
|
+
if (Object.keys(error).length > 0)
|
|
146
|
+
jObject[columnName] = error;
|
|
147
|
+
}
|
|
148
|
+
else if (this.controls[columnName] instanceof FormArray) {
|
|
149
|
+
let index = 0;
|
|
150
|
+
for (let formGroup of this.controls[columnName].controls) {
|
|
151
|
+
let error = formGroup.getErrorSummary(false);
|
|
152
|
+
if (Object.keys(error).length > 0) {
|
|
153
|
+
error.index = index;
|
|
154
|
+
if (!jObject[columnName])
|
|
155
|
+
jObject[columnName] = [];
|
|
156
|
+
jObject[columnName].push(error);
|
|
157
|
+
}
|
|
158
|
+
index++;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
if (this.controls[columnName].errors) {
|
|
163
|
+
let error = this.controls[columnName].errors;
|
|
164
|
+
if (onlyMessage)
|
|
165
|
+
for (let validationName in error)
|
|
166
|
+
jObject[columnName] = error[validationName].message;
|
|
167
|
+
else
|
|
168
|
+
jObject[columnName] = error;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
return jObject;
|
|
173
|
+
}
|
|
174
|
+
valueChangedSync() {
|
|
175
|
+
Object.keys(this.controls).forEach(columnName => {
|
|
176
|
+
if (!(this.controls[columnName] instanceof FormArray || this.controls[columnName] instanceof RxFormArray) && !(this.controls[columnName] instanceof FormGroup || this.controls[columnName] instanceof RxFormGroup) && !(this.entityObject[columnName] instanceof FormControl || this.entityObject[columnName] instanceof RxFormControl) && this.controls[columnName].getControlValue && ApplicationUtil.notEqualTo(this.controls[columnName].getControlValue(), this.entityObject[columnName])) {
|
|
177
|
+
this.controls[columnName].setValue(this.entityObject[columnName], { updateChanged: true });
|
|
178
|
+
}
|
|
179
|
+
else if ((this.controls[columnName] instanceof FormArray || this.controls[columnName] instanceof RxFormArray)) {
|
|
180
|
+
for (let formGroup of this.controls[columnName].controls) {
|
|
181
|
+
formGroup.valueChangedSync();
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
else if ((this.controls[columnName] instanceof RxFormGroup)) {
|
|
185
|
+
this.controls[columnName].valueChangedSync();
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
refreshDisable() {
|
|
190
|
+
Object.keys(this.controls).forEach(columnName => {
|
|
191
|
+
if (!(this.controls[columnName] instanceof FormArray || this.controls[columnName] instanceof RxFormArray) && !(this.controls[columnName] instanceof FormGroup || this.controls[columnName] instanceof RxFormGroup)) {
|
|
192
|
+
this.controls[columnName].refresh();
|
|
193
|
+
}
|
|
194
|
+
else if ((this.controls[columnName] instanceof RxFormGroup)) {
|
|
195
|
+
this.controls[columnName].refreshDisable();
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
bindErrorMessages() {
|
|
200
|
+
Object.keys(this.controls).forEach(columnName => {
|
|
201
|
+
if (!(this.controls[columnName] instanceof FormArray || this.controls[columnName] instanceof RxFormArray) && !(this.controls[columnName] instanceof FormGroup || this.controls[columnName] instanceof RxFormGroup)) {
|
|
202
|
+
this.controls[columnName].bindError();
|
|
203
|
+
}
|
|
204
|
+
else if ((this.controls[columnName] instanceof RxFormGroup)) {
|
|
205
|
+
this.controls[columnName].bindErrorMessages();
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
get submitted() {
|
|
210
|
+
return this._submitted;
|
|
211
|
+
}
|
|
212
|
+
set submitted(value) {
|
|
213
|
+
this._submitted = value;
|
|
214
|
+
Object.keys(this.controls).forEach(columnName => {
|
|
215
|
+
if (this.controls[columnName] instanceof FormArray) {
|
|
216
|
+
let formArray = this.controls[columnName];
|
|
217
|
+
for (let formGroup of formArray.controls)
|
|
218
|
+
formGroup.submitted = value;
|
|
219
|
+
}
|
|
220
|
+
else if (this.controls[columnName] instanceof FormGroup) {
|
|
221
|
+
this.controls[columnName].submitted = value;
|
|
222
|
+
}
|
|
223
|
+
else
|
|
224
|
+
this.controls[columnName].bindError();
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
get modelInstanceValue() {
|
|
228
|
+
return clone(this.entityObject);
|
|
229
|
+
}
|
|
230
|
+
get modelInstance() {
|
|
231
|
+
return this.entityObject;
|
|
232
|
+
}
|
|
233
|
+
get controlsError() {
|
|
234
|
+
return this.getErrorSummary(true);
|
|
235
|
+
}
|
|
236
|
+
toFormData(options) {
|
|
237
|
+
return this.formDataProvider.convertToFormData(this.value, options);
|
|
238
|
+
}
|
|
239
|
+
processModified(controlName, control) {
|
|
240
|
+
if (control.isModified)
|
|
241
|
+
this._modified[controlName] = control.value;
|
|
242
|
+
else
|
|
243
|
+
delete this._modified[controlName];
|
|
244
|
+
this._isModified = Object.keys(this._modified).length > 0;
|
|
245
|
+
}
|
|
246
|
+
nestedArrayIsModified() {
|
|
247
|
+
for (var controlName in this.controls) {
|
|
248
|
+
if (this.controls[controlName] instanceof RxFormArray)
|
|
249
|
+
this._isModified = this.controls[controlName].isModified;
|
|
250
|
+
if (this._isModified)
|
|
251
|
+
break;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
setBackEndErrors(errors) {
|
|
255
|
+
Object.keys(errors).forEach(controlName => {
|
|
256
|
+
if (this.controls[controlName]) {
|
|
257
|
+
if (this.controls[controlName] instanceof FormGroup)
|
|
258
|
+
this.controls[controlName].setBackEndErrors(errors[controlName]);
|
|
259
|
+
else
|
|
260
|
+
this.controls[controlName].setBackEndErrors(errors[controlName]);
|
|
261
|
+
}
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
clearBackEndErrors(errors) {
|
|
265
|
+
let clearErrors = errors ? Object.keys(errors) : Object.keys(this.controls);
|
|
266
|
+
clearErrors.forEach(controlName => {
|
|
267
|
+
if (this.controls[controlName]) {
|
|
268
|
+
if (this.controls[controlName] instanceof FormGroup)
|
|
269
|
+
errors ? this.controls[controlName].clearBackEndErrors(errors[controlName]) : this.controls[controlName].clearBackEndErrors();
|
|
270
|
+
else
|
|
271
|
+
errors ? this.controls[controlName].clearBackEndErrors(errors[controlName]) : this.controls[controlName].clearBackEndErrors();
|
|
272
|
+
}
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
nestedFormsModification() {
|
|
276
|
+
for (var controlName in this.controls) {
|
|
277
|
+
if (this.controls[controlName] instanceof RxFormGroup)
|
|
278
|
+
this.processModified(controlName, this.controls[controlName]);
|
|
279
|
+
else if (this.controls[controlName] instanceof RxFormArray) {
|
|
280
|
+
if (this.controls[controlName].isModified) {
|
|
281
|
+
let formGroups = this.controls[controlName].controls;
|
|
282
|
+
this._modified[controlName] = [];
|
|
283
|
+
for (var formGroup of formGroups) {
|
|
284
|
+
if (formGroup.isModified) {
|
|
285
|
+
if (!this._modified[controlName])
|
|
286
|
+
this._modified[controlName] = [];
|
|
287
|
+
this._modified[controlName].push(formGroup.modifiedValue);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
if (this._modified[controlName].length == 0)
|
|
291
|
+
delete this._modified[controlName];
|
|
292
|
+
}
|
|
293
|
+
else if (this._modified[controlName])
|
|
294
|
+
delete this._modified[controlName];
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicngtZm9ybS1ncm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Zvcm0tdmFsaWRhdG9ycy9zZXJ2aWNlcy9yeC1mb3JtLWdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBcUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXZELE9BQU8sRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUUzRCxNQUFNLE9BQU8sV0FBWSxTQUFRLFNBQVM7SUFPdEMsWUFBb0IsS0FBVSxFQUFVLFlBQW9DLEVBQUUsUUFFN0UsRUFBRSxlQUFxQixFQUFFLGNBQTZEO1FBQ25GLEtBQUssQ0FBQyxRQUFRLEVBQUUsZUFBZSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBSGpDLFVBQUssR0FBTCxLQUFLLENBQUs7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBd0I7UUFIcEUsY0FBUyxHQUEyQixFQUFFLENBQUM7UUFDdkMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDckMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUt0QixJQUFJLENBQUMsVUFBVSxHQUFHLEVB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QkFDakQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO2lCQUM3RCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksV0FBVyxFQUFFO2dCQUN4RCxJQUFrQixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBRSxDQUFDLFVBQVUsRUFBRTtvQkFDdEQsSUFBSSxVQUFVLEdBQWlCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFFLENBQUMsUUFBUSxDQUFDO29CQUNwRSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDakMsS0FBSyxJQUFJLFNBQVMsSUFBSSxVQUFVLEVBQUU7d0JBQzlCLElBQWtCLFNBQVUsQ0FBQyxVQUFVLEVBQUU7NEJBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQztnQ0FDNUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7NEJBQ3JDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFlLFNBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQTt5QkFDM0U7cUJBRUo7b0JBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDO3dCQUN2QyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7aUJBQzFDO3FCQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7b0JBQ2xDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUMxQztTQUNKO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBBYnN0cmFjdENvbnRyb2wsIEFzeW5jVmFsaWRhdG9yRm4gfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgUnhGb3JtQ29udHJvbCB9IGZyb20gXCIuL2Zvcm0tY29udHJvbFwiO1xyXG5pbXBvcnQgeyBjbG9uZSB9IGZyb20gJy4vZW50aXR5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSZWdleFZhbGlkYXRvciB9IGZyb20gJy4uL3V0aWwvcmVnZXgtdmFsaWRhdG9yJztcclxuaW1wb3J0IHsgQXBwbGljYXRpb25VdGlsIH0gZnJvbSAnLi4vdXRpbC9hcHAtdXRpbCc7XHJcbmltcG9ydCB7IFJ4Rm9ybUFycmF5IH0gZnJvbSAnLi9yeC1mb3JtLWFycmF5JztcclxuaW1wb3J0IHsgRm9ybURhdGFQcm92aWRlciB9IGZyb20gXCIuLi9kb21haW4vZm9ybS1kYXRhXCI7XHJcbmltcG9ydCB7IFJlc2V0Rm9ybVR5cGUgfSBmcm9tIFwiLi4vZW51bXMvcmVzZXQtdHlwZVwiO1xyXG5pbXBvcnQgeyBpc1Jlc2V0Q29udHJvbCwgZ2V0TmVzdGVkT3B0aW9ucyB9IGZyb20gJy4uL3V0aWwvcmVzZXQtZm9ybSdcclxuaW1wb3J0IHsgZGVmYXVsdENvbnRhaW5lciB9IGZyb20gJy4uL2NvcmUvZGVmYXVsdENvbnRhaW5lcidcclxuaW1wb3J0IHsgRm9ybURhdGFDb25maWcgfSBmcm9tIFwiLi4vbW9kZWxzL2ludGVyZmFjZS9mb3JtLWRhdGEtY29uZmlnXCI7XHJcbmV4cG9ydCBjbGFzcyBSeEZvcm1Hcm91cCBleHRlbmRzIEZvcm1Hcm91cCB7XHJcbiAgICBwcml2YXRlIGJhc2VPYmplY3Q6IHsgW2tleTogc3RyaW5nXTogYW55IH1cclxuICAgIHByaXZhdGUgZm9ybURhdGFQcm92aWRlcjogRm9ybURhdGFQcm92aWRlcjtcclxuICAgIHByaXZhdGUgX3N1Ym1pdHRlZDogYm9vbGVhbjtcclxuICAgIHByaXZhdGUgX21vZGlmaWVkOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XHJcbiAgICBwcml2YXRlIF9pc01vZGlmaWVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBjaGFuZ2luZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBtb2RlbDogYW55LCBwcml2YXRlIGVudGl0eU9iamVjdDogeyBba2V5OiBzdHJpbmddOiBhbnkgfSwgY29udHJvbHM6IHtcclxuICAgICAgICBba2V5OiBzdHJpbmddOiBBYnN0cmFjdENvbnRyb2w7XHJcbiAgICB9LCB2YWxpZGF0b3JPck9wdHM/OiBhbnksIGFzeW5jVmFsaWRhdG9yPzogQXN5bmNWYWxpZGF0b3JGbiB8IEFzeW5jVmFsaWRhdG9yRm5bXSB8IG51bGwpIHtcclxuICAgICAgICBzdXBlcihjb250cm9scywgdmFsaWRhdG9yT3JPcHRzLCBhc3luY1ZhbGlkYXRvcik7XHJcbiAgICAgICAgdGhpcy5iYXNlT2JqZWN0ID0ge31cclxuICAgICAgICBmb3IgKHZhciBjb2x1bW4gaW4gdGhpcy5lbnRpdHlPYmplY3QpXHJcbiAgICAgICAgICAgIHRoaXMuYmFzZU9iamVjdFtjb2x1bW5dID0gdGhpcy5lbnRpdHlPYmplY3RbY29sdW1uXVxyXG4gICAgICAgIHRoaXMuZm9ybURhdGFQcm92aWRlciA9IG5ldyBGb3JtRGF0YVByb3ZpZGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYmluZFByaW1hcnlLZXkobW9kZWxJbnN0YW5jZTogYW55LCBqT2JqZWN0OiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSB7XHJcbiAgICAgICAgbGV0IGluc3RhbmNlQ29udGFpbmVyID0gZGVmYXVsdENvbnRhaW5lci5nZXQobW9kZWxJbnN0YW5jZS5jb25zdHJ1Y3Rvcik7ICAgIFxyXG4gICAgICAgIGlmIChpbnN0YW5jZUNvbnRhaW5lcilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGxldCBwcmltYXJ5S2V5UHJvcCA9IGluc3RhbmNlQ29udGFpbmVyLnByb3BlcnRpZXMuZmlsdGVyKHggPT4geC5pc1ByaW1hcnlLZXkpWzBdO1xyXG4gICAgICAgICAgICBpZiAocHJpbWFyeUtleVByb3AgJiYgdGhpcy5tb2RlbEluc3RhbmNlW3ByaW1hcnlLZXlQcm9wLm5hbWVdKVxyXG4gICAgICAgICAgICAgICAgak9iamVjdFtwcmltYXJ5S2V5UHJvcC5uYW1lXSA9IHRoaXMubW9kZWxJbnN0YW5jZVtwcmltYXJ5S2V5UHJvcC5uYW1lXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IG1vZGlmaWVkVmFsdWUoKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XHJcbiAgICAgICAgbGV0IGpPYmplY3QgPSB7fTtcclxuICAgICAgICBpZiAoT2JqZWN0LmtleXModGhpcy5fbW9kaWZpZWQpLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5iaW5kUHJpbWFyeUtleSh0aGlzLm1vZGVsSW5zdGFuY2UsIGpPYmplY3QpXHJcbiAgICAgICAgICAgIGZvciAodmFyIGNvbHVtbk5hbWUgaW4gdGhpcy5fbW9kaWZpZWQpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbnRyb2xzW2NvbHVtbk5hbWVdIGluc3RhbmNlb2YgUnhGb3JtR3JvdXApXHJcbiAgICAgICAgICAgICAgICAgICAgak9iamVjdFtjb2x1bW5OYW1lXSA9ICg8UnhGb3JtR3JvdXA+dGhpcy5jb250cm9sc1tjb2x1bW5OYW1lXSkubW9kaWZpZWRWYWx1ZTtcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuY29udHJvbHNbY29sdW1uTmFtZV0gaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZm9ybUFycmF5ID0gdGhpcy5jb250cm9sc1tjb2x1bW5OYW1lXSBhcyBGb3JtQXJyYXk7XHJcbiAgICAgICAgICAgICAgICAgICAgak9iamVjdFtjb2x1bW5OYW1lXSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fbW9kaWZpZWRbY29sdW1uTmFtZV0ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1vZGlmaWVkVmFsdWUgPSAoPFJ4Rm9ybUdyb3VwPmZvcm1BcnJheS5jb250cm9sc1tpXSkubW9kaWZpZWRWYWx1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LmtleXMobW9kaWZpZWRWYWx1ZSkubGVuZ3RoID4gMClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpPYmplY3RbY29sdW1uTmFtZV0ucHVzaChtb2RpZmllZFZhbHVlKVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAoak9iamVjdFtjb2x1bW5OYW1lXS5sZW5ndGggPT0gMClcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGpPYmplY3RbY29sdW1uTmFtZV07XHJcbiAgICAgICAgICAgICAgICB9IGVsc2VcclxuICAgICAgICAgICAgICAgICAgICBqT2JqZWN0W2NvbHVtbk5hbWVdID0gdGhpcy5fbW9kaWZpZWRbY29sdW1uTmFtZV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIGpPYmplY3Q7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLl9tb2RpZmllZDtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaXNNb2RpZmllZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5faXNNb2RpZmllZDtcclxuICAgIH1cclxuXHJcbiAgICBwYXRjaChjb250cm9sTmFtZT86IHN0cmluZykge1xyXG4gICAgICAgIGlmIChjb250cm9sTmFtZSkge1xyXG4gICAgICAgICAgICBsZXQgY29udHJvbCA9IDxSeEZvcm1Db250cm9sPnRoaXMuY29udHJvbHNbY29udHJvbE5hbWVdO1xyXG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NNb2RpZmllZChjb250cm9sTmFtZSwgY29udHJvbCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5uZXN0ZWRGb3Jtc01vZGlmaWNhdGlvbigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9pc01vZGlmaWVkID0gT2JqZWN0LmtleXModGhpcy5fbW9kaWZpZWQpLmxlbmd0aCA+IDA7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9pc01vZGlmaWVkKVxyXG4gICAgICAgICAgICB0aGlzLm5lc3RlZEFycmF5SXNNb2RpZmllZCgpO1xyXG4gICAgICAgIGlmICh0aGlzLnBhcmVudCAmJiAoPFJ4Rm9ybUdyb3VwPnRoaXMucGFyZW50KS5wYXRjaClcclxuICAgICAgICAgICAgKDxSeEZvcm1Hcm91cD50aGlzLnBhcmVudCkucGF0Y2goKTtcclxuICAgIH1cclxuXHJcbiAgICBpc0RpcnR5KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGxldCBpc0RpcnR5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAgICAgZm9yIChsZXQgbmFtZSBpbiB0aGlzLnZhbHVlKSB7XHJcbiAgICAgICAgICAgIGxldCBjdXJyZW50VmFsdWUgPSB0aGlzLm1vZGVsSW5zdGFuY2VbbmFtZV07XHJcbiAgICAgICAgICAgIGlmICghKHRoaXMuY29udHJvbHNbbmFtZV0gaW5zdGFuY2VvZiBGb3JtR3JvdXAgfHwgdGhpcy5jb250cm9sc1tuYW1lXSBpbnN0YW5jZW9mIEZvcm1BcnJheSkpIHtcclxuICAgICAgICAgICAgICAgIGlzRGlydHkgPSBBcHBsaWNhdGlvblV0aWwubm90RXF1YWxUbyh0aGlzLmJhc2VPYmplY3RbbmFtZV0sIGN1cnJlbnRWYWx1ZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jb250cm9sc1tuYW1lXSBpbnN0YW5jZW9mIFJ4Rm9ybUdyb3VwKVxyXG4gICAgICAgICAgICAgICAgaXNEaXJ0eSA9ICg8UnhGb3JtR3JvdXA+dGhpcy5jb250cm9sc1tuYW1lXSkuaXNEaXJ0eSgpO1xyXG4gICAgICAgICAgICBlbHNlIGlmICh0aGlzLmNvbnRyb2xzW25hbWVdIGluc3RhbmNlb2YgRm9ybUFycmF5KSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBmb3JtR3JvdXAgb2YgKDxGb3JtQXJyYXk+dGhpcy5jb250cm9sc1tuYW1lXSkuY29udHJvbHMpIHtcclxuICAgICAgICAgICAgICAgICAgICBpc0RpcnR5ID0gKDxSeEZvcm1Hcm91cD5mb3JtR3JvdXApLmlzRGlydHkoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoaXNEaXJ0eSlcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gaXNEaXJ0eTtcclxuICAgIH07XHJcblxyXG4gICAgcmVzZXRGb3JtKG9wdGlvbnM/OiB7XHJcbiAgICAgICAgcmVzZXRUeXBlPzogUmVzZXRGb3JtVHlwZSxcclxuICAgICAgICB3aXRoPzogc3RyaW5nW10sXHJcbiAgICAgICAgdmFsdWU/OiB7IFtrZXk6IHN0cmluZ106YW55fVxyXG4gICAgfSk6IHZvaWQge1xyXG4gICAgICAgIGZvciAobGV0IG5hbWUgaW4gdGhpcy5jb250cm9scykge1xyXG4gICAgICAgICAgICBpZiAoaXNSZXNldENvbnRyb2wobmFtZSwgdGhpcy5jb250cm9sc1tuYW1lXSwgb3B0aW9ucykpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbnRyb2xzW25hbWVdIGluc3RhbmNlb2YgRm9ybUdyb3VwKVxyXG4gICAgICAgICAgICAgICAgICAgICg8UnhGb3JtR3JvdXA+dGhpcy5jb250cm9sc1tuYW1lXSkucmVzZXRGb3JtKGdldE5lc3RlZE9wdGlvbnMobmFtZSxvcHRpb25zKSk7XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLmNvbnRyb2xzW25hbWVdIGluc3RhbmNlb2YgRm9ybUFycmF5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgKDxSeEZvcm1BcnJheT50aGlzLmNvbnRyb2xzW25hbWVdKS5yZXNldEZvcm0ob3B0aW9ucyAmJiBvcHRpb25zLnZhbHVlID8gb3B0aW9ucy52YWx1ZVtuYW1lXSA6IHVuZGVmaW5lZCk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMudmFsdWUgJiYgUmVnZXhWYWxpZGF0b3IuaXNOb3RCbGFuayhvcHRpb25zLnZhbHVlW25hbWVdKSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cm9sc1tuYW1lXS5yZXNldChvcHRpb25zLnZhbHVlW25hbWVdKTtcclxuICAgICAgICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbHNbbmFtZV0ucmVzZXQoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjb21taXQoKSB7XHJcbiAgICAgICAgZm9yIChsZXQgbmFtZSBpbiB0aGlzLmNvbnRyb2xzKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbnRyb2xzW25hbWVdIGluc3RhbmNlb2YgRm9ybUdyb3VwKVxyXG4gICAgICAgICAgICAgICAgKDxSeEZvcm1Hcm91cD50aGlzLmNvbnRyb2xzW25hbWVdKS5jb21taXQoKTtcclxuICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5jb250cm9sc1tuYW1lXSBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xyXG4gICAgICAgICAgICAgICAgKDxSeEZvcm1BcnJheT50aGlzLmNvbnRyb2xzW25hbWVdKS5jb21taXQoKTtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgKDxSeEZvcm1Db250cm9sPnRoaXMuY29udHJvbHNbbmFtZV0pLmNvbW1pdCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHBhdGNoTW9kZWxWYWx1ZSh2YWx1ZToge1xyXG4gICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcclxuICAgIH0sIG9wdGlvbnM/OiB7XHJcbiAgICAgICAgb25seVNlbGY/OiBib29sZWFuO1xyXG4gICAgICAgIGVtaXRFdmVudD86IGJvb2xlYW47XHJcbiAgICB9KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IG5hbWUgaW4gdGhpcy5jb250cm9scykge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY29udHJvbHNbbmFtZV0gaW5zdGFuY2VvZiBSeEZvcm1Hcm91cCAmJiB2YWx1ZVtuYW1lXSlcclxuICAgICAgICAgICAgICAgICAgICAoPFJ4Rm9ybUdyb3VwPnRoaXMuY29udHJvbHNbbmFtZV0pLnBhdGNoTW9kZWxWYWx1ZSh2YWx1ZVtuYW1lXSwgb3B0aW9ucyk7XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLmNvbnRyb2xzW25hbWVdIGluc3RhbmNlb2YgRm9ybUFycmF5ICYmIEFycmF5LmlzQXJyYXkodmFsdWVbbmFtZV0pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGluZGV4ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBmb3JtR3JvdXAgb2YgKDxGb3JtQXJyYXk+dGhpcy5jb250cm9sc1tuYW1lXSkuY29udHJvbHMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlW25hbWVdW2luZGV4XSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICg8UnhGb3JtR3JvdXA+Zm9ybUdyb3VwKS5wYXRjaE1vZGVsVmFsdWUodmFsdWVbbmFtZV1baW5kZXhdLCBvcHRpb25zKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSBpbmRleCArIDE7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlW25hbWVdICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbHNbbmFtZV0ucGF0Y2hWYWx1ZSh2YWx1ZVtuYW1lXSwgb3B0aW9ucyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGdldEVycm9yU3VtbWFyeShvbmx5TWVzc2FnZTogYm9vbGVhbik6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xyXG4gICAgICAgIGxldCBqT2JqZWN0OiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XHJcbiAgICAgICAgT2JqZWN0LmtleXModGhpcy5jb250cm9scykuZm9yRWFjaChjb2x1bW5OYW1lID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuY29udHJvbHNbY29sdW1uTmFtZV0gaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcclxuICAgICAgICAgICAgICAgIGxldCBlcnJvciA9ICg8UnhGb3JtR3JvdXA+dGhpcy5jb250cm9sc1tjb2x1bW5OYW1lXSkuZ2V0RXJyb3JTdW1tYXJ5KGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhlcnJvcikubGVuZ3RoID4gMClcclxuICAgICAgICAgICAgICAgICAgICBqT2JqZWN0W2NvbHVtbk5hbWVdID0gZXJyb3I7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5jb250cm9sc1tjb2x1bW5OYW1lXSBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xyXG4gICAgICAgICAgICAgICAgbGV0IGluZGV4ID0gMDtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGZvcm1Hcm91cCBvZiAoPEZvcm1BcnJheT50aGlzLmNvbnRyb2xzW2NvbHVtbk5hbWVdKS5jb250cm9scykge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBlcnJvciA9ICg8UnhGb3JtR3JvdXA+Zm9ybUdyb3VwKS5nZXRFcnJvclN1bW1hcnkoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhlcnJvcikubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvci5pbmRleCA9IGluZGV4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWpPYmplY3RbY29sdW1uTmFtZV0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBqT2JqZWN0W2NvbHVtbk5hbWVdID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGpPYmplY3RbY29sdW1uTmFtZV0ucHVzaChlcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGluZGV4Kys7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jb250cm9sc1tjb2x1bW5OYW1lXS5lcnJvcnMpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZXJyb3IgPSB0aGlzLmNvbnRyb2xzW2NvbHVtbk5hbWVdLmVycm9ycztcclxuICAgICAgICAgICAgICAgICAgICBpZiAob25seU1lc3NhZ2UpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IHZhbGlkYXRpb25OYW1lIGluIGVycm9yKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgak9iamVjdFtjb2x1bW5OYW1lXSA9IGVycm9yW3ZhbGlkYXRpb25OYW1lXS5tZXNzYWdlO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgak9iamVjdFtjb2x1bW5OYW1lXSA9IGVycm9yO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgICByZXR1cm4gak9iamVjdDtcclxuICAgIH1cclxuXHJcbiAgICB2YWx1ZUNoYW5nZWRTeW5jKCkge1xyXG4gICAgICAgIE9iamVjdC5rZXlzKHRoaXMuY29udHJvbHMpLmZvckVhY2goY29sdW1uTmFtZSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghKHRoaXMuY29udHJvbHNbY29sdW1uTmFtZV0gaW5zdGFuY2VvZiBGb3JtQXJyYXkgfHwgdGhpcy5jb250cm9sc1tjb2x1bW5OYW1lXSBpbnN0YW5jZW9mIFJ4Rm9ybUFycmF5KSAmJiAhKHRoaXMuY29udHJvbHNbY29sdW1uTmFtZV0gaW5zdGFuY2VvZiBGb3JtR3JvdXAgfHwgdGhpcy5jb250cm9sc1tjb2x1bW5OYW1lXSBpbnN0YW5jZW9mIFJ4Rm9ybUdyb3VwKSAmJiAhKHRoaXMuZW50aXR5T2JqZWN0W2NvbHVtbk5hbWVdIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wgfHwgdGhpcy5lbnRpdHlPYmplY3RbY29sdW1uTmFtZV0gaW5zdGFuY2VvZiBSeEZvcm1Db250cm9sKSAmJiAoPFJ4Rm9ybUNvbnRyb2w+dGhpcy5jb250cm9sc1tjb2x1bW5OYW1lXSkuZ2V0Q29udHJvbFZhbHVlICYmIEFwcGxpY2F0aW9uVXRpbC5ub3RFcXVhbFRvKCg8UnhGb3JtQ29udHJvbD50aGlzLmNvbnRyb2xzW2NvbHVtbk5hbWVdKS5nZXRDb250cm9sVmFsdWUoKSwgdGhpcy5lbnRpdHlPYmplY3RbY29sdW1uTmFtZV0pKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2xzW2NvbHVtbk5hbWVdLnNldFZhbHVlKHRoaXMuZW50aXR5T2JqZWN0W2NvbHVtbk5hbWVdLCB7IHVwZGF0ZUNoYW5nZWQ6IHRydWUgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoKHRoaXMuY29udHJvbHNbY29sdW1uTmFtZV0gaW5zdGFuY2VvZiBGb3JtQXJyYXkgfHwgdGhpcy5jb250cm9sc1tjb2x1bW5OYW1lXSBpbnN0YW5jZW9mIFJ4Rm9ybUFycmF5KSkge1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgZm9ybUdyb3VwIG9mICg8Rm9ybUFycmF5PnRoaXMuY29udHJvbHNbY29sdW1uTmFtZV0pLmNvbnRyb2xzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgKDxSeEZvcm1Hcm91cD5mb3JtR3JvdXApLnZhbHVlQ2hhbmdlZFN5bmMoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIGlmICgodGhpcy5jb250cm9sc1tjb2x1bW5OYW1lXSBpbnN0YW5jZW9mIFJ4Rm9ybUdyb3VwKSkge1xyXG4gICAgICAgICAgICAgICAgKDxSeEZvcm1Hcm91cD50aGlzLmNvbnRyb2xzW2NvbHVtbk5hbWVdKS52YWx1ZUNoYW5nZWRTeW5jKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIHJlZnJlc2hEaXNhYmxlKCkge1xyXG4gICAgICAgIE9iamVjdC5rZXlzKHRoaXMuY29udHJvbHMpLmZvckVhY2goY29sdW1uTmFtZSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghKHRoaXMuY29udHJvbHNbY29sdW1uTmFtZV0gaW5zdGFuY2VvZiBGb3JtQXJyYXkgfHwgdGhpcy5jb250cm9sc1tjb2x1bW5OYW1lXSBpbnN0YW5jZW9mIFJ4Rm9ybUFycmF5KSAmJiAhKHRoaXMuY29udHJvbHNbY29sdW1uTmFtZV0gaW5zdGFuY2VvZiBGb3JtR3JvdXAgfHwgdGhpcy5jb250cm9sc1tjb2x1bW5OYW1lXSBpbnN0YW5jZW9mIFJ4Rm9ybUdyb3VwKSkge1xyXG4gICAgICAgICAgICAgICAgKDxSeEZvcm1Db250cm9sPnRoaXMuY29udHJvbHNbY29sdW1uTmFtZV0pLnJlZnJlc2goKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICgodGhpcy5jb250cm9sc1tjb2x1bW5OYW1lXSBpbnN0YW5jZW9mIFJ4Rm9ybUdyb3VwKSkge1xyXG4gICAgICAgICAgICAgICAgKDxSeEZvcm1Hcm91cD50aGlzLmNvbnRyb2xzW2NvbHVtbk5hbWVdKS5yZWZyZXNoRGlzYWJsZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuXHJcbiAgICB9XHJcblxyXG4gICAgYmluZEVycm9yTWVzc2FnZXMoKSB7XHJcbiAgICAgICAgT2JqZWN0LmtleXModGhpcy5jb250cm9scykuZm9yRWFjaChjb2x1bW5OYW1lID0+IHtcclxuICAgICAgICAgICAgaWYgKCEodGhpcy5jb250cm9sc1tjb2x1bW5OYW1lXSBpbnN0YW5jZW9mIEZvcm1BcnJheSB8fCB0aGlzLmNvbnRyb2xzW2NvbHVtbk5hbWVdIGluc3RhbmNlb2YgUnhGb3JtQXJyYXkpICYmICEodGhpcy5jb250cm9sc1tjb2x1bW5OYW1lXSBpbnN0YW5jZW9mIEZvcm1Hcm91cCB8fCB0aGlzLmNvbnRyb2xzW2NvbHVtbk5hbWVdIGluc3RhbmNlb2YgUnhGb3JtR3JvdXApKSB7XHJcbiAgICAgICAgICAgICAgICAoPFJ4Rm9ybUNvbnRyb2w+dGhpcy5jb250cm9sc1tjb2x1bW5OYW1lXSkuYmluZEVycm9yKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoKHRoaXMuY29udHJvbHNbY29sdW1uTmFtZV0gaW5zdGFuY2VvZiBSeEZvcm1Hcm91cCkpIHtcclxuICAgICAgICAgICAgICAgICg8UnhGb3JtR3JvdXA+dGhpcy5jb250cm9sc1tjb2x1bW5OYW1lXSkuYmluZEVycm9yTWVzc2FnZXMoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHN1Ym1pdHRlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc3VibWl0dGVkO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBzdWJtaXR0ZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9zdWJtaXR0ZWQgPSB2YWx1ZTtcclxuICAgICAgICBPYmplY3Qua2V5cyh0aGlzLmNvbnRyb2xzKS5mb3JFYWNoKGNvbHVtbk5hbWUgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5jb250cm9sc1tjb2x1bW5OYW1lXSBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xyXG4gICAgICAgICAgICAgICAgbGV0IGZvcm1BcnJheSA9IHRoaXMuY29udHJvbHNbY29sdW1uTmFtZV0gYXMgRm9ybUFycmF5O1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgZm9ybUdyb3VwIG9mIGZvcm1BcnJheS5jb250cm9scylcclxuICAgICAgICAgICAgICAgICAgICAoPFJ4Rm9ybUdyb3VwPmZvcm1Hcm91cCkuc3VibWl0dGVkID0gdmFsdWU7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jb250cm9sc1tjb2x1bW5OYW1lXSBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xyXG4gICAgICAgICAgICAgICAgKDxSeEZvcm1Hcm91cD50aGlzLmNvbnRyb2xzW2NvbHVtbk5hbWVdKS5zdWJtaXR0ZWQgPSB2YWx1ZTtcclxuICAgICAgICAgICAgfSBlbHNlXHJcbiAgICAgICAgICAgICAgICAoPFJ4Rm9ybUNvbnRyb2w+dGhpcy5jb250cm9sc1tjb2x1bW5OYW1lXSkuYmluZEVycm9yKCk7XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBnZXQgbW9kZWxJbnN0YW5jZVZhbHVlKCkge1xyXG4gICAgICAgIHJldHVybiBjbG9uZSh0aGlzLmVudGl0eU9iamVjdCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IG1vZGVsSW5zdGFuY2UoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW50aXR5T2JqZWN0O1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBjb250cm9sc0Vycm9yKCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEVycm9yU3VtbWFyeSh0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICB0b0Zvcm1EYXRhKG9wdGlvbnM/OiBGb3JtRGF0YUNvbmZpZyk6IEZvcm1EYXRhIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtRGF0YVByb3ZpZGVyLmNvbnZlcnRUb0Zvcm1EYXRhKHRoaXMudmFsdWUsIG9wdGlvbnMpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcHJvY2Vzc01vZGlmaWVkKGNvbnRyb2xOYW1lOnN0cmluZyxjb250cm9sOiBhbnkpIHtcclxuICAgICAgICBpZiAoY29udHJvbC5pc01vZGlmaWVkKVxyXG4gICAgICAgICAgICB0aGlzLl9tb2RpZmllZFtjb250cm9sTmFtZV0gPSBjb250cm9sLnZhbHVlO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgZGVsZXRlIHRoaXMuX21vZGlmaWVkW2NvbnRyb2xOYW1lXTtcclxuICAgICAgICB0aGlzLl9pc01vZGlmaWVkID0gT2JqZWN0LmtleXModGhpcy5fbW9kaWZpZWQpLmxlbmd0aCA+IDA7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBuZXN0ZWRBcnJheUlzTW9kaWZpZWQoKSB7XHJcbiAgICAgICAgZm9yICh2YXIgY29udHJvbE5hbWUgaW4gdGhpcy5jb250cm9scykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5jb250cm9sc1tjb250cm9sTmFtZV0gaW5zdGFuY2VvZiBSeEZvcm1BcnJheSlcclxuICAgICAgICAgICAgICAgIHRoaXMuX2lzTW9kaWZpZWQgPSAoPFJ4Rm9ybUFycmF5PnRoaXMuY29udHJvbHNbY29udHJvbE5hbWVdKS5pc01vZGlmaWVkO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5faXNNb2RpZmllZClcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXRCYWNrRW5kRXJyb3JzKGVycm9yczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSkge1xyXG4gICAgICAgIE9iamVjdC5rZXlzKGVycm9ycykuZm9yRWFjaChjb250cm9sTmFtZSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbnRyb2xzW2NvbnRyb2xOYW1lXSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY29udHJvbHNbY29udHJvbE5hbWVdIGluc3RhbmNlb2YgRm9ybUdyb3VwKVxyXG4gICAgICAgICAgICAgICAgICAgICg8UnhGb3JtR3JvdXA+dGhpcy5jb250cm9sc1tjb250cm9sTmFtZV0pLnNldEJhY2tFbmRFcnJvcnMoZXJyb3JzW2NvbnRyb2xOYW1lXSlcclxuICAgICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgICAgICAoPFJ4Rm9ybUNvbnRyb2w+dGhpcy5jb250cm9sc1tjb250cm9sTmFtZV0pLnNldEJhY2tFbmRFcnJvcnMoZXJyb3JzW2NvbnRyb2xOYW1lXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgY2xlYXJCYWNrRW5kRXJyb3JzKGVycm9ycz86IHsgW2tleTogc3RyaW5nXTogYW55IH0pIHtcclxuICAgICAgICBsZXQgY2xlYXJFcnJvcnMgPSBlcnJvcnMgPyBPYmplY3Qua2V5cyhlcnJvcnMpIDogT2JqZWN0LmtleXModGhpcy5jb250cm9scyk7XHJcbiAgICAgICAgY2xlYXJFcnJvcnMuZm9yRWFjaChjb250cm9sTmFtZSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbnRyb2xzW2NvbnRyb2xOYW1lXSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY29udHJvbHNbY29udHJvbE5hbWVdIGluc3RhbmNlb2YgRm9ybUdyb3VwKVxyXG4gICAgICAgICAgICAgICAgICAgIGVycm9ycyA/ICg8UnhGb3JtR3JvdXA+dGhpcy5jb250cm9sc1tjb250cm9sTmFtZV0pLmNsZWFyQmFja0VuZEVycm9ycyhlcnJvcnNbY29udHJvbE5hbWVdKSA6ICg8UnhGb3JtR3JvdXA+dGhpcy5jb250cm9sc1tjb250cm9sTmFtZV0pLmNsZWFyQmFja0VuZEVycm9ycygpXHJcbiAgICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JzID8gKDxSeEZvcm1Db250cm9sPnRoaXMuY29udHJvbHNbY29udHJvbE5hbWVdKS5jbGVhckJhY2tFbmRFcnJvcnMoZXJyb3JzW2NvbnRyb2xOYW1lXSkgOiAoPFJ4Rm9ybUdyb3VwPnRoaXMuY29udHJvbHNbY29udHJvbE5hbWVdKS5jbGVhckJhY2tFbmRFcnJvcnMoKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIG5lc3RlZEZvcm1zTW9kaWZpY2F0aW9uKCkge1xyXG4gICAgICAgIGZvciAodmFyIGNvbnRyb2xOYW1lIGluIHRoaXMuY29udHJvbHMpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuY29udHJvbHNbY29udHJvbE5hbWVdIGluc3RhbmNlb2YgUnhGb3JtR3JvdXApIFxyXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzTW9kaWZpZWQoY29udHJvbE5hbWUsIHRoaXMuY29udHJvbHNbY29udHJvbE5hbWVdKTtcclxuICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5jb250cm9sc1tjb250cm9sTmFtZV0gaW5zdGFuY2VvZiBSeEZvcm1BcnJheSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCg8UnhGb3JtQXJyYXk+dGhpcy5jb250cm9sc1tjb250cm9sTmFtZV0pLmlzTW9kaWZpZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZm9ybUdyb3VwcyA9ICg8UnhGb3JtQXJyYXk+dGhpcy5jb250cm9sc1tjb250cm9sTmFtZV0pLmNvbnRyb2xzO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX21vZGlmaWVkW2NvbnRyb2xOYW1lXSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGZvcm1Hcm91cCBvZiBmb3JtR3JvdXBzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoPFJ4Rm9ybUdyb3VwPmZvcm1Hcm91cCkuaXNNb2RpZmllZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9tb2RpZmllZFtjb250cm9sTmFtZV0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbW9kaWZpZWRbY29udHJvbE5hbWVdID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9tb2RpZmllZFtjb250cm9sTmFtZV0ucHVzaCgoPFJ4Rm9ybUdyb3VwPmZvcm1Hcm91cCkubW9kaWZpZWRWYWx1ZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX21vZGlmaWVkW2NvbnRyb2xOYW1lXS5sZW5ndGggPT0gMClcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX21vZGlmaWVkW2NvbnRyb2xOYW1lXTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5fbW9kaWZpZWRbY29udHJvbE5hbWVdKVxyXG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9tb2RpZmllZFtjb250cm9sTmFtZV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { FormBuilder } from "@angular/forms";
|
|
2
|
+
import { RxFormBuilder } from "./rx-form-builder";
|
|
3
|
+
import { FUNCTION_STRING } from "../const/app.const";
|
|
4
|
+
import { Injectable } from "@angular/core";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class TypedFormBuilder {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.formBuilder = new FormBuilder();
|
|
9
|
+
this.rxFormBuilder = new RxFormBuilder();
|
|
10
|
+
}
|
|
11
|
+
group(controlsConfig, options) {
|
|
12
|
+
let paramOptions = options || {};
|
|
13
|
+
if (typeof controlsConfig == FUNCTION_STRING)
|
|
14
|
+
return !(paramOptions && paramOptions.isInstance) ? this.rxFormBuilder.formGroup(controlsConfig, paramOptions.data, paramOptions.config) : this.rxFormBuilder.formGroup(controlsConfig, paramOptions.data, paramOptions.config).modelInstance;
|
|
15
|
+
return this.formBuilder.group(controlsConfig, options);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/** @nocollapse */ /** @nocollapse */ TypedFormBuilder.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: TypedFormBuilder, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
19
|
+
/** @nocollapse */ /** @nocollapse */ TypedFormBuilder.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: TypedFormBuilder });
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: TypedFormBuilder, decorators: [{
|
|
21
|
+
type: Injectable
|
|
22
|
+
}], ctorParameters: function () { return []; } });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWQtZm9ybS1idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvZm9ybS12YWxpZGF0b3JzL3NlcnZpY2VzL3R5cGVkLWZvcm0tYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFxQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFJcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFM0MsTUFBTSxPQUFPLGdCQUFnQjtJQUd6QjtRQUNJLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVELEtBQUssQ0FBSSxjQUVSLEVBQUUsT0FFSztRQUNKLElBQUksWUFBWSxHQUFZLE9BQU8sSUFBUyxFQUFFLENBQUM7UUFDL0MsSUFBSSxPQUFPLGNBQWMsSUFBSSxlQUFlO1lBQ3hDLE9BQU8sQ0FBQyxDQUFDLFlBQVksSUFBSSxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRSxZQUFZLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQWtCLENBQUMsQ0FBQyxDQUFlLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRSxZQUFZLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUUsQ0FBQyxhQUFrQixDQUFDO1FBQ3ZSLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFELENBQUM7O21KQWpCUSxnQkFBZ0I7dUpBQWhCLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgQWJzdHJhY3RDb250cm9sT3B0aW9ucyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBSeEZvcm1CdWlsZGVyIH0gZnJvbSBcIi4vcngtZm9ybS1idWlsZGVyXCI7XHJcbmltcG9ydCB7IEZVTkNUSU9OX1NUUklORyB9IGZyb20gXCIuLi9jb25zdC9hcHAuY29uc3RcIlxyXG5pbXBvcnQgeyBPcHRpb25zIH0gZnJvbSBcIi4uL21vZGVscy9pbnRlcmZhY2Uvb3B0aW9uc1wiXHJcbmltcG9ydCB7IFJ4Rm9ybUdyb3VwIH0gZnJvbSBcIi4vcngtZm9ybS1ncm91cFwiO1xyXG5pbXBvcnQgeyBJRm9ybUdyb3VwIH0gZnJvbSBcIi4uL21vZGVscy9pbnRlcmZhY2UvaS1mb3JtLWdyb3VwXCI7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBUeXBlZEZvcm1CdWlsZGVyIHtcclxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyO1xyXG4gICAgcHJpdmF0ZSByeEZvcm1CdWlsZGVyOiBSeEZvcm1CdWlsZGVyO1xyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtQnVpbGRlciA9IG5ldyBGb3JtQnVpbGRlcigpO1xyXG4gICAgICAgIHRoaXMucnhGb3JtQnVpbGRlciA9IG5ldyBSeEZvcm1CdWlsZGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXA8VD4oY29udHJvbHNDb25maWc6IHtcclxuICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbiAgICB9LCBvcHRpb25zPzogQWJzdHJhY3RDb250cm9sT3B0aW9ucyB8IHtcclxuICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbiAgICB9IHwgbnVsbCk6IEZvcm1Hcm91cCB8IFQge1xyXG4gICAgICAgIGxldCBwYXJhbU9wdGlvbnMgPSA8T3B0aW9ucz5vcHRpb25zIHx8IDxhbnk+e307XHJcbiAgICAgICAgaWYgKHR5cGVvZiBjb250cm9sc0NvbmZpZyA9PSBGVU5DVElPTl9TVFJJTkcpXHJcbiAgICAgICAgICAgIHJldHVybiAhKHBhcmFtT3B0aW9ucyAmJiBwYXJhbU9wdGlvbnMuaXNJbnN0YW5jZSkgPyB0aGlzLnJ4Rm9ybUJ1aWxkZXIuZm9ybUdyb3VwKGNvbnRyb2xzQ29uZmlnLCBwYXJhbU9wdGlvbnMuZGF0YSwgcGFyYW1PcHRpb25zLmNvbmZpZykgYXMgSUZvcm1Hcm91cDxUPiA6ICg8UnhGb3JtR3JvdXA+dGhpcy5yeEZvcm1CdWlsZGVyLmZvcm1Hcm91cChjb250cm9sc0NvbmZpZywgcGFyYW1PcHRpb25zLmRhdGEsIHBhcmFtT3B0aW9ucy5jb25maWcpKS5tb2RlbEluc3RhbmNlIGFzIFQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoY29udHJvbHNDb25maWcsb3B0aW9ucyk7XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export const alphabet = {
|
|
2
|
+
'danish': /^[A-ZÆØÅ]+$/,
|
|
3
|
+
'french': /^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/,
|
|
4
|
+
'german': /^[A-ZÄÖÜß]+$/,
|
|
5
|
+
'spanish': /^[a-zñáéíóúü]+$/i,
|
|
6
|
+
'russian': /^[А-ЯЁ]+$/,
|
|
7
|
+
};
|
|
8
|
+
export const alphaWithWhitespace = {
|
|
9
|
+
'danish': /^[A-ZÆØÅ\s]+$/,
|
|
10
|
+
'french': /^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ\s]+$/,
|
|
11
|
+
'german': /^[A-ZÄÖÜß\s]+$/,
|
|
12
|
+
'spanish': /^[a-zñáéíóúü\s]+$/i,
|
|
13
|
+
'russian': /^[А-ЯЁ\s]+$/,
|
|
14
|
+
};
|
|
15
|
+
export const alphanumeric = {
|
|
16
|
+
'danish': /^[0-9A-ZÆØÅ]+$/,
|
|
17
|
+
'french': /^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/,
|
|
18
|
+
'german': /^[0-9A-ZÄÖÜß]+$/,
|
|
19
|
+
'spanish': /^[0-9a-zñáéíóúü]+$/i,
|
|
20
|
+
'russian': /^[0-9А-ЯЁ]+$/,
|
|
21
|
+
};
|
|
22
|
+
export const alphanumericWithWitespace = {
|
|
23
|
+
'danish': /^[0-9A-ZÆØÅ]+$/,
|
|
24
|
+
'french': /^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/,
|
|
25
|
+
'german': /^[0-9A-ZÄÖÜß]+$/,
|
|
26
|
+
'spanish': /^[0-9a-zñáéíóúü\s]+$/i,
|
|
27
|
+
'russian': /^[0-9А-ЯЁ]+$/,
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxwaGFiZXQtcmVnZXgubG9jYWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvZm9ybS12YWxpZGF0b3JzL3V0aWwvYWxwaGFiZXQtcmVnZXgubG9jYWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRztJQUNwQixRQUFRLEVBQUUsYUFBYTtJQUN2QixRQUFRLEVBQUUsMEJBQTBCO0lBQ3BDLFFBQVEsRUFBRSxjQUFjO0lBQ3hCLFNBQVMsRUFBRSxrQkFBa0I7SUFDN0IsU0FBUyxFQUFFLFdBQVc7Q0FFekIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHO0lBQy9CLFFBQVEsRUFBRSxlQUFlO0lBQ3pCLFFBQVEsRUFBRSw0QkFBNEI7SUFDdEMsUUFBUSxFQUFFLGdCQUFnQjtJQUMxQixTQUFTLEVBQUUsb0JBQW9CO0lBQy9CLFNBQVMsRUFBRSxhQUFhO0NBRTNCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUc7SUFDeEIsUUFBUSxFQUFFLGdCQUFnQjtJQUMxQixRQUFRLEVBQUUsNkJBQTZCO0lBQ3ZDLFFBQVEsRUFBRSxpQkFBaUI7SUFDM0IsU0FBUyxFQUFFLHFCQUFxQjtJQUNoQyxTQUFTLEVBQUUsY0FBYztDQUM1QixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUc7SUFDckMsUUFBUSxFQUFFLGdCQUFnQjtJQUMxQixRQUFRLEVBQUUsNkJBQTZCO0lBQ3ZDLFFBQVEsRUFBRSxpQkFBaUI7SUFDM0IsU0FBUyxFQUFFLHVCQUF1QjtJQUNsQyxTQUFTLEVBQUUsY0FBYztDQUM1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGFscGhhYmV0ID0ge1xyXG4gICAgJ2RhbmlzaCc6IC9eW0EtWsOGw5jDhV0rJC8sXHJcbiAgICAnZnJlbmNoJzogL15bQS1aw4DDgsOGw4fDicOIw4rDi8OPw47DlMWSw5nDm8OcxbhdKyQvLFxyXG4gICAgJ2dlcm1hbic6IC9eW0EtWsOEw5bDnMOfXSskLyxcclxuICAgICdzcGFuaXNoJzogL15bYS16w7HDocOpw63Ds8O6w7xdKyQvaSxcclxuICAgICdydXNzaWFuJzogL15b0JAt0K/QgV0rJC8sXHJcblxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGFscGhhV2l0aFdoaXRlc3BhY2UgPSB7XHJcbiAgICAnZGFuaXNoJzogL15bQS1aw4bDmMOFXFxzXSskLyxcclxuICAgICdmcmVuY2gnOiAvXltBLVrDgMOCw4bDh8OJw4jDisOLw4/DjsOUxZLDmcObw5zFuFxcc10rJC8sXHJcbiAgICAnZ2VybWFuJzogL15bQS1aw4TDlsOcw59cXHNdKyQvLFxyXG4gICAgJ3NwYW5pc2gnOiAvXlthLXrDscOhw6nDrcOzw7rDvFxcc10rJC9pLFxyXG4gICAgJ3J1c3NpYW4nOiAvXlvQkC3Qr9CBXFxzXSskLyxcclxuXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgYWxwaGFudW1lcmljID0ge1xyXG4gICAgJ2RhbmlzaCc6IC9eWzAtOUEtWsOGw5jDhV0rJC8sXHJcbiAgICAnZnJlbmNoJzogL15bMC05QS1aw4DDgsOGw4fDicOIw4rDi8OPw47DlMWSw5nDm8OcxbhdKyQvLFxyXG4gICAgJ2dlcm1hbic6IC9eWzAtOUEtWsOEw5bDnMOfXSskLyxcclxuICAgICdzcGFuaXNoJzogL15bMC05YS16w7HDocOpw63Ds8O6w7xdKyQvaSxcclxuICAgICdydXNzaWFuJzogL15bMC050JAt0K/QgV0rJC8sXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgYWxwaGFudW1lcmljV2l0aFdpdGVzcGFjZSA9IHtcclxuICAgICdkYW5pc2gnOiAvXlswLTlBLVrDhsOYw4VdKyQvLFxyXG4gICAgJ2ZyZW5jaCc6IC9eWzAtOUEtWsOAw4LDhsOHw4nDiMOKw4vDj8OOw5TFksOZw5vDnMW4XSskLyxcclxuICAgICdnZXJtYW4nOiAvXlswLTlBLVrDhMOWw5zDn10rJC8sXHJcbiAgICAnc3BhbmlzaCc6IC9eWzAtOWEtesOxw6HDqcOtw7PDusO8XFxzXSskL2ksXHJcbiAgICAncnVzc2lhbic6IC9eWzAtOdCQLdCv0IFdKyQvLFxyXG59O1xyXG5cclxuIl19
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { FormArray } from "@angular/forms";
|
|
2
|
+
import { RxFormArray } from "../services/rx-form-array";
|
|
3
|
+
import { NumericValueType } from '../enums';
|
|
4
|
+
import { ReactiveFormConfig } from "./reactive-form-config";
|
|
5
|
+
const MODEL_INSTANCE_VALUE = "modelInstanceValue";
|
|
6
|
+
export class ApplicationUtil {
|
|
7
|
+
static getParentObjectValue(control) {
|
|
8
|
+
if (control.parent) {
|
|
9
|
+
let parent = this.parentObjectValue(control.parent);
|
|
10
|
+
return parent.value;
|
|
11
|
+
}
|
|
12
|
+
return {};
|
|
13
|
+
}
|
|
14
|
+
static getParentModelInstanceValue(control) {
|
|
15
|
+
if (control.parent) {
|
|
16
|
+
let parent = this.parentObjectValue(control.parent);
|
|
17
|
+
return parent[MODEL_INSTANCE_VALUE];
|
|
18
|
+
}
|
|
19
|
+
return {};
|
|
20
|
+
}
|
|
21
|
+
static getRootFormGroup(control) {
|
|
22
|
+
if (control.parent) {
|
|
23
|
+
return this.getRootFormGroup(control.parent);
|
|
24
|
+
}
|
|
25
|
+
return control;
|
|
26
|
+
}
|
|
27
|
+
static getParentControl(control) {
|
|
28
|
+
if (control.parent) {
|
|
29
|
+
let parent = this.parentObjectValue(control.parent);
|
|
30
|
+
return parent;
|
|
31
|
+
}
|
|
32
|
+
return control;
|
|
33
|
+
}
|
|
34
|
+
static getFormControlName(control) {
|
|
35
|
+
let controlName = '';
|
|
36
|
+
if (control.parent) {
|
|
37
|
+
for (var formControlName in control.parent.controls) {
|
|
38
|
+
if (control.parent.controls[formControlName] == control) {
|
|
39
|
+
controlName = formControlName;
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return controlName;
|
|
45
|
+
}
|
|
46
|
+
static getParentFormArray(control) {
|
|
47
|
+
if (control.parent && !(control.parent instanceof FormArray || control.parent instanceof RxFormArray)) {
|
|
48
|
+
let parent = this.getParentFormArray(control.parent);
|
|
49
|
+
return parent;
|
|
50
|
+
}
|
|
51
|
+
return control.parent;
|
|
52
|
+
}
|
|
53
|
+
static toLower(value) {
|
|
54
|
+
if (value)
|
|
55
|
+
return String(value).toLowerCase().trim();
|
|
56
|
+
return value;
|
|
57
|
+
}
|
|
58
|
+
static getControl(fieldName, formGroup) {
|
|
59
|
+
let splitText = fieldName.split('.');
|
|
60
|
+
if (splitText.length > 1) {
|
|
61
|
+
var formControl = formGroup;
|
|
62
|
+
splitText.forEach((name, index) => { formControl = formControl.controls[name]; });
|
|
63
|
+
return formControl;
|
|
64
|
+
}
|
|
65
|
+
else
|
|
66
|
+
return formGroup.controls[fieldName];
|
|
67
|
+
}
|
|
68
|
+
static getFormControl(fieldName, control) {
|
|
69
|
+
let splitText = fieldName.split('.');
|
|
70
|
+
if (splitText.length > 1 && control.parent) {
|
|
71
|
+
var formControl = this.getParentControl(control);
|
|
72
|
+
splitText.forEach((name, index) => { formControl = formControl.controls[name]; });
|
|
73
|
+
return formControl;
|
|
74
|
+
}
|
|
75
|
+
return (control.parent) ? control.parent.get([fieldName]) : undefined;
|
|
76
|
+
}
|
|
77
|
+
static parentObjectValue(control) {
|
|
78
|
+
if (!control.parent)
|
|
79
|
+
return control;
|
|
80
|
+
else
|
|
81
|
+
control = this.parentObjectValue(control.parent);
|
|
82
|
+
return control;
|
|
83
|
+
}
|
|
84
|
+
static isNumeric(value) {
|
|
85
|
+
return (value - parseFloat(value) + 1) >= 0;
|
|
86
|
+
}
|
|
87
|
+
static notEqualTo(primaryValue, secondaryValue) {
|
|
88
|
+
let firstValue = (primaryValue === undefined || primaryValue === null) ? "" : primaryValue;
|
|
89
|
+
let secondValue = (secondaryValue === undefined || secondaryValue === null) ? "" : secondaryValue;
|
|
90
|
+
if (firstValue instanceof Date && secondValue instanceof Date)
|
|
91
|
+
return +firstValue != +secondValue;
|
|
92
|
+
return (firstValue != secondValue);
|
|
93
|
+
}
|
|
94
|
+
static numericValidation(allowDecimal, acceptValue) {
|
|
95
|
+
let decimalSymbol;
|
|
96
|
+
if (ReactiveFormConfig && ReactiveFormConfig.number) {
|
|
97
|
+
decimalSymbol = (ReactiveFormConfig.json && ReactiveFormConfig.json.allowDecimalSymbol) ? ReactiveFormConfig.json.allowDecimalSymbol : ReactiveFormConfig.number.decimalSymbol;
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
decimalSymbol = ".";
|
|
101
|
+
}
|
|
102
|
+
acceptValue = (acceptValue == undefined) ? NumericValueType.PositiveNumber : acceptValue;
|
|
103
|
+
let regex = /^[0-9]+$/;
|
|
104
|
+
switch (acceptValue) {
|
|
105
|
+
case NumericValueType.PositiveNumber:
|
|
106
|
+
regex = (!allowDecimal) ? /^[0-9]+$/ : (decimalSymbol == "." || decimalSymbol == undefined) ? /^[0-9\.]+$/ : /^[0-9\,]+$/;
|
|
107
|
+
break;
|
|
108
|
+
case NumericValueType.NegativeNumber:
|
|
109
|
+
regex = (!allowDecimal) ? /^[-][0-9]+$/ : (decimalSymbol == "." || decimalSymbol == undefined) ? /^[-][0-9\.]+$/ : /^[-][0-9\,]+$/;
|
|
110
|
+
break;
|
|
111
|
+
case NumericValueType.Both:
|
|
112
|
+
regex = (!allowDecimal) ? /^[-|+]?[0-9]+$/ : (decimalSymbol == "." || decimalSymbol == undefined) ? /^[-|+]?[0-9\.]+$/ : /^[-|+]?[0-9\,]+$/;
|
|
113
|
+
break;
|
|
114
|
+
}
|
|
115
|
+
return regex;
|
|
116
|
+
}
|
|
117
|
+
static configureControl(control, config, type) {
|
|
118
|
+
if (!control.validatorConfig) {
|
|
119
|
+
let jObject = {};
|
|
120
|
+
jObject[type] = config;
|
|
121
|
+
Object.assign(control, { validatorConfig: jObject });
|
|
122
|
+
}
|
|
123
|
+
else
|
|
124
|
+
control.validatorConfig[type] = config;
|
|
125
|
+
}
|
|
126
|
+
static lowerCaseWithTrim(value) {
|
|
127
|
+
return typeof value === "string" ? value.toLowerCase().trim() : String(value).toLowerCase().trim();
|
|
128
|
+
}
|
|
129
|
+
/** Check if a value is an object */
|
|
130
|
+
static isObject(value) {
|
|
131
|
+
return Object.prototype.toString.call(value) === '[object Object]';
|
|
132
|
+
}
|
|
133
|
+
/** Check if a value is an object */
|
|
134
|
+
static isArray(value) {
|
|
135
|
+
return Array.isArray(value);
|
|
136
|
+
}
|
|
137
|
+
static cloneValue(value) {
|
|
138
|
+
return ApplicationUtil.isObject(value) ? ApplicationUtil.isArray(value) ? [...value] : { ...value } : value;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi9mb3JtLXZhbGlkYXRvcnMvdXRpbC9hcHAtdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQThCLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDMUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsTUFBTSxvQkFBb0IsR0FBRyxvQkFBb0IsQ0FBQztBQUNsRCxNQUFNLE9BQU8sZUFBZTtJQUN4QixNQUFNLENBQUMsb0JBQW9CLENBQUMsT0FBd0I7UUFDaEQsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ2hCLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDbkQsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDO1NBQ3ZCO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxDQUFDLDJCQUEyQixDQUFDLE9BQXdCO1FBQ3ZELElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtZQUNoQixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQ25ELE9BQU8sTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FDdkM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBdUI7UUFDN0MsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ2xCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FB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SyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxHQUFHLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDOUcsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtR3JvdXAsIEZvcm1BcnJheSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBSeEZvcm1BcnJheSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9yeC1mb3JtLWFycmF5XCI7XHJcbmltcG9ydCB7TnVtZXJpY1ZhbHVlVHlwZSB9IGZyb20gJy4uL2VudW1zJ1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1Db25maWcgfSBmcm9tIFwiLi9yZWFjdGl2ZS1mb3JtLWNvbmZpZ1wiO1xyXG5jb25zdCBNT0RFTF9JTlNUQU5DRV9WQUxVRSA9IFwibW9kZWxJbnN0YW5jZVZhbHVlXCI7XHJcbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvblV0aWx7XHJcbiAgICBzdGF0aWMgZ2V0UGFyZW50T2JqZWN0VmFsdWUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA6eyBba2V5OnN0cmluZ106YW55fSB7XHJcbiAgICAgICAgaWYgKGNvbnRyb2wucGFyZW50KSB7XHJcbiAgICAgICAgICAgIGxldCBwYXJlbnQgPSB0aGlzLnBhcmVudE9iamVjdFZhbHVlKGNvbnRyb2wucGFyZW50KVxyXG4gICAgICAgICAgICByZXR1cm4gcGFyZW50LnZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4ge307XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdldFBhcmVudE1vZGVsSW5zdGFuY2VWYWx1ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcclxuICAgICAgICBpZiAoY29udHJvbC5wYXJlbnQpIHtcclxuICAgICAgICAgICAgbGV0IHBhcmVudCA9IHRoaXMucGFyZW50T2JqZWN0VmFsdWUoY29udHJvbC5wYXJlbnQpXHJcbiAgICAgICAgICAgIHJldHVybiBwYXJlbnRbTU9ERUxfSU5TVEFOQ0VfVkFMVUVdO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4ge307XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdldFJvb3RGb3JtR3JvdXAoY29udHJvbDpBYnN0cmFjdENvbnRyb2wpOkZvcm1Hcm91cHtcclxuICAgICAgaWYgKGNvbnRyb2wucGFyZW50KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Um9vdEZvcm1Hcm91cChjb250cm9sLnBhcmVudCk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIDxGb3JtR3JvdXA+Y29udHJvbDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBnZXRQYXJlbnRDb250cm9sKGNvbnRyb2w6QWJzdHJhY3RDb250cm9sKXtcclxuICAgICAgICBpZiAoY29udHJvbC5wYXJlbnQpIHtcclxuICAgICAgICAgICAgbGV0IHBhcmVudCA9IHRoaXMucGFyZW50T2JqZWN0VmFsdWUoY29udHJvbC5wYXJlbnQpXHJcbiAgICAgICAgICAgIHJldHVybiBwYXJlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjb250cm9sO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXRGb3JtQ29udHJvbE5hbWUoY29udHJvbDpBYnN0cmFjdENvbnRyb2wpe1xyXG4gICAgICAgIGxldCBjb250cm9sTmFtZTpzdHJpbmcgPSAnJztcclxuICAgICAgICBpZihjb250cm9sLnBhcmVudCl7XHJcbiAgICAgICAgICBmb3IodmFyIGZvcm1Db250cm9sTmFtZSBpbiBjb250cm9sLnBhcmVudC5jb250cm9scyl7XHJcbiAgICAgICAgICAgIGlmKGNvbnRyb2wucGFyZW50LmNvbnRyb2xzW2Zvcm1Db250cm9sTmFtZV0gPT0gY29udHJvbCl7XHJcbiAgICAgICAgICAgICAgY29udHJvbE5hbWUgPSBmb3JtQ29udHJvbE5hbWU7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIHJldHVybiBjb250cm9sTmFtZTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZ2V0UGFyZW50Rm9ybUFycmF5KGNvbnRyb2w6QWJzdHJhY3RDb250cm9sKXtcclxuICAgICAgICBpZiAoY29udHJvbC5wYXJlbnQgJiYgIShjb250cm9sLnBhcmVudCBpbnN0YW5jZW9mIEZvcm1BcnJheSB8fCBjb250cm9sLnBhcmVudCBpbnN0YW5jZW9mIFJ4Rm9ybUFycmF5KSkge1xyXG4gICAgICAgICAgICBsZXQgcGFyZW50ID0gdGhpcy5nZXRQYXJlbnRGb3JtQXJyYXkoY29udHJvbC5wYXJlbnQpXHJcbiAgICAgICAgICAgIHJldHVybiBwYXJlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjb250cm9sLnBhcmVudDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgdG9Mb3dlcih2YWx1ZSl7XHJcbiAgICAgICAgaWYgKHZhbHVlKVxyXG4gICAgICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKS50b0xvd2VyQ2FzZSgpLnRyaW0oKTtcclxuICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdldENvbnRyb2woZmllbGROYW1lOnN0cmluZyxmb3JtR3JvdXA6Rm9ybUdyb3VwKXtcclxuICAgICAgbGV0IHNwbGl0VGV4dCA9IGZpZWxkTmFtZS5zcGxpdCgnLicpO1xyXG4gICAgICBpZihzcGxpdFRleHQubGVuZ3RoID4gMSl7XHJcbiAgICAgICAgdmFyIGZvcm1Db250cm9sOmFueSA9IGZvcm1Hcm91cDtcclxuICAgICAgICBzcGxpdFRleHQuZm9yRWFjaCgobmFtZSxpbmRleCk9PnsgZm9ybUNvbnRyb2wgPSBmb3JtQ29udHJvbC5jb250cm9sc1tuYW1lXX0pXHJcbiAgICAgICAgcmV0dXJuIGZvcm1Db250cm9sO1xyXG4gICAgICB9ZWxzZVxyXG4gICAgICByZXR1cm4gZm9ybUdyb3VwLmNvbnRyb2xzW2ZpZWxkTmFtZV07XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXRGb3JtQ29udHJvbChmaWVsZE5hbWU6c3RyaW5nLGNvbnRyb2w6QWJzdHJhY3RDb250cm9sKXtcclxuICAgICAgICBsZXQgc3BsaXRUZXh0ID0gZmllbGROYW1lLnNwbGl0KCcuJyk7XHJcbiAgICAgICAgICBpZihzcGxpdFRleHQubGVuZ3RoID4gMSAmJiBjb250cm9sLnBhcmVudCl7XHJcbiAgICAgICAgICB2YXIgZm9ybUNvbnRyb2w6YW55ID0gdGhpcy5nZXRQYXJlbnRDb250cm9sKGNvbnRyb2wpO1xyXG4gICAgICAgICAgc3BsaXRUZXh0LmZvckVhY2goKG5hbWUsaW5kZXgpPT57IGZvcm1Db250cm9sID0gZm9ybUNvbnRyb2wuY29udHJvbHNbbmFtZV19KVxyXG4gICAgICAgICAgcmV0dXJuIGZvcm1Db250cm9sO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiAoY29udHJvbC5wYXJlbnQpID8gY29udHJvbC5wYXJlbnQuZ2V0KFtmaWVsZE5hbWVdKSA6IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBwYXJlbnRPYmplY3RWYWx1ZShjb250cm9sOiBGb3JtR3JvdXAgfCBGb3JtQXJyYXkpOiBGb3JtR3JvdXAgfCBGb3JtQXJyYXkge1xyXG4gICAgICAgIGlmICghY29udHJvbC5wYXJlbnQpXHJcbiAgICAgICAgICAgIHJldHVybiBjb250cm9sO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgY29udHJvbCA9IHRoaXMucGFyZW50T2JqZWN0VmFsdWUoY29udHJvbC5wYXJlbnQpXHJcbiAgICAgICAgcmV0dXJuIGNvbnRyb2xcclxuICAgIH1cclxuXHJcbiAgICBcclxuXHJcbiAgICBzdGF0aWMgaXNOdW1lcmljKHZhbHVlOmFueSl7XHJcbiAgICAgICByZXR1cm4gKHZhbHVlIC0gcGFyc2VGbG9hdCh2YWx1ZSkgKyAxKSA+PSAwO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIG5vdEVxdWFsVG8ocHJpbWFyeVZhbHVlOiBhbnksIHNlY29uZGFyeVZhbHVlOiBhbnkpIHtcclxuICAgIGxldCBmaXJzdFZhbHVlID0gKHByaW1hcnlWYWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHByaW1hcnlWYWx1ZSA9PT0gbnVsbCkgPyBcIlwiIDogcHJpbWFyeVZhbHVlO1xyXG4gICAgbGV0IHNlY29uZFZhbHVlID0gKHNlY29uZGFyeVZhbHVlID09PSB1bmRlZmluZWQgfHwgc2Vjb25kYXJ5VmFsdWUgPT09IG51bGwpID8gXCJcIiA6IHNlY29uZGFyeVZhbHVlO1xyXG4gICAgaWYoZmlyc3RWYWx1ZSBpbnN0YW5jZW9mIERhdGUgJiYgc2Vjb25kVmFsdWUgaW5zdGFuY2VvZiBEYXRlKVxyXG4gICAgICAgIHJldHVybiArZmlyc3RWYWx1ZSAhPSArc2Vjb25kVmFsdWU7XHJcbiAgICByZXR1cm4gKGZpcnN0VmFsdWUgIT0gc2Vjb25kVmFsdWUpXHJcbiAgfVxyXG5cclxuICAgIHN0YXRpYyBudW1lcmljVmFsaWRhdGlvbihhbGxvd0RlY2ltYWw6Ym9vbGVhbiwgYWNjZXB0VmFsdWU6TnVtZXJpY1ZhbHVlVHlwZSkge1xyXG4gICAgICBsZXQgZGVjaW1hbFN5bWJvbDpzdHJpbmc7XHJcbiAgICAgIGlmKFJlYWN0aXZlRm9ybUNvbmZpZyAmJiBSZWFjdGl2ZUZvcm1Db25maWcubnVtYmVyKXtcclxuICAgICAgICBkZWNpbWFsU3ltYm9sID0gKFJlYWN0aXZlRm9ybUNvbmZpZy5qc29uICYmIFJlYWN0aXZlRm9ybUNvbmZpZy5qc29uLmFsbG93RGVjaW1hbFN5bWJvbCkgPyBSZWFjdGl2ZUZvcm1Db25maWcuanNvbi5hbGxvd0RlY2ltYWxTeW1ib2wgOiAgUmVhY3RpdmVGb3JtQ29uZmlnLm51bWJlci5kZWNpbWFsU3ltYm9sO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBkZWNpbWFsU3ltYm9sID0gXCIuXCI7XHJcbiAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICBhY2NlcHRWYWx1ZSA9IChhY2NlcHRWYWx1ZSA9PSB1bmRlZmluZWQpID8gTnVtZXJpY1ZhbHVlVHlwZS5Qb3NpdGl2ZU51bWJlciA6IGFjY2VwdFZhbHVlO1xyXG4gICAgICAgIGxldCByZWdleCA9IC9eWzAtOV0rJC87XHJcbiAgICAgICAgc3dpdGNoKGFjY2VwdFZhbHVlKXtcclxuICAgICAgICAgICAgY2FzZSBOdW1lcmljVmFsdWVUeXBlLlBvc2l0aXZlTnVtYmVyOlxyXG4gICAgICAgICAgICAgIHJlZ2V4ID0gKCFhbGxvd0RlY2ltYWwpID8gL15bMC05XSskLyA6IChkZWNpbWFsU3ltYm9sID09IFwiLlwiICB8fCBkZWNpbWFsU3ltYm9sID09IHVuZGVmaW5lZCkgPyAvXlswLTlcXC5dKyQvIDogL15bMC05XFwsXSskLztcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgIE51bWVyaWNWYWx1ZVR5cGUuTmVnYXRpdmVOdW1iZXI6XHJcbiAgICAgICAgICAgICAgICByZWdleCA9ICghYWxsb3dEZWNpbWFsKSA/IC9eWy1dWzAtOV0rJC8gOiAoZGVjaW1hbFN5bWJvbCA9PSBcIi5cIiB8fCBkZWNpbWFsU3ltYm9sID09IHVuZGVmaW5lZCk/ICAvXlstXVswLTlcXC5dKyQvIDogL15bLV1bMC05XFwsXSskLztcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgTnVtZXJpY1ZhbHVlVHlwZS5Cb3RoIDpcclxuICAgICAgICAgICAgICAgIHJlZ2V4ID0gKCFhbGxvd0RlY2ltYWwpID8gL15bLXwrXT9bMC05XSskLyA6IChkZWNpbWFsU3ltYm9sID09IFwiLlwiIHx8IGRlY2ltYWxTeW1ib2wgPT0gdW5kZWZpbmVkKSA/ICAvXlstfCtdP1swLTlcXC5dKyQvIDogL15bLXwrXT9bMC05XFwsXSskLztcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICByZXR1cm4gcmVnZXg7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGNvbmZpZ3VyZUNvbnRyb2woY29udHJvbDphbnksY29uZmlnOmFueSx0eXBlOnN0cmluZyl7XHJcbiAgICAgICAgICBpZighY29udHJvbC52YWxpZGF0b3JDb25maWcpe1xyXG4gICAgICAgICAgICBsZXQgak9iamVjdD0ge307XHJcbiAgICAgICAgICAgIGpPYmplY3RbdHlwZV0gPSBjb25maWc7XHJcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oY29udHJvbCx7dmFsaWRhdG9yQ29uZmlnOmpPYmplY3R9KVxyXG4gICAgICAgICAgfSBlbHNlXHJcbiAgICAgICAgICAgIGNvbnRyb2wudmFsaWRhdG9yQ29uZmlnW3R5cGVdID0gY29uZmlnO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBsb3dlckNhc2VXaXRoVHJpbSh2YWx1ZTpzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiID8gdmFsdWUudG9Mb3dlckNhc2UoKS50cmltKCkgOiBTdHJpbmcodmFsdWUpLnRvTG93ZXJDYXNlKCkudHJpbSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBDaGVjayBpZiBhIHZhbHVlIGlzIGFuIG9iamVjdCAqL1xyXG4gICAgc3RhdGljIGlzT2JqZWN0KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKSA9PT0gJ1tvYmplY3QgT2JqZWN0XSc7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIENoZWNrIGlmIGEgdmFsdWUgaXMgYW4gb2JqZWN0ICovXHJcbiAgICBzdGF0aWMgaXNBcnJheSh2YWx1ZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBjbG9uZVZhbHVlKHZhbHVlOiBhbnkpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiBBcHBsaWNhdGlvblV0aWwuaXNPYmplY3QodmFsdWUpID8gQXBwbGljYXRpb25VdGlsLmlzQXJyYXkodmFsdWUpID8gWy4uLnZhbHVlXSA6IHsuLi52YWx1ZX0gOiB2YWx1ZTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export function checkLength(length, checks) {
|
|
2
|
+
let isPassed = false;
|
|
3
|
+
for (let check of checks) {
|
|
4
|
+
isPassed = (check == length);
|
|
5
|
+
if (isPassed)
|
|
6
|
+
break;
|
|
7
|
+
}
|
|
8
|
+
return isPassed;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stbGVuZ3RoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvZm9ybS12YWxpZGF0b3JzL3V0aWwvY2hlY2stbGVuZ3RoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxXQUFXLENBQUMsTUFBYyxFQUFFLE1BQWdCO0lBQzFELElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNyQixLQUFLLElBQUksS0FBSyxJQUFJLE1BQU0sRUFBRTtRQUN4QixRQUFRLEdBQUcsQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLENBQUE7UUFDNUIsSUFBSSxRQUFRO1lBQ1YsTUFBTTtLQUNUO0lBQ0QsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBjaGVja0xlbmd0aChsZW5ndGg6IG51bWJlciwgY2hlY2tzOiBudW1iZXJbXSk6IGJvb2xlYW4ge1xyXG4gIGxldCBpc1Bhc3NlZCA9IGZhbHNlO1xyXG4gIGZvciAobGV0IGNoZWNrIG9mIGNoZWNrcykge1xyXG4gICAgaXNQYXNzZWQgPSAoY2hlY2sgPT0gbGVuZ3RoKVxyXG4gICAgaWYgKGlzUGFzc2VkKVxyXG4gICAgICBicmVhaztcclxuICB9XHJcbiAgcmV0dXJuIGlzUGFzc2VkO1xyXG59XHJcbiJdfQ==
|