@koobiq/components 16.0.0-beta.1
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/LICENSE +21 -0
- package/README.md +6 -0
- package/_index.scss +3 -0
- package/alert/README.md +0 -0
- package/alert/_alert-theme.scss +61 -0
- package/alert/alert.component.d.ts +22 -0
- package/alert/alert.component.scss +81 -0
- package/alert/alert.module.d.ts +10 -0
- package/alert/index.d.ts +1 -0
- package/alert/public-api.d.ts +2 -0
- package/autocomplete/README.md +0 -0
- package/autocomplete/_autocomplete-theme.scss +21 -0
- package/autocomplete/autocomplete-origin.directive.d.ts +12 -0
- package/autocomplete/autocomplete-trigger.directive.d.ts +167 -0
- package/autocomplete/autocomplete.component.d.ts +73 -0
- package/autocomplete/autocomplete.module.d.ts +12 -0
- package/autocomplete/autocomplete.scss +63 -0
- package/autocomplete/index.d.ts +1 -0
- package/autocomplete/public-api.d.ts +4 -0
- package/button/README.md +0 -0
- package/button/_button-base.scss +69 -0
- package/button/_button-theme.scss +180 -0
- package/button/button.component.d.ts +58 -0
- package/button/button.module.d.ts +11 -0
- package/button/button.scss +59 -0
- package/button/index.d.ts +1 -0
- package/button/public-api.d.ts +2 -0
- package/button-toggle/README.md +0 -0
- package/button-toggle/_button-toggle-theme.scss +92 -0
- package/button-toggle/button-toggle.component.d.ts +145 -0
- package/button-toggle/button-toggle.module.d.ts +10 -0
- package/button-toggle/button-toggle.scss +163 -0
- package/button-toggle/index.d.ts +1 -0
- package/button-toggle/public-api.d.ts +2 -0
- package/card/README.md +0 -0
- package/card/_card-theme.scss +61 -0
- package/card/card.component.d.ts +28 -0
- package/card/card.component.scss +40 -0
- package/card/card.module.d.ts +10 -0
- package/card/index.d.ts +1 -0
- package/card/public-api.d.ts +2 -0
- package/checkbox/README.md +1 -0
- package/checkbox/_checkbox-theme.scss +120 -0
- package/checkbox/checkbox-config.d.ts +13 -0
- package/checkbox/checkbox-module.d.ts +9 -0
- package/checkbox/checkbox-required-validator.d.ts +13 -0
- package/checkbox/checkbox.d.ts +133 -0
- package/checkbox/checkbox.scss +177 -0
- package/checkbox/index.d.ts +1 -0
- package/checkbox/public-api.d.ts +4 -0
- package/code-block/README.md +32 -0
- package/code-block/_code-block-theme.scss +326 -0
- package/code-block/actionbar.component.d.ts +22 -0
- package/code-block/actionbar.component.scss +27 -0
- package/code-block/code-block.component.d.ts +74 -0
- package/code-block/code-block.module.d.ts +14 -0
- package/code-block/code-block.scss +128 -0
- package/code-block/code-block.types.d.ts +16 -0
- package/code-block/index.d.ts +1 -0
- package/code-block/public-api.d.ts +3 -0
- package/core/_index.scss +1 -0
- package/core/animation/animation.d.ts +6 -0
- package/core/animation/fade-animations.d.ts +2 -0
- package/core/animation/index.d.ts +3 -0
- package/core/animation/select-animations.d.ts +12 -0
- package/core/common-behaviors/color.d.ts +33 -0
- package/core/common-behaviors/common-module.d.ts +25 -0
- package/core/common-behaviors/constructor.d.ts +9 -0
- package/core/common-behaviors/disabled.d.ts +8 -0
- package/core/common-behaviors/error-state.d.ts +28 -0
- package/core/common-behaviors/index.d.ts +5 -0
- package/core/common-behaviors/tabindex.d.ts +8 -0
- package/core/datetime/date-adapter.d.ts +12 -0
- package/core/datetime/date-formats.d.ts +4 -0
- package/core/datetime/index.d.ts +2 -0
- package/core/error/error-options.d.ts +14 -0
- package/core/form-field/form-field-ref.d.ts +11 -0
- package/core/form-field/index.d.ts +1 -0
- package/core/formatters/date/formatter.d.ts +9 -0
- package/core/formatters/date/formatter.pipe.d.ts +109 -0
- package/core/formatters/index.d.ts +11 -0
- package/core/formatters/number/formatter.d.ts +37 -0
- package/core/forms/_forms-theme.scss +34 -0
- package/core/forms/_forms.scss +114 -0
- package/core/forms/forms-module.d.ts +7 -0
- package/core/forms/forms.directive.d.ts +22 -0
- package/core/forms/index.d.ts +2 -0
- package/core/highlight/_highlight-theme.scss +8 -0
- package/core/highlight/highlight.pipe.d.ts +8 -0
- package/core/highlight/index.d.ts +9 -0
- package/core/index.d.ts +1 -0
- package/core/label/label-options.d.ts +13 -0
- package/core/line/line.d.ts +28 -0
- package/core/locales/en-US.d.ts +11 -0
- package/core/locales/es-LA.d.ts +7 -0
- package/core/locales/fa-IR.d.ts +7 -0
- package/core/locales/index.d.ts +4 -0
- package/core/locales/locale-service.d.ts +63 -0
- package/core/locales/locale-service.module.d.ts +6 -0
- package/core/locales/pt-BR.d.ts +7 -0
- package/core/locales/ru-RU.d.ts +11 -0
- package/core/locales/zh-CN.d.ts +7 -0
- package/core/option/_optgroup-theme.scss +25 -0
- package/core/option/_option-action-theme.scss +41 -0
- package/core/option/_option-theme.scss +44 -0
- package/core/option/action.d.ts +44 -0
- package/core/option/action.scss +28 -0
- package/core/option/index.d.ts +4 -0
- package/core/option/optgroup.d.ts +16 -0
- package/core/option/optgroup.scss +16 -0
- package/core/option/option-module.d.ts +11 -0
- package/core/option/option.d.ts +116 -0
- package/core/option/option.scss +62 -0
- package/core/overlay/overlay-position-map.d.ts +34 -0
- package/core/pop-up/_pop-up.scss +129 -0
- package/core/pop-up/constants.d.ts +30 -0
- package/core/pop-up/index.d.ts +3 -0
- package/core/pop-up/pop-up-trigger.d.ts +71 -0
- package/core/pop-up/pop-up.d.ts +36 -0
- package/core/public-api.d.ts +21 -0
- package/core/select/constants.d.ts +23 -0
- package/core/select/errors.d.ts +19 -0
- package/core/select/events.d.ts +1 -0
- package/core/select/index.d.ts +3 -0
- package/core/selection/constants.d.ts +4 -0
- package/core/selection/index.d.ts +3 -0
- package/core/selection/pseudo-checkbox/_pseudo-checkbox-theme.scss +48 -0
- package/core/selection/pseudo-checkbox/pseudo-checkbox.d.ts +32 -0
- package/core/selection/pseudo-checkbox/pseudo-checkbox.module.d.ts +8 -0
- package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +77 -0
- package/core/services/measure-scrollbar.service.d.ts +11 -0
- package/core/styles/_core.scss +11 -0
- package/core/styles/_koobiq-theme.scss +153 -0
- package/core/styles/_tokens.kbq.import.scss +4 -0
- package/core/styles/_tokens.scss +6 -0
- package/core/styles/_variables.scss +9 -0
- package/core/styles/common/_animation.scss +35 -0
- package/core/styles/common/_button.scss +10 -0
- package/core/styles/common/_clearfix.scss +13 -0
- package/core/styles/common/_groups.scss +119 -0
- package/core/styles/common/_index.scss +13 -0
- package/core/styles/common/_input.scss +28 -0
- package/core/styles/common/_layout.scss +8 -0
- package/core/styles/common/_list.scss +46 -0
- package/core/styles/common/_overlay.scss +173 -0
- package/core/styles/common/_popup.scss +11 -0
- package/core/styles/common/_rtl.scss +33 -0
- package/core/styles/common/_size.scss +8 -0
- package/core/styles/common/_vendor-prefixes.scss +24 -0
- package/core/styles/common/_visually-hidden.scss +36 -0
- package/core/styles/functions/_index.scss +3 -0
- package/core/styles/functions/_number.scss +65 -0
- package/core/styles/functions/_string.scss +19 -0
- package/core/styles/functions/_timing.scss +30 -0
- package/core/styles/theming/_badges-theme.scss +118 -0
- package/core/styles/theming/_badges.scss +57 -0
- package/core/styles/theming/_components-theming.scss +1218 -0
- package/core/styles/theming/_index.scss +2 -0
- package/core/styles/theming/_scrollbars-theme.scss +77 -0
- package/core/styles/theming/_theming.scss +144 -0
- package/core/styles/theming/prebuilt/light-theme.scss +20 -0
- package/core/styles/typography/_index.scss +2 -0
- package/core/styles/typography/_typography-utils.scss +78 -0
- package/core/styles/typography/_typography.scss +191 -0
- package/core/styles/visual/_body.scss +35 -0
- package/core/styles/visual/_index.scss +3 -0
- package/core/styles/visual/_layout-media.scss +7 -0
- package/core/styles/visual/_layout.scss +527 -0
- package/core/title/index.d.ts +1 -0
- package/core/title/title-text-ref.d.ts +6 -0
- package/core/utils/data-size/config.d.ts +20 -0
- package/core/utils/data-size/data-size.pipe.d.ts +13 -0
- package/core/utils/data-size/index.d.ts +3 -0
- package/core/utils/data-size/size.d.ts +16 -0
- package/core/utils/index.d.ts +1 -0
- package/core/utils/public-api.d.ts +2 -0
- package/core/utils/utils.d.ts +2 -0
- package/core/validation/index.d.ts +1 -0
- package/core/validation/validation.d.ts +7 -0
- package/core/version.d.ts +2 -0
- package/datepicker/README.md +0 -0
- package/datepicker/_datepicker-theme.scss +101 -0
- package/datepicker/calendar-body.component.d.ts +55 -0
- package/datepicker/calendar-body.scss +61 -0
- package/datepicker/calendar-header.component.d.ts +45 -0
- package/datepicker/calendar-header.scss +75 -0
- package/datepicker/calendar.component.d.ts +81 -0
- package/datepicker/calendar.scss +68 -0
- package/datepicker/datepicker-animations.d.ts +9 -0
- package/datepicker/datepicker-content.scss +33 -0
- package/datepicker/datepicker-errors.d.ts +2 -0
- package/datepicker/datepicker-input.directive.d.ts +180 -0
- package/datepicker/datepicker-input.scss +15 -0
- package/datepicker/datepicker-intl.d.ts +32 -0
- package/datepicker/datepicker-module.d.ts +20 -0
- package/datepicker/datepicker-toggle.component.d.ts +35 -0
- package/datepicker/datepicker-toggle.scss +41 -0
- package/datepicker/datepicker.component.d.ts +148 -0
- package/datepicker/index.d.ts +1 -0
- package/datepicker/month-view.component.d.ts +74 -0
- package/datepicker/public-api.d.ts +10 -0
- package/divider/README.md +0 -0
- package/divider/_divider-theme.scss +10 -0
- package/divider/divider.component.d.ts +14 -0
- package/divider/divider.module.d.ts +8 -0
- package/divider/divider.scss +47 -0
- package/divider/index.d.ts +1 -0
- package/divider/public-api.d.ts +2 -0
- package/dl/README.md +0 -0
- package/dl/_dl-theme.scss +86 -0
- package/dl/dl.component.d.ts +27 -0
- package/dl/dl.module.d.ts +10 -0
- package/dl/dl.scss +99 -0
- package/dl/index.d.ts +1 -0
- package/dl/public-api.d.ts +2 -0
- package/dropdown/_dropdown-theme.scss +85 -0
- package/dropdown/dropdown-animations.d.ts +11 -0
- package/dropdown/dropdown-content.directive.d.ts +32 -0
- package/dropdown/dropdown-errors.d.ts +17 -0
- package/dropdown/dropdown-item.component.d.ts +52 -0
- package/dropdown/dropdown-item.scss +82 -0
- package/dropdown/dropdown-trigger.directive.d.ts +136 -0
- package/dropdown/dropdown.component.d.ts +121 -0
- package/dropdown/dropdown.module.d.ts +13 -0
- package/dropdown/dropdown.scss +79 -0
- package/dropdown/dropdown.types.d.ts +53 -0
- package/dropdown/index.d.ts +1 -0
- package/dropdown/public-api.d.ts +8 -0
- package/ellipsis-center/ellipsis-center.directive.d.ts +27 -0
- package/ellipsis-center/index.d.ts +1 -0
- package/ellipsis-center/public-api.d.ts +1 -0
- package/esm2022/alert/alert.component.mjs +67 -0
- package/esm2022/alert/alert.module.mjs +44 -0
- package/esm2022/alert/index.mjs +2 -0
- package/esm2022/alert/koobiq-components-alert.mjs +5 -0
- package/esm2022/alert/public-api.mjs +3 -0
- package/esm2022/autocomplete/autocomplete-origin.directive.mjs +21 -0
- package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +552 -0
- package/esm2022/autocomplete/autocomplete.component.mjs +153 -0
- package/esm2022/autocomplete/autocomplete.module.mjs +34 -0
- package/esm2022/autocomplete/index.mjs +2 -0
- package/esm2022/autocomplete/koobiq-components-autocomplete.mjs +5 -0
- package/esm2022/autocomplete/public-api.mjs +5 -0
- package/esm2022/button/button.component.mjs +164 -0
- package/esm2022/button/button.module.mjs +40 -0
- package/esm2022/button/index.mjs +2 -0
- package/esm2022/button/koobiq-components-button.mjs +5 -0
- package/esm2022/button/public-api.mjs +3 -0
- package/esm2022/button-toggle/button-toggle.component.mjs +381 -0
- package/esm2022/button-toggle/button-toggle.module.mjs +20 -0
- package/esm2022/button-toggle/index.mjs +2 -0
- package/esm2022/button-toggle/koobiq-components-button-toggle.mjs +5 -0
- package/esm2022/button-toggle/public-api.mjs +3 -0
- package/esm2022/card/card.component.mjs +80 -0
- package/esm2022/card/card.module.mjs +28 -0
- package/esm2022/card/index.mjs +2 -0
- package/esm2022/card/koobiq-components-card.mjs +5 -0
- package/esm2022/card/public-api.mjs +3 -0
- package/esm2022/checkbox/checkbox-config.mjs +6 -0
- package/esm2022/checkbox/checkbox-module.mjs +19 -0
- package/esm2022/checkbox/checkbox-required-validator.mjs +27 -0
- package/esm2022/checkbox/checkbox.mjs +304 -0
- package/esm2022/checkbox/index.mjs +2 -0
- package/esm2022/checkbox/koobiq-components-checkbox.mjs +5 -0
- package/esm2022/checkbox/public-api.mjs +5 -0
- package/esm2022/code-block/actionbar.component.mjs +67 -0
- package/esm2022/code-block/code-block.component.mjs +157 -0
- package/esm2022/code-block/code-block.module.mjs +60 -0
- package/esm2022/code-block/code-block.types.mjs +2 -0
- package/esm2022/code-block/index.mjs +2 -0
- package/esm2022/code-block/koobiq-components-code-block.mjs +5 -0
- package/esm2022/code-block/public-api.mjs +4 -0
- package/esm2022/core/animation/animation.mjs +8 -0
- package/esm2022/core/animation/fade-animations.mjs +9 -0
- package/esm2022/core/animation/index.mjs +4 -0
- package/esm2022/core/animation/select-animations.mjs +45 -0
- package/esm2022/core/common-behaviors/color.mjs +45 -0
- package/esm2022/core/common-behaviors/common-module.mjs +83 -0
- package/esm2022/core/common-behaviors/constructor.mjs +2 -0
- package/esm2022/core/common-behaviors/disabled.mjs +17 -0
- package/esm2022/core/common-behaviors/error-state.mjs +21 -0
- package/esm2022/core/common-behaviors/index.mjs +6 -0
- package/esm2022/core/common-behaviors/tabindex.mjs +18 -0
- package/esm2022/core/datetime/date-adapter.mjs +15 -0
- package/esm2022/core/datetime/date-formats.mjs +3 -0
- package/esm2022/core/datetime/index.mjs +3 -0
- package/esm2022/core/error/error-options.mjs +26 -0
- package/esm2022/core/form-field/form-field-ref.mjs +8 -0
- package/esm2022/core/form-field/index.mjs +2 -0
- package/esm2022/core/formatters/date/formatter.mjs +21 -0
- package/esm2022/core/formatters/date/formatter.pipe.mjs +220 -0
- package/esm2022/core/formatters/index.mjs +78 -0
- package/esm2022/core/formatters/number/formatter.mjs +129 -0
- package/esm2022/core/forms/forms-module.mjs +24 -0
- package/esm2022/core/forms/forms.directive.mjs +66 -0
- package/esm2022/core/forms/index.mjs +3 -0
- package/esm2022/core/highlight/highlight.pipe.mjs +23 -0
- package/esm2022/core/highlight/index.mjs +19 -0
- package/esm2022/core/index.mjs +2 -0
- package/esm2022/core/koobiq-components-core.mjs +5 -0
- package/esm2022/core/label/label-options.mjs +4 -0
- package/esm2022/core/line/line.mjs +70 -0
- package/esm2022/core/locales/en-US.mjs +10 -0
- package/esm2022/core/locales/es-LA.mjs +6 -0
- package/esm2022/core/locales/fa-IR.mjs +6 -0
- package/esm2022/core/locales/index.mjs +5 -0
- package/esm2022/core/locales/locale-service.mjs +70 -0
- package/esm2022/core/locales/locale-service.module.mjs +19 -0
- package/esm2022/core/locales/pt-BR.mjs +6 -0
- package/esm2022/core/locales/ru-RU.mjs +10 -0
- package/esm2022/core/locales/zh-CN.mjs +6 -0
- package/esm2022/core/option/action.mjs +122 -0
- package/esm2022/core/option/index.mjs +5 -0
- package/esm2022/core/option/optgroup.mjs +31 -0
- package/esm2022/core/option/option-module.mjs +21 -0
- package/esm2022/core/option/option.mjs +262 -0
- package/esm2022/core/overlay/overlay-position-map.mjs +244 -0
- package/esm2022/core/pop-up/constants.mjs +36 -0
- package/esm2022/core/pop-up/index.mjs +4 -0
- package/esm2022/core/pop-up/pop-up-trigger.mjs +247 -0
- package/esm2022/core/pop-up/pop-up.mjs +94 -0
- package/esm2022/core/public-api.mjs +22 -0
- package/esm2022/core/select/constants.mjs +27 -0
- package/esm2022/core/select/errors.mjs +26 -0
- package/esm2022/core/select/events.mjs +2 -0
- package/esm2022/core/select/index.mjs +4 -0
- package/esm2022/core/selection/constants.mjs +6 -0
- package/esm2022/core/selection/index.mjs +4 -0
- package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +52 -0
- package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.module.mjs +18 -0
- package/esm2022/core/services/measure-scrollbar.service.mjs +48 -0
- package/esm2022/core/title/index.mjs +2 -0
- package/esm2022/core/title/title-text-ref.mjs +3 -0
- package/esm2022/core/utils/data-size/config.mjs +22 -0
- package/esm2022/core/utils/data-size/data-size.pipe.mjs +32 -0
- package/esm2022/core/utils/data-size/index.mjs +4 -0
- package/esm2022/core/utils/data-size/size.mjs +50 -0
- package/esm2022/core/utils/index.mjs +2 -0
- package/esm2022/core/utils/public-api.mjs +3 -0
- package/esm2022/core/utils/utils.mjs +5 -0
- package/esm2022/core/validation/index.mjs +2 -0
- package/esm2022/core/validation/validation.mjs +5 -0
- package/esm2022/core/version.mjs +3 -0
- package/esm2022/datepicker/calendar-body.component.mjs +87 -0
- package/esm2022/datepicker/calendar-header.component.mjs +134 -0
- package/esm2022/datepicker/calendar.component.mjs +175 -0
- package/esm2022/datepicker/datepicker-animations.mjs +32 -0
- package/esm2022/datepicker/datepicker-errors.mjs +6 -0
- package/esm2022/datepicker/datepicker-input.directive.mjs +954 -0
- package/esm2022/datepicker/datepicker-intl.mjs +40 -0
- package/esm2022/datepicker/datepicker-module.mjs +97 -0
- package/esm2022/datepicker/datepicker-toggle.component.mjs +86 -0
- package/esm2022/datepicker/datepicker.component.mjs +393 -0
- package/esm2022/datepicker/index.mjs +2 -0
- package/esm2022/datepicker/koobiq-components-datepicker.mjs +5 -0
- package/esm2022/datepicker/month-view.component.mjs +158 -0
- package/esm2022/datepicker/public-api.mjs +11 -0
- package/esm2022/divider/divider.component.mjs +49 -0
- package/esm2022/divider/divider.module.mjs +18 -0
- package/esm2022/divider/index.mjs +2 -0
- package/esm2022/divider/koobiq-components-divider.mjs +5 -0
- package/esm2022/divider/public-api.mjs +3 -0
- package/esm2022/dl/dl.component.mjs +82 -0
- package/esm2022/dl/dl.module.mjs +40 -0
- package/esm2022/dl/index.mjs +2 -0
- package/esm2022/dl/koobiq-components-dl.mjs +5 -0
- package/esm2022/dl/public-api.mjs +3 -0
- package/esm2022/dropdown/dropdown-animations.mjs +41 -0
- package/esm2022/dropdown/dropdown-content.directive.mjs +64 -0
- package/esm2022/dropdown/dropdown-errors.mjs +29 -0
- package/esm2022/dropdown/dropdown-item.component.mjs +146 -0
- package/esm2022/dropdown/dropdown-trigger.directive.mjs +489 -0
- package/esm2022/dropdown/dropdown.component.mjs +292 -0
- package/esm2022/dropdown/dropdown.module.mjs +48 -0
- package/esm2022/dropdown/dropdown.types.mjs +24 -0
- package/esm2022/dropdown/index.mjs +2 -0
- package/esm2022/dropdown/koobiq-components-dropdown.mjs +5 -0
- package/esm2022/dropdown/public-api.mjs +9 -0
- package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +106 -0
- package/esm2022/ellipsis-center/index.mjs +2 -0
- package/esm2022/ellipsis-center/koobiq-components-ellipsis-center.mjs +5 -0
- package/esm2022/ellipsis-center/public-api.mjs +2 -0
- package/esm2022/file-upload/file-drop.mjs +43 -0
- package/esm2022/file-upload/file-upload.mjs +4 -0
- package/esm2022/file-upload/file-upload.module.mjs +66 -0
- package/esm2022/file-upload/index.mjs +2 -0
- package/esm2022/file-upload/koobiq-components-file-upload.mjs +5 -0
- package/esm2022/file-upload/multiple-file-upload.component.mjs +161 -0
- package/esm2022/file-upload/public-api.mjs +6 -0
- package/esm2022/file-upload/single-file-upload.component.mjs +130 -0
- package/esm2022/form-field/cleaner.mjs +14 -0
- package/esm2022/form-field/form-field-control.mjs +5 -0
- package/esm2022/form-field/form-field-errors.mjs +7 -0
- package/esm2022/form-field/form-field.mjs +276 -0
- package/esm2022/form-field/form-field.module.mjs +71 -0
- package/esm2022/form-field/hint.mjs +34 -0
- package/esm2022/form-field/index.mjs +2 -0
- package/esm2022/form-field/koobiq-components-form-field.mjs +5 -0
- package/esm2022/form-field/password-hint.mjs +144 -0
- package/esm2022/form-field/password-toggle.mjs +64 -0
- package/esm2022/form-field/prefix.mjs +13 -0
- package/esm2022/form-field/public-api.mjs +13 -0
- package/esm2022/form-field/stepper.mjs +71 -0
- package/esm2022/form-field/suffix.mjs +13 -0
- package/esm2022/form-field/validate.directive.mjs +158 -0
- package/esm2022/icon/icon.component.mjs +145 -0
- package/esm2022/icon/icon.module.mjs +40 -0
- package/esm2022/icon/index.mjs +2 -0
- package/esm2022/icon/koobiq-components-icon.mjs +5 -0
- package/esm2022/icon/public-api.mjs +3 -0
- package/esm2022/index.mjs +2 -0
- package/esm2022/input/index.mjs +2 -0
- package/esm2022/input/input-errors.mjs +4 -0
- package/esm2022/input/input-number-validators.mjs +88 -0
- package/esm2022/input/input-number.mjs +168 -0
- package/esm2022/input/input-password.mjs +233 -0
- package/esm2022/input/input-value-accessor.mjs +3 -0
- package/esm2022/input/input.mjs +297 -0
- package/esm2022/input/input.module.mjs +63 -0
- package/esm2022/input/koobiq-components-input.mjs +5 -0
- package/esm2022/input/public-api.mjs +7 -0
- package/esm2022/koobiq-components.mjs +5 -0
- package/esm2022/link/index.mjs +2 -0
- package/esm2022/link/koobiq-components-link.mjs +5 -0
- package/esm2022/link/link.component.mjs +132 -0
- package/esm2022/link/link.module.mjs +24 -0
- package/esm2022/link/public-api.mjs +3 -0
- package/esm2022/list/index.mjs +2 -0
- package/esm2022/list/koobiq-components-list.mjs +5 -0
- package/esm2022/list/list-selection.component.mjs +705 -0
- package/esm2022/list/list.component.mjs +44 -0
- package/esm2022/list/list.module.mjs +53 -0
- package/esm2022/list/public-api.mjs +4 -0
- package/esm2022/loader-overlay/index.mjs +2 -0
- package/esm2022/loader-overlay/koobiq-components-loader-overlay.mjs +5 -0
- package/esm2022/loader-overlay/loader-overlay.component.mjs +103 -0
- package/esm2022/loader-overlay/loader-overlay.module.mjs +48 -0
- package/esm2022/loader-overlay/public-api.mjs +3 -0
- package/esm2022/markdown/index.mjs +2 -0
- package/esm2022/markdown/koobiq-components-markdown.mjs +5 -0
- package/esm2022/markdown/markdown.component.mjs +53 -0
- package/esm2022/markdown/markdown.module.mjs +23 -0
- package/esm2022/markdown/markdown.service.mjs +25 -0
- package/esm2022/markdown/markdown.values.mjs +29 -0
- package/esm2022/markdown/public-api.mjs +5 -0
- package/esm2022/modal/css-unit.pipe.mjs +17 -0
- package/esm2022/modal/index.mjs +2 -0
- package/esm2022/modal/koobiq-components-modal.mjs +5 -0
- package/esm2022/modal/modal-control.service.mjs +85 -0
- package/esm2022/modal/modal-ref.class.mjs +8 -0
- package/esm2022/modal/modal-util.mjs +17 -0
- package/esm2022/modal/modal.component.mjs +509 -0
- package/esm2022/modal/modal.directive.mjs +52 -0
- package/esm2022/modal/modal.module.mjs +69 -0
- package/esm2022/modal/modal.service.mjs +124 -0
- package/esm2022/modal/modal.type.mjs +9 -0
- package/esm2022/modal/public-api.mjs +7 -0
- package/esm2022/navbar/index.mjs +2 -0
- package/esm2022/navbar/koobiq-components-navbar.mjs +5 -0
- package/esm2022/navbar/navbar-item.component.mjs +605 -0
- package/esm2022/navbar/navbar.component.mjs +239 -0
- package/esm2022/navbar/navbar.module.mjs +90 -0
- package/esm2022/navbar/public-api.mjs +5 -0
- package/esm2022/navbar/vertical-navbar.animation.mjs +10 -0
- package/esm2022/navbar/vertical-navbar.component.mjs +114 -0
- package/esm2022/popover/index.mjs +2 -0
- package/esm2022/popover/koobiq-components-popover.mjs +5 -0
- package/esm2022/popover/popover-animations.mjs +16 -0
- package/esm2022/popover/popover-confirm.component.mjs +108 -0
- package/esm2022/popover/popover.component.mjs +266 -0
- package/esm2022/popover/popover.module.mjs +29 -0
- package/esm2022/popover/public-api.mjs +5 -0
- package/esm2022/progress-bar/index.mjs +2 -0
- package/esm2022/progress-bar/koobiq-components-progress-bar.mjs +5 -0
- package/esm2022/progress-bar/progress-bar.component.mjs +70 -0
- package/esm2022/progress-bar/progress-bar.module.mjs +36 -0
- package/esm2022/progress-bar/public-api.mjs +3 -0
- package/esm2022/progress-spinner/index.mjs +2 -0
- package/esm2022/progress-spinner/koobiq-components-progress-spinner.mjs +5 -0
- package/esm2022/progress-spinner/progress-spinner.component.mjs +85 -0
- package/esm2022/progress-spinner/progress-spinner.module.mjs +36 -0
- package/esm2022/progress-spinner/public-api.mjs +3 -0
- package/esm2022/public-api.mjs +2 -0
- package/esm2022/radio/index.mjs +2 -0
- package/esm2022/radio/koobiq-components-radio.mjs +5 -0
- package/esm2022/radio/public-api.mjs +3 -0
- package/esm2022/radio/radio.component.mjs +460 -0
- package/esm2022/radio/radio.module.mjs +20 -0
- package/esm2022/select/index.mjs +2 -0
- package/esm2022/select/koobiq-components-select.mjs +5 -0
- package/esm2022/select/public-api.mjs +4 -0
- package/esm2022/select/select-option.directive.mjs +65 -0
- package/esm2022/select/select.component.mjs +1146 -0
- package/esm2022/select/select.module.mjs +79 -0
- package/esm2022/sidebar/index.mjs +2 -0
- package/esm2022/sidebar/koobiq-components-sidebar.mjs +5 -0
- package/esm2022/sidebar/public-api.mjs +3 -0
- package/esm2022/sidebar/sidebar-animations.mjs +23 -0
- package/esm2022/sidebar/sidebar.component.mjs +146 -0
- package/esm2022/sidebar/sidebar.module.mjs +30 -0
- package/esm2022/sidepanel/index.mjs +2 -0
- package/esm2022/sidepanel/koobiq-components-sidepanel.mjs +5 -0
- package/esm2022/sidepanel/public-api.mjs +7 -0
- package/esm2022/sidepanel/sidepanel-animations.mjs +26 -0
- package/esm2022/sidepanel/sidepanel-config.mjs +33 -0
- package/esm2022/sidepanel/sidepanel-container.component.mjs +110 -0
- package/esm2022/sidepanel/sidepanel-directives.mjs +167 -0
- package/esm2022/sidepanel/sidepanel-ref.mjs +53 -0
- package/esm2022/sidepanel/sidepanel.module.mjs +75 -0
- package/esm2022/sidepanel/sidepanel.service.mjs +171 -0
- package/esm2022/splitter/index.mjs +2 -0
- package/esm2022/splitter/koobiq-components-splitter.mjs +5 -0
- package/esm2022/splitter/public-api.mjs +3 -0
- package/esm2022/splitter/splitter.component.mjs +482 -0
- package/esm2022/splitter/splitter.module.mjs +38 -0
- package/esm2022/table/index.mjs +2 -0
- package/esm2022/table/koobiq-components-table.mjs +5 -0
- package/esm2022/table/public-api.mjs +3 -0
- package/esm2022/table/table.component.mjs +13 -0
- package/esm2022/table/table.module.mjs +28 -0
- package/esm2022/tabs/index.mjs +2 -0
- package/esm2022/tabs/koobiq-components-tabs.mjs +5 -0
- package/esm2022/tabs/paginated-tab-header.mjs +479 -0
- package/esm2022/tabs/public-api.mjs +11 -0
- package/esm2022/tabs/tab-body.component.mjs +179 -0
- package/esm2022/tabs/tab-content.directive.mjs +15 -0
- package/esm2022/tabs/tab-group.component.mjs +349 -0
- package/esm2022/tabs/tab-header.component.mjs +67 -0
- package/esm2022/tabs/tab-label-wrapper.directive.mjs +78 -0
- package/esm2022/tabs/tab-label.directive.mjs +17 -0
- package/esm2022/tabs/tab-nav-bar/index.mjs +2 -0
- package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +111 -0
- package/esm2022/tabs/tab.component.mjs +134 -0
- package/esm2022/tabs/tabs-animations.mjs +24 -0
- package/esm2022/tabs/tabs.module.mjs +106 -0
- package/esm2022/tags/index.mjs +2 -0
- package/esm2022/tags/koobiq-components-tags.mjs +5 -0
- package/esm2022/tags/public-api.mjs +6 -0
- package/esm2022/tags/tag-default-options.mjs +4 -0
- package/esm2022/tags/tag-input.mjs +248 -0
- package/esm2022/tags/tag-list.component.mjs +714 -0
- package/esm2022/tags/tag-text-control.mjs +2 -0
- package/esm2022/tags/tag.component.mjs +381 -0
- package/esm2022/tags/tag.module.mjs +56 -0
- package/esm2022/textarea/index.mjs +2 -0
- package/esm2022/textarea/koobiq-components-textarea.mjs +5 -0
- package/esm2022/textarea/public-api.mjs +3 -0
- package/esm2022/textarea/textarea.component.mjs +254 -0
- package/esm2022/textarea/textarea.module.mjs +21 -0
- package/esm2022/timepicker/index.mjs +2 -0
- package/esm2022/timepicker/koobiq-components-timepicker.mjs +5 -0
- package/esm2022/timepicker/public-api.mjs +4 -0
- package/esm2022/timepicker/timepicker.constants.mjs +25 -0
- package/esm2022/timepicker/timepicker.directive.mjs +647 -0
- package/esm2022/timepicker/timepicker.module.mjs +32 -0
- package/esm2022/timezone/cities-by-filter.pipe.mjs +17 -0
- package/esm2022/timezone/index.mjs +2 -0
- package/esm2022/timezone/koobiq-components-timezone.mjs +5 -0
- package/esm2022/timezone/public-api.mjs +7 -0
- package/esm2022/timezone/timezone-option.component.mjs +48 -0
- package/esm2022/timezone/timezone-option.directive.mjs +60 -0
- package/esm2022/timezone/timezone-select.component.mjs +40 -0
- package/esm2022/timezone/timezone.models.mjs +3 -0
- package/esm2022/timezone/timezone.module.mjs +75 -0
- package/esm2022/timezone/timezone.utils.mjs +79 -0
- package/esm2022/timezone/utc-offset.pipe.mjs +17 -0
- package/esm2022/title/index.mjs +2 -0
- package/esm2022/title/koobiq-components-title.mjs +5 -0
- package/esm2022/title/public-api.mjs +3 -0
- package/esm2022/title/title.directive.mjs +107 -0
- package/esm2022/title/title.module.mjs +18 -0
- package/esm2022/toast/index.mjs +2 -0
- package/esm2022/toast/koobiq-components-toast.mjs +5 -0
- package/esm2022/toast/public-api.mjs +6 -0
- package/esm2022/toast/toast-animations.mjs +9 -0
- package/esm2022/toast/toast-container.component.mjs +44 -0
- package/esm2022/toast/toast.component.mjs +92 -0
- package/esm2022/toast/toast.module.mjs +42 -0
- package/esm2022/toast/toast.service.mjs +188 -0
- package/esm2022/toast/toast.type.mjs +15 -0
- package/esm2022/toggle/index.mjs +2 -0
- package/esm2022/toggle/koobiq-components-toggle.mjs +5 -0
- package/esm2022/toggle/public-api.mjs +3 -0
- package/esm2022/toggle/toggle.component.mjs +160 -0
- package/esm2022/toggle/toggle.module.mjs +20 -0
- package/esm2022/tooltip/index.mjs +2 -0
- package/esm2022/tooltip/koobiq-components-tooltip.mjs +5 -0
- package/esm2022/tooltip/public-api.mjs +3 -0
- package/esm2022/tooltip/tooltip.animations.mjs +19 -0
- package/esm2022/tooltip/tooltip.component.mjs +308 -0
- package/esm2022/tooltip/tooltip.module.mjs +42 -0
- package/esm2022/tree/control/base-tree-control.mjs +60 -0
- package/esm2022/tree/control/flat-tree-control.mjs +130 -0
- package/esm2022/tree/control/nested-tree-control.mjs +41 -0
- package/esm2022/tree/control/tree-control.mjs +2 -0
- package/esm2022/tree/data-source/flat-data-source.mjs +162 -0
- package/esm2022/tree/data-source/nested-data-source.mjs +30 -0
- package/esm2022/tree/index.mjs +2 -0
- package/esm2022/tree/koobiq-components-tree.mjs +5 -0
- package/esm2022/tree/node.mjs +31 -0
- package/esm2022/tree/outlet.mjs +15 -0
- package/esm2022/tree/padding.directive.mjs +113 -0
- package/esm2022/tree/public-api.mjs +16 -0
- package/esm2022/tree/toggle.mjs +81 -0
- package/esm2022/tree/tree-base.mjs +243 -0
- package/esm2022/tree/tree-errors.mjs +36 -0
- package/esm2022/tree/tree-option.component.mjs +299 -0
- package/esm2022/tree/tree-selection.component.mjs +557 -0
- package/esm2022/tree/tree.mjs +15 -0
- package/esm2022/tree/tree.module.mjs +57 -0
- package/esm2022/tree-select/index.mjs +2 -0
- package/esm2022/tree-select/koobiq-components-tree-select.mjs +5 -0
- package/esm2022/tree-select/public-api.mjs +3 -0
- package/esm2022/tree-select/tree-select.component.mjs +936 -0
- package/esm2022/tree-select/tree-select.module.mjs +45 -0
- package/fesm2022/koobiq-components-alert.mjs +115 -0
- package/fesm2022/koobiq-components-alert.mjs.map +1 -0
- package/fesm2022/koobiq-components-autocomplete.mjs +748 -0
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -0
- package/fesm2022/koobiq-components-button-toggle.mjs +403 -0
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -0
- package/fesm2022/koobiq-components-button.mjs +207 -0
- package/fesm2022/koobiq-components-button.mjs.map +1 -0
- package/fesm2022/koobiq-components-card.mjs +111 -0
- package/fesm2022/koobiq-components-card.mjs.map +1 -0
- package/fesm2022/koobiq-components-checkbox.mjs +353 -0
- package/fesm2022/koobiq-components-checkbox.mjs.map +1 -0
- package/fesm2022/koobiq-components-code-block.mjs +278 -0
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -0
- package/fesm2022/koobiq-components-core.mjs +2338 -0
- package/fesm2022/koobiq-components-core.mjs.map +1 -0
- package/fesm2022/koobiq-components-datepicker.mjs +2101 -0
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -0
- package/fesm2022/koobiq-components-divider.mjs +71 -0
- package/fesm2022/koobiq-components-divider.mjs.map +1 -0
- package/fesm2022/koobiq-components-dl.mjs +126 -0
- package/fesm2022/koobiq-components-dl.mjs.map +1 -0
- package/fesm2022/koobiq-components-dropdown.mjs +1102 -0
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -0
- package/fesm2022/koobiq-components-ellipsis-center.mjs +111 -0
- package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -0
- package/fesm2022/koobiq-components-file-upload.mjs +388 -0
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -0
- package/fesm2022/koobiq-components-form-field.mjs +825 -0
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -0
- package/fesm2022/koobiq-components-icon.mjs +188 -0
- package/fesm2022/koobiq-components-icon.mjs.map +1 -0
- package/fesm2022/koobiq-components-input.mjs +831 -0
- package/fesm2022/koobiq-components-input.mjs.map +1 -0
- package/fesm2022/koobiq-components-link.mjs +159 -0
- package/fesm2022/koobiq-components-link.mjs.map +1 -0
- package/fesm2022/koobiq-components-list.mjs +800 -0
- package/fesm2022/koobiq-components-list.mjs.map +1 -0
- package/fesm2022/koobiq-components-loader-overlay.mjs +155 -0
- package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -0
- package/fesm2022/koobiq-components-markdown.mjs +127 -0
- package/fesm2022/koobiq-components-markdown.mjs.map +1 -0
- package/fesm2022/koobiq-components-modal.mjs +868 -0
- package/fesm2022/koobiq-components-modal.mjs.map +1 -0
- package/fesm2022/koobiq-components-navbar.mjs +1037 -0
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -0
- package/fesm2022/koobiq-components-popover.mjs +407 -0
- package/fesm2022/koobiq-components-popover.mjs.map +1 -0
- package/fesm2022/koobiq-components-progress-bar.mjs +110 -0
- package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -0
- package/fesm2022/koobiq-components-progress-spinner.mjs +125 -0
- package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -0
- package/fesm2022/koobiq-components-radio.mjs +481 -0
- package/fesm2022/koobiq-components-radio.mjs.map +1 -0
- package/fesm2022/koobiq-components-select.mjs +1278 -0
- package/fesm2022/koobiq-components-select.mjs.map +1 -0
- package/fesm2022/koobiq-components-sidebar.mjs +202 -0
- package/fesm2022/koobiq-components-sidebar.mjs.map +1 -0
- package/fesm2022/koobiq-components-sidepanel.mjs +613 -0
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -0
- package/fesm2022/koobiq-components-splitter.mjs +524 -0
- package/fesm2022/koobiq-components-splitter.mjs.map +1 -0
- package/fesm2022/koobiq-components-table.mjs +45 -0
- package/fesm2022/koobiq-components-table.mjs.map +1 -0
- package/fesm2022/koobiq-components-tabs.mjs +1499 -0
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -0
- package/fesm2022/koobiq-components-tags.mjs +1383 -0
- package/fesm2022/koobiq-components-tags.mjs.map +1 -0
- package/fesm2022/koobiq-components-textarea.mjs +277 -0
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -0
- package/fesm2022/koobiq-components-timepicker.mjs +706 -0
- package/fesm2022/koobiq-components-timepicker.mjs.map +1 -0
- package/fesm2022/koobiq-components-timezone.mjs +314 -0
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -0
- package/fesm2022/koobiq-components-title.mjs +125 -0
- package/fesm2022/koobiq-components-title.mjs.map +1 -0
- package/fesm2022/koobiq-components-toast.mjs +375 -0
- package/fesm2022/koobiq-components-toast.mjs.map +1 -0
- package/fesm2022/koobiq-components-toggle.mjs +182 -0
- package/fesm2022/koobiq-components-toggle.mjs.map +1 -0
- package/fesm2022/koobiq-components-tooltip.mjs +370 -0
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -0
- package/fesm2022/koobiq-components-tree-select.mjs +978 -0
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -0
- package/fesm2022/koobiq-components-tree.mjs +1802 -0
- package/fesm2022/koobiq-components-tree.mjs.map +1 -0
- package/fesm2022/koobiq-components.mjs +4 -0
- package/fesm2022/koobiq-components.mjs.map +1 -0
- package/file-upload/README.md +0 -0
- package/file-upload/_file-upload-theme.scss +174 -0
- package/file-upload/file-drop.d.ts +11 -0
- package/file-upload/file-upload.d.ts +22 -0
- package/file-upload/file-upload.module.d.ts +18 -0
- package/file-upload/file-upload.scss +46 -0
- package/file-upload/index.d.ts +1 -0
- package/file-upload/multiple-file-upload.component.d.ts +51 -0
- package/file-upload/multiple-file-upload.component.scss +148 -0
- package/file-upload/public-api.d.ts +5 -0
- package/file-upload/single-file-upload.component.d.ts +34 -0
- package/file-upload/single-file-upload.component.scss +60 -0
- package/form-field/README.md +0 -0
- package/form-field/_form-field-theme.scss +112 -0
- package/form-field/_hint-theme.scss +67 -0
- package/form-field/cleaner.d.ts +5 -0
- package/form-field/cleaner.scss +22 -0
- package/form-field/form-field-control.d.ts +37 -0
- package/form-field/form-field-errors.d.ts +2 -0
- package/form-field/form-field.d.ts +84 -0
- package/form-field/form-field.module.d.ts +17 -0
- package/form-field/form-field.scss +143 -0
- package/form-field/hint.d.ts +17 -0
- package/form-field/hint.scss +15 -0
- package/form-field/index.d.ts +1 -0
- package/form-field/password-hint.d.ts +40 -0
- package/form-field/password-hint.scss +11 -0
- package/form-field/password-toggle.d.ts +18 -0
- package/form-field/password-toggle.scss +29 -0
- package/form-field/prefix.d.ts +5 -0
- package/form-field/public-api.d.ts +12 -0
- package/form-field/stepper.d.ts +11 -0
- package/form-field/stepper.scss +33 -0
- package/form-field/suffix.d.ts +5 -0
- package/form-field/validate.directive.d.ts +33 -0
- package/icon/README.md +0 -0
- package/icon/_icon-theme.scss +267 -0
- package/icon/icon.component.d.ts +47 -0
- package/icon/icon.module.d.ts +10 -0
- package/icon/icon.scss +73 -0
- package/icon/index.d.ts +1 -0
- package/icon/public-api.d.ts +2 -0
- package/index.d.ts +1 -0
- package/input/_input-theme.scss +13 -0
- package/input/index.d.ts +1 -0
- package/input/input-errors.d.ts +1 -0
- package/input/input-number-validators.d.ts +35 -0
- package/input/input-number.d.ts +33 -0
- package/input/input-password.d.ts +92 -0
- package/input/input-value-accessor.d.ts +4 -0
- package/input/input.d.ts +117 -0
- package/input/input.module.d.ts +15 -0
- package/input/input.scss +48 -0
- package/input/public-api.d.ts +6 -0
- package/link/README.md +0 -0
- package/link/_link-theme.scss +178 -0
- package/link/index.d.ts +1 -0
- package/link/link.component.d.ts +47 -0
- package/link/link.module.d.ts +9 -0
- package/link/public-api.d.ts +2 -0
- package/list/README.md +0 -0
- package/list/_list-base.scss +54 -0
- package/list/_list-theme.scss +47 -0
- package/list/index.d.ts +1 -0
- package/list/list-selection.component.d.ts +172 -0
- package/list/list.component.d.ts +18 -0
- package/list/list.module.d.ts +11 -0
- package/list/list.scss +52 -0
- package/list/public-api.d.ts +3 -0
- package/loader-overlay/README.md +0 -0
- package/loader-overlay/_loader-overlay-theme.scss +34 -0
- package/loader-overlay/index.d.ts +1 -0
- package/loader-overlay/loader-overlay.component.d.ts +34 -0
- package/loader-overlay/loader-overlay.module.d.ts +11 -0
- package/loader-overlay/loader-overlay.scss +64 -0
- package/loader-overlay/public-api.d.ts +2 -0
- package/markdown/README.md +0 -0
- package/markdown/_markdown-theme.scss +142 -0
- package/markdown/index.d.ts +1 -0
- package/markdown/markdown.component.d.ts +19 -0
- package/markdown/markdown.module.d.ts +11 -0
- package/markdown/markdown.scss +249 -0
- package/markdown/markdown.service.d.ts +7 -0
- package/markdown/markdown.values.d.ts +3 -0
- package/markdown/public-api.d.ts +4 -0
- package/modal/README.md +34 -0
- package/modal/_modal-animation.scss +114 -0
- package/modal/_modal-confirm.scss +53 -0
- package/modal/_modal-theme.scss +90 -0
- package/modal/css-unit.pipe.d.ts +7 -0
- package/modal/index.d.ts +1 -0
- package/modal/modal-control.service.d.ts +20 -0
- package/modal/modal-ref.class.d.ts +36 -0
- package/modal/modal-util.d.ts +12 -0
- package/modal/modal.component.d.ts +128 -0
- package/modal/modal.directive.d.ts +17 -0
- package/modal/modal.module.d.ts +14 -0
- package/modal/modal.scss +143 -0
- package/modal/modal.service.d.ts +33 -0
- package/modal/modal.type.d.ts +61 -0
- package/modal/public-api.d.ts +6 -0
- package/navbar/README.md +41 -0
- package/navbar/_navbar-theme.scss +123 -0
- package/navbar/index.d.ts +1 -0
- package/navbar/navbar-brand.scss +70 -0
- package/navbar/navbar-divider.scss +18 -0
- package/navbar/navbar-item.component.d.ts +167 -0
- package/navbar/navbar-item.scss +159 -0
- package/navbar/navbar.component.d.ts +58 -0
- package/navbar/navbar.module.d.ts +14 -0
- package/navbar/navbar.scss +20 -0
- package/navbar/public-api.d.ts +4 -0
- package/navbar/vertical-navbar.animation.d.ts +2 -0
- package/navbar/vertical-navbar.component.d.ts +23 -0
- package/navbar/vertical-navbar.scss +46 -0
- package/package.json +323 -0
- package/popover/README.md +32 -0
- package/popover/_popover-theme.scss +111 -0
- package/popover/index.d.ts +1 -0
- package/popover/popover-animations.d.ts +4 -0
- package/popover/popover-confirm.component.d.ts +33 -0
- package/popover/popover.component.d.ts +75 -0
- package/popover/popover.module.d.ts +12 -0
- package/popover/popover.scss +114 -0
- package/popover/public-api.d.ts +4 -0
- package/prebuilt-themes/dark-theme.css +1 -0
- package/prebuilt-themes/light-theme.css +1 -0
- package/progress-bar/README.md +0 -0
- package/progress-bar/_progress-bar-theme.scss +41 -0
- package/progress-bar/index.d.ts +1 -0
- package/progress-bar/progress-bar.component.d.ts +28 -0
- package/progress-bar/progress-bar.module.d.ts +9 -0
- package/progress-bar/progress-bar.scss +68 -0
- package/progress-bar/public-api.d.ts +2 -0
- package/progress-spinner/README.md +0 -0
- package/progress-spinner/_progress-spinner-theme.scss +35 -0
- package/progress-spinner/index.d.ts +1 -0
- package/progress-spinner/progress-spinner.component.d.ts +34 -0
- package/progress-spinner/progress-spinner.module.d.ts +9 -0
- package/progress-spinner/progress-spinner.scss +72 -0
- package/progress-spinner/public-api.d.ts +2 -0
- package/public-api.d.ts +1 -0
- package/radio/_radio-theme.scss +95 -0
- package/radio/index.d.ts +1 -0
- package/radio/public-api.d.ts +2 -0
- package/radio/radio.component.d.ts +204 -0
- package/radio/radio.module.d.ts +10 -0
- package/radio/radio.scss +143 -0
- package/select/README.md +0 -0
- package/select/_select-theme.scss +55 -0
- package/select/index.d.ts +1 -0
- package/select/public-api.d.ts +3 -0
- package/select/select-option.directive.d.ts +20 -0
- package/select/select.component.d.ts +330 -0
- package/select/select.module.d.ts +15 -0
- package/select/select.scss +222 -0
- package/sidebar/index.d.ts +1 -0
- package/sidebar/public-api.d.ts +2 -0
- package/sidebar/sidebar-animations.d.ts +8 -0
- package/sidebar/sidebar.component.d.ts +53 -0
- package/sidebar/sidebar.module.d.ts +8 -0
- package/sidebar/sidebar.scss +12 -0
- package/sidepanel/_sidepanel-theme.scss +67 -0
- package/sidepanel/index.d.ts +1 -0
- package/sidepanel/public-api.d.ts +6 -0
- package/sidepanel/sidepanel-animations.d.ts +14 -0
- package/sidepanel/sidepanel-config.d.ts +31 -0
- package/sidepanel/sidepanel-container.component.d.ts +46 -0
- package/sidepanel/sidepanel-directives.d.ts +50 -0
- package/sidepanel/sidepanel-ref.d.ts +24 -0
- package/sidepanel/sidepanel.module.d.ts +16 -0
- package/sidepanel/sidepanel.scss +203 -0
- package/sidepanel/sidepanel.service.d.ts +57 -0
- package/splitter/_splitter-theme.scss +31 -0
- package/splitter/index.d.ts +1 -0
- package/splitter/public-api.d.ts +2 -0
- package/splitter/splitter.component.d.ts +130 -0
- package/splitter/splitter.module.d.ts +9 -0
- package/splitter/splitter.scss +48 -0
- package/table/README.md +0 -0
- package/table/_table-theme.scss +65 -0
- package/table/index.d.ts +1 -0
- package/table/public-api.d.ts +2 -0
- package/table/table.component.d.ts +5 -0
- package/table/table.module.d.ts +10 -0
- package/table/table.scss +76 -0
- package/tabs/README.md +0 -0
- package/tabs/_tabs-common.scss +197 -0
- package/tabs/_tabs-theme.scss +240 -0
- package/tabs/index.d.ts +1 -0
- package/tabs/paginated-tab-header.d.ts +179 -0
- package/tabs/public-api.d.ts +10 -0
- package/tabs/tab-body.component.d.ts +95 -0
- package/tabs/tab-body.scss +8 -0
- package/tabs/tab-content.directive.d.ts +9 -0
- package/tabs/tab-group.component.d.ts +134 -0
- package/tabs/tab-group.scss +63 -0
- package/tabs/tab-header.component.d.ts +35 -0
- package/tabs/tab-header.scss +106 -0
- package/tabs/tab-label-wrapper.directive.d.ts +31 -0
- package/tabs/tab-label.directive.d.ts +9 -0
- package/tabs/tab-nav-bar/index.d.ts +1 -0
- package/tabs/tab-nav-bar/tab-nav-bar.d.ts +40 -0
- package/tabs/tab-nav-bar/tab-nav-bar.scss +54 -0
- package/tabs/tab.component.d.ts +68 -0
- package/tabs/tabs-animations.d.ts +4 -0
- package/tabs/tabs.module.d.ts +21 -0
- package/tags/README.md +0 -0
- package/tags/_tag-theme.scss +100 -0
- package/tags/index.d.ts +1 -0
- package/tags/public-api.d.ts +5 -0
- package/tags/tag-default-options.d.ts +8 -0
- package/tags/tag-input.d.ts +87 -0
- package/tags/tag-list.component.d.ts +246 -0
- package/tags/tag-list.scss +66 -0
- package/tags/tag-text-control.d.ts +10 -0
- package/tags/tag.component.d.ts +140 -0
- package/tags/tag.module.d.ts +11 -0
- package/tags/tag.scss +67 -0
- package/textarea/README.md +0 -0
- package/textarea/_textarea-theme.scss +13 -0
- package/textarea/index.d.ts +1 -0
- package/textarea/public-api.d.ts +2 -0
- package/textarea/textarea.component.d.ts +114 -0
- package/textarea/textarea.module.d.ts +11 -0
- package/textarea/textarea.scss +45 -0
- package/timepicker/README.md +0 -0
- package/timepicker/index.d.ts +1 -0
- package/timepicker/public-api.d.ts +3 -0
- package/timepicker/timepicker.constants.d.ts +20 -0
- package/timepicker/timepicker.directive.d.ts +141 -0
- package/timepicker/timepicker.module.d.ts +11 -0
- package/timepicker/timepicker.scss +18 -0
- package/timezone/README.md +0 -0
- package/timezone/_timezone-option-theme.scss +34 -0
- package/timezone/cities-by-filter.pipe.d.ts +7 -0
- package/timezone/index.d.ts +1 -0
- package/timezone/public-api.d.ts +6 -0
- package/timezone/timezone-option.component.d.ts +15 -0
- package/timezone/timezone-option.component.scss +35 -0
- package/timezone/timezone-option.directive.d.ts +20 -0
- package/timezone/timezone-select.component.d.ts +14 -0
- package/timezone/timezone.models.d.ts +16 -0
- package/timezone/timezone.module.d.ts +19 -0
- package/timezone/timezone.utils.d.ts +18 -0
- package/timezone/utc-offset.pipe.d.ts +7 -0
- package/title/index.d.ts +1 -0
- package/title/public-api.d.ts +2 -0
- package/title/title.directive.d.ts +31 -0
- package/title/title.module.d.ts +8 -0
- package/toast/_toast-theme.scss +61 -0
- package/toast/index.d.ts +1 -0
- package/toast/public-api.d.ts +5 -0
- package/toast/toast-animations.d.ts +4 -0
- package/toast/toast-container.component.d.ts +15 -0
- package/toast/toast-container.component.scss +23 -0
- package/toast/toast.component.d.ts +35 -0
- package/toast/toast.component.scss +76 -0
- package/toast/toast.module.d.ts +13 -0
- package/toast/toast.service.d.ts +51 -0
- package/toast/toast.type.d.ts +27 -0
- package/toggle/_toggle-theme.scss +98 -0
- package/toggle/index.d.ts +1 -0
- package/toggle/public-api.d.ts +2 -0
- package/toggle/toggle.component.d.ts +57 -0
- package/toggle/toggle.module.d.ts +10 -0
- package/toggle/toggle.scss +99 -0
- package/tooltip/_tooltip-theme.scss +49 -0
- package/tooltip/index.d.ts +1 -0
- package/tooltip/public-api.d.ts +2 -0
- package/tooltip/tooltip.animations.d.ts +8 -0
- package/tooltip/tooltip.component.d.ts +94 -0
- package/tooltip/tooltip.module.d.ts +9 -0
- package/tooltip/tooltip.scss +54 -0
- package/tree/_tree-theme.scss +69 -0
- package/tree/control/base-tree-control.d.ts +40 -0
- package/tree/control/flat-tree-control.d.ts +53 -0
- package/tree/control/nested-tree-control.d.ts +19 -0
- package/tree/control/tree-control.d.ts +44 -0
- package/tree/data-source/flat-data-source.d.ts +80 -0
- package/tree/data-source/nested-data-source.d.ts +15 -0
- package/tree/index.d.ts +1 -0
- package/tree/node.d.ts +34 -0
- package/tree/outlet.d.ts +9 -0
- package/tree/padding.directive.d.ts +47 -0
- package/tree/public-api.d.ts +15 -0
- package/tree/toggle.d.ts +30 -0
- package/tree/toggle.scss +35 -0
- package/tree/tree-base.d.ts +97 -0
- package/tree/tree-errors.d.ts +25 -0
- package/tree/tree-option.component.d.ts +80 -0
- package/tree/tree-option.scss +67 -0
- package/tree/tree-selection.component.d.ts +134 -0
- package/tree/tree-selection.scss +3 -0
- package/tree/tree.d.ts +6 -0
- package/tree/tree.module.d.ts +16 -0
- package/tree/tree.scss +3 -0
- package/tree-select/README.md +0 -0
- package/tree-select/_tree-select-theme.scss +41 -0
- package/tree-select/index.d.ts +1 -0
- package/tree-select/public-api.d.ts +2 -0
- package/tree-select/tree-select.component.d.ts +283 -0
- package/tree-select/tree-select.module.d.ts +14 -0
- package/tree-select/tree-select.scss +225 -0
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { FocusMonitor } from '@angular/cdk/a11y';
|
|
2
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Inject, Input, Optional, Output, ViewChild } from '@angular/core';
|
|
3
|
+
import { BehaviorSubject, Subscription } from 'rxjs';
|
|
4
|
+
import { KBQ_FILE_UPLOAD_CONFIGURATION } from './file-upload';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/cdk/a11y";
|
|
7
|
+
import * as i2 from "@angular/common";
|
|
8
|
+
import * as i3 from "@koobiq/components/progress-spinner";
|
|
9
|
+
import * as i4 from "@koobiq/components/icon";
|
|
10
|
+
import * as i5 from "@koobiq/components/button";
|
|
11
|
+
import * as i6 from "@koobiq/components/form-field";
|
|
12
|
+
import * as i7 from "@koobiq/components/ellipsis-center";
|
|
13
|
+
import * as i8 from "./file-drop";
|
|
14
|
+
let nextSingleFileUploadUniqueId = 0;
|
|
15
|
+
export const KBQ_SINGLE_FILE_UPLOAD_DEFAULT_CONFIGURATION = {
|
|
16
|
+
captionText: 'Перетащите файл или',
|
|
17
|
+
browseLink: 'выберите'
|
|
18
|
+
};
|
|
19
|
+
export class KbqSingleFileUploadComponent {
|
|
20
|
+
get acceptedFiles() {
|
|
21
|
+
return this.accept && this.accept.length > 0 ? this.accept.map((ext) => `.${ext}`).join(',') : '*/*';
|
|
22
|
+
}
|
|
23
|
+
constructor(focusMonitor, cdr, config) {
|
|
24
|
+
this.focusMonitor = focusMonitor;
|
|
25
|
+
this.cdr = cdr;
|
|
26
|
+
this.config = config;
|
|
27
|
+
this.disabled = false;
|
|
28
|
+
this.errors = [];
|
|
29
|
+
this.files = [];
|
|
30
|
+
this.inputId = `kbq-single-file-upload-${nextSingleFileUploadUniqueId++}`;
|
|
31
|
+
this.fileQueueChanged = new EventEmitter();
|
|
32
|
+
this.hasFocus = false;
|
|
33
|
+
this.focusMonitorSubscription = Subscription.EMPTY;
|
|
34
|
+
this.config = config || KBQ_SINGLE_FILE_UPLOAD_DEFAULT_CONFIGURATION;
|
|
35
|
+
}
|
|
36
|
+
ngAfterViewInit() {
|
|
37
|
+
this.focusMonitorSubscription = this.focusMonitor.monitor(this.input)
|
|
38
|
+
.subscribe((origin) => this.onFocus(origin === 'keyboard'));
|
|
39
|
+
}
|
|
40
|
+
ngOnDestroy() {
|
|
41
|
+
this.focusMonitorSubscription.unsubscribe();
|
|
42
|
+
}
|
|
43
|
+
onFileSelectedViaClick({ target }) {
|
|
44
|
+
if (this.disabled) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
const files = target.files;
|
|
48
|
+
if (files) {
|
|
49
|
+
this.files = [this.mapToFileItem(files[0])];
|
|
50
|
+
this.fileQueueChanged.emit(this.files[0]);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
deleteItem(event) {
|
|
54
|
+
if (this.disabled) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
event?.stopPropagation();
|
|
58
|
+
this.files = [];
|
|
59
|
+
this.errors = [];
|
|
60
|
+
this.fileQueueChanged.emit(null);
|
|
61
|
+
}
|
|
62
|
+
onFileDropped(files) {
|
|
63
|
+
if (this.disabled) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
if (this.isCorrectExtension(files[0])) {
|
|
67
|
+
this.files = Array.from(files)
|
|
68
|
+
.map((file) => this.mapToFileItem(file));
|
|
69
|
+
this.fileQueueChanged.emit(this.files[0]);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
onFocus(focusState) {
|
|
73
|
+
if (this.disabled) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
this.hasFocus = focusState;
|
|
77
|
+
this.cdr.markForCheck();
|
|
78
|
+
}
|
|
79
|
+
mapToFileItem(file) {
|
|
80
|
+
this.validateFile(file);
|
|
81
|
+
return {
|
|
82
|
+
file,
|
|
83
|
+
progress: new BehaviorSubject(0),
|
|
84
|
+
loading: new BehaviorSubject(false)
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
validateFile(file) {
|
|
88
|
+
if (this.customValidation && this.customValidation.length) {
|
|
89
|
+
this.errors = this.customValidation.reduce((errors, validatorFn) => {
|
|
90
|
+
errors.push(validatorFn(file));
|
|
91
|
+
return errors;
|
|
92
|
+
}, []).filter(Boolean);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
isCorrectExtension(file) {
|
|
96
|
+
const fileExt = file.name.split('.').pop() || '';
|
|
97
|
+
return this.acceptedFiles !== '*/*' && this.acceptedFiles.length > 0 ? this.acceptedFiles.includes(fileExt) : true;
|
|
98
|
+
}
|
|
99
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqSingleFileUploadComponent, deps: [{ token: i1.FocusMonitor }, { token: i0.ChangeDetectorRef }, { token: KBQ_FILE_UPLOAD_CONFIGURATION, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
100
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: KbqSingleFileUploadComponent, selector: "kbq-single-file-upload", inputs: { accept: "accept", disabled: "disabled", errors: "errors", files: "files", inputId: "inputId", customValidation: "customValidation" }, outputs: { fileQueueChanged: "fileQueueChanged" }, host: { classAttribute: "kbq-single-file-upload" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<div class=\"kbq-file-upload\"\n mcFileDrop\n [class.disabled]=\"disabled\"\n [class.kbq-error]=\"errors && errors.length\"\n (filesDropped)=\"onFileDropped($event)\">\n <div class=\"dropzone\" *ngIf=\"!files.length; else fileOutput\">\n <i kbq-icon=\"mc-upload-to-cloud_24\"></i>\n <span class=\"dropzone__text\">\n {{ config.captionText }}\n <label class=\"kbq-link\"\n [class.kbq-focused]=\"hasFocus\"\n [for]=\"inputId\">\n {{ config.browseLink }}\n </label>\n </span>\n </div>\n <input #input\n type=\"file\"\n class=\"cdk-visually-hidden\"\n [id]=\"inputId\"\n [accept]=\"acceptedFiles\"\n [disabled]=\"disabled\"\n (change)=\"onFileSelectedViaClick($event)\"\n >\n</div>\n<kbq-hint class=\"kbq-file-upload__hint\">\n <ng-content select=\"[hint]\"></ng-content>\n</kbq-hint>\n<ng-container *ngIf=\"errors && errors.length\">\n <kbq-hint class=\"kbq-file-upload__hint kbq-error\" *ngFor=\"let error of errors\">{{ error }}</kbq-hint>\n</ng-container>\n\n\n<ng-template #fileOutput>\n <div class=\"file-item\" *ngIf=\"files && files.length\">\n <div class=\"file-item__text-wrapper\">\n <ng-container *ngIf=\"{ loading: files[0].loading | async, progress: files[0].progress | async} as asyncData\">\n <ng-container *ngIf=\"!asyncData.loading\">\n <ng-content select=\"[kbq-icon]\"></ng-content>\n </ng-container>\n\n <kbq-progress-spinner\n [value]=\"asyncData.progress || 0\"\n *ngIf=\"asyncData.loading\"\n ></kbq-progress-spinner>\n </ng-container>\n\n <div class=\"file-item__text\" [mcEllipsisCenter]=\"files[0].file.name\" [minVisibleLength]=\"10\"></div>\n </div>\n <button kbq-button\n class=\"kbq-button_transparent\"\n [disabled]=\"disabled\"\n (keydown.delete)=\"deleteItem()\"\n (keydown.backspace)=\"deleteItem()\"\n (click)=\"deleteItem($event)\">\n <i kbq-icon=\"mc-close-circle_16\"></i>\n </button>\n </div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:29px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.05) 10px,transparent 10px,transparent 20px,rgba(0,0,0,.05) 20px,rgba(0,0,0,.05) 30px,transparent 30px) repeat;background-size:29px 29px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-button-size-border-width, 2px))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-button-size-border-radius, 8px)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-button-size-border-radius, 8px)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-button-size-border-width, 2px))}.kbq-no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.kbq-file-upload{box-sizing:border-box;display:flex;align-items:center;position:relative;cursor:pointer}.kbq-file-upload .dropzone,.kbq-file-upload .file-item{display:flex;align-items:center}.kbq-file-upload .dropzone .dropzone__text{margin-left:6px}.kbq-file-upload .kbq-ellipsis-center{position:relative;display:flex}.kbq-file-upload .kbq-ellipsis-center .data-text-start{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:pre}.kbq-file-upload .kbq-ellipsis-center .data-text-end{flex:1 0 auto;overflow:hidden;white-space:pre}\n", "@keyframes kbq-progress{0%{background-position:0 0}to{background-position:29px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.05) 10px,transparent 10px,transparent 20px,rgba(0,0,0,.05) 20px,rgba(0,0,0,.05) 30px,transparent 30px) repeat;background-size:29px 29px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-button-size-border-width, 2px))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-button-size-border-radius, 8px)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-button-size-border-radius, 8px)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-button-size-border-width, 2px))}.kbq-no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.kbq-file-upload{height:var(--kbq-file-upload-size-single-height, 48px);padding-top:var(--kbq-file-upload-size-single-vertical-padding, 12px);padding-bottom:var(--kbq-file-upload-size-single-vertical-padding, 12px);padding-left:12px;border-radius:var(--kbq-file-upload-size-single-border-radius, 8px);border-width:var(--kbq-file-upload-size-single-border-width, 1px);border-style:var(--kbq-file-upload-size-single-border-style, dashed)}.kbq-file-upload .file-item{width:100%}.kbq-file-upload .file-item .file-item__text-wrapper{display:flex;align-items:center;width:100%}.kbq-file-upload .file-item .file-item__text-wrapper .file-item__text{margin-left:8px;width:120px;flex-grow:1}.kbq-hint{display:block}.kbq-file-upload__hint{margin-top:var(--kbq-form-field-hint-size-margin-top, 12px)}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.KbqProgressSpinner, selector: "kbq-progress-spinner", inputs: ["color", "id", "value", "mode", "size"] }, { kind: "component", type: i4.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor"] }, { kind: "component", type: i5.KbqButton, selector: "[kbq-button]", inputs: ["color", "tabIndex", "kbqStyle", "disabled"] }, { kind: "directive", type: i5.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "component", type: i6.KbqHint, selector: "kbq-hint", inputs: ["color", "id", "fillTextOff"], exportAs: ["mcHint"] }, { kind: "directive", type: i7.KbqEllipsisCenterDirective, selector: "[mcEllipsisCenter]", inputs: ["mcEllipsisCenter", "minVisibleLength"] }, { kind: "directive", type: i8.KbqFileDropDirective, selector: "[mcFileDrop]", outputs: ["filesDropped"], exportAs: ["mcFileDrop"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
101
|
+
}
|
|
102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqSingleFileUploadComponent, decorators: [{
|
|
103
|
+
type: Component,
|
|
104
|
+
args: [{ selector: 'kbq-single-file-upload', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
105
|
+
class: 'kbq-single-file-upload'
|
|
106
|
+
}, template: "<div class=\"kbq-file-upload\"\n mcFileDrop\n [class.disabled]=\"disabled\"\n [class.kbq-error]=\"errors && errors.length\"\n (filesDropped)=\"onFileDropped($event)\">\n <div class=\"dropzone\" *ngIf=\"!files.length; else fileOutput\">\n <i kbq-icon=\"mc-upload-to-cloud_24\"></i>\n <span class=\"dropzone__text\">\n {{ config.captionText }}\n <label class=\"kbq-link\"\n [class.kbq-focused]=\"hasFocus\"\n [for]=\"inputId\">\n {{ config.browseLink }}\n </label>\n </span>\n </div>\n <input #input\n type=\"file\"\n class=\"cdk-visually-hidden\"\n [id]=\"inputId\"\n [accept]=\"acceptedFiles\"\n [disabled]=\"disabled\"\n (change)=\"onFileSelectedViaClick($event)\"\n >\n</div>\n<kbq-hint class=\"kbq-file-upload__hint\">\n <ng-content select=\"[hint]\"></ng-content>\n</kbq-hint>\n<ng-container *ngIf=\"errors && errors.length\">\n <kbq-hint class=\"kbq-file-upload__hint kbq-error\" *ngFor=\"let error of errors\">{{ error }}</kbq-hint>\n</ng-container>\n\n\n<ng-template #fileOutput>\n <div class=\"file-item\" *ngIf=\"files && files.length\">\n <div class=\"file-item__text-wrapper\">\n <ng-container *ngIf=\"{ loading: files[0].loading | async, progress: files[0].progress | async} as asyncData\">\n <ng-container *ngIf=\"!asyncData.loading\">\n <ng-content select=\"[kbq-icon]\"></ng-content>\n </ng-container>\n\n <kbq-progress-spinner\n [value]=\"asyncData.progress || 0\"\n *ngIf=\"asyncData.loading\"\n ></kbq-progress-spinner>\n </ng-container>\n\n <div class=\"file-item__text\" [mcEllipsisCenter]=\"files[0].file.name\" [minVisibleLength]=\"10\"></div>\n </div>\n <button kbq-button\n class=\"kbq-button_transparent\"\n [disabled]=\"disabled\"\n (keydown.delete)=\"deleteItem()\"\n (keydown.backspace)=\"deleteItem()\"\n (click)=\"deleteItem($event)\">\n <i kbq-icon=\"mc-close-circle_16\"></i>\n </button>\n </div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:29px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.05) 10px,transparent 10px,transparent 20px,rgba(0,0,0,.05) 20px,rgba(0,0,0,.05) 30px,transparent 30px) repeat;background-size:29px 29px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-button-size-border-width, 2px))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-button-size-border-radius, 8px)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-button-size-border-radius, 8px)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-button-size-border-width, 2px))}.kbq-no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.kbq-file-upload{box-sizing:border-box;display:flex;align-items:center;position:relative;cursor:pointer}.kbq-file-upload .dropzone,.kbq-file-upload .file-item{display:flex;align-items:center}.kbq-file-upload .dropzone .dropzone__text{margin-left:6px}.kbq-file-upload .kbq-ellipsis-center{position:relative;display:flex}.kbq-file-upload .kbq-ellipsis-center .data-text-start{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:pre}.kbq-file-upload .kbq-ellipsis-center .data-text-end{flex:1 0 auto;overflow:hidden;white-space:pre}\n", "@keyframes kbq-progress{0%{background-position:0 0}to{background-position:29px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.05) 10px,transparent 10px,transparent 20px,rgba(0,0,0,.05) 20px,rgba(0,0,0,.05) 30px,transparent 30px) repeat;background-size:29px 29px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-button-size-border-width, 2px))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-button-size-border-radius, 8px)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-button-size-border-radius, 8px)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-button-size-border-width, 2px))}.kbq-no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.kbq-file-upload{height:var(--kbq-file-upload-size-single-height, 48px);padding-top:var(--kbq-file-upload-size-single-vertical-padding, 12px);padding-bottom:var(--kbq-file-upload-size-single-vertical-padding, 12px);padding-left:12px;border-radius:var(--kbq-file-upload-size-single-border-radius, 8px);border-width:var(--kbq-file-upload-size-single-border-width, 1px);border-style:var(--kbq-file-upload-size-single-border-style, dashed)}.kbq-file-upload .file-item{width:100%}.kbq-file-upload .file-item .file-item__text-wrapper{display:flex;align-items:center;width:100%}.kbq-file-upload .file-item .file-item__text-wrapper .file-item__text{margin-left:8px;width:120px;flex-grow:1}.kbq-hint{display:block}.kbq-file-upload__hint{margin-top:var(--kbq-form-field-hint-size-margin-top, 12px)}\n"] }]
|
|
107
|
+
}], ctorParameters: function () { return [{ type: i1.FocusMonitor }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
|
|
108
|
+
type: Optional
|
|
109
|
+
}, {
|
|
110
|
+
type: Inject,
|
|
111
|
+
args: [KBQ_FILE_UPLOAD_CONFIGURATION]
|
|
112
|
+
}] }]; }, propDecorators: { accept: [{
|
|
113
|
+
type: Input
|
|
114
|
+
}], disabled: [{
|
|
115
|
+
type: Input
|
|
116
|
+
}], errors: [{
|
|
117
|
+
type: Input
|
|
118
|
+
}], files: [{
|
|
119
|
+
type: Input
|
|
120
|
+
}], inputId: [{
|
|
121
|
+
type: Input
|
|
122
|
+
}], customValidation: [{
|
|
123
|
+
type: Input
|
|
124
|
+
}], fileQueueChanged: [{
|
|
125
|
+
type: Output
|
|
126
|
+
}], input: [{
|
|
127
|
+
type: ViewChild,
|
|
128
|
+
args: ['input']
|
|
129
|
+
}] } });
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLWZpbGUtdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvc2luZ2xlLWZpbGUtdXBsb2FkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvc2luZ2xlLWZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBRUgsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQzFDLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUFFLE1BQU0sRUFDcEIsS0FBSyxFQUFhLFFBQVEsRUFDMUIsTUFBTSxFQUNOLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVyRCxPQUFPLEVBQ0gsNkJBQTZCLEVBS2hDLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7O0FBR3ZCLElBQUksNEJBQTRCLEdBQUcsQ0FBQyxDQUFDO0FBRXJDLE1BQU0sQ0FBQyxNQUFNLDRDQUE0QyxHQUFzQjtJQUMzRSxXQUFXLEVBQUUscUJBQXFCO0lBQ2xDLFVBQVUsRUFBRSxVQUFVO0NBQ3pCLENBQUM7QUFXRixNQUFNLE9BQU8sNEJBQTRCO0lBZXJDLElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FB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Q2xDOzswQkF3QkksUUFBUTs7MEJBQUksTUFBTTsyQkFBQyw2QkFBNkI7NENBckI1QyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0ksZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUVhLEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLCBJbmplY3QsXG4gICAgSW5wdXQsIE9uRGVzdHJveSwgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhbkRpc2FibGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICAgIEtCUV9GSUxFX1VQTE9BRF9DT05GSUdVUkFUSU9OLFxuICAgIEticUZpbGVJdGVtLFxuICAgIEticUZpbGVWYWxpZGF0b3JGbixcbiAgICBLYnFJbnB1dEZpbGUsXG4gICAgS2JxSW5wdXRGaWxlTGFiZWxcbn0gZnJvbSAnLi9maWxlLXVwbG9hZCc7XG5cblxubGV0IG5leHRTaW5nbGVGaWxlVXBsb2FkVW5pcXVlSWQgPSAwO1xuXG5leHBvcnQgY29uc3QgS0JRX1NJTkdMRV9GSUxFX1VQTE9BRF9ERUZBVUxUX0NPTkZJR1VSQVRJT046IEticUlucHV0RmlsZUxhYmVsID0ge1xuICAgIGNhcHRpb25UZXh0OiAn0J/QtdGA0LXRgtCw0YnQuNGC0LUg0YTQsNC50Lsg0LjQu9C4JyxcbiAgICBicm93c2VMaW5rOiAn0LLRi9Cx0LXRgNC40YLQtSdcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAna2JxLXNpbmdsZS1maWxlLXVwbG9hZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NpbmdsZS1maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZmlsZS11cGxvYWQuc2NzcycsICcuL3NpbmdsZS1maWxlLXVwbG9hZC5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdrYnEtc2luZ2xlLWZpbGUtdXBsb2FkJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgS2JxU2luZ2xlRmlsZVVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgS2JxSW5wdXRGaWxlLCBDYW5EaXNhYmxlIHtcbiAgICBASW5wdXQoKSBhY2NlcHQ6IHN0cmluZ1tdO1xuICAgIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuICAgIEBJbnB1dCgpIGZpbGVzOiBLYnFGaWxlSXRlbVtdID0gW107XG4gICAgQElucHV0KCkgaW5wdXRJZDogc3RyaW5nID0gYGticS1zaW5nbGUtZmlsZS11cGxvYWQtJHtuZXh0U2luZ2xlRmlsZVVwbG9hZFVuaXF1ZUlkKyt9YDtcbiAgICBASW5wdXQoKSBjdXN0b21WYWxpZGF0aW9uPzogS2JxRmlsZVZhbGlkYXRvckZuW107XG4gICAgQE91dHB1dCgpIGZpbGVRdWV1ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxLYnFGaWxlSXRlbSB8IG51bGw+ID0gbmV3IEV2ZW50RW1pdHRlcjxLYnFGaWxlSXRlbSB8IG51bGw+KCk7XG5cbiAgICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgaGFzRm9jdXMgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgZm9jdXNNb25pdG9yU3Vic2NyaXB0aW9uID0gU3Vic2NyaXB0aW9uLkVNUFRZO1xuXG4gICAgZ2V0IGFjY2VwdGVkRmlsZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWNjZXB0ICYmIHRoaXMuYWNjZXB0Lmxlbmd0aCA+IDAgPyB0aGlzLmFjY2VwdC5tYXAoKGV4dDogc3RyaW5nKSA9PiBgLiR7ZXh0fWApLmpvaW4oJywnKSA6ICcqLyonO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLFxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoS0JRX0ZJTEVfVVBMT0FEX0NPTkZJR1VSQVRJT04pIHB1YmxpYyBjb25maWc6IEticUlucHV0RmlsZUxhYmVsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuY29uZmlnID0gY29uZmlnIHx8IEtCUV9TSU5HTEVfRklMRV9VUExPQURfREVGQVVMVF9DT05GSUdVUkFUSU9OO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb2N1c01vbml0b3JTdWJzY3JpcHRpb24gPSB0aGlzLmZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuaW5wdXQpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChvcmlnaW4pID0+IHRoaXMub25Gb2N1cyhvcmlnaW4gPT09ICdrZXlib2FyZCcpKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb2N1c01vbml0b3JTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBvbkZpbGVTZWxlY3RlZFZpYUNsaWNrKHsgdGFyZ2V0IH06IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7IHJldHVybjsgfVxuXG4gICAgICAgIGNvbnN0IGZpbGVzOiBGaWxlTGlzdCB8IG51bGwgPSAodGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmZpbGVzO1xuICAgICAgICBpZiAoZmlsZXMpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsZXMgPSBbdGhpcy5tYXBUb0ZpbGVJdGVtKGZpbGVzWzBdKV07XG4gICAgICAgICAgICB0aGlzLmZpbGVRdWV1ZUNoYW5nZWQuZW1pdCh0aGlzLmZpbGVzWzBdKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRlbGV0ZUl0ZW0oZXZlbnQ/OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7IHJldHVybjsgfVxuXG4gICAgICAgIGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5maWxlcyA9IFtdO1xuICAgICAgICB0aGlzLmVycm9ycyA9IFtdO1xuICAgICAgICB0aGlzLmZpbGVRdWV1ZUNoYW5nZWQuZW1pdChudWxsKTtcbiAgICB9XG5cbiAgICBvbkZpbGVEcm9wcGVkKGZpbGVzOiBGaWxlTGlzdCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkgeyByZXR1cm47IH1cblxuICAgICAgICBpZiAodGhpcy5pc0NvcnJlY3RFeHRlbnNpb24oZmlsZXNbMF0pKSB7XG4gICAgICAgICAgICB0aGlzLmZpbGVzID0gQXJyYXkuZnJvbShmaWxlcylcbiAgICAgICAgICAgICAgICAubWFwKChmaWxlKSA9PiB0aGlzLm1hcFRvRmlsZUl0ZW0oZmlsZSkpO1xuICAgICAgICAgICAgdGhpcy5maWxlUXVldWVDaGFuZ2VkLmVtaXQodGhpcy5maWxlc1swXSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkZvY3VzKGZvY3VzU3RhdGU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHsgcmV0dXJuOyB9XG4gICAgICAgIHRoaXMuaGFzRm9jdXMgPSBmb2N1c1N0YXRlO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1hcFRvRmlsZUl0ZW0oZmlsZTogRmlsZSk6IEticUZpbGVJdGVtIHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZUZpbGUoZmlsZSk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGZpbGUsXG4gICAgICAgICAgICBwcm9ncmVzczogbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApLFxuICAgICAgICAgICAgbG9hZGluZzogbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSlcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlRmlsZShmaWxlOiBGaWxlKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmN1c3RvbVZhbGlkYXRpb24gJiYgdGhpcy5jdXN0b21WYWxpZGF0aW9uLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5lcnJvcnMgPSB0aGlzLmN1c3RvbVZhbGlkYXRpb24ucmVkdWNlKFxuICAgICAgICAgICAgICAgIChlcnJvcnM6IChzdHJpbmcgfCBudWxsKVtdLCB2YWxpZGF0b3JGbjogS2JxRmlsZVZhbGlkYXRvckZuKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9ycy5wdXNoKHZhbGlkYXRvckZuKGZpbGUpKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3JzO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgW10pLmZpbHRlcihCb29sZWFuKSBhcyBzdHJpbmdbXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaXNDb3JyZWN0RXh0ZW5zaW9uKGZpbGU6IEZpbGUpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZmlsZUV4dDogc3RyaW5nID0gZmlsZS5uYW1lLnNwbGl0KCcuJykucG9wKCkgfHwgJyc7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYWNjZXB0ZWRGaWxlcyAhPT0gJyovKicgJiYgdGhpcy5hY2NlcHRlZEZpbGVzLmxlbmd0aCA+IDAgPyB0aGlzLmFjY2VwdGVkRmlsZXMuaW5jbHVkZXMoZmlsZUV4dCkgOiB0cnVlO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJrYnEtZmlsZS11cGxvYWRcIlxuICAgICBtY0ZpbGVEcm9wXG4gICAgIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgIFtjbGFzcy5rYnEtZXJyb3JdPVwiZXJyb3JzICYmIGVycm9ycy5sZW5ndGhcIlxuICAgICAoZmlsZXNEcm9wcGVkKT1cIm9uRmlsZURyb3BwZWQoJGV2ZW50KVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcHpvbmVcIiAqbmdJZj1cIiFmaWxlcy5sZW5ndGg7IGVsc2UgZmlsZU91dHB1dFwiPlxuICAgICAgICAgICAgPGkga2JxLWljb249XCJtYy11cGxvYWQtdG8tY2xvdWRfMjRcIj48L2k+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3B6b25lX190ZXh0XCI+XG4gICAgICAgICAgICAgICAge3sgY29uZmlnLmNhcHRpb25UZXh0IH19XG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwia2JxLWxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Mua2JxLWZvY3VzZWRdPVwiaGFzRm9jdXNcIlxuICAgICAgICAgICAgICAgICAgICAgICBbZm9yXT1cImlucHV0SWRcIj5cbiAgICAgICAgICAgICAgICB7eyBjb25maWcuYnJvd3NlTGluayB9fVxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIDxpbnB1dCAjaW5wdXRcbiAgICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgICBjbGFzcz1cImNkay12aXN1YWxseS1oaWRkZW5cIlxuICAgICAgICAgICBbaWRdPVwiaW5wdXRJZFwiXG4gICAgICAgICAgIFthY2NlcHRdPVwiYWNjZXB0ZWRGaWxlc1wiXG4gICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgIChjaGFuZ2UpPVwib25GaWxlU2VsZWN0ZWRWaWFDbGljaygkZXZlbnQpXCJcbiAgICA+XG48L2Rpdj5cbjxrYnEtaGludCBjbGFzcz1cImticS1maWxlLXVwbG9hZF9faGludFwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltoaW50XVwiPjwvbmctY29udGVudD5cbjwva2JxLWhpbnQ+XG48bmctY29udGFpbmVyICpuZ0lmPVwiZXJyb3JzICYmIGVycm9ycy5sZW5ndGhcIj5cbiAgICA8a2JxLWhpbnQgY2xhc3M9XCJrYnEtZmlsZS11cGxvYWRfX2hpbnQga2JxLWVycm9yXCIgKm5nRm9yPVwibGV0IGVycm9yIG9mIGVycm9yc1wiPnt7IGVycm9yIH19PC9rYnEtaGludD5cbjwvbmctY29udGFpbmVyPlxuXG5cbjxuZy10ZW1wbGF0ZSAjZmlsZU91dHB1dD5cbiAgICA8ZGl2IGNsYXNzPVwiZmlsZS1pdGVtXCIgKm5nSWY9XCJmaWxlcyAmJiBmaWxlcy5sZW5ndGhcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtaXRlbV9fdGV4dC13cmFwcGVyXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwieyBsb2FkaW5nOiBmaWxlc1swXS5sb2FkaW5nIHwgYXN5bmMsIHByb2dyZXNzOiBmaWxlc1swXS5wcm9ncmVzcyB8IGFzeW5jfSBhcyBhc3luY0RhdGFcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWFzeW5jRGF0YS5sb2FkaW5nXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltrYnEtaWNvbl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8a2JxLXByb2dyZXNzLXNwaW5uZXJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImFzeW5jRGF0YS5wcm9ncmVzcyB8fCAwXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhc3luY0RhdGEubG9hZGluZ1wiXG4gICAgICAgICAgICAgICAgPjwva2JxLXByb2dyZXNzLXNwaW5uZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtaXRlbV9fdGV4dFwiIFttY0VsbGlwc2lzQ2VudGVyXT1cImZpbGVzWzBdLmZpbGUubmFtZVwiIFttaW5WaXNpYmxlTGVuZ3RoXT1cIjEwXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uIGticS1idXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cImticS1idXR0b25fdHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uZGVsZXRlKT1cImRlbGV0ZUl0ZW0oKVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uYmFja3NwYWNlKT1cImRlbGV0ZUl0ZW0oKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJGV2ZW50KVwiPlxuICAgICAgICAgICAgPGkga2JxLWljb249XCJtYy1jbG9zZS1jaXJjbGVfMTZcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Component, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@koobiq/components/icon";
|
|
4
|
+
export class KbqCleaner {
|
|
5
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqCleaner, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: KbqCleaner, selector: "kbq-cleaner", host: { classAttribute: "kbq-cleaner" }, exportAs: ["mcCleaner"], ngImport: i0, template: `<i kbq-icon-button="mc-close-circle_16" [autoColor]="true"></i>`, isInline: true, styles: [".kbq-cleaner{display:flex;align-items:center;justify-content:center;width:var(--kbq-form-field-size-icon-button-size, 24px);margin-right:var(--kbq-form-field-size-icon-button-margin-right, 4px);height:100%;cursor:pointer}\n"], dependencies: [{ kind: "component", type: i1.KbqIconButton, selector: "[kbq-icon-button]", inputs: ["color", "small", "tabindex", "disabled"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
7
|
+
}
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqCleaner, decorators: [{
|
|
9
|
+
type: Component,
|
|
10
|
+
args: [{ selector: 'kbq-cleaner', exportAs: 'mcCleaner', template: `<i kbq-icon-button="mc-close-circle_16" [autoColor]="true"></i>`, host: {
|
|
11
|
+
class: 'kbq-cleaner'
|
|
12
|
+
}, encapsulation: ViewEncapsulation.None, styles: [".kbq-cleaner{display:flex;align-items:center;justify-content:center;width:var(--kbq-form-field-size-icon-button-size, 24px);margin-right:var(--kbq-form-field-size-icon-button-margin-right, 4px);height:100%;cursor:pointer}\n"] }]
|
|
13
|
+
}] });
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYW5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZm9ybS1maWVsZC9jbGVhbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQWE3RCxNQUFNLE9BQU8sVUFBVTtpSUFBVixVQUFVO3FIQUFWLFVBQVUscUhBUFQsaUVBQWlFOzsyRkFPbEUsVUFBVTtrQkFWdEIsU0FBUzsrQkFDSSxhQUFhLFlBQ2IsV0FBVyxZQUNYLGlFQUFpRSxRQUVyRTt3QkFDRixLQUFLLEVBQUUsYUFBYTtxQkFDdkIsaUJBQ2MsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ticS1jbGVhbmVyJyxcbiAgICBleHBvcnRBczogJ21jQ2xlYW5lcicsXG4gICAgdGVtcGxhdGU6IGA8aSBrYnEtaWNvbi1idXR0b249XCJtYy1jbG9zZS1jaXJjbGVfMTZcIiBbYXV0b0NvbG9yXT1cInRydWVcIj48L2k+YCxcbiAgICBzdHlsZVVybHM6IFsnY2xlYW5lci5zY3NzJ10sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1jbGVhbmVyJ1xuICAgIH0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBLYnFDbGVhbmVyIHt9XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** An interface which allows a control to work inside of a `MсFormField`. */
|
|
2
|
+
// tslint:disable-next-line:naming-convention
|
|
3
|
+
export class KbqFormFieldControl {
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1jb250cm9sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtY29udHJvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSw2RUFBNkU7QUFDN0UsNkNBQTZDO0FBQzdDLE1BQU0sT0FBZ0IsbUJBQW1CO0NBNkN4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuXG4vKiogQW4gaW50ZXJmYWNlIHdoaWNoIGFsbG93cyBhIGNvbnRyb2wgdG8gd29yayBpbnNpZGUgb2YgYSBgTdGBRm9ybUZpZWxkYC4gKi9cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuYW1pbmctY29udmVudGlvblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEticUZvcm1GaWVsZENvbnRyb2w8VD4ge1xuICAgIC8qKiBUaGUgdmFsdWUgb2YgdGhlIGNvbnRyb2wuICovXG4gICAgdmFsdWU6IFQgfCBudWxsO1xuXG4gICAgLyoqXG4gICAgICogU3RyZWFtIHRoYXQgZW1pdHMgd2hlbmV2ZXIgdGhlIHN0YXRlIG9mIHRoZSBjb250cm9sIGNoYW5nZXMgc3VjaCB0aGF0IHRoZSBwYXJlbnQgYE3RgUZvcm1GaWVsZGBcbiAgICAgKiBuZWVkcyB0byBydW4gY2hhbmdlIGRldGVjdGlvbi5cbiAgICAgKi9cbiAgICByZWFkb25seSBzdGF0ZUNoYW5nZXM6IE9ic2VydmFibGU8dm9pZD47XG5cbiAgICAvKiogVGhlIGVsZW1lbnQgSUQgZm9yIHRoaXMgY29udHJvbC4gKi9cbiAgICByZWFkb25seSBpZDogc3RyaW5nO1xuXG4gICAgLyoqIFRoZSBwbGFjZWhvbGRlciBmb3IgdGhpcyBjb250cm9sLiAqL1xuICAgIHJlYWRvbmx5IHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgICAvKiogR2V0cyB0aGUgTmdDb250cm9sIGZvciB0aGlzIGNvbnRyb2wuICovXG4gICAgcmVhZG9ubHkgbmdDb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGNvbnRyb2wgaXMgZm9jdXNlZC4gKi9cbiAgICByZWFkb25seSBmb2N1c2VkOiBib29sZWFuO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGNvbnRyb2wgaXMgZW1wdHkuICovXG4gICAgcmVhZG9ubHkgZW1wdHk6IGJvb2xlYW47XG5cbiAgICAvKiogV2hldGhlciB0aGUgY29udHJvbCBpcyByZXF1aXJlZC4gKi9cbiAgICByZWFkb25seSByZXF1aXJlZDogYm9vbGVhbjtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBjb250cm9sIGlzIGRpc2FibGVkLiAqL1xuICAgIHJlYWRvbmx5IGRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGNvbnRyb2wgaXMgaW4gYW4gZXJyb3Igc3RhdGUuICovXG4gICAgcmVhZG9ubHkgZXJyb3JTdGF0ZTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEFuIG9wdGlvbmFsIG5hbWUgZm9yIHRoZSBjb250cm9sIHR5cGUgdGhhdCBjYW4gYmUgdXNlZCB0byBkaXN0aW5ndWlzaCBga2JxLWZvcm0tZmllbGRgIGVsZW1lbnRzXG4gICAgICogYmFzZWQgb24gdGhlaXIgY29udHJvbCB0eXBlLiBUaGUgZm9ybSBmaWVsZCB3aWxsIGFkZCBhIGNsYXNzLFxuICAgICAqIGBrYnEtZm9ybS1maWVsZC10eXBlLXt7Y29udHJvbFR5cGV9fWAgdG8gaXRzIHJvb3QgZWxlbWVudC5cbiAgICAgKi9cbiAgICByZWFkb25seSBjb250cm9sVHlwZT86IHN0cmluZztcblxuICAgIC8qKiBIYW5kbGVzIGEgY2xpY2sgb24gdGhlIGNvbnRyb2wncyBjb250YWluZXIuICovXG4gICAgYWJzdHJhY3Qgb25Db250YWluZXJDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQ7XG5cbiAgICBhYnN0cmFjdCBmb2N1cygpOiB2b2lkO1xufVxuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export function getKbqFormFieldMissingControlError() {
|
|
2
|
+
return Error('kbq-form-field must contain a KbqFormFieldControl.');
|
|
3
|
+
}
|
|
4
|
+
export function getKbqFormFieldYouCanNotUseCleanerInNumberInputError() {
|
|
5
|
+
return Error(`You can't use kbq-cleaner with input that have type="number"`);
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1lcnJvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2Zvcm0tZmllbGQvZm9ybS1maWVsZC1lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLGtDQUFrQztJQUNoRCxPQUFPLEtBQUssQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO0FBQ3JFLENBQUM7QUFFRCxNQUFNLFVBQVUsb0RBQW9EO0lBQ2xFLE9BQU8sS0FBSyxDQUFDLDhEQUE4RCxDQUFDLENBQUM7QUFDL0UsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBnZXRLYnFGb3JtRmllbGRNaXNzaW5nQ29udHJvbEVycm9yKCk6IEVycm9yIHtcbiAgcmV0dXJuIEVycm9yKCdrYnEtZm9ybS1maWVsZCBtdXN0IGNvbnRhaW4gYSBLYnFGb3JtRmllbGRDb250cm9sLicpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0S2JxRm9ybUZpZWxkWW91Q2FuTm90VXNlQ2xlYW5lckluTnVtYmVySW5wdXRFcnJvcigpOiBFcnJvciB7XG4gIHJldHVybiBFcnJvcihgWW91IGNhbid0IHVzZSBrYnEtY2xlYW5lciB3aXRoIGlucHV0IHRoYXQgaGF2ZSB0eXBlPVwibnVtYmVyXCJgKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
import { FocusMonitor } from '@angular/cdk/a11y';
|
|
2
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
3
|
+
import { Attribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ContentChildren, Directive, ElementRef, Optional, QueryList, Self, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
4
|
+
import { NgControl } from '@angular/forms';
|
|
5
|
+
import { ESCAPE, F8 } from '@koobiq/cdk/keycodes';
|
|
6
|
+
import { KBQ_FORM_FIELD_REF, mixinColor } from '@koobiq/components/core';
|
|
7
|
+
import { EMPTY, merge, Subject } from 'rxjs';
|
|
8
|
+
import { startWith, takeUntil } from 'rxjs/operators';
|
|
9
|
+
import { KbqCleaner } from './cleaner';
|
|
10
|
+
import { KbqFormFieldControl } from './form-field-control';
|
|
11
|
+
import { getKbqFormFieldMissingControlError, getKbqFormFieldYouCanNotUseCleanerInNumberInputError } from './form-field-errors';
|
|
12
|
+
import { KbqHint } from './hint';
|
|
13
|
+
import { KbqPasswordHint } from './password-hint';
|
|
14
|
+
import { KbqPasswordToggle } from './password-toggle';
|
|
15
|
+
import { KbqPrefix } from './prefix';
|
|
16
|
+
import { KbqStepper } from './stepper';
|
|
17
|
+
import { KbqSuffix } from './suffix';
|
|
18
|
+
import * as i0 from "@angular/core";
|
|
19
|
+
import * as i1 from "@angular/cdk/a11y";
|
|
20
|
+
import * as i2 from "@angular/common";
|
|
21
|
+
import * as i3 from "@angular/forms";
|
|
22
|
+
let nextUniqueId = 0;
|
|
23
|
+
/** @docs-private */
|
|
24
|
+
export class KbqFormFieldBase {
|
|
25
|
+
constructor(elementRef) {
|
|
26
|
+
this.elementRef = elementRef;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/** @docs-private */
|
|
30
|
+
export const KbqFormFieldMixinBase = mixinColor(KbqFormFieldBase);
|
|
31
|
+
export class KbqFormField extends KbqFormFieldMixinBase {
|
|
32
|
+
get hasHint() {
|
|
33
|
+
return this.hint?.length > 0;
|
|
34
|
+
}
|
|
35
|
+
get hasPasswordStrengthError() {
|
|
36
|
+
return this.passwordHints?.some((hint) => hint.hasError);
|
|
37
|
+
}
|
|
38
|
+
get hasSuffix() {
|
|
39
|
+
return this.suffix?.length > 0;
|
|
40
|
+
}
|
|
41
|
+
get hasPrefix() {
|
|
42
|
+
return this.prefix?.length > 0;
|
|
43
|
+
}
|
|
44
|
+
get hasCleaner() {
|
|
45
|
+
return !!this.cleaner;
|
|
46
|
+
}
|
|
47
|
+
get hasStepper() {
|
|
48
|
+
return !!this.stepper;
|
|
49
|
+
}
|
|
50
|
+
get hasPasswordToggle() {
|
|
51
|
+
return !!this.passwordToggle;
|
|
52
|
+
}
|
|
53
|
+
get canShowCleaner() {
|
|
54
|
+
return this.hasCleaner &&
|
|
55
|
+
this.control?.ngControl
|
|
56
|
+
? this.control.ngControl.value && !this.control.disabled
|
|
57
|
+
: false;
|
|
58
|
+
}
|
|
59
|
+
get disabled() {
|
|
60
|
+
return this.control?.disabled;
|
|
61
|
+
}
|
|
62
|
+
get canShowStepper() {
|
|
63
|
+
return this.hasStepper &&
|
|
64
|
+
!this.disabled &&
|
|
65
|
+
(this.control?.focused || this.hovered);
|
|
66
|
+
}
|
|
67
|
+
constructor(elementRef, changeDetectorRef, focusMonitor) {
|
|
68
|
+
super(elementRef);
|
|
69
|
+
this.elementRef = elementRef;
|
|
70
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
71
|
+
this.focusMonitor = focusMonitor;
|
|
72
|
+
// Unique id for the internal form field label.
|
|
73
|
+
this.labelId = `kbq-form-field-label-${nextUniqueId++}`;
|
|
74
|
+
this.hovered = false;
|
|
75
|
+
this.canCleanerClearByEsc = true;
|
|
76
|
+
this.$unsubscribe = new Subject();
|
|
77
|
+
this.runFocusMonitor();
|
|
78
|
+
}
|
|
79
|
+
ngAfterContentInit() {
|
|
80
|
+
if (this.control.numberInput && this.hasCleaner) {
|
|
81
|
+
this.cleaner = null;
|
|
82
|
+
throw getKbqFormFieldYouCanNotUseCleanerInNumberInputError();
|
|
83
|
+
}
|
|
84
|
+
this.validateControlChild();
|
|
85
|
+
if (this.control.controlType) {
|
|
86
|
+
this.elementRef.nativeElement.classList.add(`kbq-form-field-type-${this.control.controlType}`);
|
|
87
|
+
}
|
|
88
|
+
// Subscribe to changes in the child control state in order to update the form field UI.
|
|
89
|
+
this.control.stateChanges
|
|
90
|
+
.pipe(startWith())
|
|
91
|
+
.subscribe((state) => {
|
|
92
|
+
if (!state?.focused && this.hasPasswordStrengthError) {
|
|
93
|
+
this.control.ngControl?.control?.setErrors({ passwordStrength: true });
|
|
94
|
+
}
|
|
95
|
+
this.changeDetectorRef.markForCheck();
|
|
96
|
+
});
|
|
97
|
+
if (this.hasStepper) {
|
|
98
|
+
this.stepper.connectTo(this.control.numberInput);
|
|
99
|
+
}
|
|
100
|
+
// Run change detection if the value changes.
|
|
101
|
+
const valueChanges = this.control.ngControl?.valueChanges || EMPTY;
|
|
102
|
+
merge(valueChanges)
|
|
103
|
+
.pipe(takeUntil(this.$unsubscribe))
|
|
104
|
+
.subscribe(() => this.changeDetectorRef.markForCheck());
|
|
105
|
+
}
|
|
106
|
+
ngAfterContentChecked() {
|
|
107
|
+
this.validateControlChild();
|
|
108
|
+
}
|
|
109
|
+
ngAfterViewInit() {
|
|
110
|
+
// Avoid animations on load.
|
|
111
|
+
this.changeDetectorRef.detectChanges();
|
|
112
|
+
}
|
|
113
|
+
clearValue($event) {
|
|
114
|
+
$event.stopPropagation();
|
|
115
|
+
this.control?.ngControl?.reset();
|
|
116
|
+
this.control?.focus();
|
|
117
|
+
}
|
|
118
|
+
onContainerClick($event) {
|
|
119
|
+
if (this.control.onContainerClick) {
|
|
120
|
+
this.control.onContainerClick($event);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
onKeyDown(event) {
|
|
124
|
+
// tslint:disable-next-line:deprecation
|
|
125
|
+
if (this.control.controlType === 'input-password' && event.altKey && event.keyCode === F8) {
|
|
126
|
+
this.control.toggleType();
|
|
127
|
+
}
|
|
128
|
+
// tslint:disable-next-line:deprecation
|
|
129
|
+
if (this.canCleanerClearByEsc && event.keyCode === ESCAPE && this.control.focused && this.hasCleaner) {
|
|
130
|
+
this.control?.ngControl?.reset();
|
|
131
|
+
event.preventDefault();
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
onHoverChanged(isHovered) {
|
|
135
|
+
if (isHovered !== this.hovered) {
|
|
136
|
+
this.hovered = isHovered;
|
|
137
|
+
this.changeDetectorRef.markForCheck();
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Gets an ElementRef for the element that a overlay attached to the form-field should be
|
|
142
|
+
* positioned relative to.
|
|
143
|
+
*/
|
|
144
|
+
getConnectedOverlayOrigin() {
|
|
145
|
+
return this.connectionContainerRef || this.elementRef;
|
|
146
|
+
}
|
|
147
|
+
/** Determines whether a class from the NgControl should be forwarded to the host element. */
|
|
148
|
+
shouldForward(prop) {
|
|
149
|
+
const ngControl = this.control?.ngControl;
|
|
150
|
+
return ngControl && ngControl[prop];
|
|
151
|
+
}
|
|
152
|
+
ngOnDestroy() {
|
|
153
|
+
this.$unsubscribe.next();
|
|
154
|
+
this.$unsubscribe.complete();
|
|
155
|
+
this.stopFocusMonitor();
|
|
156
|
+
}
|
|
157
|
+
runFocusMonitor() {
|
|
158
|
+
this.focusMonitor.monitor(this.elementRef.nativeElement, true);
|
|
159
|
+
}
|
|
160
|
+
stopFocusMonitor() {
|
|
161
|
+
this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);
|
|
162
|
+
}
|
|
163
|
+
/** Throws an error if the form field's control is missing. */
|
|
164
|
+
validateControlChild() {
|
|
165
|
+
if (!this.control) {
|
|
166
|
+
throw getKbqFormFieldMissingControlError();
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqFormField, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
170
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: KbqFormField, selector: "kbq-form-field", inputs: { color: "color" }, host: { listeners: { "keydown": "onKeyDown($event)", "mouseenter": "onHoverChanged(true)", "mouseleave": "onHoverChanged(false)" }, properties: { "class.kbq-form-field_invalid": "control.errorState", "class.kbq-form-field_has-prefix": "hasPrefix", "class.kbq-form-field_has-suffix": "hasSuffix", "class.kbq-form-field_has-password-toggle": "hasPasswordToggle", "class.kbq-form-field_has-cleaner": "canShowCleaner", "class.kbq-form-field_has-stepper": "canShowStepper", "class.kbq-disabled": "control.disabled", "class.ng-untouched": "shouldForward(\"untouched\")", "class.ng-touched": "shouldForward(\"touched\")", "class.ng-pristine": "shouldForward(\"pristine\")", "class.ng-dirty": "shouldForward(\"dirty\")", "class.ng-valid": "shouldForward(\"valid\")", "class.ng-invalid": "shouldForward(\"invalid\")", "class.ng-pending": "shouldForward(\"pending\")" }, classAttribute: "kbq-form-field" }, providers: [
|
|
171
|
+
{ provide: KBQ_FORM_FIELD_REF, useExisting: KbqFormField }
|
|
172
|
+
], queries: [{ propertyName: "control", first: true, predicate: KbqFormFieldControl, descendants: true }, { propertyName: "stepper", first: true, predicate: KbqStepper, descendants: true }, { propertyName: "cleaner", first: true, predicate: KbqCleaner, descendants: true }, { propertyName: "passwordToggle", first: true, predicate: KbqPasswordToggle, descendants: true }, { propertyName: "hint", predicate: KbqHint }, { propertyName: "passwordHints", predicate: KbqPasswordHint }, { propertyName: "suffix", predicate: KbqSuffix }, { propertyName: "prefix", predicate: KbqPrefix }], viewQueries: [{ propertyName: "connectionContainerRef", first: true, predicate: ["connectionContainer"], descendants: true, static: true }], exportAs: ["mcFormField"], usesInheritance: true, ngImport: i0, template: "<div class=\"kbq-form-field__container\" (click)=\"onContainerClick($event)\">\n\n <div class=\"kbq-form-field__prefix\" *ngIf=\"hasPrefix\">\n <ng-content select=\"[mcPrefix]\"></ng-content>\n </div>\n\n <div class=\"kbq-form-field__infix\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"kbq-form-field__suffix\" *ngIf=\"hasSuffix\">\n <ng-content select=\"[mcSuffix]\"></ng-content>\n </div>\n\n <div class=\"kbq-form-field__cleaner\"\n *ngIf=\"canShowCleaner && !hasSuffix\"\n (click)=\"clearValue($event)\">\n <ng-content select=\"kbq-cleaner\"></ng-content>\n </div>\n\n <ng-content select=\"kbq-password-toggle\"></ng-content>\n\n <ng-content *ngIf=\"canShowStepper\" select=\"kbq-stepper\"></ng-content>\n</div>\n\n<div class=\"kbq-form-field__hint\" *ngIf=\"hint.length || passwordHints.length\">\n <ng-content select=\"kbq-hint, kbq-password-hint\"></ng-content>\n</div>\n", styles: [".kbq-form-field{position:relative;display:inline-block;width:100%}.kbq-form-field .kbq-form-field__container{box-sizing:border-box}.kbq-form-field .kbq-form-field:not(.kbq-form-field-type-textarea){height:var(--kbq-form-field-size-height, 32px)}.kbq-form-field,.kbq-form-field .kbq-input,.kbq-form-field .kbq-textarea{border-radius:var(--kbq-form-field-size-border-radius, 8px)}.kbq-form-field:hover{z-index:1}.kbq-form-field.kbq-focused{z-index:2}.kbq-form-field.kbq-form-field_without-borders .kbq-form-field__container{border-color:transparent;box-shadow:none}.kbq-form-field.kbq-form-field_has-prefix .kbq-input{padding-left:calc(var(--kbq-form-field-size-icon-size, 16px) + var(--kbq-form-field-size-icon-margin-left, 8px) + var(--kbq-form-field-size-icon-margin-right, 8px))}.kbq-form-field.kbq-form-field_has-password-toggle .kbq-input,.kbq-form-field.kbq-form-field_has-cleaner .kbq-input,.kbq-form-field.kbq-form-field_has-stepper .kbq-input,.kbq-form-field.kbq-form-field_has-suffix .kbq-input{padding-right:calc(var(--kbq-form-field-size-icon-button-size, 24px) + var(--kbq-form-field-size-icon-button-margin-left, 4px) + var(--kbq-form-field-size-icon-button-margin-right, 4px))}.kbq-form-field__container{position:relative;border-width:var(--kbq-form-field-size-border-width, 1px);border-style:solid;border-color:transparent;border-radius:var(--kbq-form-field-size-border-radius, 8px)}.kbq-form-field__prefix,.kbq-form-field__suffix{position:absolute;top:0;bottom:0;width:32px;display:flex;flex-direction:row;justify-content:center;align-items:center}.kbq-form-field__prefix{left:0}.kbq-form-field__suffix{right:0}.kbq-form-field__cleaner,.kbq-password-toggle,.kbq-stepper{position:absolute;top:0;bottom:0;right:0}.kbq-stepper{display:flex;flex-direction:column;justify-content:center;align-items:center;width:var(--kbq-form-field-size-button-width, )}.kbq-stepper .kbq-stepper-step-up,.kbq-stepper .kbq-stepper-step-down{cursor:pointer;width:var(--kbq-form-field-size-button-width, );text-align:center}.kbq-stepper .kbq-stepper-step-up{transform:scaleY(-1)}.kbq-form-field__hint{display:flex;flex-direction:column;margin-top:var(--kbq-form-field-hint-size-margin-top, 12px);gap:var(--kbq-form-field-hint-size-gap, 8px)}\n", ".kbq-input{background:transparent;padding:0;margin:0;border:none;outline:none;display:inline-block;box-sizing:border-box;width:100%;min-height:calc(var(--kbq-form-field-size-height, 32px) - var(--kbq-form-field-size-border-width, 1px) * 2);padding:calc(var(--kbq-input-size-padding-vertical, 8px) - var(--kbq-form-field-size-border-width, 1px)) var(--kbq-input-size-padding-horizontal, 12px)}.kbq-input::-ms-clear{display:none;width:0;height:0}.kbq-input::-ms-reveal{display:none;width:0;height:0}.kbq-input::-webkit-search-decoration,.kbq-input::-webkit-search-cancel-button,.kbq-input::-webkit-search-results-button,.kbq-input::-webkit-search-results-decoration{display:none}input.kbq-input[type=number]{-moz-appearance:textfield}input.kbq-input[type=number]::-webkit-inner-spin-button,input.kbq-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}input.kbq-input:invalid{box-shadow:unset}input.kbq-input::placeholder{opacity:1}\n", ".kbq-timepicker{padding-right:calc(var(--kbq-timepicker-size-padding-right, 16px) - var(--kbq-form-field-size-border-width, 1px))}.kbq-form-field-type-timepicker{width:auto}\n", ".kbq-form-field-type-datepicker{width:auto}.kbq-datepicker{width:var(--kbq-datepicker-input-size-width, 130px)}\n", ".kbq-textarea{display:inline-block;background:transparent;margin:0;border:none;outline:none;resize:none;overflow:auto;width:100%;box-sizing:border-box;padding:var(--kbq-textarea-size-padding-vertical, 8px) var(--kbq-textarea-size-padding-horizontal, 12px);-webkit-appearance:none;vertical-align:bottom}.kbq-textarea:not(.kbq-textarea-resizable){box-sizing:border-box;overflow-y:hidden}.kbq-textarea.kbq-textarea-resizable{resize:vertical;min-height:var(--kbq-textarea-size-min-height, 64px)}.kbq-textarea:invalid{box-shadow:unset}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
173
|
+
}
|
|
174
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqFormField, decorators: [{
|
|
175
|
+
type: Component,
|
|
176
|
+
args: [{ selector: 'kbq-form-field', exportAs: 'mcFormField', host: {
|
|
177
|
+
class: 'kbq-form-field',
|
|
178
|
+
'[class.kbq-form-field_invalid]': 'control.errorState',
|
|
179
|
+
'[class.kbq-form-field_has-prefix]': 'hasPrefix',
|
|
180
|
+
'[class.kbq-form-field_has-suffix]': 'hasSuffix',
|
|
181
|
+
'[class.kbq-form-field_has-password-toggle]': 'hasPasswordToggle',
|
|
182
|
+
'[class.kbq-form-field_has-cleaner]': 'canShowCleaner',
|
|
183
|
+
'[class.kbq-form-field_has-stepper]': 'canShowStepper',
|
|
184
|
+
'[class.kbq-disabled]': 'control.disabled',
|
|
185
|
+
'[class.ng-untouched]': 'shouldForward("untouched")',
|
|
186
|
+
'[class.ng-touched]': 'shouldForward("touched")',
|
|
187
|
+
'[class.ng-pristine]': 'shouldForward("pristine")',
|
|
188
|
+
'[class.ng-dirty]': 'shouldForward("dirty")',
|
|
189
|
+
'[class.ng-valid]': 'shouldForward("valid")',
|
|
190
|
+
'[class.ng-invalid]': 'shouldForward("invalid")',
|
|
191
|
+
'[class.ng-pending]': 'shouldForward("pending")',
|
|
192
|
+
'(keydown)': 'onKeyDown($event)',
|
|
193
|
+
'(mouseenter)': 'onHoverChanged(true)',
|
|
194
|
+
'(mouseleave)': 'onHoverChanged(false)'
|
|
195
|
+
}, inputs: ['color'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
196
|
+
{ provide: KBQ_FORM_FIELD_REF, useExisting: KbqFormField }
|
|
197
|
+
], template: "<div class=\"kbq-form-field__container\" (click)=\"onContainerClick($event)\">\n\n <div class=\"kbq-form-field__prefix\" *ngIf=\"hasPrefix\">\n <ng-content select=\"[mcPrefix]\"></ng-content>\n </div>\n\n <div class=\"kbq-form-field__infix\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"kbq-form-field__suffix\" *ngIf=\"hasSuffix\">\n <ng-content select=\"[mcSuffix]\"></ng-content>\n </div>\n\n <div class=\"kbq-form-field__cleaner\"\n *ngIf=\"canShowCleaner && !hasSuffix\"\n (click)=\"clearValue($event)\">\n <ng-content select=\"kbq-cleaner\"></ng-content>\n </div>\n\n <ng-content select=\"kbq-password-toggle\"></ng-content>\n\n <ng-content *ngIf=\"canShowStepper\" select=\"kbq-stepper\"></ng-content>\n</div>\n\n<div class=\"kbq-form-field__hint\" *ngIf=\"hint.length || passwordHints.length\">\n <ng-content select=\"kbq-hint, kbq-password-hint\"></ng-content>\n</div>\n", styles: [".kbq-form-field{position:relative;display:inline-block;width:100%}.kbq-form-field .kbq-form-field__container{box-sizing:border-box}.kbq-form-field .kbq-form-field:not(.kbq-form-field-type-textarea){height:var(--kbq-form-field-size-height, 32px)}.kbq-form-field,.kbq-form-field .kbq-input,.kbq-form-field .kbq-textarea{border-radius:var(--kbq-form-field-size-border-radius, 8px)}.kbq-form-field:hover{z-index:1}.kbq-form-field.kbq-focused{z-index:2}.kbq-form-field.kbq-form-field_without-borders .kbq-form-field__container{border-color:transparent;box-shadow:none}.kbq-form-field.kbq-form-field_has-prefix .kbq-input{padding-left:calc(var(--kbq-form-field-size-icon-size, 16px) + var(--kbq-form-field-size-icon-margin-left, 8px) + var(--kbq-form-field-size-icon-margin-right, 8px))}.kbq-form-field.kbq-form-field_has-password-toggle .kbq-input,.kbq-form-field.kbq-form-field_has-cleaner .kbq-input,.kbq-form-field.kbq-form-field_has-stepper .kbq-input,.kbq-form-field.kbq-form-field_has-suffix .kbq-input{padding-right:calc(var(--kbq-form-field-size-icon-button-size, 24px) + var(--kbq-form-field-size-icon-button-margin-left, 4px) + var(--kbq-form-field-size-icon-button-margin-right, 4px))}.kbq-form-field__container{position:relative;border-width:var(--kbq-form-field-size-border-width, 1px);border-style:solid;border-color:transparent;border-radius:var(--kbq-form-field-size-border-radius, 8px)}.kbq-form-field__prefix,.kbq-form-field__suffix{position:absolute;top:0;bottom:0;width:32px;display:flex;flex-direction:row;justify-content:center;align-items:center}.kbq-form-field__prefix{left:0}.kbq-form-field__suffix{right:0}.kbq-form-field__cleaner,.kbq-password-toggle,.kbq-stepper{position:absolute;top:0;bottom:0;right:0}.kbq-stepper{display:flex;flex-direction:column;justify-content:center;align-items:center;width:var(--kbq-form-field-size-button-width, )}.kbq-stepper .kbq-stepper-step-up,.kbq-stepper .kbq-stepper-step-down{cursor:pointer;width:var(--kbq-form-field-size-button-width, );text-align:center}.kbq-stepper .kbq-stepper-step-up{transform:scaleY(-1)}.kbq-form-field__hint{display:flex;flex-direction:column;margin-top:var(--kbq-form-field-hint-size-margin-top, 12px);gap:var(--kbq-form-field-hint-size-gap, 8px)}\n", ".kbq-input{background:transparent;padding:0;margin:0;border:none;outline:none;display:inline-block;box-sizing:border-box;width:100%;min-height:calc(var(--kbq-form-field-size-height, 32px) - var(--kbq-form-field-size-border-width, 1px) * 2);padding:calc(var(--kbq-input-size-padding-vertical, 8px) - var(--kbq-form-field-size-border-width, 1px)) var(--kbq-input-size-padding-horizontal, 12px)}.kbq-input::-ms-clear{display:none;width:0;height:0}.kbq-input::-ms-reveal{display:none;width:0;height:0}.kbq-input::-webkit-search-decoration,.kbq-input::-webkit-search-cancel-button,.kbq-input::-webkit-search-results-button,.kbq-input::-webkit-search-results-decoration{display:none}input.kbq-input[type=number]{-moz-appearance:textfield}input.kbq-input[type=number]::-webkit-inner-spin-button,input.kbq-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}input.kbq-input:invalid{box-shadow:unset}input.kbq-input::placeholder{opacity:1}\n", ".kbq-timepicker{padding-right:calc(var(--kbq-timepicker-size-padding-right, 16px) - var(--kbq-form-field-size-border-width, 1px))}.kbq-form-field-type-timepicker{width:auto}\n", ".kbq-form-field-type-datepicker{width:auto}.kbq-datepicker{width:var(--kbq-datepicker-input-size-width, 130px)}\n", ".kbq-textarea{display:inline-block;background:transparent;margin:0;border:none;outline:none;resize:none;overflow:auto;width:100%;box-sizing:border-box;padding:var(--kbq-textarea-size-padding-vertical, 8px) var(--kbq-textarea-size-padding-horizontal, 12px);-webkit-appearance:none;vertical-align:bottom}.kbq-textarea:not(.kbq-textarea-resizable){box-sizing:border-box;overflow-y:hidden}.kbq-textarea.kbq-textarea-resizable{resize:vertical;min-height:var(--kbq-textarea-size-min-height, 64px)}.kbq-textarea:invalid{box-shadow:unset}\n"] }]
|
|
198
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.FocusMonitor }]; }, propDecorators: { control: [{
|
|
199
|
+
type: ContentChild,
|
|
200
|
+
args: [KbqFormFieldControl, { static: false }]
|
|
201
|
+
}], stepper: [{
|
|
202
|
+
type: ContentChild,
|
|
203
|
+
args: [KbqStepper, { static: false }]
|
|
204
|
+
}], cleaner: [{
|
|
205
|
+
type: ContentChild,
|
|
206
|
+
args: [KbqCleaner, { static: false }]
|
|
207
|
+
}], passwordToggle: [{
|
|
208
|
+
type: ContentChild,
|
|
209
|
+
args: [KbqPasswordToggle, { static: false }]
|
|
210
|
+
}], hint: [{
|
|
211
|
+
type: ContentChildren,
|
|
212
|
+
args: [KbqHint]
|
|
213
|
+
}], passwordHints: [{
|
|
214
|
+
type: ContentChildren,
|
|
215
|
+
args: [KbqPasswordHint]
|
|
216
|
+
}], suffix: [{
|
|
217
|
+
type: ContentChildren,
|
|
218
|
+
args: [KbqSuffix]
|
|
219
|
+
}], prefix: [{
|
|
220
|
+
type: ContentChildren,
|
|
221
|
+
args: [KbqPrefix]
|
|
222
|
+
}], connectionContainerRef: [{
|
|
223
|
+
type: ViewChild,
|
|
224
|
+
args: ['connectionContainer', { static: true }]
|
|
225
|
+
}] } });
|
|
226
|
+
export class KbqFormFieldWithoutBorders {
|
|
227
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqFormFieldWithoutBorders, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
228
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.5", type: KbqFormFieldWithoutBorders, selector: "kbq-form-field[mcFormFieldWithoutBorders]", host: { classAttribute: "kbq-form-field_without-borders" }, exportAs: ["mcFormFieldWithoutBorders"], ngImport: i0 }); }
|
|
229
|
+
}
|
|
230
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqFormFieldWithoutBorders, decorators: [{
|
|
231
|
+
type: Directive,
|
|
232
|
+
args: [{
|
|
233
|
+
selector: 'kbq-form-field[mcFormFieldWithoutBorders]',
|
|
234
|
+
exportAs: 'mcFormFieldWithoutBorders',
|
|
235
|
+
host: { class: 'kbq-form-field_without-borders' }
|
|
236
|
+
}]
|
|
237
|
+
}] });
|
|
238
|
+
export class KbqTrim {
|
|
239
|
+
constructor(noTrim, ngControl) {
|
|
240
|
+
this.noTrim = noTrim;
|
|
241
|
+
this.ngControl = ngControl;
|
|
242
|
+
this.registerOnChange = (fn) => {
|
|
243
|
+
return this.original.call(this.ngControl.valueAccessor, (value) => fn(this.trim(value)));
|
|
244
|
+
};
|
|
245
|
+
this.noTrim = coerceBooleanProperty(noTrim);
|
|
246
|
+
if (this.noTrim || !this.ngControl?.valueAccessor) {
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
this.original = this.ngControl.valueAccessor.registerOnChange;
|
|
250
|
+
this.ngControl.valueAccessor.registerOnChange = this.registerOnChange;
|
|
251
|
+
}
|
|
252
|
+
trim(value) {
|
|
253
|
+
if (this.noTrim) {
|
|
254
|
+
return value;
|
|
255
|
+
}
|
|
256
|
+
return typeof value === 'string' ? value.trim() : value;
|
|
257
|
+
}
|
|
258
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqTrim, deps: [{ token: 'no-trim', attribute: true }, { token: i3.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
259
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.5", type: KbqTrim, selector: "[mcInput], [mcTextarea]", host: { classAttribute: "kbq-trim" }, exportAs: ["KbqTrim"], ngImport: i0 }); }
|
|
260
|
+
}
|
|
261
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqTrim, decorators: [{
|
|
262
|
+
type: Directive,
|
|
263
|
+
args: [{
|
|
264
|
+
selector: '[mcInput], [mcTextarea]',
|
|
265
|
+
exportAs: 'KbqTrim',
|
|
266
|
+
host: { class: 'kbq-trim' }
|
|
267
|
+
}]
|
|
268
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
269
|
+
type: Attribute,
|
|
270
|
+
args: ['no-trim']
|
|
271
|
+
}] }, { type: i3.NgControl, decorators: [{
|
|
272
|
+
type: Optional
|
|
273
|
+
}, {
|
|
274
|
+
type: Self
|
|
275
|
+
}] }]; } });
|
|
276
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZm9ybS1maWVsZC9mb3JtLWZpZWxkLnRzIiwiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUlILFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLFNBQVMsRUFDVCxVQUFVLEVBRVYsUUFBUSxFQUNSLFNBQVMsRUFDVCxJQUFJLEVBQ0osU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQTBCLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdkMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUNILGtDQUFrQyxFQUNsQyxvREFBb0QsRUFDdkQsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsT0FBTyxFQUFF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LENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxhQUFhLEVBQUU7WUFBRSxPQUFPO1NBQUU7UUFFOUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQztRQUU5RCxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDMUUsQ0FBQztJQUVELElBQUksQ0FBQyxLQUFLO1FBQ04sSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQUUsT0FBTyxLQUFLLENBQUM7U0FBRTtRQUVsQyxPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDNUQsQ0FBQztpSUFwQlEsT0FBTyxrQkFJRCxTQUFTO3FIQUpmLE9BQU87OzJGQUFQLE9BQU87a0JBTG5CLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUU7aUJBQzlCOzswQkFLUSxTQUFTOzJCQUFDLFNBQVM7OzBCQUNuQixRQUFROzswQkFBSSxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNNb25pdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50Q2hlY2tlZCxcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQXR0cmlidXRlLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIE9uRGVzdHJveSxcbiAgICBPcHRpb25hbCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFU0NBUEUsIEY4IH0gZnJvbSAnQGtvb2JpcS9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgQ2FuQ29sb3IsIENhbkNvbG9yQ3RvciwgS0JRX0ZPUk1fRklFTERfUkVGLCBtaXhpbkNvbG9yIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2NvcmUnO1xuaW1wb3J0IHsgRU1QVFksIG1lcmdlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzdGFydFdpdGgsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgS2JxQ2xlYW5lciB9IGZyb20gJy4vY2xlYW5lcic7XG5pbXBvcnQgeyBLYnFGb3JtRmllbGRDb250cm9sIH0gZnJvbSAnLi9mb3JtLWZpZWxkLWNvbnRyb2wnO1xuaW1wb3J0IHtcbiAgICBnZXRLYnFGb3JtRmllbGRNaXNzaW5nQ29udHJvbEVycm9yLFxuICAgIGdldEticUZvcm1GaWVsZFlvdUNhbk5vdFVzZUNsZWFuZXJJbk51bWJlcklucHV0RXJyb3Jcbn0gZnJvbSAnLi9mb3JtLWZpZWxkLWVycm9ycyc7XG5pbXBvcnQgeyBLYnFIaW50IH0gZnJvbSAnLi9oaW50JztcbmltcG9ydCB7IEticVBhc3N3b3JkSGludCB9IGZyb20gJy4vcGFzc3dvcmQtaGludCc7XG5pbXBvcnQgeyBLYnFQYXNzd29yZFRvZ2dsZSB9IGZyb20gJy4vcGFzc3dvcmQtdG9nZ2xlJztcbmltcG9ydCB7IEticVByZWZpeCB9IGZyb20gJy4vcHJlZml4JztcbmltcG9ydCB7IEticVN0ZXBwZXIgfSBmcm9tICcuL3N0ZXBwZXInO1xuaW1wb3J0IHsgS2JxU3VmZml4IH0gZnJvbSAnLi9zdWZmaXgnO1xuXG5cbmxldCBuZXh0VW5pcXVlSWQgPSAwO1xuXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuZXhwb3J0IGNsYXNzIEticUZvcm1GaWVsZEJhc2Uge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxufVxuXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuZXhwb3J0IGNvbnN0IEticUZvcm1GaWVsZE1peGluQmFzZTogQ2FuQ29sb3JDdG9yICYgdHlwZW9mIEticUZvcm1GaWVsZEJhc2UgPSBtaXhpbkNvbG9yKEticUZvcm1GaWVsZEJhc2UpO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ticS1mb3JtLWZpZWxkJyxcbiAgICBleHBvcnRBczogJ21jRm9ybUZpZWxkJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2Zvcm0tZmllbGQuaHRtbCcsXG4gICAgLy8gS2JxSW5wdXQgaXMgYSBkaXJlY3RpdmUgYW5kIGNhbid0IGhhdmUgc3R5bGVzLCBzbyB3ZSBuZWVkIHRvIGluY2x1ZGUgaXRzIHN0eWxlcyBoZXJlLlxuICAgIC8vIFRoZSBLYnFJbnB1dCBzdHlsZXMgYXJlIGZhaXJseSBtaW5pbWFsIHNvIGl0IHNob3VsZG4ndCBiZSBhIGJpZyBkZWFsIGZvciBwZW9wbGUgd2hvXG4gICAgLy8gYXJlbid0IHVzaW5nIEticUlucHV0LlxuICAgIHN0eWxlVXJsczogW1xuICAgICAgICAnZm9ybS1maWVsZC5zY3NzJyxcbiAgICAgICAgJy4uL2lucHV0L2lucHV0LnNjc3MnLFxuICAgICAgICAnLi4vdGltZXBpY2tlci90aW1lcGlja2VyLnNjc3MnLFxuICAgICAgICAnLi4vZGF0ZXBpY2tlci9kYXRlcGlja2VyLWlucHV0LnNjc3MnLFxuICAgICAgICAnLi4vdGV4dGFyZWEvdGV4dGFyZWEuc2NzcydcbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdrYnEtZm9ybS1maWVsZCcsXG4gICAgICAgICdbY2xhc3Mua2JxLWZvcm0tZmllbGRfaW52YWxpZF0nOiAnY29udHJvbC5lcnJvclN0YXRlJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtZm9ybS1maWVsZF9oYXMtcHJlZml4XSc6ICdoYXNQcmVmaXgnLFxuICAgICAgICAnW2NsYXNzLmticS1mb3JtLWZpZWxkX2hhcy1zdWZmaXhdJzogJ2hhc1N1ZmZpeCcsXG4gICAgICAgICdbY2xhc3Mua2JxLWZvcm0tZmllbGRfaGFzLXBhc3N3b3JkLXRvZ2dsZV0nOiAnaGFzUGFzc3dvcmRUb2dnbGUnLFxuICAgICAgICAnW2NsYXNzLmticS1mb3JtLWZpZWxkX2hhcy1jbGVhbmVyXSc6ICdjYW5TaG93Q2xlYW5lcicsXG4gICAgICAgICdbY2xhc3Mua2JxLWZvcm0tZmllbGRfaGFzLXN0ZXBwZXJdJzogJ2NhblNob3dTdGVwcGVyJyxcblxuICAgICAgICAnW2NsYXNzLmticS1kaXNhYmxlZF0nOiAnY29udHJvbC5kaXNhYmxlZCcsXG5cbiAgICAgICAgJ1tjbGFzcy5uZy11bnRvdWNoZWRdJzogJ3Nob3VsZEZvcndhcmQoXCJ1bnRvdWNoZWRcIiknLFxuICAgICAgICAnW2NsYXNzLm5nLXRvdWNoZWRdJzogJ3Nob3VsZEZvcndhcmQoXCJ0b3VjaGVkXCIpJyxcbiAgICAgICAgJ1tjbGFzcy5uZy1wcmlzdGluZV0nOiAnc2hvdWxkRm9yd2FyZChcInByaXN0aW5lXCIpJyxcbiAgICAgICAgJ1tjbGFzcy5uZy1kaXJ0eV0nOiAnc2hvdWxkRm9yd2FyZChcImRpcnR5XCIpJyxcbiAgICAgICAgJ1tjbGFzcy5uZy12YWxpZF0nOiAnc2hvdWxkRm9yd2FyZChcInZhbGlkXCIpJyxcbiAgICAgICAgJ1tjbGFzcy5uZy1pbnZhbGlkXSc6ICdzaG91bGRGb3J3YXJkKFwiaW52YWxpZFwiKScsXG4gICAgICAgICdbY2xhc3MubmctcGVuZGluZ10nOiAnc2hvdWxkRm9yd2FyZChcInBlbmRpbmdcIiknLFxuXG4gICAgICAgICcoa2V5ZG93biknOiAnb25LZXlEb3duKCRldmVudCknLFxuICAgICAgICAnKG1vdXNlZW50ZXIpJzogJ29uSG92ZXJDaGFuZ2VkKHRydWUpJyxcbiAgICAgICAgJyhtb3VzZWxlYXZlKSc6ICdvbkhvdmVyQ2hhbmdlZChmYWxzZSknXG4gICAgfSxcbiAgICBpbnB1dHM6IFsnY29sb3InXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IEtCUV9GT1JNX0ZJRUxEX1JFRiwgdXNlRXhpc3Rpbmc6IEticUZvcm1GaWVsZCB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBLYnFGb3JtRmllbGQgZXh0ZW5kcyBLYnFGb3JtRmllbGRNaXhpbkJhc2UgaW1wbGVtZW50c1xuICAgIEFmdGVyQ29udGVudEluaXQsIEFmdGVyQ29udGVudENoZWNrZWQsIEFmdGVyVmlld0luaXQsIENhbkNvbG9yLCBPbkRlc3Ryb3kge1xuXG4gICAgQENvbnRlbnRDaGlsZChLYnFGb3JtRmllbGRDb250cm9sLCB7IHN0YXRpYzogZmFsc2UgfSkgY29udHJvbDogS2JxRm9ybUZpZWxkQ29udHJvbDxhbnk+O1xuICAgIEBDb250ZW50Q2hpbGQoS2JxU3RlcHBlciwgeyBzdGF0aWM6IGZhbHNlIH0pIHN0ZXBwZXI6IEticVN0ZXBwZXI7XG4gICAgQENvbnRlbnRDaGlsZChLYnFDbGVhbmVyLCB7IHN0YXRpYzogZmFsc2UgfSkgY2xlYW5lcjogS2JxQ2xlYW5lciB8IG51bGw7XG4gICAgQENvbnRlbnRDaGlsZChLYnFQYXNzd29yZFRvZ2dsZSwgeyBzdGF0aWM6IGZhbHNlIH0pIHBhc3N3b3JkVG9nZ2xlOiBLYnFQYXNzd29yZFRvZ2dsZSB8IG51bGw7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKEticUhpbnQpIGhpbnQ6IFF1ZXJ5TGlzdDxLYnFIaW50PjtcbiAgICBAQ29udGVudENoaWxkcmVuKEticVBhc3N3b3JkSGludCkgcGFzc3dvcmRIaW50czogUXVlcnlMaXN0PEticVBhc3N3b3JkSGludD47XG4gICAgQENvbnRlbnRDaGlsZHJlbihLYnFTdWZmaXgpIHN1ZmZpeDogUXVlcnlMaXN0PEticVN1ZmZpeD47XG4gICAgQENvbnRlbnRDaGlsZHJlbihLYnFQcmVmaXgpIHByZWZpeDogUXVlcnlMaXN0PEticVByZWZpeD47XG5cbiAgICBAVmlld0NoaWxkKCdjb25uZWN0aW9uQ29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSkgY29ubmVjdGlvbkNvbnRhaW5lclJlZjogRWxlbWVudFJlZjtcblxuICAgIC8vIFVuaXF1ZSBpZCBmb3IgdGhlIGludGVybmFsIGZvcm0gZmllbGQgbGFiZWwuXG4gICAgbGFiZWxJZCA9IGBrYnEtZm9ybS1maWVsZC1sYWJlbC0ke25leHRVbmlxdWVJZCsrfWA7XG5cbiAgICBob3ZlcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBjYW5DbGVhbmVyQ2xlYXJCeUVzYzogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBwcml2YXRlICR1bnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBnZXQgaGFzSGludCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGludD8ubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBnZXQgaGFzUGFzc3dvcmRTdHJlbmd0aEVycm9yKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXNzd29yZEhpbnRzPy5zb21lKChoaW50KSA9PiBoaW50Lmhhc0Vycm9yKTtcbiAgICB9XG5cbiAgICBnZXQgaGFzU3VmZml4KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zdWZmaXg/Lmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgZ2V0IGhhc1ByZWZpeCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJlZml4Py5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIGdldCBoYXNDbGVhbmVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmNsZWFuZXI7XG4gICAgfVxuXG4gICAgZ2V0IGhhc1N0ZXBwZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuc3RlcHBlcjtcbiAgICB9XG5cbiAgICBnZXQgaGFzUGFzc3dvcmRUb2dnbGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMucGFzc3dvcmRUb2dnbGU7XG4gICAgfVxuXG4gICAgZ2V0IGNhblNob3dDbGVhbmVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNDbGVhbmVyICYmXG4gICAgICAgIHRoaXMuY29udHJvbD8ubmdDb250cm9sXG4gICAgICAgICAgICA/IHRoaXMuY29udHJvbC5uZ0NvbnRyb2wudmFsdWUgJiYgIXRoaXMuY29udHJvbC5kaXNhYmxlZFxuICAgICAgICAgICAgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2w/LmRpc2FibGVkO1xuICAgIH1cblxuICAgIGdldCBjYW5TaG93U3RlcHBlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzU3RlcHBlciAmJlxuICAgICAgICAgICAgIXRoaXMuZGlzYWJsZWQgJiZcbiAgICAgICAgICAgICh0aGlzLmNvbnRyb2w/LmZvY3VzZWQgfHwgdGhpcy5ob3ZlcmVkKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIGZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYpO1xuXG4gICAgICAgIHRoaXMucnVuRm9jdXNNb25pdG9yKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICBpZiAoKHRoaXMuY29udHJvbCBhcyBhbnkpLm51bWJlcklucHV0ICYmIHRoaXMuaGFzQ2xlYW5lcikge1xuICAgICAgICAgICAgdGhpcy5jbGVhbmVyID0gbnVsbDtcbiAgICAgICAgICAgIHRocm93IGdldEticUZvcm1GaWVsZFlvdUNhbk5vdFVzZUNsZWFuZXJJbk51bWJlcklucHV0RXJyb3IoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmFsaWRhdGVDb250cm9sQ2hpbGQoKTtcblxuICAgICAgICBpZiAodGhpcy5jb250cm9sLmNvbnRyb2xUeXBlKSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKGBrYnEtZm9ybS1maWVsZC10eXBlLSR7dGhpcy5jb250cm9sLmNvbnRyb2xUeXBlfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU3Vic2NyaWJlIHRvIGNoYW5nZXMgaW4gdGhlIGNoaWxkIGNvbnRyb2wgc3RhdGUgaW4gb3JkZXIgdG8gdXBkYXRlIHRoZSBmb3JtIGZpZWxkIFVJLlxuICAgICAgICB0aGlzLmNvbnRyb2wuc3RhdGVDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShzdGFydFdpdGgoKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHN0YXRlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXN0YXRlPy5mb2N1c2VkICYmIHRoaXMuaGFzUGFzc3dvcmRTdHJlbmd0aEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbC5uZ0NvbnRyb2w/LmNvbnRyb2w/LnNldEVycm9ycyh7IHBhc3N3b3JkU3RyZW5ndGg6IHRydWUgfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLmhhc1N0ZXBwZXIpIHtcbiAgICAgICAgICAgIHRoaXMuc3RlcHBlci5jb25uZWN0VG8oKHRoaXMuY29udHJvbCBhcyBhbnkpLm51bWJlcklucHV0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJ1biBjaGFuZ2UgZGV0ZWN0aW9uIGlmIHRoZSB2YWx1ZSBjaGFuZ2VzLlxuICAgICAgICBjb25zdCB2YWx1ZUNoYW5nZXMgPSB0aGlzLmNvbnRyb2wubmdDb250cm9sPy52YWx1ZUNoYW5nZXMgfHwgRU1QVFk7XG5cbiAgICAgICAgbWVyZ2UodmFsdWVDaGFuZ2VzKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuJHVuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCkge1xuICAgICAgICB0aGlzLnZhbGlkYXRlQ29udHJvbENoaWxkKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICAvLyBBdm9pZCBhbmltYXRpb25zIG9uIGxvYWQuXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIGNsZWFyVmFsdWUoJGV2ZW50KSB7XG4gICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICB0aGlzLmNvbnRyb2w/Lm5nQ29udHJvbD8ucmVzZXQoKTtcbiAgICAgICAgdGhpcy5jb250cm9sPy5mb2N1cygpO1xuICAgIH1cblxuICAgIG9uQ29udGFpbmVyQ2xpY2soJGV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wub25Db250YWluZXJDbGljaykge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sLm9uQ29udGFpbmVyQ2xpY2soJGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6ZGVwcmVjYXRpb25cbiAgICAgICAgaWYgKHRoaXMuY29udHJvbC5jb250cm9sVHlwZSA9PT0gJ2lucHV0LXBhc3N3b3JkJyAmJiBldmVudC5hbHRLZXkgJiYgZXZlbnQua2V5Q29kZSA9PT0gRjgpIHtcbiAgICAgICAgICAgICh0aGlzLmNvbnRyb2wgYXMgdW5rbm93biBhcyB7IHRvZ2dsZVR5cGUoKTogdm9pZCB9KS50b2dnbGVUeXBlKCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmRlcHJlY2F0aW9uXG4gICAgICAgIGlmICh0aGlzLmNhbkNsZWFuZXJDbGVhckJ5RXNjICYmIGV2ZW50LmtleUNvZGUgPT09IEVTQ0FQRSAmJiB0aGlzLmNvbnRyb2wuZm9jdXNlZCAmJiB0aGlzLmhhc0NsZWFuZXIpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbD8ubmdDb250cm9sPy5yZXNldCgpO1xuXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Ib3ZlckNoYW5nZWQoaXNIb3ZlcmVkOiBib29sZWFuKSB7XG4gICAgICAgIGlmIChpc0hvdmVyZWQgIT09IHRoaXMuaG92ZXJlZCkge1xuICAgICAgICAgICAgdGhpcy5ob3ZlcmVkID0gaXNIb3ZlcmVkO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYW4gRWxlbWVudFJlZiBmb3IgdGhlIGVsZW1lbnQgdGhhdCBhIG92ZXJsYXkgYXR0YWNoZWQgdG8gdGhlIGZvcm0tZmllbGQgc2hvdWxkIGJlXG4gICAgICogcG9zaXRpb25lZCByZWxhdGl2ZSB0by5cbiAgICAgKi9cbiAgICBnZXRDb25uZWN0ZWRPdmVybGF5T3JpZ2luKCk6IEVsZW1lbnRSZWYge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25uZWN0aW9uQ29udGFpbmVyUmVmIHx8IHRoaXMuZWxlbWVudFJlZjtcbiAgICB9XG5cbiAgICAvKiogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgY2xhc3MgZnJvbSB0aGUgTmdDb250cm9sIHNob3VsZCBiZSBmb3J3YXJkZWQgdG8gdGhlIGhvc3QgZWxlbWVudC4gKi9cbiAgICBzaG91bGRGb3J3YXJkKHByb3A6IGtleW9mIE5nQ29udHJvbCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBuZ0NvbnRyb2wgPSB0aGlzLmNvbnRyb2w/Lm5nQ29udHJvbDtcblxuICAgICAgICByZXR1cm4gbmdDb250cm9sICYmIG5nQ29udHJvbFtwcm9wXTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy4kdW5zdWJzY3JpYmUubmV4dCgpO1xuICAgICAgICB0aGlzLiR1bnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuXG4gICAgICAgIHRoaXMuc3RvcEZvY3VzTW9uaXRvcigpO1xuICAgIH1cblxuICAgIHJ1bkZvY3VzTW9uaXRvcigpIHtcbiAgICAgICAgdGhpcy5mb2N1c01vbml0b3IubW9uaXRvcih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgc3RvcEZvY3VzTW9uaXRvcigpIHtcbiAgICAgICAgdGhpcy5mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIC8qKiBUaHJvd3MgYW4gZXJyb3IgaWYgdGhlIGZvcm0gZmllbGQncyBjb250cm9sIGlzIG1pc3NpbmcuICovXG4gICAgcHJvdGVjdGVkIHZhbGlkYXRlQ29udHJvbENoaWxkKCkge1xuICAgICAgICBpZiAoIXRoaXMuY29udHJvbCkge1xuICAgICAgICAgICAgdGhyb3cgZ2V0S2JxRm9ybUZpZWxkTWlzc2luZ0NvbnRyb2xFcnJvcigpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2ticS1mb3JtLWZpZWxkW21jRm9ybUZpZWxkV2l0aG91dEJvcmRlcnNdJyxcbiAgICBleHBvcnRBczogJ21jRm9ybUZpZWxkV2l0aG91dEJvcmRlcnMnLFxuICAgIGhvc3Q6IHsgY2xhc3M6ICdrYnEtZm9ybS1maWVsZF93aXRob3V0LWJvcmRlcnMnIH1cbn0pXG5leHBvcnQgY2xhc3MgS2JxRm9ybUZpZWxkV2l0aG91dEJvcmRlcnMge31cblxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1ttY0lucHV0XSwgW21jVGV4dGFyZWFdJyxcbiAgICBleHBvcnRBczogJ0ticVRyaW0nLFxuICAgIGhvc3Q6IHsgY2xhc3M6ICdrYnEtdHJpbScgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFUcmltIHtcbiAgICBwcml2YXRlIG9yaWdpbmFsOiAoZm46IGFueSkgPT4gdm9pZDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAQXR0cmlidXRlKCduby10cmltJykgcHJpdmF0ZSByZWFkb25seSBub1RyaW06IGJvb2xlYW4sXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHJpdmF0ZSBuZ0NvbnRyb2w6IE5nQ29udHJvbFxuICAgICkge1xuICAgICAgICB0aGlzLm5vVHJpbSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShub1RyaW0pO1xuXG4gICAgICAgIGlmICh0aGlzLm5vVHJpbSB8fCAhdGhpcy5uZ0NvbnRyb2w/LnZhbHVlQWNjZXNzb3IpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgdGhpcy5vcmlnaW5hbCA9IHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IucmVnaXN0ZXJPbkNoYW5nZTtcblxuICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yLnJlZ2lzdGVyT25DaGFuZ2UgPSB0aGlzLnJlZ2lzdGVyT25DaGFuZ2U7XG4gICAgfVxuXG4gICAgdHJpbSh2YWx1ZSkge1xuICAgICAgICBpZiAodGhpcy5ub1RyaW0pIHsgcmV0dXJuIHZhbHVlOyB9XG5cbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZS50cmltKCkgOiB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlZ2lzdGVyT25DaGFuZ2UgPSAoZm4pID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3JpZ2luYWwuY2FsbCh0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yLCAodmFsdWUpID0+IGZuKHRoaXMudHJpbSh2YWx1ZSkpKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwia2JxLWZvcm0tZmllbGRfX2NvbnRhaW5lclwiIChjbGljayk9XCJvbkNvbnRhaW5lckNsaWNrKCRldmVudClcIj5cblxuICAgIDxkaXYgY2xhc3M9XCJrYnEtZm9ybS1maWVsZF9fcHJlZml4XCIgKm5nSWY9XCJoYXNQcmVmaXhcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW21jUHJlZml4XVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJrYnEtZm9ybS1maWVsZF9faW5maXhcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImticS1mb3JtLWZpZWxkX19zdWZmaXhcIiAqbmdJZj1cImhhc1N1ZmZpeFwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbWNTdWZmaXhdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImticS1mb3JtLWZpZWxkX19jbGVhbmVyXCJcbiAgICAgICAgICpuZ0lmPVwiY2FuU2hvd0NsZWFuZXIgJiYgIWhhc1N1ZmZpeFwiXG4gICAgICAgICAoY2xpY2spPVwiY2xlYXJWYWx1ZSgkZXZlbnQpXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImticS1jbGVhbmVyXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwia2JxLXBhc3N3b3JkLXRvZ2dsZVwiPjwvbmctY29udGVudD5cblxuICAgIDxuZy1jb250ZW50ICpuZ0lmPVwiY2FuU2hvd1N0ZXBwZXJcIiBzZWxlY3Q9XCJrYnEtc3RlcHBlclwiPjwvbmctY29udGVudD5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwia2JxLWZvcm0tZmllbGRfX2hpbnRcIiAqbmdJZj1cImhpbnQubGVuZ3RoIHx8IHBhc3N3b3JkSGludHMubGVuZ3RoXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwia2JxLWhpbnQsIGticS1wYXNzd29yZC1oaW50XCI+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=
|