@messaia/cdk 12.3.5-rc21 → 13.0.0-rc02
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/base/base.module.mjs +64 -0
- package/esm2020/lib/base/components/base.component.mjs +436 -0
- package/esm2020/lib/base/components/generic-form.component.mjs +482 -0
- package/esm2020/lib/base/components/generic-list.component.mjs +461 -0
- package/{esm2015/lib/base/constants/common.js → esm2020/lib/base/constants/common.mjs} +0 -0
- package/{esm2015/lib/base/enums/message-type.js → esm2020/lib/base/enums/message-type.mjs} +0 -0
- package/{esm2015/lib/base/helpers/auth-helper.js → esm2020/lib/base/helpers/auth-helper.mjs} +0 -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/{esm2015/lib/base/models/auth-user.js → esm2020/lib/base/models/auth-user.mjs} +0 -0
- package/{esm2015/lib/base/public_api.js → esm2020/lib/base/public_api.mjs} +0 -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/{esm2015/lib/common/animations/collapse/collapse.animation.js → esm2020/lib/common/animations/collapse/collapse.animation.mjs} +0 -0
- package/{esm2015/lib/common/animations/common/interfaces.js → esm2020/lib/common/animations/common/interfaces.mjs} +0 -0
- package/{esm2015/lib/common/behaviors/constructor.js → esm2020/lib/common/behaviors/constructor.mjs} +0 -0
- package/esm2020/lib/common/behaviors/control-value-accesor.mixin.mjs +39 -0
- package/{esm2015/lib/common/behaviors/disabled.mixin.js → esm2020/lib/common/behaviors/disabled.mixin.mjs} +0 -0
- package/esm2020/lib/common/common.module.mjs +118 -0
- package/{esm2015/lib/common/constants/constants.js → esm2020/lib/common/constants/constants.mjs} +0 -0
- package/esm2020/lib/common/directives/disable-control.directive.mjs +34 -0
- package/{esm2015/lib/common/enums/salutation.js → esm2020/lib/common/enums/salutation.mjs} +0 -0
- package/{esm2015/lib/common/functions/decorators.js → esm2020/lib/common/functions/decorators.mjs} +0 -0
- package/{esm2015/lib/common/functions/functions.js → esm2020/lib/common/functions/functions.mjs} +0 -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/app-setting.mjs +10 -0
- package/{esm2015/lib/common/models/audit-user.js → esm2020/lib/common/models/audit-user.mjs} +0 -0
- package/{esm2015/lib/common/models/entity.js → esm2020/lib/common/models/entity.mjs} +0 -0
- package/{esm2015/lib/common/models/enum-item.js → esm2020/lib/common/models/enum-item.mjs} +0 -0
- package/{esm2015/lib/common/models/key-value.js → esm2020/lib/common/models/key-value.mjs} +0 -0
- package/{esm2015/lib/common/models/save-action.js → esm2020/lib/common/models/save-action.mjs} +0 -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/{esm2015/lib/common/services/context-helper.js → esm2020/lib/common/services/context-helper.mjs} +0 -0
- package/esm2020/lib/common/services/enum.service.mjs +44 -0
- package/{esm2015/lib/common/services/service-locator.js → esm2020/lib/common/services/service-locator.mjs} +0 -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/{esm2015/lib/dialogs/public_api.js → esm2020/lib/dialogs/public_api.mjs} +0 -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/{esm2015/lib/file/public_api.js → esm2020/lib/file/public_api.mjs} +0 -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/{esm2015/lib/forms/constants/constants.js → esm2020/lib/forms/constants/constants.mjs} +0 -0
- package/esm2020/lib/forms/directives/mat-form-field-readonly.directive.mjs +33 -0
- package/{esm2015/lib/forms/enums/form-field-type.js → esm2020/lib/forms/enums/form-field-type.mjs} +0 -0
- package/esm2020/lib/forms/forms.module.mjs +122 -0
- package/esm2020/lib/forms/functions/decorators.mjs +127 -0
- package/{esm2015/lib/forms/functions/functions.js → esm2020/lib/forms/functions/functions.mjs} +0 -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/{esm2015/lib/forms/models/form-field-definition.js → esm2020/lib/forms/models/form-field-definition.mjs} +0 -0
- package/{esm2015/lib/forms/models/form-field-group.js → esm2020/lib/forms/models/form-field-group.mjs} +0 -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/{esm2015/lib/http/public_api.js → esm2020/lib/http/public_api.mjs} +0 -0
- package/{esm2015/lib/http/services/generic.service.js → esm2020/lib/http/services/generic.service.mjs} +0 -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 +128 -0
- package/esm2020/lib/layout/layout-manage-list/layout-manage-list.directives.mjs +81 -0
- package/esm2020/lib/layout/layout-nav/layout-nav.component.mjs +62 -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 +118 -0
- package/esm2020/lib/layout/navigation-drawer/navigation-drawer.component.mjs +167 -0
- package/{esm2015/lib/layout/public_api.js → esm2020/lib/layout/public_api.mjs} +0 -0
- package/esm2020/lib/media/directives/media-toggle.directive.mjs +115 -0
- package/esm2020/lib/media/media.module.mjs +37 -0
- package/{esm2015/lib/media/public_api.js → esm2020/lib/media/public_api.mjs} +0 -0
- package/esm2020/lib/media/services/media.service.mjs +108 -0
- package/esm2020/lib/menu/components/menu.component.mjs +52 -0
- package/{esm2015/lib/menu/enums/menu-scope.js → esm2020/lib/menu/enums/menu-scope.mjs} +0 -0
- package/esm2020/lib/menu/menu.module.mjs +50 -0
- package/{esm2015/lib/menu/models/menu-item.js → esm2020/lib/menu/models/menu-item.mjs} +0 -0
- package/{esm2015/lib/menu/models/menu.js → esm2020/lib/menu/models/menu.mjs} +0 -0
- package/{esm2015/lib/menu/public_api.js → esm2020/lib/menu/public_api.mjs} +0 -0
- package/esm2020/lib/menu/services/menu-items.service.mjs +19 -0
- package/esm2020/lib/menu/services/menu.resolve.mjs +55 -0
- package/esm2020/lib/menu/services/menu.service.mjs +19 -0
- package/{esm2015/lib/search/public_api.js → esm2020/lib/search/public_api.mjs} +0 -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 +301 -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/{esm2015/lib/table/enums/table-column-type.js → esm2020/lib/table/enums/table-column-type.mjs} +0 -0
- package/esm2020/lib/table/functions/decorators.mjs +135 -0
- package/esm2020/lib/table/functions/functions.mjs +15 -0
- package/{esm2015/lib/table/models/pagination.js → esm2020/lib/table/models/pagination.mjs} +0 -0
- package/{esm2015/lib/table/models/table-column.js → esm2020/lib/table/models/table-column.mjs} +0 -0
- package/{esm2015/lib/table/models/table-definition.js → esm2020/lib/table/models/table-definition.mjs} +0 -0
- package/{esm2015/lib/table/models/table-menu-item.js → esm2020/lib/table/models/table-menu-item.mjs} +0 -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 +210 -0
- package/esm2020/lib/table/table.module.mjs +140 -0
- package/esm2020/lib/table/table.static-data-source.mjs +133 -0
- package/esm2020/messaia-cdk.mjs +5 -0
- package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
- package/fesm2015/messaia-cdk.mjs +15946 -0
- package/fesm2015/messaia-cdk.mjs.map +1 -0
- package/fesm2020/messaia-cdk.mjs +15868 -0
- package/fesm2020/messaia-cdk.mjs.map +1 -0
- package/lib/base/base.module.d.ts +7 -0
- package/lib/base/components/base.component.d.ts +8 -0
- package/lib/base/components/generic-form.component.d.ts +3 -0
- package/lib/base/components/generic-list.component.d.ts +3 -0
- package/lib/base/interceptors/base.interceptor.d.ts +3 -0
- package/lib/base/interceptors/caching-interceptor.d.ts +3 -0
- package/lib/base/interceptors/loading.interceptor.d.ts +3 -0
- package/lib/base/services/file.service.d.ts +3 -0
- package/lib/base/services/loading-screen.service.d.ts +3 -0
- package/lib/base/services/print.service.d.ts +3 -0
- package/lib/chips/chips.module.d.ts +13 -2
- package/lib/chips/components/chips.component.d.ts +7 -0
- package/lib/chips/public_api.d.ts +1 -0
- package/lib/common/common.module.d.ts +20 -0
- package/lib/common/directives/disable-control.directive.d.ts +3 -0
- package/lib/common/functions/utils.d.ts +3 -0
- package/lib/common/helpers/app-storage.d.ts +3 -0
- package/lib/common/helpers/dynamic-builder.d.ts +3 -0
- package/lib/common/models/app-setting.d.ts +3 -0
- package/lib/common/pipes/data-source.pipe.d.ts +3 -0
- package/lib/common/pipes/enum.pipe.d.ts +3 -0
- package/lib/common/pipes/file-size.pipe.d.ts +3 -0
- package/lib/common/pipes/filter.pipe.d.ts +3 -0
- package/lib/common/pipes/first-letter.d.ts +3 -0
- package/lib/common/pipes/keys.d.ts +3 -0
- package/lib/common/pipes/month-name.pipe.d.ts +3 -0
- package/lib/common/pipes/only-number.d.ts +3 -0
- package/lib/common/pipes/order.pipe.d.ts +4 -1
- package/lib/common/pipes/placeholder.pipe.d.ts +3 -0
- package/lib/common/pipes/safe-html.pipe.d.ts +3 -0
- package/lib/common/pipes/time.pipe.d.ts +3 -0
- package/lib/common/pipes/titlecase.pipe.d.ts +3 -0
- package/lib/common/pipes/truncate.pipe.d.ts +3 -0
- package/lib/common/pipes/values.d.ts +3 -0
- package/lib/common/public_api.d.ts +16 -0
- package/lib/common/services/base.service.d.ts +3 -0
- package/lib/common/services/enum.service.d.ts +3 -0
- package/lib/common/styles/platform.scss +1 -1
- package/lib/common/theming/_all-theme.scss +1 -1
- package/lib/dialogs/alert-dialog/alert-dialog.component.d.ts +3 -0
- package/lib/dialogs/confirm-dialog/confirm-dialog.component.d.ts +3 -0
- package/lib/dialogs/dialog.component.d.ts +9 -0
- package/lib/dialogs/dialogs.module.d.ts +13 -0
- package/lib/dialogs/prompt-dialog/prompt-dialog.component.d.ts +3 -0
- package/lib/dialogs/services/dialog.service.d.ts +3 -0
- package/lib/file/file-input.component.d.ts +3 -0
- package/lib/file/file.module.d.ts +10 -0
- package/lib/form-validators/directives/base-directive.d.ts +3 -0
- package/lib/form-validators/directives/control-host.directive.d.ts +3 -0
- package/lib/form-validators/directives/html-control-template.directive.d.ts +3 -0
- package/lib/form-validators/directives/rx-form.directive.d.ts +3 -0
- package/lib/form-validators/directives/template-validations/async-validation.directive.d.ts +3 -0
- package/lib/form-validators/directives/template-validations/base-validator.directive.d.ts +3 -0
- package/lib/form-validators/directives/template-validations/control-expression-process.d.ts +3 -0
- package/lib/form-validators/directives/template-validations/file-control.directive.d.ts +3 -0
- package/lib/form-validators/directives/template-validations/image-file-control.directive.d.ts +3 -0
- package/lib/form-validators/directives/template-validations/rxformcontrol.directive.d.ts +3 -0
- package/lib/form-validators/domain/element-processor/decimal.provider.d.ts +3 -0
- package/lib/form-validators/services/reactive-form.module.d.ts +16 -0
- package/lib/form-validators/services/rx-form-builder.d.ts +3 -0
- package/lib/form-validators/services/typed-form-builder.d.ts +3 -0
- package/lib/forms/components/generic-form/generic-form.component.d.ts +11 -0
- package/lib/forms/directives/mat-form-field-readonly.directive.d.ts +3 -0
- package/lib/forms/forms.module.d.ts +23 -0
- package/lib/forms/helpers/abstract-mat-form-field.d.ts +4 -1
- package/lib/forms/helpers/value-accessor-base.d.ts +3 -0
- package/lib/forms/public_api.d.ts +2 -0
- package/lib/forms/validators/equal-validator.directive.d.ts +3 -0
- package/lib/forms/validators/native-element-injector.directive.d.ts +3 -0
- package/lib/forms/validators/unique-validator-directive.d.ts +3 -0
- package/lib/http/http.module.d.ts +5 -0
- package/lib/layout/layout-card-over/layout-card-over.component.d.ts +3 -0
- package/lib/layout/layout-footer/layout-footer.component.d.ts +3 -0
- package/lib/layout/layout-manage-list/layout-manage-list.component.d.ts +3 -0
- package/lib/layout/layout-manage-list/layout-manage-list.directives.d.ts +7 -0
- package/lib/layout/layout-nav/layout-nav.component.d.ts +3 -0
- package/lib/layout/layout-nav-list/layout-nav-list.component.d.ts +3 -0
- package/lib/layout/layout-nav-list/layout-nav-list.directives.d.ts +7 -0
- package/lib/layout/layout-toggle.class.d.ts +3 -0
- package/lib/layout/layout.component.d.ts +3 -0
- package/lib/layout/layout.directives.d.ts +7 -0
- package/lib/layout/layout.module.d.ts +22 -0
- package/lib/layout/navigation-drawer/navigation-drawer.component.d.ts +7 -0
- package/lib/media/directives/media-toggle.directive.d.ts +3 -0
- package/lib/media/media.module.d.ts +6 -0
- package/lib/media/services/media.service.d.ts +3 -0
- package/lib/menu/components/menu.component.d.ts +3 -0
- package/lib/menu/menu.module.d.ts +9 -0
- package/lib/menu/services/menu-items.service.d.ts +3 -0
- package/lib/menu/services/menu.resolve.d.ts +5 -0
- package/lib/menu/services/menu.service.d.ts +3 -0
- package/lib/search/search.module.d.ts +11 -0
- package/lib/search/vd-search-box/vd-search-box.component.d.ts +3 -0
- package/lib/search/vd-search-input/vd-search-input.component.d.ts +3 -0
- package/lib/select/public_api.d.ts +1 -0
- package/lib/select/select.component.d.ts +5 -0
- package/lib/select/select.module.d.ts +10 -0
- package/lib/table/components/dynamic-table/dynamic-table.component.d.ts +3 -0
- package/lib/table/components/filter-clear.component.d.ts +3 -0
- package/lib/table/components/filter-date.component.d.ts +3 -0
- package/lib/table/components/filter-input.component.d.ts +3 -0
- package/lib/table/components/filter-select.component.d.ts +5 -0
- package/lib/table/directives/data-source-filter.directive.d.ts +3 -0
- package/lib/table/paginator-intl.d.ts +3 -0
- package/lib/table/public_api.d.ts +1 -0
- package/lib/table/table.module.d.ts +28 -0
- package/messaia-cdk.d.ts +1 -25
- package/package.json +20 -8
- package/src/lib/common/styles/font/README.md +9 -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
- package/bundles/messaia-cdk.umd.js +0 -17755
- package/bundles/messaia-cdk.umd.js.map +0 -1
- package/esm2015/lib/base/base.module.js +0 -47
- package/esm2015/lib/base/components/base.component.js +0 -441
- package/esm2015/lib/base/components/generic-form.component.js +0 -492
- package/esm2015/lib/base/components/generic-list.component.js +0 -469
- package/esm2015/lib/base/interceptors/base.interceptor.js +0 -148
- package/esm2015/lib/base/interceptors/caching-interceptor.js +0 -75
- package/esm2015/lib/base/interceptors/loading.interceptor.js +0 -70
- package/esm2015/lib/base/services/file.service.js +0 -25
- package/esm2015/lib/base/services/loading-screen.service.js +0 -46
- package/esm2015/lib/base/services/print.service.js +0 -49
- package/esm2015/lib/chips/chips.module.js +0 -44
- package/esm2015/lib/chips/components/chips.component.js +0 -420
- package/esm2015/lib/chips/public_api.js +0 -2
- package/esm2015/lib/common/behaviors/control-value-accesor.mixin.js +0 -41
- package/esm2015/lib/common/common.module.js +0 -86
- package/esm2015/lib/common/directives/disable-control.directive.js +0 -43
- package/esm2015/lib/common/functions/utils.js +0 -160
- package/esm2015/lib/common/helpers/app-storage.js +0 -51
- package/esm2015/lib/common/helpers/dynamic-builder.js +0 -58
- package/esm2015/lib/common/models/app-setting.js +0 -8
- package/esm2015/lib/common/pipes/data-source.pipe.js +0 -12
- package/esm2015/lib/common/pipes/enum.pipe.js +0 -20
- package/esm2015/lib/common/pipes/file-size.pipe.js +0 -34
- package/esm2015/lib/common/pipes/filter.pipe.js +0 -20
- package/esm2015/lib/common/pipes/first-letter.js +0 -21
- package/esm2015/lib/common/pipes/keys.js +0 -15
- package/esm2015/lib/common/pipes/month-name.pipe.js +0 -24
- package/esm2015/lib/common/pipes/only-number.js +0 -60
- package/esm2015/lib/common/pipes/order.pipe.js +0 -180
- package/esm2015/lib/common/pipes/placeholder.pipe.js +0 -23
- package/esm2015/lib/common/pipes/safe-html.pipe.js +0 -37
- package/esm2015/lib/common/pipes/time.pipe.js +0 -17
- package/esm2015/lib/common/pipes/titlecase.pipe.js +0 -11
- package/esm2015/lib/common/pipes/truncate.pipe.js +0 -12
- package/esm2015/lib/common/pipes/values.js +0 -11
- package/esm2015/lib/common/public_api.js +0 -2
- package/esm2015/lib/common/services/base.service.js +0 -26
- package/esm2015/lib/common/services/enum.service.js +0 -42
- package/esm2015/lib/dialogs/alert-dialog/alert-dialog.component.js +0 -38
- package/esm2015/lib/dialogs/confirm-dialog/confirm-dialog.component.js +0 -44
- package/esm2015/lib/dialogs/dialog.component.js +0 -47
- package/esm2015/lib/dialogs/dialogs.module.js +0 -54
- package/esm2015/lib/dialogs/prompt-dialog/prompt-dialog.component.js +0 -44
- package/esm2015/lib/dialogs/services/dialog.service.js +0 -145
- package/esm2015/lib/file/file-input.component.js +0 -301
- package/esm2015/lib/file/file.module.js +0 -25
- package/esm2015/lib/form-validators/abstract/typed-form.js +0 -3
- package/esm2015/lib/form-validators/algorithm/luhn-algorithm.js +0 -15
- package/esm2015/lib/form-validators/const/app-validators.const.js +0 -68
- package/esm2015/lib/form-validators/const/app.const.js +0 -17
- package/esm2015/lib/form-validators/const/config-names.const.js +0 -9
- package/esm2015/lib/form-validators/const/config-required-fields.const.js +0 -11
- package/esm2015/lib/form-validators/const/decorators.const.js +0 -23
- package/esm2015/lib/form-validators/const/events.const.js +0 -14
- package/esm2015/lib/form-validators/const/html-elements.const.js +0 -7
- package/esm2015/lib/form-validators/const/iban-country-wise-regex.const.js +0 -80
- package/esm2015/lib/form-validators/const/index.js +0 -6
- package/esm2015/lib/form-validators/const/operators.const.js +0 -7
- package/esm2015/lib/form-validators/const/validation-alphabet-locale.const.js +0 -9
- package/esm2015/lib/form-validators/const/validator.const.js +0 -8
- package/esm2015/lib/form-validators/core/defaultContainer.js +0 -243
- package/esm2015/lib/form-validators/core/validator.interface.js +0 -2
- package/esm2015/lib/form-validators/core/validator.static.js +0 -74
- package/esm2015/lib/form-validators/decorators/allOf.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/alpha.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/alphaNumeric.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/and.decorator.js +0 -6
- package/esm2015/lib/form-validators/decorators/ascii.decorator.js +0 -6
- package/esm2015/lib/form-validators/decorators/async.decorator.js +0 -6
- package/esm2015/lib/form-validators/decorators/base-decorator.function.js +0 -7
- package/esm2015/lib/form-validators/decorators/choice.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/compare.decorator.js +0 -6
- package/esm2015/lib/form-validators/decorators/compose.decorator.js +0 -6
- package/esm2015/lib/form-validators/decorators/contains.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/credit-card.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/cusip.decorator.js +0 -6
- package/esm2015/lib/form-validators/decorators/custom.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/dataUri.decorator.js +0 -6
- package/esm2015/lib/form-validators/decorators/date.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/different.decorator.js +0 -6
- package/esm2015/lib/form-validators/decorators/digit.decorator.js +0 -6
- package/esm2015/lib/form-validators/decorators/email.decorator.js +0 -6
- package/esm2015/lib/form-validators/decorators/endsWith.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/even.decorator.js +0 -6
- package/esm2015/lib/form-validators/decorators/extension.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/factor.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/file.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/fileSize.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/greater-than-equal-to.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/greater-than.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/grid.decorator.js +0 -6
- package/esm2015/lib/form-validators/decorators/hexColor.decorator.js +0 -6
- package/esm2015/lib/form-validators/decorators/image.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/index.js +0 -91
- package/esm2015/lib/form-validators/decorators/json.decorator.js +0 -6
- package/esm2015/lib/form-validators/decorators/latLong.decorator.js +0 -6
- package/esm2015/lib/form-validators/decorators/latitude.decorator.js +0 -6
- package/esm2015/lib/form-validators/decorators/leapYear.decorator.js +0 -6
- package/esm2015/lib/form-validators/decorators/less-than-equal-to.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/less-than.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/longitude.decorator.js +0 -6
- package/esm2015/lib/form-validators/decorators/lowercase.decorator.js +0 -6
- package/esm2015/lib/form-validators/decorators/mac.decorator.js +0 -6
- package/esm2015/lib/form-validators/decorators/mask.decorator.js +0 -6
- package/esm2015/lib/form-validators/decorators/maxDate.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/maxLength.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/maxNumber.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/maxTime.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/minDate.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/minLength.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/minNumber.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/minTime.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/model.decorator.js +0 -7
- package/esm2015/lib/form-validators/decorators/non-validation-decorators/disable.decorator.js +0 -8
- package/esm2015/lib/form-validators/decorators/non-validation-decorators/elementClass.decorator.js +0 -8
- package/esm2015/lib/form-validators/decorators/non-validation-decorators/error.decorator.js +0 -8
- package/esm2015/lib/form-validators/decorators/noneOf.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/not.decorator.js +0 -6
- package/esm2015/lib/form-validators/decorators/notEmpty.decorator.js +0 -6
- package/esm2015/lib/form-validators/decorators/numeric.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/odd.decorator.js +0 -6
- package/esm2015/lib/form-validators/decorators/oneOf.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/or.decorator.js +0 -6
- package/esm2015/lib/form-validators/decorators/password.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/pattern.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/port.decorator.js +0 -6
- package/esm2015/lib/form-validators/decorators/primeNumber.decorator.js +0 -6
- package/esm2015/lib/form-validators/decorators/prop-array.decorator.js +0 -18
- package/esm2015/lib/form-validators/decorators/prop-object.decorator.js +0 -8
- package/esm2015/lib/form-validators/decorators/prop.decorator.js +0 -16
- package/esm2015/lib/form-validators/decorators/range.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/required.decorator.js +0 -6
- package/esm2015/lib/form-validators/decorators/requiredTrue.decorator.js +0 -6
- package/esm2015/lib/form-validators/decorators/rule.decorator.js +0 -6
- package/esm2015/lib/form-validators/decorators/sanitize/blacklist.decorator.js +0 -8
- package/esm2015/lib/form-validators/decorators/sanitize/escape.decorator.js +0 -8
- package/esm2015/lib/form-validators/decorators/sanitize/ltrim.decorator.js +0 -8
- package/esm2015/lib/form-validators/decorators/sanitize/prefix.decorator.js +0 -8
- package/esm2015/lib/form-validators/decorators/sanitize/rtrim.decorator.js +0 -8
- package/esm2015/lib/form-validators/decorators/sanitize/sanitize.decorator.js +0 -8
- package/esm2015/lib/form-validators/decorators/sanitize/stripLow.decorator.js +0 -8
- package/esm2015/lib/form-validators/decorators/sanitize/suffix.decorator.js +0 -8
- package/esm2015/lib/form-validators/decorators/sanitize/toBoolean.decorator.js +0 -8
- package/esm2015/lib/form-validators/decorators/sanitize/toDate.decorator.js +0 -8
- package/esm2015/lib/form-validators/decorators/sanitize/toDouble.decorator.js +0 -8
- package/esm2015/lib/form-validators/decorators/sanitize/toFloat.decorator.js +0 -8
- package/esm2015/lib/form-validators/decorators/sanitize/toInt.decorator.js +0 -8
- package/esm2015/lib/form-validators/decorators/sanitize/toString.decorator.js +0 -8
- package/esm2015/lib/form-validators/decorators/sanitize/trim.decorator.js +0 -8
- package/esm2015/lib/form-validators/decorators/sanitize/whitelist.decorator.js +0 -8
- package/esm2015/lib/form-validators/decorators/startsWith.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/time.decorator.js +0 -10
- package/esm2015/lib/form-validators/decorators/unique.decorator.js +0 -6
- package/esm2015/lib/form-validators/decorators/uppercase.decorator.js +0 -6
- package/esm2015/lib/form-validators/decorators/url.decorator.js +0 -10
- package/esm2015/lib/form-validators/directives/base-directive.js +0 -43
- package/esm2015/lib/form-validators/directives/control-host.directive.js +0 -42
- package/esm2015/lib/form-validators/directives/html-control-template.directive.js +0 -28
- package/esm2015/lib/form-validators/directives/rx-form.directive.js +0 -131
- package/esm2015/lib/form-validators/directives/template-validations/async-validation.directive.js +0 -26
- package/esm2015/lib/form-validators/directives/template-validations/base-validator.directive.js +0 -42
- package/esm2015/lib/form-validators/directives/template-validations/control-expression-process.js +0 -25
- package/esm2015/lib/form-validators/directives/template-validations/file-control.directive.js +0 -93
- package/esm2015/lib/form-validators/directives/template-validations/image-file-control.directive.js +0 -55
- package/esm2015/lib/form-validators/directives/template-validations/rxformcontrol.directive.js +0 -237
- package/esm2015/lib/form-validators/domain/disable-provider.js +0 -93
- package/esm2015/lib/form-validators/domain/element-processor/decimal.provider.js +0 -64
- package/esm2015/lib/form-validators/domain/element-processor/mask.provider.js +0 -430
- package/esm2015/lib/form-validators/domain/form-data.js +0 -47
- package/esm2015/lib/form-validators/enums/error-message-binding-strategy.js +0 -11
- package/esm2015/lib/form-validators/enums/index.js +0 -5
- package/esm2015/lib/form-validators/enums/ip-version.js +0 -7
- package/esm2015/lib/form-validators/enums/numeric-value-type.js +0 -7
- package/esm2015/lib/form-validators/enums/reset-type.js +0 -10
- package/esm2015/lib/form-validators/enums/url-validation-type.js +0 -7
- package/esm2015/lib/form-validators/models/config/alpha-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/array-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/base-config-fn.js +0 -2
- package/esm2015/lib/form-validators/models/config/base-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/base-date-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/choice-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/compare-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/component-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/compose-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/contains-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/credit-card-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/custom-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/date-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/default-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/digit-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/disable-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/element-class-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/email-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/error-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/extension-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/factor-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/field-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/file-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/hex-color-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/iban-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/image-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/index.js +0 -35
- package/esm2015/lib/form-validators/models/config/ip-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/logical-operator-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/mask-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/max-date-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/message-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/min-date-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/model-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/number-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/numeric-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/password-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/pattern-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/prop-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/props-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/range-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/relational-operator-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/required-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/rule-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/sanitize-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/size-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/string-comparison-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/time-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/todate-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/unique-config.js +0 -2
- package/esm2015/lib/form-validators/models/config/url-config.js +0 -2
- package/esm2015/lib/form-validators/models/form-builder-configuration.js +0 -8
- package/esm2015/lib/form-validators/models/index.js +0 -3
- package/esm2015/lib/form-validators/models/interface/array-prop-instance-config.interface.js +0 -2
- package/esm2015/lib/form-validators/models/interface/auto-instance-config.interface.js +0 -2
- package/esm2015/lib/form-validators/models/interface/form-data-config.js +0 -2
- package/esm2015/lib/form-validators/models/interface/i-abstract-control.js +0 -4
- package/esm2015/lib/form-validators/models/interface/i-form-group.js +0 -2
- package/esm2015/lib/form-validators/models/interface/instance-argument.interface.js +0 -2
- package/esm2015/lib/form-validators/models/interface/object-prop-instance-config.interface.js +0 -2
- package/esm2015/lib/form-validators/models/interface/options.js +0 -2
- package/esm2015/lib/form-validators/models/password-validation.model.js +0 -2
- package/esm2015/lib/form-validators/models/prop-validation-config.js +0 -2
- package/esm2015/lib/form-validators/public_api.js +0 -25
- package/esm2015/lib/form-validators/reactive-form-validators/allOf.validator.js +0 -22
- package/esm2015/lib/form-validators/reactive-form-validators/alpha.validator.js +0 -9
- package/esm2015/lib/form-validators/reactive-form-validators/alphaNumeric.validator.js +0 -9
- package/esm2015/lib/form-validators/reactive-form-validators/and.validator.js +0 -23
- package/esm2015/lib/form-validators/reactive-form-validators/ascii.validator.js +0 -9
- package/esm2015/lib/form-validators/reactive-form-validators/async/base.async.validator.js +0 -24
- package/esm2015/lib/form-validators/reactive-form-validators/choice.validator.js +0 -19
- package/esm2015/lib/form-validators/reactive-form-validators/compare.validator.js +0 -20
- package/esm2015/lib/form-validators/reactive-form-validators/compose.validator.js +0 -23
- package/esm2015/lib/form-validators/reactive-form-validators/conditional-change.validator.js +0 -63
- package/esm2015/lib/form-validators/reactive-form-validators/contains.validator.js +0 -15
- package/esm2015/lib/form-validators/reactive-form-validators/credit-card.validator.js +0 -48
- package/esm2015/lib/form-validators/reactive-form-validators/cusip.validator.js +0 -38
- package/esm2015/lib/form-validators/reactive-form-validators/custom.validator.js +0 -23
- package/esm2015/lib/form-validators/reactive-form-validators/dataUri.validator.js +0 -9
- package/esm2015/lib/form-validators/reactive-form-validators/date.validator.js +0 -8
- package/esm2015/lib/form-validators/reactive-form-validators/different.validator.js +0 -19
- package/esm2015/lib/form-validators/reactive-form-validators/digit.validator.js +0 -9
- package/esm2015/lib/form-validators/reactive-form-validators/email.validator.js +0 -9
- package/esm2015/lib/form-validators/reactive-form-validators/endsWith.validator.js +0 -16
- package/esm2015/lib/form-validators/reactive-form-validators/even.validator.js +0 -15
- package/esm2015/lib/form-validators/reactive-form-validators/extension.validator.js +0 -40
- package/esm2015/lib/form-validators/reactive-form-validators/factor.validator.js +0 -37
- package/esm2015/lib/form-validators/reactive-form-validators/file.validator.js +0 -26
- package/esm2015/lib/form-validators/reactive-form-validators/fileSize.validator.js +0 -32
- package/esm2015/lib/form-validators/reactive-form-validators/greater-than-equal-to.validator.js +0 -8
- package/esm2015/lib/form-validators/reactive-form-validators/greater-than.validator.js +0 -8
- package/esm2015/lib/form-validators/reactive-form-validators/grid.validator.js +0 -31
- package/esm2015/lib/form-validators/reactive-form-validators/hexcolor.validator.js +0 -9
- package/esm2015/lib/form-validators/reactive-form-validators/iban.validator.js +0 -30
- package/esm2015/lib/form-validators/reactive-form-validators/image.validator.js +0 -48
- package/esm2015/lib/form-validators/reactive-form-validators/index.js +0 -66
- package/esm2015/lib/form-validators/reactive-form-validators/ip.validator.js +0 -35
- package/esm2015/lib/form-validators/reactive-form-validators/json.validator.js +0 -26
- package/esm2015/lib/form-validators/reactive-form-validators/latLong.validator.js +0 -18
- package/esm2015/lib/form-validators/reactive-form-validators/latitude.validator.js +0 -9
- package/esm2015/lib/form-validators/reactive-form-validators/leapYear.validator.js +0 -16
- package/esm2015/lib/form-validators/reactive-form-validators/less-than-equal-to.validator.js +0 -8
- package/esm2015/lib/form-validators/reactive-form-validators/less-than.validator.js +0 -8
- package/esm2015/lib/form-validators/reactive-form-validators/longitude.validator.js +0 -9
- package/esm2015/lib/form-validators/reactive-form-validators/lowercase.validator.js +0 -15
- package/esm2015/lib/form-validators/reactive-form-validators/mac.validator.js +0 -9
- package/esm2015/lib/form-validators/reactive-form-validators/mask.validator.js +0 -13
- package/esm2015/lib/form-validators/reactive-form-validators/maxDate.validator.js +0 -8
- package/esm2015/lib/form-validators/reactive-form-validators/maxLength.validator.js +0 -16
- package/esm2015/lib/form-validators/reactive-form-validators/maxNumber.validator.js +0 -16
- package/esm2015/lib/form-validators/reactive-form-validators/maxTime.validator.js +0 -8
- package/esm2015/lib/form-validators/reactive-form-validators/minDate.validator.js +0 -8
- package/esm2015/lib/form-validators/reactive-form-validators/minLength.validator.js +0 -16
- package/esm2015/lib/form-validators/reactive-form-validators/minNumber.validator.js +0 -16
- package/esm2015/lib/form-validators/reactive-form-validators/minTime.validator.js +0 -8
- package/esm2015/lib/form-validators/reactive-form-validators/noneOf.validator.js +0 -24
- package/esm2015/lib/form-validators/reactive-form-validators/not.validator.js +0 -23
- package/esm2015/lib/form-validators/reactive-form-validators/notEmpty.validator.js +0 -17
- package/esm2015/lib/form-validators/reactive-form-validators/numeric.validator.js +0 -20
- package/esm2015/lib/form-validators/reactive-form-validators/odd.validator.js +0 -16
- package/esm2015/lib/form-validators/reactive-form-validators/oneOf.validator.js +0 -22
- package/esm2015/lib/form-validators/reactive-form-validators/or.validator.js +0 -23
- package/esm2015/lib/form-validators/reactive-form-validators/password.validator.js +0 -33
- package/esm2015/lib/form-validators/reactive-form-validators/pattern.validator.js +0 -17
- package/esm2015/lib/form-validators/reactive-form-validators/port.validator.js +0 -18
- package/esm2015/lib/form-validators/reactive-form-validators/primeNumber.validator.js +0 -26
- package/esm2015/lib/form-validators/reactive-form-validators/range.validator.js +0 -16
- package/esm2015/lib/form-validators/reactive-form-validators/required.validator.js +0 -17
- package/esm2015/lib/form-validators/reactive-form-validators/requiredTrue.validator.js +0 -16
- package/esm2015/lib/form-validators/reactive-form-validators/rule.validator.js +0 -20
- package/esm2015/lib/form-validators/reactive-form-validators/startsWith.validator.js +0 -16
- package/esm2015/lib/form-validators/reactive-form-validators/time.validator.js +0 -18
- package/esm2015/lib/form-validators/reactive-form-validators/unique.validator.js +0 -70
- package/esm2015/lib/form-validators/reactive-form-validators/uppercase.validator.js +0 -15
- package/esm2015/lib/form-validators/reactive-form-validators/url.validator.js +0 -28
- package/esm2015/lib/form-validators/services/base-form-builder.js +0 -115
- package/esm2015/lib/form-validators/services/entity.service.js +0 -64
- package/esm2015/lib/form-validators/services/form-control.js +0 -349
- package/esm2015/lib/form-validators/services/form-group.js +0 -2
- package/esm2015/lib/form-validators/services/reactive-form.module.js +0 -53
- package/esm2015/lib/form-validators/services/rx-form-array.js +0 -100
- package/esm2015/lib/form-validators/services/rx-form-builder.js +0 -565
- package/esm2015/lib/form-validators/services/rx-form-group.js +0 -299
- package/esm2015/lib/form-validators/services/typed-form-builder.js +0 -29
- package/esm2015/lib/form-validators/util/alphabet-regex.locale.js +0 -29
- package/esm2015/lib/form-validators/util/app-util.js +0 -141
- package/esm2015/lib/form-validators/util/check-length.js +0 -10
- package/esm2015/lib/form-validators/util/config-provider.js +0 -35
- package/esm2015/lib/form-validators/util/date-checker.function.js +0 -52
- package/esm2015/lib/form-validators/util/date-provider.js +0 -97
- package/esm2015/lib/form-validators/util/form-const.js +0 -3
- package/esm2015/lib/form-validators/util/form-provider.js +0 -37
- package/esm2015/lib/form-validators/util/index.js +0 -7
- package/esm2015/lib/form-validators/util/instance-provider.function.js +0 -30
- package/esm2015/lib/form-validators/util/ip-checker.js +0 -18
- package/esm2015/lib/form-validators/util/linq.js +0 -147
- package/esm2015/lib/form-validators/util/object-maker.js +0 -38
- package/esm2015/lib/form-validators/util/reactive-form-config.js +0 -23
- package/esm2015/lib/form-validators/util/regex-rules.js +0 -37
- package/esm2015/lib/form-validators/util/regex-validator.js +0 -74
- package/esm2015/lib/form-validators/util/relational-checker.function.js +0 -85
- package/esm2015/lib/form-validators/util/reset-form.js +0 -56
- package/esm2015/lib/form-validators/util/sanitizers.js +0 -131
- package/esm2015/lib/form-validators/util/time-checker.function.js +0 -48
- package/esm2015/lib/form-validators/util/type.js +0 -2
- package/esm2015/lib/form-validators/util/validator-value-checker.js +0 -17
- package/esm2015/lib/form-validators/validators-extension/allOf-validator.extension.js +0 -11
- package/esm2015/lib/form-validators/validators-extension/alpha-validator.extension.js +0 -11
- package/esm2015/lib/form-validators/validators-extension/alphaNumeric-validator.extension.js +0 -11
- package/esm2015/lib/form-validators/validators-extension/and-validator.extension.js +0 -7
- package/esm2015/lib/form-validators/validators-extension/ascii-validator.extension.js +0 -7
- package/esm2015/lib/form-validators/validators-extension/base-validator.function.js +0 -33
- package/esm2015/lib/form-validators/validators-extension/choice-validator.extension.js +0 -11
- package/esm2015/lib/form-validators/validators-extension/compare-validator.extension.js +0 -7
- package/esm2015/lib/form-validators/validators-extension/compose-validator.extension.js +0 -7
- package/esm2015/lib/form-validators/validators-extension/contains-validator.extension.js +0 -11
- package/esm2015/lib/form-validators/validators-extension/credit-card-validator.extension.js +0 -11
- package/esm2015/lib/form-validators/validators-extension/cusip-validator.extension.js +0 -7
- package/esm2015/lib/form-validators/validators-extension/custom-validator.extension.js +0 -11
- package/esm2015/lib/form-validators/validators-extension/dataUri-validator.extension.js +0 -7
- package/esm2015/lib/form-validators/validators-extension/date-validator.extension.js +0 -11
- package/esm2015/lib/form-validators/validators-extension/different-validator.extension.js +0 -7
- package/esm2015/lib/form-validators/validators-extension/digit-validator.extension.js +0 -7
- package/esm2015/lib/form-validators/validators-extension/email-validator.extension.js +0 -7
- package/esm2015/lib/form-validators/validators-extension/endsWith-validator.extension.js +0 -11
- package/esm2015/lib/form-validators/validators-extension/even-validator.extension.js +0 -7
- package/esm2015/lib/form-validators/validators-extension/extension-validator.extension.js +0 -10
- package/esm2015/lib/form-validators/validators-extension/factor-validator.extension.js +0 -11
- package/esm2015/lib/form-validators/validators-extension/file-validator.extension.js +0 -10
- package/esm2015/lib/form-validators/validators-extension/fileSize-validator.extension.js +0 -10
- package/esm2015/lib/form-validators/validators-extension/greater-than-equal-to-validator.extension.js +0 -11
- package/esm2015/lib/form-validators/validators-extension/greater-than-validator.extension.js +0 -11
- package/esm2015/lib/form-validators/validators-extension/grid-validator.extension.js +0 -7
- package/esm2015/lib/form-validators/validators-extension/hexcolor-validator.extension.js +0 -7
- package/esm2015/lib/form-validators/validators-extension/iban-validator.extension.js +0 -11
- package/esm2015/lib/form-validators/validators-extension/image-validator.extension.js +0 -10
- package/esm2015/lib/form-validators/validators-extension/index.js +0 -68
- package/esm2015/lib/form-validators/validators-extension/ip-validator.extension.js +0 -11
- package/esm2015/lib/form-validators/validators-extension/json-validator.extension.js +0 -7
- package/esm2015/lib/form-validators/validators-extension/latLong-validator.extension.js +0 -7
- package/esm2015/lib/form-validators/validators-extension/latitude-validator.extension.js +0 -7
- package/esm2015/lib/form-validators/validators-extension/leapYear-validator.extension.js +0 -7
- package/esm2015/lib/form-validators/validators-extension/less-than-equal-to-validator.extension.js +0 -11
- package/esm2015/lib/form-validators/validators-extension/less-than-validator.extension.js +0 -11
- package/esm2015/lib/form-validators/validators-extension/longitude-validator.extension.js +0 -7
- package/esm2015/lib/form-validators/validators-extension/lowercase-validator.extension.js +0 -7
- package/esm2015/lib/form-validators/validators-extension/mac-validator.extension.js +0 -7
- package/esm2015/lib/form-validators/validators-extension/mask-validator.extension.js +0 -7
- package/esm2015/lib/form-validators/validators-extension/maxDate-validator.extension.js +0 -11
- package/esm2015/lib/form-validators/validators-extension/maxLength-validator.extension.js +0 -11
- package/esm2015/lib/form-validators/validators-extension/maxNumber-validator.extension.js +0 -11
- package/esm2015/lib/form-validators/validators-extension/maxTime-validator.extension.js +0 -11
- package/esm2015/lib/form-validators/validators-extension/minDate-validator.extension.js +0 -11
- package/esm2015/lib/form-validators/validators-extension/minLength-validator.extension.js +0 -11
- package/esm2015/lib/form-validators/validators-extension/minNumber-validator.extension.js +0 -11
- package/esm2015/lib/form-validators/validators-extension/minTime-validator.extension.js +0 -11
- package/esm2015/lib/form-validators/validators-extension/noneOf-validator.extension.js +0 -11
- package/esm2015/lib/form-validators/validators-extension/not-validator.extension.js +0 -7
- package/esm2015/lib/form-validators/validators-extension/notEmpty-validator.extension.js +0 -7
- package/esm2015/lib/form-validators/validators-extension/numeric-validator.extension.js +0 -11
- package/esm2015/lib/form-validators/validators-extension/odd-validator.extension.js +0 -7
- package/esm2015/lib/form-validators/validators-extension/oneOf-validator.extension.js +0 -11
- package/esm2015/lib/form-validators/validators-extension/or-validator.extension.js +0 -7
- package/esm2015/lib/form-validators/validators-extension/password-validator.extension.js +0 -11
- package/esm2015/lib/form-validators/validators-extension/pattern-validator.extension.js +0 -11
- package/esm2015/lib/form-validators/validators-extension/port-validator.extension.js +0 -7
- package/esm2015/lib/form-validators/validators-extension/primeNumber-validator.extension.js +0 -7
- package/esm2015/lib/form-validators/validators-extension/range-validator.extension.js +0 -11
- package/esm2015/lib/form-validators/validators-extension/required-validator.extension.js +0 -7
- package/esm2015/lib/form-validators/validators-extension/requiredTrue-validator.extension.js +0 -7
- package/esm2015/lib/form-validators/validators-extension/rxweb-validators.js +0 -108
- package/esm2015/lib/form-validators/validators-extension/startsWith-validator.extension.js +0 -11
- package/esm2015/lib/form-validators/validators-extension/time-validator.extension.js +0 -11
- package/esm2015/lib/form-validators/validators-extension/unique-validator.extension.js +0 -7
- package/esm2015/lib/form-validators/validators-extension/uppercase-validator.extension.js +0 -7
- package/esm2015/lib/form-validators/validators-extension/url-validator.extension.js +0 -11
- package/esm2015/lib/form-validators/validators-function/alpha-validation.function.js +0 -37
- package/esm2015/lib/form-validators/validators-function/regex-validation.function.js +0 -16
- package/esm2015/lib/forms/components/generic-form/generic-form.component.js +0 -149
- package/esm2015/lib/forms/directives/mat-form-field-readonly.directive.js +0 -40
- package/esm2015/lib/forms/forms.module.js +0 -70
- package/esm2015/lib/forms/functions/decorators.js +0 -129
- package/esm2015/lib/forms/helpers/abstract-mat-form-field.js +0 -257
- package/esm2015/lib/forms/helpers/value-accessor-base.js +0 -140
- package/esm2015/lib/forms/public_api.js +0 -2
- package/esm2015/lib/forms/validators/equal-validator.directive.js +0 -75
- package/esm2015/lib/forms/validators/native-element-injector.directive.js +0 -38
- package/esm2015/lib/forms/validators/unique-validator-directive.js +0 -78
- package/esm2015/lib/http/http.module.js +0 -14
- package/esm2015/lib/layout/layout-card-over/layout-card-over.component.js +0 -35
- package/esm2015/lib/layout/layout-footer/layout-footer.component.js +0 -48
- package/esm2015/lib/layout/layout-manage-list/layout-manage-list.component.js +0 -125
- package/esm2015/lib/layout/layout-manage-list/layout-manage-list.directives.js +0 -103
- package/esm2015/lib/layout/layout-nav/layout-nav.component.js +0 -59
- package/esm2015/lib/layout/layout-nav-list/layout-nav-list.component.js +0 -111
- package/esm2015/lib/layout/layout-nav-list/layout-nav-list.directives.js +0 -103
- package/esm2015/lib/layout/layout-toggle.class.js +0 -80
- package/esm2015/lib/layout/layout.component.js +0 -77
- package/esm2015/lib/layout/layout.directives.js +0 -103
- package/esm2015/lib/layout/layout.module.js +0 -64
- package/esm2015/lib/layout/navigation-drawer/navigation-drawer.component.js +0 -148
- package/esm2015/lib/media/directives/media-toggle.directive.js +0 -118
- package/esm2015/lib/media/media.module.js +0 -29
- package/esm2015/lib/media/services/media.service.js +0 -116
- package/esm2015/lib/menu/components/menu.component.js +0 -45
- package/esm2015/lib/menu/menu.module.js +0 -38
- package/esm2015/lib/menu/services/menu-items.service.js +0 -26
- package/esm2015/lib/menu/services/menu.resolve.js +0 -61
- package/esm2015/lib/menu/services/menu.service.js +0 -26
- package/esm2015/lib/search/search.module.js +0 -31
- package/esm2015/lib/search/vd-search-box/vd-search-box.component.js +0 -111
- package/esm2015/lib/search/vd-search-input/vd-search-input.component.js +0 -122
- package/esm2015/lib/select/public_api.js +0 -2
- package/esm2015/lib/select/select.component.js +0 -396
- package/esm2015/lib/select/select.module.js +0 -29
- package/esm2015/lib/table/components/dynamic-table/dynamic-table.component.js +0 -264
- package/esm2015/lib/table/components/filter-clear.component.js +0 -45
- package/esm2015/lib/table/components/filter-date.component.js +0 -133
- package/esm2015/lib/table/components/filter-input.component.js +0 -179
- package/esm2015/lib/table/components/filter-select.component.js +0 -309
- package/esm2015/lib/table/directives/data-source-filter.directive.js +0 -43
- package/esm2015/lib/table/functions/decorators.js +0 -137
- package/esm2015/lib/table/functions/functions.js +0 -18
- package/esm2015/lib/table/paginator-intl.js +0 -42
- package/esm2015/lib/table/public_api.js +0 -2
- package/esm2015/lib/table/table.data-source.js +0 -211
- package/esm2015/lib/table/table.module.js +0 -84
- package/esm2015/lib/table/table.static-data-source.js +0 -135
- package/esm2015/messaia-cdk.js +0 -29
- package/fesm2015/messaia-cdk.js +0 -15733
- package/fesm2015/messaia-cdk.js.map +0 -1
- package/messaia-cdk.metadata.json +0 -1
|
@@ -0,0 +1,482 @@
|
|
|
1
|
+
import { ChangeDetectorRef, Directive, HostListener, ViewChild, ViewChildren } from '@angular/core';
|
|
2
|
+
import { MatStepper } from '@angular/material/stepper';
|
|
3
|
+
import { ActivatedRoute } from '@angular/router';
|
|
4
|
+
import { combineLatest } from 'rxjs';
|
|
5
|
+
import { map } from 'rxjs/operators';
|
|
6
|
+
import { Utils } from '../../common/functions/utils';
|
|
7
|
+
import { SaveAction } from '../../common/models/save-action';
|
|
8
|
+
import { BaseComponent } from './base.component';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/router";
|
|
11
|
+
// @dynamic
|
|
12
|
+
export class GenericFormComponent extends BaseComponent {
|
|
13
|
+
/**
|
|
14
|
+
* Constructor
|
|
15
|
+
* @param service
|
|
16
|
+
*/
|
|
17
|
+
constructor(entityCtor, service, route, changeDetectorRef) {
|
|
18
|
+
super(route, changeDetectorRef);
|
|
19
|
+
this.entityCtor = entityCtor;
|
|
20
|
+
this.service = service;
|
|
21
|
+
this.route = route;
|
|
22
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
23
|
+
/**
|
|
24
|
+
* The action of the form (add | edit)
|
|
25
|
+
*/
|
|
26
|
+
this.action = 'add';
|
|
27
|
+
/**
|
|
28
|
+
* Save action
|
|
29
|
+
*/
|
|
30
|
+
this.SaveAction = SaveAction;
|
|
31
|
+
/**
|
|
32
|
+
* Routes
|
|
33
|
+
*/
|
|
34
|
+
this.editSaveAndCloseRoute = '../../';
|
|
35
|
+
this.addSaveAndCloseRoute = '../';
|
|
36
|
+
this.addSaveAndEditRoute = '../edit/';
|
|
37
|
+
this.addSaveAndNewRoute = '../add';
|
|
38
|
+
this.listRoute = this.addSaveAndCloseRoute;
|
|
39
|
+
/**
|
|
40
|
+
* Represents the request errors
|
|
41
|
+
*/
|
|
42
|
+
this.errors = new Array();
|
|
43
|
+
/**
|
|
44
|
+
* Includes
|
|
45
|
+
*/
|
|
46
|
+
this.includes = [];
|
|
47
|
+
/**
|
|
48
|
+
* Update includes
|
|
49
|
+
*/
|
|
50
|
+
this.updateIncludes = [];
|
|
51
|
+
/**
|
|
52
|
+
* Get params
|
|
53
|
+
*/
|
|
54
|
+
this.query = {};
|
|
55
|
+
/**
|
|
56
|
+
* The current date
|
|
57
|
+
*/
|
|
58
|
+
this.currentDate = new Date();
|
|
59
|
+
/**
|
|
60
|
+
* Date & time mask
|
|
61
|
+
*/
|
|
62
|
+
this.dateTimeMask = [/[0-3]/, /[0-9]/, '.', /[0-1]/, /[0-9]/, '.', 2, 0, /[1-2]/, /[0-9]/, ' ', /[0-2]/, /[0-9]/, ':', /[0-5]/, /[0-9]/];
|
|
63
|
+
/**
|
|
64
|
+
* Date mask
|
|
65
|
+
*/
|
|
66
|
+
this.dateMask = [/[0-3]/, /[0-9]/, '.', /[0-1]/, /[0-9]/, '.', 2, 0, /[1-2]/, /[0-9]/];
|
|
67
|
+
/**
|
|
68
|
+
* Time mask
|
|
69
|
+
*/
|
|
70
|
+
this.timeMask = [/[0-2]/, /[0-9]/, ':', /[0-5]/, /[0-9]/];
|
|
71
|
+
/**
|
|
72
|
+
* A pattern to validate dates
|
|
73
|
+
*/
|
|
74
|
+
this.datePattern = `(?:(?:31(\\/|-|\\.)(?:0?[13578]|1[02]))\\1|(?:(?:29|30)(\\/|-|\\.)(?:0?[1,3-9]|1[0-2])\\2))(?:(?:1[6-9]|[2-9]\\d)?\\d{2})$|^(?:29(\\/|-|\\.)0?2\\3(?:(?:(?:1[6-9]|[2-9]\\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\\d|2[0-8])(\\/|-|\\.)(?:(?:0?[1-9])|(?:1[0-2]))\\4(?:(?:1[6-9]|[2-9]\\d)?\\d{2})`;
|
|
75
|
+
/**
|
|
76
|
+
* Phone prefix validation pattern
|
|
77
|
+
*/
|
|
78
|
+
this.phonePrefixPattern = '^(0\\d{2,6})$';
|
|
79
|
+
/**
|
|
80
|
+
* Phone number validation pattern
|
|
81
|
+
*/
|
|
82
|
+
this.phoneNumberPattern = '^(\\d{3,30})$';
|
|
83
|
+
/**
|
|
84
|
+
* Password validation pattern
|
|
85
|
+
*/
|
|
86
|
+
this.passwordPattern = '^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[$@$!%*?&])[A-Za-z\\d$@$!%*?&]{6,}';
|
|
87
|
+
/**
|
|
88
|
+
* Defaults modules and toolbar
|
|
89
|
+
*/
|
|
90
|
+
this.editorOptions = {
|
|
91
|
+
modules: {
|
|
92
|
+
toolbar: [
|
|
93
|
+
['bold', 'italic', 'underline'],
|
|
94
|
+
[{ 'list': 'ordered' }, { 'list': 'bullet' }],
|
|
95
|
+
[{ 'indent': '-1' }, { 'indent': '+1' }],
|
|
96
|
+
[{ 'size': ['small', false, 'large', 'huge'] }],
|
|
97
|
+
[{ 'header': [1, 2, 3, 4, 5, 6, false] }],
|
|
98
|
+
[{ 'color': new Array() }, { 'background': new Array() }],
|
|
99
|
+
['link', 'image']
|
|
100
|
+
],
|
|
101
|
+
clipboard: {
|
|
102
|
+
matchVisual: false
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
this.listRoute = this.addSaveAndCloseRoute;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Called after the constructor, initializing input properties,
|
|
110
|
+
* and the first call to ngOnChanges.
|
|
111
|
+
*/
|
|
112
|
+
ngOnInit() {
|
|
113
|
+
super.ngOnInit();
|
|
114
|
+
/* Get id from the url */
|
|
115
|
+
let id = this.route.snapshot.paramMap.get('id');
|
|
116
|
+
if (id > 0) {
|
|
117
|
+
this.id = id;
|
|
118
|
+
}
|
|
119
|
+
else if (!this.id && this.route.snapshot?.data?.id) {
|
|
120
|
+
this.id = this.route.snapshot?.data?.id;
|
|
121
|
+
}
|
|
122
|
+
/* Set some variable for edit mode */
|
|
123
|
+
if (this.id) {
|
|
124
|
+
this.action = 'edit';
|
|
125
|
+
this.isEditMode = true;
|
|
126
|
+
this.listRoute = this.editSaveAndCloseRoute;
|
|
127
|
+
}
|
|
128
|
+
/* Get the return url if any */
|
|
129
|
+
this.route.queryParams.subscribe(x => {
|
|
130
|
+
this.returnUrl = x.returnUrl ? decodeURIComponent(atob(x.returnUrl)) : null;
|
|
131
|
+
this.listRoute = this.returnUrl || this.listRoute;
|
|
132
|
+
});
|
|
133
|
+
/* Get route params */
|
|
134
|
+
var params = this.route.params.pipe(map((x) => {
|
|
135
|
+
let params = {};
|
|
136
|
+
/* Get the return url if any */
|
|
137
|
+
this.returnUrl = x.returnUrl ? decodeURIComponent(atob(x.returnUrl)) : this.returnUrl;
|
|
138
|
+
this.listRoute = this.returnUrl || this.listRoute;
|
|
139
|
+
/* Clone params to query */
|
|
140
|
+
for (let [key, value] of Object.entries(x)) {
|
|
141
|
+
if (!['id', 'returnurl', 'panelId'].includes(key.toLocaleLowerCase())) {
|
|
142
|
+
params[key] = isNaN(+value) ? value : +value;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return params;
|
|
146
|
+
}));
|
|
147
|
+
/* Combine the data */
|
|
148
|
+
combineLatest([params, this.route.data.pipe(map((data) => data.query || {}))])
|
|
149
|
+
.pipe(map(([a, b]) => Object.assign(a, b)))
|
|
150
|
+
.subscribe(x => {
|
|
151
|
+
Object.assign(this.query, x);
|
|
152
|
+
/* Create a new instance of the TEntity */
|
|
153
|
+
if (!this.isEditMode) {
|
|
154
|
+
this.item = Object.assign(this.newInstance(), this.query);
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Lifecycle hook that is called after a component's view has been fully initialized.
|
|
160
|
+
*/
|
|
161
|
+
ngAfterViewInit() {
|
|
162
|
+
super.ngAfterViewInit();
|
|
163
|
+
/* Set page title */
|
|
164
|
+
this.title = this.titleService.getTitle();
|
|
165
|
+
/* Set focus */
|
|
166
|
+
this.focus();
|
|
167
|
+
/*
|
|
168
|
+
* Force a new change detection cycle since change detections
|
|
169
|
+
* have finished when `ngAfterViewInit` is executed
|
|
170
|
+
*/
|
|
171
|
+
this.changeDetectorRef.detectChanges();
|
|
172
|
+
/* Load item from server */
|
|
173
|
+
this.loadItem();
|
|
174
|
+
/* Listen for stepper selection changes */
|
|
175
|
+
this.matStepper?.selectionChange?.subscribe((event) => this.onAfterStepChange(event));
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Loads an item by ID
|
|
179
|
+
*/
|
|
180
|
+
loadItem() {
|
|
181
|
+
if (this.isEditMode && this.id > 0) {
|
|
182
|
+
this.isLoading = true;
|
|
183
|
+
this.changeDetectorRef.detectChanges();
|
|
184
|
+
this.service.get(this.id, Object.assign(this.query || {}, { includes: this.includes }), { 'Disable-Cache': 'Yes' })
|
|
185
|
+
.subscribe(item => {
|
|
186
|
+
this.item = Object.assign(this.newInstance(), item);
|
|
187
|
+
this.isLoading = false;
|
|
188
|
+
this.afterItemLoaded();
|
|
189
|
+
}, _ => this.isLoading = false);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Saves data into database.
|
|
194
|
+
* @param action
|
|
195
|
+
*/
|
|
196
|
+
save(action = SaveAction.SaveAndClose, form = null) {
|
|
197
|
+
if (form && !this.isFormValid(form)) {
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
this.isSaving = true;
|
|
201
|
+
this.beforeSubmit(action);
|
|
202
|
+
if (this.isEditMode) {
|
|
203
|
+
this.update({ params: Utils.toHttpParams({ includes: this.updateIncludes }) })
|
|
204
|
+
.subscribe(_ => {
|
|
205
|
+
this.afterSubmit(action);
|
|
206
|
+
}, error => this.parseErrors(error));
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
this.create()
|
|
210
|
+
.subscribe(response => {
|
|
211
|
+
if (action == SaveAction.SaveAndEdit) {
|
|
212
|
+
this.id = response.id;
|
|
213
|
+
}
|
|
214
|
+
this.afterSubmit(action);
|
|
215
|
+
if (form) {
|
|
216
|
+
Object.keys(form.controls).forEach(key => {
|
|
217
|
+
let ctr = form.controls[key];
|
|
218
|
+
ctr.markAsPristine();
|
|
219
|
+
ctr.markAsUntouched();
|
|
220
|
+
ctr.updateValueAndValidity();
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
}, error => this.parseErrors(error));
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Validates the form
|
|
228
|
+
* @param form
|
|
229
|
+
*/
|
|
230
|
+
isFormValid(form = null) {
|
|
231
|
+
/* Print some debug information */
|
|
232
|
+
if (this.debug) {
|
|
233
|
+
console.log('Form:', form);
|
|
234
|
+
Object.keys(form.controls).forEach(key => {
|
|
235
|
+
const controlErrors = form.controls[key].errors;
|
|
236
|
+
if (controlErrors != null) {
|
|
237
|
+
Object.keys(controlErrors).forEach(keyError => {
|
|
238
|
+
console.log('Key control: ' + key + ', keyError: ' + keyError + ', err value: ', controlErrors[keyError]);
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
/* If the form ist not valid.. */
|
|
244
|
+
if (!form.valid) {
|
|
245
|
+
/* Mark invalid controls as dirtty and touched */
|
|
246
|
+
Object.keys(form.controls)
|
|
247
|
+
.filter(x => !form.controls[x].valid)
|
|
248
|
+
.forEach(key => this.invalidateControl(form.controls[key]));
|
|
249
|
+
/* Show error messages */
|
|
250
|
+
(async () => {
|
|
251
|
+
/* Wait until 'mat-error' displayed */
|
|
252
|
+
await new Promise(y => setTimeout(y, 200));
|
|
253
|
+
/* Parse the error messages */
|
|
254
|
+
var errors = Array();
|
|
255
|
+
Object.keys(form.controls)
|
|
256
|
+
.filter(x => !form.controls[x].valid)
|
|
257
|
+
.forEach(key => {
|
|
258
|
+
/* Get error text */
|
|
259
|
+
var error = this.getElementError(form.controls[key].nativeElement);
|
|
260
|
+
if (error) {
|
|
261
|
+
errors.push(error);
|
|
262
|
+
}
|
|
263
|
+
});
|
|
264
|
+
/* Build error message */
|
|
265
|
+
var message = errors.length ? errors.slice(0, 3).join('\n') : `Bitte überprüfen Sie Ihre Abgaben und korrigieren fehlerhafte Eingaben!`;
|
|
266
|
+
/* show a notice */
|
|
267
|
+
this.snackBarService.open(message, 'Ok', { duration: 3000, panelClass: ['error'] });
|
|
268
|
+
})();
|
|
269
|
+
return false;
|
|
270
|
+
}
|
|
271
|
+
return true;
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Resets form controls
|
|
275
|
+
* @param form
|
|
276
|
+
* @returns
|
|
277
|
+
*/
|
|
278
|
+
resetForm(form) {
|
|
279
|
+
if (!form) {
|
|
280
|
+
return;
|
|
281
|
+
}
|
|
282
|
+
Object.keys(form.controls).forEach(key => {
|
|
283
|
+
let ctr = form.controls[key];
|
|
284
|
+
ctr.markAsPristine();
|
|
285
|
+
ctr.markAsUntouched();
|
|
286
|
+
ctr.updateValueAndValidity();
|
|
287
|
+
});
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Invalidate controls recursively
|
|
291
|
+
* @param control
|
|
292
|
+
*/
|
|
293
|
+
invalidateControl(control) {
|
|
294
|
+
/* Check the control against null */
|
|
295
|
+
if (!control) {
|
|
296
|
+
return;
|
|
297
|
+
}
|
|
298
|
+
/* Check if the control is a group */
|
|
299
|
+
let formGroup = control;
|
|
300
|
+
if (formGroup && formGroup.controls) {
|
|
301
|
+
Object.keys(formGroup.controls)
|
|
302
|
+
.filter(x => !formGroup.controls[x].valid)
|
|
303
|
+
.forEach(x => this.invalidateControl(formGroup.controls[x]));
|
|
304
|
+
}
|
|
305
|
+
else {
|
|
306
|
+
control.markAsDirty();
|
|
307
|
+
control.markAsTouched();
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Saves data and navigates to edit view
|
|
312
|
+
*/
|
|
313
|
+
apply() {
|
|
314
|
+
this.save(SaveAction.SaveAndEdit);
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Loads the previous URL in the history list.
|
|
318
|
+
* @param action
|
|
319
|
+
*/
|
|
320
|
+
back(action = SaveAction.SaveAndClose) {
|
|
321
|
+
if (action == SaveAction.SaveAndClose && this.returnUrl) {
|
|
322
|
+
var urlParts = Utils.getUrlParts(this.returnUrl);
|
|
323
|
+
this.router.navigate([urlParts.url], { queryParams: urlParts.params, fragment: urlParts.hash });
|
|
324
|
+
}
|
|
325
|
+
else {
|
|
326
|
+
if (this.isEditMode) {
|
|
327
|
+
if (action == SaveAction.SaveAndClose) {
|
|
328
|
+
this.location.back();
|
|
329
|
+
}
|
|
330
|
+
else if (action == SaveAction.SaveAndEdit) {
|
|
331
|
+
this.reloadPage();
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
else {
|
|
335
|
+
if (action == SaveAction.SaveAndClose) {
|
|
336
|
+
this.location.back();
|
|
337
|
+
}
|
|
338
|
+
else if (action == SaveAction.SaveAndEdit && this.id > 0) {
|
|
339
|
+
this.router.navigate([`${this.addSaveAndEditRoute}${this.id}`], { relativeTo: this.route });
|
|
340
|
+
}
|
|
341
|
+
else if (action == SaveAction.SaveAndNew) {
|
|
342
|
+
this.afterReload();
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* Creates a new instance of the TEntity
|
|
349
|
+
*/
|
|
350
|
+
newInstance() {
|
|
351
|
+
return this.item = new this.entityCtor();
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Creates the entity
|
|
355
|
+
*/
|
|
356
|
+
create(httpOptions) {
|
|
357
|
+
this.beforeCreate();
|
|
358
|
+
return this.service.create(this.item, null, Object.assign(httpOptions || {}, { headers: this.toHttpHeaders({ 'Show-Message': 'yes' }) }), false);
|
|
359
|
+
}
|
|
360
|
+
/**
|
|
361
|
+
* updates the entity
|
|
362
|
+
*/
|
|
363
|
+
update(httpOptions) {
|
|
364
|
+
this.beforeUpdate();
|
|
365
|
+
return this.service.update(this.id, this.item, null, Object.assign(httpOptions || {}, { headers: this.toHttpHeaders({ 'Show-Message': 'yes' }) }), false);
|
|
366
|
+
}
|
|
367
|
+
/**
|
|
368
|
+
* Includes some navigations
|
|
369
|
+
* @param inc
|
|
370
|
+
* @param update
|
|
371
|
+
*/
|
|
372
|
+
include(inc, update = false) {
|
|
373
|
+
this.includes.push(inc);
|
|
374
|
+
if (update) {
|
|
375
|
+
this.updateIncludes.push(inc);
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* Event emitted when the selected step has changed.
|
|
380
|
+
* @param $event
|
|
381
|
+
*/
|
|
382
|
+
onAfterStepChange($event) { }
|
|
383
|
+
/**
|
|
384
|
+
* Called after the item is loaded
|
|
385
|
+
*/
|
|
386
|
+
afterItemLoaded() { }
|
|
387
|
+
;
|
|
388
|
+
/**
|
|
389
|
+
* Called before the entity get created
|
|
390
|
+
*/
|
|
391
|
+
beforeCreate() { }
|
|
392
|
+
;
|
|
393
|
+
/**
|
|
394
|
+
* Called before the entity get updated
|
|
395
|
+
*/
|
|
396
|
+
beforeUpdate() { }
|
|
397
|
+
;
|
|
398
|
+
/**
|
|
399
|
+
* Called before data submition
|
|
400
|
+
*/
|
|
401
|
+
beforeSubmit(_ = SaveAction.SaveAndClose) { }
|
|
402
|
+
/**
|
|
403
|
+
* Called after data submition
|
|
404
|
+
*/
|
|
405
|
+
afterSubmit(action = SaveAction.SaveAndClose) {
|
|
406
|
+
this.isSaving = false;
|
|
407
|
+
this.back(action);
|
|
408
|
+
}
|
|
409
|
+
/**
|
|
410
|
+
* Called after page reloaded
|
|
411
|
+
*/
|
|
412
|
+
afterReload() {
|
|
413
|
+
this.item = Object.assign(this.newInstance(), this.query);
|
|
414
|
+
}
|
|
415
|
+
/**
|
|
416
|
+
* Sets focus to first input
|
|
417
|
+
*/
|
|
418
|
+
focus() {
|
|
419
|
+
/* Set focus to first element */
|
|
420
|
+
if (this.input && this.input.first && this.input.first.nativeElement) {
|
|
421
|
+
this.input.first.nativeElement.focus();
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
/**
|
|
425
|
+
* Gets element error
|
|
426
|
+
* @param nativeElement
|
|
427
|
+
*/
|
|
428
|
+
getElementError(nativeElement) {
|
|
429
|
+
/* Get paranet element 'mat-form-field' */
|
|
430
|
+
var matFormField = nativeElement.closest('.mat-form-field');
|
|
431
|
+
if (!matFormField) {
|
|
432
|
+
return null;
|
|
433
|
+
}
|
|
434
|
+
/* Get child element 'mat-error' */
|
|
435
|
+
var matError = matFormField.querySelector('.mat-error');
|
|
436
|
+
if (!matError) {
|
|
437
|
+
return null;
|
|
438
|
+
}
|
|
439
|
+
return matError.textContent;
|
|
440
|
+
}
|
|
441
|
+
/**
|
|
442
|
+
* Responds to user-initiated events
|
|
443
|
+
* @param event
|
|
444
|
+
*/
|
|
445
|
+
handleKeyboardEvent(event) {
|
|
446
|
+
if (event.ctrlKey || event.metaKey) {
|
|
447
|
+
switch (String.fromCharCode(event.which).toLowerCase()) {
|
|
448
|
+
case 's':
|
|
449
|
+
event.preventDefault();
|
|
450
|
+
this.save(SaveAction.SaveAndClose);
|
|
451
|
+
break;
|
|
452
|
+
case 'd':
|
|
453
|
+
event.preventDefault();
|
|
454
|
+
this.save(SaveAction.SaveAndNew);
|
|
455
|
+
break;
|
|
456
|
+
case 'e':
|
|
457
|
+
event.preventDefault();
|
|
458
|
+
this.save(SaveAction.SaveAndEdit);
|
|
459
|
+
break;
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
/* Cancel the form, if the user press the ESC key */
|
|
463
|
+
if (event.keyCode == 27) {
|
|
464
|
+
this.back();
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
/** @nocollapse */ /** @nocollapse */ GenericFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: GenericFormComponent, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
|
|
469
|
+
/** @nocollapse */ /** @nocollapse */ GenericFormComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.3", type: GenericFormComponent, host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" } }, viewQueries: [{ propertyName: "matStepper", first: true, predicate: MatStepper, descendants: true }, { propertyName: "input", predicate: ["focus"], descendants: true }], usesInheritance: true, ngImport: i0 });
|
|
470
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: GenericFormComponent, decorators: [{
|
|
471
|
+
type: Directive
|
|
472
|
+
}], ctorParameters: function () { return [{ type: undefined }, { type: undefined }, { type: i1.ActivatedRoute }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { matStepper: [{
|
|
473
|
+
type: ViewChild,
|
|
474
|
+
args: [MatStepper]
|
|
475
|
+
}], input: [{
|
|
476
|
+
type: ViewChildren,
|
|
477
|
+
args: ['focus']
|
|
478
|
+
}], handleKeyboardEvent: [{
|
|
479
|
+
type: HostListener,
|
|
480
|
+
args: ['document:keydown', ['$event']]
|
|
481
|
+
}] } });
|
|
482
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Jhc2UvY29tcG9uZW50cy9nZW5lcmljLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBRWpELFdBQVc7QUFFWCxNQUFNLE9BQWdCLG9CQUF3RixTQUFRLGFBQWE7SUFvSWxJOzs7T0FHRztJQUNILFlBQ1EsVUFBOEIsRUFDM0IsT0FBaUIsRUFDakIsS0FBcUIsRUFDckIsaUJBQW9DO1FBRTlDLEtBQUssQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUx6QixlQUFVLEdBQVYsVUFBVSxDQUFvQjtRQUMzQixZQUFPLEdBQVAsT0FBTyxDQUFVO1FBQ2pCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUEzSS9DOztXQUVHO1FBQ0ksV0FBTSxHQUFXLEtBQUssQ0FBQztRQVk5Qjs7V0FFRztRQUNJLGVBQVUsR0FBc0IsVUFB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LFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFDakMsTUFBTTtnQkFFUCxLQUFLLEdBQUc7b0JBQ1AsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDbEMsTUFBTTthQUNQO1NBQ0Q7UUFFRCxvREFBb0Q7UUFDcEQsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFBRTtZQUN4QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDWjtJQUNGLENBQUM7O3VKQXZpQm9CLG9CQUFvQjsySUFBcEIsb0JBQW9CLGtKQTJIOUIsVUFBVTsyRkEzSEEsb0JBQW9CO2tCQUR6QyxTQUFTOytLQTZIQyxVQUFVO3NCQURuQixTQUFTO3VCQUFDLFVBQVU7Z0JBT2QsS0FBSztzQkFEWCxZQUFZO3VCQUFDLE9BQU87Z0JBOFlyQixtQkFBbUI7c0JBRGxCLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGVwcGVyU2VsZWN0aW9uRXZlbnQgfSBmcm9tICdAYW5ndWxhci9jZGsvc3RlcHBlcic7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtR3JvdXAsIE5nRm9ybSwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0U3RlcHBlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3N0ZXBwZXInO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4uLy4uL2NvbW1vbi9mdW5jdGlvbnMvdXRpbHMnO1xyXG5pbXBvcnQgeyBJRW50aXR5IH0gZnJvbSAnLi4vLi4vY29tbW9uL21vZGVscy9lbnRpdHknO1xyXG5pbXBvcnQgeyBTYXZlQWN0aW9uIH0gZnJvbSAnLi4vLi4vY29tbW9uL21vZGVscy9zYXZlLWFjdGlvbic7XHJcbmltcG9ydCB7IEdlbmVyaWNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaHR0cC9zZXJ2aWNlcy9nZW5lcmljLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9iYXNlLmNvbXBvbmVudCc7XHJcblxyXG4vLyBAZHluYW1pY1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEdlbmVyaWNGb3JtQ29tcG9uZW50PFRFbnRpdHkgZXh0ZW5kcyBJRW50aXR5LCBUU2VydmljZSBleHRlbmRzIEdlbmVyaWNTZXJ2aWNlPFRFbnRpdHk+PiBleHRlbmRzIEJhc2VDb21wb25lbnQge1xyXG5cdC8qKlxyXG5cdCAqIFRoZSBhY3Rpb24gb2YgdGhlIGZvcm0gKGFkZCB8IGVkaXQpXHJcblx0ICovXHJcblx0cHVibGljIGFjdGlvbjogc3RyaW5nID0gJ2FkZCc7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEEgdXJsIHRvIHJldHVybiB0byBhZnRlciBzYXZlXHJcblx0ICovXHJcblx0cHVibGljIHJldHVyblVybDogc3RyaW5nO1xyXG5cclxuXHQvKipcclxuXHQgKiBBY3Rpb24gPSBlZGl0P1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBpc0VkaXRNb2RlOiBib29sZWFuO1xyXG5cclxuXHQvKipcclxuXHQgKiBTYXZlIGFjdGlvblxyXG5cdCAqL1xyXG5cdHB1YmxpYyBTYXZlQWN0aW9uOiB0eXBlb2YgU2F2ZUFjdGlvbiA9IFNhdmVBY3Rpb247XHJcblxyXG5cdC8qKlxyXG5cdCAqIFJvdXRlc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBlZGl0U2F2ZUFuZENsb3NlUm91dGU6IHN0cmluZyA9ICcuLi8uLi8nO1xyXG5cdHB1YmxpYyBhZGRTYXZlQW5kQ2xvc2VSb3V0ZTogc3RyaW5nID0gJy4uLyc7XHJcblx0cHVibGljIGFkZFNhdmVBbmRFZGl0Um91dGU6IHN0cmluZyA9ICcuLi9lZGl0Lyc7XHJcblx0cHVibGljIGFkZFNhdmVBbmROZXdSb3V0ZTogc3RyaW5nID0gJy4uL2FkZCc7XHJcblx0cHVibGljIGxpc3RSb3V0ZTogc3RyaW5nID0gdGhpcy5hZGRTYXZlQW5kQ2xvc2VSb3V0ZTtcclxuXHJcblx0LyoqXHJcblx0ICogVGhlIGlkIG9mIHRoZSBpdGVtIHRvIGxvYWRcclxuXHQgKi9cclxuXHRwdWJsaWMgaWQ6IG51bWJlcjtcclxuXHJcblx0LyoqXHJcblx0ICogVGhlIGN1cnJlbnQgaXRlbSB0byBhZGQgb3IgZWRpdFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBpdGVtOiBURW50aXR5O1xyXG5cclxuXHQvKipcclxuXHQgKiBSZXByZXNlbnRzIHRoZSByZXF1ZXN0IGVycm9yc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBlcnJvcnM6IEFycmF5PHN0cmluZz4gPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xyXG5cclxuXHQvKipcclxuXHQgKiBJbmNsdWRlc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBpbmNsdWRlczogc3RyaW5nW10gPSBbXTtcclxuXHJcblx0LyoqXHJcblx0ICogVXBkYXRlIGluY2x1ZGVzXHJcblx0ICovXHJcblx0cHVibGljIHVwZGF0ZUluY2x1ZGVzOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuXHQvKipcclxuXHQgKiBHZXQgcGFyYW1zXHJcblx0ICovXHJcblx0cHVibGljIHF1ZXJ5OiBhbnkgPSB7fTtcclxuXHJcblx0LyoqXHJcblx0ICogVGhlIGN1cnJlbnQgZGF0ZVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBjdXJyZW50RGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIERhdGUgJiB0aW1lIG1hc2tcclxuXHQgKi9cclxuXHRwdWJsaWMgZGF0ZVRpbWVNYXNrID0gWy9bMC0zXS8sIC9bMC05XS8sICcuJywgL1swLTFdLywgL1swLTldLywgJy4nLCAyLCAwLCAvWzEtMl0vLCAvWzAtOV0vLCAnICcsIC9bMC0yXS8sIC9bMC05XS8sICc6JywgL1swLTVdLywgL1swLTldL107XHJcblxyXG5cdC8qKlxyXG5cdCAqIERhdGUgbWFza1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBkYXRlTWFzayA9IFsvWzAtM10vLCAvWzAtOV0vLCAnLicsIC9bMC0xXS8sIC9bMC05XS8sICcuJywgMiwgMCwgL1sxLTJdLywgL1swLTldL107XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRpbWUgbWFza1xyXG5cdCAqL1xyXG5cdHB1YmxpYyB0aW1lTWFzayA9IFsvWzAtMl0vLCAvWzAtOV0vLCAnOicsIC9bMC01XS8sIC9bMC05XS9dO1xyXG5cclxuXHQvKipcclxuXHQgKiBBIHBhdHRlcm4gdG8gdmFsaWRhdGUgZGF0ZXNcclxuXHQgKi9cclxuXHRwdWJsaWMgZGF0ZVBhdHRlcm46IHN0cmluZyA9IGAoPzooPzozMShcXFxcL3wtfFxcXFwuKSg/OjA/WzEzNTc4XXwxWzAyXSkpXFxcXDF8KD86KD86Mjl8MzApKFxcXFwvfC18XFxcXC4pKD86MD9bMSwzLTldfDFbMC0yXSlcXFxcMikpKD86KD86MVs2LTldfFsyLTldXFxcXGQpP1xcXFxkezJ9KSR8Xig/OjI5KFxcXFwvfC18XFxcXC4pMD8yXFxcXDMoPzooPzooPzoxWzYtOV18WzItOV1cXFxcZCk/KD86MFs0OF18WzI0NjhdWzA0OF18WzEzNTc5XVsyNl0pfCg/Oig/OjE2fFsyNDY4XVswNDhdfFszNTc5XVsyNl0pMDApKSkpJHxeKD86MD9bMS05XXwxXFxcXGR8MlswLThdKShcXFxcL3wtfFxcXFwuKSg/Oig/OjA/WzEtOV0pfCg/OjFbMC0yXSkpXFxcXDQoPzooPzoxWzYtOV18WzItOV1cXFxcZCk/XFxcXGR7Mn0pYDtcclxuXHJcblx0LyoqXHJcblx0ICogUGhvbmUgcHJlZml4IHZhbGlkYXRpb24gcGF0dGVyblxyXG5cdCAqL1xyXG5cdHB1YmxpYyBwaG9uZVByZWZpeFBhdHRlcm46IHN0cmluZyA9ICdeKDBcXFxcZHsyLDZ9KSQnO1xyXG5cclxuXHQvKipcclxuXHQgKiBQaG9uZSBudW1iZXIgdmFsaWRhdGlvbiBwYXR0ZXJuXHJcblx0ICovXHJcblx0cHVibGljIHBob25lTnVtYmVyUGF0dGVybjogc3RyaW5nID0gJ14oXFxcXGR7MywzMH0pJCc7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFBhc3N3b3JkIHZhbGlkYXRpb24gcGF0dGVyblxyXG5cdCAqL1xyXG5cdHB1YmxpYyBwYXNzd29yZFBhdHRlcm46IHN0cmluZyA9ICdeKD89LipbYS16XSkoPz0uKltBLVpdKSg/PS4qXFxcXGQpKD89LipbJEAkISUqPyZdKVtBLVphLXpcXFxcZCRAJCElKj8mXXs2LH0nO1xyXG5cclxuXHQvKipcclxuXHQgKiBEZWZhdWx0cyBtb2R1bGVzIGFuZCB0b29sYmFyXHJcblx0ICovXHJcblx0cHVibGljIGVkaXRvck9wdGlvbnMgPSB7XHJcblx0XHRtb2R1bGVzOiB7XHJcblx0XHRcdHRvb2xiYXI6IFtcclxuXHRcdFx0XHRbJ2JvbGQnLCAnaXRhbGljJywgJ3VuZGVybGluZSddLFxyXG5cdFx0XHRcdFt7ICdsaXN0JzogJ29yZGVyZWQnIH0sIHsgJ2xpc3QnOiAnYnVsbGV0JyB9XSxcclxuXHRcdFx0XHRbeyAnaW5kZW50JzogJy0xJyB9LCB7ICdpbmRlbnQnOiAnKzEnIH1dLFxyXG5cdFx0XHRcdFt7ICdzaXplJzogWydzbWFsbCcsIGZhbHNlLCAnbGFyZ2UnLCAnaHVnZSddIH1dLFxyXG5cdFx0XHRcdFt7ICdoZWFkZXInOiBbMSwgMiwgMywgNCwgNSwgNiwgZmFsc2VdIH1dLFxyXG5cdFx0XHRcdFt7ICdjb2xvcic6IG5ldyBBcnJheTxhbnk+KCkgfSwgeyAnYmFja2dyb3VuZCc6IG5ldyBBcnJheTxhbnk+KCkgfV0sXHJcblx0XHRcdFx0WydsaW5rJywgJ2ltYWdlJ11cclxuXHRcdFx0XSxcclxuXHRcdFx0Y2xpcGJvYXJkOiB7XHJcblx0XHRcdFx0bWF0Y2hWaXN1YWw6IGZhbHNlXHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBNYXRTdGVwcGVyIHJlZlxyXG5cdCAqL1xyXG5cdEBWaWV3Q2hpbGQoTWF0U3RlcHBlcilcclxuXHRwcm90ZWN0ZWQgbWF0U3RlcHBlcjogTWF0U3RlcHBlcjtcclxuXHJcblx0LyoqXHJcblx0ICogQSByZWZlcmVuY2UgdG8gdGhlIGlucHV0IGVsZW1lbnRcclxuXHQgKi9cclxuXHRAVmlld0NoaWxkcmVuKCdmb2N1cycpXHJcblx0cHVibGljIGlucHV0OiBhbnk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIENvbnN0cnVjdG9yXHJcblx0ICogQHBhcmFtIHNlcnZpY2UgXHJcblx0ICovXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwdWJsaWMgZW50aXR5Q3RvcjogeyBuZXcoKTogVEVudGl0eSB9LFxyXG5cdFx0cHJvdGVjdGVkIHNlcnZpY2U6IFRTZXJ2aWNlLFxyXG5cdFx0cHJvdGVjdGVkIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuXHRcdHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuXHQpIHtcclxuXHRcdHN1cGVyKHJvdXRlLCBjaGFuZ2VEZXRlY3RvclJlZik7XHJcblx0XHR0aGlzLmxpc3RSb3V0ZSA9IHRoaXMuYWRkU2F2ZUFuZENsb3NlUm91dGU7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBDYWxsZWQgYWZ0ZXIgdGhlIGNvbnN0cnVjdG9yLCBpbml0aWFsaXppbmcgaW5wdXQgcHJvcGVydGllcywgXHJcblx0ICogYW5kIHRoZSBmaXJzdCBjYWxsIHRvIG5nT25DaGFuZ2VzLlxyXG5cdCAqL1xyXG5cdG5nT25Jbml0KCk6IHZvaWQge1xyXG5cdFx0c3VwZXIubmdPbkluaXQoKTtcclxuXHJcblx0XHQvKiBHZXQgaWQgZnJvbSB0aGUgdXJsICovXHJcblx0XHRsZXQgaWQgPSA8YW55PnRoaXMucm91dGUuc25hcHNob3QucGFyYW1NYXAuZ2V0KCdpZCcpO1xyXG5cdFx0aWYgKGlkID4gMCkge1xyXG5cdFx0XHR0aGlzLmlkID0gaWQ7XHJcblx0XHR9IGVsc2UgaWYgKCF0aGlzLmlkICYmIHRoaXMucm91dGUuc25hcHNob3Q/LmRhdGE/LmlkKSB7XHJcblx0XHRcdHRoaXMuaWQgPSB0aGlzLnJvdXRlLnNuYXBzaG90Py5kYXRhPy5pZDtcclxuXHRcdH1cclxuXHJcblx0XHQvKiBTZXQgc29tZSB2YXJpYWJsZSBmb3IgZWRpdCBtb2RlICovXHJcblx0XHRpZiAodGhpcy5pZCkge1xyXG5cdFx0XHR0aGlzLmFjdGlvbiA9ICdlZGl0JztcclxuXHRcdFx0dGhpcy5pc0VkaXRNb2RlID0gdHJ1ZTtcclxuXHRcdFx0dGhpcy5saXN0Um91dGUgPSB0aGlzLmVkaXRTYXZlQW5kQ2xvc2VSb3V0ZTtcclxuXHRcdH1cclxuXHJcblx0XHQvKiBHZXQgdGhlIHJldHVybiB1cmwgaWYgYW55ICovXHJcblx0XHR0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZSh4ID0+IHtcclxuXHRcdFx0dGhpcy5yZXR1cm5VcmwgPSB4LnJldHVyblVybCA/IGRlY29kZVVSSUNvbXBvbmVudChhdG9iKHgucmV0dXJuVXJsKSkgOiBudWxsO1xyXG5cdFx0XHR0aGlzLmxpc3RSb3V0ZSA9IHRoaXMucmV0dXJuVXJsIHx8IHRoaXMubGlzdFJvdXRlO1xyXG5cdFx0fSk7XHJcblxyXG5cdFx0LyogR2V0IHJvdXRlIHBhcmFtcyAqL1xyXG5cdFx0dmFyIHBhcmFtcyA9IHRoaXMucm91dGUucGFyYW1zLnBpcGUobWFwKCh4OiBhbnkpID0+IHtcclxuXHRcdFx0bGV0IHBhcmFtcyA9IHt9O1xyXG5cclxuXHRcdFx0LyogR2V0IHRoZSByZXR1cm4gdXJsIGlmIGFueSAqL1xyXG5cdFx0XHR0aGlzLnJldHVyblVybCA9IHgucmV0dXJuVXJsID8gZGVjb2RlVVJJQ29tcG9uZW50KGF0b2IoeC5yZXR1cm5VcmwpKSA6IHRoaXMucmV0dXJuVXJsO1xyXG5cdFx0XHR0aGlzLmxpc3RSb3V0ZSA9IHRoaXMucmV0dXJuVXJsIHx8IHRoaXMubGlzdFJvdXRlO1xyXG5cclxuXHRcdFx0LyogQ2xvbmUgcGFyYW1zIHRvIHF1ZXJ5ICovXHJcblx0XHRcdGZvciAobGV0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh4KSkge1xyXG5cdFx0XHRcdGlmICghWydpZCcsICdyZXR1cm51cmwnLCAncGFuZWxJZCddLmluY2x1ZGVzKGtleS50b0xvY2FsZUxvd2VyQ2FzZSgpKSkge1xyXG5cdFx0XHRcdFx0cGFyYW1zW2tleV0gPSBpc05hTigrdmFsdWUpID8gdmFsdWUgOiArdmFsdWU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRyZXR1cm4gcGFyYW1zO1xyXG5cdFx0fSkpO1xyXG5cclxuXHRcdC8qIENvbWJpbmUgdGhlIGRhdGEgKi9cclxuXHRcdGNvbWJpbmVMYXRlc3QoW3BhcmFtcywgdGhpcy5yb3V0ZS5kYXRhLnBpcGUobWFwKChkYXRhOiB7IHF1ZXJ5OiBhbnkgfSkgPT4gZGF0YS5xdWVyeSB8fCB7fSkpXSlcclxuXHRcdFx0LnBpcGUobWFwKChbYSwgYl0pID0+IE9iamVjdC5hc3NpZ24oYSwgYikpKVxyXG5cdFx0XHQuc3Vic2NyaWJlKHggPT4ge1xyXG5cdFx0XHRcdE9iamVjdC5hc3NpZ24odGhpcy5xdWVyeSwgeCk7XHJcblxyXG5cdFx0XHRcdC8qIENyZWF0ZSBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgVEVudGl0eSAqL1xyXG5cdFx0XHRcdGlmICghdGhpcy5pc0VkaXRNb2RlKSB7XHJcblx0XHRcdFx0XHR0aGlzLml0ZW0gPSBPYmplY3QuYXNzaWduKHRoaXMubmV3SW5zdGFuY2UoKSwgdGhpcy5xdWVyeSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIExpZmVjeWNsZSBob29rIHRoYXQgaXMgY2FsbGVkIGFmdGVyIGEgY29tcG9uZW50J3MgdmlldyBoYXMgYmVlbiBmdWxseSBpbml0aWFsaXplZC5cclxuXHQgKi9cclxuXHRuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcblx0XHRzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcclxuXHJcblx0XHQvKiBTZXQgcGFnZSB0aXRsZSAqL1xyXG5cdFx0dGhpcy50aXRsZSA9IHRoaXMudGl0bGVTZXJ2aWNlLmdldFRpdGxlKCk7XHJcblxyXG5cdFx0LyogU2V0IGZvY3VzICovXHJcblx0XHR0aGlzLmZvY3VzKCk7XHJcblxyXG5cdFx0LyogXHJcblx0XHQgKiBGb3JjZSBhIG5ldyBjaGFuZ2UgZGV0ZWN0aW9uIGN5Y2xlIHNpbmNlIGNoYW5nZSBkZXRlY3Rpb25zIFxyXG5cdFx0ICogaGF2ZSBmaW5pc2hlZCB3aGVuIGBuZ0FmdGVyVmlld0luaXRgIGlzIGV4ZWN1dGVkXHJcblx0XHQgKi9cclxuXHRcdHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuXHRcdC8qIExvYWQgaXRlbSBmcm9tIHNlcnZlciAqL1xyXG5cdFx0dGhpcy5sb2FkSXRlbSgpO1xyXG5cclxuXHRcdC8qIExpc3RlbiBmb3Igc3RlcHBlciBzZWxlY3Rpb24gY2hhbmdlcyAqL1xyXG5cdFx0dGhpcy5tYXRTdGVwcGVyPy5zZWxlY3Rpb25DaGFuZ2U/LnN1YnNjcmliZSgoZXZlbnQ6IFN0ZXBwZXJTZWxlY3Rpb25FdmVudCkgPT4gdGhpcy5vbkFmdGVyU3RlcENoYW5nZShldmVudCkpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogTG9hZHMgYW4gaXRlbSBieSBJRFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBsb2FkSXRlbSgpOiB2b2lkIHtcclxuXHRcdGlmICh0aGlzLmlzRWRpdE1vZGUgJiYgdGhpcy5pZCA+IDApIHtcclxuXHRcdFx0dGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG5cdFx0XHR0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcblx0XHRcdHRoaXMuc2VydmljZS5nZXQodGhpcy5pZCwgT2JqZWN0LmFzc2lnbih0aGlzLnF1ZXJ5IHx8IHt9LCB7IGluY2x1ZGVzOiB0aGlzLmluY2x1ZGVzIH0pLCB7ICdEaXNhYmxlLUNhY2hlJzogJ1llcycgfSlcclxuXHRcdFx0XHQuc3Vic2NyaWJlKGl0ZW0gPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5pdGVtID0gT2JqZWN0LmFzc2lnbih0aGlzLm5ld0luc3RhbmNlKCksIDxURW50aXR5Pml0ZW0pO1xyXG5cdFx0XHRcdFx0dGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuXHJcblx0XHRcdFx0XHR0aGlzLmFmdGVySXRlbUxvYWRlZCgpO1xyXG5cdFx0XHRcdH0sIF8gPT4gdGhpcy5pc0xvYWRpbmcgPSBmYWxzZSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBTYXZlcyBkYXRhIGludG8gZGF0YWJhc2UuXHJcblx0ICogQHBhcmFtIGFjdGlvblxyXG5cdCAqL1xyXG5cdHB1YmxpYyBzYXZlKGFjdGlvbjogU2F2ZUFjdGlvbiA9IFNhdmVBY3Rpb24uU2F2ZUFuZENsb3NlLCBmb3JtOiBOZ0Zvcm0gPSBudWxsKTogdm9pZCB7XHJcblx0XHRpZiAoZm9ybSAmJiAhdGhpcy5pc0Zvcm1WYWxpZChmb3JtKSkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5pc1NhdmluZyA9IHRydWU7XHJcblx0XHR0aGlzLmJlZm9yZVN1Ym1pdChhY3Rpb24pO1xyXG5cclxuXHRcdGlmICh0aGlzLmlzRWRpdE1vZGUpIHtcclxuXHRcdFx0dGhpcy51cGRhdGUoeyBwYXJhbXM6IFV0aWxzLnRvSHR0cFBhcmFtcyh7IGluY2x1ZGVzOiB0aGlzLnVwZGF0ZUluY2x1ZGVzIH0pIH0pXHJcblx0XHRcdFx0LnN1YnNjcmliZShfID0+IHtcclxuXHRcdFx0XHRcdHRoaXMuYWZ0ZXJTdWJtaXQoYWN0aW9uKTtcclxuXHRcdFx0XHR9LCBlcnJvciA9PiB0aGlzLnBhcnNlRXJyb3JzKGVycm9yKSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLmNyZWF0ZTxURW50aXR5PigpXHJcblx0XHRcdFx0LnN1YnNjcmliZShyZXNwb25zZSA9PiB7XHJcblx0XHRcdFx0XHRpZiAoYWN0aW9uID09IFNhdmVBY3Rpb24uU2F2ZUFuZEVkaXQpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5pZCA9IHJlc3BvbnNlLmlkO1xyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdHRoaXMuYWZ0ZXJTdWJtaXQoYWN0aW9uKTtcclxuXHJcblx0XHRcdFx0XHRpZiAoZm9ybSkge1xyXG5cdFx0XHRcdFx0XHRPYmplY3Qua2V5cyhmb3JtLmNvbnRyb2xzKS5mb3JFYWNoKGtleSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0bGV0IGN0ciA9IGZvcm0uY29udHJvbHNba2V5XTtcclxuXHRcdFx0XHRcdFx0XHRjdHIubWFya0FzUHJpc3RpbmUoKTtcclxuXHRcdFx0XHRcdFx0XHRjdHIubWFya0FzVW50b3VjaGVkKCk7XHJcblx0XHRcdFx0XHRcdFx0Y3RyLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSwgZXJyb3IgPT4gdGhpcy5wYXJzZUVycm9ycyhlcnJvcikpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogVmFsaWRhdGVzIHRoZSBmb3JtXHJcblx0ICogQHBhcmFtIGZvcm0gXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIGlzRm9ybVZhbGlkKGZvcm06IE5nRm9ybSA9IG51bGwpOiBib29sZWFuIHtcclxuXHRcdC8qIFByaW50IHNvbWUgZGVidWcgaW5mb3JtYXRpb24gKi9cclxuXHRcdGlmICh0aGlzLmRlYnVnKSB7XHJcblx0XHRcdGNvbnNvbGUubG9nKCdGb3JtOicsIGZvcm0pO1xyXG5cclxuXHRcdFx0T2JqZWN0LmtleXMoZm9ybS5jb250cm9scykuZm9yRWFjaChrZXkgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IGNvbnRyb2xFcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgPSBmb3JtLmNvbnRyb2xzW2tleV0uZXJyb3JzO1xyXG5cdFx0XHRcdGlmIChjb250cm9sRXJyb3JzICE9IG51bGwpIHtcclxuXHRcdFx0XHRcdE9iamVjdC5rZXlzKGNvbnRyb2xFcnJvcnMpLmZvckVhY2goa2V5RXJyb3IgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnS2V5IGNvbnRyb2w6ICcgKyBrZXkgKyAnLCBrZXlFcnJvcjogJyArIGtleUVycm9yICsgJywgZXJyIHZhbHVlOiAnLCBjb250cm9sRXJyb3JzW2tleUVycm9yXSk7XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8qIElmIHRoZSBmb3JtIGlzdCBub3QgdmFsaWQuLiAqL1xyXG5cdFx0aWYgKCFmb3JtLnZhbGlkKSB7XHJcblx0XHRcdC8qIE1hcmsgaW52YWxpZCBjb250cm9scyBhcyBkaXJ0dHkgYW5kIHRvdWNoZWQgKi9cclxuXHRcdFx0T2JqZWN0LmtleXMoZm9ybS5jb250cm9scylcclxuXHRcdFx0XHQuZmlsdGVyKHggPT4gIWZvcm0uY29udHJvbHNbeF0udmFsaWQpXHJcblx0XHRcdFx0LmZvckVhY2goa2V5ID0+IHRoaXMuaW52YWxpZGF0ZUNvbnRyb2woZm9ybS5jb250cm9sc1trZXldKSk7XHJcblxyXG5cdFx0XHQvKiBTaG93IGVycm9yIG1lc3NhZ2VzICovXHJcblx0XHRcdChhc3luYyAoKSA9PiB7XHJcblx0XHRcdFx0LyogV2FpdCB1bnRpbCAnbWF0LWVycm9yJyBkaXNwbGF5ZWQgKi9cclxuXHRcdFx0XHRhd2FpdCBuZXcgUHJvbWlzZSh5ID0+IHNldFRpbWVvdXQoeSwgMjAwKSk7XHJcblxyXG5cdFx0XHRcdC8qIFBhcnNlIHRoZSBlcnJvciBtZXNzYWdlcyAqL1xyXG5cdFx0XHRcdHZhciBlcnJvcnMgPSBBcnJheTxzdHJpbmc+KCk7XHJcblx0XHRcdFx0T2JqZWN0LmtleXMoZm9ybS5jb250cm9scylcclxuXHRcdFx0XHRcdC5maWx0ZXIoeCA9PiAhZm9ybS5jb250cm9sc1t4XS52YWxpZClcclxuXHRcdFx0XHRcdC5mb3JFYWNoKGtleSA9PiB7XHJcblx0XHRcdFx0XHRcdC8qIEdldCBlcnJvciB0ZXh0ICovXHJcblx0XHRcdFx0XHRcdHZhciBlcnJvciA9IHRoaXMuZ2V0RWxlbWVudEVycm9yKChmb3JtLmNvbnRyb2xzW2tleV0gYXMgYW55KS5uYXRpdmVFbGVtZW50KTtcclxuXHRcdFx0XHRcdFx0aWYgKGVycm9yKSB7XHJcblx0XHRcdFx0XHRcdFx0ZXJyb3JzLnB1c2goZXJyb3IpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KTtcclxuXHJcblx0XHRcdFx0LyogQnVpbGQgZXJyb3IgbWVzc2FnZSAqL1xyXG5cdFx0XHRcdHZhciBtZXNzYWdlID0gZXJyb3JzLmxlbmd0aCA/IGVycm9ycy5zbGljZSgwLCAzKS5qb2luKCdcXG4nKSA6IGBCaXR0ZSDDvGJlcnByw7xmZW4gU2llIElocmUgQWJnYWJlbiB1bmQga29ycmlnaWVyZW4gZmVobGVyaGFmdGUgRWluZ2FiZW4hYDtcclxuXHJcblx0XHRcdFx0Lyogc2hvdyBhIG5vdGljZSAqL1xyXG5cdFx0XHRcdHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4obWVzc2FnZSwgJ09rJywgeyBkdXJhdGlvbjogMzAwMCwgcGFuZWxDbGFzczogWydlcnJvciddIH0pO1xyXG5cdFx0XHR9KSgpO1xyXG5cclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiB0cnVlO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogUmVzZXRzIGZvcm0gY29udHJvbHNcclxuXHQgKiBAcGFyYW0gZm9ybSBcclxuXHQgKiBAcmV0dXJucyBcclxuXHQgKi9cclxuXHRwdWJsaWMgcmVzZXRGb3JtKGZvcm06IE5nRm9ybSk6IHZvaWQge1xyXG5cdFx0aWYgKCFmb3JtKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHRPYmplY3Qua2V5cyhmb3JtLmNvbnRyb2xzKS5mb3JFYWNoKGtleSA9PiB7XHJcblx0XHRcdGxldCBjdHIgPSBmb3JtLmNvbnRyb2xzW2tleV07XHJcblx0XHRcdGN0ci5tYXJrQXNQcmlzdGluZSgpO1xyXG5cdFx0XHRjdHIubWFya0FzVW50b3VjaGVkKCk7XHJcblx0XHRcdGN0ci51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEludmFsaWRhdGUgY29udHJvbHMgcmVjdXJzaXZlbHlcclxuXHQgKiBAcGFyYW0gY29udHJvbCBcclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgaW52YWxpZGF0ZUNvbnRyb2woY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogdm9pZCB7XHJcblx0XHQvKiBDaGVjayB0aGUgY29udHJvbCBhZ2FpbnN0IG51bGwgKi9cclxuXHRcdGlmICghY29udHJvbCkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0LyogQ2hlY2sgaWYgdGhlIGNvbnRyb2wgaXMgYSBncm91cCAqL1xyXG5cdFx0bGV0IGZvcm1Hcm91cCA9IGNvbnRyb2wgYXMgRm9ybUdyb3VwO1xyXG5cdFx0aWYgKGZvcm1Hcm91cCAmJiBmb3JtR3JvdXAuY29udHJvbHMpIHtcclxuXHRcdFx0T2JqZWN0LmtleXMoZm9ybUdyb3VwLmNvbnRyb2xzKVxyXG5cdFx0XHRcdC5maWx0ZXIoeCA9PiAhZm9ybUdyb3VwLmNvbnRyb2xzW3hdLnZhbGlkKVxyXG5cdFx0XHRcdC5mb3JFYWNoKHggPT4gdGhpcy5pbnZhbGlkYXRlQ29udHJvbChmb3JtR3JvdXAuY29udHJvbHNbeF0pKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGNvbnRyb2wubWFya0FzRGlydHkoKTtcclxuXHRcdFx0Y29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBTYXZlcyBkYXRhIGFuZCBuYXZpZ2F0ZXMgdG8gZWRpdCB2aWV3XHJcblx0ICovXHJcblx0cHVibGljIGFwcGx5KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5zYXZlKFNhdmVBY3Rpb24uU2F2ZUFuZEVkaXQpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogTG9hZHMgdGhlIHByZXZpb3VzIFVSTCBpbiB0aGUgaGlzdG9yeSBsaXN0LlxyXG5cdCAqIEBwYXJhbSBhY3Rpb25cclxuXHQgKi9cclxuXHRwdWJsaWMgYmFjayhhY3Rpb246IFNhdmVBY3Rpb24gPSBTYXZlQWN0aW9uLlNhdmVBbmRDbG9zZSk6IHZvaWQge1xyXG5cdFx0aWYgKGFjdGlvbiA9PSBTYXZlQWN0aW9uLlNhdmVBbmRDbG9zZSAmJiB0aGlzLnJldHVyblVybCkge1xyXG5cdFx0XHR2YXIgdXJsUGFydHMgPSBVdGlscy5nZXRVcmxQYXJ0cyh0aGlzLnJldHVyblVybCk7XHJcblx0XHRcdHRoaXMucm91dGVyLm5hdmlnYXRlKFt1cmxQYXJ0cy51cmxdLCB7IHF1ZXJ5UGFyYW1zOiB1cmxQYXJ0cy5wYXJhbXMsIGZyYWdtZW50OiB1cmxQYXJ0cy5oYXNoIH0pO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0aWYgKHRoaXMuaXNFZGl0TW9kZSkge1xyXG5cdFx0XHRcdGlmIChhY3Rpb24gPT0gU2F2ZUFjdGlvbi5TYXZlQW5kQ2xvc2UpIHtcclxuXHRcdFx0XHRcdHRoaXMubG9jYXRpb24uYmFjaygpO1xyXG5cdFx0XHRcdH0gZWxzZSBpZiAoYWN0aW9uID09IFNhdmVBY3Rpb24uU2F2ZUFuZEVkaXQpIHtcclxuXHRcdFx0XHRcdHRoaXMucmVsb2FkUGFnZSgpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRpZiAoYWN0aW9uID09IFNhdmVBY3Rpb24uU2F2ZUFuZENsb3NlKSB7XHJcblx0XHRcdFx0XHR0aGlzLmxvY2F0aW9uLmJhY2soKTtcclxuXHRcdFx0XHR9IGVsc2UgaWYgKGFjdGlvbiA9PSBTYXZlQWN0aW9uLlNhdmVBbmRFZGl0ICYmIHRoaXMuaWQgPiAwKSB7XHJcblx0XHRcdFx0XHR0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYCR7dGhpcy5hZGRTYXZlQW5kRWRpdFJvdXRlfSR7dGhpcy5pZH1gXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xyXG5cdFx0XHRcdH0gZWxzZSBpZiAoYWN0aW9uID09IFNhdmVBY3Rpb24uU2F2ZUFuZE5ldykge1xyXG5cdFx0XHRcdFx0dGhpcy5hZnRlclJlbG9hZCgpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgVEVudGl0eVxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCBuZXdJbnN0YW5jZSgpOiBURW50aXR5IHtcclxuXHRcdHJldHVybiB0aGlzLml0ZW0gPSBuZXcgdGhpcy5lbnRpdHlDdG9yKCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBDcmVhdGVzIHRoZSBlbnRpdHlcclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgY3JlYXRlPFRFbnRpdHk+KGh0dHBPcHRpb25zPzogT2JqZWN0KTogT2JzZXJ2YWJsZTxURW50aXR5PiB7XHJcblx0XHR0aGlzLmJlZm9yZUNyZWF0ZSgpO1xyXG5cdFx0cmV0dXJuIHRoaXMuc2VydmljZS5jcmVhdGU8VEVudGl0eT4odGhpcy5pdGVtLCBudWxsLCBPYmplY3QuYXNzaWduKGh0dHBPcHRpb25zIHx8IHt9LCB7IGhlYWRlcnM6IHRoaXMudG9IdHRwSGVhZGVycyh7ICdTaG93LU1lc3NhZ2UnOiAneWVzJyB9KSB9KSwgZmFsc2UpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogdXBkYXRlcyB0aGUgZW50aXR5XHJcblx0ICovXHJcblx0cHJvdGVjdGVkIHVwZGF0ZShodHRwT3B0aW9ucz86IE9iamVjdCk6IE9ic2VydmFibGU8VEVudGl0eT4ge1xyXG5cdFx0dGhpcy5iZWZvcmVVcGRhdGUoKTtcclxuXHRcdHJldHVybiB0aGlzLnNlcnZpY2UudXBkYXRlKHRoaXMuaWQsIHRoaXMuaXRlbSwgbnVsbCwgT2JqZWN0LmFzc2lnbihodHRwT3B0aW9ucyB8fCB7fSwgeyBoZWFkZXJzOiB0aGlzLnRvSHR0cEhlYWRlcnMoeyAnU2hvdy1NZXNzYWdlJzogJ3llcycgfSkgfSksIGZhbHNlKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEluY2x1ZGVzIHNvbWUgbmF2aWdhdGlvbnNcclxuXHQgKiBAcGFyYW0gaW5jIFxyXG5cdCAqIEBwYXJhbSB1cGRhdGUgXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIGluY2x1ZGUoaW5jOiBzdHJpbmcsIHVwZGF0ZTogYm9vbGVhbiA9IGZhbHNlKSB7XHJcblx0XHR0aGlzLmluY2x1ZGVzLnB1c2goaW5jKTtcclxuXHRcdGlmICh1cGRhdGUpIHtcclxuXHRcdFx0dGhpcy51cGRhdGVJbmNsdWRlcy5wdXNoKGluYyk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNlbGVjdGVkIHN0ZXAgaGFzIGNoYW5nZWQuXHJcblx0ICogQHBhcmFtICRldmVudCBcclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgb25BZnRlclN0ZXBDaGFuZ2UoJGV2ZW50OiBTdGVwcGVyU2VsZWN0aW9uRXZlbnQpOiB2b2lkIHsgfVxyXG5cclxuXHQvKipcclxuXHQgKiBDYWxsZWQgYWZ0ZXIgdGhlIGl0ZW0gaXMgbG9hZGVkXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIGFmdGVySXRlbUxvYWRlZCgpOiB2b2lkIHsgfTtcclxuXHJcblx0LyoqXHJcblx0ICogQ2FsbGVkIGJlZm9yZSB0aGUgZW50aXR5IGdldCBjcmVhdGVkXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIGJlZm9yZUNyZWF0ZSgpOiB2b2lkIHsgfTtcclxuXHJcblx0LyoqXHJcblx0ICogQ2FsbGVkIGJlZm9yZSB0aGUgZW50aXR5IGdldCB1cGRhdGVkXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIGJlZm9yZVVwZGF0ZSgpOiB2b2lkIHsgfTtcclxuXHJcblx0LyoqXHJcblx0ICogQ2FsbGVkIGJlZm9yZSBkYXRhIHN1Ym1pdGlvblxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCBiZWZvcmVTdWJtaXQoXzogU2F2ZUFjdGlvbiA9IFNhdmVBY3Rpb24uU2F2ZUFuZENsb3NlKTogdm9pZCB7IH1cclxuXHJcblx0LyoqXHJcblx0ICogQ2FsbGVkIGFmdGVyIGRhdGEgc3VibWl0aW9uXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIGFmdGVyU3VibWl0KGFjdGlvbjogU2F2ZUFjdGlvbiA9IFNhdmVBY3Rpb24uU2F2ZUFuZENsb3NlKTogdm9pZCB7XHJcblx0XHR0aGlzLmlzU2F2aW5nID0gZmFsc2U7XHJcblx0XHR0aGlzLmJhY2soYWN0aW9uKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIENhbGxlZCBhZnRlciBwYWdlIHJlbG9hZGVkXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIGFmdGVyUmVsb2FkKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5pdGVtID0gT2JqZWN0LmFzc2lnbih0aGlzLm5ld0luc3RhbmNlKCksIHRoaXMucXVlcnkpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogU2V0cyBmb2N1cyB0byBmaXJzdCBpbnB1dFxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCBmb2N1cygpOiB2b2lkIHtcclxuXHRcdC8qIFNldCBmb2N1cyB0byBmaXJzdCBlbGVtZW50ICovXHJcblx0XHRpZiAodGhpcy5pbnB1dCAmJiB0aGlzLmlucHV0LmZpcnN0ICYmIHRoaXMuaW5wdXQuZmlyc3QubmF0aXZlRWxlbWVudCkge1xyXG5cdFx0XHR0aGlzLmlucHV0LmZpcnN0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEdldHMgZWxlbWVudCBlcnJvclxyXG5cdCAqIEBwYXJhbSBuYXRpdmVFbGVtZW50IFxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCBnZXRFbGVtZW50RXJyb3IobmF0aXZlRWxlbWVudDogYW55KTogc3RyaW5nIHtcclxuXHRcdC8qIEdldCBwYXJhbmV0IGVsZW1lbnQgJ21hdC1mb3JtLWZpZWxkJyAqL1xyXG5cdFx0dmFyIG1hdEZvcm1GaWVsZCA9IG5hdGl2ZUVsZW1lbnQuY2xvc2VzdCgnLm1hdC1mb3JtLWZpZWxkJyk7XHJcblx0XHRpZiAoIW1hdEZvcm1GaWVsZCkge1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHQvKiBHZXQgY2hpbGQgZWxlbWVudCAnbWF0LWVycm9yJyAqL1xyXG5cdFx0dmFyIG1hdEVycm9yID0gbWF0Rm9ybUZpZWxkLnF1ZXJ5U2VsZWN0b3IoJy5tYXQtZXJyb3InKTtcclxuXHRcdGlmICghbWF0RXJyb3IpIHtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIG1hdEVycm9yLnRleHRDb250ZW50O1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogUmVzcG9uZHMgdG8gdXNlci1pbml0aWF0ZWQgZXZlbnRzXHJcblx0ICogQHBhcmFtIGV2ZW50IFxyXG5cdCAqL1xyXG5cdEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxyXG5cdGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuXHRcdGlmIChldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXkpIHtcclxuXHRcdFx0c3dpdGNoIChTdHJpbmcuZnJvbUNoYXJDb2RlKGV2ZW50LndoaWNoKS50b0xvd2VyQ2FzZSgpKSB7XHJcblx0XHRcdFx0Y2FzZSAncyc6XHJcblx0XHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0XHRcdFx0dGhpcy5zYXZlKFNhdmVBY3Rpb24uU2F2ZUFuZENsb3NlKTtcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cclxuXHRcdFx0XHRjYXNlICdkJzpcclxuXHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHRcdFx0XHR0aGlzLnNhdmUoU2F2ZUFjdGlvbi5TYXZlQW5kTmV3KTtcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cclxuXHRcdFx0XHRjYXNlICdlJzpcclxuXHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHRcdFx0XHR0aGlzLnNhdmUoU2F2ZUFjdGlvbi5TYXZlQW5kRWRpdCk7XHJcblx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdC8qIENhbmNlbCB0aGUgZm9ybSwgaWYgdGhlIHVzZXIgcHJlc3MgdGhlIEVTQyBrZXkgKi9cclxuXHRcdGlmIChldmVudC5rZXlDb2RlID09IDI3KSB7XHJcblx0XHRcdHRoaXMuYmFjaygpO1xyXG5cdFx0fVxyXG5cdH1cclxufSJdfQ==
|