@messaia/cdk 18.2.3 → 19.0.0-rc01
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/messaia-cdk.mjs +1147 -932
- package/fesm2022/messaia-cdk.mjs.map +1 -1
- package/lib/base/components/base.component.d.ts +1 -1
- package/lib/base/components/generic-embedded-list.component.d.ts +1 -1
- package/lib/base/components/generic-form-base.component.d.ts +1 -1
- package/lib/base/components/generic-form.component.d.ts +1 -1
- package/lib/base/components/generic-list.component.d.ts +7 -3
- package/lib/base/components/generic-reactive-form.component.d.ts +1 -1
- package/lib/base/helpers/auth-helper.d.ts +1 -1
- package/lib/chips/components/chips.component.d.ts +5 -16
- package/lib/common/functions/utils.d.ts +1 -1
- package/lib/common/helpers/app-storage.d.ts +1 -1
- package/lib/common/styles/_layout.scss +1 -1
- package/lib/common/styles/_variables.scss +4 -25
- package/lib/common/styles/colors/_colors-dark.scss +2 -0
- package/lib/common/styles/colors/_colors.scss +4 -4
- package/lib/common/styles/core/_button.scss +7 -21
- package/lib/common/styles/core/_card.scss +13 -97
- package/lib/common/styles/core/_core.scss +8 -21
- package/lib/common/styles/core/_sidenav.scss +9 -7
- package/lib/common/styles/core/_structure.scss +4 -11
- package/lib/common/styles/font/_font.scss +5 -13
- package/lib/common/styles/m2/_common-theme.scss +10 -10
- package/lib/common/styles/m3/_common-theme.scss +27 -10
- package/lib/common/styles/platform.scss +10 -8
- package/lib/common/styles/utilities/_general.scss +55 -51
- package/lib/common/styles/utilities/_pull.scss +23 -30
- package/lib/common/styles/utilities/_push.scss +23 -30
- package/lib/common/styles/utilities/_size.scss +3 -3
- package/lib/common/styles/utilities/_utilities.scss +14 -14
- package/lib/common/theming/_m2-all-theme.scss +4 -11
- package/lib/common/theming/_m3-all-theme.scss +18 -0
- package/lib/form-validators/directives/base-directive.d.ts +1 -1
- package/lib/form-validators/directives/template-validations/base-validator.directive.d.ts +1 -1
- package/lib/form-validators/directives/template-validations/control-expression-process.d.ts +1 -1
- package/lib/form-validators/services/rx-form-array.d.ts +2 -2
- package/lib/form-validators/util/reset-form.d.ts +3 -3
- package/lib/forms/directives/mat-form-field-editor.directive.d.ts +31 -28
- package/lib/forms/helpers/abstract-mat-form-field.d.ts +147 -91
- package/lib/forms/helpers/abstract-select-form-field.component.d.ts +144 -67
- package/lib/forms/helpers/value-accessor-base.d.ts +1 -1
- package/lib/layout/_m2-layout-theme.scss +14 -50
- package/lib/layout/layout-toggle.class.d.ts +1 -1
- package/lib/list/components/list.component.d.ts +3 -15
- package/lib/select/components/select.component.d.ts +3 -16
- package/lib/table/components/filter-select/filter-select.component.d.ts +2 -3
- package/package.json +3 -5
- package/esm2022/lib/base/base.module.mjs +0 -114
- package/esm2022/lib/base/components/base.component.mjs +0 -904
- package/esm2022/lib/base/components/dynamic-table-config-dialog/dynamic-table-config-dialog.comnponent.mjs +0 -123
- package/esm2022/lib/base/components/generic-embedded-list.component.mjs +0 -197
- package/esm2022/lib/base/components/generic-form-base.component.mjs +0 -891
- package/esm2022/lib/base/components/generic-form.component.mjs +0 -44
- package/esm2022/lib/base/components/generic-list.component.mjs +0 -966
- package/esm2022/lib/base/components/generic-reactive-form.component.mjs +0 -101
- package/esm2022/lib/base/components/task-dialog/task-dialog.component.mjs +0 -147
- package/esm2022/lib/base/constants/common.mjs +0 -92
- package/esm2022/lib/base/constants/global-roles.mjs +0 -9
- package/esm2022/lib/base/enums/message-type.mjs +0 -7
- package/esm2022/lib/base/helpers/auth-helper.mjs +0 -53
- package/esm2022/lib/base/interceptors/base.interceptor.mjs +0 -168
- package/esm2022/lib/base/interceptors/caching-interceptor.mjs +0 -67
- package/esm2022/lib/base/interceptors/loading.interceptor.mjs +0 -64
- package/esm2022/lib/base/interfaces/ibase-component.mjs +0 -2
- package/esm2022/lib/base/interfaces/igeneric-form-base.mjs +0 -2
- package/esm2022/lib/base/interfaces/igeneric-list-component.mjs +0 -2
- package/esm2022/lib/base/interfaces/igeneric-reactive-form-base.mjs +0 -2
- package/esm2022/lib/base/models/auth-user.mjs +0 -18
- package/esm2022/lib/base/models/task-dialog-data.mjs +0 -85
- package/esm2022/lib/base/public_api.mjs +0 -2
- package/esm2022/lib/base/services/file.service.mjs +0 -18
- package/esm2022/lib/base/services/loading-screen.service.mjs +0 -45
- package/esm2022/lib/base/services/print.service.mjs +0 -41
- package/esm2022/lib/chips/chips.module.mjs +0 -77
- package/esm2022/lib/chips/components/chips.component.mjs +0 -702
- package/esm2022/lib/chips/directives/autocomplete-option.directive.mjs +0 -18
- package/esm2022/lib/chips/directives/chip.directive.mjs +0 -18
- package/esm2022/lib/chips/public_api.mjs +0 -3
- package/esm2022/lib/common/animations/collapse/collapse.animation.mjs +0 -33
- package/esm2022/lib/common/animations/common/interfaces.mjs +0 -2
- package/esm2022/lib/common/behaviors/constructor.mjs +0 -2
- package/esm2022/lib/common/behaviors/control-value-accesor.mixin.mjs +0 -41
- package/esm2022/lib/common/behaviors/disabled.mixin.mjs +0 -24
- package/esm2022/lib/common/common.module.mjs +0 -176
- package/esm2022/lib/common/constants/constants.mjs +0 -3
- package/esm2022/lib/common/directives/autofocus.directive.mjs +0 -62
- package/esm2022/lib/common/directives/delayed-hover.directive.mjs +0 -133
- package/esm2022/lib/common/directives/disable-control.directive.mjs +0 -35
- package/esm2022/lib/common/enums/app-event-type.mjs +0 -6
- package/esm2022/lib/common/enums/filter-glue.mjs +0 -16
- package/esm2022/lib/common/enums/filter-operator.mjs +0 -15
- package/esm2022/lib/common/enums/salutation.mjs +0 -7
- package/esm2022/lib/common/functions/decorators.mjs +0 -22
- package/esm2022/lib/common/functions/functions.mjs +0 -22
- package/esm2022/lib/common/functions/utils.mjs +0 -271
- package/esm2022/lib/common/helpers/app-storage.mjs +0 -77
- package/esm2022/lib/common/helpers/delegate.mjs +0 -2
- package/esm2022/lib/common/helpers/dynamic-builder.mjs +0 -52
- package/esm2022/lib/common/helpers/dynamic-component-compiler.mjs +0 -11
- package/esm2022/lib/common/models/action-item.mjs +0 -77
- package/esm2022/lib/common/models/app-event.mjs +0 -21
- package/esm2022/lib/common/models/app-setting.mjs +0 -92
- package/esm2022/lib/common/models/audit-entity.mjs +0 -53
- package/esm2022/lib/common/models/audit-user.mjs +0 -24
- package/esm2022/lib/common/models/base-entity.mjs +0 -40
- package/esm2022/lib/common/models/common-error.mjs +0 -29
- package/esm2022/lib/common/models/common-handler-context.mjs +0 -45
- package/esm2022/lib/common/models/displayname-number-projection.mjs +0 -56
- package/esm2022/lib/common/models/displayname-projection.mjs +0 -38
- package/esm2022/lib/common/models/entity.mjs +0 -2
- package/esm2022/lib/common/models/enum-item.mjs +0 -2
- package/esm2022/lib/common/models/enum-metadata.mjs +0 -44
- package/esm2022/lib/common/models/filter-field.mjs +0 -2
- package/esm2022/lib/common/models/filter.mjs +0 -2
- package/esm2022/lib/common/models/icommon-handler-context.mjs +0 -2
- package/esm2022/lib/common/models/icon.mjs +0 -42
- package/esm2022/lib/common/models/key-value.mjs +0 -11
- package/esm2022/lib/common/models/modifiable-entity.mjs +0 -22
- package/esm2022/lib/common/models/name-number-projection.mjs +0 -35
- package/esm2022/lib/common/models/name-projection.mjs +0 -25
- package/esm2022/lib/common/models/permission.mjs +0 -29
- package/esm2022/lib/common/models/save-action.mjs +0 -7
- package/esm2022/lib/common/models/suffix-button.mjs +0 -15
- package/esm2022/lib/common/models/title-projection.mjs +0 -25
- package/esm2022/lib/common/pipes/bind.mjs +0 -31
- package/esm2022/lib/common/pipes/data-source.pipe.mjs +0 -15
- package/esm2022/lib/common/pipes/enum.pipe.mjs +0 -41
- package/esm2022/lib/common/pipes/file-size.pipe.mjs +0 -35
- package/esm2022/lib/common/pipes/filter.pipe.mjs +0 -54
- package/esm2022/lib/common/pipes/first-letter.mjs +0 -24
- package/esm2022/lib/common/pipes/form-array.pipe.mjs +0 -14
- package/esm2022/lib/common/pipes/form-control.pipe.mjs +0 -14
- package/esm2022/lib/common/pipes/form-group.pipe.mjs +0 -14
- package/esm2022/lib/common/pipes/func.pipe.mjs +0 -14
- package/esm2022/lib/common/pipes/join.pipe.mjs +0 -26
- package/esm2022/lib/common/pipes/keys.mjs +0 -18
- package/esm2022/lib/common/pipes/map.pipe.mjs +0 -48
- package/esm2022/lib/common/pipes/month-name.pipe.mjs +0 -25
- package/esm2022/lib/common/pipes/nested-property.mjs +0 -29
- package/esm2022/lib/common/pipes/only-number.mjs +0 -58
- package/esm2022/lib/common/pipes/order.pipe.mjs +0 -269
- package/esm2022/lib/common/pipes/placeholder.pipe.mjs +0 -26
- package/esm2022/lib/common/pipes/property-join.pipe.mjs +0 -27
- package/esm2022/lib/common/pipes/safe-html.pipe.mjs +0 -32
- package/esm2022/lib/common/pipes/split.pipe.mjs +0 -25
- package/esm2022/lib/common/pipes/time.pipe.mjs +0 -21
- package/esm2022/lib/common/pipes/titlecase.pipe.mjs +0 -14
- package/esm2022/lib/common/pipes/truncate.pipe.mjs +0 -15
- package/esm2022/lib/common/pipes/values.mjs +0 -14
- package/esm2022/lib/common/public_api.mjs +0 -41
- package/esm2022/lib/common/services/base.service.mjs +0 -19
- package/esm2022/lib/common/services/context-helper.mjs +0 -17
- package/esm2022/lib/common/services/enum.service.mjs +0 -81
- package/esm2022/lib/common/services/event-queue.service.mjs +0 -31
- package/esm2022/lib/common/services/service-locator.mjs +0 -25
- package/esm2022/lib/common/templates/templates.mjs +0 -87
- package/esm2022/lib/dialogs/alert-dialog/alert-dialog.component.mjs +0 -46
- package/esm2022/lib/dialogs/confirm-dialog/confirm-dialog.component.mjs +0 -60
- package/esm2022/lib/dialogs/dialog.component.mjs +0 -59
- package/esm2022/lib/dialogs/dialogs.module.mjs +0 -72
- package/esm2022/lib/dialogs/prompt-dialog/prompt-dialog.component.mjs +0 -44
- package/esm2022/lib/dialogs/public_api.mjs +0 -2
- package/esm2022/lib/dialogs/services/dialog.service.mjs +0 -154
- package/esm2022/lib/file/file-input.component.mjs +0 -334
- package/esm2022/lib/file/file.module.mjs +0 -37
- package/esm2022/lib/file/public_api.mjs +0 -2
- package/esm2022/lib/form-validators/abstract/typed-form.mjs +0 -13
- package/esm2022/lib/form-validators/algorithm/luhn-algorithm.mjs +0 -33
- package/esm2022/lib/form-validators/const/app-validators.const.mjs +0 -68
- package/esm2022/lib/form-validators/const/app.const.mjs +0 -65
- package/esm2022/lib/form-validators/const/config-names.const.mjs +0 -33
- package/esm2022/lib/form-validators/const/config-required-fields.const.mjs +0 -35
- package/esm2022/lib/form-validators/const/decorators.const.mjs +0 -23
- package/esm2022/lib/form-validators/const/events.const.mjs +0 -53
- package/esm2022/lib/form-validators/const/html-elements.const.mjs +0 -25
- package/esm2022/lib/form-validators/const/iban-country-wise-regex.const.mjs +0 -80
- package/esm2022/lib/form-validators/const/index.mjs +0 -6
- package/esm2022/lib/form-validators/const/operators.const.mjs +0 -7
- package/esm2022/lib/form-validators/const/validation-alphabet-locale.const.mjs +0 -9
- package/esm2022/lib/form-validators/const/validator.const.mjs +0 -29
- package/esm2022/lib/form-validators/core/annotation-types.mjs +0 -75
- package/esm2022/lib/form-validators/core/default-container.mjs +0 -500
- package/esm2022/lib/form-validators/decorators/allOf.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/alpha.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/alphaNumeric.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/and.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/ascii.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/async.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/base-decorator.function.mjs +0 -7
- package/esm2022/lib/form-validators/decorators/choice.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/compare.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/compose.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/contains.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/credit-card.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/cusip.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/custom.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/dataUri.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/date.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/different.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/digit.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/email.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/endsWith.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/even.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/extension.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/factor.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/file.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/fileSize.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/greater-than-equal-to.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/greater-than.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/grid.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/hexColor.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/image.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/index.mjs +0 -93
- package/esm2022/lib/form-validators/decorators/json.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/latLong.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/latitude.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/leapYear.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/less-than-equal-to.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/less-than.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/longitude.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/lowercase.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/mac.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/mask.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/maxDate.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/maxLength.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/maxNumber.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/maxTime.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/minDate.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/minLength.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/minNumber.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/minTime.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/model.decorator.mjs +0 -7
- package/esm2022/lib/form-validators/decorators/non-validation-decorators/disable.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/non-validation-decorators/elementClass.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/non-validation-decorators/error.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/non-validation-decorators/update-on.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/noneOf.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/not.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/notEmpty.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/numeric.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/odd.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/oneOf.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/or.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/password.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/pattern.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/port.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/primeNumber.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/prop-array.decorator.mjs +0 -18
- package/esm2022/lib/form-validators/decorators/prop-object.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/prop.decorator.mjs +0 -18
- package/esm2022/lib/form-validators/decorators/range.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/required.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/requiredTrue.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/rule.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/sanitize/blacklist.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/sanitize/escape.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/sanitize/ltrim.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/sanitize/prefix.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/sanitize/rtrim.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/sanitize/sanitize.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/sanitize/stripLow.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/sanitize/suffix.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/sanitize/toBoolean.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/sanitize/toDate.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/sanitize/toDouble.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/sanitize/toFloat.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/sanitize/toInt.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/sanitize/toString.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/sanitize/trim.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/sanitize/whitelist.decorator.mjs +0 -8
- package/esm2022/lib/form-validators/decorators/startsWith.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/time.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/decorators/unique.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/uppercase.decorator.mjs +0 -6
- package/esm2022/lib/form-validators/decorators/url.decorator.mjs +0 -10
- package/esm2022/lib/form-validators/directives/base-directive.mjs +0 -75
- package/esm2022/lib/form-validators/directives/control-host.directive.mjs +0 -55
- package/esm2022/lib/form-validators/directives/html-control-template.directive.mjs +0 -36
- package/esm2022/lib/form-validators/directives/rx-form.directive.mjs +0 -234
- package/esm2022/lib/form-validators/directives/template-validations/async-validation.directive.mjs +0 -40
- package/esm2022/lib/form-validators/directives/template-validations/base-validator.directive.mjs +0 -76
- package/esm2022/lib/form-validators/directives/template-validations/control-expression-process.mjs +0 -60
- package/esm2022/lib/form-validators/directives/template-validations/file-control.directive.mjs +0 -122
- package/esm2022/lib/form-validators/directives/template-validations/image-file-control.directive.mjs +0 -74
- package/esm2022/lib/form-validators/directives/template-validations/rxformcontrol.directive.mjs +0 -394
- package/esm2022/lib/form-validators/domain/disable-provider.mjs +0 -198
- package/esm2022/lib/form-validators/domain/element-processor/decimal.provider.mjs +0 -134
- package/esm2022/lib/form-validators/domain/element-processor/mask.provider.mjs +0 -453
- package/esm2022/lib/form-validators/domain/form-data.mjs +0 -93
- package/esm2022/lib/form-validators/enums/error-message-binding-strategy.mjs +0 -11
- package/esm2022/lib/form-validators/enums/index.mjs +0 -5
- package/esm2022/lib/form-validators/enums/ip-version.mjs +0 -7
- package/esm2022/lib/form-validators/enums/numeric-value-type.mjs +0 -7
- package/esm2022/lib/form-validators/enums/reset-type.mjs +0 -10
- package/esm2022/lib/form-validators/enums/url-validation-type.mjs +0 -7
- package/esm2022/lib/form-validators/models/config/alpha-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/array-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/base-config-fn.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/base-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/base-date-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/choice-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/compare-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/component-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/compose-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/contains-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/credit-card-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/custom-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/date-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/default-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/digit-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/disable-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/element-class-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/email-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/error-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/extension-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/factor-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/field-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/file-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/hex-color-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/iban-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/image-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/index.mjs +0 -35
- package/esm2022/lib/form-validators/models/config/ip-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/logical-operator-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/mask-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/max-date-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/message-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/min-date-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/model-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/number-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/numeric-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/password-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/pattern-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/prop-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/props-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/range-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/relational-operator-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/required-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/rule-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/sanitize-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/size-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/string-comparison-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/string-value-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/time-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/todate-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/unique-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/update-on-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/config/url-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/control-info.mjs +0 -2
- package/esm2022/lib/form-validators/models/data-sanitizer.mjs +0 -2
- package/esm2022/lib/form-validators/models/decorator-configuration.mjs +0 -2
- package/esm2022/lib/form-validators/models/form-builder-configuration.mjs +0 -58
- package/esm2022/lib/form-validators/models/index.mjs +0 -3
- package/esm2022/lib/form-validators/models/instance-container.mjs +0 -2
- package/esm2022/lib/form-validators/models/interface/array-prop-instance-config.interface.mjs +0 -2
- package/esm2022/lib/form-validators/models/interface/auto-instance-config.interface.mjs +0 -2
- package/esm2022/lib/form-validators/models/interface/form-data-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/interface/i-abstract-control.mjs +0 -30
- package/esm2022/lib/form-validators/models/interface/i-form-group.mjs +0 -2
- package/esm2022/lib/form-validators/models/interface/instance-argument.interface.mjs +0 -2
- package/esm2022/lib/form-validators/models/interface/object-prop-instance-config.interface.mjs +0 -2
- package/esm2022/lib/form-validators/models/interface/options.mjs +0 -2
- package/esm2022/lib/form-validators/models/password-validation.model.mjs +0 -2
- package/esm2022/lib/form-validators/models/prop-validation-config.mjs +0 -2
- package/esm2022/lib/form-validators/models/property-info.mjs +0 -2
- package/esm2022/lib/form-validators/public_api.mjs +0 -26
- package/esm2022/lib/form-validators/reactive-form-validators/allOf.validator.mjs +0 -33
- package/esm2022/lib/form-validators/reactive-form-validators/alpha.validator.mjs +0 -15
- package/esm2022/lib/form-validators/reactive-form-validators/alphaNumeric.validator.mjs +0 -15
- package/esm2022/lib/form-validators/reactive-form-validators/and.validator.mjs +0 -38
- package/esm2022/lib/form-validators/reactive-form-validators/ascii.validator.mjs +0 -15
- package/esm2022/lib/form-validators/reactive-form-validators/async/base.async.validator.mjs +0 -45
- package/esm2022/lib/form-validators/reactive-form-validators/choice.validator.mjs +0 -31
- package/esm2022/lib/form-validators/reactive-form-validators/compare.validator.mjs +0 -32
- package/esm2022/lib/form-validators/reactive-form-validators/compose.validator.mjs +0 -34
- package/esm2022/lib/form-validators/reactive-form-validators/conditional-change.validator.mjs +0 -63
- package/esm2022/lib/form-validators/reactive-form-validators/contains.validator.mjs +0 -22
- package/esm2022/lib/form-validators/reactive-form-validators/credit-card.validator.mjs +0 -48
- package/esm2022/lib/form-validators/reactive-form-validators/cusip.validator.mjs +0 -38
- package/esm2022/lib/form-validators/reactive-form-validators/custom.validator.mjs +0 -25
- package/esm2022/lib/form-validators/reactive-form-validators/dataUri.validator.mjs +0 -9
- package/esm2022/lib/form-validators/reactive-form-validators/date.validator.mjs +0 -8
- package/esm2022/lib/form-validators/reactive-form-validators/different.validator.mjs +0 -19
- package/esm2022/lib/form-validators/reactive-form-validators/digit.validator.mjs +0 -9
- package/esm2022/lib/form-validators/reactive-form-validators/email.validator.mjs +0 -9
- package/esm2022/lib/form-validators/reactive-form-validators/endsWith.validator.mjs +0 -23
- package/esm2022/lib/form-validators/reactive-form-validators/even.validator.mjs +0 -15
- package/esm2022/lib/form-validators/reactive-form-validators/extension.validator.mjs +0 -40
- package/esm2022/lib/form-validators/reactive-form-validators/factor.validator.mjs +0 -37
- package/esm2022/lib/form-validators/reactive-form-validators/file.validator.mjs +0 -26
- package/esm2022/lib/form-validators/reactive-form-validators/fileSize.validator.mjs +0 -34
- package/esm2022/lib/form-validators/reactive-form-validators/greater-than-equal-to.validator.mjs +0 -8
- package/esm2022/lib/form-validators/reactive-form-validators/greater-than.validator.mjs +0 -8
- package/esm2022/lib/form-validators/reactive-form-validators/grid.validator.mjs +0 -31
- package/esm2022/lib/form-validators/reactive-form-validators/hexcolor.validator.mjs +0 -9
- package/esm2022/lib/form-validators/reactive-form-validators/iban.validator.mjs +0 -28
- package/esm2022/lib/form-validators/reactive-form-validators/image.validator.mjs +0 -52
- package/esm2022/lib/form-validators/reactive-form-validators/index.mjs +0 -66
- package/esm2022/lib/form-validators/reactive-form-validators/ip.validator.mjs +0 -28
- package/esm2022/lib/form-validators/reactive-form-validators/json.validator.mjs +0 -26
- package/esm2022/lib/form-validators/reactive-form-validators/latLong.validator.mjs +0 -18
- package/esm2022/lib/form-validators/reactive-form-validators/latitude.validator.mjs +0 -9
- package/esm2022/lib/form-validators/reactive-form-validators/leapYear.validator.mjs +0 -16
- package/esm2022/lib/form-validators/reactive-form-validators/less-than-equal-to.validator.mjs +0 -8
- package/esm2022/lib/form-validators/reactive-form-validators/less-than.validator.mjs +0 -8
- package/esm2022/lib/form-validators/reactive-form-validators/longitude.validator.mjs +0 -9
- package/esm2022/lib/form-validators/reactive-form-validators/lowercase.validator.mjs +0 -15
- package/esm2022/lib/form-validators/reactive-form-validators/mac.validator.mjs +0 -9
- package/esm2022/lib/form-validators/reactive-form-validators/mask.validator.mjs +0 -14
- package/esm2022/lib/form-validators/reactive-form-validators/maxDate.validator.mjs +0 -8
- package/esm2022/lib/form-validators/reactive-form-validators/maxLength.validator.mjs +0 -17
- package/esm2022/lib/form-validators/reactive-form-validators/maxNumber.validator.mjs +0 -17
- package/esm2022/lib/form-validators/reactive-form-validators/maxTime.validator.mjs +0 -8
- package/esm2022/lib/form-validators/reactive-form-validators/minDate.validator.mjs +0 -8
- package/esm2022/lib/form-validators/reactive-form-validators/minLength.validator.mjs +0 -16
- package/esm2022/lib/form-validators/reactive-form-validators/minNumber.validator.mjs +0 -16
- package/esm2022/lib/form-validators/reactive-form-validators/minTime.validator.mjs +0 -8
- package/esm2022/lib/form-validators/reactive-form-validators/noneOf.validator.mjs +0 -24
- package/esm2022/lib/form-validators/reactive-form-validators/not.validator.mjs +0 -25
- package/esm2022/lib/form-validators/reactive-form-validators/notEmpty.validator.mjs +0 -17
- package/esm2022/lib/form-validators/reactive-form-validators/numeric.validator.mjs +0 -22
- package/esm2022/lib/form-validators/reactive-form-validators/odd.validator.mjs +0 -17
- package/esm2022/lib/form-validators/reactive-form-validators/oneOf.validator.mjs +0 -26
- package/esm2022/lib/form-validators/reactive-form-validators/or.validator.mjs +0 -25
- package/esm2022/lib/form-validators/reactive-form-validators/password.validator.mjs +0 -35
- package/esm2022/lib/form-validators/reactive-form-validators/pattern.validator.mjs +0 -19
- package/esm2022/lib/form-validators/reactive-form-validators/port.validator.mjs +0 -19
- package/esm2022/lib/form-validators/reactive-form-validators/primeNumber.validator.mjs +0 -27
- package/esm2022/lib/form-validators/reactive-form-validators/range.validator.mjs +0 -17
- package/esm2022/lib/form-validators/reactive-form-validators/required.validator.mjs +0 -17
- package/esm2022/lib/form-validators/reactive-form-validators/requiredTrue.validator.mjs +0 -16
- package/esm2022/lib/form-validators/reactive-form-validators/rule.validator.mjs +0 -22
- package/esm2022/lib/form-validators/reactive-form-validators/startsWith.validator.mjs +0 -25
- package/esm2022/lib/form-validators/reactive-form-validators/time.validator.mjs +0 -19
- package/esm2022/lib/form-validators/reactive-form-validators/unique.validator.mjs +0 -77
- package/esm2022/lib/form-validators/reactive-form-validators/uppercase.validator.mjs +0 -16
- package/esm2022/lib/form-validators/reactive-form-validators/url.validator.mjs +0 -28
- package/esm2022/lib/form-validators/services/base-form-builder.mjs +0 -220
- package/esm2022/lib/form-validators/services/entity.service.mjs +0 -76
- package/esm2022/lib/form-validators/services/form-control.mjs +0 -370
- package/esm2022/lib/form-validators/services/form-group.mjs +0 -2
- package/esm2022/lib/form-validators/services/reactive-form.module.mjs +0 -52
- package/esm2022/lib/form-validators/services/rx-form-array.mjs +0 -114
- package/esm2022/lib/form-validators/services/rx-form-builder.mjs +0 -1035
- package/esm2022/lib/form-validators/services/rx-form-group.mjs +0 -451
- package/esm2022/lib/form-validators/services/typed-form-builder.mjs +0 -25
- package/esm2022/lib/form-validators/util/alphabet-regex.locale.mjs +0 -29
- package/esm2022/lib/form-validators/util/app-util.mjs +0 -161
- package/esm2022/lib/form-validators/util/check-length.mjs +0 -11
- package/esm2022/lib/form-validators/util/config-provider.mjs +0 -37
- package/esm2022/lib/form-validators/util/date-checker.function.mjs +0 -52
- package/esm2022/lib/form-validators/util/date-provider.mjs +0 -108
- package/esm2022/lib/form-validators/util/form-const.mjs +0 -3
- package/esm2022/lib/form-validators/util/form-provider.mjs +0 -87
- package/esm2022/lib/form-validators/util/index.mjs +0 -7
- package/esm2022/lib/form-validators/util/instance-provider.function.mjs +0 -63
- package/esm2022/lib/form-validators/util/ip-checker.mjs +0 -19
- package/esm2022/lib/form-validators/util/linq.mjs +0 -157
- package/esm2022/lib/form-validators/util/object-maker.mjs +0 -68
- package/esm2022/lib/form-validators/util/reactive-form-config.mjs +0 -25
- package/esm2022/lib/form-validators/util/regex-rules.mjs +0 -37
- package/esm2022/lib/form-validators/util/regex-validator.mjs +0 -74
- package/esm2022/lib/form-validators/util/relational-checker.function.mjs +0 -92
- package/esm2022/lib/form-validators/util/reset-form.mjs +0 -57
- package/esm2022/lib/form-validators/util/sanitizers.mjs +0 -140
- package/esm2022/lib/form-validators/util/time-checker.function.mjs +0 -50
- package/esm2022/lib/form-validators/util/type.mjs +0 -2
- package/esm2022/lib/form-validators/util/validator-value-checker.mjs +0 -21
- package/esm2022/lib/form-validators/validators-extension/allOf-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/alpha-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/alphaNumeric-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/and-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/ascii-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/base-validator.function.mjs +0 -34
- package/esm2022/lib/form-validators/validators-extension/choice-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/compare-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/compose-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/contains-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/credit-card-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/cusip-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/custom-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/dataUri-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/date-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/different-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/digit-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/email-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/endsWith-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/even-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/extension-validator.extension.mjs +0 -10
- package/esm2022/lib/form-validators/validators-extension/factor-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/file-validator.extension.mjs +0 -10
- package/esm2022/lib/form-validators/validators-extension/fileSize-validator.extension.mjs +0 -10
- package/esm2022/lib/form-validators/validators-extension/greater-than-equal-to-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/greater-than-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/grid-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/hexcolor-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/iban-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/image-validator.extension.mjs +0 -10
- package/esm2022/lib/form-validators/validators-extension/index.mjs +0 -68
- package/esm2022/lib/form-validators/validators-extension/ip-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/json-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/latLong-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/latitude-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/leapYear-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/less-than-equal-to-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/less-than-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/longitude-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/lowercase-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/mac-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/mask-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/maxDate-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/maxLength-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/maxNumber-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/maxTime-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/minDate-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/minLength-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/minNumber-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/minTime-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/noneOf-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/not-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/notEmpty-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/numeric-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/odd-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/oneOf-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/or-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/password-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/pattern-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/port-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/primeNumber-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/range-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/required-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/requiredTrue-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/rxweb-validators.mjs +0 -108
- package/esm2022/lib/form-validators/validators-extension/startsWith-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/time-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-extension/unique-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/uppercase-validator.extension.mjs +0 -7
- package/esm2022/lib/form-validators/validators-extension/url-validator.extension.mjs +0 -11
- package/esm2022/lib/form-validators/validators-function/alpha-validation.function.mjs +0 -71
- package/esm2022/lib/form-validators/validators-function/regex-validation.function.mjs +0 -33
- package/esm2022/lib/forms/components/datepicker/datepicker-header.component.mjs +0 -84
- package/esm2022/lib/forms/components/generic-form/generic-form.component.mjs +0 -602
- package/esm2022/lib/forms/constants/constants.mjs +0 -4
- package/esm2022/lib/forms/directives/mat-form-field-editor.directive.mjs +0 -197
- package/esm2022/lib/forms/directives/mat-form-field-readonly.directive.mjs +0 -34
- package/esm2022/lib/forms/directives/parse-decimal-directive.mjs +0 -87
- package/esm2022/lib/forms/directives/vd-generic-form-custom-field.directive.mjs +0 -35
- package/esm2022/lib/forms/enums/form-field-type.mjs +0 -23
- package/esm2022/lib/forms/forms.module.mjs +0 -168
- package/esm2022/lib/forms/functions/decorators.mjs +0 -136
- package/esm2022/lib/forms/functions/functions.mjs +0 -72
- package/esm2022/lib/forms/helpers/abstract-mat-form-field.mjs +0 -308
- package/esm2022/lib/forms/helpers/abstract-select-form-field.component.mjs +0 -492
- package/esm2022/lib/forms/helpers/value-accessor-base.mjs +0 -146
- package/esm2022/lib/forms/models/form-definition.mjs +0 -63
- package/esm2022/lib/forms/models/form-field-definition.mjs +0 -468
- package/esm2022/lib/forms/models/form-field-group-definition.mjs +0 -55
- package/esm2022/lib/forms/pipes/field-func.pipe.mjs +0 -23
- package/esm2022/lib/forms/pipes/group-filter.pipe.mjs +0 -34
- package/esm2022/lib/forms/public_api.mjs +0 -5
- package/esm2022/lib/forms/validators/empty-string-reset.directive.mjs +0 -25
- package/esm2022/lib/forms/validators/equal-validator.directive.mjs +0 -69
- package/esm2022/lib/forms/validators/native-element-injector.directive.mjs +0 -41
- package/esm2022/lib/forms/validators/unique-validator-directive.mjs +0 -88
- package/esm2022/lib/http/http.module.mjs +0 -15
- package/esm2022/lib/http/models/response.mjs +0 -24
- package/esm2022/lib/http/public_api.mjs +0 -2
- package/esm2022/lib/http/services/generic.service.mjs +0 -331
- package/esm2022/lib/layout/dynamic-menu/dynamic-menu.component.mjs +0 -103
- package/esm2022/lib/layout/layout-card-over/layout-card-over.component.mjs +0 -49
- package/esm2022/lib/layout/layout-compact/layout-compact.component.mjs +0 -193
- package/esm2022/lib/layout/layout-footer/layout-footer.component.mjs +0 -37
- package/esm2022/lib/layout/layout-manage-list/layout-manage-list.component.mjs +0 -150
- package/esm2022/lib/layout/layout-manage-list/layout-manage-list.directives.mjs +0 -108
- package/esm2022/lib/layout/layout-nav/layout-nav.component.mjs +0 -146
- package/esm2022/lib/layout/layout-nav-list/layout-nav-list.component.mjs +0 -141
- package/esm2022/lib/layout/layout-nav-list/layout-nav-list.directives.mjs +0 -105
- package/esm2022/lib/layout/layout-toggle.class.mjs +0 -89
- package/esm2022/lib/layout/layout.component.mjs +0 -230
- package/esm2022/lib/layout/layout.directives.mjs +0 -81
- package/esm2022/lib/layout/layout.module.mjs +0 -144
- package/esm2022/lib/layout/list-toolbar/list-toolbar.component.mjs +0 -47
- package/esm2022/lib/layout/navigation-drawer/navigation-drawer.component.mjs +0 -275
- package/esm2022/lib/layout/public_api.mjs +0 -2
- package/esm2022/lib/list/components/list.component.mjs +0 -78
- package/esm2022/lib/list/directives/vd-list-option.directive.mjs +0 -23
- package/esm2022/lib/list/list.module.mjs +0 -36
- package/esm2022/lib/list/public_api.mjs +0 -3
- package/esm2022/lib/media/directives/media-toggle.directive.mjs +0 -154
- package/esm2022/lib/media/media.module.mjs +0 -35
- package/esm2022/lib/media/public_api.mjs +0 -2
- package/esm2022/lib/media/services/media.service.mjs +0 -110
- package/esm2022/lib/menu/components/menu.component.mjs +0 -95
- package/esm2022/lib/menu/enums/menu-scope.mjs +0 -6
- package/esm2022/lib/menu/menu.module.mjs +0 -64
- package/esm2022/lib/menu/models/menu-client.mjs +0 -39
- package/esm2022/lib/menu/models/menu-department.mjs +0 -39
- package/esm2022/lib/menu/models/menu-item-client.mjs +0 -39
- package/esm2022/lib/menu/models/menu-item-department.mjs +0 -39
- package/esm2022/lib/menu/models/menu-item.mjs +0 -351
- package/esm2022/lib/menu/models/menu-settings.mjs +0 -13
- package/esm2022/lib/menu/models/menu.mjs +0 -224
- package/esm2022/lib/menu/public_api.mjs +0 -3
- package/esm2022/lib/menu/resolvers/menu-form-includes.resolve.mjs +0 -50
- package/esm2022/lib/menu/resolvers/menu-item-form-includes.resolve.mjs +0 -50
- package/esm2022/lib/menu/resolvers/menu-list-projection.resolve.mjs +0 -51
- package/esm2022/lib/menu/resolvers/menu-settings.resolve.mjs +0 -24
- package/esm2022/lib/menu/services/menu-items.service.mjs +0 -19
- package/esm2022/lib/menu/services/menu.resolve.mjs +0 -68
- package/esm2022/lib/menu/services/menu.service.mjs +0 -19
- package/esm2022/lib/search/public_api.mjs +0 -2
- package/esm2022/lib/search/search.module.mjs +0 -33
- package/esm2022/lib/select/components/select.component.mjs +0 -215
- package/esm2022/lib/select/directives/vd-select-option.directive.mjs +0 -23
- package/esm2022/lib/select/directives/vd-select-trigger.directive.mjs +0 -23
- package/esm2022/lib/select/public_api.mjs +0 -4
- package/esm2022/lib/select/select.module.mjs +0 -48
- package/esm2022/lib/table/components/dynamic-table/dynamic-table.component.mjs +0 -810
- package/esm2022/lib/table/components/filter-clear/filter-clear.component.mjs +0 -36
- package/esm2022/lib/table/components/filter-date/filter-date.component.mjs +0 -146
- package/esm2022/lib/table/components/filter-input/filter-input.component.mjs +0 -198
- package/esm2022/lib/table/components/filter-select/filter-select.component.mjs +0 -375
- package/esm2022/lib/table/constants/constants.mjs +0 -3
- package/esm2022/lib/table/directives/data-source-filter.directive.mjs +0 -49
- package/esm2022/lib/table/directives/vd-table-field.directive.mjs +0 -35
- package/esm2022/lib/table/enums/grid.mjs +0 -12
- package/esm2022/lib/table/enums/table-column-type.mjs +0 -17
- package/esm2022/lib/table/functions/decorators.mjs +0 -163
- package/esm2022/lib/table/functions/functions.mjs +0 -28
- package/esm2022/lib/table/models/facet-value.mjs +0 -47
- package/esm2022/lib/table/models/facet.mjs +0 -48
- package/esm2022/lib/table/models/pagination.mjs +0 -27
- package/esm2022/lib/table/models/table-column-config.mjs +0 -128
- package/esm2022/lib/table/models/table-column.mjs +0 -270
- package/esm2022/lib/table/models/table-config.mjs +0 -41
- package/esm2022/lib/table/models/table-definition.mjs +0 -110
- package/esm2022/lib/table/models/table-query-config.mjs +0 -26
- package/esm2022/lib/table/paginator-intl.mjs +0 -41
- package/esm2022/lib/table/public_api.mjs +0 -2
- package/esm2022/lib/table/table.data-source.mjs +0 -326
- package/esm2022/lib/table/table.module.mjs +0 -165
- package/esm2022/lib/table/table.static-data-source.mjs +0 -198
- package/esm2022/messaia-cdk.mjs +0 -5
- package/esm2022/public_api.mjs +0 -19
- package/lib/common/styles/_elevation.scss +0 -147
- package/lib/common/styles/_rtl.scss +0 -28
- package/lib/common/styles/_styles.scss +0 -12
- package/lib/common/styles/_theme-functions.scss +0 -4
- package/lib/common/styles/_typography.scss +0 -76
- package/lib/common/styles/core/_content.scss +0 -42
- package/lib/common/styles/core/_divider.scss +0 -14
- package/lib/common/styles/core/_icons.scss +0 -27
- package/lib/common/styles/core/_list.scss +0 -8
- package/lib/common/styles/core/_toolbar.scss +0 -31
- package/lib/common/styles/core/_whiteframe.scss +0 -111
- package/lib/common/styles/m2/_theme-functions.scss +0 -21
- package/lib/common/styles/m3/_theme-functions.scss +0 -21
- package/lib/common/theming/_all-theme.scss +0 -27
- package/lib/common/typography/_all-typography.scss +0 -33
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
import { headerMetadataKey } from "../../common/constants/constants";
|
|
2
|
-
import { formDefinitionMetadataKey, formFieldGroupsMetadataKey, formFieldsMetadataKey } from "../constants/constants";
|
|
3
|
-
import { FormFieldType } from "../enums/form-field-type";
|
|
4
|
-
import { FormDefinition } from "../models/form-definition";
|
|
5
|
-
import { FormFieldDefinition } from "../models/form-field-definition";
|
|
6
|
-
import { getFormGroups } from "./functions";
|
|
7
|
-
const unwarppedFormFields = [FormFieldType.Checkbox, FormFieldType.Editor, FormFieldType.Code, FormFieldType.File, FormFieldType.Custom];
|
|
8
|
-
/**
|
|
9
|
-
* Class decorator to create a form
|
|
10
|
-
* @param formDefinition
|
|
11
|
-
* @returns
|
|
12
|
-
*/
|
|
13
|
-
export function Form(formDefinition) {
|
|
14
|
-
return function (target) {
|
|
15
|
-
/* Save the form defintion in the metadata */
|
|
16
|
-
Reflect.defineMetadata(formDefinitionMetadataKey, formDefinition ?? new FormDefinition(), target);
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Property decorator to create form fields
|
|
21
|
-
* @param args
|
|
22
|
-
* @returns
|
|
23
|
-
*/
|
|
24
|
-
export function FormField(args) {
|
|
25
|
-
return function (target, propertyKey) {
|
|
26
|
-
/* Get property name */
|
|
27
|
-
var propertyName = args.name || propertyKey;
|
|
28
|
-
/* Get property type */
|
|
29
|
-
var propertyType = Reflect.getMetadata("design:type", target, propertyKey)?.name;
|
|
30
|
-
/* Create table column */
|
|
31
|
-
var formField = new FormFieldDefinition(Object.assign(args, {
|
|
32
|
-
name: args.name || propertyKey,
|
|
33
|
-
label: args.label || Reflect.getMetadata(headerMetadataKey, target, propertyKey) || propertyName,
|
|
34
|
-
autocompleteTemplate: args.autocompleteTemplate || ((option) => option[formField.autocompleteText ?? '']),
|
|
35
|
-
chipTemplate: args.chipTemplate || ((chip) => (args.customValue ? chip : chip[formField.chipText ?? '']))
|
|
36
|
-
}));
|
|
37
|
-
/* Type enum */
|
|
38
|
-
if (formField.enumType) {
|
|
39
|
-
formField.type ||= FormFieldType.Enum;
|
|
40
|
-
}
|
|
41
|
-
/* Type VdSelect */
|
|
42
|
-
else if (formField.endpoint) {
|
|
43
|
-
formField.type ||= FormFieldType.VdSelect;
|
|
44
|
-
}
|
|
45
|
-
/* Type Select */
|
|
46
|
-
else if (formField.options) {
|
|
47
|
-
formField.type ||= FormFieldType.Select;
|
|
48
|
-
}
|
|
49
|
-
/* Type TextArea */
|
|
50
|
-
else if (formField.rows) {
|
|
51
|
-
formField.type ||= FormFieldType.TextArea;
|
|
52
|
-
}
|
|
53
|
-
/* Type File */
|
|
54
|
-
else if (formField.filePath) {
|
|
55
|
-
formField.type ||= FormFieldType.File;
|
|
56
|
-
}
|
|
57
|
-
/* Other types */
|
|
58
|
-
else {
|
|
59
|
-
switch (propertyType.toLowerCase()) {
|
|
60
|
-
case 'number':
|
|
61
|
-
formField.type ||= FormFieldType.Text;
|
|
62
|
-
formField.inputType ||= 'number';
|
|
63
|
-
break;
|
|
64
|
-
case 'date':
|
|
65
|
-
formField.type ||= FormFieldType.Date;
|
|
66
|
-
break;
|
|
67
|
-
case 'boolean':
|
|
68
|
-
formField.type ||= FormFieldType.Checkbox;
|
|
69
|
-
break;
|
|
70
|
-
default:
|
|
71
|
-
formField.type ||= FormFieldType.Text;
|
|
72
|
-
break;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
/* Set wrapped to false, if the field cant be wrapped in the <mat-form-field> */
|
|
76
|
-
if (formField.type && unwarppedFormFields?.includes(formField.type)) {
|
|
77
|
-
formField.wrapped = false;
|
|
78
|
-
}
|
|
79
|
-
/* Add class multiline to the form field */
|
|
80
|
-
if (formField.multiline) {
|
|
81
|
-
formField.cssClass += ' multiline';
|
|
82
|
-
formField.cssClass = formField.cssClass?.trim();
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* If the 'numbersOnly' flag is set to true and no custom pattern is defined,
|
|
86
|
-
* set the pattern to allow only numbers.
|
|
87
|
-
*/
|
|
88
|
-
if (formField.numbersOnly && !formField.pattern) {
|
|
89
|
-
formField.pattern = /^[0-9]*$/;
|
|
90
|
-
}
|
|
91
|
-
/* Get old form fields */
|
|
92
|
-
let previousFormFields = Reflect.getMetadata(formFieldsMetadataKey, target);
|
|
93
|
-
/* Override the field, if exists */
|
|
94
|
-
previousFormFields = previousFormFields?.filter(x => x.name != formField.name);
|
|
95
|
-
/* Create a copy of the result */
|
|
96
|
-
let formFields = previousFormFields ? previousFormFields.concat([formField]) : [formField];
|
|
97
|
-
/* Override the result in the metadata */
|
|
98
|
-
Reflect.defineMetadata(formFieldsMetadataKey, formFields, target);
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Property decorator to create form fields
|
|
103
|
-
* @param args
|
|
104
|
-
* @returns
|
|
105
|
-
*/
|
|
106
|
-
export function FormFieldGroup(type, args) {
|
|
107
|
-
return function (target, propertyKey) {
|
|
108
|
-
/* Create an instance of the group object */
|
|
109
|
-
var instance = Reflect.construct(type, []);
|
|
110
|
-
/* Get from groups */
|
|
111
|
-
var groups = getFormGroups(undefined, type, args);
|
|
112
|
-
/* Get the header of the groups or create one using the property name */
|
|
113
|
-
var groupHeader = args?.header || Reflect.getMetadata(headerMetadataKey, target, propertyKey) || propertyKey;
|
|
114
|
-
/* Get the fields from the groups */
|
|
115
|
-
groups?.forEach((x, i) => {
|
|
116
|
-
Object.assign(x, {
|
|
117
|
-
name: args?.name ?? x.name ?? propertyKey,
|
|
118
|
-
header: groupHeader,
|
|
119
|
-
index: args?.index || i
|
|
120
|
-
});
|
|
121
|
-
/* Set the name of the group in the fields */
|
|
122
|
-
x.fields.forEach(y => Object.assign(y, {
|
|
123
|
-
groupName: propertyKey,
|
|
124
|
-
groupHeader: groupHeader,
|
|
125
|
-
fieldSets: args?.fieldSets
|
|
126
|
-
}));
|
|
127
|
-
});
|
|
128
|
-
/* Get old form field groups */
|
|
129
|
-
var previousGroups = Reflect.getMetadata(formFieldGroupsMetadataKey, target);
|
|
130
|
-
/* Remove the groups in previousGroups that exist in groups */
|
|
131
|
-
previousGroups = previousGroups?.filter(prevGroup => !groups?.some(group => group.name === prevGroup.name));
|
|
132
|
-
/* Override the result in the metadata */
|
|
133
|
-
Reflect.defineMetadata(formFieldGroupsMetadataKey, (previousGroups ? previousGroups.concat(groups) : groups), target);
|
|
134
|
-
};
|
|
135
|
-
}
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Zvcm1zL2Z1bmN0aW9ucy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSwwQkFBMEIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFdEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1QyxNQUFNLG1CQUFtQixHQUFHLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFekk7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxJQUFJLENBQVUsY0FBMkM7SUFDckUsT0FBTyxVQUFVLE1BQWdCO1FBQzdCLDZDQUE2QztRQUM3QyxPQUFPLENBQUMsY0FBYyxDQUFDLHlCQUF5QixFQUFFLGNBQWMsSUFBSSxJQUFJLGNBQWMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3RHLENBQUMsQ0FBQztBQUNOLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBaUMsSUFBc0Q7SUFDNUcsT0FBTyxVQUFVLE1BQVcsRUFBRSxXQUFtQjtRQUM3Qyx1QkFBdUI7UUFDdkIsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxXQUFX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QUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMxSCxDQUFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IGhlYWRlck1ldGFkYXRhS2V5IH0gZnJvbSBcIi4uLy4uL2NvbW1vbi9jb25zdGFudHMvY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IGZvcm1EZWZpbml0aW9uTWV0YWRhdGFLZXksIGZvcm1GaWVsZEdyb3Vwc01ldGFkYXRhS2V5LCBmb3JtRmllbGRzTWV0YWRhdGFLZXkgfSBmcm9tIFwiLi4vY29uc3RhbnRzL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBGb3JtRmllbGRUeXBlIH0gZnJvbSBcIi4uL2VudW1zL2Zvcm0tZmllbGQtdHlwZVwiO1xyXG5pbXBvcnQgeyBGb3JtRGVmaW5pdGlvbiB9IGZyb20gXCIuLi9tb2RlbHMvZm9ybS1kZWZpbml0aW9uXCI7XHJcbmltcG9ydCB7IEZvcm1GaWVsZERlZmluaXRpb24gfSBmcm9tIFwiLi4vbW9kZWxzL2Zvcm0tZmllbGQtZGVmaW5pdGlvblwiO1xyXG5pbXBvcnQgeyBGb3JtRmllbGRHcm91cERlZmluaXRpb24gfSBmcm9tIFwiLi4vbW9kZWxzL2Zvcm0tZmllbGQtZ3JvdXAtZGVmaW5pdGlvblwiO1xyXG5pbXBvcnQgeyBnZXRGb3JtR3JvdXBzIH0gZnJvbSBcIi4vZnVuY3Rpb25zXCI7XHJcblxyXG5jb25zdCB1bndhcnBwZWRGb3JtRmllbGRzID0gW0Zvcm1GaWVsZFR5cGUuQ2hlY2tib3gsIEZvcm1GaWVsZFR5cGUuRWRpdG9yLCBGb3JtRmllbGRUeXBlLkNvZGUsIEZvcm1GaWVsZFR5cGUuRmlsZSwgRm9ybUZpZWxkVHlwZS5DdXN0b21dO1xyXG5cclxuLyoqXHJcbiAqIENsYXNzIGRlY29yYXRvciB0byBjcmVhdGUgYSBmb3JtXHJcbiAqIEBwYXJhbSBmb3JtRGVmaW5pdGlvbiBcclxuICogQHJldHVybnMgXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gRm9ybTxUID0gYW55Pihmb3JtRGVmaW5pdGlvbj86IFBhcnRpYWw8Rm9ybURlZmluaXRpb248VD4+KTogRnVuY3Rpb24ge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQ6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgLyogU2F2ZSB0aGUgZm9ybSBkZWZpbnRpb24gaW4gdGhlIG1ldGFkYXRhICovXHJcbiAgICAgICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShmb3JtRGVmaW5pdGlvbk1ldGFkYXRhS2V5LCBmb3JtRGVmaW5pdGlvbiA/PyBuZXcgRm9ybURlZmluaXRpb24oKSwgdGFyZ2V0KTtcclxuICAgIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBQcm9wZXJ0eSBkZWNvcmF0b3IgdG8gY3JlYXRlIGZvcm0gZmllbGRzXHJcbiAqIEBwYXJhbSBhcmdzIFxyXG4gKiBAcmV0dXJucyBcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBGb3JtRmllbGQ8VEVudGl0eSA9IGFueSwgVFByb3BlcnR5ID0gYW55PihhcmdzOiBQYXJ0aWFsPEZvcm1GaWVsZERlZmluaXRpb248VEVudGl0eSwgVFByb3BlcnR5Pj4pOiBGdW5jdGlvbiB7XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nKSB7XHJcbiAgICAgICAgLyogR2V0IHByb3BlcnR5IG5hbWUgKi9cclxuICAgICAgICB2YXIgcHJvcGVydHlOYW1lID0gYXJncy5uYW1lIHx8IHByb3BlcnR5S2V5O1xyXG5cclxuICAgICAgICAvKiBHZXQgcHJvcGVydHkgdHlwZSAqL1xyXG4gICAgICAgIHZhciBwcm9wZXJ0eVR5cGU6IHN0cmluZyA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCB0YXJnZXQsIHByb3BlcnR5S2V5KT8ubmFtZTtcclxuXHJcbiAgICAgICAgLyogQ3JlYXRlIHRhYmxlIGNvbHVtbiAqL1xyXG4gICAgICAgIHZhciBmb3JtRmllbGQ6IEZvcm1GaWVsZERlZmluaXRpb248VEVudGl0eSwgVFByb3BlcnR5PiA9IG5ldyBGb3JtRmllbGREZWZpbml0aW9uPFRFbnRpdHksIFRQcm9wZXJ0eT4oT2JqZWN0LmFzc2lnbihhcmdzLCA8Rm9ybUZpZWxkRGVmaW5pdGlvbjxURW50aXR5LCBUUHJvcGVydHk+PntcclxuICAgICAgICAgICAgbmFtZTogYXJncy5uYW1lIHx8IHByb3BlcnR5S2V5LFxyXG4gICAgICAgICAgICBsYWJlbDogYXJncy5sYWJlbCB8fCBSZWZsZWN0LmdldE1ldGFkYXRhKGhlYWRlck1ldGFkYXRhS2V5LCB0YXJnZXQsIHByb3BlcnR5S2V5KSB8fCBwcm9wZXJ0eU5hbWUsXHJcbiAgICAgICAgICAgIGF1dG9jb21wbGV0ZVRlbXBsYXRlOiBhcmdzLmF1dG9jb21wbGV0ZVRlbXBsYXRlIHx8ICgob3B0aW9uOiBhbnkpID0+IG9wdGlvbltmb3JtRmllbGQuYXV0b2NvbXBsZXRlVGV4dCA/PyAnJ10pLFxyXG4gICAgICAgICAgICBjaGlwVGVtcGxhdGU6IGFyZ3MuY2hpcFRlbXBsYXRlIHx8ICgoY2hpcDogYW55KSA9PiAoYXJncy5jdXN0b21WYWx1ZSA/IGNoaXAgOiBjaGlwW2Zvcm1GaWVsZC5jaGlwVGV4dCA/PyAnJ10pKVxyXG4gICAgICAgIH0pKTtcclxuXHJcbiAgICAgICAgLyogVHlwZSBlbnVtICovXHJcbiAgICAgICAgaWYgKGZvcm1GaWVsZC5lbnVtVHlwZSkge1xyXG4gICAgICAgICAgICBmb3JtRmllbGQudHlwZSB8fD0gRm9ybUZpZWxkVHlwZS5FbnVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogVHlwZSBWZFNlbGVjdCAqL1xyXG4gICAgICAgIGVsc2UgaWYgKGZvcm1GaWVsZC5lbmRwb2ludCkge1xyXG4gICAgICAgICAgICBmb3JtRmllbGQudHlwZSB8fD0gRm9ybUZpZWxkVHlwZS5WZFNlbGVjdDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIFR5cGUgU2VsZWN0ICovXHJcbiAgICAgICAgZWxzZSBpZiAoZm9ybUZpZWxkLm9wdGlvbnMpIHtcclxuICAgICAgICAgICAgZm9ybUZpZWxkLnR5cGUgfHw9IEZvcm1GaWVsZFR5cGUuU2VsZWN0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogVHlwZSBUZXh0QXJlYSAqL1xyXG4gICAgICAgIGVsc2UgaWYgKGZvcm1GaWVsZC5yb3dzKSB7XHJcbiAgICAgICAgICAgIGZvcm1GaWVsZC50eXBlIHx8PSBGb3JtRmllbGRUeXBlLlRleHRBcmVhO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogVHlwZSBGaWxlICovXHJcbiAgICAgICAgZWxzZSBpZiAoZm9ybUZpZWxkLmZpbGVQYXRoKSB7XHJcbiAgICAgICAgICAgIGZvcm1GaWVsZC50eXBlIHx8PSBGb3JtRmllbGRUeXBlLkZpbGU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBPdGhlciB0eXBlcyAqL1xyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBzd2l0Y2ggKHByb3BlcnR5VHlwZS50b0xvd2VyQ2FzZSgpKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdudW1iZXInOlxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1GaWVsZC50eXBlIHx8PSBGb3JtRmllbGRUeXBlLlRleHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUZpZWxkLmlucHV0VHlwZSB8fD0gJ251bWJlcic7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgY2FzZSAnZGF0ZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUZpZWxkLnR5cGUgfHw9IEZvcm1GaWVsZFR5cGUuRGF0ZTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgICAgICBjYXNlICdib29sZWFuJzpcclxuICAgICAgICAgICAgICAgICAgICBmb3JtRmllbGQudHlwZSB8fD0gRm9ybUZpZWxkVHlwZS5DaGVja2JveDtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1GaWVsZC50eXBlIHx8PSBGb3JtRmllbGRUeXBlLlRleHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIFNldCB3cmFwcGVkIHRvIGZhbHNlLCBpZiB0aGUgZmllbGQgY2FudCBiZSB3cmFwcGVkIGluIHRoZSA8bWF0LWZvcm0tZmllbGQ+ICovXHJcbiAgICAgICAgaWYgKChmb3JtRmllbGQudHlwZSBhcyBGb3JtRmllbGRUeXBlKSAmJiB1bndhcnBwZWRGb3JtRmllbGRzPy5pbmNsdWRlcygoZm9ybUZpZWxkLnR5cGUgYXMgRm9ybUZpZWxkVHlwZSkpKSB7XHJcbiAgICAgICAgICAgIGZvcm1GaWVsZC53cmFwcGVkID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBBZGQgY2xhc3MgbXVsdGlsaW5lIHRvIHRoZSBmb3JtIGZpZWxkICovXHJcbiAgICAgICAgaWYgKGZvcm1GaWVsZC5tdWx0aWxpbmUpIHtcclxuICAgICAgICAgICAgZm9ybUZpZWxkLmNzc0NsYXNzICs9ICcgbXVsdGlsaW5lJztcclxuICAgICAgICAgICAgZm9ybUZpZWxkLmNzc0NsYXNzID0gZm9ybUZpZWxkLmNzc0NsYXNzPy50cmltKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJZiB0aGUgJ251bWJlcnNPbmx5JyBmbGFnIGlzIHNldCB0byB0cnVlIGFuZCBubyBjdXN0b20gcGF0dGVybiBpcyBkZWZpbmVkLFxyXG4gICAgICAgICAqIHNldCB0aGUgcGF0dGVybiB0byBhbGxvdyBvbmx5IG51bWJlcnMuIFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGlmIChmb3JtRmllbGQubnVtYmVyc09ubHkgJiYgIWZvcm1GaWVsZC5wYXR0ZXJuKSB7XHJcbiAgICAgICAgICAgIGZvcm1GaWVsZC5wYXR0ZXJuID0gL15bMC05XSokLztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIEdldCBvbGQgZm9ybSBmaWVsZHMgKi9cclxuICAgICAgICBsZXQgcHJldmlvdXNGb3JtRmllbGRzOiBGb3JtRmllbGREZWZpbml0aW9uPFRFbnRpdHksIFRQcm9wZXJ0eT5bXSA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoZm9ybUZpZWxkc01ldGFkYXRhS2V5LCB0YXJnZXQpO1xyXG5cclxuICAgICAgICAvKiBPdmVycmlkZSB0aGUgZmllbGQsIGlmIGV4aXN0cyAqL1xyXG4gICAgICAgIHByZXZpb3VzRm9ybUZpZWxkcyA9IHByZXZpb3VzRm9ybUZpZWxkcz8uZmlsdGVyKHggPT4geC5uYW1lICE9IGZvcm1GaWVsZC5uYW1lKTtcclxuXHJcbiAgICAgICAgLyogQ3JlYXRlIGEgY29weSBvZiB0aGUgcmVzdWx0ICovXHJcbiAgICAgICAgbGV0IGZvcm1GaWVsZHMgPSBwcmV2aW91c0Zvcm1GaWVsZHMgPyBwcmV2aW91c0Zvcm1GaWVsZHMuY29uY2F0KFtmb3JtRmllbGRdKSA6IFtmb3JtRmllbGRdO1xyXG5cclxuICAgICAgICAvKiBPdmVycmlkZSB0aGUgcmVzdWx0IGluIHRoZSBtZXRhZGF0YSAqL1xyXG4gICAgICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoZm9ybUZpZWxkc01ldGFkYXRhS2V5LCBmb3JtRmllbGRzLCB0YXJnZXQpO1xyXG4gICAgfTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFByb3BlcnR5IGRlY29yYXRvciB0byBjcmVhdGUgZm9ybSBmaWVsZHNcclxuICogQHBhcmFtIGFyZ3MgXHJcbiAqIEByZXR1cm5zIFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIEZvcm1GaWVsZEdyb3VwPFQgPSBhbnk+KHR5cGU6IFR5cGU8VD4sIGFyZ3M/OiBQYXJ0aWFsPEZvcm1GaWVsZEdyb3VwRGVmaW5pdGlvbjxUPj4pOiBGdW5jdGlvbiB7XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nKSB7XHJcbiAgICAgICAgLyogQ3JlYXRlIGFuIGluc3RhbmNlIG9mIHRoZSBncm91cCBvYmplY3QgKi9cclxuICAgICAgICB2YXIgaW5zdGFuY2UgPSBSZWZsZWN0LmNvbnN0cnVjdCh0eXBlLCBbXSk7XHJcblxyXG4gICAgICAgIC8qIEdldCBmcm9tIGdyb3VwcyAqL1xyXG4gICAgICAgIHZhciBncm91cHMgPSBnZXRGb3JtR3JvdXBzKHVuZGVmaW5lZCwgdHlwZSwgYXJncyk7XHJcblxyXG4gICAgICAgIC8qIEdldCB0aGUgaGVhZGVyIG9mIHRoZSBncm91cHMgb3IgY3JlYXRlIG9uZSB1c2luZyB0aGUgcHJvcGVydHkgbmFtZSAqL1xyXG4gICAgICAgIHZhciBncm91cEhlYWRlciA9IGFyZ3M/LmhlYWRlciB8fCBSZWZsZWN0LmdldE1ldGFkYXRhKGhlYWRlck1ldGFkYXRhS2V5LCB0YXJnZXQsIHByb3BlcnR5S2V5KSB8fCBwcm9wZXJ0eUtleTtcclxuXHJcbiAgICAgICAgLyogR2V0IHRoZSBmaWVsZHMgZnJvbSB0aGUgZ3JvdXBzICovXHJcbiAgICAgICAgZ3JvdXBzPy5mb3JFYWNoKCh4LCBpKSA9PiB7XHJcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oeCwgPEZvcm1GaWVsZEdyb3VwRGVmaW5pdGlvbjxUPj57XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBhcmdzPy5uYW1lID8/IHgubmFtZSA/PyBwcm9wZXJ0eUtleSxcclxuICAgICAgICAgICAgICAgIGhlYWRlcjogZ3JvdXBIZWFkZXIsXHJcbiAgICAgICAgICAgICAgICBpbmRleDogYXJncz8uaW5kZXggfHwgaVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIC8qIFNldCB0aGUgbmFtZSBvZiB0aGUgZ3JvdXAgaW4gdGhlIGZpZWxkcyAqL1xyXG4gICAgICAgICAgICB4LmZpZWxkcy5mb3JFYWNoKHkgPT4gT2JqZWN0LmFzc2lnbih5LCB7XHJcbiAgICAgICAgICAgICAgICBncm91cE5hbWU6IHByb3BlcnR5S2V5LFxyXG4gICAgICAgICAgICAgICAgZ3JvdXBIZWFkZXI6IGdyb3VwSGVhZGVyLFxyXG4gICAgICAgICAgICAgICAgZmllbGRTZXRzOiBhcmdzPy5maWVsZFNldHNcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvKiBHZXQgb2xkIGZvcm0gZmllbGQgZ3JvdXBzICovXHJcbiAgICAgICAgdmFyIHByZXZpb3VzR3JvdXBzOiBGb3JtRmllbGRHcm91cERlZmluaXRpb248VD5bXSA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoZm9ybUZpZWxkR3JvdXBzTWV0YWRhdGFLZXksIHRhcmdldCk7XHJcblxyXG4gICAgICAgIC8qIFJlbW92ZSB0aGUgZ3JvdXBzIGluIHByZXZpb3VzR3JvdXBzIHRoYXQgZXhpc3QgaW4gZ3JvdXBzICovXHJcbiAgICAgICAgcHJldmlvdXNHcm91cHMgPSBwcmV2aW91c0dyb3Vwcz8uZmlsdGVyKHByZXZHcm91cCA9PiAhZ3JvdXBzPy5zb21lKGdyb3VwID0+IGdyb3VwLm5hbWUgPT09IHByZXZHcm91cC5uYW1lKSk7XHJcblxyXG4gICAgICAgIC8qIE92ZXJyaWRlIHRoZSByZXN1bHQgaW4gdGhlIG1ldGFkYXRhICovXHJcbiAgICAgICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShmb3JtRmllbGRHcm91cHNNZXRhZGF0YUtleSwgKHByZXZpb3VzR3JvdXBzID8gcHJldmlvdXNHcm91cHMuY29uY2F0KGdyb3VwcykgOiBncm91cHMpLCB0YXJnZXQpO1xyXG4gICAgfTtcclxufSJdfQ==
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { endpointMetadataKey } from "../../common/constants/constants";
|
|
2
|
-
import { Utils } from "../../common/functions/utils";
|
|
3
|
-
import { formDefinitionMetadataKey, formFieldGroupsMetadataKey, formFieldsMetadataKey } from "../constants/constants";
|
|
4
|
-
import { FormDefinition } from "../models/form-definition";
|
|
5
|
-
import { FormFieldGroupDefinition } from "../models/form-field-group-definition";
|
|
6
|
-
/**
|
|
7
|
-
* Gets classes decoarated with @Form
|
|
8
|
-
* @param origin
|
|
9
|
-
* @returns
|
|
10
|
-
*/
|
|
11
|
-
export function getFormDefinition(origin) {
|
|
12
|
-
/* Check if origin is not defined */
|
|
13
|
-
if (!origin) {
|
|
14
|
-
throw new Error('Origin object must be defined.');
|
|
15
|
-
}
|
|
16
|
-
/* Save the form defintion in the metadata */
|
|
17
|
-
var formDefinition = Reflect.getMetadata(formDefinitionMetadataKey, origin.constructor) ?? new FormDefinition({});
|
|
18
|
-
if (formDefinition) {
|
|
19
|
-
/* Set column in the form definition */
|
|
20
|
-
formDefinition.fieldGroups = getFormGroups(origin);
|
|
21
|
-
/* Set endpoint from the decorator @Api, if any */
|
|
22
|
-
var endpoint = Reflect.getMetadata(endpointMetadataKey, origin);
|
|
23
|
-
if (endpoint) {
|
|
24
|
-
formDefinition.endpoint = endpoint;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
return formDefinition;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Gets poperties decoarated with @FormField grouped by row
|
|
31
|
-
* @param instance
|
|
32
|
-
* @returns
|
|
33
|
-
*/
|
|
34
|
-
export function getFormGroups(instance, type, args) {
|
|
35
|
-
/* Create a new instance */
|
|
36
|
-
instance ??= Reflect.construct(type, []);
|
|
37
|
-
/* Check if origin is not defined */
|
|
38
|
-
if (!instance) {
|
|
39
|
-
throw new Error('Origin object must be defined.');
|
|
40
|
-
}
|
|
41
|
-
/* Get main fields grouped by the group name */
|
|
42
|
-
const mainFieldGroups = Utils.groupArrayBy(Reflect.getMetadata(formFieldsMetadataKey, instance), x => x.groupName);
|
|
43
|
-
/* Group the fields */
|
|
44
|
-
var groups = Array.from(mainFieldGroups).map(([_, value], i) => new FormFieldGroupDefinition({
|
|
45
|
-
name: value[0].groupName || undefined,
|
|
46
|
-
header: value[0].groupHeader,
|
|
47
|
-
type: type,
|
|
48
|
-
instance: instance,
|
|
49
|
-
index: args?.index ?? i,
|
|
50
|
-
hidden: args?.hidden,
|
|
51
|
-
hide: args?.hide,
|
|
52
|
-
groups: Object.values((value).reduce(function (r, a) {
|
|
53
|
-
if (a.row) {
|
|
54
|
-
r[a.row] = (r[a.row] || []);
|
|
55
|
-
r[a.row].push(a);
|
|
56
|
-
r[a.row].forEach((x, i) => x.index = x.index || i);
|
|
57
|
-
Utils.sortArray(r[a.row], 'index');
|
|
58
|
-
return r;
|
|
59
|
-
}
|
|
60
|
-
return [];
|
|
61
|
-
}, Object.create(null)))
|
|
62
|
-
}));
|
|
63
|
-
/* Get object groups */
|
|
64
|
-
var objectFieldGroups = Reflect.getMetadata(formFieldGroupsMetadataKey, instance);
|
|
65
|
-
if (objectFieldGroups && Array.isArray(objectFieldGroups)) {
|
|
66
|
-
groups = groups.concat(objectFieldGroups);
|
|
67
|
-
}
|
|
68
|
-
/* Sort the groups by index */
|
|
69
|
-
Utils.sortArray(groups, 'index');
|
|
70
|
-
return groups;
|
|
71
|
-
}
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvZm9ybXMvZnVuY3Rpb25zL2Z1bmN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLDBCQUEwQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTNELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRWpGOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsTUFBZTtJQUM3QyxvQ0FBb0M7SUFDcEMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCw2Q0FBNkM7SUFDN0MsSUFBSSxjQUFjLEdBQW1CLE9BQU8sQ0FBQyxXQUFXLENBQUMseUJBQXlCLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xJLElBQUksY0FBYyxFQUFFLENBQUM7UUFDakIsdUNBQXVDO1FBQ3ZDLGNBQWMsQ0FBQyxXQUFXLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRW5ELGtEQUFrRDtRQUNsRCxJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2hFLElBQUksUUFBUSxFQUFFLENBQUM7WUFDWCxjQUFjLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN2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ZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IGVuZHBvaW50TWV0YWRhdGFLZXkgfSBmcm9tIFwiLi4vLi4vY29tbW9uL2NvbnN0YW50cy9jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgVXRpbHMgfSBmcm9tIFwiLi4vLi4vY29tbW9uL2Z1bmN0aW9ucy91dGlsc1wiO1xyXG5pbXBvcnQgeyBmb3JtRGVmaW5pdGlvbk1ldGFkYXRhS2V5LCBmb3JtRmllbGRHcm91cHNNZXRhZGF0YUtleSwgZm9ybUZpZWxkc01ldGFkYXRhS2V5IH0gZnJvbSBcIi4uL2NvbnN0YW50cy9jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgRm9ybURlZmluaXRpb24gfSBmcm9tIFwiLi4vbW9kZWxzL2Zvcm0tZGVmaW5pdGlvblwiO1xyXG5pbXBvcnQgeyBGb3JtRmllbGREZWZpbml0aW9uIH0gZnJvbSBcIi4uL21vZGVscy9mb3JtLWZpZWxkLWRlZmluaXRpb25cIjtcclxuaW1wb3J0IHsgRm9ybUZpZWxkR3JvdXBEZWZpbml0aW9uIH0gZnJvbSBcIi4uL21vZGVscy9mb3JtLWZpZWxkLWdyb3VwLWRlZmluaXRpb25cIjtcclxuXHJcbi8qKlxyXG4gKiBHZXRzIGNsYXNzZXMgZGVjb2FyYXRlZCB3aXRoIEBGb3JtXHJcbiAqIEBwYXJhbSBvcmlnaW4gXHJcbiAqIEByZXR1cm5zIFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvcm1EZWZpbml0aW9uKG9yaWdpbj86IG9iamVjdCk6IEZvcm1EZWZpbml0aW9uIHtcclxuICAgIC8qIENoZWNrIGlmIG9yaWdpbiBpcyBub3QgZGVmaW5lZCAqL1xyXG4gICAgaWYgKCFvcmlnaW4pIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ09yaWdpbiBvYmplY3QgbXVzdCBiZSBkZWZpbmVkLicpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIFNhdmUgdGhlIGZvcm0gZGVmaW50aW9uIGluIHRoZSBtZXRhZGF0YSAqL1xyXG4gICAgdmFyIGZvcm1EZWZpbml0aW9uOiBGb3JtRGVmaW5pdGlvbiA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoZm9ybURlZmluaXRpb25NZXRhZGF0YUtleSwgb3JpZ2luLmNvbnN0cnVjdG9yKSA/PyBuZXcgRm9ybURlZmluaXRpb24oe30pO1xyXG4gICAgaWYgKGZvcm1EZWZpbml0aW9uKSB7XHJcbiAgICAgICAgLyogU2V0IGNvbHVtbiBpbiB0aGUgZm9ybSBkZWZpbml0aW9uICovXHJcbiAgICAgICAgZm9ybURlZmluaXRpb24uZmllbGRHcm91cHMgPSBnZXRGb3JtR3JvdXBzKG9yaWdpbik7XHJcblxyXG4gICAgICAgIC8qIFNldCBlbmRwb2ludCBmcm9tIHRoZSBkZWNvcmF0b3IgQEFwaSwgaWYgYW55ICovXHJcbiAgICAgICAgdmFyIGVuZHBvaW50ID0gUmVmbGVjdC5nZXRNZXRhZGF0YShlbmRwb2ludE1ldGFkYXRhS2V5LCBvcmlnaW4pO1xyXG4gICAgICAgIGlmIChlbmRwb2ludCkge1xyXG4gICAgICAgICAgICBmb3JtRGVmaW5pdGlvbi5lbmRwb2ludCA9IGVuZHBvaW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZm9ybURlZmluaXRpb247XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXRzIHBvcGVydGllcyBkZWNvYXJhdGVkIHdpdGggQEZvcm1GaWVsZCBncm91cGVkIGJ5IHJvd1xyXG4gKiBAcGFyYW0gaW5zdGFuY2UgXHJcbiAqIEByZXR1cm5zIFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvcm1Hcm91cHM8VCA9IGFueT4oaW5zdGFuY2U/OiBULCB0eXBlPzogVHlwZTxUPiwgYXJncz86IFBhcnRpYWw8Rm9ybUZpZWxkR3JvdXBEZWZpbml0aW9uPFQ+Pik6IEZvcm1GaWVsZEdyb3VwRGVmaW5pdGlvbltdIHtcclxuICAgIC8qIENyZWF0ZSBhIG5ldyBpbnN0YW5jZSAqL1xyXG4gICAgaW5zdGFuY2UgPz89IFJlZmxlY3QuY29uc3RydWN0KHR5cGUhLCBbXSk7XHJcblxyXG4gICAgLyogQ2hlY2sgaWYgb3JpZ2luIGlzIG5vdCBkZWZpbmVkICovXHJcbiAgICBpZiAoIWluc3RhbmNlKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdPcmlnaW4gb2JqZWN0IG11c3QgYmUgZGVmaW5lZC4nKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiBHZXQgbWFpbiBmaWVsZHMgZ3JvdXBlZCBieSB0aGUgZ3JvdXAgbmFtZSAqL1xyXG4gICAgY29uc3QgbWFpbkZpZWxkR3JvdXBzID0gVXRpbHMuZ3JvdXBBcnJheUJ5KFJlZmxlY3QuZ2V0TWV0YWRhdGEoZm9ybUZpZWxkc01ldGFkYXRhS2V5LCBpbnN0YW5jZSkgYXMgRm9ybUZpZWxkRGVmaW5pdGlvbltdLCB4ID0+IHguZ3JvdXBOYW1lKTtcclxuXHJcbiAgICAvKiBHcm91cCB0aGUgZmllbGRzICovXHJcbiAgICB2YXIgZ3JvdXBzID0gQXJyYXkuZnJvbShtYWluRmllbGRHcm91cHMpLm1hcCgoW18sIHZhbHVlXSwgaTogbnVtYmVyKSA9PiBuZXcgRm9ybUZpZWxkR3JvdXBEZWZpbml0aW9uKHtcclxuICAgICAgICBuYW1lOiB2YWx1ZVswXS5ncm91cE5hbWUgfHwgdW5kZWZpbmVkLFxyXG4gICAgICAgIGhlYWRlcjogdmFsdWVbMF0uZ3JvdXBIZWFkZXIsXHJcbiAgICAgICAgdHlwZTogdHlwZSxcclxuICAgICAgICBpbnN0YW5jZTogaW5zdGFuY2UsXHJcbiAgICAgICAgaW5kZXg6IGFyZ3M/LmluZGV4ID8/IGksXHJcbiAgICAgICAgaGlkZGVuOiBhcmdzPy5oaWRkZW4sXHJcbiAgICAgICAgaGlkZTogYXJncz8uaGlkZSxcclxuICAgICAgICBncm91cHM6IChPYmplY3QudmFsdWVzKCh2YWx1ZSkucmVkdWNlKGZ1bmN0aW9uIChyOiBbRm9ybUZpZWxkRGVmaW5pdGlvbltdXSwgYTogRm9ybUZpZWxkRGVmaW5pdGlvbikge1xyXG4gICAgICAgICAgICBpZiAoYS5yb3cpIHtcclxuICAgICAgICAgICAgICAgIHJbYS5yb3ddID0gKHJbYS5yb3ddIHx8IFtdKTtcclxuICAgICAgICAgICAgICAgIHJbYS5yb3ddLnB1c2goYSk7XHJcbiAgICAgICAgICAgICAgICByW2Eucm93XS5mb3JFYWNoKCh4LCBpKSA9PiB4LmluZGV4ID0geC5pbmRleCB8fCBpKTtcclxuICAgICAgICAgICAgICAgIFV0aWxzLnNvcnRBcnJheShyW2Eucm93XSwgJ2luZGV4Jyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIDxhbnk+W107XHJcblxyXG4gICAgICAgIH0sIE9iamVjdC5jcmVhdGUobnVsbCkpKSBhcyBbRm9ybUZpZWxkRGVmaW5pdGlvbltdXSlcclxuICAgIH0pKTtcclxuXHJcbiAgICAvKiBHZXQgb2JqZWN0IGdyb3VwcyAqL1xyXG4gICAgdmFyIG9iamVjdEZpZWxkR3JvdXBzID0gUmVmbGVjdC5nZXRNZXRhZGF0YShmb3JtRmllbGRHcm91cHNNZXRhZGF0YUtleSwgaW5zdGFuY2UpO1xyXG4gICAgaWYgKG9iamVjdEZpZWxkR3JvdXBzICYmIEFycmF5LmlzQXJyYXkob2JqZWN0RmllbGRHcm91cHMpKSB7XHJcbiAgICAgICAgZ3JvdXBzID0gZ3JvdXBzLmNvbmNhdChvYmplY3RGaWVsZEdyb3Vwcyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyogU29ydCB0aGUgZ3JvdXBzIGJ5IGluZGV4ICovXHJcbiAgICBVdGlscy5zb3J0QXJyYXkoZ3JvdXBzLCAnaW5kZXgnKTtcclxuXHJcbiAgICByZXR1cm4gZ3JvdXBzO1xyXG59Il19
|
|
@@ -1,308 +0,0 @@
|
|
|
1
|
-
import { FocusMonitor } from "@angular/cdk/a11y";
|
|
2
|
-
import { coerceBooleanProperty } from "@angular/cdk/coercion";
|
|
3
|
-
import { ChangeDetectorRef, Directive, ElementRef, HostBinding, HostListener, Input } from "@angular/core";
|
|
4
|
-
import { FormGroupDirective, NgControl, NgForm } from "@angular/forms";
|
|
5
|
-
import { ErrorStateMatcher, mixinErrorState } from "@angular/material/core";
|
|
6
|
-
import { Subject } from "rxjs";
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@angular/forms";
|
|
9
|
-
import * as i2 from "@angular/material/core";
|
|
10
|
-
import * as i3 from "@angular/cdk/a11y";
|
|
11
|
-
/* Boilerplate for applying mixins to the custom field. */
|
|
12
|
-
const _AbstractMatFormFieldBase = mixinErrorState(class {
|
|
13
|
-
_defaultErrorStateMatcher;
|
|
14
|
-
_parentForm;
|
|
15
|
-
_parentFormGroup;
|
|
16
|
-
ngControl;
|
|
17
|
-
/**
|
|
18
|
-
* Emits whenever the component state changes and should cause the parent
|
|
19
|
-
* form-field to update. Implemented as part of `MatFormFieldControl`.
|
|
20
|
-
* @docs-private
|
|
21
|
-
*/
|
|
22
|
-
stateChanges = new Subject();
|
|
23
|
-
/**
|
|
24
|
-
* Constructor
|
|
25
|
-
* @param _defaultErrorStateMatcher
|
|
26
|
-
* @param _parentForm
|
|
27
|
-
* @param _parentFormGroup
|
|
28
|
-
* @param ngControl
|
|
29
|
-
*/
|
|
30
|
-
constructor(_defaultErrorStateMatcher, _parentForm, _parentFormGroup,
|
|
31
|
-
/**
|
|
32
|
-
* Form control bound to the component.
|
|
33
|
-
* Implemented as part of `MatFormFieldControl`.
|
|
34
|
-
* @docs-private
|
|
35
|
-
*/
|
|
36
|
-
ngControl) {
|
|
37
|
-
this._defaultErrorStateMatcher = _defaultErrorStateMatcher;
|
|
38
|
-
this._parentForm = _parentForm;
|
|
39
|
-
this._parentFormGroup = _parentFormGroup;
|
|
40
|
-
this.ngControl = ngControl;
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
/**
|
|
44
|
-
* AbstractMatFormField class
|
|
45
|
-
*/
|
|
46
|
-
export class AbstractMatFormField extends _AbstractMatFormFieldBase {
|
|
47
|
-
controlType;
|
|
48
|
-
ngControl;
|
|
49
|
-
_parentForm;
|
|
50
|
-
_parentFormGroup;
|
|
51
|
-
_defaultErrorStateMatcher;
|
|
52
|
-
_focusMonitor;
|
|
53
|
-
_elementRef;
|
|
54
|
-
changeDetectorRef;
|
|
55
|
-
/**
|
|
56
|
-
* The value of the control.
|
|
57
|
-
*/
|
|
58
|
-
_value = null;
|
|
59
|
-
/**
|
|
60
|
-
* Sets the value
|
|
61
|
-
*/
|
|
62
|
-
set value(value) {
|
|
63
|
-
let valueChanged = this._value != value;
|
|
64
|
-
this._value = value;
|
|
65
|
-
if (valueChanged && this.onChange) {
|
|
66
|
-
this.onChange(value);
|
|
67
|
-
}
|
|
68
|
-
setTimeout(() => this.stateChanges.next(), 50);
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Gets the value
|
|
72
|
-
*/
|
|
73
|
-
get value() {
|
|
74
|
-
return this._value;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* The placeholder for this control.
|
|
78
|
-
*/
|
|
79
|
-
_placeholder = "";
|
|
80
|
-
/**
|
|
81
|
-
* Sets the placeholder
|
|
82
|
-
*/
|
|
83
|
-
set placeholder(placeholder) {
|
|
84
|
-
this._placeholder = placeholder;
|
|
85
|
-
this.stateChanges.next();
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Gets the placeholder
|
|
89
|
-
*/
|
|
90
|
-
get placeholder() {
|
|
91
|
-
return this._placeholder;
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Whether the control is required.
|
|
95
|
-
*/
|
|
96
|
-
_required = false;
|
|
97
|
-
/**
|
|
98
|
-
* Sets the required
|
|
99
|
-
* @param required
|
|
100
|
-
*/
|
|
101
|
-
set required(required) {
|
|
102
|
-
this._required = coerceBooleanProperty(required);
|
|
103
|
-
this.stateChanges.next();
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Gets the required
|
|
107
|
-
*/
|
|
108
|
-
get required() {
|
|
109
|
-
return this._required;
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Readonly
|
|
113
|
-
*/
|
|
114
|
-
_readonly;
|
|
115
|
-
/**
|
|
116
|
-
* Multiple select option
|
|
117
|
-
*/
|
|
118
|
-
get readonly() { return this._readonly; }
|
|
119
|
-
set readonly(readonly) {
|
|
120
|
-
this._readonly = coerceBooleanProperty(readonly);
|
|
121
|
-
this.stateChanges.next();
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Whether the control is disabled.
|
|
125
|
-
*/
|
|
126
|
-
_disabled = false;
|
|
127
|
-
/**
|
|
128
|
-
* Gets the control is disabled.
|
|
129
|
-
* @param disabled
|
|
130
|
-
*/
|
|
131
|
-
set disabled(disabled) {
|
|
132
|
-
this._disabled = coerceBooleanProperty(disabled);
|
|
133
|
-
if (this.focused) {
|
|
134
|
-
this.focused = false;
|
|
135
|
-
this.stateChanges.next();
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Sets the disabled.
|
|
140
|
-
* @param disabled
|
|
141
|
-
*/
|
|
142
|
-
get disabled() {
|
|
143
|
-
if (this.ngControl?.disabled !== null) {
|
|
144
|
-
return this.ngControl?.disabled;
|
|
145
|
-
}
|
|
146
|
-
return this._disabled;
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Gets the empty value
|
|
150
|
-
*/
|
|
151
|
-
get empty() {
|
|
152
|
-
return !this._value;
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Whether the `MatFormField` label should try to float.
|
|
156
|
-
*/
|
|
157
|
-
get shouldLabelFloat() {
|
|
158
|
-
return this.focused || !this.empty;
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* The element ID
|
|
162
|
-
*/
|
|
163
|
-
static nextId = 0;
|
|
164
|
-
/**
|
|
165
|
-
* The element ID
|
|
166
|
-
*/
|
|
167
|
-
id;
|
|
168
|
-
/**
|
|
169
|
-
* Used to indicate the IDs of the elements that describe the object.
|
|
170
|
-
*/
|
|
171
|
-
describedBy = "";
|
|
172
|
-
/**
|
|
173
|
-
* Constructor
|
|
174
|
-
* @param controlType
|
|
175
|
-
* @param ngControl
|
|
176
|
-
* @param _parentForm
|
|
177
|
-
* @param _parentFormGroup
|
|
178
|
-
* @param _defaultErrorStateMatcher
|
|
179
|
-
* @param _focusMonitor
|
|
180
|
-
* @param _elementRef
|
|
181
|
-
*/
|
|
182
|
-
constructor(controlType, ngControl, _parentForm, _parentFormGroup, _defaultErrorStateMatcher, _focusMonitor, _elementRef, changeDetectorRef) {
|
|
183
|
-
super(_defaultErrorStateMatcher, _parentForm, _parentFormGroup, ngControl);
|
|
184
|
-
this.controlType = controlType;
|
|
185
|
-
this.ngControl = ngControl;
|
|
186
|
-
this._parentForm = _parentForm;
|
|
187
|
-
this._parentFormGroup = _parentFormGroup;
|
|
188
|
-
this._defaultErrorStateMatcher = _defaultErrorStateMatcher;
|
|
189
|
-
this._focusMonitor = _focusMonitor;
|
|
190
|
-
this._elementRef = _elementRef;
|
|
191
|
-
this.changeDetectorRef = changeDetectorRef;
|
|
192
|
-
this.id = `${this.controlType}-${AbstractMatFormField.nextId++}`;
|
|
193
|
-
if (this.ngControl) {
|
|
194
|
-
this.ngControl.valueAccessor = this;
|
|
195
|
-
}
|
|
196
|
-
_focusMonitor.monitor(this._elementRef.nativeElement, true).subscribe(origin => {
|
|
197
|
-
this.focused = !!origin;
|
|
198
|
-
this.stateChanges.next();
|
|
199
|
-
this.changeDetectorRef.markForCheck();
|
|
200
|
-
});
|
|
201
|
-
}
|
|
202
|
-
/**
|
|
203
|
-
* Registers a function called when the control value changes.
|
|
204
|
-
*/
|
|
205
|
-
registerOnChange(fn) {
|
|
206
|
-
this.onChange = fn;
|
|
207
|
-
}
|
|
208
|
-
/**
|
|
209
|
-
* Registers a callback function that is called by the forms API on initialization
|
|
210
|
-
* to update the form model on blur.
|
|
211
|
-
* @param fn
|
|
212
|
-
*/
|
|
213
|
-
registerOnTouched(fn) {
|
|
214
|
-
this.onTouched = fn;
|
|
215
|
-
}
|
|
216
|
-
/**
|
|
217
|
-
* Writes a new value to the element.
|
|
218
|
-
* @param value
|
|
219
|
-
*/
|
|
220
|
-
writeValue(value) {
|
|
221
|
-
this.value = value;
|
|
222
|
-
}
|
|
223
|
-
/**
|
|
224
|
-
* Sets the list of element IDs that currently describe this control.
|
|
225
|
-
* @param ids
|
|
226
|
-
*/
|
|
227
|
-
setDescribedByIds(ids) {
|
|
228
|
-
this.describedBy = ids.join(" ");
|
|
229
|
-
}
|
|
230
|
-
/**
|
|
231
|
-
* Whether the control is focused.
|
|
232
|
-
*/
|
|
233
|
-
focused = false;
|
|
234
|
-
/**
|
|
235
|
-
* Whether the control is touched.
|
|
236
|
-
*/
|
|
237
|
-
touched = false;
|
|
238
|
-
/**
|
|
239
|
-
* Whether the control is focused.
|
|
240
|
-
*/
|
|
241
|
-
onBlur() {
|
|
242
|
-
this.focused = false;
|
|
243
|
-
if (this.onTouched) {
|
|
244
|
-
this.onTouched();
|
|
245
|
-
}
|
|
246
|
-
this.stateChanges.next();
|
|
247
|
-
}
|
|
248
|
-
/**
|
|
249
|
-
* Handles a click on the control's container.
|
|
250
|
-
*/
|
|
251
|
-
onContainerClick() {
|
|
252
|
-
if (!this.focused) {
|
|
253
|
-
this.focus();
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
/**
|
|
257
|
-
* The registered callback function called when an input
|
|
258
|
-
* event occurs on the input element.
|
|
259
|
-
*/
|
|
260
|
-
onChange;
|
|
261
|
-
/**
|
|
262
|
-
* The registered callback function called when a blur
|
|
263
|
-
* event occurs on the input element.
|
|
264
|
-
*/
|
|
265
|
-
onTouched;
|
|
266
|
-
/**
|
|
267
|
-
* A callback method that performs change-detection, invoked
|
|
268
|
-
* after the default change-detector runs.
|
|
269
|
-
* See `KeyValueDiffers` and `IterableDiffers` for implementing
|
|
270
|
-
* custom change checking for collections.
|
|
271
|
-
*
|
|
272
|
-
*/
|
|
273
|
-
ngDoCheck() {
|
|
274
|
-
if (this.ngControl) {
|
|
275
|
-
this.updateErrorState();
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
/**
|
|
279
|
-
* A lifecycle method called before the directive's instance
|
|
280
|
-
* is destroyed. For internal use only.
|
|
281
|
-
*/
|
|
282
|
-
ngOnDestroy() {
|
|
283
|
-
this.stateChanges.complete();
|
|
284
|
-
this._focusMonitor.stopMonitoring(this._elementRef.nativeElement);
|
|
285
|
-
}
|
|
286
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AbstractMatFormField, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
|
|
287
|
-
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: AbstractMatFormField, inputs: { placeholder: "placeholder", required: "required", readonly: "readonly", disabled: "disabled" }, host: { listeners: { "focusout": "onBlur()" }, properties: { "id": "this.id", "attr.aria-describedBy": "this.describedBy" } }, usesInheritance: true, ngImport: i0 });
|
|
288
|
-
}
|
|
289
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AbstractMatFormField, decorators: [{
|
|
290
|
-
type: Directive
|
|
291
|
-
}], ctorParameters: () => [{ type: undefined }, { type: i1.NgControl }, { type: i1.NgForm }, { type: i1.FormGroupDirective }, { type: i2.ErrorStateMatcher }, { type: i3.FocusMonitor }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { placeholder: [{
|
|
292
|
-
type: Input
|
|
293
|
-
}], required: [{
|
|
294
|
-
type: Input
|
|
295
|
-
}], readonly: [{
|
|
296
|
-
type: Input
|
|
297
|
-
}], disabled: [{
|
|
298
|
-
type: Input
|
|
299
|
-
}], id: [{
|
|
300
|
-
type: HostBinding
|
|
301
|
-
}], describedBy: [{
|
|
302
|
-
type: HostBinding,
|
|
303
|
-
args: ["attr.aria-describedBy"]
|
|
304
|
-
}], onBlur: [{
|
|
305
|
-
type: HostListener,
|
|
306
|
-
args: ["focusout"]
|
|
307
|
-
}] } });
|
|
308
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtbWF0LWZvcm0tZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi9mb3Jtcy9oZWxwZXJzL2Fic3RyYWN0LW1hdC1mb3JtLWZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFXLFVBQVUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQXdCLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFFL0IsMERBQTBEO0FBQzFELE1BQU0seUJBQXlCLEdBQUcsZUFBZSxDQUM3QztJQWdCZTtJQUNBO0lBQ0E7SUFNQTtJQXZCWDs7OztPQUlHO0lBQ00sWUFBWSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFNUM7Ozs7OztPQU1HO0lBQ0gsWUFDVyx5QkFBNEMsRUFDNUMsV0FBbUIsRUFDbkIsZ0JBQW9DO0lBQzNDOzs7O09BSUc7SUFDSSxTQUFvQjtRQVJwQiw4QkFBeUIsR0FBekIseUJBQXlCLENBQW1CO1FBQzVDLGdCQUFXLEdBQVgsV0FBVyxDQUFRO1FBQ25CLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBb0I7UUFNcEMsY0FBUyxHQUFULFNBQVMsQ0FBVztJQUMzQixDQUFDO0NBQ1IsQ0FDSixDQUFDO0FBRUY7O0dBRUc7QUFFSCxNQUFNLE9BQWdCLG9C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LEVBQUUsQ0FBQztRQUM1QixDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFdBQVc7UUFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEUsQ0FBQzswSEF4UmlCLG9CQUFvQjs4R0FBcEIsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQUR6QyxTQUFTOzZRQXFDSyxXQUFXO3NCQURyQixLQUFLO2dCQXVCSyxRQUFRO3NCQURsQixLQUFLO2dCQXNCRixRQUFRO3NCQURYLEtBQUs7Z0JBaUJLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBNENDLEVBQUU7c0JBRFIsV0FBVztnQkFPTCxXQUFXO3NCQURqQixXQUFXO3VCQUFDLHVCQUF1QjtnQkFrRlYsTUFBTTtzQkFBL0IsWUFBWTt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNNb25pdG9yIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9hMTF5XCI7XHJcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gXCJAYW5ndWxhci9jZGsvY29lcmNpb25cIjtcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgRG9DaGVjaywgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtR3JvdXBEaXJlY3RpdmUsIE5nQ29udHJvbCwgTmdGb3JtIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IEVycm9yU3RhdGVNYXRjaGVyLCBtaXhpbkVycm9yU3RhdGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZVwiO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRDb250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGRcIjtcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG4vKiBCb2lsZXJwbGF0ZSBmb3IgYXBwbHlpbmcgbWl4aW5zIHRvIHRoZSBjdXN0b20gZmllbGQuICovXHJcbmNvbnN0IF9BYnN0cmFjdE1hdEZvcm1GaWVsZEJhc2UgPSBtaXhpbkVycm9yU3RhdGUoXHJcbiAgICBjbGFzcyB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBzdGF0ZSBjaGFuZ2VzIGFuZCBzaG91bGQgY2F1c2UgdGhlIHBhcmVudFxyXG4gICAgICAgICAqIGZvcm0tZmllbGQgdG8gdXBkYXRlLiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIGBNYXRGb3JtRmllbGRDb250cm9sYC5cclxuICAgICAgICAgKiBAZG9jcy1wcml2YXRlXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcmVhZG9ubHkgc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQ29uc3RydWN0b3JcclxuICAgICAgICAgKiBAcGFyYW0gX2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlciBcclxuICAgICAgICAgKiBAcGFyYW0gX3BhcmVudEZvcm0gXHJcbiAgICAgICAgICogQHBhcmFtIF9wYXJlbnRGb3JtR3JvdXAgXHJcbiAgICAgICAgICogQHBhcmFtIG5nQ29udHJvbCBcclxuICAgICAgICAgKi9cclxuICAgICAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICAgICAgcHVibGljIF9kZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXI6IEVycm9yU3RhdGVNYXRjaGVyLFxyXG4gICAgICAgICAgICBwdWJsaWMgX3BhcmVudEZvcm06IE5nRm9ybSxcclxuICAgICAgICAgICAgcHVibGljIF9wYXJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZSxcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIEZvcm0gY29udHJvbCBib3VuZCB0byB0aGUgY29tcG9uZW50LlxyXG4gICAgICAgICAgICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIGBNYXRGb3JtRmllbGRDb250cm9sYC5cclxuICAgICAgICAgICAgICogQGRvY3MtcHJpdmF0ZVxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sLFxyXG4gICAgICAgICkgeyB9XHJcbiAgICB9LFxyXG4pO1xyXG5cclxuLyoqXHJcbiAqIEFic3RyYWN0TWF0Rm9ybUZpZWxkIGNsYXNzXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0TWF0Rm9ybUZpZWxkPFQ+IGV4dGVuZHMgX0Fic3RyYWN0TWF0Rm9ybUZpZWxkQmFzZSBpbXBsZW1lbnRzIERvQ2hlY2ssIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE1hdEZvcm1GaWVsZENvbnRyb2w8VD4ge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHZhbHVlIG9mIHRoZSBjb250cm9sLlxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX3ZhbHVlOiBUIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSB2YWx1ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBUKSB7XHJcbiAgICAgICAgbGV0IHZhbHVlQ2hhbmdlZCA9IHRoaXMuX3ZhbHVlICE9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgaWYgKHZhbHVlQ2hhbmdlZCAmJiB0aGlzLm9uQ2hhbmdlKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCksIDUwKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIHZhbHVlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogVCB8IG51bGwge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBwbGFjZWhvbGRlciBmb3IgdGhpcyBjb250cm9sLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgX3BsYWNlaG9sZGVyOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgcGxhY2Vob2xkZXJcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgcGxhY2Vob2xkZXIocGxhY2Vob2xkZXI6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3BsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXI7XHJcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgcGxhY2Vob2xkZXJcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBXaGV0aGVyIHRoZSBjb250cm9sIGlzIHJlcXVpcmVkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgX3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSByZXF1aXJlZFxyXG4gICAgICogQHBhcmFtIHJlcXVpcmVkXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IHJlcXVpcmVkKHJlcXVpcmVkOiBhbnkpIHtcclxuICAgICAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShyZXF1aXJlZCk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgcmVxdWlyZWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCByZXF1aXJlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZWFkb25seVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgX3JlYWRvbmx5PzogYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE11bHRpcGxlIHNlbGVjdCBvcHRpb25cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCByZWFkb25seSgpIHsgcmV0dXJuIHRoaXMuX3JlYWRvbmx5OyB9XHJcbiAgICBzZXQgcmVhZG9ubHkocmVhZG9ubHkpIHtcclxuICAgICAgICB0aGlzLl9yZWFkb25seSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShyZWFkb25seSk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogV2hldGhlciB0aGUgY29udHJvbCBpcyBkaXNhYmxlZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIF9kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgY29udHJvbCBpcyBkaXNhYmxlZC5cclxuICAgICAqIEBwYXJhbSBkaXNhYmxlZFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBkaXNhYmxlZChkaXNhYmxlZDogYW55KSB7XHJcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkoZGlzYWJsZWQpO1xyXG4gICAgICAgIGlmICh0aGlzLmZvY3VzZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBkaXNhYmxlZC5cclxuICAgICAqIEBwYXJhbSBkaXNhYmxlZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IGRpc2FibGVkKCkge1xyXG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbD8uZGlzYWJsZWQgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmdDb250cm9sPy5kaXNhYmxlZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIGVtcHR5IHZhbHVlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgZW1wdHkoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICF0aGlzLl92YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFdoZXRoZXIgdGhlIGBNYXRGb3JtRmllbGRgIGxhYmVsIHNob3VsZCB0cnkgdG8gZmxvYXQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgc2hvdWxkTGFiZWxGbG9hdCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5mb2N1c2VkIHx8ICF0aGlzLmVtcHR5O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGVsZW1lbnQgSURcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgbmV4dElkOiBudW1iZXIgPSAwO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGVsZW1lbnQgSURcclxuICAgICAqL1xyXG4gICAgQEhvc3RCaW5kaW5nKClcclxuICAgIHB1YmxpYyBpZDogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXNlZCB0byBpbmRpY2F0ZSB0aGUgSURzIG9mIHRoZSBlbGVtZW50cyB0aGF0IGRlc2NyaWJlIHRoZSBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIEBIb3N0QmluZGluZyhcImF0dHIuYXJpYS1kZXNjcmliZWRCeVwiKVxyXG4gICAgcHVibGljIGRlc2NyaWJlZEJ5OiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uc3RydWN0b3JcclxuICAgICAqIEBwYXJhbSBjb250cm9sVHlwZSBcclxuICAgICAqIEBwYXJhbSBuZ0NvbnRyb2wgXHJcbiAgICAgKiBAcGFyYW0gX3BhcmVudEZvcm0gXHJcbiAgICAgKiBAcGFyYW0gX3BhcmVudEZvcm1Hcm91cCBcclxuICAgICAqIEBwYXJhbSBfZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyIFxyXG4gICAgICogQHBhcmFtIF9mb2N1c01vbml0b3IgXHJcbiAgICAgKiBAcGFyYW0gX2VsZW1lbnRSZWYgXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBjb250cm9sVHlwZTogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcclxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgX3BhcmVudEZvcm06IE5nRm9ybSxcclxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgX3BhcmVudEZvcm1Hcm91cDogRm9ybUdyb3VwRGlyZWN0aXZlLFxyXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBfZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyOiBFcnJvclN0YXRlTWF0Y2hlcixcclxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2ZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLFxyXG4gICAgICAgIHByb3RlY3RlZCByZWFkb25seSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihfZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyLCBfcGFyZW50Rm9ybSwgX3BhcmVudEZvcm1Hcm91cCwgbmdDb250cm9sKTtcclxuICAgICAgICB0aGlzLmlkID0gYCR7dGhpcy5jb250cm9sVHlwZX0tJHtBYnN0cmFjdE1hdEZvcm1GaWVsZC5uZXh0SWQrK31gO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcclxuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBfZm9jdXNNb25pdG9yLm1vbml0b3IodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0cnVlKS5zdWJzY3JpYmUob3JpZ2luID0+IHtcclxuICAgICAgICAgICAgdGhpcy5mb2N1c2VkID0gISFvcmlnaW47XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlZ2lzdGVycyBhIGZ1bmN0aW9uIGNhbGxlZCB3aGVuIHRoZSBjb250cm9sIHZhbHVlIGNoYW5nZXMuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogVCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlZ2lzdGVycyBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIGJ5IHRoZSBmb3JtcyBBUEkgb24gaW5pdGlhbGl6YXRpb25cclxuICAgICAqIHRvIHVwZGF0ZSB0aGUgZm9ybSBtb2RlbCBvbiBibHVyLlxyXG4gICAgICogQHBhcmFtIGZuIFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogV3JpdGVzIGEgbmV3IHZhbHVlIHRvIHRoZSBlbGVtZW50LlxyXG4gICAgICogQHBhcmFtIHZhbHVlIFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogVCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIGxpc3Qgb2YgZWxlbWVudCBJRHMgdGhhdCBjdXJyZW50bHkgZGVzY3JpYmUgdGhpcyBjb250cm9sLlxyXG4gICAgICogQHBhcmFtIGlkcyBcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldERlc2NyaWJlZEJ5SWRzKGlkczogc3RyaW5nW10pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRlc2NyaWJlZEJ5ID0gaWRzLmpvaW4oXCIgXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogV2hldGhlciB0aGUgY29udHJvbCBpcyBmb2N1c2VkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZm9jdXNlZCA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogV2hldGhlciB0aGUgY29udHJvbCBpcyB0b3VjaGVkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdG91Y2hlZCA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogV2hldGhlciB0aGUgY29udHJvbCBpcyBmb2N1c2VkLlxyXG4gICAgICovXHJcbiAgICBASG9zdExpc3RlbmVyKFwiZm9jdXNvdXRcIikgb25CbHVyKCkge1xyXG4gICAgICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xyXG4gICAgICAgIGlmICh0aGlzLm9uVG91Y2hlZCkge1xyXG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyBmb2N1cyBvZiB0aGUgY29udHJvbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWJzdHJhY3QgZm9jdXMoKTogdm9pZDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEhhbmRsZXMgYSBjbGljayBvbiB0aGUgY29udHJvbCdzIGNvbnRhaW5lci5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG9uQ29udGFpbmVyQ2xpY2soKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmZvY3VzZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5mb2N1cygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSByZWdpc3RlcmVkIGNhbGxiYWNrIGZ1bmN0aW9uIGNhbGxlZCB3aGVuIGFuIGlucHV0IFxyXG4gICAgICogZXZlbnQgb2NjdXJzIG9uIHRoZSBpbnB1dCBlbGVtZW50LlxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgb25DaGFuZ2U/OiAodmFsdWU6IFQpID0+IHZvaWQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgcmVnaXN0ZXJlZCBjYWxsYmFjayBmdW5jdGlvbiBjYWxsZWQgd2hlbiBhIGJsdXIgXHJcbiAgICAgKiBldmVudCBvY2N1cnMgb24gdGhlIGlucHV0IGVsZW1lbnQuXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBvblRvdWNoZWQ/OiAoKSA9PiB2b2lkO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQSBjYWxsYmFjayBtZXRob2QgdGhhdCBwZXJmb3JtcyBjaGFuZ2UtZGV0ZWN0aW9uLCBpbnZva2VkXHJcbiAgICAgKiBhZnRlciB0aGUgZGVmYXVsdCBjaGFuZ2UtZGV0ZWN0b3IgcnVucy5cclxuICAgICAqIFNlZSBgS2V5VmFsdWVEaWZmZXJzYCBhbmQgYEl0ZXJhYmxlRGlmZmVyc2AgZm9yIGltcGxlbWVudGluZ1xyXG4gICAgICogY3VzdG9tIGNoYW5nZSBjaGVja2luZyBmb3IgY29sbGVjdGlvbnMuXHJcbiAgICAgKlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmdEb0NoZWNrKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUVycm9yU3RhdGUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBIGxpZmVjeWNsZSBtZXRob2QgY2FsbGVkIGJlZm9yZSB0aGUgZGlyZWN0aXZlJ3MgaW5zdGFuY2VcclxuICAgICAqIGlzIGRlc3Ryb3llZC4gRm9yIGludGVybmFsIHVzZSBvbmx5LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMuY29tcGxldGUoKTtcclxuICAgICAgICB0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICAgIH1cclxufSJdfQ==
|