@messaia/cdk 14.0.0 → 15.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 +8 -8
- package/esm2020/lib/base/components/base.component.mjs +3 -3
- package/esm2020/lib/base/components/dynamic-table-config-dialog.comnponent.mjs +21 -21
- package/esm2020/lib/base/components/generic-form-base.component.mjs +3 -3
- package/esm2020/lib/base/components/generic-form.component.mjs +3 -3
- package/esm2020/lib/base/components/generic-list.component.mjs +3 -3
- package/esm2020/lib/base/components/generic-reactive-form.component.mjs +3 -3
- package/esm2020/lib/base/interceptors/base.interceptor.mjs +3 -3
- package/esm2020/lib/base/interceptors/caching-interceptor.mjs +3 -3
- package/esm2020/lib/base/interceptors/loading.interceptor.mjs +3 -3
- package/esm2020/lib/base/services/file.service.mjs +3 -3
- package/esm2020/lib/base/services/loading-screen.service.mjs +3 -3
- package/esm2020/lib/base/services/print.service.mjs +3 -3
- package/esm2020/lib/chips/chips.module.mjs +4 -4
- package/esm2020/lib/chips/components/chips.component.mjs +6 -6
- package/esm2020/lib/chips/directives/autocomplete-option.directive.mjs +3 -3
- package/esm2020/lib/chips/directives/chip.directive.mjs +3 -3
- package/esm2020/lib/common/common.module.mjs +4 -4
- package/esm2020/lib/common/directives/disable-control.directive.mjs +3 -3
- package/esm2020/lib/common/functions/utils.mjs +4 -4
- package/esm2020/lib/common/helpers/app-storage.mjs +4 -4
- package/esm2020/lib/common/helpers/dynamic-builder.mjs +3 -3
- package/esm2020/lib/common/helpers/dynamic-component-compiler.mjs +3 -3
- package/esm2020/lib/common/models/app-setting.mjs +3 -3
- package/esm2020/lib/common/models/audit-entity.mjs +1 -1
- package/esm2020/lib/common/models/base-entity.mjs +1 -1
- package/esm2020/lib/common/models/displayname-number-projection.mjs +1 -1
- package/esm2020/lib/common/models/displayname-projection.mjs +1 -1
- package/esm2020/lib/common/models/name-number-projection.mjs +1 -1
- package/esm2020/lib/common/models/name-projection.mjs +1 -1
- package/esm2020/lib/common/models/title-projection.mjs +1 -1
- package/esm2020/lib/common/pipes/data-source.pipe.mjs +3 -3
- package/esm2020/lib/common/pipes/enum.pipe.mjs +3 -3
- package/esm2020/lib/common/pipes/file-size.pipe.mjs +3 -3
- package/esm2020/lib/common/pipes/filter.pipe.mjs +3 -3
- package/esm2020/lib/common/pipes/first-letter.mjs +3 -3
- package/esm2020/lib/common/pipes/form-control.pipe.mjs +3 -3
- package/esm2020/lib/common/pipes/form-group.pipe.mjs +3 -3
- package/esm2020/lib/common/pipes/func.pipe.mjs +3 -3
- package/esm2020/lib/common/pipes/keys.mjs +3 -3
- package/esm2020/lib/common/pipes/month-name.pipe.mjs +3 -3
- package/esm2020/lib/common/pipes/only-number.mjs +3 -3
- package/esm2020/lib/common/pipes/order.pipe.mjs +3 -3
- package/esm2020/lib/common/pipes/placeholder.pipe.mjs +3 -3
- package/esm2020/lib/common/pipes/safe-html.pipe.mjs +3 -3
- package/esm2020/lib/common/pipes/time.pipe.mjs +3 -3
- package/esm2020/lib/common/pipes/titlecase.pipe.mjs +3 -3
- package/esm2020/lib/common/pipes/truncate.pipe.mjs +3 -3
- package/esm2020/lib/common/pipes/values.mjs +3 -3
- package/esm2020/lib/common/services/base.service.mjs +3 -3
- package/esm2020/lib/common/services/enum.service.mjs +3 -3
- package/esm2020/lib/dialogs/alert-dialog/alert-dialog.component.mjs +18 -6
- package/esm2020/lib/dialogs/confirm-dialog/confirm-dialog.component.mjs +20 -6
- package/esm2020/lib/dialogs/dialog.component.mjs +12 -12
- package/esm2020/lib/dialogs/dialogs.module.mjs +4 -4
- package/esm2020/lib/dialogs/prompt-dialog/prompt-dialog.component.mjs +5 -5
- package/esm2020/lib/dialogs/services/dialog.service.mjs +3 -3
- package/esm2020/lib/file/file-input.component.mjs +33 -33
- package/esm2020/lib/file/file.module.mjs +4 -4
- package/esm2020/lib/form-validators/abstract/typed-form.mjs +1 -1
- package/esm2020/lib/form-validators/algorithm/luhn-algorithm.mjs +1 -1
- package/esm2020/lib/form-validators/const/app-validators.const.mjs +1 -1
- package/esm2020/lib/form-validators/const/app.const.mjs +1 -1
- package/esm2020/lib/form-validators/const/config-names.const.mjs +1 -1
- package/esm2020/lib/form-validators/const/config-required-fields.const.mjs +1 -1
- package/esm2020/lib/form-validators/const/decorators.const.mjs +1 -1
- package/esm2020/lib/form-validators/const/events.const.mjs +1 -1
- package/esm2020/lib/form-validators/const/html-elements.const.mjs +1 -1
- package/esm2020/lib/form-validators/const/iban-country-wise-regex.const.mjs +1 -1
- package/esm2020/lib/form-validators/const/index.mjs +1 -1
- package/esm2020/lib/form-validators/const/operators.const.mjs +1 -1
- package/esm2020/lib/form-validators/const/validation-alphabet-locale.const.mjs +1 -1
- package/esm2020/lib/form-validators/const/validator.const.mjs +1 -1
- package/esm2020/lib/form-validators/core/defaultContainer.mjs +1 -1
- package/esm2020/lib/form-validators/core/validator.interface.mjs +1 -1
- package/esm2020/lib/form-validators/core/validator.static.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/allOf.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/alpha.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/alphaNumeric.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/and.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/ascii.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/async.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/base-decorator.function.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/choice.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/compare.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/compose.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/contains.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/credit-card.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/cusip.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/custom.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/dataUri.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/date.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/different.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/digit.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/email.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/endsWith.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/even.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/extension.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/factor.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/file.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/fileSize.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/greater-than-equal-to.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/greater-than.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/grid.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/hexColor.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/image.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/index.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/json.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/latLong.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/latitude.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/leapYear.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/less-than-equal-to.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/less-than.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/longitude.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/lowercase.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/mac.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/mask.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/maxDate.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/maxLength.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/maxNumber.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/maxTime.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/minDate.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/minLength.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/minNumber.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/minTime.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/model.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/non-validation-decorators/disable.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/non-validation-decorators/elementClass.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/non-validation-decorators/error.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/non-validation-decorators/update-on.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/noneOf.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/not.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/notEmpty.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/numeric.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/odd.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/oneOf.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/or.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/password.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/pattern.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/port.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/primeNumber.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/prop-array.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/prop-object.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/prop.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/range.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/required.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/requiredTrue.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/rule.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/sanitize/blacklist.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/sanitize/escape.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/sanitize/ltrim.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/sanitize/prefix.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/sanitize/rtrim.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/sanitize/sanitize.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/sanitize/stripLow.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/sanitize/suffix.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/sanitize/toBoolean.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/sanitize/toDate.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/sanitize/toDouble.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/sanitize/toFloat.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/sanitize/toInt.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/sanitize/toString.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/sanitize/trim.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/sanitize/whitelist.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/startsWith.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/time.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/unique.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/uppercase.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/decorators/url.decorator.mjs +1 -1
- package/esm2020/lib/form-validators/directives/base-directive.mjs +4 -4
- package/esm2020/lib/form-validators/directives/control-host.directive.mjs +4 -4
- package/esm2020/lib/form-validators/directives/html-control-template.directive.mjs +4 -4
- package/esm2020/lib/form-validators/directives/rx-form.directive.mjs +4 -4
- package/esm2020/lib/form-validators/directives/template-validations/async-validation.directive.mjs +4 -4
- package/esm2020/lib/form-validators/directives/template-validations/base-validator.directive.mjs +4 -4
- package/esm2020/lib/form-validators/directives/template-validations/control-expression-process.mjs +4 -4
- package/esm2020/lib/form-validators/directives/template-validations/file-control.directive.mjs +4 -4
- package/esm2020/lib/form-validators/directives/template-validations/image-file-control.directive.mjs +4 -4
- package/esm2020/lib/form-validators/directives/template-validations/rxformcontrol.directive.mjs +4 -4
- package/esm2020/lib/form-validators/domain/disable-provider.mjs +1 -1
- package/esm2020/lib/form-validators/domain/element-processor/decimal.provider.mjs +4 -4
- package/esm2020/lib/form-validators/domain/element-processor/mask.provider.mjs +1 -1
- package/esm2020/lib/form-validators/domain/form-data.mjs +1 -1
- package/esm2020/lib/form-validators/enums/error-message-binding-strategy.mjs +1 -1
- package/esm2020/lib/form-validators/enums/index.mjs +1 -1
- package/esm2020/lib/form-validators/enums/ip-version.mjs +1 -1
- package/esm2020/lib/form-validators/enums/numeric-value-type.mjs +1 -1
- package/esm2020/lib/form-validators/enums/reset-type.mjs +1 -1
- package/esm2020/lib/form-validators/enums/url-validation-type.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/alpha-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/array-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/base-config-fn.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/base-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/base-date-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/choice-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/compare-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/component-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/compose-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/contains-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/credit-card-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/custom-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/date-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/default-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/digit-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/disable-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/element-class-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/email-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/error-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/extension-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/factor-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/field-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/file-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/hex-color-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/iban-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/image-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/index.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/ip-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/logical-operator-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/mask-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/max-date-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/message-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/min-date-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/model-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/number-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/numeric-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/password-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/pattern-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/prop-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/props-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/range-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/relational-operator-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/required-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/rule-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/sanitize-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/size-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/string-comparison-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/string-value-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/time-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/todate-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/unique-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/update-on-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/config/url-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/form-builder-configuration.mjs +1 -1
- package/esm2020/lib/form-validators/models/index.mjs +1 -1
- package/esm2020/lib/form-validators/models/interface/array-prop-instance-config.interface.mjs +1 -1
- package/esm2020/lib/form-validators/models/interface/auto-instance-config.interface.mjs +1 -1
- package/esm2020/lib/form-validators/models/interface/form-data-config.mjs +1 -1
- package/esm2020/lib/form-validators/models/interface/i-abstract-control.mjs +1 -1
- package/esm2020/lib/form-validators/models/interface/i-form-group.mjs +1 -1
- package/esm2020/lib/form-validators/models/interface/instance-argument.interface.mjs +1 -1
- package/esm2020/lib/form-validators/models/interface/object-prop-instance-config.interface.mjs +1 -1
- package/esm2020/lib/form-validators/models/interface/options.mjs +1 -1
- package/esm2020/lib/form-validators/models/password-validation.model.mjs +1 -1
- package/esm2020/lib/form-validators/models/prop-validation-config.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/allOf.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/alpha.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/alphaNumeric.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/and.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/ascii.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/choice.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/compare.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/compose.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/conditional-change.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/contains.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/credit-card.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/cusip.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/custom.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/dataUri.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/date.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/different.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/digit.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/email.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/endsWith.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/even.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/extension.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/factor.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/file.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/fileSize.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/greater-than-equal-to.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/greater-than.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/grid.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/hexcolor.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/iban.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/image.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/index.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/ip.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/json.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/latLong.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/latitude.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/leapYear.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/less-than-equal-to.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/less-than.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/longitude.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/lowercase.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/mac.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/mask.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/maxDate.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/maxLength.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/maxNumber.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/maxTime.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/minDate.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/minLength.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/minNumber.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/minTime.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/noneOf.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/not.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/notEmpty.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/numeric.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/odd.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/oneOf.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/or.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/password.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/pattern.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/port.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/primeNumber.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/range.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/required.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/requiredTrue.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/rule.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/startsWith.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/time.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/unique.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/uppercase.validator.mjs +1 -1
- package/esm2020/lib/form-validators/reactive-form-validators/url.validator.mjs +1 -1
- package/esm2020/lib/form-validators/services/base-form-builder.mjs +1 -1
- package/esm2020/lib/form-validators/services/entity.service.mjs +1 -1
- package/esm2020/lib/form-validators/services/form-control.mjs +1 -1
- package/esm2020/lib/form-validators/services/form-group.mjs +1 -1
- package/esm2020/lib/form-validators/services/reactive-form.module.mjs +9 -9
- package/esm2020/lib/form-validators/services/rx-form-array.mjs +1 -1
- package/esm2020/lib/form-validators/services/rx-form-builder.mjs +4 -4
- package/esm2020/lib/form-validators/services/rx-form-group.mjs +1 -1
- package/esm2020/lib/form-validators/services/typed-form-builder.mjs +4 -4
- package/esm2020/lib/form-validators/util/alphabet-regex.locale.mjs +1 -1
- package/esm2020/lib/form-validators/util/app-util.mjs +1 -1
- package/esm2020/lib/form-validators/util/check-length.mjs +1 -1
- package/esm2020/lib/form-validators/util/config-provider.mjs +1 -1
- package/esm2020/lib/form-validators/util/date-checker.function.mjs +1 -1
- package/esm2020/lib/form-validators/util/date-provider.mjs +1 -1
- package/esm2020/lib/form-validators/util/form-const.mjs +1 -1
- package/esm2020/lib/form-validators/util/form-provider.mjs +1 -1
- package/esm2020/lib/form-validators/util/index.mjs +1 -1
- package/esm2020/lib/form-validators/util/instance-provider.function.mjs +1 -1
- package/esm2020/lib/form-validators/util/ip-checker.mjs +1 -1
- package/esm2020/lib/form-validators/util/linq.mjs +1 -1
- package/esm2020/lib/form-validators/util/object-maker.mjs +1 -1
- package/esm2020/lib/form-validators/util/reactive-form-config.mjs +1 -1
- package/esm2020/lib/form-validators/util/regex-rules.mjs +1 -1
- package/esm2020/lib/form-validators/util/regex-validator.mjs +1 -1
- package/esm2020/lib/form-validators/util/relational-checker.function.mjs +1 -1
- package/esm2020/lib/form-validators/util/reset-form.mjs +1 -1
- package/esm2020/lib/form-validators/util/sanitizers.mjs +1 -1
- package/esm2020/lib/form-validators/util/time-checker.function.mjs +1 -1
- package/esm2020/lib/form-validators/util/type.mjs +1 -1
- package/esm2020/lib/form-validators/util/validator-value-checker.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/allOf-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/alpha-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/alphaNumeric-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/and-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/ascii-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/base-validator.function.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/choice-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/compare-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/compose-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/contains-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/credit-card-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/cusip-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/custom-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/dataUri-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/date-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/different-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/digit-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/email-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/endsWith-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/even-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/extension-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/factor-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/file-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/fileSize-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/greater-than-equal-to-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/greater-than-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/grid-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/hexcolor-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/iban-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/image-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/index.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/ip-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/json-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/latLong-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/latitude-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/leapYear-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/less-than-equal-to-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/less-than-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/longitude-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/lowercase-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/mac-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/mask-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/maxDate-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/maxLength-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/maxNumber-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/maxTime-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/minDate-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/minLength-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/minNumber-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/minTime-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/noneOf-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/not-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/notEmpty-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/numeric-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/odd-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/oneOf-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/or-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/password-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/pattern-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/port-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/primeNumber-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/range-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/required-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/requiredTrue-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/rxweb-validators.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/startsWith-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/time-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/unique-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/uppercase-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-extension/url-validator.extension.mjs +1 -1
- package/esm2020/lib/form-validators/validators-function/alpha-validation.function.mjs +1 -1
- package/esm2020/lib/form-validators/validators-function/regex-validation.function.mjs +1 -1
- package/esm2020/lib/forms/components/generic-form/generic-form.component.mjs +17 -17
- package/esm2020/lib/forms/directives/mat-form-field-editor.directive.mjs +3 -3
- package/esm2020/lib/forms/directives/mat-form-field-readonly.directive.mjs +3 -3
- package/esm2020/lib/forms/forms.module.mjs +4 -4
- package/esm2020/lib/forms/helpers/abstract-mat-form-field.mjs +17 -7
- package/esm2020/lib/forms/helpers/value-accessor-base.mjs +3 -3
- package/esm2020/lib/forms/models/form-field-definition.mjs +1 -1
- package/esm2020/lib/forms/validators/empty-string-reset.directive.mjs +3 -3
- package/esm2020/lib/forms/validators/equal-validator.directive.mjs +3 -3
- package/esm2020/lib/forms/validators/native-element-injector.directive.mjs +3 -3
- package/esm2020/lib/forms/validators/unique-validator-directive.mjs +3 -3
- package/esm2020/lib/http/http.module.mjs +4 -4
- package/esm2020/lib/layout/dynamic-menu/dynamic-menu.component.mjs +3 -3
- package/esm2020/lib/layout/layout-card-over/layout-card-over.component.mjs +5 -5
- package/esm2020/lib/layout/layout-footer/layout-footer.component.mjs +3 -3
- package/esm2020/lib/layout/layout-manage-list/layout-manage-list.component.mjs +4 -4
- package/esm2020/lib/layout/layout-manage-list/layout-manage-list.directives.mjs +9 -9
- package/esm2020/lib/layout/layout-nav/layout-nav.component.mjs +3 -3
- package/esm2020/lib/layout/layout-nav-list/layout-nav-list.component.mjs +3 -3
- package/esm2020/lib/layout/layout-nav-list/layout-nav-list.directives.mjs +9 -9
- package/esm2020/lib/layout/layout-toggle.class.mjs +3 -3
- package/esm2020/lib/layout/layout.component.mjs +3 -3
- package/esm2020/lib/layout/layout.directives.mjs +9 -9
- package/esm2020/lib/layout/layout.module.mjs +4 -4
- package/esm2020/lib/layout/list-toolbar/list-toolbar.component.mjs +3 -3
- package/esm2020/lib/layout/navigation-drawer/navigation-drawer.component.mjs +10 -10
- package/esm2020/lib/media/directives/media-toggle.directive.mjs +3 -3
- package/esm2020/lib/media/media.module.mjs +4 -4
- package/esm2020/lib/media/services/media.service.mjs +3 -3
- package/esm2020/lib/menu/components/menu.component.mjs +6 -7
- package/esm2020/lib/menu/menu.module.mjs +4 -4
- package/esm2020/lib/menu/models/menu-item.mjs +1 -1
- package/esm2020/lib/menu/models/menu.mjs +1 -1
- package/esm2020/lib/menu/services/menu-items.service.mjs +3 -3
- package/esm2020/lib/menu/services/menu.resolve.mjs +6 -6
- package/esm2020/lib/menu/services/menu.service.mjs +3 -3
- package/esm2020/lib/search/search.module.mjs +4 -4
- package/esm2020/lib/search/vd-search-box/vd-search-box.component.mjs +4 -4
- package/esm2020/lib/search/vd-search-input/vd-search-input.component.mjs +7 -7
- package/esm2020/lib/select/components/select.component.mjs +36 -10
- package/esm2020/lib/select/directives/vd-select-option.directive.mjs +3 -3
- package/esm2020/lib/select/directives/vd-select-trigger.directive.mjs +3 -3
- package/esm2020/lib/select/select.module.mjs +4 -4
- package/esm2020/lib/table/components/dynamic-table/dynamic-table.component.mjs +5 -5
- package/esm2020/lib/table/components/filter-clear.component.mjs +10 -10
- package/esm2020/lib/table/components/filter-date.component.mjs +28 -19
- package/esm2020/lib/table/components/filter-input.component.mjs +31 -20
- package/esm2020/lib/table/components/filter-select.component.mjs +41 -15
- package/esm2020/lib/table/directives/data-source-filter.directive.mjs +3 -3
- package/esm2020/lib/table/functions/decorators.mjs +2 -2
- package/esm2020/lib/table/models/table-column-config.mjs +1 -1
- package/esm2020/lib/table/paginator-intl.mjs +3 -3
- package/esm2020/lib/table/table.module.mjs +4 -4
- package/fesm2015/messaia-cdk.mjs +682 -573
- package/fesm2015/messaia-cdk.mjs.map +1 -1
- package/fesm2020/messaia-cdk.mjs +683 -574
- package/fesm2020/messaia-cdk.mjs.map +1 -1
- package/lib/base/components/base.component.d.ts +1 -1
- package/lib/base/components/dynamic-table-config-dialog.comnponent.d.ts +1 -1
- package/lib/base/components/generic-form-base.component.d.ts +1 -1
- package/lib/base/components/generic-form.component.d.ts +1 -1
- package/lib/base/components/generic-list.component.d.ts +1 -1
- package/lib/base/components/generic-reactive-form.component.d.ts +1 -1
- package/lib/chips/components/chips.component.d.ts +1 -1
- package/lib/chips/directives/autocomplete-option.directive.d.ts +1 -1
- package/lib/chips/directives/chip.directive.d.ts +1 -1
- package/lib/common/directives/disable-control.directive.d.ts +1 -1
- package/lib/common/functions/utils.d.ts +1 -1
- package/lib/common/helpers/app-storage.d.ts +1 -1
- package/lib/common/pipes/only-number.d.ts +1 -1
- package/lib/common/pipes/order.pipe.d.ts +1 -1
- package/lib/common/styles/_common-theme.scss +8 -7
- package/lib/common/styles/_layout.scss +1 -1
- package/lib/common/styles/core/_button.scss +1 -1
- package/lib/common/styles/core/_card.scss +40 -36
- package/lib/common/styles/core/_icons.scss +2 -1
- package/lib/common/styles/core/_sidenav.scss +2 -1
- package/lib/common/styles/utilities/_general.scss +197 -31
- package/lib/common/theming/_all-theme.scss +4 -0
- package/lib/dialogs/alert-dialog/alert-dialog.component.d.ts +1 -1
- package/lib/dialogs/confirm-dialog/confirm-dialog.component.d.ts +1 -1
- package/lib/dialogs/dialog.component.d.ts +4 -4
- package/lib/dialogs/prompt-dialog/prompt-dialog.component.d.ts +1 -1
- package/lib/file/file-input.component.d.ts +1 -1
- package/lib/form-validators/directives/base-directive.d.ts +1 -1
- package/lib/form-validators/directives/control-host.directive.d.ts +1 -1
- package/lib/form-validators/directives/html-control-template.directive.d.ts +1 -1
- package/lib/form-validators/directives/rx-form.directive.d.ts +1 -1
- package/lib/form-validators/directives/template-validations/async-validation.directive.d.ts +1 -1
- package/lib/form-validators/directives/template-validations/base-validator.directive.d.ts +1 -1
- package/lib/form-validators/directives/template-validations/control-expression-process.d.ts +1 -1
- package/lib/form-validators/directives/template-validations/file-control.directive.d.ts +1 -1
- package/lib/form-validators/directives/template-validations/image-file-control.directive.d.ts +1 -1
- package/lib/form-validators/directives/template-validations/rxformcontrol.directive.d.ts +1 -1
- package/lib/forms/components/generic-form/generic-form.component.d.ts +5 -5
- package/lib/forms/directives/mat-form-field-editor.directive.d.ts +1 -1
- package/lib/forms/directives/mat-form-field-readonly.directive.d.ts +1 -1
- package/lib/forms/helpers/abstract-mat-form-field.d.ts +8 -3
- package/lib/forms/helpers/value-accessor-base.d.ts +1 -1
- package/lib/forms/models/form-field-definition.d.ts +3 -0
- package/lib/forms/validators/empty-string-reset.directive.d.ts +1 -1
- package/lib/forms/validators/equal-validator.directive.d.ts +1 -1
- package/lib/forms/validators/native-element-injector.directive.d.ts +1 -1
- package/lib/forms/validators/unique-validator-directive.d.ts +1 -1
- package/lib/layout/_layout-theme.scss +133 -2
- package/lib/layout/dynamic-menu/dynamic-menu.component.d.ts +1 -1
- package/lib/layout/layout-card-over/layout-card-over.component.d.ts +1 -1
- package/lib/layout/layout-footer/layout-footer.component.d.ts +1 -1
- package/lib/layout/layout-manage-list/layout-manage-list.component.d.ts +1 -1
- package/lib/layout/layout-manage-list/layout-manage-list.directives.d.ts +3 -3
- package/lib/layout/layout-nav/layout-nav.component.d.ts +1 -1
- package/lib/layout/layout-nav-list/layout-nav-list.component.d.ts +1 -1
- package/lib/layout/layout-nav-list/layout-nav-list.directives.d.ts +3 -3
- package/lib/layout/layout-toggle.class.d.ts +1 -1
- package/lib/layout/layout.component.d.ts +1 -1
- package/lib/layout/layout.directives.d.ts +3 -3
- package/lib/layout/list-toolbar/list-toolbar.component.d.ts +1 -1
- package/lib/layout/navigation-drawer/navigation-drawer.component.d.ts +3 -3
- package/lib/media/directives/media-toggle.directive.d.ts +1 -1
- package/lib/menu/components/menu.component.d.ts +1 -1
- package/lib/search/vd-search-box/vd-search-box.component.d.ts +1 -1
- package/lib/search/vd-search-input/vd-search-input.component.d.ts +1 -1
- package/lib/select/components/select.component.d.ts +22 -5
- package/lib/select/directives/vd-select-option.directive.d.ts +1 -1
- package/lib/select/directives/vd-select-trigger.directive.d.ts +1 -1
- package/lib/table/components/dynamic-table/dynamic-table.component.d.ts +1 -1
- package/lib/table/components/filter-clear.component.d.ts +1 -1
- package/lib/table/components/filter-date.component.d.ts +10 -1
- package/lib/table/components/filter-input.component.d.ts +10 -1
- package/lib/table/components/filter-select.component.d.ts +11 -2
- package/lib/table/directives/data-source-filter.directive.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FocusMonitor } from '@angular/cdk/a11y';
|
|
2
2
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
3
3
|
import { HttpClient, HttpHeaders } from '@angular/common/http';
|
|
4
|
-
import { Component, ContentChild, ElementRef, EventEmitter, Injector, Input, Optional, Output, Self, ViewChild } from '@angular/core';
|
|
4
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ElementRef, EventEmitter, Injector, Input, Optional, Output, Self, ViewChild } from '@angular/core';
|
|
5
5
|
import { FormGroupDirective, NgControl, NgForm } from '@angular/forms';
|
|
6
6
|
import { ErrorStateMatcher } from '@angular/material/core';
|
|
7
7
|
import { MatFormFieldControl } from '@angular/material/form-field';
|
|
@@ -33,8 +33,8 @@ export class VdSelectComponent extends AbstractMatFormField {
|
|
|
33
33
|
* @param focusMonitor
|
|
34
34
|
* @param elementRef
|
|
35
35
|
*/
|
|
36
|
-
constructor(injector, ngControl, parentForm, parentFormGroup, defaultErrorStateMatcher, focusMonitor, elementRef) {
|
|
37
|
-
super("vd-select", ngControl, parentForm, parentFormGroup, defaultErrorStateMatcher, focusMonitor, elementRef);
|
|
36
|
+
constructor(injector, ngControl, parentForm, parentFormGroup, defaultErrorStateMatcher, focusMonitor, elementRef, changeDetectorRef) {
|
|
37
|
+
super("vd-select", ngControl, parentForm, parentFormGroup, defaultErrorStateMatcher, focusMonitor, elementRef, changeDetectorRef);
|
|
38
38
|
this.injector = injector;
|
|
39
39
|
/**
|
|
40
40
|
* The http service from to get the data
|
|
@@ -48,6 +48,10 @@ export class VdSelectComponent extends AbstractMatFormField {
|
|
|
48
48
|
* Sorts options
|
|
49
49
|
*/
|
|
50
50
|
this._sorted = true;
|
|
51
|
+
/**
|
|
52
|
+
* Trigger mode
|
|
53
|
+
*/
|
|
54
|
+
this._triggerMode = 'chip';
|
|
51
55
|
/**
|
|
52
56
|
* textPrefix?: any
|
|
53
57
|
*/
|
|
@@ -127,7 +131,6 @@ export class VdSelectComponent extends AbstractMatFormField {
|
|
|
127
131
|
}
|
|
128
132
|
/**
|
|
129
133
|
* Sets the disabled.
|
|
130
|
-
* @param disabled
|
|
131
134
|
*/
|
|
132
135
|
get disabled() {
|
|
133
136
|
if (this._readonly) {
|
|
@@ -143,6 +146,23 @@ export class VdSelectComponent extends AbstractMatFormField {
|
|
|
143
146
|
this._sorted = coerceBooleanProperty(multi);
|
|
144
147
|
this.stateChanges.next();
|
|
145
148
|
}
|
|
149
|
+
/**
|
|
150
|
+
* Trigger css class
|
|
151
|
+
*/
|
|
152
|
+
get triggerCssClass() { return this._triggerCssClass; }
|
|
153
|
+
set triggerCssClass(triggerCssClass) {
|
|
154
|
+
this._triggerCssClass = triggerCssClass;
|
|
155
|
+
this.stateChanges.next();
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Trigger mode
|
|
159
|
+
*/
|
|
160
|
+
get triggerMode() { return this.triggerMode; }
|
|
161
|
+
set triggerMode(triggerMode) {
|
|
162
|
+
this._triggerMode = triggerMode;
|
|
163
|
+
this.triggerCssClass = 'chip';
|
|
164
|
+
this.stateChanges.next();
|
|
165
|
+
}
|
|
146
166
|
/**
|
|
147
167
|
* Whether the select has a value.
|
|
148
168
|
*/
|
|
@@ -238,6 +258,7 @@ export class VdSelectComponent extends AbstractMatFormField {
|
|
|
238
258
|
if (Array.isArray(this.options)) {
|
|
239
259
|
this.handleItemSelected(this.value);
|
|
240
260
|
}
|
|
261
|
+
this.writeValue(this.value);
|
|
241
262
|
});
|
|
242
263
|
}
|
|
243
264
|
});
|
|
@@ -276,6 +297,7 @@ export class VdSelectComponent extends AbstractMatFormField {
|
|
|
276
297
|
if (!this.value) {
|
|
277
298
|
this.selectEl?.writeValue(null);
|
|
278
299
|
}
|
|
300
|
+
this.changeDetectorRef.detectChanges();
|
|
279
301
|
}
|
|
280
302
|
/**
|
|
281
303
|
* Method executed when an option changes
|
|
@@ -347,11 +369,11 @@ export class VdSelectComponent extends AbstractMatFormField {
|
|
|
347
369
|
}
|
|
348
370
|
}
|
|
349
371
|
}
|
|
350
|
-
/** @nocollapse */ VdSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
351
|
-
/** @nocollapse */ VdSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
352
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
372
|
+
/** @nocollapse */ VdSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: VdSelectComponent, deps: [{ token: i0.Injector }, { token: i1.NgControl, optional: true, self: true }, { token: i1.NgForm, optional: true }, { token: i1.FormGroupDirective, optional: true }, { token: i2.ErrorStateMatcher }, { token: i3.FocusMonitor }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
373
|
+
/** @nocollapse */ VdSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.1", type: VdSelectComponent, selector: "vd-select", inputs: { multiple: "multiple", disabled: "disabled", sorted: "sorted", triggerCssClass: "triggerCssClass", triggerMode: "triggerMode", textPrefix: "textPrefix", endpoint: "endpoint", params: "params", projection: "projection", enum: "enum", key: "key", text: "text", prefix: "prefix", options: "options", filteredOptions: "filteredOptions", filterable: "filterable", cache: "cache", sortBy: "sortBy", mapper: "mapper", compareWith: "compareWith", searchField: "searchField" }, outputs: { onValueChange: "change", onItemChange: "itemChange", onSelected: "selected", onItemSelected: "itemSelected", onLaunch: "launch" }, providers: [{ provide: MatFormFieldControl, useExisting: VdSelectComponent }], queries: [{ propertyName: "optionTemplate", first: true, predicate: VdSelectOptionDirective, descendants: true }, { propertyName: "triggerTemplate", first: true, predicate: VdSelectTriggerDirective, descendants: true }], viewQueries: [{ propertyName: "selectEl", first: true, predicate: MatSelect, descendants: true }, { propertyName: "filterInput", first: true, predicate: ["filterInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-select [placeholder]=\"placeholder\" i18n-placeholder [(ngModel)]=\"value\" #select=\"matSelect\" (selectionChange)=\"handleChange($event)\" *ngIf=\"!readonly\" [multiple]=\"multiple\" [compareWith]=\"compareWith\" [disabled]=\"disabled\" flex>\r\n <!-- #region Filter input -->\r\n <div *ngIf=\"filterable\" class=\"vd-select-filter-wrap\">\r\n <div class=\"vd-select-filter-inner\">\r\n <a mat-icon-button disabled *ngIf=\"!filterInput.value\">\r\n <mat-icon>search</mat-icon>\r\n </a>\r\n <a mat-icon-button *ngIf=\"filterInput.value\" (click)=\"filterInput.value = null; handleFilter(null)\">\r\n <mat-icon>close</mat-icon>\r\n </a>\r\n <input #filterInput type=\"text\" placeholder=\"Filter...\" class=\"vd-select-filter mat-input-element\" (keyup)=\"handleFilter($event)\">\r\n </div>\r\n <div class=\"mat-divider\"></div>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Trigger for launch button -->\r\n <mat-select-trigger *ngIf=\"onLaunch?.observers?.length > 0\" [class]=\"triggerCssClass\">\r\n <span>{{getTriggerValues(select.selected)}}</span>\r\n <mat-icon class=\"vd-select-launch\" (click)=\"$event.stopPropagation(); handleLaunchClicked(value)\">launch</mat-icon>\r\n </mat-select-trigger>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Custom trigger template -->\r\n <mat-select-trigger *ngIf=\"!onLaunch?.observers?.length && triggerTemplate?.templateRef\" [class]=\"triggerCssClass\">\r\n <ng-template *ngIf=\"triggerTemplate?.templateRef\" [ngTemplateOutlet]=\"triggerTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ trigger: getTriggerValues(select.selected) }\"></ng-template>\r\n </mat-select-trigger>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Option template as trigger -->\r\n <mat-select-trigger *ngIf=\"!onLaunch?.observers?.length && !triggerTemplate?.templateRef && optionTemplate?.templateRef\" [class]=\"triggerCssClass\">\r\n <ng-template *ngIf=\"optionTemplate?.templateRef\" [ngTemplateOutlet]=\"optionTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ trigger: getTriggerValues(select.selected) }\"></ng-template>\r\n </mat-select-trigger>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Default option -->\r\n <mat-option class=\"tc-grey-500\" *ngIf=\"!multiple\" i18n=\"@@pleaseSelect\">--- Please Select ---</mat-option>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Options -->\r\n <ng-template let-option let-first=\"first\" ngFor [ngForOf]=\"filteredOptions\">\r\n <mat-option [value]=\"mapper ? option : option[key]\">\r\n <span *ngIf=\"!optionTemplate?.templateRef\" i18n=\"@@selection\">{option[text], select, option {option} other {{{option[text]}}}}</span>\r\n <ng-template *ngIf=\"optionTemplate?.templateRef\" [ngTemplateOutlet]=\"optionTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ option: option }\"></ng-template>\r\n </mat-option>\r\n </ng-template>\r\n <!-- #endregion -->\r\n</mat-select>\r\n\r\n<!-- #region Read only value -->\r\n<div *ngIf=\"readonly\">\r\n <div *ngIf=\"currentValue\">\r\n <div class=\"readonly-value\">\r\n <span *ngIf=\"!optionTemplate?.templateRef && !triggerTemplate?.templateRef\">\r\n <span *ngIf=\"!multiple\" i18n=\"@@selection\">{currentValue[text], select, option {option} other {{{currentValue[text]}}}}</span>\r\n <ng-container *ngIf=\"multiple\">\r\n <span *ngFor=\"let optionValue of currentValue; let last = last\">\r\n <span i18n=\"@@selection\">{optionValue[text], select, option {option} other {{{optionValue[text]}}}}</span>\r\n <span *ngIf=\"!last\">, </span>\r\n </span>\r\n </ng-container>\r\n </span>\r\n <ng-template *ngIf=\"triggerTemplate?.templateRef\" [ngTemplateOutlet]=\"triggerTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ trigger: currentValue }\"></ng-template>\r\n <ng-template *ngIf=\"optionTemplate?.templateRef && !triggerTemplate?.templateRef\" [ngTemplateOutlet]=\"optionTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ option: currentValue }\"></ng-template>\r\n </div>\r\n <mat-icon *ngIf=\"onLaunch?.observers?.length > 0\" class=\"vd-select-launch-readonly\" (click)=\"$event.stopPropagation(); handleLaunchClicked(value)\">launch</mat-icon>\r\n </div>\r\n <div *ngIf=\"!currentValue\"> </div>\r\n</div>\r\n<!-- #endregion -->", styles: [".vd-select-launch{position:absolute;right:30px;top:-5px;font-size:18px;cursor:pointer}.readonly-value{padding-right:24px;opacity:.6;min-height:15px}.vd-select-launch-readonly{position:absolute;right:0;top:9px;font-size:18px;cursor:pointer}.vd-select-filter-wrap{background:inherit;position:sticky;top:0;box-sizing:border-box;z-index:100}.vd-select-filter-wrap .vd-select-filter-inner{z-index:100;display:flex;flex-direction:row;align-items:center;background:inherit}.vd-select-filter-wrap .vd-select-filter-inner .vd-select-filter{box-shadow:none;padding:16px 16px 16px 0;box-sizing:border-box;width:100%;border:none;background-color:inherit;color:inherit}.vd-select-filter-wrap .vd-select-filter-inner .vd-select-filter:focus-visible{border:none;outline:none}.vd-select-filter-wrap .mat-divider{display:block;width:100%;border-top-width:1px;border-top-style:solid;box-sizing:border-box}::ng-deep .mat-mdc-select-trigger{display:flex!important}::ng-deep .mat-mdc-select-trigger .mat-icon{display:flex}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "directive", type: i5.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i2.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.MatIconAnchor, selector: "a[mat-icon-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
374
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: VdSelectComponent, decorators: [{
|
|
353
375
|
type: Component,
|
|
354
|
-
args: [{ selector: 'vd-select', providers: [{ provide: MatFormFieldControl, useExisting: VdSelectComponent }], template: "<mat-select [placeholder]=\"placeholder\" i18n-placeholder [(ngModel)]=\"value\" #select=\"matSelect\" (selectionChange)=\"handleChange($event)\" *ngIf=\"!readonly\" [multiple]=\"multiple\" [compareWith]=\"compareWith\" [disabled]=\"disabled\" flex>\r\n <!-- #region Filter input -->\r\n <div *ngIf=\"filterable\" class=\"vd-select-filter-wrap\">\r\n <div class=\"vd-select-filter-inner\">\r\n <a mat-icon-button disabled *ngIf=\"!filterInput.value\">\r\n <mat-icon>search</mat-icon>\r\n </a>\r\n <a mat-icon-button *ngIf=\"filterInput.value\" (click)=\"filterInput.value = null; handleFilter(null)\">\r\n <mat-icon>close</mat-icon>\r\n </a>\r\n <input #filterInput type=\"text\" placeholder=\"Filter...\" class=\"vd-select-filter mat-input-element\" (keyup)=\"handleFilter($event)\">\r\n </div>\r\n <div class=\"mat-divider\"></div>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Trigger for launch button -->\r\n <mat-select-trigger *ngIf=\"onLaunch?.observers?.length > 0\">\r\n <span>{{getTriggerValues(select.selected)}}</span>\r\n <mat-icon class=\"vd-select-launch\" (click)=\"$event.stopPropagation(); handleLaunchClicked(value)\">launch</mat-icon>\r\n </mat-select-trigger>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Custom trigger template -->\r\n <mat-select-trigger *ngIf=\"!onLaunch?.observers?.length && triggerTemplate?.templateRef\">\r\n <ng-template *ngIf=\"triggerTemplate?.templateRef\" [ngTemplateOutlet]=\"triggerTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ trigger: getTriggerValues(select.selected) }\"></ng-template>\r\n </mat-select-trigger>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Option template as trigger -->\r\n <mat-select-trigger *ngIf=\"!onLaunch?.observers?.length && !triggerTemplate?.templateRef && optionTemplate?.templateRef\">\r\n <ng-template *ngIf=\"optionTemplate?.templateRef\" [ngTemplateOutlet]=\"optionTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ trigger: getTriggerValues(select.selected) }\"></ng-template>\r\n </mat-select-trigger>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Default option -->\r\n <mat-option class=\"tc-grey-500\" *ngIf=\"!multiple\" i18n=\"@@pleaseSelect\">--- Please Select ---</mat-option>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Options -->\r\n <ng-template let-option let-first=\"first\" ngFor [ngForOf]=\"filteredOptions\">\r\n <mat-option [value]=\"mapper ? option : option[key]\">\r\n <span *ngIf=\"!optionTemplate?.templateRef\" i18n=\"@@selection\">{option[text], select, option {option} other {{{option[text]}}}}</span>\r\n <ng-template *ngIf=\"optionTemplate?.templateRef\" [ngTemplateOutlet]=\"optionTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ option: option }\"></ng-template>\r\n </mat-option>\r\n </ng-template>\r\n <!-- #endregion -->\r\n</mat-select>\r\n\r\n<!-- #region Read only value -->\r\n<div *ngIf=\"readonly\">\r\n <div *ngIf=\"currentValue\">\r\n <div class=\"readonly-value\">\r\n <span *ngIf=\"!optionTemplate?.templateRef && !triggerTemplate?.templateRef\">\r\n <span *ngIf=\"!multiple\" i18n=\"@@selection\">{currentValue[text], select, option {option} other {{{currentValue[text]}}}}</span>\r\n <ng-container *ngIf=\"multiple\">\r\n <span *ngFor=\"let optionValue of currentValue; let last = last\">\r\n <span i18n=\"@@selection\">{optionValue[text], select, option {option} other {{{optionValue[text]}}}}</span>\r\n <span *ngIf=\"!last\">, </span>\r\n </span>\r\n </ng-container>\r\n </span>\r\n <ng-template *ngIf=\"triggerTemplate?.templateRef\" [ngTemplateOutlet]=\"triggerTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ trigger: currentValue }\"></ng-template>\r\n <ng-template *ngIf=\"optionTemplate?.templateRef && !triggerTemplate?.templateRef\" [ngTemplateOutlet]=\"optionTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ option: currentValue }\"></ng-template>\r\n </div>\r\n <mat-icon *ngIf=\"onLaunch?.observers?.length > 0\" class=\"vd-select-launch-readonly\" (click)=\"$event.stopPropagation(); handleLaunchClicked(value)\">launch</mat-icon>\r\n </div>\r\n <div *ngIf=\"!currentValue\"> </div>\r\n</div>\r\n<!-- #endregion -->", styles: [".vd-select-launch{position:absolute;right:30px;top:-5px;font-size:18px;cursor:pointer}.readonly-value{padding-right:24px;opacity:.6;min-height:15px}.vd-select-launch-readonly{position:absolute;right:
|
|
376
|
+
args: [{ selector: 'vd-select', providers: [{ provide: MatFormFieldControl, useExisting: VdSelectComponent }], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-select [placeholder]=\"placeholder\" i18n-placeholder [(ngModel)]=\"value\" #select=\"matSelect\" (selectionChange)=\"handleChange($event)\" *ngIf=\"!readonly\" [multiple]=\"multiple\" [compareWith]=\"compareWith\" [disabled]=\"disabled\" flex>\r\n <!-- #region Filter input -->\r\n <div *ngIf=\"filterable\" class=\"vd-select-filter-wrap\">\r\n <div class=\"vd-select-filter-inner\">\r\n <a mat-icon-button disabled *ngIf=\"!filterInput.value\">\r\n <mat-icon>search</mat-icon>\r\n </a>\r\n <a mat-icon-button *ngIf=\"filterInput.value\" (click)=\"filterInput.value = null; handleFilter(null)\">\r\n <mat-icon>close</mat-icon>\r\n </a>\r\n <input #filterInput type=\"text\" placeholder=\"Filter...\" class=\"vd-select-filter mat-input-element\" (keyup)=\"handleFilter($event)\">\r\n </div>\r\n <div class=\"mat-divider\"></div>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Trigger for launch button -->\r\n <mat-select-trigger *ngIf=\"onLaunch?.observers?.length > 0\" [class]=\"triggerCssClass\">\r\n <span>{{getTriggerValues(select.selected)}}</span>\r\n <mat-icon class=\"vd-select-launch\" (click)=\"$event.stopPropagation(); handleLaunchClicked(value)\">launch</mat-icon>\r\n </mat-select-trigger>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Custom trigger template -->\r\n <mat-select-trigger *ngIf=\"!onLaunch?.observers?.length && triggerTemplate?.templateRef\" [class]=\"triggerCssClass\">\r\n <ng-template *ngIf=\"triggerTemplate?.templateRef\" [ngTemplateOutlet]=\"triggerTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ trigger: getTriggerValues(select.selected) }\"></ng-template>\r\n </mat-select-trigger>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Option template as trigger -->\r\n <mat-select-trigger *ngIf=\"!onLaunch?.observers?.length && !triggerTemplate?.templateRef && optionTemplate?.templateRef\" [class]=\"triggerCssClass\">\r\n <ng-template *ngIf=\"optionTemplate?.templateRef\" [ngTemplateOutlet]=\"optionTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ trigger: getTriggerValues(select.selected) }\"></ng-template>\r\n </mat-select-trigger>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Default option -->\r\n <mat-option class=\"tc-grey-500\" *ngIf=\"!multiple\" i18n=\"@@pleaseSelect\">--- Please Select ---</mat-option>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Options -->\r\n <ng-template let-option let-first=\"first\" ngFor [ngForOf]=\"filteredOptions\">\r\n <mat-option [value]=\"mapper ? option : option[key]\">\r\n <span *ngIf=\"!optionTemplate?.templateRef\" i18n=\"@@selection\">{option[text], select, option {option} other {{{option[text]}}}}</span>\r\n <ng-template *ngIf=\"optionTemplate?.templateRef\" [ngTemplateOutlet]=\"optionTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ option: option }\"></ng-template>\r\n </mat-option>\r\n </ng-template>\r\n <!-- #endregion -->\r\n</mat-select>\r\n\r\n<!-- #region Read only value -->\r\n<div *ngIf=\"readonly\">\r\n <div *ngIf=\"currentValue\">\r\n <div class=\"readonly-value\">\r\n <span *ngIf=\"!optionTemplate?.templateRef && !triggerTemplate?.templateRef\">\r\n <span *ngIf=\"!multiple\" i18n=\"@@selection\">{currentValue[text], select, option {option} other {{{currentValue[text]}}}}</span>\r\n <ng-container *ngIf=\"multiple\">\r\n <span *ngFor=\"let optionValue of currentValue; let last = last\">\r\n <span i18n=\"@@selection\">{optionValue[text], select, option {option} other {{{optionValue[text]}}}}</span>\r\n <span *ngIf=\"!last\">, </span>\r\n </span>\r\n </ng-container>\r\n </span>\r\n <ng-template *ngIf=\"triggerTemplate?.templateRef\" [ngTemplateOutlet]=\"triggerTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ trigger: currentValue }\"></ng-template>\r\n <ng-template *ngIf=\"optionTemplate?.templateRef && !triggerTemplate?.templateRef\" [ngTemplateOutlet]=\"optionTemplate?.templateRef\" [ngTemplateOutletContext]=\"{ option: currentValue }\"></ng-template>\r\n </div>\r\n <mat-icon *ngIf=\"onLaunch?.observers?.length > 0\" class=\"vd-select-launch-readonly\" (click)=\"$event.stopPropagation(); handleLaunchClicked(value)\">launch</mat-icon>\r\n </div>\r\n <div *ngIf=\"!currentValue\"> </div>\r\n</div>\r\n<!-- #endregion -->", styles: [".vd-select-launch{position:absolute;right:30px;top:-5px;font-size:18px;cursor:pointer}.readonly-value{padding-right:24px;opacity:.6;min-height:15px}.vd-select-launch-readonly{position:absolute;right:0;top:9px;font-size:18px;cursor:pointer}.vd-select-filter-wrap{background:inherit;position:sticky;top:0;box-sizing:border-box;z-index:100}.vd-select-filter-wrap .vd-select-filter-inner{z-index:100;display:flex;flex-direction:row;align-items:center;background:inherit}.vd-select-filter-wrap .vd-select-filter-inner .vd-select-filter{box-shadow:none;padding:16px 16px 16px 0;box-sizing:border-box;width:100%;border:none;background-color:inherit;color:inherit}.vd-select-filter-wrap .vd-select-filter-inner .vd-select-filter:focus-visible{border:none;outline:none}.vd-select-filter-wrap .mat-divider{display:block;width:100%;border-top-width:1px;border-top-style:solid;box-sizing:border-box}::ng-deep .mat-mdc-select-trigger{display:flex!important}::ng-deep .mat-mdc-select-trigger .mat-icon{display:flex}\n"] }]
|
|
355
377
|
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.NgControl, decorators: [{
|
|
356
378
|
type: Optional
|
|
357
379
|
}, {
|
|
@@ -360,7 +382,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
|
|
|
360
382
|
type: Optional
|
|
361
383
|
}] }, { type: i1.FormGroupDirective, decorators: [{
|
|
362
384
|
type: Optional
|
|
363
|
-
}] }, { type: i2.ErrorStateMatcher }, { type: i3.FocusMonitor }, { type: i0.ElementRef }]; }, propDecorators: { optionTemplate: [{
|
|
385
|
+
}] }, { type: i2.ErrorStateMatcher }, { type: i3.FocusMonitor }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { optionTemplate: [{
|
|
364
386
|
type: ContentChild,
|
|
365
387
|
args: [VdSelectOptionDirective]
|
|
366
388
|
}], triggerTemplate: [{
|
|
@@ -378,6 +400,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
|
|
|
378
400
|
type: Input
|
|
379
401
|
}], sorted: [{
|
|
380
402
|
type: Input
|
|
403
|
+
}], triggerCssClass: [{
|
|
404
|
+
type: Input
|
|
405
|
+
}], triggerMode: [{
|
|
406
|
+
type: Input
|
|
381
407
|
}], textPrefix: [{
|
|
382
408
|
type: Input
|
|
383
409
|
}], endpoint: [{
|
|
@@ -426,4 +452,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
|
|
|
426
452
|
}], searchField: [{
|
|
427
453
|
type: Input
|
|
428
454
|
}] } });
|
|
429
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL3NlbGVjdC9jb21wb25lbnRzL3NlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi9zZWxlY3QvY29tcG9uZW50cy9zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckosT0FBTyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQWEsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUs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QU0sRUFBRSxLQUFLLEVBQUU7Z0JBWXZDLFFBQVE7c0JBRFgsS0FBSztnQkFZSyxRQUFRO3NCQURsQixLQUFLO2dCQThCRixNQUFNO3NCQURULEtBQUs7Z0JBV0MsVUFBVTtzQkFEaEIsS0FBSztnQkF5QkYsUUFBUTtzQkFEWCxLQUFLO2dCQWdCRixNQUFNO3NCQURULEtBQUs7Z0JBNEJGLFVBQVU7c0JBRGIsS0FBSztnQkFzQkUsSUFBSTtzQkFEWCxLQUFLO2dCQU9DLEdBQUc7c0JBRFQsS0FBSztnQkFPQyxJQUFJO3NCQURWLEtBQUs7Z0JBT0MsTUFBTTtzQkFEWixLQUFLO2dCQU9DLE9BQU87c0JBRGIsS0FBSztnQkFPQyxlQUFlO3NCQURyQixLQUFLO2dCQU9DLFVBQVU7c0JBRGhCLEtBQUs7Z0JBT0MsS0FBSztzQkFEWCxLQUFLO2dCQU9DLE1BQU07c0JBRFosS0FBSztnQkFPQyxNQUFNO3NCQURaLEtBQUs7Z0JBU0YsV0FBVztzQkFEZCxLQUFLO2dCQVFZLGFBQWE7c0JBQTlCLE1BQU07dUJBQUMsUUFBUTtnQkFLTSxZQUFZO3NCQUFqQyxNQUFNO3VCQUFDLFlBQVk7Z0JBS0EsVUFBVTtzQkFBN0IsTUFBTTt1QkFBQyxVQUFVO2dCQUtNLGNBQWM7c0JBQXJDLE1BQU07dUJBQUMsY0FBYztnQkFLSixRQUFRO3NCQUF6QixNQUFNO3VCQUFDLFFBQVE7Z0JBS1AsV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcclxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEluamVjdG9yLCBJbnB1dCwgT3B0aW9uYWwsIE91dHB1dCwgU2VsZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cERpcmVjdGl2ZSwgTmdDb250cm9sLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEVycm9yU3RhdGVNYXRjaGVyLCBNYXRPcHRpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBFbnVtU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9zZXJ2aWNlcy9lbnVtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdE1hdEZvcm1GaWVsZCB9IGZyb20gJy4uLy4uL2Zvcm1zL2hlbHBlcnMvYWJzdHJhY3QtbWF0LWZvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBWZFNlbGVjdE9wdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvdmQtc2VsZWN0LW9wdGlvbi5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBWZFNlbGVjdFRyaWdnZXJEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL3ZkLXNlbGVjdC10cmlnZ2VyLmRpcmVjdGl2ZSc7XHJcblxyXG4vKipcclxuICogVmRTZWxlY3RDb21wb25lbnQgY2xhc3NcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAndmQtc2VsZWN0JyxcclxuXHR0ZW1wbGF0ZVVybDogJ3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmxzOiBbJ3NlbGVjdC5jb21wb25lbnQuc2NzcyddLFxyXG5cdHByb3ZpZGVyczogW3sgcHJvdmlkZTogTWF0Rm9ybUZpZWxkQ29udHJvbCwgdXNlRXhpc3Rpbmc6IFZkU2VsZWN0Q29tcG9uZW50IH1dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWZFNlbGVjdENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0TWF0Rm9ybUZpZWxkPGFueT4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuXHJcblx0LyoqXHJcblx0ICogVGhlIGh0dHAgc2VydmljZSBmcm9tIHRvIGdldCB0aGUgZGF0YVxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50ID0gbnVsbDtcclxuXHJcblx0LyoqXHJcblx0ICogT3B0aW9uIHRlbXBsYXRlXHJcblx0ICovXHJcblx0QENvbnRlbnRDaGlsZChWZFNlbGVjdE9wdGlvbkRpcmVjdGl2ZSlcclxuXHRwdWJsaWMgb3B0aW9uVGVtcGxhdGU6IFZkU2VsZWN0T3B0aW9uRGlyZWN0aXZlO1xyXG5cclxuXHQvKipcclxuXHQgKiBUcmlnZ2VyIHRlbXBsYXRlXHJcblx0ICovXHJcblx0QENvbnRlbnRDaGlsZChWZFNlbGVjdFRyaWdnZXJEaXJlY3RpdmUpXHJcblx0cHVibGljIHRyaWdnZXJUZW1wbGF0ZTogVmRTZWxlY3RUcmlnZ2VyRGlyZWN0aXZlO1xyXG5cclxuXHQvKiogXHJcblx0ICogVGhlIHNlbGVjdCBlbGVtZW50LlxyXG5cdCAqL1xyXG5cdEBWaWV3Q2hpbGQoTWF0U2VsZWN0LCB7IHN0YXRpYzogZmFsc2UgfSlcclxuXHRwdWJsaWMgc2VsZWN0RWw6IE1hdFNlbGVjdDtcclxuXHJcblx0LyoqIFxyXG5cdCAqIFRoZSBzZWxlY3QgZWxlbWVudC5cclxuXHQgKi9cclxuXHRAVmlld0NoaWxkKCdmaWx0ZXJJbnB1dCcsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG5cdHB1YmxpYyBmaWx0ZXJJbnB1dDogRWxlbWVudFJlZjtcclxuXHJcblx0LyoqXHJcblx0ICogTXVsdGlwbGUgc2VsZWN0IG9wdGlvblxyXG5cdCAqL1xyXG5cdHB1YmxpYyBfbXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblx0LyoqXHJcblx0ICogTXVsdGlwbGUgc2VsZWN0IG9wdGlvblxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0Z2V0IG11bHRpcGxlKCkgeyByZXR1cm4gdGhpcy5fbXVsdGlwbGU7IH1cclxuXHRzZXQgbXVsdGlwbGUobXVsdGkpIHtcclxuXHRcdHRoaXMuX211bHRpcGxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KG11bHRpKTtcclxuXHRcdHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEdldHMgdGhlIGNvbnRyb2wgaXMgZGlzYWJsZWQuXHJcblx0ICogQHBhcmFtIGRpc2FibGVkXHJcblx0ICovXHJcblx0QElucHV0KClcclxuXHRwdWJsaWMgc2V0IGRpc2FibGVkKGRpc2FibGVkOiBhbnkpIHtcclxuXHRcdHRoaXMuX2Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KGRpc2FibGVkKTtcclxuXHRcdGlmICh0aGlzLmZvY3VzZWQpIHtcclxuXHRcdFx0dGhpcy5mb2N1c2VkID0gZmFsc2U7XHJcblx0XHRcdHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFNldHMgdGhlIGRpc2FibGVkLlxyXG5cdCAqIEBwYXJhbSBkaXNhYmxlZFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBnZXQgZGlzYWJsZWQoKSB7XHJcblx0XHRpZiAodGhpcy5fcmVhZG9ubHkpIHtcclxuXHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHN1cGVyLmRpc2FibGVkO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogU29ydHMgb3B0aW9uc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBfc29ydGVkOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcblx0LyoqXHJcblx0ICogU29ydHMgb3B0aW9uc1xyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0Z2V0IHNvcnRlZCgpIHsgcmV0dXJuIHRoaXMuX3NvcnRlZDsgfVxyXG5cdHNldCBzb3J0ZWQobXVsdGkpIHtcclxuXHRcdHRoaXMuX3NvcnRlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShtdWx0aSk7XHJcblx0XHR0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiB0ZXh0UHJlZml4PzogYW55XHJcblx0ICovXHJcblx0QElucHV0KClcclxuXHRwdWJsaWMgdGV4dFByZWZpeDogc3RyaW5nID0gJyc7XHJcblxyXG5cdC8qKiBcclxuXHQgKiBXaGV0aGVyIHRoZSBzZWxlY3QgaGFzIGEgdmFsdWUuXHJcblx0ICovXHJcblx0Z2V0IGVtcHR5KCk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuX3JlYWRvbmx5ID8gIXRoaXMuY3VycmVudFZhbHVlIDogIXRoaXMuc2VsZWN0RWw/Ll9zZWxlY3Rpb25Nb2RlbCB8fCB0aGlzLnNlbGVjdEVsPy5fc2VsZWN0aW9uTW9kZWw/LmlzRW1wdHkoKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFJlcHJlc2VudHMgYSB2YWx1ZSB0aGF0IGNoYW5nZXMgb3ZlciB0aW1lLiBcclxuXHQgKiBPYnNlcnZlcnMgY2FuIHN1YnNjcmliZSB0byB0aGUgc3ViamVjdCB0byByZWNlaXZlIHBkZiBmaWxlIGNoYW5nZXNcclxuXHQgKi9cclxuXHRwcml2YXRlIF9lbmRwb2ludENoYW5nZSA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIF9lbmRwb2ludDogc3RyaW5nXHJcblx0ICovXHJcblx0cHVibGljIF9lbmRwb2ludDogc3RyaW5nIHwgRnVuY3Rpb247XHJcblxyXG5cdC8qKlxyXG5cdCAqIEdldHMgcGRmIGVuZHBvaW50XHJcblx0ICovXHJcblx0QElucHV0KClcclxuXHRnZXQgZW5kcG9pbnQoKTogc3RyaW5nIHwgRnVuY3Rpb24geyByZXR1cm4gdGhpcy5fZW5kcG9pbnQ7IH1cclxuXHRzZXQgZW5kcG9pbnQoZW5kcG9pbnQ6IHN0cmluZyB8IEZ1bmN0aW9uKSB7XHJcblx0XHR0aGlzLl9lbmRwb2ludCA9IGVuZHBvaW50O1xyXG5cdFx0dGhpcy5fZW5kcG9pbnRDaGFuZ2UubmV4dChbdGhpcy5lbmRwb2ludCwgdGhpcy5wYXJhbXMsIHRoaXMucHJvamVjdGlvbl0pO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogX3BhcmFtczogYW55XHJcblx0ICovXHJcblx0cHVibGljIF9wYXJhbXM6IGFueSA9IHt9O1xyXG5cclxuXHQvKipcclxuXHQgKiBwYXJhbXM6IGFueVxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0Z2V0IHBhcmFtcygpIHsgcmV0dXJuIHRoaXMuX3BhcmFtczsgfVxyXG5cdHNldCBwYXJhbXMocGFyYW1zOiBhbnkpIHtcclxuXHRcdGlmIChwYXJhbXMpIHtcclxuXHRcdFx0LyogUmVtb3ZlIGVtcHR5IHBhcmFtcyAqL1xyXG5cdFx0XHRPYmplY3Qua2V5cyhwYXJhbXMpLmZvckVhY2goKGtleSkgPT4ge1xyXG5cdFx0XHRcdGlmICgocGFyYW1zW2tleV0gPT0gbnVsbCB8fCBwYXJhbXNba2V5XSA9PSAnJyB8fCBwYXJhbXNba2V5XSA9PSAndW5kZWZpbmVkJykpIHtcclxuXHRcdFx0XHRcdGRlbGV0ZSBwYXJhbXNba2V5XTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cclxuXHRcdFx0LyogQ2hlY2sgaWYgdGhlIHBhcmFtcyBoYXMgY2hhbmdlZCAqL1xyXG5cdFx0XHRpZiAoSlNPTi5zdHJpbmdpZnkodGhpcy5fcGFyYW1zKSAhPT0gSlNPTi5zdHJpbmdpZnkocGFyYW1zKSkge1xyXG5cdFx0XHRcdHRoaXMuX3BhcmFtcyA9IHBhcmFtcztcclxuXHRcdFx0XHR0aGlzLl9lbmRwb2ludENoYW5nZS5uZXh0KFt0aGlzLmVuZHBvaW50LCB0aGlzLl9wYXJhbXMsIHRoaXMucHJvamVjdGlvbl0pO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBfcHJvamVjdGlvbjogYW55XHJcblx0ICovXHJcblx0cHVibGljIF9wcm9qZWN0aW9uOiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuXHJcblx0LyoqXHJcblx0ICogcHJvamVjdGlvbjogYW55XHJcblx0ICovXHJcblx0QElucHV0KClcclxuXHRnZXQgcHJvamVjdGlvbigpIHsgcmV0dXJuIHRoaXMuX3Byb2plY3Rpb247IH1cclxuXHRzZXQgcHJvamVjdGlvbihwcm9qZWN0aW9uOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xyXG5cdFx0dGhpcy5fcHJvamVjdGlvbiA9IHByb2plY3Rpb247XHJcblx0XHR0aGlzLl9lbmRwb2ludENoYW5nZS5uZXh0KFt0aGlzLmVuZHBvaW50LCB0aGlzLnBhcmFtcywgdGhpcy5wcm9qZWN0aW9uXSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBHZXRzIGN1cnJlbnQgdmFsdWVcclxuXHQgKi9cclxuXHRnZXQgY3VycmVudFZhbHVlKCk6IGFueSB7XHJcblx0XHRpZiAodGhpcy5tdWx0aXBsZSkge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5vcHRpb25zPy5maWx0ZXIoKHg6IGFueSkgPT4gKHRoaXMuX3ZhbHVlIHx8IFtdKS5pbmNsdWRlcyh4W3RoaXMua2V5XSkpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiB0aGlzLm9wdGlvbnM/LmZpbHRlcigoeDogYW55KSA9PiB4W3RoaXMua2V5XSA9PSB0aGlzLl92YWx1ZSlbMF07XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBUaGUgbmFtZSBvZiB0aGUgZW5kcG9pbnRcclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHByaXZhdGUgZW51bTogYW55O1xyXG5cclxuXHQvKipcclxuXHQgKiBUaGUga2V5XHJcblx0ICovXHJcblx0QElucHV0KClcclxuXHRwdWJsaWMga2V5OiBhbnkgPSAnaWQnO1xyXG5cclxuXHQvKipcclxuXHQgKiBUaGUgdGV4dFxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIHRleHQ6IGFueSA9ICduYW1lJztcclxuXHJcblx0LyoqXHJcblx0ICogVGhlIHByZWZpeFxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIHByZWZpeDogYW55ID0gJyc7XHJcblxyXG5cdC8qKlxyXG5cdCAqIE9wdGlvbiBsaXN0XHJcblx0ICovXHJcblx0QElucHV0KClcclxuXHRwdWJsaWMgb3B0aW9uczogYW55O1xyXG5cclxuXHQvKipcclxuXHQgKiBmaWx0ZXJlZCBvcHRpb24gbGlzdFxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIGZpbHRlcmVkT3B0aW9uczogYW55O1xyXG5cclxuXHQvKipcclxuXHQgKiBmaWx0ZXJhYmxlP1xyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIGZpbHRlcmFibGU6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuXHQvKipcclxuXHQgKiBjYWNoZT9cclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyBjYWNoZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG5cdC8qKlxyXG5cdCAqIHNvcnRCeT9cclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyBzb3J0Qnk6IHN0cmluZztcclxuXHJcblx0LyoqXHJcblx0ICogbWFwcGVyOiBGdW5jdGlvblxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIG1hcHBlcjogKHg6IGFueVtdKSA9PiBhbnk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEEgZnVuY3Rpb24gdG8gY29tcGFyZSB0aGUgb3B0aW9uIHZhbHVlcyB3aXRoIHRoZSBzZWxlY3RlZCB2YWx1ZXMuIFRoZSBmaXJzdCBhcmd1bWVudFxyXG5cdCAqIGlzIGEgdmFsdWUgZnJvbSBhbiBvcHRpb24uIFRoZSBzZWNvbmQgaXMgYSB2YWx1ZSBmcm9tIHRoZSBzZWxlY3Rpb24uIEEgYm9vbGVhblxyXG5cdCAqIHNob3VsZCBiZSByZXR1cm5lZC5cclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdGdldCBjb21wYXJlV2l0aCgpOiAobzE6IGFueSwgbzI6IGFueSkgPT4gYm9vbGVhbiB7IHJldHVybiB0aGlzLl9jb21wYXJlV2l0aDsgfVxyXG5cdHNldCBjb21wYXJlV2l0aChmbjogKG8xOiBhbnksIG8yOiBhbnkpID0+IGJvb2xlYW4pIHsgdGhpcy5fY29tcGFyZVdpdGggPSBmbjsgfVxyXG5cdHByaXZhdGUgX2NvbXBhcmVXaXRoID0gKG8xOiBhbnksIG8yOiBhbnkpID0+IG8xID09PSBvMjtcclxuXHJcblx0LyoqXHJcblx0ICogY2hhbmdlPzogZnVuY3Rpb25cclxuXHQgKi9cclxuXHRAT3V0cHV0KCdjaGFuZ2UnKSBvblZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuXHQvKipcclxuXHQgKiBpdGVtQ2hhbmdlPzogZnVuY3Rpb25cclxuXHQgKi9cclxuXHRAT3V0cHV0KCdpdGVtQ2hhbmdlJykgb25JdGVtQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuXHQvKipcclxuXHQgKiBzZWxlY3RlZD86IGZ1bmN0aW9uXHJcblx0ICovXHJcblx0QE91dHB1dCgnc2VsZWN0ZWQnKSBvblNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuXHQvKipcclxuXHQgKiBpdGVtU2VsZWN0ZWQ/OiBmdW5jdGlvblxyXG5cdCAqL1xyXG5cdEBPdXRwdXQoJ2l0ZW1TZWxlY3RlZCcpIG9uSXRlbVNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuXHQvKipcclxuXHQgKiBsYXVuY2g/OiBmdW5jdGlvblxyXG5cdCAqL1xyXG5cdEBPdXRwdXQoJ2xhdW5jaCcpIG9uTGF1bmNoOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuXHQvKipcclxuXHQgKiBzZWFyY2hGaWVsZD86IGZ1bmN0aW9uXHJcblx0ICovXHJcblx0QElucHV0KCkgc2VhcmNoRmllbGQ6ICh4OiBhbnkpID0+IHN0cmluZztcclxuXHJcblx0LyoqXHJcblx0ICogQ29uc3RydWN0b3JcclxuXHQgKiBAcGFyYW0gbmdDb250cm9sIFxyXG5cdCAqIEBwYXJhbSBwYXJlbnRGb3JtIFxyXG5cdCAqIEBwYXJhbSBwYXJlbnRGb3JtR3JvdXAgXHJcblx0ICogQHBhcmFtIGRlZmF1bHRFcnJvclN0YXRlTWF0Y2hlciBcclxuXHQgKiBAcGFyYW0gZm9jdXNNb25pdG9yIFxyXG5cdCAqIEBwYXJhbSBlbGVtZW50UmVmIFxyXG5cdCAqL1xyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvcixcclxuXHRcdEBPcHRpb25hbCgpIEBTZWxmKCkgbmdDb250cm9sOiBOZ0NvbnRyb2wsXHJcblx0XHRAT3B0aW9uYWwoKSBwYXJlbnRGb3JtOiBOZ0Zvcm0sXHJcblx0XHRAT3B0aW9uYWwoKSBwYXJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZSxcclxuXHRcdGRlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcjogRXJyb3JTdGF0ZU1hdGNoZXIsXHJcblx0XHRmb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcclxuXHRcdGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcclxuXHQpIHtcclxuXHRcdHN1cGVyKFwidmQtc2VsZWN0XCIsIG5nQ29udHJvbCwgcGFyZW50Rm9ybSwgcGFyZW50Rm9ybUdyb3VwLCBkZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXIsIGZvY3VzTW9uaXRvciwgZWxlbWVudFJlZik7XHJcblx0XHRpZiAoIXRoaXMuZW51bSkge1xyXG5cdFx0XHR0aGlzLmh0dHAgPSBpbmplY3Rvci5nZXQoSHR0cENsaWVudCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBMaWZlY3ljbGUgaG9vayB0aGF0IGlzIGNhbGxlZCBhZnRlciBhIGNvbXBvbmVudCdzIFxyXG5cdCAqIHZpZXcgaGFzIGJlZW4gZnVsbHkgaW5pdGlhbGl6ZWQuXHJcblx0ICovXHJcblx0bmdPbkluaXQoKTogdm9pZCB7XHJcblx0XHRpZiAodGhpcy5lbnVtKSB7XHJcblx0XHRcdHRoaXMuZmlsdGVyYWJsZSA9IGZhbHNlO1xyXG5cdFx0XHR0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHRoaXMub3B0aW9ucyA9IEVudW1TZXJ2aWNlLnRvQXJyYXkodGhpcy5lbnVtLCB0aGlzLnByZWZpeCk7XHJcblxyXG5cdFx0XHRpZiAoQXJyYXkuaXNBcnJheSh0aGlzLm9wdGlvbnMpKSB7XHJcblx0XHRcdFx0dGhpcy5oYW5kbGVJdGVtU2VsZWN0ZWQodGhpcy52YWx1ZSk7XHJcblx0XHRcdH1cclxuXHRcdH0gZWxzZSBpZiAoIXRoaXMub3B0aW9ucykge1xyXG5cdFx0XHR0aGlzLl9lbmRwb2ludENoYW5nZS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnBpcGUoZGVib3VuY2VUaW1lKDEpKS5zdWJzY3JpYmUoXyA9PiB7XHJcblx0XHRcdFx0bGV0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcclxuXHRcdFx0XHRpZiAodGhpcy5jYWNoZSkge1xyXG5cdFx0XHRcdFx0aGVhZGVycy5zZXQoJ0NsaWVudC1DYWNoZScsICdZZXMnKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdC8qIEluaXQgcGFyYW1zLCBpZiBudWxsICovXHJcblx0XHRcdFx0bGV0IHBhcmFtcyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX3BhcmFtcyB8fCB7fSk7XHJcblxyXG5cdFx0XHRcdC8qIEFkZCBwcm9qZWN0aW9uLCBpZiBhbnkgKi9cclxuXHRcdFx0XHRpZiAodGhpcy5wcm9qZWN0aW9uKSB7XHJcblx0XHRcdFx0XHRwYXJhbXMucHJvamVjdGlvbiA9IEFycmF5LmlzQXJyYXkodGhpcy5wcm9qZWN0aW9uKSA/IHRoaXMucHJvamVjdGlvbi5qb2luKCcsJykgOiB0aGlzLnByb2plY3Rpb247XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQvKiBBZGQgc29ydGluZyAqL1xyXG5cdFx0XHRcdGlmICghdGhpcy5wYXJhbXMuc29ydEJ5ICYmICh0aGlzLnNvcnRCeSB8fCB0aGlzLnNvcnRlZCkpIHtcclxuXHRcdFx0XHRcdHBhcmFtcy5zb3J0QnkgPSB0aGlzLnNvcnRCeSB8fCB0aGlzLnRleHQ7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQvKiBHZXQgZW5kcG9pbnQgKi9cclxuXHRcdFx0XHRsZXQgZW5kcG9pbnQgPSB0eXBlb2YgdGhpcy5lbmRwb2ludCA9PT0gJ2Z1bmN0aW9uJyA/IHRoaXMuZW5kcG9pbnQodGhpcykgOiAoPHN0cmluZz50aGlzLmVuZHBvaW50KTtcclxuXHRcdFx0XHRpZiAoZW5kcG9pbnQpIHtcclxuXHRcdFx0XHRcdHRoaXMuaHR0cC5nZXQoZW5kcG9pbnQsIHsgcGFyYW1zOiBwYXJhbXMsIGhlYWRlcnM6IGhlYWRlcnMgfSlcclxuXHRcdFx0XHRcdFx0LnBpcGUobWFwKCh4OiBhbnlbXSkgPT4gdGhpcy5tYXBwZXIgPyB0aGlzLm1hcHBlcih4KSA6IHgpKVxyXG5cdFx0XHRcdFx0XHQuc3Vic2NyaWJlKHggPT4ge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5vcHRpb25zID0geDtcclxuXHJcblx0XHRcdFx0XHRcdFx0aWYgKEFycmF5LmlzQXJyYXkodGhpcy5vcHRpb25zKSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5oYW5kbGVJdGVtU2VsZWN0ZWQodGhpcy52YWx1ZSk7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQSBjYWxsYmFjayBtZXRob2QgdGhhdCBpcyBpbnZva2VkIGltbWVkaWF0ZWx5IGFmdGVyXHJcblx0ICogQW5ndWxhciBoYXMgY29tcGxldGVkIGluaXRpYWxpemF0aW9uIG9mIGEgY29tcG9uZW50J3Mgdmlldy5cclxuXHQgKiBJdCBpcyBpbnZva2VkIG9ubHkgb25jZSB3aGVuIHRoZSB2aWV3IGlzIGluc3RhbnRpYXRlZC5cclxuXHQgKlxyXG5cdCAqL1xyXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuXHRcdHRoaXMuc2VsZWN0RWw/Lm9wZW5lZENoYW5nZT8uc3Vic2NyaWJlKHggPT4ge1xyXG5cdFx0XHRpZiAoeCAmJiB0aGlzLmZpbHRlcmFibGUpIHtcclxuXHRcdFx0XHR0aGlzLmZpbHRlcklucHV0Py5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogU2V0cyBjb250cm9sIGZvY3VzXHJcblx0ICovXHJcblx0cHVibGljIGZvY3VzKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5zZWxlY3RFbD8uZm9jdXMoKTtcclxuXHRcdHRoaXMuc2VsZWN0RWw/Lm9wZW4oKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXHJcblx0ICogQHBhcmFtIHZhbHVlIFxyXG5cdCAqL1xyXG5cdHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG5cdFx0c3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSk7XHJcblx0XHR0aGlzLm9uU2VsZWN0ZWQuZW1pdCh2YWx1ZSk7XHJcblxyXG5cdFx0aWYgKEFycmF5LmlzQXJyYXkodGhpcy5vcHRpb25zKSkge1xyXG5cdFx0XHR0aGlzLmhhbmRsZUl0ZW1TZWxlY3RlZCh0aGlzLnZhbHVlKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoIXRoaXMudmFsdWUpIHtcclxuXHRcdFx0dGhpcy5zZWxlY3RFbD8ud3JpdGVWYWx1ZShudWxsKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIE1ldGhvZCBleGVjdXRlZCB3aGVuIGFuIG9wdGlvbiBjaGFuZ2VzXHJcblx0ICovXHJcblx0cHVibGljIGhhbmRsZUNoYW5nZSgkZXZlbnQ6IGFueSk6IHZvaWQge1xyXG5cdFx0dGhpcy5vblZhbHVlQ2hhbmdlLmVtaXQoJGV2ZW50KTtcclxuXHRcdHRoaXMuaGFuZGxlSXRlbUNoYW5nZSgkZXZlbnQudmFsdWUpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogSGFuZGxlcyBpdGVtIGNoYW5nZXNcclxuXHQgKiBAcGFyYW0gdmFsdWUgXHJcblx0ICovXHJcblx0cHVibGljIGhhbmRsZUl0ZW1TZWxlY3RlZCh2YWx1ZTogYW55KTogdm9pZCB7XHJcblx0XHRpZiAodGhpcy5tdWx0aXBsZSkge1xyXG5cdFx0XHR0aGlzLm9uSXRlbVNlbGVjdGVkLmVtaXQodGhpcy5vcHRpb25zLmZpbHRlcigoeDogYW55KSA9PiAodmFsdWUgfHwgW10pLmluY2x1ZGVzKHhbdGhpcy5rZXldKSkpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5vbkl0ZW1TZWxlY3RlZC5lbWl0KHRoaXMub3B0aW9ucy5maWx0ZXIoKHg6IGFueSkgPT4geFt0aGlzLmtleV0gPT0gdmFsdWUpWzBdKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEhhbmRsZXMgaXRlbSBjaGFuZ2VzXHJcblx0ICogQHBhcmFtIHZhbHVlIFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBoYW5kbGVJdGVtQ2hhbmdlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuXHRcdGlmICh0aGlzLm11bHRpcGxlKSB7XHJcblx0XHRcdHRoaXMub25JdGVtQ2hhbmdlLmVtaXQodGhpcy5vcHRpb25zLmZpbHRlcigoeDogYW55KSA9PiAodmFsdWUgfHwgW10pLmluY2x1ZGVzKHhbdGhpcy5rZXldKSkpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5vbkl0ZW1DaGFuZ2UuZW1pdCh0aGlzLm9wdGlvbnMuZmlsdGVyKCh4OiBhbnkpID0+IHhbdGhpcy5rZXldID09IHZhbHVlKVswXSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBIYW5kbGVzIGxhdW5jaCBidXR0b24gY2xpY2tcclxuXHQgKiBAcGFyYW0gdmFsdWUgXHJcblx0ICovXHJcblx0cHVibGljIGhhbmRsZUxhdW5jaENsaWNrZWQodmFsdWU6IGFueSk6IHZvaWQge1xyXG5cdFx0aWYgKHRoaXMubXVsdGlwbGUpIHtcclxuXHRcdFx0dGhpcy5vbkxhdW5jaC5lbWl0KHRoaXMub3B0aW9ucy5maWx0ZXIoKHg6IGFueSkgPT4gKHZhbHVlIHx8IFtdKS5pbmNsdWRlcyh4W3RoaXMua2V5XSkpKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMub25MYXVuY2guZW1pdCh0aGlzLm9wdGlvbnMuZmlsdGVyKCh4OiBhbnkpID0+IHhbdGhpcy5rZXldID09IHZhbHVlKVswXSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBIYW5kZWxzIGZpbHRlciBldmVudFxyXG5cdCAqIEBwYXJhbSAkZXZlbnQgXHJcblx0ICovXHJcblx0cHVibGljIGhhbmRsZUZpbHRlcigkZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcblx0XHRsZXQgc2VhcmNoVGV4dDogc3RyaW5nID0gKCRldmVudD8udGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpPy52YWx1ZSA/PyAnJztcclxuXHRcdGlmICh0aGlzLnNlYXJjaEZpZWxkKSB7XHJcblx0XHRcdHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5vcHRpb25zLmZpbHRlcigoeDogYW55KSA9PiB0aGlzLnNlYXJjaEZpZWxkKHgpPy50b0xvd2VyQ2FzZSgpLnNlYXJjaChzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkpID4gLTEpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5maWx0ZXJlZE9wdGlvbnMgPSB0aGlzLm9wdGlvbnMuZmlsdGVyKCh4OiBhbnkpID0+IHhbdGhpcy50ZXh0XT8udG9Mb3dlckNhc2UoKS5zZWFyY2goc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKSA+IC0xKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEdldHMgdGhlIHZhbHVlcyBvZiB0aGUgc2VsZWN0ZWQgb3B0aW9ucyBmb3IgdGhlIHRyaWdnZXJcclxuXHQgKiBAcGFyYW0gb3B0aW9ucyBcclxuXHQgKiBAcmV0dXJucyBcclxuXHQgKi9cclxuXHRwdWJsaWMgZ2V0VHJpZ2dlclZhbHVlcyhvcHRpb25zOiBNYXRPcHRpb24gfCBNYXRPcHRpb25bXSk6IGFueSB7XHJcblx0XHRpZiAoQXJyYXkuaXNBcnJheShvcHRpb25zKSkge1xyXG5cdFx0XHRyZXR1cm4gKG9wdGlvbnMgfHwgW10pPy5tYXAoeCA9PiB4LnZhbHVlKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHJldHVybiBvcHRpb25zPy52YWx1ZTtcclxuXHRcdH1cclxuXHR9XHJcbn0iLCI8bWF0LXNlbGVjdCBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBpMThuLXBsYWNlaG9sZGVyIFsobmdNb2RlbCldPVwidmFsdWVcIiAjc2VsZWN0PVwibWF0U2VsZWN0XCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJoYW5kbGVDaGFuZ2UoJGV2ZW50KVwiICpuZ0lmPVwiIXJlYWRvbmx5XCIgW211bHRpcGxlXT1cIm11bHRpcGxlXCIgW2NvbXBhcmVXaXRoXT1cImNvbXBhcmVXaXRoXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgZmxleD5cclxuICAgIDwhLS0gI3JlZ2lvbiBGaWx0ZXIgaW5wdXQgLS0+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiZmlsdGVyYWJsZVwiIGNsYXNzPVwidmQtc2VsZWN0LWZpbHRlci13cmFwXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInZkLXNlbGVjdC1maWx0ZXItaW5uZXJcIj5cclxuICAgICAgICAgICAgPGEgbWF0LWljb24tYnV0dG9uIGRpc2FibGVkICpuZ0lmPVwiIWZpbHRlcklucHV0LnZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWljb24+c2VhcmNoPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8YSBtYXQtaWNvbi1idXR0b24gKm5nSWY9XCJmaWx0ZXJJbnB1dC52YWx1ZVwiIChjbGljayk9XCJmaWx0ZXJJbnB1dC52YWx1ZSA9IG51bGw7IGhhbmRsZUZpbHRlcihudWxsKVwiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8aW5wdXQgI2ZpbHRlcklucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJGaWx0ZXIuLi5cIiBjbGFzcz1cInZkLXNlbGVjdC1maWx0ZXIgbWF0LWlucHV0LWVsZW1lbnRcIiAoa2V5dXApPVwiaGFuZGxlRmlsdGVyKCRldmVudClcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LWRpdmlkZXJcIj48L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuICAgIDwhLS0gI3JlZ2lvbiBUcmlnZ2VyIGZvciBsYXVuY2ggYnV0dG9uIC0tPlxyXG4gICAgPG1hdC1zZWxlY3QtdHJpZ2dlciAqbmdJZj1cIm9uTGF1bmNoPy5vYnNlcnZlcnM/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICA8c3Bhbj57e2dldFRyaWdnZXJWYWx1ZXMoc2VsZWN0LnNlbGVjdGVkKX19PC9zcGFuPlxyXG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInZkLXNlbGVjdC1sYXVuY2hcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBoYW5kbGVMYXVuY2hDbGlja2VkKHZhbHVlKVwiPmxhdW5jaDwvbWF0LWljb24+XHJcbiAgICA8L21hdC1zZWxlY3QtdHJpZ2dlcj5cclxuICAgIDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcbiAgICA8IS0tICNyZWdpb24gQ3VzdG9tIHRyaWdnZXIgdGVtcGxhdGUgLS0+XHJcbiAgICA8bWF0LXNlbGVjdC10cmlnZ2VyICpuZ0lmPVwiIW9uTGF1bmNoPy5vYnNlcnZlcnM/Lmxlbmd0aCAmJiB0cmlnZ2VyVGVtcGxhdGU/LnRlbXBsYXRlUmVmXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwidHJpZ2dlclRlbXBsYXRlPy50ZW1wbGF0ZVJlZlwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRyaWdnZXJUZW1wbGF0ZT8udGVtcGxhdGVSZWZcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyB0cmlnZ2VyOiBnZXRUcmlnZ2VyVmFsdWVzKHNlbGVjdC5zZWxlY3RlZCkgfVwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICA8L21hdC1zZWxlY3QtdHJpZ2dlcj5cclxuICAgIDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcbiAgICA8IS0tICNyZWdpb24gT3B0aW9uIHRlbXBsYXRlIGFzIHRyaWdnZXIgLS0+XHJcbiAgICA8bWF0LXNlbGVjdC10cmlnZ2VyICpuZ0lmPVwiIW9uTGF1bmNoPy5vYnNlcnZlcnM/Lmxlbmd0aCAmJiAhdHJpZ2dlclRlbXBsYXRlPy50ZW1wbGF0ZVJlZiAmJiBvcHRpb25UZW1wbGF0ZT8udGVtcGxhdGVSZWZcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJvcHRpb25UZW1wbGF0ZT8udGVtcGxhdGVSZWZcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJvcHRpb25UZW1wbGF0ZT8udGVtcGxhdGVSZWZcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyB0cmlnZ2VyOiBnZXRUcmlnZ2VyVmFsdWVzKHNlbGVjdC5zZWxlY3RlZCkgfVwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICA8L21hdC1zZWxlY3QtdHJpZ2dlcj5cclxuICAgIDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcbiAgICA8IS0tICNyZWdpb24gRGVmYXVsdCBvcHRpb24gLS0+XHJcbiAgICA8bWF0LW9wdGlvbiBjbGFzcz1cInRjLWdyZXktNTAwXCIgKm5nSWY9XCIhbXVsdGlwbGVcIiBpMThuPVwiQEBwbGVhc2VTZWxlY3RcIj4tLS0gUGxlYXNlIFNlbGVjdCAtLS08L21hdC1vcHRpb24+XHJcbiAgICA8IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG4gICAgPCEtLSAjcmVnaW9uIE9wdGlvbnMgLS0+XHJcbiAgICA8bmctdGVtcGxhdGUgbGV0LW9wdGlvbiBsZXQtZmlyc3Q9XCJmaXJzdFwiIG5nRm9yIFtuZ0Zvck9mXT1cImZpbHRlcmVkT3B0aW9uc1wiPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJtYXBwZXIgPyBvcHRpb24gOiBvcHRpb25ba2V5XVwiPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFvcHRpb25UZW1wbGF0ZT8udGVtcGxhdGVSZWZcIiBpMThuPVwiQEBzZWxlY3Rpb25cIj57b3B0aW9uW3RleHRdLCBzZWxlY3QsIG9wdGlvbiB7b3B0aW9ufSBvdGhlciB7e3tvcHRpb25bdGV4dF19fX19PC9zcGFuPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJvcHRpb25UZW1wbGF0ZT8udGVtcGxhdGVSZWZcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJvcHRpb25UZW1wbGF0ZT8udGVtcGxhdGVSZWZcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBvcHRpb246IG9wdGlvbiB9XCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPCEtLSAjZW5kcmVnaW9uIC0tPlxyXG48L21hdC1zZWxlY3Q+XHJcblxyXG48IS0tICNyZWdpb24gUmVhZCBvbmx5IHZhbHVlIC0tPlxyXG48ZGl2ICpuZ0lmPVwicmVhZG9ubHlcIj5cclxuICAgIDxkaXYgKm5nSWY9XCJjdXJyZW50VmFsdWVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicmVhZG9ubHktdmFsdWVcIj5cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhb3B0aW9uVGVtcGxhdGU/LnRlbXBsYXRlUmVmICYmICF0cmlnZ2VyVGVtcGxhdGU/LnRlbXBsYXRlUmVmXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFtdWx0aXBsZVwiIGkxOG49XCJAQHNlbGVjdGlvblwiPntjdXJyZW50VmFsdWVbdGV4dF0sIHNlbGVjdCwgb3B0aW9uIHtvcHRpb259IG90aGVyIHt7e2N1cnJlbnRWYWx1ZVt0ZXh0XX19fX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibXVsdGlwbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgb3B0aW9uVmFsdWUgb2YgY3VycmVudFZhbHVlOyBsZXQgbGFzdCA9IGxhc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gaTE4bj1cIkBAc2VsZWN0aW9uXCI+e29wdGlvblZhbHVlW3RleHRdLCBzZWxlY3QsIG9wdGlvbiB7b3B0aW9ufSBvdGhlciB7e3tvcHRpb25WYWx1ZVt0ZXh0XX19fX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWxhc3RcIj4sJm5ic3A7PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cInRyaWdnZXJUZW1wbGF0ZT8udGVtcGxhdGVSZWZcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJ0cmlnZ2VyVGVtcGxhdGU/LnRlbXBsYXRlUmVmXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgdHJpZ2dlcjogY3VycmVudFZhbHVlIH1cIj48L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJvcHRpb25UZW1wbGF0ZT8udGVtcGxhdGVSZWYgJiYgIXRyaWdnZXJUZW1wbGF0ZT8udGVtcGxhdGVSZWZcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJvcHRpb25UZW1wbGF0ZT8udGVtcGxhdGVSZWZcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBvcHRpb246IGN1cnJlbnRWYWx1ZSB9XCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJvbkxhdW5jaD8ub2JzZXJ2ZXJzPy5sZW5ndGggPiAwXCIgY2xhc3M9XCJ2ZC1zZWxlY3QtbGF1bmNoLXJlYWRvbmx5XCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgaGFuZGxlTGF1bmNoQ2xpY2tlZCh2YWx1ZSlcIj5sYXVuY2g8L21hdC1pY29uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiIWN1cnJlbnRWYWx1ZVwiPiZuYnNwOzwvZGl2PlxyXG48L2Rpdj5cclxuPCEtLSAjZW5kcmVnaW9uIC0tPiJdfQ==
|
|
455
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL3NlbGVjdC9jb21wb25lbnRzL3NlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi9zZWxlY3QvY29tcG9uZW50cy9zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDak0sT0FBTyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQWEsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNq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QkFPQyxNQUFNO3NCQURaLEtBQUs7Z0JBT0MsT0FBTztzQkFEYixLQUFLO2dCQU9DLGVBQWU7c0JBRHJCLEtBQUs7Z0JBT0MsVUFBVTtzQkFEaEIsS0FBSztnQkFPQyxLQUFLO3NCQURYLEtBQUs7Z0JBT0MsTUFBTTtzQkFEWixLQUFLO2dCQU9DLE1BQU07c0JBRFosS0FBSztnQkFTRixXQUFXO3NCQURkLEtBQUs7Z0JBUVksYUFBYTtzQkFBOUIsTUFBTTt1QkFBQyxRQUFRO2dCQUtNLFlBQVk7c0JBQWpDLE1BQU07dUJBQUMsWUFBWTtnQkFLQSxVQUFVO3NCQUE3QixNQUFNO3VCQUFDLFVBQVU7Z0JBS00sY0FBYztzQkFBckMsTUFBTTt1QkFBQyxjQUFjO2dCQUtKLFFBQVE7c0JBQXpCLE1BQU07dUJBQUMsUUFBUTtnQkFLUCxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNNb25pdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xyXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgSW5wdXQsIE9wdGlvbmFsLCBPdXRwdXQsIFNlbGYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXBEaXJlY3RpdmUsIE5nQ29udHJvbCwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBFcnJvclN0YXRlTWF0Y2hlciwgTWF0T3B0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0U2VsZWN0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRW51bVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21tb24vc2VydmljZXMvZW51bS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RNYXRGb3JtRmllbGQgfSBmcm9tICcuLi8uLi9mb3Jtcy9oZWxwZXJzL2Fic3RyYWN0LW1hdC1mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgVmRTZWxlY3RPcHRpb25EaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL3ZkLXNlbGVjdC1vcHRpb24uZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgVmRTZWxlY3RUcmlnZ2VyRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy92ZC1zZWxlY3QtdHJpZ2dlci5kaXJlY3RpdmUnO1xyXG5cclxuLyoqXHJcbiAqIFZkU2VsZWN0Q29tcG9uZW50IGNsYXNzXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ3ZkLXNlbGVjdCcsXHJcblx0dGVtcGxhdGVVcmw6ICdzZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWydzZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcclxuXHRwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE1hdEZvcm1GaWVsZENvbnRyb2wsIHVzZUV4aXN0aW5nOiBWZFNlbGVjdENvbXBvbmVudCB9XSxcclxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVmRTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdE1hdEZvcm1GaWVsZDxhbnk+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRoZSBodHRwIHNlcnZpY2UgZnJvbSB0byBnZXQgdGhlIGRhdGFcclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCA9IG51bGw7XHJcblxyXG5cdC8qKlxyXG5cdCAqIE9wdGlvbiB0ZW1wbGF0ZVxyXG5cdCAqL1xyXG5cdEBDb250ZW50Q2hpbGQoVmRTZWxlY3RPcHRpb25EaXJlY3RpdmUpXHJcblx0cHVibGljIG9wdGlvblRlbXBsYXRlOiBWZFNlbGVjdE9wdGlvbkRpcmVjdGl2ZTtcclxuXHJcblx0LyoqXHJcblx0ICogVHJpZ2dlciB0ZW1wbGF0ZVxyXG5cdCAqL1xyXG5cdEBDb250ZW50Q2hpbGQoVmRTZWxlY3RUcmlnZ2VyRGlyZWN0aXZlKVxyXG5cdHB1YmxpYyB0cmlnZ2VyVGVtcGxhdGU6IFZkU2VsZWN0VHJpZ2dlckRpcmVjdGl2ZTtcclxuXHJcblx0LyoqIFxyXG5cdCAqIFRoZSBzZWxlY3QgZWxlbWVudC5cclxuXHQgKi9cclxuXHRAVmlld0NoaWxkKE1hdFNlbGVjdCwgeyBzdGF0aWM6IGZhbHNlIH0pXHJcblx0cHVibGljIHNlbGVjdEVsOiBNYXRTZWxlY3Q7XHJcblxyXG5cdC8qKiBcclxuXHQgKiBUaGUgc2VsZWN0IGVsZW1lbnQuXHJcblx0ICovXHJcblx0QFZpZXdDaGlsZCgnZmlsdGVySW5wdXQnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuXHRwdWJsaWMgZmlsdGVySW5wdXQ6IEVsZW1lbnRSZWY7XHJcblxyXG5cdC8qKlxyXG5cdCAqIE11bHRpcGxlIHNlbGVjdCBvcHRpb25cclxuXHQgKi9cclxuXHRwdWJsaWMgX211bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cdC8qKlxyXG5cdCAqIE11bHRpcGxlIHNlbGVjdCBvcHRpb25cclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdGdldCBtdWx0aXBsZSgpIHsgcmV0dXJuIHRoaXMuX211bHRpcGxlOyB9XHJcblx0c2V0IG11bHRpcGxlKG11bHRpKSB7XHJcblx0XHR0aGlzLl9tdWx0aXBsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShtdWx0aSk7XHJcblx0XHR0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBHZXRzIHRoZSBjb250cm9sIGlzIGRpc2FibGVkLlxyXG5cdCAqIEBwYXJhbSBkaXNhYmxlZFxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIHNldCBkaXNhYmxlZChkaXNhYmxlZDogYW55KSB7XHJcblx0XHR0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShkaXNhYmxlZCk7XHJcblx0XHRpZiAodGhpcy5mb2N1c2VkKSB7XHJcblx0XHRcdHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xyXG5cdFx0XHR0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBTZXRzIHRoZSBkaXNhYmxlZC5cclxuXHQgKi9cclxuXHRwdWJsaWMgZ2V0IGRpc2FibGVkKCkge1xyXG5cdFx0aWYgKHRoaXMuX3JlYWRvbmx5KSB7XHJcblx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBzdXBlci5kaXNhYmxlZDtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFNvcnRzIG9wdGlvbnNcclxuXHQgKi9cclxuXHRwdWJsaWMgX3NvcnRlZDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFNvcnRzIG9wdGlvbnNcclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdGdldCBzb3J0ZWQoKSB7IHJldHVybiB0aGlzLl9zb3J0ZWQ7IH1cclxuXHRzZXQgc29ydGVkKG11bHRpKSB7XHJcblx0XHR0aGlzLl9zb3J0ZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkobXVsdGkpO1xyXG5cdFx0dGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogVHJpZ2dlciBjc3MgY2xhc3NcclxuXHQgKi9cclxuXHRwdWJsaWMgX3RyaWdnZXJDc3NDbGFzczogc3RyaW5nO1xyXG5cclxuXHQvKipcclxuXHQgKiBUcmlnZ2VyIGNzcyBjbGFzc1xyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0Z2V0IHRyaWdnZXJDc3NDbGFzcygpIHsgcmV0dXJuIHRoaXMuX3RyaWdnZXJDc3NDbGFzczsgfVxyXG5cdHNldCB0cmlnZ2VyQ3NzQ2xhc3ModHJpZ2dlckNzc0NsYXNzKSB7XHJcblx0XHR0aGlzLl90cmlnZ2VyQ3NzQ2xhc3MgPSB0cmlnZ2VyQ3NzQ2xhc3M7XHJcblx0XHR0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBUcmlnZ2VyIG1vZGVcclxuXHQgKi9cclxuXHRwdWJsaWMgX3RyaWdnZXJNb2RlOiBzdHJpbmcgPSAnY2hpcCc7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRyaWdnZXIgbW9kZVxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0Z2V0IHRyaWdnZXJNb2RlKCkgeyByZXR1cm4gdGhpcy50cmlnZ2VyTW9kZTsgfVxyXG5cdHNldCB0cmlnZ2VyTW9kZSh0cmlnZ2VyTW9kZSkge1xyXG5cdFx0dGhpcy5fdHJpZ2dlck1vZGUgPSB0cmlnZ2VyTW9kZTtcclxuXHRcdHRoaXMudHJpZ2dlckNzc0NsYXNzID0gJ2NoaXAnO1xyXG5cdFx0dGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogdGV4dFByZWZpeD86IGFueVxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIHRleHRQcmVmaXg6IHN0cmluZyA9ICcnO1xyXG5cclxuXHQvKiogXHJcblx0ICogV2hldGhlciB0aGUgc2VsZWN0IGhhcyBhIHZhbHVlLlxyXG5cdCAqL1xyXG5cdGdldCBlbXB0eSgpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLl9yZWFkb25seSA/ICF0aGlzLmN1cnJlbnRWYWx1ZSA6ICF0aGlzLnNlbGVjdEVsPy5fc2VsZWN0aW9uTW9kZWwgfHwgdGhpcy5zZWxlY3RFbD8uX3NlbGVjdGlvbk1vZGVsPy5pc0VtcHR5KCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBSZXByZXNlbnRzIGEgdmFsdWUgdGhhdCBjaGFuZ2VzIG92ZXIgdGltZS4gXHJcblx0ICogT2JzZXJ2ZXJzIGNhbiBzdWJzY3JpYmUgdG8gdGhlIHN1YmplY3QgdG8gcmVjZWl2ZSBwZGYgZmlsZSBjaGFuZ2VzXHJcblx0ICovXHJcblx0cHJpdmF0ZSBfZW5kcG9pbnRDaGFuZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xyXG5cclxuXHQvKipcclxuXHQgKiBfZW5kcG9pbnQ6IHN0cmluZ1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBfZW5kcG9pbnQ6IHN0cmluZyB8IEZ1bmN0aW9uO1xyXG5cclxuXHQvKipcclxuXHQgKiBHZXRzIHBkZiBlbmRwb2ludFxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0Z2V0IGVuZHBvaW50KCk6IHN0cmluZyB8IEZ1bmN0aW9uIHsgcmV0dXJuIHRoaXMuX2VuZHBvaW50OyB9XHJcblx0c2V0IGVuZHBvaW50KGVuZHBvaW50OiBzdHJpbmcgfCBGdW5jdGlvbikge1xyXG5cdFx0dGhpcy5fZW5kcG9pbnQgPSBlbmRwb2ludDtcclxuXHRcdHRoaXMuX2VuZHBvaW50Q2hhbmdlLm5leHQoW3RoaXMuZW5kcG9pbnQsIHRoaXMucGFyYW1zLCB0aGlzLnByb2plY3Rpb25dKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIF9wYXJhbXM6IGFueVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBfcGFyYW1zOiBhbnkgPSB7fTtcclxuXHJcblx0LyoqXHJcblx0ICogcGFyYW1zOiBhbnlcclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdGdldCBwYXJhbXMoKSB7IHJldHVybiB0aGlzLl9wYXJhbXM7IH1cclxuXHRzZXQgcGFyYW1zKHBhcmFtczogYW55KSB7XHJcblx0XHRpZiAocGFyYW1zKSB7XHJcblx0XHRcdC8qIFJlbW92ZSBlbXB0eSBwYXJhbXMgKi9cclxuXHRcdFx0T2JqZWN0LmtleXMocGFyYW1zKS5mb3JFYWNoKChrZXkpID0+IHtcclxuXHRcdFx0XHRpZiAoKHBhcmFtc1trZXldID09IG51bGwgfHwgcGFyYW1zW2tleV0gPT0gJycgfHwgcGFyYW1zW2tleV0gPT0gJ3VuZGVmaW5lZCcpKSB7XHJcblx0XHRcdFx0XHRkZWxldGUgcGFyYW1zW2tleV07XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHJcblx0XHRcdC8qIENoZWNrIGlmIHRoZSBwYXJhbXMgaGFzIGNoYW5nZWQgKi9cclxuXHRcdFx0aWYgKEpTT04uc3RyaW5naWZ5KHRoaXMuX3BhcmFtcykgIT09IEpTT04uc3RyaW5naWZ5KHBhcmFtcykpIHtcclxuXHRcdFx0XHR0aGlzLl9wYXJhbXMgPSBwYXJhbXM7XHJcblx0XHRcdFx0dGhpcy5fZW5kcG9pbnRDaGFuZ2UubmV4dChbdGhpcy5lbmRwb2ludCwgdGhpcy5fcGFyYW1zLCB0aGlzLnByb2plY3Rpb25dKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogX3Byb2plY3Rpb246IGFueVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBfcHJvamVjdGlvbjogc3RyaW5nIHwgc3RyaW5nW107XHJcblxyXG5cdC8qKlxyXG5cdCAqIHByb2plY3Rpb246IGFueVxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0Z2V0IHByb2plY3Rpb24oKSB7IHJldHVybiB0aGlzLl9wcm9qZWN0aW9uOyB9XHJcblx0c2V0IHByb2plY3Rpb24ocHJvamVjdGlvbjogc3RyaW5nIHwgc3RyaW5nW10pIHtcclxuXHRcdHRoaXMuX3Byb2plY3Rpb24gPSBwcm9qZWN0aW9uO1xyXG5cdFx0dGhpcy5fZW5kcG9pbnRDaGFuZ2UubmV4dChbdGhpcy5lbmRwb2ludCwgdGhpcy5wYXJhbXMsIHRoaXMucHJvamVjdGlvbl0pO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogR2V0cyBjdXJyZW50IHZhbHVlXHJcblx0ICovXHJcblx0Z2V0IGN1cnJlbnRWYWx1ZSgpOiBhbnkge1xyXG5cdFx0aWYgKHRoaXMubXVsdGlwbGUpIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMub3B0aW9ucz8uZmlsdGVyKCh4OiBhbnkpID0+ICh0aGlzLl92YWx1ZSB8fCBbXSkuaW5jbHVkZXMoeFt0aGlzLmtleV0pKTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdGhpcy5vcHRpb25zPy5maWx0ZXIoKHg6IGFueSkgPT4geFt0aGlzLmtleV0gPT0gdGhpcy5fdmFsdWUpWzBdO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogVGhlIG5hbWUgb2YgdGhlIGVuZHBvaW50XHJcblx0ICovXHJcblx0QElucHV0KClcclxuXHRwcml2YXRlIGVudW06IGFueTtcclxuXHJcblx0LyoqXHJcblx0ICogVGhlIGtleVxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIGtleTogYW55ID0gJ2lkJztcclxuXHJcblx0LyoqXHJcblx0ICogVGhlIHRleHRcclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyB0ZXh0OiBhbnkgPSAnbmFtZSc7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRoZSBwcmVmaXhcclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyBwcmVmaXg6IGFueSA9ICcnO1xyXG5cclxuXHQvKipcclxuXHQgKiBPcHRpb24gbGlzdFxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIG9wdGlvbnM6IGFueTtcclxuXHJcblx0LyoqXHJcblx0ICogZmlsdGVyZWQgb3B0aW9uIGxpc3RcclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyBmaWx0ZXJlZE9wdGlvbnM6IGFueTtcclxuXHJcblx0LyoqXHJcblx0ICogZmlsdGVyYWJsZT9cclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyBmaWx0ZXJhYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcblx0LyoqXHJcblx0ICogY2FjaGU/XHJcblx0ICovXHJcblx0QElucHV0KClcclxuXHRwdWJsaWMgY2FjaGU6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuXHQvKipcclxuXHQgKiBzb3J0Qnk/XHJcblx0ICovXHJcblx0QElucHV0KClcclxuXHRwdWJsaWMgc29ydEJ5OiBzdHJpbmc7XHJcblxyXG5cdC8qKlxyXG5cdCAqIG1hcHBlcjogRnVuY3Rpb25cclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyBtYXBwZXI6ICh4OiBhbnlbXSkgPT4gYW55O1xyXG5cclxuXHQvKipcclxuXHQgKiBBIGZ1bmN0aW9uIHRvIGNvbXBhcmUgdGhlIG9wdGlvbiB2YWx1ZXMgd2l0aCB0aGUgc2VsZWN0ZWQgdmFsdWVzLiBUaGUgZmlyc3QgYXJndW1lbnRcclxuXHQgKiBpcyBhIHZhbHVlIGZyb20gYW4gb3B0aW9uLiBUaGUgc2Vjb25kIGlzIGEgdmFsdWUgZnJvbSB0aGUgc2VsZWN0aW9uLiBBIGJvb2xlYW5cclxuXHQgKiBzaG91bGQgYmUgcmV0dXJuZWQuXHJcblx0ICovXHJcblx0QElucHV0KClcclxuXHRnZXQgY29tcGFyZVdpdGgoKTogKG8xOiBhbnksIG8yOiBhbnkpID0+IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fY29tcGFyZVdpdGg7IH1cclxuXHRzZXQgY29tcGFyZVdpdGgoZm46IChvMTogYW55LCBvMjogYW55KSA9PiBib29sZWFuKSB7IHRoaXMuX2NvbXBhcmVXaXRoID0gZm47IH1cclxuXHRwcml2YXRlIF9jb21wYXJlV2l0aCA9IChvMTogYW55LCBvMjogYW55KSA9PiBvMSA9PT0gbzI7XHJcblxyXG5cdC8qKlxyXG5cdCAqIGNoYW5nZT86IGZ1bmN0aW9uXHJcblx0ICovXHJcblx0QE91dHB1dCgnY2hhbmdlJykgb25WYWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcblx0LyoqXHJcblx0ICogaXRlbUNoYW5nZT86IGZ1bmN0aW9uXHJcblx0ICovXHJcblx0QE91dHB1dCgnaXRlbUNoYW5nZScpIG9uSXRlbUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcblx0LyoqXHJcblx0ICogc2VsZWN0ZWQ/OiBmdW5jdGlvblxyXG5cdCAqL1xyXG5cdEBPdXRwdXQoJ3NlbGVjdGVkJykgb25TZWxlY3RlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcblx0LyoqXHJcblx0ICogaXRlbVNlbGVjdGVkPzogZnVuY3Rpb25cclxuXHQgKi9cclxuXHRAT3V0cHV0KCdpdGVtU2VsZWN0ZWQnKSBvbkl0ZW1TZWxlY3RlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcblx0LyoqXHJcblx0ICogbGF1bmNoPzogZnVuY3Rpb25cclxuXHQgKi9cclxuXHRAT3V0cHV0KCdsYXVuY2gnKSBvbkxhdW5jaDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcblx0LyoqXHJcblx0ICogc2VhcmNoRmllbGQ/OiBmdW5jdGlvblxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpIHNlYXJjaEZpZWxkOiAoeDogYW55KSA9PiBzdHJpbmc7XHJcblxyXG5cdC8qKlxyXG5cdCAqIENvbnN0cnVjdG9yXHJcblx0ICogQHBhcmFtIG5nQ29udHJvbCBcclxuXHQgKiBAcGFyYW0gcGFyZW50Rm9ybSBcclxuXHQgKiBAcGFyYW0gcGFyZW50Rm9ybUdyb3VwIFxyXG5cdCAqIEBwYXJhbSBkZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXIgXHJcblx0ICogQHBhcmFtIGZvY3VzTW9uaXRvciBcclxuXHQgKiBAcGFyYW0gZWxlbWVudFJlZiBcclxuXHQgKi9cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IsXHJcblx0XHRAT3B0aW9uYWwoKSBAU2VsZigpIG5nQ29udHJvbDogTmdDb250cm9sLFxyXG5cdFx0QE9wdGlvbmFsKCkgcGFyZW50Rm9ybTogTmdGb3JtLFxyXG5cdFx0QE9wdGlvbmFsKCkgcGFyZW50Rm9ybUdyb3VwOiBGb3JtR3JvdXBEaXJlY3RpdmUsXHJcblx0XHRkZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXI6IEVycm9yU3RhdGVNYXRjaGVyLFxyXG5cdFx0Zm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXHJcblx0XHRlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG5cdFx0Y2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcblx0KSB7XHJcblx0XHRzdXBlcihcInZkLXNlbGVjdFwiLCBuZ0NvbnRyb2wsIHBhcmVudEZvcm0sIHBhcmVudEZvcm1Hcm91cCwgZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyLCBmb2N1c01vbml0b3IsIGVsZW1lbnRSZWYsIGNoYW5nZURldGVjdG9yUmVmKTtcclxuXHRcdGlmICghdGhpcy5lbnVtKSB7XHJcblx0XHRcdHRoaXMuaHR0cCA9IGluamVjdG9yLmdldChIdHRwQ2xpZW50KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIExpZmVjeWNsZSBob29rIHRoYXQgaXMgY2FsbGVkIGFmdGVyIGEgY29tcG9uZW50J3MgXHJcblx0ICogdmlldyBoYXMgYmVlbiBmdWxseSBpbml0aWFsaXplZC5cclxuXHQgKi9cclxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHRcdGlmICh0aGlzLmVudW0pIHtcclxuXHRcdFx0dGhpcy5maWx0ZXJhYmxlID0gZmFsc2U7XHJcblx0XHRcdHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5vcHRpb25zID0gRW51bVNlcnZpY2UudG9BcnJheSh0aGlzLmVudW0sIHRoaXMucHJlZml4KTtcclxuXHJcblx0XHRcdGlmIChBcnJheS5pc0FycmF5KHRoaXMub3B0aW9ucykpIHtcclxuXHRcdFx0XHR0aGlzLmhhbmRsZUl0ZW1TZWxlY3RlZCh0aGlzLnZhbHVlKTtcclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIGlmICghdGhpcy5vcHRpb25zKSB7XHJcblx0XHRcdHRoaXMuX2VuZHBvaW50Q2hhbmdlLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSkucGlwZShkZWJvdW5jZVRpbWUoMSkpLnN1YnNjcmliZShfID0+IHtcclxuXHRcdFx0XHRsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xyXG5cdFx0XHRcdGlmICh0aGlzLmNhY2hlKSB7XHJcblx0XHRcdFx0XHRoZWFkZXJzLnNldCgnQ2xpZW50LUNhY2hlJywgJ1llcycpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0LyogSW5pdCBwYXJhbXMsIGlmIG51bGwgKi9cclxuXHRcdFx0XHRsZXQgcGFyYW1zID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5fcGFyYW1zIHx8IHt9KTtcclxuXHJcblx0XHRcdFx0LyogQWRkIHByb2plY3Rpb24sIGlmIGFueSAqL1xyXG5cdFx0XHRcdGlmICh0aGlzLnByb2plY3Rpb24pIHtcclxuXHRcdFx0XHRcdHBhcmFtcy5wcm9qZWN0aW9uID0gQXJyYXkuaXNBcnJheSh0aGlzLnByb2plY3Rpb24pID8gdGhpcy5wcm9qZWN0aW9uLmpvaW4oJywnKSA6IHRoaXMucHJvamVjdGlvbjtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdC8qIEFkZCBzb3J0aW5nICovXHJcblx0XHRcdFx0aWYgKCF0aGlzLnBhcmFtcy5zb3J0QnkgJiYgKHRoaXMuc29ydEJ5IHx8IHRoaXMuc29ydGVkKSkge1xyXG5cdFx0XHRcdFx0cGFyYW1zLnNvcnRCeSA9IHRoaXMuc29ydEJ5IHx8IHRoaXMudGV4dDtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdC8qIEdldCBlbmRwb2ludCAqL1xyXG5cdFx0XHRcdGxldCBlbmRwb2ludCA9IHR5cGVvZiB0aGlzLmVuZHBvaW50ID09PSAnZnVuY3Rpb24nID8gdGhpcy5lbmRwb2ludCh0aGlzKSA6ICg8c3RyaW5nPnRoaXMuZW5kcG9pbnQpO1xyXG5cdFx0XHRcdGlmIChlbmRwb2ludCkge1xyXG5cdFx0XHRcdFx0dGhpcy5odHRwLmdldChlbmRwb2ludCwgeyBwYXJhbXM6IHBhcmFtcywgaGVhZGVyczogaGVhZGVycyB9KVxyXG5cdFx0XHRcdFx0XHQucGlwZShtYXAoKHg6IGFueVtdKSA9PiB0aGlzLm1hcHBlciA/IHRoaXMubWFwcGVyKHgpIDogeCkpXHJcblx0XHRcdFx0XHRcdC5zdWJzY3JpYmUoeCA9PiB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5maWx0ZXJlZE9wdGlvbnMgPSB0aGlzLm9wdGlvbnMgPSB4O1xyXG5cclxuXHRcdFx0XHRcdFx0XHRpZiAoQXJyYXkuaXNBcnJheSh0aGlzLm9wdGlvbnMpKSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmhhbmRsZUl0ZW1TZWxlY3RlZCh0aGlzLnZhbHVlKTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0XHRcdHRoaXMud3JpdGVWYWx1ZSh0aGlzLnZhbHVlKTtcclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEEgY2FsbGJhY2sgbWV0aG9kIHRoYXQgaXMgaW52b2tlZCBpbW1lZGlhdGVseSBhZnRlclxyXG5cdCAqIEFuZ3VsYXIgaGFzIGNvbXBsZXRlZCBpbml0aWFsaXphdGlvbiBvZiBhIGNvbXBvbmVudCdzIHZpZXcuXHJcblx0ICogSXQgaXMgaW52b2tlZCBvbmx5IG9uY2Ugd2hlbiB0aGUgdmlldyBpcyBpbnN0YW50aWF0ZWQuXHJcblx0ICpcclxuXHQgKi9cclxuXHRuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcblx0XHR0aGlzLnNlbGVjdEVsPy5vcGVuZWRDaGFuZ2U/LnN1YnNjcmliZSh4ID0+IHtcclxuXHRcdFx0aWYgKHggJiYgdGhpcy5maWx0ZXJhYmxlKSB7XHJcblx0XHRcdFx0dGhpcy5maWx0ZXJJbnB1dD8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFNldHMgY29udHJvbCBmb2N1c1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBmb2N1cygpOiB2b2lkIHtcclxuXHRcdHRoaXMuc2VsZWN0RWw/LmZvY3VzKCk7XHJcblx0XHR0aGlzLnNlbGVjdEVsPy5vcGVuKCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxyXG5cdCAqIEBwYXJhbSB2YWx1ZSBcclxuXHQgKi9cclxuXHR3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcclxuXHRcdHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xyXG5cdFx0dGhpcy5vblNlbGVjdGVkLmVtaXQodmFsdWUpO1xyXG5cclxuXHRcdGlmIChBcnJheS5pc0FycmF5KHRoaXMub3B0aW9ucykpIHtcclxuXHRcdFx0dGhpcy5oYW5kbGVJdGVtU2VsZWN0ZWQodGhpcy52YWx1ZSk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCF0aGlzLnZhbHVlKSB7XHJcblx0XHRcdHRoaXMuc2VsZWN0RWw/LndyaXRlVmFsdWUobnVsbCk7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBNZXRob2QgZXhlY3V0ZWQgd2hlbiBhbiBvcHRpb24gY2hhbmdlc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBoYW5kbGVDaGFuZ2UoJGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuXHRcdHRoaXMub25WYWx1ZUNoYW5nZS5lbWl0KCRldmVudCk7XHJcblx0XHR0aGlzLmhhbmRsZUl0ZW1DaGFuZ2UoJGV2ZW50LnZhbHVlKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEhhbmRsZXMgaXRlbSBjaGFuZ2VzXHJcblx0ICogQHBhcmFtIHZhbHVlIFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBoYW5kbGVJdGVtU2VsZWN0ZWQodmFsdWU6IGFueSk6IHZvaWQge1xyXG5cdFx0aWYgKHRoaXMubXVsdGlwbGUpIHtcclxuXHRcdFx0dGhpcy5vbkl0ZW1TZWxlY3RlZC5lbWl0KHRoaXMub3B0aW9ucy5maWx0ZXIoKHg6IGFueSkgPT4gKHZhbHVlIHx8IFtdKS5pbmNsdWRlcyh4W3RoaXMua2V5XSkpKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMub25JdGVtU2VsZWN0ZWQuZW1pdCh0aGlzLm9wdGlvbnMuZmlsdGVyKCh4OiBhbnkpID0+IHhbdGhpcy5rZXldID09IHZhbHVlKVswXSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBIYW5kbGVzIGl0ZW0gY2hhbmdlc1xyXG5cdCAqIEBwYXJhbSB2YWx1ZSBcclxuXHQgKi9cclxuXHRwdWJsaWMgaGFuZGxlSXRlbUNoYW5nZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcblx0XHRpZiAodGhpcy5tdWx0aXBsZSkge1xyXG5cdFx0XHR0aGlzLm9uSXRlbUNoYW5nZS5lbWl0KHRoaXMub3B0aW9ucy5maWx0ZXIoKHg6IGFueSkgPT4gKHZhbHVlIHx8IFtdKS5pbmNsdWRlcyh4W3RoaXMua2V5XSkpKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMub25JdGVtQ2hhbmdlLmVtaXQodGhpcy5vcHRpb25zLmZpbHRlcigoeDogYW55KSA9PiB4W3RoaXMua2V5XSA9PSB2YWx1ZSlbMF0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogSGFuZGxlcyBsYXVuY2ggYnV0dG9uIGNsaWNrXHJcblx0ICogQHBhcmFtIHZhbHVlIFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBoYW5kbGVMYXVuY2hDbGlja2VkKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuXHRcdGlmICh0aGlzLm11bHRpcGxlKSB7XHJcblx0XHRcdHRoaXMub25MYXVuY2guZW1pdCh0aGlzLm9wdGlvbnMuZmlsdGVyKCh4OiBhbnkpID0+ICh2YWx1ZSB8fCBbXSkuaW5jbHVkZXMoeFt0aGlzLmtleV0pKSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLm9uTGF1bmNoLmVtaXQodGhpcy5vcHRpb25zLmZpbHRlcigoeDogYW55KSA9PiB4W3RoaXMua2V5XSA9PSB2YWx1ZSlbMF0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogSGFuZGVscyBmaWx0ZXIgZXZlbnRcclxuXHQgKiBAcGFyYW0gJGV2ZW50IFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBoYW5kbGVGaWx0ZXIoJGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG5cdFx0bGV0IHNlYXJjaFRleHQ6IHN0cmluZyA9ICgkZXZlbnQ/LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KT8udmFsdWUgPz8gJyc7XHJcblx0XHRpZiAodGhpcy5zZWFyY2hGaWVsZCkge1xyXG5cdFx0XHR0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHRoaXMub3B0aW9ucy5maWx0ZXIoKHg6IGFueSkgPT4gdGhpcy5zZWFyY2hGaWVsZCh4KT8udG9Mb3dlckNhc2UoKS5zZWFyY2goc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKSA+IC0xKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5vcHRpb25zLmZpbHRlcigoeDogYW55KSA9PiB4W3RoaXMudGV4dF0/LnRvTG93ZXJDYXNlKCkuc2VhcmNoKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSkgPiAtMSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBHZXRzIHRoZSB2YWx1ZXMgb2YgdGhlIHNlbGVjdGVkIG9wdGlvbnMgZm9yIHRoZSB0cmlnZ2VyXHJcblx0ICogQHBhcmFtIG9wdGlvbnMgXHJcblx0ICogQHJldHVybnMgXHJcblx0ICovXHJcblx0cHVibGljIGdldFRyaWdnZXJWYWx1ZXMob3B0aW9uczogTWF0T3B0aW9uIHwgTWF0T3B0aW9uW10pOiBhbnkge1xyXG5cdFx0aWYgKEFycmF5LmlzQXJyYXkob3B0aW9ucykpIHtcclxuXHRcdFx0cmV0dXJuIChvcHRpb25zIHx8IFtdKT8ubWFwKHggPT4geC52YWx1ZSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRyZXR1cm4gb3B0aW9ucz8udmFsdWU7XHJcblx0XHR9XHJcblx0fVxyXG59IiwiPG1hdC1zZWxlY3QgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgaTE4bi1wbGFjZWhvbGRlciBbKG5nTW9kZWwpXT1cInZhbHVlXCIgI3NlbGVjdD1cIm1hdFNlbGVjdFwiIChzZWxlY3Rpb25DaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKCRldmVudClcIiAqbmdJZj1cIiFyZWFkb25seVwiIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiIFtjb21wYXJlV2l0aF09XCJjb21wYXJlV2l0aFwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIGZsZXg+XHJcbiAgICA8IS0tICNyZWdpb24gRmlsdGVyIGlucHV0IC0tPlxyXG4gICAgPGRpdiAqbmdJZj1cImZpbHRlcmFibGVcIiBjbGFzcz1cInZkLXNlbGVjdC1maWx0ZXItd3JhcFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2ZC1zZWxlY3QtZmlsdGVyLWlubmVyXCI+XHJcbiAgICAgICAgICAgIDxhIG1hdC1pY29uLWJ1dHRvbiBkaXNhYmxlZCAqbmdJZj1cIiFmaWx0ZXJJbnB1dC52YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1pY29uPnNlYXJjaDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPGEgbWF0LWljb24tYnV0dG9uICpuZ0lmPVwiZmlsdGVySW5wdXQudmFsdWVcIiAoY2xpY2spPVwiZmlsdGVySW5wdXQudmFsdWUgPSBudWxsOyBoYW5kbGVGaWx0ZXIobnVsbClcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPGlucHV0ICNmaWx0ZXJJbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiRmlsdGVyLi4uXCIgY2xhc3M9XCJ2ZC1zZWxlY3QtZmlsdGVyIG1hdC1pbnB1dC1lbGVtZW50XCIgKGtleXVwKT1cImhhbmRsZUZpbHRlcigkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1hdC1kaXZpZGVyXCI+PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcbiAgICA8IS0tICNyZWdpb24gVHJpZ2dlciBmb3IgbGF1bmNoIGJ1dHRvbiAtLT5cclxuICAgIDxtYXQtc2VsZWN0LXRyaWdnZXIgKm5nSWY9XCJvbkxhdW5jaD8ub2JzZXJ2ZXJzPy5sZW5ndGggPiAwXCIgW2NsYXNzXT1cInRyaWdnZXJDc3NDbGFzc1wiPlxyXG4gICAgICAgIDxzcGFuPnt7Z2V0VHJpZ2dlclZhbHVlcyhzZWxlY3Quc2VsZWN0ZWQpfX08L3NwYW4+XHJcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwidmQtc2VsZWN0LWxhdW5jaFwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IGhhbmRsZUxhdW5jaENsaWNrZWQodmFsdWUpXCI+bGF1bmNoPC9tYXQtaWNvbj5cclxuICAgIDwvbWF0LXNlbGVjdC10cmlnZ2VyPlxyXG4gICAgPCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuICAgIDwhLS0gI3JlZ2lvbiBDdXN0b20gdHJpZ2dlciB0ZW1wbGF0ZSAtLT5cclxuICAgIDxtYXQtc2VsZWN0LXRyaWdnZXIgKm5nSWY9XCIhb25MYXVuY2g/Lm9ic2VydmVycz8ubGVuZ3RoICYmIHRyaWdnZXJUZW1wbGF0ZT8udGVtcGxhdGVSZWZcIiBbY2xhc3NdPVwidHJpZ2dlckNzc0NsYXNzXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwidHJpZ2dlclRlbXBsYXRlPy50ZW1wbGF0ZVJlZlwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRyaWdnZXJUZW1wbGF0ZT8udGVtcGxhdGVSZWZcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyB0cmlnZ2VyOiBnZXRUcmlnZ2VyVmFsdWVzKHNlbGVjdC5zZWxlY3RlZCkgfVwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICA8L21hdC1zZWxlY3QtdHJpZ2dlcj5cclxuICAgIDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcbiAgICA8IS0tICNyZWdpb24gT3B0aW9uIHRlbXBsYXRlIGFzIHRyaWdnZXIgLS0+XHJcbiAgICA8bWF0LXNlbGVjdC10cmlnZ2VyICpuZ0lmPVwiIW9uTGF1bmNoPy5vYnNlcnZlcnM/Lmxlbmd0aCAmJiAhdHJpZ2dlclRlbXBsYXRlPy50ZW1wbGF0ZVJlZiAmJiBvcHRpb25UZW1wbGF0ZT8udGVtcGxhdGVSZWZcIiBbY2xhc3NdPVwidHJpZ2dlckNzc0NsYXNzXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwib3B0aW9uVGVtcGxhdGU/LnRlbXBsYXRlUmVmXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwib3B0aW9uVGVtcGxhdGU/LnRlbXBsYXRlUmVmXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgdHJpZ2dlcjogZ2V0VHJpZ2dlclZhbHVlcyhzZWxlY3Quc2VsZWN0ZWQpIH1cIj48L25nLXRlbXBsYXRlPlxyXG4gICAgPC9tYXQtc2VsZWN0LXRyaWdnZXI+XHJcbiAgICA8IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG4gICAgPCEtLSAjcmVnaW9uIERlZmF1bHQgb3B0aW9uIC0tPlxyXG4gICAgPG1hdC1vcHRpb24gY2xhc3M9XCJ0Yy1ncmV5LTUwMFwiICpuZ0lmPVwiIW11bHRpcGxlXCIgaTE4bj1cIkBAcGxlYXNlU2VsZWN0XCI+LS0tIFBsZWFzZSBTZWxlY3QgLS0tPC9tYXQtb3B0aW9uPlxyXG4gICAgPCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuICAgIDwhLS0gI3JlZ2lvbiBPcHRpb25zIC0tPlxyXG4gICAgPG5nLXRlbXBsYXRlIGxldC1vcHRpb24gbGV0LWZpcnN0PVwiZmlyc3RcIiBuZ0ZvciBbbmdGb3JPZl09XCJmaWx0ZXJlZE9wdGlvbnNcIj5cclxuICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwibWFwcGVyID8gb3B0aW9uIDogb3B0aW9uW2tleV1cIj5cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhb3B0aW9uVGVtcGxhdGU/LnRlbXBsYXRlUmVmXCIgaTE4bj1cIkBAc2VsZWN0aW9uXCI+e29wdGlvblt0ZXh0XSwgc2VsZWN0LCBvcHRpb24ge29wdGlvbn0gb3RoZXIge3t7b3B0aW9uW3RleHRdfX19fTwvc3Bhbj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwib3B0aW9uVGVtcGxhdGU/LnRlbXBsYXRlUmVmXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwib3B0aW9uVGVtcGxhdGU/LnRlbXBsYXRlUmVmXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgb3B0aW9uOiBvcHRpb24gfVwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuPC9tYXQtc2VsZWN0PlxyXG5cclxuPCEtLSAjcmVnaW9uIFJlYWQgb25seSB2YWx1ZSAtLT5cclxuPGRpdiAqbmdJZj1cInJlYWRvbmx5XCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiY3VycmVudFZhbHVlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJlYWRvbmx5LXZhbHVlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIW9wdGlvblRlbXBsYXRlPy50ZW1wbGF0ZVJlZiAmJiAhdHJpZ2dlclRlbXBsYXRlPy50ZW1wbGF0ZVJlZlwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhbXVsdGlwbGVcIiBpMThuPVwiQEBzZWxlY3Rpb25cIj57Y3VycmVudFZhbHVlW3RleHRdLCBzZWxlY3QsIG9wdGlvbiB7b3B0aW9ufSBvdGhlciB7e3tjdXJyZW50VmFsdWVbdGV4dF19fX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm11bHRpcGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IG9wdGlvblZhbHVlIG9mIGN1cnJlbnRWYWx1ZTsgbGV0IGxhc3QgPSBsYXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGkxOG49XCJAQHNlbGVjdGlvblwiPntvcHRpb25WYWx1ZVt0ZXh0XSwgc2VsZWN0LCBvcHRpb24ge29wdGlvbn0gb3RoZXIge3t7b3B0aW9uVmFsdWVbdGV4dF19fX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFsYXN0XCI+LCZuYnNwOzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJ0cmlnZ2VyVGVtcGxhdGU/LnRlbXBsYXRlUmVmXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwidHJpZ2dlclRlbXBsYXRlPy50ZW1wbGF0ZVJlZlwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHRyaWdnZXI6IGN1cnJlbnRWYWx1ZSB9XCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwib3B0aW9uVGVtcGxhdGU/LnRlbXBsYXRlUmVmICYmICF0cmlnZ2VyVGVtcGxhdGU/LnRlbXBsYXRlUmVmXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwib3B0aW9uVGVtcGxhdGU/LnRlbXBsYXRlUmVmXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgb3B0aW9uOiBjdXJyZW50VmFsdWUgfVwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwib25MYXVuY2g/Lm9ic2VydmVycz8ubGVuZ3RoID4gMFwiIGNsYXNzPVwidmQtc2VsZWN0LWxhdW5jaC1yZWFkb25seVwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IGhhbmRsZUxhdW5jaENsaWNrZWQodmFsdWUpXCI+bGF1bmNoPC9tYXQtaWNvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cIiFjdXJyZW50VmFsdWVcIj4mbmJzcDs8L2Rpdj5cclxuPC9kaXY+XHJcbjwhLS0gI2VuZHJlZ2lvbiAtLT4iXX0=
|
|
@@ -14,9 +14,9 @@ export class VdSelectOptionDirective extends CdkPortal {
|
|
|
14
14
|
super(templateRef, viewContainerRef);
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
|
-
/** @nocollapse */ VdSelectOptionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
18
|
-
/** @nocollapse */ VdSelectOptionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
17
|
+
/** @nocollapse */ VdSelectOptionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: VdSelectOptionDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
18
|
+
/** @nocollapse */ VdSelectOptionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.1", type: VdSelectOptionDirective, selector: "[vd-select-option]ng-template", usesInheritance: true, ngImport: i0 });
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: VdSelectOptionDirective, decorators: [{
|
|
20
20
|
type: Directive,
|
|
21
21
|
args: [{ selector: '[vd-select-option]ng-template' }]
|
|
22
22
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });
|
|
@@ -14,9 +14,9 @@ export class VdSelectTriggerDirective extends CdkPortal {
|
|
|
14
14
|
super(templateRef, viewContainerRef);
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
|
-
/** @nocollapse */ VdSelectTriggerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
18
|
-
/** @nocollapse */ VdSelectTriggerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
17
|
+
/** @nocollapse */ VdSelectTriggerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: VdSelectTriggerDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
18
|
+
/** @nocollapse */ VdSelectTriggerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.1", type: VdSelectTriggerDirective, selector: "[vd-select-trigger]ng-template", usesInheritance: true, ngImport: i0 });
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: VdSelectTriggerDirective, decorators: [{
|
|
20
20
|
type: Directive,
|
|
21
21
|
args: [{ selector: '[vd-select-trigger]ng-template' }]
|
|
22
22
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });
|
|
@@ -16,8 +16,8 @@ const EXPORTED_DECLARATIONS = [
|
|
|
16
16
|
];
|
|
17
17
|
export class VdSelectModule {
|
|
18
18
|
}
|
|
19
|
-
/** @nocollapse */ VdSelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
20
|
-
/** @nocollapse */ VdSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
19
|
+
/** @nocollapse */ VdSelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: VdSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
20
|
+
/** @nocollapse */ VdSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.1", ngImport: i0, type: VdSelectModule, declarations: [VdSelectComponent,
|
|
21
21
|
VdSelectOptionDirective,
|
|
22
22
|
VdSelectTriggerDirective], imports: [CommonModule,
|
|
23
23
|
FormsModule,
|
|
@@ -26,12 +26,12 @@ export class VdSelectModule {
|
|
|
26
26
|
MatButtonModule], exports: [VdSelectComponent,
|
|
27
27
|
VdSelectOptionDirective,
|
|
28
28
|
VdSelectTriggerDirective] });
|
|
29
|
-
/** @nocollapse */ VdSelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
29
|
+
/** @nocollapse */ VdSelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: VdSelectModule, imports: [CommonModule,
|
|
30
30
|
FormsModule,
|
|
31
31
|
MatSelectModule,
|
|
32
32
|
MatIconModule,
|
|
33
33
|
MatButtonModule] });
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: VdSelectModule, decorators: [{
|
|
35
35
|
type: NgModule,
|
|
36
36
|
args: [{
|
|
37
37
|
imports: [
|