@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,64 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { HTTP_INTERCEPTORS } from '@angular/common/http';
|
|
3
|
+
import { NgModule } from '@angular/core';
|
|
4
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
5
|
+
import { MatDialogModule } from '@angular/material/dialog';
|
|
6
|
+
import { BaseComponent } from './components/base.component';
|
|
7
|
+
import { GenericFormComponent } from './components/generic-form.component';
|
|
8
|
+
import { GenericListComponent } from './components/generic-list.component';
|
|
9
|
+
import { Common } from './constants/common';
|
|
10
|
+
import { MessageType } from './enums/message-type';
|
|
11
|
+
import { AuthHelper } from './helpers/auth-helper';
|
|
12
|
+
import { BaseInterceptor } from './interceptors/base.interceptor';
|
|
13
|
+
import { CachingInterceptor } from './interceptors/caching-interceptor';
|
|
14
|
+
import { LoadingScreenInterceptor } from './interceptors/loading.interceptor';
|
|
15
|
+
import { AuthUser } from './models/auth-user';
|
|
16
|
+
import { FileService } from './services/file.service';
|
|
17
|
+
import { LoadingScreenService } from './services/loading-screen.service';
|
|
18
|
+
import { PrintService } from './services/print.service';
|
|
19
|
+
import * as i0 from "@angular/core";
|
|
20
|
+
export { AuthUser, MessageType, AuthHelper, BaseComponent, GenericListComponent, GenericFormComponent, Common, BaseInterceptor, CachingInterceptor, LoadingScreenInterceptor, FileService, LoadingScreenService, PrintService };
|
|
21
|
+
const DECLARATIONS = [];
|
|
22
|
+
const MATRIAL_DECLARATIONS = [];
|
|
23
|
+
export class VdBaseModule {
|
|
24
|
+
}
|
|
25
|
+
/** @nocollapse */ /** @nocollapse */ VdBaseModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: VdBaseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
26
|
+
/** @nocollapse */ /** @nocollapse */ VdBaseModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: VdBaseModule, imports: [CommonModule,
|
|
27
|
+
FormsModule,
|
|
28
|
+
ReactiveFormsModule,
|
|
29
|
+
MatDialogModule] });
|
|
30
|
+
/** @nocollapse */ /** @nocollapse */ VdBaseModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: VdBaseModule, providers: [
|
|
31
|
+
{ provide: HTTP_INTERCEPTORS, useClass: BaseInterceptor, multi: true },
|
|
32
|
+
{ provide: HTTP_INTERCEPTORS, useClass: CachingInterceptor, multi: true },
|
|
33
|
+
{ provide: HTTP_INTERCEPTORS, useClass: LoadingScreenInterceptor, multi: true },
|
|
34
|
+
], imports: [[
|
|
35
|
+
CommonModule,
|
|
36
|
+
FormsModule,
|
|
37
|
+
ReactiveFormsModule,
|
|
38
|
+
MatDialogModule,
|
|
39
|
+
MATRIAL_DECLARATIONS
|
|
40
|
+
]] });
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: VdBaseModule, decorators: [{
|
|
42
|
+
type: NgModule,
|
|
43
|
+
args: [{
|
|
44
|
+
imports: [
|
|
45
|
+
CommonModule,
|
|
46
|
+
FormsModule,
|
|
47
|
+
ReactiveFormsModule,
|
|
48
|
+
MatDialogModule,
|
|
49
|
+
MATRIAL_DECLARATIONS
|
|
50
|
+
],
|
|
51
|
+
providers: [
|
|
52
|
+
{ provide: HTTP_INTERCEPTORS, useClass: BaseInterceptor, multi: true },
|
|
53
|
+
{ provide: HTTP_INTERCEPTORS, useClass: CachingInterceptor, multi: true },
|
|
54
|
+
{ provide: HTTP_INTERCEPTORS, useClass: LoadingScreenInterceptor, multi: true },
|
|
55
|
+
],
|
|
56
|
+
declarations: [
|
|
57
|
+
DECLARATIONS
|
|
58
|
+
],
|
|
59
|
+
exports: [
|
|
60
|
+
DECLARATIONS
|
|
61
|
+
]
|
|
62
|
+
}]
|
|
63
|
+
}] });
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi9iYXNlL2Jhc2UubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFFeEQsT0FBTyxFQUNOLFFBQVEsRUFDUixXQUFXLEVBQ1gsVUFBVSxFQUNWLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLHdCQUF3QixFQUN4QixXQUFXLEVBQ1gsb0JBQW9CLEVBQ3BCLFlBQVksRUFDWixDQUFDO0FBRUYsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDO0FBRXhCLE1BQU0sb0JBQW9CLEdBQUcsRUFBRSxDQUFBO0FBc0IvQixNQUFNLE9BQU8sWUFBWTs7K0lBQVosWUFBWTtnSkFBWixZQUFZLFlBbEJ2QixZQUFZO1FBQ1osV0FBVztRQUNYLG1CQUFtQjtRQUNuQixlQUFlO2dKQWVKLFlBQVksYUFaYjtRQUNWLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtRQUN0RSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtRQUN6RSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsd0JBQXdCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtLQUMvRSxZQVhRO1lBQ1IsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsZUFBZTtZQUNmLG9CQUFvQjtTQUNwQjsyRkFhVyxZQUFZO2tCQXBCeEIsUUFBUTttQkFBQztvQkFDVCxPQUFPLEVBQUU7d0JBQ1IsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixvQkFBb0I7cUJBQ3BCO29CQUNELFNBQVMsRUFBRTt3QkFDVixFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7d0JBQ3RFLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO3dCQUN6RSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsd0JBQXdCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtxQkFDL0U7b0JBQ0QsWUFBWSxFQUFFO3dCQUNiLFlBQVk7cUJBQ1o7b0JBQ0QsT0FBTyxFQUFFO3dCQUNSLFlBQVk7cUJBQ1o7aUJBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBIVFRQX0lOVEVSQ0VQVE9SUyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBHZW5lcmljRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9nZW5lcmljLWZvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgR2VuZXJpY0xpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZ2VuZXJpYy1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbW1vbiB9IGZyb20gJy4vY29uc3RhbnRzL2NvbW1vbic7XHJcbmltcG9ydCB7IE1lc3NhZ2VUeXBlIH0gZnJvbSAnLi9lbnVtcy9tZXNzYWdlLXR5cGUnO1xyXG5pbXBvcnQgeyBBdXRoSGVscGVyIH0gZnJvbSAnLi9oZWxwZXJzL2F1dGgtaGVscGVyJztcclxuaW1wb3J0IHsgQmFzZUludGVyY2VwdG9yIH0gZnJvbSAnLi9pbnRlcmNlcHRvcnMvYmFzZS5pbnRlcmNlcHRvcic7XHJcbmltcG9ydCB7IENhY2hpbmdJbnRlcmNlcHRvciB9IGZyb20gJy4vaW50ZXJjZXB0b3JzL2NhY2hpbmctaW50ZXJjZXB0b3InO1xyXG5pbXBvcnQgeyBMb2FkaW5nU2NyZWVuSW50ZXJjZXB0b3IgfSBmcm9tICcuL2ludGVyY2VwdG9ycy9sb2FkaW5nLmludGVyY2VwdG9yJztcclxuaW1wb3J0IHsgQXV0aFVzZXIgfSBmcm9tICcuL21vZGVscy9hdXRoLXVzZXInO1xyXG5pbXBvcnQgeyBGaWxlU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZmlsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9hZGluZ1NjcmVlblNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2xvYWRpbmctc2NyZWVuLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQcmludFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3ByaW50LnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IHtcclxuXHRBdXRoVXNlcixcclxuXHRNZXNzYWdlVHlwZSxcclxuXHRBdXRoSGVscGVyLFxyXG5cdEJhc2VDb21wb25lbnQsXHJcblx0R2VuZXJpY0xpc3RDb21wb25lbnQsXHJcblx0R2VuZXJpY0Zvcm1Db21wb25lbnQsXHJcblx0Q29tbW9uLFxyXG5cdEJhc2VJbnRlcmNlcHRvcixcclxuXHRDYWNoaW5nSW50ZXJjZXB0b3IsXHJcblx0TG9hZGluZ1NjcmVlbkludGVyY2VwdG9yLFxyXG5cdEZpbGVTZXJ2aWNlLFxyXG5cdExvYWRpbmdTY3JlZW5TZXJ2aWNlLFxyXG5cdFByaW50U2VydmljZVxyXG59O1xyXG5cclxuY29uc3QgREVDTEFSQVRJT05TID0gW107XHJcblxyXG5jb25zdCBNQVRSSUFMX0RFQ0xBUkFUSU9OUyA9IFtdXHJcblxyXG5ATmdNb2R1bGUoe1xyXG5cdGltcG9ydHM6IFtcclxuXHRcdENvbW1vbk1vZHVsZSxcclxuXHRcdEZvcm1zTW9kdWxlLFxyXG5cdFx0UmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuXHRcdE1hdERpYWxvZ01vZHVsZSxcclxuXHRcdE1BVFJJQUxfREVDTEFSQVRJT05TXHJcblx0XSxcclxuXHRwcm92aWRlcnM6IFtcclxuXHRcdHsgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsIHVzZUNsYXNzOiBCYXNlSW50ZXJjZXB0b3IsIG11bHRpOiB0cnVlIH0sXHJcblx0XHR7IHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLCB1c2VDbGFzczogQ2FjaGluZ0ludGVyY2VwdG9yLCBtdWx0aTogdHJ1ZSB9LFxyXG5cdFx0eyBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUywgdXNlQ2xhc3M6IExvYWRpbmdTY3JlZW5JbnRlcmNlcHRvciwgbXVsdGk6IHRydWUgfSxcclxuXHRdLFxyXG5cdGRlY2xhcmF0aW9uczogW1xyXG5cdFx0REVDTEFSQVRJT05TXHJcblx0XSxcclxuXHRleHBvcnRzOiBbXHJcblx0XHRERUNMQVJBVElPTlNcclxuXHRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWZEJhc2VNb2R1bGUgeyB9Il19
|
|
@@ -0,0 +1,436 @@
|
|
|
1
|
+
import { Location } from '@angular/common';
|
|
2
|
+
import { HttpHeaders } from '@angular/common/http';
|
|
3
|
+
import { ChangeDetectorRef, Directive, ElementRef, QueryList, ViewChildren } from '@angular/core';
|
|
4
|
+
import { MatExpansionPanel } from '@angular/material/expansion';
|
|
5
|
+
import { MatSnackBar } from '@angular/material/snack-bar';
|
|
6
|
+
import { Title } from '@angular/platform-browser';
|
|
7
|
+
import { ActivatedRoute, NavigationEnd, Router } from '@angular/router';
|
|
8
|
+
import { of } from 'rxjs';
|
|
9
|
+
import { ContextHelper } from '../../common/common.module';
|
|
10
|
+
import { AppSetting } from '../../common/models/app-setting';
|
|
11
|
+
import { ServiceLocator } from '../../common/services/service-locator';
|
|
12
|
+
import { VdDialogService } from '../../dialogs/services/dialog.service';
|
|
13
|
+
import { VdMediaService } from '../../media/services/media.service';
|
|
14
|
+
import { Common } from '../constants/common';
|
|
15
|
+
import { MessageType } from '../enums/message-type';
|
|
16
|
+
import { AuthHelper } from '../helpers/auth-helper';
|
|
17
|
+
import * as i0 from "@angular/core";
|
|
18
|
+
import * as i1 from "@angular/router";
|
|
19
|
+
/**
|
|
20
|
+
* A base list component for components with pagination support
|
|
21
|
+
*/
|
|
22
|
+
// @dynamic
|
|
23
|
+
export class BaseComponent {
|
|
24
|
+
/**
|
|
25
|
+
* Constructor
|
|
26
|
+
*/
|
|
27
|
+
constructor(route, changeDetectorRef) {
|
|
28
|
+
this.route = route;
|
|
29
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
30
|
+
/**
|
|
31
|
+
* The subtitle of the current outlet
|
|
32
|
+
*/
|
|
33
|
+
this.subtitle = '';
|
|
34
|
+
/**
|
|
35
|
+
* Represents the request errors
|
|
36
|
+
*/
|
|
37
|
+
this.errors = new Array();
|
|
38
|
+
/**
|
|
39
|
+
* Allowed file extensions
|
|
40
|
+
*/
|
|
41
|
+
this.allowedExtensions = Common.allowedExtensions;
|
|
42
|
+
/**
|
|
43
|
+
* tinyMCE plugins
|
|
44
|
+
*/
|
|
45
|
+
this.editorPlugins = Common.editorPlugins;
|
|
46
|
+
/**
|
|
47
|
+
* tinyMCE editor
|
|
48
|
+
*/
|
|
49
|
+
this.editorToolbar = Common.editorToolbar;
|
|
50
|
+
/**
|
|
51
|
+
* Editor configuration
|
|
52
|
+
*/
|
|
53
|
+
this.editorConfig = {};
|
|
54
|
+
/**
|
|
55
|
+
* urlHash: string
|
|
56
|
+
*/
|
|
57
|
+
this.urlHash = null;
|
|
58
|
+
/**
|
|
59
|
+
* Current user object
|
|
60
|
+
*/
|
|
61
|
+
this.currentUser = AuthHelper.user;
|
|
62
|
+
/**
|
|
63
|
+
* If true, set url hash
|
|
64
|
+
*/
|
|
65
|
+
this.setUrlHash = true;
|
|
66
|
+
this.titleService = this.getService(Title);
|
|
67
|
+
this.dialogService = this.getService(VdDialogService);
|
|
68
|
+
this.media = this.getService(VdMediaService);
|
|
69
|
+
this.snackBarService = this.getService(MatSnackBar);
|
|
70
|
+
this.router = this.getService(Router);
|
|
71
|
+
this.appSetting = this.getService(AppSetting);
|
|
72
|
+
this.location = this.getService(Location);
|
|
73
|
+
ContextHelper.activatedRoute = route;
|
|
74
|
+
ContextHelper.router = this.router;
|
|
75
|
+
ContextHelper.appSetting = this.appSetting;
|
|
76
|
+
this.initEditor();
|
|
77
|
+
}
|
|
78
|
+
get isSaving() { return this._isSaving || this.isLoading; }
|
|
79
|
+
set isSaving(isSaving) { this.isLoading = this._isSaving = isSaving; }
|
|
80
|
+
/**
|
|
81
|
+
* Lifecycle hook that is called after data-bound properties
|
|
82
|
+
* of a directive are initialized.
|
|
83
|
+
*/
|
|
84
|
+
ngOnInit() {
|
|
85
|
+
/* Get menu items from route snapshot */
|
|
86
|
+
var mainRoute = this.getMainRoute(this.route.snapshot);
|
|
87
|
+
if (mainRoute) {
|
|
88
|
+
this.menu = mainRoute.data.menu;
|
|
89
|
+
}
|
|
90
|
+
/* Set project name & debug mode */
|
|
91
|
+
this.projectName = this.appSetting.projectName;
|
|
92
|
+
this.debug = this.appSetting.debug;
|
|
93
|
+
/* Get the hash from the url */
|
|
94
|
+
this.route.fragment.subscribe((fragment) => this.urlHash = fragment);
|
|
95
|
+
/**
|
|
96
|
+
* Check permissions
|
|
97
|
+
*/
|
|
98
|
+
if (this.route.parent) {
|
|
99
|
+
this.route.parent.url.subscribe((url) => {
|
|
100
|
+
this.className = url[0].path.replace(/(.*)s$/, '$1').replace(/^./, (url[0].path[0] || '').toUpperCase());
|
|
101
|
+
this.canCreate = AuthHelper.isPermitted('Create', `Create${this.className}`);
|
|
102
|
+
this.canUpdate = AuthHelper.isPermitted('Update', `Update${this.className}`);
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
/* Set current route */
|
|
106
|
+
this.currentRoute = btoa(this.router.url);
|
|
107
|
+
/**
|
|
108
|
+
* Set page title
|
|
109
|
+
*/
|
|
110
|
+
this.router.events.subscribe(x => {
|
|
111
|
+
if (x instanceof NavigationEnd) {
|
|
112
|
+
this.setTitles();
|
|
113
|
+
this.currentRoute = btoa(x.url);
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Lifecycle hook that is called after a component's view has been fully initialized.
|
|
119
|
+
*/
|
|
120
|
+
ngAfterViewInit() {
|
|
121
|
+
/* Broadcast to all listener observables when loading the page */
|
|
122
|
+
this.media.broadcast();
|
|
123
|
+
/* Set titles */
|
|
124
|
+
this.setTitles();
|
|
125
|
+
/*
|
|
126
|
+
* Force a new change detection cycle since change detections
|
|
127
|
+
* have finished when `ngAfterViewInit` is executed
|
|
128
|
+
*/
|
|
129
|
+
this.changeDetectorRef.detectChanges();
|
|
130
|
+
/* Listen for expansion panel changes */
|
|
131
|
+
this.onExpansionPanelChanges();
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Refreshs this page/component
|
|
135
|
+
*/
|
|
136
|
+
reloadPage() {
|
|
137
|
+
let currentUrl = this.router.url;
|
|
138
|
+
this.router.navigateByUrl('/', { replaceUrl: true }).then(() => this.router.navigateByUrl(currentUrl, { replaceUrl: true }));
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Listen for expansion panel changes
|
|
142
|
+
*/
|
|
143
|
+
onExpansionPanelChanges() {
|
|
144
|
+
/* Listen for expansion panel changes */
|
|
145
|
+
this.matExpansionPanelQueryList?.changes.subscribe(_ => {
|
|
146
|
+
this.changeDetectorRef.detectChanges();
|
|
147
|
+
/* Find the index of the panel with the specified element ID */
|
|
148
|
+
this.urlHash?.split('.')
|
|
149
|
+
?.reduce((accumulator, currentValue, index) => accumulator.concat((index > 0 ? (accumulator.slice(-1).join('.') + '.') : '') + currentValue), [])
|
|
150
|
+
?.forEach((hash) => {
|
|
151
|
+
var expansionPanelIndex = this.matExpansionPanelElementQueryList?.toArray()?.findIndex(x => x.nativeElement.id == hash);
|
|
152
|
+
if (expansionPanelIndex >= 0) {
|
|
153
|
+
this.matExpansionPanelQueryList?.toArray()[expansionPanelIndex]?.open();
|
|
154
|
+
this.changeDetectorRef.detectChanges();
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
/* Detect changes for opened panels */
|
|
158
|
+
this.matExpansionPanelQueryList?.forEach(y => {
|
|
159
|
+
y.opened.subscribe(_ => {
|
|
160
|
+
if (this.setUrlHash) {
|
|
161
|
+
/* Get the id of the current opened panel */
|
|
162
|
+
var currentPanelId = y['_viewContainerRef']?.element?.nativeElement?.id;
|
|
163
|
+
/* If the panel ID is set, set it as url segment (hash) */
|
|
164
|
+
if (currentPanelId) {
|
|
165
|
+
this.router.navigate([], { fragment: currentPanelId, replaceUrl: true });
|
|
166
|
+
}
|
|
167
|
+
/* Otherwise remove the segment from the url */
|
|
168
|
+
else {
|
|
169
|
+
this.router.navigate([], { replaceUrl: true });
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
/* Detect changes */
|
|
173
|
+
this.changeDetectorRef.detectChanges();
|
|
174
|
+
});
|
|
175
|
+
});
|
|
176
|
+
});
|
|
177
|
+
/* Notify expansion panel list changes */
|
|
178
|
+
this.matExpansionPanelQueryList.notifyOnChanges();
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Retrieves an instance from the injector based on the provided token.
|
|
182
|
+
* If not found:
|
|
183
|
+
* - Throws {@link NoProviderError} if no `notFoundValue` that is not equal to
|
|
184
|
+
* Injector.THROW_IF_NOT_FOUND is given
|
|
185
|
+
* - Returns the `notFoundValue` otherwise
|
|
186
|
+
*/
|
|
187
|
+
getService(token) {
|
|
188
|
+
return ServiceLocator.getService(token);
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Gets base route
|
|
192
|
+
* @param snapshot
|
|
193
|
+
*/
|
|
194
|
+
getMainRoute(snapshot) {
|
|
195
|
+
if (snapshot && !snapshot.data.menu) {
|
|
196
|
+
return this.getMainRoute(snapshot.parent);
|
|
197
|
+
}
|
|
198
|
+
return snapshot;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Shows a confirm dialog to delete an item
|
|
202
|
+
*/
|
|
203
|
+
showDeleteItemDialog() {
|
|
204
|
+
return this.dialogService.openConfirm({
|
|
205
|
+
message: $localize `:@@dialog.message.delete.one:Are you sure you want to delete this item?`,
|
|
206
|
+
title: $localize `:@@dialog.title.delete:Confirm Delete`,
|
|
207
|
+
cancelButton: $localize `:@@cancel:Cancel`,
|
|
208
|
+
acceptButton: $localize `:@@delete:Delete`,
|
|
209
|
+
}).afterClosed();
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Shows a confirm dialog to delete multiple items
|
|
213
|
+
*/
|
|
214
|
+
showDeleteItemsDialog() {
|
|
215
|
+
return this.dialogService.openConfirm({
|
|
216
|
+
message: $localize `:@@dialog.message.delete.list:Are you sure you want to delete the selected items?`,
|
|
217
|
+
title: $localize `:@@dialog.title.delete:Confirm Delete`,
|
|
218
|
+
cancelButton: $localize `:@@cancel:Cancel`,
|
|
219
|
+
acceptButton: $localize `:@@delete:Delete`,
|
|
220
|
+
}).afterClosed();
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Shows a confirm dialog to send some data
|
|
224
|
+
* @param message The message to display
|
|
225
|
+
* @param observabe The observable instance
|
|
226
|
+
* @param successCallback A success callback
|
|
227
|
+
* @param errorCallback An error callback
|
|
228
|
+
*/
|
|
229
|
+
showConfirmationDialog(message, observabe, successCallback = null, errorCallback = null) {
|
|
230
|
+
this.dialogService
|
|
231
|
+
.openConfirm({
|
|
232
|
+
message: message,
|
|
233
|
+
title: $localize `:@@dialog.title.confirm:Confirm`,
|
|
234
|
+
cancelButton: $localize `:@@cancel:Cancel`,
|
|
235
|
+
acceptButton: $localize `:@@ok:Ok`,
|
|
236
|
+
})
|
|
237
|
+
.afterClosed().subscribe((accept) => {
|
|
238
|
+
if (accept) {
|
|
239
|
+
observabe.subscribe(x => {
|
|
240
|
+
this.showMessage($localize `:@@snackbar.send.success:Data sent successfully.`);
|
|
241
|
+
if (successCallback) {
|
|
242
|
+
successCallback(x);
|
|
243
|
+
}
|
|
244
|
+
}, errors => {
|
|
245
|
+
this.isSaving = false;
|
|
246
|
+
if (errorCallback) {
|
|
247
|
+
errorCallback(errors);
|
|
248
|
+
}
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Shows a message
|
|
255
|
+
* @param message The message to display
|
|
256
|
+
* @param type The type of the message
|
|
257
|
+
*/
|
|
258
|
+
showMessage(message, type = MessageType.Success) {
|
|
259
|
+
var snackBarClass = 'primary';
|
|
260
|
+
switch (type) {
|
|
261
|
+
case MessageType.Success:
|
|
262
|
+
snackBarClass = 'primary';
|
|
263
|
+
break;
|
|
264
|
+
case MessageType.Warning:
|
|
265
|
+
snackBarClass = 'warn';
|
|
266
|
+
break;
|
|
267
|
+
case MessageType.Error:
|
|
268
|
+
snackBarClass = 'error';
|
|
269
|
+
break;
|
|
270
|
+
default:
|
|
271
|
+
break;
|
|
272
|
+
}
|
|
273
|
+
this.snackBarService.open(message || $localize `:@@snackbar.send.success:Data sent successfully.`, null, {
|
|
274
|
+
duration: 3000,
|
|
275
|
+
panelClass: [snackBarClass]
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Initoalizes the tinymce editor
|
|
280
|
+
*/
|
|
281
|
+
initEditor(editorConfig = {}) {
|
|
282
|
+
Object.assign(this.editorConfig, {
|
|
283
|
+
suffix: '.min',
|
|
284
|
+
skin: false,
|
|
285
|
+
height: '170px',
|
|
286
|
+
content_css: false,
|
|
287
|
+
plugins: this.editorPlugins,
|
|
288
|
+
toolbar: this.editorToolbar,
|
|
289
|
+
paste_as_text: true,
|
|
290
|
+
language: 'de',
|
|
291
|
+
language_url: '/assets/tinymce/langs/de.js',
|
|
292
|
+
document_base_url: `${this.appSetting.apiUrl}file/`,
|
|
293
|
+
automatic_uploads: true,
|
|
294
|
+
relative_urls: true,
|
|
295
|
+
convert_urls: false,
|
|
296
|
+
extended_valid_elements: 'span[id|class|style],+@[data-options]',
|
|
297
|
+
allow_html_in_named_anchor: true
|
|
298
|
+
}, editorConfig);
|
|
299
|
+
this.isEditorInitialzed = true;
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Sets subtitle from curren menu
|
|
303
|
+
*/
|
|
304
|
+
setTitles() {
|
|
305
|
+
if (this.menu) {
|
|
306
|
+
this.titleService.setTitle(this.menu.title);
|
|
307
|
+
this.title = this.titleService.getTitle();
|
|
308
|
+
if (this.menu.items) {
|
|
309
|
+
var submenu = this.menu.items.filter(x => x.path == this.router.url)[0];
|
|
310
|
+
if (submenu) {
|
|
311
|
+
this.subtitle = submenu.title;
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Navigate based on the provided array of commands and a starting point.
|
|
318
|
+
* @param commands
|
|
319
|
+
*/
|
|
320
|
+
navigate(commands, queryParams) {
|
|
321
|
+
this.router.navigate(commands, { queryParams: Object.assign({ returnUrl: this.currentRoute }, queryParams || {}), relativeTo: this.route });
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Convert Object to HttpHeaders
|
|
325
|
+
*
|
|
326
|
+
* @param body
|
|
327
|
+
*/
|
|
328
|
+
toHttpHeaders(body) {
|
|
329
|
+
if (!body) {
|
|
330
|
+
return new HttpHeaders();
|
|
331
|
+
}
|
|
332
|
+
return Object.getOwnPropertyNames(body)
|
|
333
|
+
.filter(key => body[key] != null && body[key] != '')
|
|
334
|
+
.reduce((p, key) => p.set(key, body[key]), new HttpHeaders());
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Parses http response errors
|
|
338
|
+
* @param errors
|
|
339
|
+
*/
|
|
340
|
+
parseErrors(errors) {
|
|
341
|
+
this.errors = [];
|
|
342
|
+
this.isLoading = false;
|
|
343
|
+
this.isSaving = false;
|
|
344
|
+
if (errors) {
|
|
345
|
+
Object.keys(errors).forEach(el => {
|
|
346
|
+
let error = errors[el];
|
|
347
|
+
if (Array.isArray(error)) {
|
|
348
|
+
error.forEach(err => {
|
|
349
|
+
this.errors.push(err);
|
|
350
|
+
});
|
|
351
|
+
}
|
|
352
|
+
else if (typeof error === "string") {
|
|
353
|
+
this.errors.push(error);
|
|
354
|
+
}
|
|
355
|
+
});
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* Handle Http operation that failed.
|
|
360
|
+
* Let the app continue.
|
|
361
|
+
* @param operation - name of the operation that failed
|
|
362
|
+
* @param result - optional value to return as the observable result
|
|
363
|
+
*/
|
|
364
|
+
handleError(operation = 'operation', result) {
|
|
365
|
+
return (error) => {
|
|
366
|
+
/* Parse the error messages */
|
|
367
|
+
this.parseErrors(error);
|
|
368
|
+
/* Log to console */
|
|
369
|
+
this.warn(`${operation} failed: ${error.message}`);
|
|
370
|
+
/* Let the app keep running by returning an empty result */
|
|
371
|
+
return of(result);
|
|
372
|
+
};
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* Log to console
|
|
376
|
+
* @param message
|
|
377
|
+
* @param optionalParams
|
|
378
|
+
*/
|
|
379
|
+
log(message, ...optionalParams) {
|
|
380
|
+
if (this.debug) {
|
|
381
|
+
console.log(message, optionalParams);
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* Log to console
|
|
386
|
+
* @param message
|
|
387
|
+
* @param optionalParams
|
|
388
|
+
*/
|
|
389
|
+
warn(message, ...optionalParams) {
|
|
390
|
+
if (this.debug) {
|
|
391
|
+
console.warn(message, optionalParams);
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
/**
|
|
395
|
+
* Cleans the objects
|
|
396
|
+
* Removes empty properties
|
|
397
|
+
* @param obj
|
|
398
|
+
*/
|
|
399
|
+
clean(obj) {
|
|
400
|
+
try {
|
|
401
|
+
for (var propName in obj) {
|
|
402
|
+
if (obj[propName] === null || obj[propName] === undefined || obj[propName] === "") {
|
|
403
|
+
delete obj[propName];
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
catch (error) { }
|
|
408
|
+
return obj;
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* Sanitizes the specified object
|
|
412
|
+
* @param obj
|
|
413
|
+
* @returns
|
|
414
|
+
*/
|
|
415
|
+
sanitizeObject(obj, ...ignore) {
|
|
416
|
+
return Object.keys(obj)
|
|
417
|
+
.filter(x => obj[x])
|
|
418
|
+
.filter(x => !(ignore || []).map(x => x.toLowerCase()).includes(x.toLowerCase()))
|
|
419
|
+
.reduce((result, key) => {
|
|
420
|
+
result[key] = isNaN(+obj[key]) ? obj[key] : +obj[key];
|
|
421
|
+
return result;
|
|
422
|
+
}, {});
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
/** @nocollapse */ /** @nocollapse */ BaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: BaseComponent, deps: [{ token: i1.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
426
|
+
/** @nocollapse */ /** @nocollapse */ BaseComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.3", type: BaseComponent, viewQueries: [{ propertyName: "matExpansionPanelElementQueryList", predicate: MatExpansionPanel, descendants: true, read: ElementRef }, { propertyName: "matExpansionPanelQueryList", predicate: MatExpansionPanel, descendants: true }], ngImport: i0 });
|
|
427
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: BaseComponent, decorators: [{
|
|
428
|
+
type: Directive
|
|
429
|
+
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { matExpansionPanelElementQueryList: [{
|
|
430
|
+
type: ViewChildren,
|
|
431
|
+
args: [MatExpansionPanel, { read: ElementRef }]
|
|
432
|
+
}], matExpansionPanelQueryList: [{
|
|
433
|
+
type: ViewChildren,
|
|
434
|
+
args: [MatExpansionPanel]
|
|
435
|
+
}] } });
|
|
436
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi9iYXNlL2NvbXBvbmVudHMvYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQWlCLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQVUsU0FBUyxFQUFRLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQTBCLGFBQWEsRUFBRSxNQUFNLEVBQWMsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RyxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFcEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1B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QUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO2FBQ2hGLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUN2QixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEQsT0FBTyxNQUFNLENBQUM7UUFDZixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDVCxDQUFDOztnSkE3aUJvQixhQUFhO29JQUFiLGFBQWEsZ0ZBNklwQixpQkFBaUIsMkJBQVUsVUFBVSw2REFNckMsaUJBQWlCOzJGQW5KVixhQUFhO2tCQURsQyxTQUFTO3FJQStJQyxpQ0FBaUM7c0JBRDFDLFlBQVk7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQU8zQywwQkFBMEI7c0JBRG5DLFlBQVk7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgT25Jbml0LCBRdWVyeUxpc3QsIFR5cGUsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRFeHBhbnNpb25QYW5lbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2V4cGFuc2lvbic7XHJcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcclxuaW1wb3J0IHsgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIE5hdmlnYXRpb25FbmQsIFJvdXRlciwgVXJsU2VnbWVudCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbnRleHRIZWxwZXIgfSBmcm9tICcuLi8uLi9jb21tb24vY29tbW9uLm1vZHVsZSc7XHJcbmltcG9ydCB7IEFwcFNldHRpbmcgfSBmcm9tICcuLi8uLi9jb21tb24vbW9kZWxzL2FwcC1zZXR0aW5nJztcclxuaW1wb3J0IHsgU2VydmljZUxvY2F0b3IgfSBmcm9tICcuLi8uLi9jb21tb24vc2VydmljZXMvc2VydmljZS1sb2NhdG9yJztcclxuaW1wb3J0IHsgVmREaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZGlhbG9ncy9zZXJ2aWNlcy9kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7IFZkTWVkaWFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vbWVkaWEvc2VydmljZXMvbWVkaWEuc2VydmljZSc7XHJcbmltcG9ydCB7IE1lbnUgfSBmcm9tICcuLi8uLi9tZW51L21vZGVscy9tZW51JztcclxuaW1wb3J0IHsgQ29tbW9uIH0gZnJvbSAnLi4vY29uc3RhbnRzL2NvbW1vbic7XHJcbmltcG9ydCB7IE1lc3NhZ2VUeXBlIH0gZnJvbSAnLi4vZW51bXMvbWVzc2FnZS10eXBlJztcclxuaW1wb3J0IHsgQXV0aEhlbHBlciB9IGZyb20gJy4uL2hlbHBlcnMvYXV0aC1oZWxwZXInO1xyXG5pbXBvcnQgeyBBdXRoVXNlciB9IGZyb20gJy4uL21vZGVscy9hdXRoLXVzZXInO1xyXG5cclxuLyoqXHJcbiAqIEEgYmFzZSBsaXN0IGNvbXBvbmVudCBmb3IgY29tcG9uZW50cyB3aXRoIHBhZ2luYXRpb24gc3VwcG9ydFxyXG4gKi9cclxuLy8gQGR5bmFtaWNcclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuXHQvKipcclxuXHQgKiBBcHAgc2V0dGluZ3NcclxuXHQgKi9cclxuXHRwdWJsaWMgYXBwU2V0dGluZzogQXBwU2V0dGluZztcclxuXHJcblx0LyoqXHJcblx0ICogTWVudSBpdGVtc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBtZW51OiBNZW51O1xyXG5cclxuXHQvKipcclxuXHQgKiBUaGUgbmFtZSBvZiB0aGUgcHJvamVjdFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBwcm9qZWN0TmFtZTogc3RyaW5nO1xyXG5cclxuXHQvKipcclxuXHQgKiBUaGUgdGl0bGUgb2YgdGhlIGN1cnJlbnQgcGFnZVxyXG5cdCAqL1xyXG5cdHB1YmxpYyB0aXRsZTogc3RyaW5nO1xyXG5cclxuXHQvKipcclxuXHQgKiBUaGUgc3VidGl0bGUgb2YgdGhlIGN1cnJlbnQgb3V0bGV0XHJcblx0ICovXHJcblx0cHVibGljIHN1YnRpdGxlOiBzdHJpbmcgPSAnJztcclxuXHJcblx0LyoqXHJcblx0ICogSWYgdHJ1ZSwgdXNlIHNvbWUgZHVtbXkgZGF0YSBhbmQgc2hvdyBkZWJ1ZyBsb2dzXHJcblx0ICovXHJcblx0cHVibGljIGRlYnVnOiBib29sZWFuO1xyXG5cclxuXHQvKipcdCBcclxuXHQgKiBMb2FkaW5nIHN0YXR1c1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBpc0xvYWRpbmc6IGJvb2xlYW47XHJcblxyXG5cdC8qKlxyXG5cdCAqIFNhdmluZyBzdGF0dXNcclxuXHQgKi9cclxuXHRwdWJsaWMgX2lzU2F2aW5nOiBib29sZWFuO1xyXG5cdGdldCBpc1NhdmluZygpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2lzU2F2aW5nIHx8IHRoaXMuaXNMb2FkaW5nOyB9XHJcblx0c2V0IGlzU2F2aW5nKGlzU2F2aW5nOiBib29sZWFuKSB7IHRoaXMuaXNMb2FkaW5nID0gdGhpcy5faXNTYXZpbmcgPSBpc1NhdmluZzsgfVxyXG5cclxuXHQvKipcclxuXHQgKiBBIGZsYWcgZWluZGljYXRlcyB0aGF0IHRoZSBlZGl0b3IgaXMgaW5pdGVkXHJcblx0ICovXHJcblx0cHVibGljIGlzRWRpdG9ySW5pdGlhbHplZDogYm9vbGVhbjtcclxuXHJcblx0LyoqXHJcblx0ICogUmVwcmVzZW50cyB0aGUgcmVxdWVzdCBlcnJvcnNcclxuXHQgKi9cclxuXHRwdWJsaWMgZXJyb3JzOiBBcnJheTxzdHJpbmc+ID0gbmV3IEFycmF5PHN0cmluZz4oKTtcclxuXHJcblx0LyoqXHJcblx0ICogVXNlZCB0byBldmFsdWF0ZSB3aGV0aGVyIGEgZ2l2ZW4gbWVkaWEgcXVlcnkgaXMgdHJ1ZSBvciBmYWxzZSBnaXZlbiB0aGUgY3VycmVudCBkZXZpY2UncyBzY3JlZW4gLyB3aW5kb3cgc2l6ZS5cclxuXHQgKi9cclxuXHRwdWJsaWMgbWVkaWE6IFZkTWVkaWFTZXJ2aWNlO1xyXG5cclxuXHQvKipcclxuXHQgKiBBbGxvd2VkIGZpbGUgZXh0ZW5zaW9uc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBhbGxvd2VkRXh0ZW5zaW9uczogc3RyaW5nW10gPSBDb21tb24uYWxsb3dlZEV4dGVuc2lvbnM7XHJcblxyXG5cdC8qKlxyXG5cdCAqIHRpbnlNQ0UgcGx1Z2luc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBlZGl0b3JQbHVnaW5zOiBzdHJpbmcgPSBDb21tb24uZWRpdG9yUGx1Z2lucztcclxuXHJcblx0LyoqXHJcblx0ICogdGlueU1DRSBlZGl0b3JcclxuXHQgKi9cclxuXHRwdWJsaWMgZWRpdG9yVG9vbGJhcjogc3RyaW5nID0gQ29tbW9uLmVkaXRvclRvb2xiYXI7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEVkaXRvciBjb25maWd1cmF0aW9uXHJcblx0ICovXHJcblx0cHVibGljIGVkaXRvckNvbmZpZzogYW55ID0ge307XHJcblxyXG5cdC8qKlxyXG5cdCAqIFByb3ZpZGVzIHRoZSBuYXZpZ2F0aW9uIGFuZCB1cmwgbWFuaXB1bGF0aW9uIGNhcGFiaWxpdGllcy5cclxuXHQgKi9cclxuXHRwdWJsaWMgcm91dGVyOiBSb3V0ZXI7XHJcblxyXG5cdC8qKlxyXG5cdCAqIHVybEhhc2g6IHN0cmluZ1xyXG5cdCAqL1xyXG5cdHB1YmxpYyB1cmxIYXNoOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuXHQvKipcclxuXHQgKiBDbGFzcyBuYW1lXHJcblx0ICovXHJcblx0cHVibGljIGNsYXNzTmFtZTogc3RyaW5nO1xyXG5cclxuXHQvKipcclxuXHQgKiBDcmVhdGUgcGVybWlzc2lvblxyXG5cdCAqL1xyXG5cdHB1YmxpYyBjYW5DcmVhdGU6IGJvb2xlYW47XHJcblxyXG5cdC8qKlxyXG5cdCAqIFVwZGF0ZSBwZXJtaXNzaW9uXHJcblx0ICovXHJcblx0cHVibGljIGNhblVwZGF0ZTogYm9vbGVhbjtcclxuXHJcblx0LyoqXHJcblx0ICogQ3VycmVudCByb3V0ZVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBjdXJyZW50Um91dGU6IHN0cmluZztcclxuXHJcblx0LyoqXHJcblx0ICogQ3VycmVudCB1c2VyIG9iamVjdFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBjdXJyZW50VXNlcjogQXV0aFVzZXIgPSBBdXRoSGVscGVyLnVzZXI7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEEgc2VydmljZSB0aGF0IGNhbiBiZSB1c2VkIHRvIGdldCBhbmQgc2V0IHRoZSB0aXRsZSBvZiBhIGN1cnJlbnQgSFRNTCBkb2N1bWVudC5cclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgdGl0bGVTZXJ2aWNlOiBUaXRsZTtcclxuXHJcblx0LyoqXHJcblx0ICogQSBzZXJ2aWNlIHRvIGRpc3BhdGNoIE1hdGVyaWFsIERlc2lnbiBzbmFjayBiYXIgbWVzc2FnZXMuXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIHNuYWNrQmFyU2VydmljZTogTWF0U25hY2tCYXI7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEEgc2VydmljZSB0byBzaG93IGNvbmlybSBhbmQgcHJvbXB0IGRpYWxvZ3MuXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIGRpYWxvZ1NlcnZpY2U6IFZkRGlhbG9nU2VydmljZTtcclxuXHJcblx0LyoqXHJcblx0ICogbG9jYXRpb246IExvY2F0aW9uXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIGxvY2F0aW9uOiBMb2NhdGlvbjtcclxuXHJcblx0LyoqXHJcblx0ICogSWYgdHJ1ZSwgc2V0IHVybCBoYXNoXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIHNldFVybEhhc2g6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuXHQvKipcclxuXHQgKiBNYXRFeHBhbnNpb25QYW5lbCByZWZcclxuXHQgKi9cclxuXHRAVmlld0NoaWxkcmVuKE1hdEV4cGFuc2lvblBhbmVsLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcclxuXHRwcm90ZWN0ZWQgbWF0RXhwYW5zaW9uUGFuZWxFbGVtZW50UXVlcnlMaXN0OiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XHJcblxyXG5cdC8qKlxyXG5cdCAqIE1hdEV4cGFuc2lvblBhbmVsIHJlZlxyXG5cdCAqL1xyXG5cdEBWaWV3Q2hpbGRyZW4oTWF0RXhwYW5zaW9uUGFuZWwpXHJcblx0cHJvdGVjdGVkIG1hdEV4cGFuc2lvblBhbmVsUXVlcnlMaXN0OiBRdWVyeUxpc3Q8TWF0RXhwYW5zaW9uUGFuZWw+O1xyXG5cclxuXHQvKipcclxuXHQgKiBDb25zdHJ1Y3RvclxyXG5cdCAqL1xyXG5cdGNvbnN0cnVjdG9yKHByb3RlY3RlZCByb3V0ZTogQWN0aXZhdGVkUm91dGUsIHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuXHRcdHRoaXMudGl0bGVTZXJ2aWNlID0gdGhpcy5nZXRTZXJ2aWNlKFRpdGxlKTtcclxuXHRcdHRoaXMuZGlhbG9nU2VydmljZSA9IHRoaXMuZ2V0U2VydmljZShWZERpYWxvZ1NlcnZpY2UpO1xyXG5cdFx0dGhpcy5tZWRpYSA9IHRoaXMuZ2V0U2VydmljZShWZE1lZGlhU2VydmljZSk7XHJcblx0XHR0aGlzLnNuYWNrQmFyU2VydmljZSA9IHRoaXMuZ2V0U2VydmljZShNYXRTbmFja0Jhcik7XHJcblx0XHR0aGlzLnJvdXRlciA9IHRoaXMuZ2V0U2VydmljZShSb3V0ZXIpO1xyXG5cdFx0dGhpcy5hcHBTZXR0aW5nID0gdGhpcy5nZXRTZXJ2aWNlKEFwcFNldHRpbmcpO1xyXG5cdFx0dGhpcy5sb2NhdGlvbiA9IHRoaXMuZ2V0U2VydmljZShMb2NhdGlvbik7XHJcblxyXG5cdFx0Q29udGV4dEhlbHBlci5hY3RpdmF0ZWRSb3V0ZSA9IHJvdXRlO1xyXG5cdFx0Q29udGV4dEhlbHBlci5yb3V0ZXIgPSB0aGlzLnJvdXRlcjtcclxuXHRcdENvbnRleHRIZWxwZXIuYXBwU2V0dGluZyA9IHRoaXMuYXBwU2V0dGluZztcclxuXHJcblx0XHR0aGlzLmluaXRFZGl0b3IoKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIExpZmVjeWNsZSBob29rIHRoYXQgaXMgY2FsbGVkIGFmdGVyIGRhdGEtYm91bmQgcHJvcGVydGllcyBcclxuXHQgKiBvZiBhIGRpcmVjdGl2ZSBhcmUgaW5pdGlhbGl6ZWQuXHJcblx0ICovXHJcblx0bmdPbkluaXQoKTogdm9pZCB7XHJcblx0XHQvKiBHZXQgbWVudSBpdGVtcyBmcm9tIHJvdXRlIHNuYXBzaG90ICovXHJcblx0XHR2YXIgbWFpblJvdXRlID0gdGhpcy5nZXRNYWluUm91dGUodGhpcy5yb3V0ZS5zbmFwc2hvdCk7XHJcblx0XHRpZiAobWFpblJvdXRlKSB7XHJcblx0XHRcdHRoaXMubWVudSA9IG1haW5Sb3V0ZS5kYXRhLm1lbnU7XHJcblx0XHR9XHJcblxyXG5cdFx0LyogU2V0IHByb2plY3QgbmFtZSAmIGRlYnVnIG1vZGUgKi9cclxuXHRcdHRoaXMucHJvamVjdE5hbWUgPSB0aGlzLmFwcFNldHRpbmcucHJvamVjdE5hbWU7XHJcblx0XHR0aGlzLmRlYnVnID0gdGhpcy5hcHBTZXR0aW5nLmRlYnVnO1xyXG5cclxuXHRcdC8qIEdldCB0aGUgaGFzaCBmcm9tIHRoZSB1cmwgKi9cclxuXHRcdHRoaXMucm91dGUuZnJhZ21lbnQuc3Vic2NyaWJlKChmcmFnbWVudDogc3RyaW5nKSA9PiB0aGlzLnVybEhhc2ggPSBmcmFnbWVudCk7XHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiBDaGVjayBwZXJtaXNzaW9uc1xyXG5cdFx0ICovXHJcblx0XHRpZiAodGhpcy5yb3V0ZS5wYXJlbnQpIHtcclxuXHRcdFx0dGhpcy5yb3V0ZS5wYXJlbnQudXJsLnN1YnNjcmliZSgodXJsOiBVcmxTZWdtZW50W10pID0+IHtcclxuXHRcdFx0XHR0aGlzLmNsYXNzTmFtZSA9IHVybFswXS5wYXRoLnJlcGxhY2UoLyguKilzJC8sICckMScpLnJlcGxhY2UoL14uLywgKHVybFswXS5wYXRoWzBdIHx8ICcnKS50b1VwcGVyQ2FzZSgpKTtcclxuXHRcdFx0XHR0aGlzLmNhbkNyZWF0ZSA9IEF1dGhIZWxwZXIuaXNQZXJtaXR0ZWQoJ0NyZWF0ZScsIGBDcmVhdGUke3RoaXMuY2xhc3NOYW1lfWApO1xyXG5cdFx0XHRcdHRoaXMuY2FuVXBkYXRlID0gQXV0aEhlbHBlci5pc1Blcm1pdHRlZCgnVXBkYXRlJywgYFVwZGF0ZSR7dGhpcy5jbGFzc05hbWV9YCk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8qIFNldCBjdXJyZW50IHJvdXRlICovXHJcblx0XHR0aGlzLmN1cnJlbnRSb3V0ZSA9IGJ0b2EodGhpcy5yb3V0ZXIudXJsKTtcclxuXHJcblx0XHQvKipcclxuXHRcdCAqIFNldCBwYWdlIHRpdGxlXHJcblx0XHQgKi9cclxuXHRcdHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoeCA9PiB7XHJcblx0XHRcdGlmICh4IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xyXG5cdFx0XHRcdHRoaXMuc2V0VGl0bGVzKCk7XHJcblx0XHRcdFx0dGhpcy5jdXJyZW50Um91dGUgPSBidG9hKHgudXJsKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBMaWZlY3ljbGUgaG9vayB0aGF0IGlzIGNhbGxlZCBhZnRlciBhIGNvbXBvbmVudCdzIHZpZXcgaGFzIGJlZW4gZnVsbHkgaW5pdGlhbGl6ZWQuXHJcblx0ICovXHJcblx0bmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG5cdFx0LyogQnJvYWRjYXN0IHRvIGFsbCBsaXN0ZW5lciBvYnNlcnZhYmxlcyB3aGVuIGxvYWRpbmcgdGhlIHBhZ2UgKi9cclxuXHRcdHRoaXMubWVkaWEuYnJvYWRjYXN0KCk7XHJcblxyXG5cdFx0LyogU2V0IHRpdGxlcyAqL1xyXG5cdFx0dGhpcy5zZXRUaXRsZXMoKTtcclxuXHJcblx0XHQvKiBcclxuXHRcdCAqIEZvcmNlIGEgbmV3IGNoYW5nZSBkZXRlY3Rpb24gY3ljbGUgc2luY2UgY2hhbmdlIGRldGVjdGlvbnMgXHJcblx0XHQgKiBoYXZlIGZpbmlzaGVkIHdoZW4gYG5nQWZ0ZXJWaWV3SW5pdGAgaXMgZXhlY3V0ZWRcclxuXHRcdCAqL1xyXG5cdFx0dGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG5cdFx0LyogTGlzdGVuIGZvciBleHBhbnNpb24gcGFuZWwgY2hhbmdlcyAqL1xyXG5cdFx0dGhpcy5vbkV4cGFuc2lvblBhbmVsQ2hhbmdlcygpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogUmVmcmVzaHMgdGhpcyBwYWdlL2NvbXBvbmVudFxyXG5cdCAqL1xyXG5cdHB1YmxpYyByZWxvYWRQYWdlKCk6IHZvaWQge1xyXG5cdFx0bGV0IGN1cnJlbnRVcmwgPSB0aGlzLnJvdXRlci51cmw7XHJcblx0XHR0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvJywgeyByZXBsYWNlVXJsOiB0cnVlIH0pLnRoZW4oKCkgPT4gdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChjdXJyZW50VXJsLCB7IHJlcGxhY2VVcmw6IHRydWUgfSkpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogTGlzdGVuIGZvciBleHBhbnNpb24gcGFuZWwgY2hhbmdlc1xyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCBvbkV4cGFuc2lvblBhbmVsQ2hhbmdlcygpOiB2b2lkIHtcclxuXHRcdC8qIExpc3RlbiBmb3IgZXhwYW5zaW9uIHBhbmVsIGNoYW5nZXMgKi9cclxuXHRcdHRoaXMubWF0RXhwYW5zaW9uUGFuZWxRdWVyeUxpc3Q/LmNoYW5nZXMuc3Vic2NyaWJlKF8gPT4ge1xyXG5cdFx0XHR0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcblx0XHRcdC8qIEZpbmQgdGhlIGluZGV4IG9mIHRoZSBwYW5lbCB3aXRoIHRoZSBzcGVjaWZpZWQgZWxlbWVudCBJRCAqL1xyXG5cdFx0XHR0aGlzLnVybEhhc2g/LnNwbGl0KCcuJylcclxuXHRcdFx0XHQ/LnJlZHVjZSgoYWNjdW11bGF0b3IsIGN1cnJlbnRWYWx1ZSwgaW5kZXgpID0+IGFjY3VtdWxhdG9yLmNvbmNhdCgoaW5kZXggPiAwID8gKGFjY3VtdWxhdG9yLnNsaWNlKC0xKS5qb2luKCcuJykgKyAnLicpIDogJycpICsgY3VycmVudFZhbHVlKSwgW10pXHJcblx0XHRcdFx0Py5mb3JFYWNoKChoYXNoOiBzdHJpbmcpID0+IHtcclxuXHRcdFx0XHRcdHZhciBleHBhbnNpb25QYW5lbEluZGV4ID0gdGhpcy5tYXRFeHBhbnNpb25QYW5lbEVsZW1lbnRRdWVyeUxpc3Q/LnRvQXJyYXkoKT8uZmluZEluZGV4KHggPT4geC5uYXRpdmVFbGVtZW50LmlkID09IGhhc2gpO1xyXG5cdFx0XHRcdFx0aWYgKGV4cGFuc2lvblBhbmVsSW5kZXggPj0gMCkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLm1hdEV4cGFuc2lvblBhbmVsUXVlcnlMaXN0Py50b0FycmF5KClbZXhwYW5zaW9uUGFuZWxJbmRleF0/Lm9wZW4oKTtcclxuXHRcdFx0XHRcdFx0dGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblxyXG5cdFx0XHQvKiBEZXRlY3QgY2hhbmdlcyBmb3Igb3BlbmVkIHBhbmVscyAqL1xyXG5cdFx0XHR0aGlzLm1hdEV4cGFuc2lvblBhbmVsUXVlcnlMaXN0Py5mb3JFYWNoKHkgPT4ge1xyXG5cdFx0XHRcdHkub3BlbmVkLnN1YnNjcmliZShfID0+IHtcclxuXHRcdFx0XHRcdGlmICh0aGlzLnNldFVybEhhc2gpIHtcclxuXHRcdFx0XHRcdFx0LyogR2V0IHRoZSBpZCBvZiB0aGUgY3VycmVudCBvcGVuZWQgcGFuZWwgKi9cclxuXHRcdFx0XHRcdFx0dmFyIGN1cnJlbnRQYW5lbElkID0geVsnX3ZpZXdDb250YWluZXJSZWYnXT8uZWxlbWVudD8ubmF0aXZlRWxlbWVudD8uaWQ7XHJcblxyXG5cdFx0XHRcdFx0XHQvKiBJZiB0aGUgcGFuZWwgSUQgaXMgc2V0LCBzZXQgaXQgYXMgdXJsIHNlZ21lbnQgKGhhc2gpICovXHJcblx0XHRcdFx0XHRcdGlmIChjdXJyZW50UGFuZWxJZCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7IGZyYWdtZW50OiBjdXJyZW50UGFuZWxJZCwgcmVwbGFjZVVybDogdHJ1ZSB9KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0LyogT3RoZXJ3aXNlIHJlbW92ZSB0aGUgc2VnbWVudCBmcm9tIHRoZSB1cmwgKi9cclxuXHRcdFx0XHRcdFx0ZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5yb3V0ZXIubmF2aWdhdGUoW10sIHsgcmVwbGFjZVVybDogdHJ1ZSB9KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdC8qIERldGVjdCBjaGFuZ2VzICovXHJcblx0XHRcdFx0XHR0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHJcblx0XHQvKiBOb3RpZnkgZXhwYW5zaW9uIHBhbmVsIGxpc3QgY2hhbmdlcyAqL1xyXG5cdFx0dGhpcy5tYXRFeHBhbnNpb25QYW5lbFF1ZXJ5TGlzdC5ub3RpZnlPbkNoYW5nZXMoKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFJldHJpZXZlcyBhbiBpbnN0YW5jZSBmcm9tIHRoZSBpbmplY3RvciBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgdG9rZW4uXHJcblx0ICogSWYgbm90IGZvdW5kOlxyXG5cdCAqIC0gVGhyb3dzIHtAbGluayBOb1Byb3ZpZGVyRXJyb3J9IGlmIG5vIGBub3RGb3VuZFZhbHVlYCB0aGF0IGlzIG5vdCBlcXVhbCB0b1xyXG5cdCAqIEluamVjdG9yLlRIUk9XX0lGX05PVF9GT1VORCBpcyBnaXZlblxyXG5cdCAqIC0gUmV0dXJucyB0aGUgYG5vdEZvdW5kVmFsdWVgIG90aGVyd2lzZVxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCBnZXRTZXJ2aWNlPFQ+KHRva2VuOiBUeXBlPFQ+KTogVCB7XHJcblx0XHRyZXR1cm4gU2VydmljZUxvY2F0b3IuZ2V0U2VydmljZSh0b2tlbik7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBHZXRzIGJhc2Ugcm91dGVcclxuXHQgKiBAcGFyYW0gc25hcHNob3QgXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIGdldE1haW5Sb3V0ZShzbmFwc2hvdDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IEFjdGl2YXRlZFJvdXRlU25hcHNob3Qge1xyXG5cdFx0aWYgKHNuYXBzaG90ICYmICFzbmFwc2hvdC5kYXRhLm1lbnUpIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMuZ2V0TWFpblJvdXRlKHNuYXBzaG90LnBhcmVudCk7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHNuYXBzaG90O1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0XHQgKiBTaG93cyBhIGNvbmZpcm0gZGlhbG9nIHRvIGRlbGV0ZSBhbiBpdGVtIFxyXG5cdFx0ICovXHJcblx0cHJvdGVjdGVkIHNob3dEZWxldGVJdGVtRGlhbG9nKCk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW5Db25maXJtKHtcclxuXHRcdFx0bWVzc2FnZTogJGxvY2FsaXplYDpAQGRpYWxvZy5tZXNzYWdlLmRlbGV0ZS5vbmU6QXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIGl0ZW0/YCxcclxuXHRcdFx0dGl0bGU6ICRsb2NhbGl6ZWA6QEBkaWFsb2cudGl0bGUuZGVsZXRlOkNvbmZpcm0gRGVsZXRlYCxcclxuXHRcdFx0Y2FuY2VsQnV0dG9uOiAkbG9jYWxpemVgOkBAY2FuY2VsOkNhbmNlbGAsXHJcblx0XHRcdGFjY2VwdEJ1dHRvbjogJGxvY2FsaXplYDpAQGRlbGV0ZTpEZWxldGVgLFxyXG5cdFx0fSkuYWZ0ZXJDbG9zZWQoKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFNob3dzIGEgY29uZmlybSBkaWFsb2cgdG8gZGVsZXRlIG11bHRpcGxlIGl0ZW1zXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIHNob3dEZWxldGVJdGVtc0RpYWxvZygpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuZGlhbG9nU2VydmljZS5vcGVuQ29uZmlybSh7XHJcblx0XHRcdG1lc3NhZ2U6ICRsb2NhbGl6ZWA6QEBkaWFsb2cubWVzc2FnZS5kZWxldGUubGlzdDpBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoZSBzZWxlY3RlZCBpdGVtcz9gLFxyXG5cdFx0XHR0aXRsZTogJGxvY2FsaXplYDpAQGRpYWxvZy50aXRsZS5kZWxldGU6Q29uZmlybSBEZWxldGVgLFxyXG5cdFx0XHRjYW5jZWxCdXR0b246ICRsb2NhbGl6ZWA6QEBjYW5jZWw6Q2FuY2VsYCxcclxuXHRcdFx0YWNjZXB0QnV0dG9uOiAkbG9jYWxpemVgOkBAZGVsZXRlOkRlbGV0ZWAsXHJcblx0XHR9KS5hZnRlckNsb3NlZCgpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogU2hvd3MgYSBjb25maXJtIGRpYWxvZyB0byBzZW5kIHNvbWUgZGF0YVxyXG5cdCAqIEBwYXJhbSBtZXNzYWdlIFRoZSBtZXNzYWdlIHRvIGRpc3BsYXlcclxuXHQgKiBAcGFyYW0gb2JzZXJ2YWJlIFRoZSBvYnNlcnZhYmxlIGluc3RhbmNlXHJcblx0ICogQHBhcmFtIHN1Y2Nlc3NDYWxsYmFjayBBIHN1Y2Nlc3MgY2FsbGJhY2tcclxuXHQgKiBAcGFyYW0gZXJyb3JDYWxsYmFjayBBbiBlcnJvciBjYWxsYmFja1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBzaG93Q29uZmlybWF0aW9uRGlhbG9nKG1lc3NhZ2U6IHN0cmluZywgb2JzZXJ2YWJlOiBPYnNlcnZhYmxlPGFueT4sIHN1Y2Nlc3NDYWxsYmFjazogRnVuY3Rpb24gPSBudWxsLCBlcnJvckNhbGxiYWNrOiBGdW5jdGlvbiA9IG51bGwpIHtcclxuXHRcdHRoaXMuZGlhbG9nU2VydmljZVxyXG5cdFx0XHQub3BlbkNvbmZpcm0oe1xyXG5cdFx0XHRcdG1lc3NhZ2U6IG1lc3NhZ2UsXHJcblx0XHRcdFx0dGl0bGU6ICRsb2NhbGl6ZWA6QEBkaWFsb2cudGl0bGUuY29uZmlybTpDb25maXJtYCxcclxuXHRcdFx0XHRjYW5jZWxCdXR0b246ICRsb2NhbGl6ZWA6QEBjYW5jZWw6Q2FuY2VsYCxcclxuXHRcdFx0XHRhY2NlcHRCdXR0b246ICRsb2NhbGl6ZWA6QEBvazpPa2AsXHJcblx0XHRcdH0pXHJcblx0XHRcdC5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgoYWNjZXB0OiBib29sZWFuKSA9PiB7XHJcblx0XHRcdFx0aWYgKGFjY2VwdCkge1xyXG5cdFx0XHRcdFx0b2JzZXJ2YWJlLnN1YnNjcmliZSh4ID0+IHtcclxuXHRcdFx0XHRcdFx0dGhpcy5zaG93TWVzc2FnZSgkbG9jYWxpemVgOkBAc25hY2tiYXIuc2VuZC5zdWNjZXNzOkRhdGEgc2VudCBzdWNjZXNzZnVsbHkuYCk7XHJcblxyXG5cdFx0XHRcdFx0XHRpZiAoc3VjY2Vzc0NhbGxiYWNrKSB7XHJcblx0XHRcdFx0XHRcdFx0c3VjY2Vzc0NhbGxiYWNrKHgpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9LCBlcnJvcnMgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmlzU2F2aW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdGlmIChlcnJvckNhbGxiYWNrKSB7XHJcblx0XHRcdFx0XHRcdFx0ZXJyb3JDYWxsYmFjayhlcnJvcnMpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogU2hvd3MgYSBtZXNzYWdlXHJcblx0ICogQHBhcmFtIG1lc3NhZ2UgVGhlIG1lc3NhZ2UgdG8gZGlzcGxheVxyXG5cdCAqIEBwYXJhbSB0eXBlIFRoZSB0eXBlIG9mIHRoZSBtZXNzYWdlXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIHNob3dNZXNzYWdlKG1lc3NhZ2U/OiBzdHJpbmcsIHR5cGU6IE1lc3NhZ2VUeXBlID0gTWVzc2FnZVR5cGUuU3VjY2Vzcyk6IHZvaWQge1xyXG5cdFx0dmFyIHNuYWNrQmFyQ2xhc3MgPSAncHJpbWFyeSc7XHJcblx0XHRzd2l0Y2ggKHR5cGUpIHtcclxuXHRcdFx0Y2FzZSBNZXNzYWdlVHlwZS5TdWNjZXNzOlxyXG5cdFx0XHRcdHNuYWNrQmFyQ2xhc3MgPSAncHJpbWFyeSc7XHJcblx0XHRcdFx0YnJlYWs7XHJcblxyXG5cdFx0XHRjYXNlIE1lc3NhZ2VUeXBlLldhcm5pbmc6XHJcblx0XHRcdFx0c25hY2tCYXJDbGFzcyA9ICd3YXJuJztcclxuXHRcdFx0XHRicmVhaztcclxuXHJcblx0XHRcdGNhc2UgTWVzc2FnZVR5cGUuRXJyb3I6XHJcblx0XHRcdFx0c25hY2tCYXJDbGFzcyA9ICdlcnJvcic7XHJcblx0XHRcdFx0YnJlYWs7XHJcblxyXG5cdFx0XHRkZWZhdWx0OlxyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4obWVzc2FnZSB8fCAkbG9jYWxpemVgOkBAc25hY2tiYXIuc2VuZC5zdWNjZXNzOkRhdGEgc2VudCBzdWNjZXNzZnVsbHkuYCwgbnVsbCwge1xyXG5cdFx0XHRkdXJhdGlvbjogMzAwMCxcclxuXHRcdFx0cGFuZWxDbGFzczogW3NuYWNrQmFyQ2xhc3NdXHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEluaXRvYWxpemVzIHRoZSB0aW55bWNlIGVkaXRvclxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCBpbml0RWRpdG9yKGVkaXRvckNvbmZpZzogYW55ID0ge30pIHtcclxuXHRcdE9iamVjdC5hc3NpZ24odGhpcy5lZGl0b3JDb25maWcsIHtcclxuXHRcdFx0c3VmZml4OiAnLm1pbicsXHJcblx0XHRcdHNraW46IGZhbHNlLFxyXG5cdFx0XHRoZWlnaHQ6ICcxNzBweCcsXHJcblx0XHRcdGNvbnRlbnRfY3NzOiBmYWxzZSxcclxuXHRcdFx0cGx1Z2luczogdGhpcy5lZGl0b3JQbHVnaW5zLFxyXG5cdFx0XHR0b29sYmFyOiB0aGlzLmVkaXRvclRvb2xiYXIsXHJcblx0XHRcdHBhc3RlX2FzX3RleHQ6IHRydWUsXHJcblx0XHRcdGxhbmd1YWdlOiAnZGUnLFxyXG5cdFx0XHRsYW5ndWFnZV91cmw6ICcvYXNzZXRzL3RpbnltY2UvbGFuZ3MvZGUuanMnLFxyXG5cdFx0XHRkb2N1bWVudF9iYXNlX3VybDogYCR7dGhpcy5hcHBTZXR0aW5nLmFwaVVybH1maWxlL2AsXHJcblx0XHRcdGF1dG9tYXRpY191cGxvYWRzOiB0cnVlLFxyXG5cdFx0XHRyZWxhdGl2ZV91cmxzOiB0cnVlLFxyXG5cdFx0XHRjb252ZXJ0X3VybHM6IGZhbHNlLFxyXG5cdFx0XHRleHRlbmRlZF92YWxpZF9lbGVtZW50czogJ3NwYW5baWR8Y2xhc3N8c3R5bGVdLCtAW2RhdGEtb3B0aW9uc10nLFxyXG5cdFx0XHRhbGxvd19odG1sX2luX25hbWVkX2FuY2hvcjogdHJ1ZVxyXG5cdFx0fSwgZWRpdG9yQ29uZmlnKTtcclxuXHJcblx0XHR0aGlzLmlzRWRpdG9ySW5pdGlhbHplZCA9IHRydWU7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBTZXRzIHN1YnRpdGxlIGZyb20gY3VycmVuIG1lbnVcclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgc2V0VGl0bGVzKCk6IHZvaWQge1xyXG5cdFx0aWYgKHRoaXMubWVudSkge1xyXG5cdFx0XHR0aGlzLnRpdGxlU2VydmljZS5zZXRUaXRsZSh0aGlzLm1lbnUudGl0bGUpO1xyXG5cdFx0XHR0aGlzLnRpdGxlID0gdGhpcy50aXRsZVNlcnZpY2UuZ2V0VGl0bGUoKTtcclxuXHJcblx0XHRcdGlmICh0aGlzLm1lbnUuaXRlbXMpIHtcclxuXHRcdFx0XHR2YXIgc3VibWVudSA9IHRoaXMubWVudS5pdGVtcy5maWx0ZXIoeCA9PiB4LnBhdGggPT0gdGhpcy5yb3V0ZXIudXJsKVswXTtcclxuXHRcdFx0XHRpZiAoc3VibWVudSkge1xyXG5cdFx0XHRcdFx0dGhpcy5zdWJ0aXRsZSA9IHN1Ym1lbnUudGl0bGU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBOYXZpZ2F0ZSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgYXJyYXkgb2YgY29tbWFuZHMgYW5kIGEgc3RhcnRpbmcgcG9pbnQuXHJcblx0ICogQHBhcmFtIGNvbW1hbmRzIFxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCBuYXZpZ2F0ZShjb21tYW5kczogYW55W10sIHF1ZXJ5UGFyYW1zPzogYW55KTogdm9pZCB7XHJcblx0XHR0aGlzLnJvdXRlci5uYXZpZ2F0ZShjb21tYW5kcywgeyBxdWVyeVBhcmFtczogT2JqZWN0LmFzc2lnbih7IHJldHVyblVybDogdGhpcy5jdXJyZW50Um91dGUgfSwgcXVlcnlQYXJhbXMgfHwge30pLCByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQ29udmVydCBPYmplY3QgdG8gSHR0cEhlYWRlcnNcclxuXHQgKiBcclxuXHQgKiBAcGFyYW0gYm9keVxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCB0b0h0dHBIZWFkZXJzKGJvZHk6IE9iamVjdCk6IEh0dHBIZWFkZXJzIHtcclxuXHRcdGlmICghYm9keSkge1xyXG5cdFx0XHRyZXR1cm4gbmV3IEh0dHBIZWFkZXJzKCk7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGJvZHkpXHJcblx0XHRcdC5maWx0ZXIoa2V5ID0+IGJvZHlba2V5XSAhPSBudWxsICYmIGJvZHlba2V5XSAhPSAnJylcclxuXHRcdFx0LnJlZHVjZSgocCwga2V5KSA9PiBwLnNldChrZXksIGJvZHlba2V5XSksIG5ldyBIdHRwSGVhZGVycygpKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFBhcnNlcyBodHRwIHJlc3BvbnNlIGVycm9yc1xyXG5cdCAqIEBwYXJhbSBlcnJvcnMgXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIHBhcnNlRXJyb3JzKGVycm9yczogT2JqZWN0KTogdm9pZCB7XHJcblx0XHR0aGlzLmVycm9ycyA9IFtdO1xyXG5cdFx0dGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuXHRcdHRoaXMuaXNTYXZpbmcgPSBmYWxzZTtcclxuXHJcblx0XHRpZiAoZXJyb3JzKSB7XHJcblx0XHRcdE9iamVjdC5rZXlzKGVycm9ycykuZm9yRWFjaChlbCA9PiB7XHJcblx0XHRcdFx0bGV0IGVycm9yID0gZXJyb3JzW2VsXTtcclxuXHRcdFx0XHRpZiAoQXJyYXkuaXNBcnJheShlcnJvcikpIHtcclxuXHRcdFx0XHRcdGVycm9yLmZvckVhY2goZXJyID0+IHtcclxuXHRcdFx0XHRcdFx0dGhpcy5lcnJvcnMucHVzaChlcnIpO1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0fSBlbHNlIGlmICh0eXBlb2YgZXJyb3IgPT09IFwic3RyaW5nXCIpIHtcclxuXHRcdFx0XHRcdHRoaXMuZXJyb3JzLnB1c2goZXJyb3IpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBIYW5kbGUgSHR0cCBvcGVyYXRpb24gdGhhdCBmYWlsZWQuXHJcblx0ICogTGV0IHRoZSBhcHAgY29udGludWUuXHJcblx0ICogQHBhcmFtIG9wZXJhdGlvbiAtIG5hbWUgb2YgdGhlIG9wZXJhdGlvbiB0aGF0IGZhaWxlZFxyXG5cdCAqIEBwYXJhbSByZXN1bHQgLSBvcHRpb25hbCB2YWx1ZSB0byByZXR1cm4gYXMgdGhlIG9ic2VydmFibGUgcmVzdWx0XHJcblx0ICovXHJcblx0cHJvdGVjdGVkIGhhbmRsZUVycm9yPFQ+KG9wZXJhdGlvbiA9ICdvcGVyYXRpb24nLCByZXN1bHQ/OiBUKSB7XHJcblx0XHRyZXR1cm4gKGVycm9yOiBhbnkpOiBPYnNlcnZhYmxlPFQ+ID0+IHtcclxuXHJcblx0XHRcdC8qIFBhcnNlIHRoZSBlcnJvciBtZXNzYWdlcyAqL1xyXG5cdFx0XHR0aGlzLnBhcnNlRXJyb3JzKGVycm9yKTtcclxuXHJcblx0XHRcdC8qIExvZyB0byBjb25zb2xlICovXHJcblx0XHRcdHRoaXMud2FybihgJHtvcGVyYXRpb259IGZhaWxlZDogJHtlcnJvci5tZXNzYWdlfWApO1xyXG5cclxuXHRcdFx0LyogTGV0IHRoZSBhcHAga2VlcCBydW5uaW5nIGJ5IHJldHVybmluZyBhbiBlbXB0eSByZXN1bHQgKi9cclxuXHRcdFx0cmV0dXJuIG9mKHJlc3VsdCBhcyBUKTtcclxuXHRcdH07XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBMb2cgdG8gY29uc29sZVxyXG5cdCAqIEBwYXJhbSBtZXNzYWdlIFxyXG5cdCAqIEBwYXJhbSBvcHRpb25hbFBhcmFtcyBcclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgbG9nKG1lc3NhZ2U6IHN0cmluZywgLi4ub3B0aW9uYWxQYXJhbXM6IGFueVtdKSB7XHJcblx0XHRpZiAodGhpcy5kZWJ1Zykge1xyXG5cdFx0XHRjb25zb2xlLmxvZyhtZXNzYWdlLCBvcHRpb25hbFBhcmFtcyk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBMb2cgdG8gY29uc29sZVxyXG5cdCAqIEBwYXJhbSBtZXNzYWdlIFxyXG5cdCAqIEBwYXJhbSBvcHRpb25hbFBhcmFtcyBcclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgd2FybihtZXNzYWdlOiBzdHJpbmcsIC4uLm9wdGlvbmFsUGFyYW1zOiBhbnlbXSkge1xyXG5cdFx0aWYgKHRoaXMuZGVidWcpIHtcclxuXHRcdFx0Y29uc29sZS53YXJuKG1lc3NhZ2UsIG9wdGlvbmFsUGFyYW1zKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIENsZWFucyB0aGUgb2JqZWN0c1xyXG5cdCAqIFJlbW92ZXMgZW1wdHkgcHJvcGVydGllc1xyXG5cdCAqIEBwYXJhbSBvYmogXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIGNsZWFuKG9iajogYW55KTogYW55IHtcclxuXHRcdHRyeSB7XHJcblx0XHRcdGZvciAodmFyIHByb3BOYW1lIGluIG9iaikge1xyXG5cdFx0XHRcdGlmIChvYmpbcHJvcE5hbWVdID09PSBudWxsIHx8IG9ialtwcm9wTmFtZV0gPT09IHVuZGVmaW5lZCB8fCBvYmpbcHJvcE5hbWVdID09PSBcIlwiKSB7XHJcblx0XHRcdFx0XHRkZWxldGUgb2JqW3Byb3BOYW1lXTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0gY2F0Y2ggKGVycm9yKSB7IH1cclxuXHJcblx0XHRyZXR1cm4gb2JqO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogU2FuaXRpemVzIHRoZSBzcGVjaWZpZWQgb2JqZWN0XHJcblx0ICogQHBhcmFtIG9iaiBcclxuXHQgKiBAcmV0dXJucyBcclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgc2FuaXRpemVPYmplY3Qob2JqOiBhbnksIC4uLmlnbm9yZTogc3RyaW5nW10pOiBhbnkge1xyXG5cdFx0cmV0dXJuIE9iamVjdC5rZXlzKG9iailcclxuXHRcdFx0LmZpbHRlcih4ID0+IG9ialt4XSlcclxuXHRcdFx0LmZpbHRlcih4ID0+ICEoaWdub3JlIHx8IFtdKS5tYXAoeCA9PiB4LnRvTG93ZXJDYXNlKCkpLmluY2x1ZGVzKHgudG9Mb3dlckNhc2UoKSkpXHJcblx0XHRcdC5yZWR1Y2UoKHJlc3VsdCwga2V5KSA9PiB7XHJcblx0XHRcdFx0cmVzdWx0W2tleV0gPSBpc05hTigrb2JqW2tleV0pID8gb2JqW2tleV0gOiArb2JqW2tleV07XHJcblx0XHRcdFx0cmV0dXJuIHJlc3VsdDtcclxuXHRcdFx0fSwge30pO1xyXG5cdH1cclxufSJdfQ==
|