ngx-tethys 19.0.4 → 19.0.5
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/CHANGELOG.md +10 -0
- package/calendar/calendar-header.component.d.ts +3 -2
- package/color-picker/color-picker.component.d.ts +15 -3
- package/date-picker/abstract-picker.component.d.ts +6 -1
- package/date-picker/base-picker.component.d.ts +1 -1
- package/date-picker/lib/calendar/calendar-footer.component.d.ts +2 -1
- package/date-picker/lib/calendar/calendar-table.component.d.ts +4 -3
- package/date-picker/lib/popups/date-popup.component.d.ts +2 -1
- package/date-picker/lib/popups/inner-popup.component.d.ts +2 -1
- package/date-picker/picker.component.d.ts +2 -1
- package/date-picker/picker.util.d.ts +5 -5
- package/fesm2022/ngx-tethys-action.mjs +11 -12
- package/fesm2022/ngx-tethys-action.mjs.map +1 -1
- package/fesm2022/ngx-tethys-affix.mjs +8 -9
- package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
- package/fesm2022/ngx-tethys-alert.mjs +11 -12
- package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
- package/fesm2022/ngx-tethys-anchor.mjs +10 -10
- package/fesm2022/ngx-tethys-arrow-switcher.mjs +7 -7
- package/fesm2022/ngx-tethys-autocomplete.mjs +17 -18
- package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
- package/fesm2022/ngx-tethys-avatar.mjs +25 -28
- package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-back-top.mjs +7 -7
- package/fesm2022/ngx-tethys-badge.mjs +7 -7
- package/fesm2022/ngx-tethys-breadcrumb.mjs +10 -10
- package/fesm2022/ngx-tethys-button.mjs +14 -15
- package/fesm2022/ngx-tethys-button.mjs.map +1 -1
- package/fesm2022/ngx-tethys-calendar.mjs +18 -20
- package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-card.mjs +15 -17
- package/fesm2022/ngx-tethys-card.mjs.map +1 -1
- package/fesm2022/ngx-tethys-carousel.mjs +14 -15
- package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
- package/fesm2022/ngx-tethys-cascader.mjs +16 -16
- package/fesm2022/ngx-tethys-checkbox.mjs +7 -7
- package/fesm2022/ngx-tethys-collapse.mjs +11 -12
- package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
- package/fesm2022/ngx-tethys-color-picker.mjs +34 -36
- package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-comment.mjs +15 -17
- package/fesm2022/ngx-tethys-comment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-copy.mjs +8 -9
- package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
- package/fesm2022/ngx-tethys-core.mjs +21 -22
- package/fesm2022/ngx-tethys-core.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-picker.mjs +231 -247
- package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-range.mjs +10 -10
- package/fesm2022/ngx-tethys-dialog.mjs +22 -23
- package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
- package/fesm2022/ngx-tethys-divider.mjs +7 -7
- package/fesm2022/ngx-tethys-dot.mjs +8 -9
- package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
- package/fesm2022/ngx-tethys-drag-drop.mjs +23 -27
- package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dropdown.mjs +58 -70
- package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
- package/fesm2022/ngx-tethys-empty.mjs +10 -10
- package/fesm2022/ngx-tethys-flexible-text.mjs +8 -8
- package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
- package/fesm2022/ngx-tethys-form.mjs +47 -54
- package/fesm2022/ngx-tethys-form.mjs.map +1 -1
- package/fesm2022/ngx-tethys-fullscreen.mjs +15 -16
- package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
- package/fesm2022/ngx-tethys-grid.mjs +35 -41
- package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
- package/fesm2022/ngx-tethys-guider.mjs +17 -18
- package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-i18n.mjs +3 -3
- package/fesm2022/ngx-tethys-icon.mjs +11 -12
- package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
- package/fesm2022/ngx-tethys-image.mjs +18 -20
- package/fesm2022/ngx-tethys-image.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input-number.mjs +7 -7
- package/fesm2022/ngx-tethys-input.mjs +21 -23
- package/fesm2022/ngx-tethys-input.mjs.map +1 -1
- package/fesm2022/ngx-tethys-layout.mjs +73 -88
- package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
- package/fesm2022/ngx-tethys-list.mjs +19 -22
- package/fesm2022/ngx-tethys-list.mjs.map +1 -1
- package/fesm2022/ngx-tethys-loading.mjs +7 -7
- package/fesm2022/ngx-tethys-mention.mjs +11 -12
- package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
- package/fesm2022/ngx-tethys-menu.mjs +30 -30
- package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
- package/fesm2022/ngx-tethys-message.mjs +22 -22
- package/fesm2022/ngx-tethys-nav.mjs +26 -29
- package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
- package/fesm2022/ngx-tethys-notify.mjs +16 -16
- package/fesm2022/ngx-tethys-pagination.mjs +15 -17
- package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
- package/fesm2022/ngx-tethys-popover.mjs +21 -23
- package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
- package/fesm2022/ngx-tethys-progress.mjs +13 -13
- package/fesm2022/ngx-tethys-property-operation.mjs +11 -11
- package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property.mjs +11 -11
- package/fesm2022/ngx-tethys-property.mjs.map +1 -1
- package/fesm2022/ngx-tethys-radio.mjs +15 -15
- package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
- package/fesm2022/ngx-tethys-rate.mjs +10 -10
- package/fesm2022/ngx-tethys-resizable.mjs +17 -18
- package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
- package/fesm2022/ngx-tethys-result.mjs +7 -7
- package/fesm2022/ngx-tethys-segment.mjs +10 -10
- package/fesm2022/ngx-tethys-select.mjs +10 -10
- package/fesm2022/ngx-tethys-shared.mjs +80 -93
- package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
- package/fesm2022/ngx-tethys-skeleton.mjs +23 -24
- package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slide.mjs +36 -41
- package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slider.mjs +7 -7
- package/fesm2022/ngx-tethys-space.mjs +11 -12
- package/fesm2022/ngx-tethys-space.mjs.map +1 -1
- package/fesm2022/ngx-tethys-statistic.mjs +7 -7
- package/fesm2022/ngx-tethys-stepper.mjs +22 -24
- package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
- package/fesm2022/ngx-tethys-strength.mjs +8 -8
- package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
- package/fesm2022/ngx-tethys-switch.mjs +7 -7
- package/fesm2022/ngx-tethys-table.mjs +22 -25
- package/fesm2022/ngx-tethys-table.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tabs.mjs +14 -15
- package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tag.mjs +12 -13
- package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
- package/fesm2022/ngx-tethys-time-picker.mjs +58 -56
- package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-timeline.mjs +13 -13
- package/fesm2022/ngx-tethys-tooltip.mjs +14 -15
- package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
- package/fesm2022/ngx-tethys-transfer.mjs +10 -10
- package/fesm2022/ngx-tethys-tree-select.mjs +10 -10
- package/fesm2022/ngx-tethys-tree.mjs +17 -18
- package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
- package/fesm2022/ngx-tethys-typography.mjs +15 -17
- package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
- package/fesm2022/ngx-tethys-upload.mjs +18 -19
- package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
- package/fesm2022/ngx-tethys-util.mjs +415 -389
- package/fesm2022/ngx-tethys-util.mjs.map +1 -1
- package/fesm2022/ngx-tethys-vote.mjs +7 -7
- package/fesm2022/ngx-tethys-watermark.mjs +8 -9
- package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/icon/index.d.ts +1 -1
- package/layout/header.component.d.ts +6 -18
- package/package.json +2 -1
- package/popover/popover.directive.d.ts +6 -2
- package/resizable/resizable.directive.d.ts +21 -3
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/table/table-column.component.d.ts +5 -30
- package/tag/tag.component.d.ts +2 -4
- package/time-picker/inner/inner-time-picker.component.d.ts +3 -1
- package/time-picker/inner/inner-time-picker.store.d.ts +5 -5
- package/time-picker/time-picker.utils.d.ts +5 -5
- package/tooltip/tooltip.directive.d.ts +2 -10
- package/util/helpers/helpers.d.ts +1 -0
|
@@ -55,15 +55,14 @@ class ThyInputDirective {
|
|
|
55
55
|
ngOnInit() {
|
|
56
56
|
this.initialized = true;
|
|
57
57
|
}
|
|
58
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
59
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.
|
|
58
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
59
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.6", type: ThyInputDirective, isStandalone: true, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: { thySize: "thySize" }, host: { properties: { "class.form-control": "this.isFormControl" } }, exportAs: ["thyInput"], ngImport: i0 }); }
|
|
60
60
|
}
|
|
61
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyInputDirective, decorators: [{
|
|
62
62
|
type: Directive,
|
|
63
63
|
args: [{
|
|
64
64
|
selector: 'input[thyInput], select[thyInput], textarea[thyInput]',
|
|
65
|
-
exportAs: 'thyInput'
|
|
66
|
-
standalone: true
|
|
65
|
+
exportAs: 'thyInput'
|
|
67
66
|
}]
|
|
68
67
|
}], propDecorators: { isFormControl: [{
|
|
69
68
|
type: HostBinding,
|
|
@@ -163,10 +162,10 @@ class ThyInput {
|
|
|
163
162
|
togglePasswordType() {
|
|
164
163
|
this.type = this.isPassword(this.type) ? 'text' : 'password';
|
|
165
164
|
}
|
|
166
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
167
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
165
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyInput, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
166
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.6", type: ThyInput, isStandalone: true, selector: "thy-input", inputs: { placeholder: "placeholder", thySize: "thySize", thyAutofocus: ["thyAutofocus", "thyAutofocus", coerceBooleanProperty], thyType: "thyType", type: "type", thyLabelText: "thyLabelText", readonly: ["readonly", "readonly", coerceBooleanProperty] }, outputs: { focus: "focus", blur: "blur" }, host: { properties: { "class.form-control-active": "focused", "class.disabled": "disabled" }, classAttribute: "thy-input form-control" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], queries: [{ propertyName: "appendTemplate", first: true, predicate: ["append"], descendants: true }, { propertyName: "prependTemplate", first: true, predicate: ["prepend"], descendants: true }], viewQueries: [{ propertyName: "eyeTemplate", first: true, predicate: ["eye"], descendants: true, static: true }], ngImport: i0, template: "@if (prependTemplate) {\n <div #prepend class=\"input-prepend\">\n <ng-template *ngTemplateOutlet=\"prependTemplate\"></ng-template>\n </div>\n}\n<input\n #input\n thyInput\n [thySize]=\"thySize\"\n [thyAutofocus]=\"thyAutofocus\"\n [type]=\"type\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onModelChange()\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n [readonly]=\"readonly\"\n />\n<span class=\"input-label input-label-{{ thySize }}\" [class.active]=\"showLabel\">{{ thyLabelText }}</span>\n@if (appendTemplate) {\n <div #append class=\"input-append\">\n <ng-template *ngTemplateOutlet=\"appendTemplate\"></ng-template>\n </div>\n}\n\n<ng-template #eye>\n <a href=\"javascript:;\" class=\"link-secondary input-password-icon\" (click)=\"togglePasswordType()\">\n @if (isPassword(type)) {\n <thy-icon thyIconName=\"eye\"></thy-icon>\n }\n @if (!isPassword(type)) {\n <thy-icon thyIconName=\"eye-invisible\"></thy-icon>\n }\n </a>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "directive", type: ThyAutofocusDirective, selector: "input[thyAutofocus],textarea[thyAutofocus]", inputs: ["thyAutofocus", "thyAutoSelect"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
168
167
|
}
|
|
169
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
168
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyInput, decorators: [{
|
|
170
169
|
type: Component,
|
|
171
170
|
args: [{ selector: 'thy-input', providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], encapsulation: ViewEncapsulation.None, host: {
|
|
172
171
|
class: 'thy-input form-control',
|
|
@@ -313,10 +312,10 @@ class ThyInputGroup {
|
|
|
313
312
|
ngOnDestroy() {
|
|
314
313
|
this.hostFocusControl.destroy();
|
|
315
314
|
}
|
|
316
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
317
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
315
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyInputGroup, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
316
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.6", type: ThyInputGroup, isStandalone: true, selector: "thy-input-group", inputs: { thyAppendText: "thyAppendText", thyAppendTextTranslateKey: "thyAppendTextTranslateKey", thyPrependText: "thyPrependText", thyPrependTextTranslateKey: "thyPrependTextTranslateKey", thySize: "thySize" }, host: { properties: { "class.form-control": "prefixTemplate || suffixTemplate", "class.thy-input-group-with-prefix": "prefixTemplate", "class.thy-input-group-with-suffix": "suffixTemplate", "class.thy-input-group-with-textarea-suffix": "isTextareaSuffix", "class.thy-input-group-with-scroll-bar": "isTextareaSuffix && hasScrollbar", "class.disabled": "this.disabled" }, classAttribute: "thy-input-group" }, queries: [{ propertyName: "appendTemplate", first: true, predicate: ["append"], descendants: true }, { propertyName: "prependTemplate", first: true, predicate: ["prepend"], descendants: true }, { propertyName: "prefixTemplate", first: true, predicate: ["prefix"], descendants: true }, { propertyName: "suffixTemplate", first: true, predicate: ["suffix"], descendants: true }, { propertyName: "inputDirective", first: true, predicate: ThyInputDirective, descendants: true }], ngImport: i0, template: "@if (prependText) {\n <div class=\"input-group-prepend\">\n <span class=\"input-group-text\">{{ prependText }}</span>\n </div>\n}\n@if (prependTemplate) {\n <div class=\"input-group-prepend\">\n <ng-template *ngTemplateOutlet=\"prependTemplate\"></ng-template>\n </div>\n}\n\n@if (prefixTemplate) {\n <div class=\"input-group-prefix\">\n <ng-template *ngTemplateOutlet=\"prefixTemplate\"></ng-template>\n </div>\n}\n\n<ng-content></ng-content>\n\n@if (appendText) {\n <div class=\"input-group-append\">\n <span class=\"input-group-text\">{{ appendText }}</span>\n </div>\n}\n@if (appendTemplate) {\n <div class=\"input-group-append\">\n <ng-template *ngTemplateOutlet=\"appendTemplate\"></ng-template>\n </div>\n}\n\n@if (suffixTemplate) {\n <div class=\"input-group-suffix\">\n <ng-template *ngTemplateOutlet=\"suffixTemplate\"></ng-template>\n </div>\n}\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
318
317
|
}
|
|
319
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
318
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyInputGroup, decorators: [{
|
|
320
319
|
type: Component,
|
|
321
320
|
args: [{ selector: 'thy-input-group', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
322
321
|
class: 'thy-input-group',
|
|
@@ -463,10 +462,10 @@ class ThyInputSearch extends _MixinBase {
|
|
|
463
462
|
ngOnDestroy() {
|
|
464
463
|
this.hostFocusControl.destroy();
|
|
465
464
|
}
|
|
466
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
467
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
465
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyInputSearch, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
466
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.6", type: ThyInputSearch, isStandalone: true, selector: "thy-input-search", inputs: { name: "name", placeholder: "placeholder", thyTheme: "thyTheme", thySearchFocus: ["thySearchFocus", "thySearchFocus", coerceBooleanProperty], thyIconPosition: "thyIconPosition", thySize: "thySize" }, outputs: { clear: "clear", thyClear: "thyClear" }, host: { properties: { "class.thy-input-search-ellipse": "thyTheme === \"ellipse\"", "class.thy-input-search-transparent": "thyTheme === \"transparent\"", "class.thy-input-search-before-with-clear": "searchText && iconPosition === \"before\"", "class.form-control-active": "focused", "attr.tabindex": "tabIndex" }, classAttribute: "thy-input form-control thy-input-search" }, providers: [CUSTOM_INPUT_SEARCH_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "@if (iconPosition === 'before') {\n <thy-icon class=\"input-prepend\" thyIconName=\"search\"></thy-icon>\n}\n<input\n class=\"input-search-control\"\n #input\n thyInput\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [thyAutofocus]=\"autoFocus\"\n [(ngModel)]=\"searchText\"\n (ngModelChange)=\"searchModelChange()\"\n (focus)=\"!focused ? (focused = true) : null\"\n [thySize]=\"thySize\"\n tabindex=\"-1\" />\n@if (iconPosition === 'after') {\n <div class=\"input-append input-append-divider\">\n @if (searchText) {\n <a class=\"close\" href=\"javascript:;\" (click)=\"clearSearchText($event)\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </a>\n } @else {\n <thy-icon class=\"text-placeholder\" thyIconName=\"search\"></thy-icon>\n }\n </div>\n}\n\n@if (searchText && iconPosition === 'before') {\n <a class=\"close input-append\" href=\"javascript:;\" (click)=\"clearSearchText($event)\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </a>\n}\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "directive", type: ThyAutofocusDirective, selector: "input[thyAutofocus],textarea[thyAutofocus]", inputs: ["thyAutofocus", "thyAutoSelect"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
468
467
|
}
|
|
469
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
468
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyInputSearch, decorators: [{
|
|
470
469
|
type: Component,
|
|
471
470
|
args: [{ selector: 'thy-input-search', providers: [CUSTOM_INPUT_SEARCH_CONTROL_VALUE_ACCESSOR], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
472
471
|
class: 'thy-input form-control thy-input-search',
|
|
@@ -541,10 +540,10 @@ class ThyInputCount {
|
|
|
541
540
|
this.thyInput$.next(this.inputGroup.inputDirective);
|
|
542
541
|
}
|
|
543
542
|
}
|
|
544
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
545
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
543
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyInputCount, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
544
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: ThyInputCount, isStandalone: true, selector: "thy-input-count", inputs: { thyInput: "thyInput" }, host: { classAttribute: "thy-input-count text-muted" }, ngImport: i0, template: '{{inputLength}} / {{maxLength}}', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
546
545
|
}
|
|
547
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
546
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyInputCount, decorators: [{
|
|
548
547
|
type: Component,
|
|
549
548
|
args: [{
|
|
550
549
|
selector: 'thy-input-count',
|
|
@@ -552,16 +551,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImpor
|
|
|
552
551
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
553
552
|
host: {
|
|
554
553
|
class: 'thy-input-count text-muted'
|
|
555
|
-
}
|
|
556
|
-
standalone: true
|
|
554
|
+
}
|
|
557
555
|
}]
|
|
558
556
|
}], ctorParameters: () => [], propDecorators: { thyInput: [{
|
|
559
557
|
type: Input
|
|
560
558
|
}] } });
|
|
561
559
|
|
|
562
560
|
class ThyInputModule {
|
|
563
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
564
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
561
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
562
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.6", ngImport: i0, type: ThyInputModule, imports: [CommonModule,
|
|
565
563
|
FormsModule,
|
|
566
564
|
ThySharedModule,
|
|
567
565
|
ThyIconModule,
|
|
@@ -571,7 +569,7 @@ class ThyInputModule {
|
|
|
571
569
|
ThyInputGroup,
|
|
572
570
|
ThyInputSearch,
|
|
573
571
|
ThyInputCount], exports: [ThyInputDirective, ThyInput, ThyInputGroup, ThyInputSearch, ThyInputCount] }); }
|
|
574
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
572
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyInputModule, imports: [CommonModule,
|
|
575
573
|
FormsModule,
|
|
576
574
|
ThySharedModule,
|
|
577
575
|
ThyIconModule,
|
|
@@ -579,7 +577,7 @@ class ThyInputModule {
|
|
|
579
577
|
ThyInput,
|
|
580
578
|
ThyInputSearch] }); }
|
|
581
579
|
}
|
|
582
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
580
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyInputModule, decorators: [{
|
|
583
581
|
type: NgModule,
|
|
584
582
|
args: [{
|
|
585
583
|
imports: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-input.mjs","sources":["../../../src/input/input.directive.ts","../../../src/input/input.component.ts","../../../src/input/input.component.html","../../../src/input/input-group.component.ts","../../../src/input/input-group.component.html","../../../src/input/input-search.component.ts","../../../src/input/input-search.component.html","../../../src/input/input-count.component.ts","../../../src/input/module.ts","../../../src/input/ngx-tethys-input.ts"],"sourcesContent":["import { Directive, ElementRef, HostBinding, Input, OnInit, Renderer2, inject } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\nexport type ThyInputSize = 'xs' | 'sm' | 'md' | 'lg' | '';\n\nconst inputGroupSizeMap = {\n xs: ['form-control-xs'],\n sm: ['form-control-sm'],\n md: ['form-control-md'],\n lg: ['form-control-lg']\n};\n\n/**\n * 输入框指令\n * @name thyInput\n * @order 10\n */\n@Directive({\n selector: 'input[thyInput], select[thyInput], textarea[thyInput]',\n exportAs: 'thyInput',\n standalone: true\n})\nexport class ThyInputDirective implements OnInit {\n private elementRef = inject(ElementRef);\n private render = inject(Renderer2);\n private control = inject(NgControl, { optional: true, self: true })!;\n\n @HostBinding('class.form-control') isFormControl = true;\n\n private initialized = false;\n\n private hostRenderer = useHostRenderer();\n\n /**\n * 输入框大小\n * @type 'xs' | 'sm' | 'md' | 'default' | 'lg'\n * @default default\n */\n @Input()\n set thySize(size: ThyInputSize) {\n if (size && inputGroupSizeMap[size]) {\n this.hostRenderer.updateClass(inputGroupSizeMap[size]);\n } else {\n this.hostRenderer.updateClass([]);\n }\n }\n\n get ngControl() {\n return this.control;\n }\n\n get nativeElement(): HTMLInputElement {\n return this.elementRef.nativeElement;\n }\n\n ngOnInit() {\n this.initialized = true;\n }\n}\n","import { take } from 'rxjs/operators';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n NgZone,\n OnInit,\n Output,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyAutofocusDirective } from 'ngx-tethys/shared';\nimport { ThyInputDirective, ThyInputSize } from './input.directive';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nexport const CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyInput),\n multi: true\n};\n\nconst noop = () => {};\n\nconst password = 'password';\n\n/**\n * 内部集成输入框组件,建议 thy-input-group 和 thyInput 组合使用\n * @name thy-input\n * @order 50\n */\n@Component({\n selector: 'thy-input',\n templateUrl: './input.component.html',\n providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'thy-input form-control',\n '[class.form-control-active]': 'focused',\n '[class.disabled]': 'disabled'\n },\n imports: [NgTemplateOutlet, ThyInputDirective, ThyAutofocusDirective, FormsModule, ThyIcon]\n})\nexport class ThyInput implements ControlValueAccessor, OnInit {\n private ngZone = inject(NgZone);\n private elementRef = inject(ElementRef);\n\n /**\n * Placeholder\n */\n @Input() placeholder = '';\n\n /**\n * 输入框大小\n * @type 'xs' | 'sm' | 'md' | 'default' | 'lg'\n * @default default\n */\n @Input() thySize: ThyInputSize;\n\n /**\n * 是否自动聚焦\n */\n @Input({ transform: coerceBooleanProperty }) thyAutofocus = false;\n\n /**\n * 输入框类型\n * @type 'number' | 'input'\n */\n @Input()\n set thyType(value: string) {\n this.type = value;\n }\n\n /**\n * @deprecated please use thyType\n */\n @Input() type: string;\n\n /**\n * 输入 Label 文本\n */\n @Input() thyLabelText: string;\n\n /**\n * 是否只读\n */\n @Input({ transform: coerceBooleanProperty }) readonly = false;\n\n /**\n * focus 聚焦事件\n */\n @Output() focus: EventEmitter<Event> = new EventEmitter<Event>();\n\n /**\n * blur 失焦事件\n */\n @Output() blur: EventEmitter<Event> = new EventEmitter<Event>();\n\n /**\n * 后置模板\n */\n @ContentChild('append') appendTemplate: TemplateRef<any>;\n\n /**\n * 前置模板\n */\n @ContentChild('prepend') prependTemplate: TemplateRef<any>;\n\n @ViewChild('eye', { static: true }) eyeTemplate: TemplateRef<any>;\n\n public _type = 'text';\n\n public value: string;\n\n public showLabel: boolean;\n\n public focused = false;\n\n public disabled = false;\n\n private onTouchedCallback: () => void = noop;\n\n private onChangeCallback: (_: any) => void = noop;\n\n ngOnInit() {\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n if (this.isPassword(this.type)) {\n this.appendTemplate = this.eyeTemplate;\n }\n });\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onModelChange() {\n this.onChangeCallback(this.value);\n }\n\n onInputFocus(event: Event) {\n this.focused = true;\n this.showLabel = true;\n this.focus.emit(event);\n }\n\n onInputBlur(event: Event) {\n this.onTouchedCallback();\n if (this.elementRef.nativeElement.onblur) {\n this.elementRef.nativeElement.onblur(event);\n }\n this.focused = false;\n this.showLabel = false;\n this.blur.emit(event);\n }\n\n isPassword(value: string) {\n return value === password;\n }\n\n togglePasswordType() {\n this.type = this.isPassword(this.type) ? 'text' : 'password';\n }\n}\n","@if (prependTemplate) {\n <div #prepend class=\"input-prepend\">\n <ng-template *ngTemplateOutlet=\"prependTemplate\"></ng-template>\n </div>\n}\n<input\n #input\n thyInput\n [thySize]=\"thySize\"\n [thyAutofocus]=\"thyAutofocus\"\n [type]=\"type\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onModelChange()\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n [readonly]=\"readonly\"\n />\n<span class=\"input-label input-label-{{ thySize }}\" [class.active]=\"showLabel\">{{ thyLabelText }}</span>\n@if (appendTemplate) {\n <div #append class=\"input-append\">\n <ng-template *ngTemplateOutlet=\"appendTemplate\"></ng-template>\n </div>\n}\n\n<ng-template #eye>\n <a href=\"javascript:;\" class=\"link-secondary input-password-icon\" (click)=\"togglePasswordType()\">\n @if (isPassword(type)) {\n <thy-icon thyIconName=\"eye\"></thy-icon>\n }\n @if (!isPassword(type)) {\n <thy-icon thyIconName=\"eye-invisible\"></thy-icon>\n }\n </a>\n</ng-template>\n","import {\n Component,\n HostBinding,\n Input,\n ContentChild,\n TemplateRef,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n AfterContentChecked,\n OnInit,\n OnDestroy,\n ChangeDetectorRef,\n NgZone,\n inject,\n DestroyRef\n} from '@angular/core';\nimport { ThyTranslate, useHostFocusControl } from 'ngx-tethys/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyInputDirective } from './input.directive';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { throttleTime } from 'rxjs/operators';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Observable, of } from 'rxjs';\nimport { FocusOrigin } from '@angular/cdk/a11y';\n\nexport type InputGroupSize = 'sm' | 'lg' | 'md' | '';\n\nconst inputGroupSizeMap = {\n sm: ['input-group-sm'],\n lg: ['input-group-lg'],\n md: ['input-group-md']\n};\n\n/**\n * 输入框分组\n * @name thy-input-group\n * @order 20\n */\n@Component({\n selector: 'thy-input-group',\n templateUrl: './input-group.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'thy-input-group',\n '[class.form-control]': 'prefixTemplate || suffixTemplate',\n '[class.thy-input-group-with-prefix]': 'prefixTemplate',\n '[class.thy-input-group-with-suffix]': 'suffixTemplate',\n '[class.thy-input-group-with-textarea-suffix]': 'isTextareaSuffix',\n '[class.thy-input-group-with-scroll-bar]': 'isTextareaSuffix && hasScrollbar'\n },\n imports: [NgTemplateOutlet]\n})\nexport class ThyInputGroup implements OnInit, AfterContentChecked, OnDestroy {\n private thyTranslate = inject(ThyTranslate);\n private ngZone = inject(NgZone);\n private cdr = inject(ChangeDetectorRef);\n\n private hostRenderer = useHostRenderer();\n\n private hostFocusControl = useHostFocusControl();\n\n private readonly destroyRef = inject(DestroyRef);\n\n public appendText: string;\n\n public prependText: string;\n\n public isTextareaSuffix: boolean;\n\n public hasScrollbar: boolean;\n\n @HostBinding('class.disabled') disabled = false;\n\n /**\n * 输入框上添加的后置文本\n */\n @Input()\n set thyAppendText(value: string) {\n this.appendText = value;\n }\n\n /**\n * 输入框上添加的后置文本多语言 Key\n */\n @Input()\n set thyAppendTextTranslateKey(value: string) {\n if (value) {\n this.appendText = this.thyTranslate.instant(value);\n }\n }\n\n /**\n * 输入框上添加的前置文本\n */\n @Input()\n set thyPrependText(value: string) {\n this.prependText = value;\n }\n\n /**\n * 输入框上添加的前置文本多语言 Key\n */\n @Input()\n set thyPrependTextTranslateKey(value: string) {\n if (value) {\n this.prependText = this.thyTranslate.instant(value);\n }\n }\n\n /**\n * 输入框分组大小\n * @type 'sm' | 'lg' | 'md' | ''\n * @default ''\n */\n @Input()\n set thySize(size: InputGroupSize) {\n if (size && inputGroupSizeMap[size]) {\n this.hostRenderer.updateClass(inputGroupSizeMap[size]);\n } else {\n this.hostRenderer.updateClass([]);\n }\n }\n\n /**\n * 后置模板\n */\n @ContentChild('append') appendTemplate: TemplateRef<unknown>;\n\n /**\n * 前置模板\n */\n @ContentChild('prepend') prependTemplate: TemplateRef<unknown>;\n\n /**\n * 前缀\n */\n @ContentChild('prefix') prefixTemplate: TemplateRef<unknown>;\n\n /**\n * 后缀\n */\n @ContentChild('suffix') suffixTemplate: TemplateRef<unknown>;\n\n /**\n * @private\n */\n @ContentChild(ThyInputDirective) inputDirective: ThyInputDirective;\n\n ngOnInit() {\n this.hostFocusControl.focusChanged = (origin: FocusOrigin) => {\n if (origin) {\n this.hostRenderer.addClass('form-control-active');\n } else {\n this.hostRenderer.removeClass('form-control-active');\n }\n };\n }\n\n ngAfterContentChecked(): void {\n this.disabled = !!this.inputDirective?.nativeElement?.hasAttribute('disabled');\n\n this.isTextareaSuffix = this.inputDirective?.nativeElement?.tagName === 'TEXTAREA';\n if (this.isTextareaSuffix) {\n this.determineHasScrollbar();\n }\n }\n\n private determineHasScrollbar() {\n this.ngZone.runOutsideAngular(() => {\n this.resizeObserver(this.inputDirective.nativeElement)\n .pipe(throttleTime(100), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n const hasScrollbar = this.inputDirective.nativeElement.scrollHeight > this.inputDirective.nativeElement.clientHeight;\n if (this.hasScrollbar !== hasScrollbar) {\n this.ngZone.run(() => {\n this.hasScrollbar = hasScrollbar;\n this.cdr.detectChanges();\n });\n }\n });\n });\n }\n\n private resizeObserver(element: HTMLElement): Observable<ResizeObserverEntry[]> {\n return typeof ResizeObserver === 'undefined' || !ResizeObserver\n ? of(null)\n : new Observable(observer => {\n const resize = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n observer.next(entries);\n });\n resize.observe(element);\n return () => {\n resize.disconnect();\n };\n });\n }\n\n ngOnDestroy() {\n this.hostFocusControl.destroy();\n }\n}\n","@if (prependText) {\n <div class=\"input-group-prepend\">\n <span class=\"input-group-text\">{{ prependText }}</span>\n </div>\n}\n@if (prependTemplate) {\n <div class=\"input-group-prepend\">\n <ng-template *ngTemplateOutlet=\"prependTemplate\"></ng-template>\n </div>\n}\n\n@if (prefixTemplate) {\n <div class=\"input-group-prefix\">\n <ng-template *ngTemplateOutlet=\"prefixTemplate\"></ng-template>\n </div>\n}\n\n<ng-content></ng-content>\n\n@if (appendText) {\n <div class=\"input-group-append\">\n <span class=\"input-group-text\">{{ appendText }}</span>\n </div>\n}\n@if (appendTemplate) {\n <div class=\"input-group-append\">\n <ng-template *ngTemplateOutlet=\"appendTemplate\"></ng-template>\n </div>\n}\n\n@if (suffixTemplate) {\n <div class=\"input-group-suffix\">\n <ng-template *ngTemplateOutlet=\"suffixTemplate\"></ng-template>\n </div>\n}\n","import {\n AbstractControlValueAccessor,\n Constructor,\n mixinDisabled,\n mixinInitialized,\n mixinTabIndex,\n ThyCanDisable,\n ThyHasTabIndex,\n ThyInitialized,\n useHostFocusControl\n} from 'ngx-tethys/core';\n\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyAutofocusDirective } from 'ngx-tethys/shared';\nimport { ThyInputDirective, ThyInputSize } from './input.directive';\n\nimport { FocusOrigin } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nexport type ThyInputSearchTheme = 'default' | 'ellipse' | 'transparent' | '';\nexport type ThyInputSearchIconPosition = 'before' | 'after';\n\nexport const CUSTOM_INPUT_SEARCH_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyInputSearch),\n multi: true\n};\n\nconst noop = () => {};\n\nconst _MixinBase: Constructor<ThyHasTabIndex> &\n Constructor<ThyInitialized> &\n Constructor<ThyCanDisable> &\n typeof AbstractControlValueAccessor = mixinInitialized(mixinTabIndex(mixinDisabled(AbstractControlValueAccessor)));\n\n/**\n * 搜索输入框\n * @name thy-input-search\n * @order 30\n */\n@Component({\n selector: 'thy-input-search',\n templateUrl: './input-search.component.html',\n providers: [CUSTOM_INPUT_SEARCH_CONTROL_VALUE_ACCESSOR],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-input form-control thy-input-search',\n '[class.thy-input-search-ellipse]': 'thyTheme === \"ellipse\"',\n '[class.thy-input-search-transparent]': 'thyTheme === \"transparent\"',\n '[class.thy-input-search-before-with-clear]': 'searchText && iconPosition === \"before\"',\n '[class.form-control-active]': 'focused',\n '[attr.tabindex]': 'tabIndex'\n },\n imports: [ThyIcon, ThyInputDirective, ThyAutofocusDirective, FormsModule]\n})\nexport class ThyInputSearch extends _MixinBase implements ControlValueAccessor, OnInit, OnDestroy {\n private cdr = inject(ChangeDetectorRef);\n private elementRef = inject(ElementRef);\n\n @ViewChild('input', { static: true }) inputElement: ElementRef<any>;\n\n private hostRenderer = useHostRenderer();\n\n private hostFocusControl = useHostFocusControl();\n\n public disabled = false;\n\n public autoFocus = false;\n\n public iconPosition: ThyInputSearchIconPosition = 'before';\n\n searchText: string;\n\n focused = false;\n\n /**\n * 搜索框 name 属性\n */\n @Input() name = '';\n\n /**\n * 搜索框 Placeholder\n */\n @Input() placeholder = '';\n\n /**\n * 搜索框风格\n * @type 'default' | 'ellipse' | 'transparent'\n * @default default\n */\n @Input() thyTheme: ThyInputSearchTheme;\n\n /**\n * 是否自动聚焦\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n set thySearchFocus(value: boolean) {\n this.autoFocus = value;\n this.focused = value;\n }\n\n /**\n * 搜索图标位置,当传入 after 时,搜索图标在输入框后方显示,有内容时显示为关闭按钮\n * @type\n */\n @Input() set thyIconPosition(value: ThyInputSearchIconPosition) {\n this.iconPosition = value || 'before';\n this.updateClasses();\n }\n\n /**\n * 输入框大小\n * @type 'xs' | 'sm' | 'md' | 'default' | 'lg'\n */\n @Input() thySize: ThyInputSize;\n\n /**\n * @deprecated please use thyClear\n */\n @Output() clear: EventEmitter<Event> = new EventEmitter<Event>();\n\n /**\n * 清除搜索事件\n */\n @Output() thyClear: EventEmitter<Event> = new EventEmitter<Event>();\n\n constructor() {\n super();\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n this.updateClasses(true);\n\n this.hostFocusControl.focusChanged = (origin: FocusOrigin) => {\n if (this.disabled) {\n return;\n }\n\n if (origin) {\n if (!this.focused) {\n this.inputElement.nativeElement.focus();\n }\n } else {\n if (this.focused) {\n this.focused = false;\n this.onTouchedFn();\n }\n }\n this.cdr.markForCheck();\n };\n }\n\n updateClasses(forceUpdate = false) {\n if (this.initialized || forceUpdate) {\n this.hostRenderer.updateClass([`thy-input-search-${this.iconPosition}`]);\n }\n }\n\n writeValue(value: any): void {\n this.searchText = value;\n this.cdr.markForCheck();\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n searchModelChange() {\n this.onChangeFn(this.searchText);\n }\n\n clearSearchText(event: Event) {\n const element = this.elementRef.nativeElement.querySelector('.input-search-control');\n element.focus();\n event.stopPropagation();\n if (this.disabled) {\n return;\n }\n this.searchText = '';\n this.onChangeFn(this.searchText);\n this.clear.emit(event);\n this.thyClear.emit(event);\n }\n\n ngOnDestroy(): void {\n this.hostFocusControl.destroy();\n }\n}\n","@if (iconPosition === 'before') {\n <thy-icon class=\"input-prepend\" thyIconName=\"search\"></thy-icon>\n}\n<input\n class=\"input-search-control\"\n #input\n thyInput\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [thyAutofocus]=\"autoFocus\"\n [(ngModel)]=\"searchText\"\n (ngModelChange)=\"searchModelChange()\"\n (focus)=\"!focused ? (focused = true) : null\"\n [thySize]=\"thySize\"\n tabindex=\"-1\" />\n@if (iconPosition === 'after') {\n <div class=\"input-append input-append-divider\">\n @if (searchText) {\n <a class=\"close\" href=\"javascript:;\" (click)=\"clearSearchText($event)\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </a>\n } @else {\n <thy-icon class=\"text-placeholder\" thyIconName=\"search\"></thy-icon>\n }\n </div>\n}\n\n@if (searchText && iconPosition === 'before') {\n <a class=\"close input-append\" href=\"javascript:;\" (click)=\"clearSearchText($event)\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </a>\n}\n","import { Component, OnInit, ChangeDetectionStrategy, Input, ChangeDetectorRef, inject, DestroyRef } from '@angular/core';\nimport { ThyInputDirective } from './input.directive';\nimport { switchMap, filter, tap } from 'rxjs/operators';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Subject } from 'rxjs';\nimport { ThyInputGroup } from './input-group.component';\n\n/**\n * 输入框输入文字展示\n * @name thy-input-count\n * @order 40\n */\n@Component({\n selector: 'thy-input-count',\n template: '{{inputLength}} / {{maxLength}}',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-input-count text-muted'\n },\n standalone: true\n})\nexport class ThyInputCount implements OnInit {\n private changeDetectorRef = inject(ChangeDetectorRef);\n private inputGroup = inject(ThyInputGroup, { optional: true })!;\n\n private readonly destroyRef = inject(DestroyRef);\n\n private hasInput = false;\n\n /**\n * 输入框组件,如果不传默认会读取外层 thy-input-group 下的 thyInput 指令\n * @type ThyInputDirective\n */\n @Input() set thyInput(value: ThyInputDirective) {\n this.hasInput = true;\n this.thyInput$.next(value);\n }\n\n maxLength: number | string;\n\n inputLength = 0;\n\n thyInput$ = new Subject<ThyInputDirective>();\n\n constructor() {\n this.setup();\n }\n\n setup() {\n this.thyInput$\n .pipe(\n filter(input => {\n return !!input;\n }),\n tap(input => {\n this.maxLength = input.nativeElement.getAttribute('maxlength');\n this.changeDetectorRef.markForCheck();\n }),\n takeUntilDestroyed(this.destroyRef),\n switchMap(input => {\n return input.ngControl.valueChanges;\n }),\n tap(value => {\n this.inputLength = value?.length || 0;\n this.changeDetectorRef.markForCheck();\n }),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe();\n }\n\n ngOnInit(): void {\n if (!this.hasInput && this.inputGroup && this.inputGroup.inputDirective) {\n this.thyInput$.next(this.inputGroup.inputDirective);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyInputDirective } from './input.directive';\nimport { ThyInput } from './input.component';\nimport { ThyInputGroup } from './input-group.component';\nimport { ThyInputSearch } from './input-search.component';\nimport { FormsModule } from '@angular/forms';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyDividerModule } from 'ngx-tethys/divider';\nimport { ThyInputCount } from './input-count.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ThySharedModule,\n ThyIconModule,\n ThyDividerModule,\n ThyInputDirective,\n ThyInput,\n ThyInputGroup,\n ThyInputSearch,\n ThyInputCount\n ],\n exports: [ThyInputDirective, ThyInput, ThyInputGroup, ThyInputSearch, ThyInputCount]\n})\nexport class ThyInputModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["inputGroupSizeMap","noop"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-tethys-input.mjs","sources":["../../../src/input/input.directive.ts","../../../src/input/input.component.ts","../../../src/input/input.component.html","../../../src/input/input-group.component.ts","../../../src/input/input-group.component.html","../../../src/input/input-search.component.ts","../../../src/input/input-search.component.html","../../../src/input/input-count.component.ts","../../../src/input/module.ts","../../../src/input/ngx-tethys-input.ts"],"sourcesContent":["import { Directive, ElementRef, HostBinding, Input, OnInit, Renderer2, inject } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\nexport type ThyInputSize = 'xs' | 'sm' | 'md' | 'lg' | '';\n\nconst inputGroupSizeMap = {\n xs: ['form-control-xs'],\n sm: ['form-control-sm'],\n md: ['form-control-md'],\n lg: ['form-control-lg']\n};\n\n/**\n * 输入框指令\n * @name thyInput\n * @order 10\n */\n@Directive({\n selector: 'input[thyInput], select[thyInput], textarea[thyInput]',\n exportAs: 'thyInput'\n})\nexport class ThyInputDirective implements OnInit {\n private elementRef = inject(ElementRef);\n private render = inject(Renderer2);\n private control = inject(NgControl, { optional: true, self: true })!;\n\n @HostBinding('class.form-control') isFormControl = true;\n\n private initialized = false;\n\n private hostRenderer = useHostRenderer();\n\n /**\n * 输入框大小\n * @type 'xs' | 'sm' | 'md' | 'default' | 'lg'\n * @default default\n */\n @Input()\n set thySize(size: ThyInputSize) {\n if (size && inputGroupSizeMap[size]) {\n this.hostRenderer.updateClass(inputGroupSizeMap[size]);\n } else {\n this.hostRenderer.updateClass([]);\n }\n }\n\n get ngControl() {\n return this.control;\n }\n\n get nativeElement(): HTMLInputElement {\n return this.elementRef.nativeElement;\n }\n\n ngOnInit() {\n this.initialized = true;\n }\n}\n","import { take } from 'rxjs/operators';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n NgZone,\n OnInit,\n Output,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyAutofocusDirective } from 'ngx-tethys/shared';\nimport { ThyInputDirective, ThyInputSize } from './input.directive';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nexport const CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyInput),\n multi: true\n};\n\nconst noop = () => {};\n\nconst password = 'password';\n\n/**\n * 内部集成输入框组件,建议 thy-input-group 和 thyInput 组合使用\n * @name thy-input\n * @order 50\n */\n@Component({\n selector: 'thy-input',\n templateUrl: './input.component.html',\n providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'thy-input form-control',\n '[class.form-control-active]': 'focused',\n '[class.disabled]': 'disabled'\n },\n imports: [NgTemplateOutlet, ThyInputDirective, ThyAutofocusDirective, FormsModule, ThyIcon]\n})\nexport class ThyInput implements ControlValueAccessor, OnInit {\n private ngZone = inject(NgZone);\n private elementRef = inject(ElementRef);\n\n /**\n * Placeholder\n */\n @Input() placeholder = '';\n\n /**\n * 输入框大小\n * @type 'xs' | 'sm' | 'md' | 'default' | 'lg'\n * @default default\n */\n @Input() thySize: ThyInputSize;\n\n /**\n * 是否自动聚焦\n */\n @Input({ transform: coerceBooleanProperty }) thyAutofocus = false;\n\n /**\n * 输入框类型\n * @type 'number' | 'input'\n */\n @Input()\n set thyType(value: string) {\n this.type = value;\n }\n\n /**\n * @deprecated please use thyType\n */\n @Input() type: string;\n\n /**\n * 输入 Label 文本\n */\n @Input() thyLabelText: string;\n\n /**\n * 是否只读\n */\n @Input({ transform: coerceBooleanProperty }) readonly = false;\n\n /**\n * focus 聚焦事件\n */\n @Output() focus: EventEmitter<Event> = new EventEmitter<Event>();\n\n /**\n * blur 失焦事件\n */\n @Output() blur: EventEmitter<Event> = new EventEmitter<Event>();\n\n /**\n * 后置模板\n */\n @ContentChild('append') appendTemplate: TemplateRef<any>;\n\n /**\n * 前置模板\n */\n @ContentChild('prepend') prependTemplate: TemplateRef<any>;\n\n @ViewChild('eye', { static: true }) eyeTemplate: TemplateRef<any>;\n\n public _type = 'text';\n\n public value: string;\n\n public showLabel: boolean;\n\n public focused = false;\n\n public disabled = false;\n\n private onTouchedCallback: () => void = noop;\n\n private onChangeCallback: (_: any) => void = noop;\n\n ngOnInit() {\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n if (this.isPassword(this.type)) {\n this.appendTemplate = this.eyeTemplate;\n }\n });\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onModelChange() {\n this.onChangeCallback(this.value);\n }\n\n onInputFocus(event: Event) {\n this.focused = true;\n this.showLabel = true;\n this.focus.emit(event);\n }\n\n onInputBlur(event: Event) {\n this.onTouchedCallback();\n if (this.elementRef.nativeElement.onblur) {\n this.elementRef.nativeElement.onblur(event);\n }\n this.focused = false;\n this.showLabel = false;\n this.blur.emit(event);\n }\n\n isPassword(value: string) {\n return value === password;\n }\n\n togglePasswordType() {\n this.type = this.isPassword(this.type) ? 'text' : 'password';\n }\n}\n","@if (prependTemplate) {\n <div #prepend class=\"input-prepend\">\n <ng-template *ngTemplateOutlet=\"prependTemplate\"></ng-template>\n </div>\n}\n<input\n #input\n thyInput\n [thySize]=\"thySize\"\n [thyAutofocus]=\"thyAutofocus\"\n [type]=\"type\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onModelChange()\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n [readonly]=\"readonly\"\n />\n<span class=\"input-label input-label-{{ thySize }}\" [class.active]=\"showLabel\">{{ thyLabelText }}</span>\n@if (appendTemplate) {\n <div #append class=\"input-append\">\n <ng-template *ngTemplateOutlet=\"appendTemplate\"></ng-template>\n </div>\n}\n\n<ng-template #eye>\n <a href=\"javascript:;\" class=\"link-secondary input-password-icon\" (click)=\"togglePasswordType()\">\n @if (isPassword(type)) {\n <thy-icon thyIconName=\"eye\"></thy-icon>\n }\n @if (!isPassword(type)) {\n <thy-icon thyIconName=\"eye-invisible\"></thy-icon>\n }\n </a>\n</ng-template>\n","import {\n Component,\n HostBinding,\n Input,\n ContentChild,\n TemplateRef,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n AfterContentChecked,\n OnInit,\n OnDestroy,\n ChangeDetectorRef,\n NgZone,\n inject,\n DestroyRef\n} from '@angular/core';\nimport { ThyTranslate, useHostFocusControl } from 'ngx-tethys/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyInputDirective } from './input.directive';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { throttleTime } from 'rxjs/operators';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Observable, of } from 'rxjs';\nimport { FocusOrigin } from '@angular/cdk/a11y';\n\nexport type InputGroupSize = 'sm' | 'lg' | 'md' | '';\n\nconst inputGroupSizeMap = {\n sm: ['input-group-sm'],\n lg: ['input-group-lg'],\n md: ['input-group-md']\n};\n\n/**\n * 输入框分组\n * @name thy-input-group\n * @order 20\n */\n@Component({\n selector: 'thy-input-group',\n templateUrl: './input-group.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'thy-input-group',\n '[class.form-control]': 'prefixTemplate || suffixTemplate',\n '[class.thy-input-group-with-prefix]': 'prefixTemplate',\n '[class.thy-input-group-with-suffix]': 'suffixTemplate',\n '[class.thy-input-group-with-textarea-suffix]': 'isTextareaSuffix',\n '[class.thy-input-group-with-scroll-bar]': 'isTextareaSuffix && hasScrollbar'\n },\n imports: [NgTemplateOutlet]\n})\nexport class ThyInputGroup implements OnInit, AfterContentChecked, OnDestroy {\n private thyTranslate = inject(ThyTranslate);\n private ngZone = inject(NgZone);\n private cdr = inject(ChangeDetectorRef);\n\n private hostRenderer = useHostRenderer();\n\n private hostFocusControl = useHostFocusControl();\n\n private readonly destroyRef = inject(DestroyRef);\n\n public appendText: string;\n\n public prependText: string;\n\n public isTextareaSuffix: boolean;\n\n public hasScrollbar: boolean;\n\n @HostBinding('class.disabled') disabled = false;\n\n /**\n * 输入框上添加的后置文本\n */\n @Input()\n set thyAppendText(value: string) {\n this.appendText = value;\n }\n\n /**\n * 输入框上添加的后置文本多语言 Key\n */\n @Input()\n set thyAppendTextTranslateKey(value: string) {\n if (value) {\n this.appendText = this.thyTranslate.instant(value);\n }\n }\n\n /**\n * 输入框上添加的前置文本\n */\n @Input()\n set thyPrependText(value: string) {\n this.prependText = value;\n }\n\n /**\n * 输入框上添加的前置文本多语言 Key\n */\n @Input()\n set thyPrependTextTranslateKey(value: string) {\n if (value) {\n this.prependText = this.thyTranslate.instant(value);\n }\n }\n\n /**\n * 输入框分组大小\n * @type 'sm' | 'lg' | 'md' | ''\n * @default ''\n */\n @Input()\n set thySize(size: InputGroupSize) {\n if (size && inputGroupSizeMap[size]) {\n this.hostRenderer.updateClass(inputGroupSizeMap[size]);\n } else {\n this.hostRenderer.updateClass([]);\n }\n }\n\n /**\n * 后置模板\n */\n @ContentChild('append') appendTemplate: TemplateRef<unknown>;\n\n /**\n * 前置模板\n */\n @ContentChild('prepend') prependTemplate: TemplateRef<unknown>;\n\n /**\n * 前缀\n */\n @ContentChild('prefix') prefixTemplate: TemplateRef<unknown>;\n\n /**\n * 后缀\n */\n @ContentChild('suffix') suffixTemplate: TemplateRef<unknown>;\n\n /**\n * @private\n */\n @ContentChild(ThyInputDirective) inputDirective: ThyInputDirective;\n\n ngOnInit() {\n this.hostFocusControl.focusChanged = (origin: FocusOrigin) => {\n if (origin) {\n this.hostRenderer.addClass('form-control-active');\n } else {\n this.hostRenderer.removeClass('form-control-active');\n }\n };\n }\n\n ngAfterContentChecked(): void {\n this.disabled = !!this.inputDirective?.nativeElement?.hasAttribute('disabled');\n\n this.isTextareaSuffix = this.inputDirective?.nativeElement?.tagName === 'TEXTAREA';\n if (this.isTextareaSuffix) {\n this.determineHasScrollbar();\n }\n }\n\n private determineHasScrollbar() {\n this.ngZone.runOutsideAngular(() => {\n this.resizeObserver(this.inputDirective.nativeElement)\n .pipe(throttleTime(100), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n const hasScrollbar = this.inputDirective.nativeElement.scrollHeight > this.inputDirective.nativeElement.clientHeight;\n if (this.hasScrollbar !== hasScrollbar) {\n this.ngZone.run(() => {\n this.hasScrollbar = hasScrollbar;\n this.cdr.detectChanges();\n });\n }\n });\n });\n }\n\n private resizeObserver(element: HTMLElement): Observable<ResizeObserverEntry[]> {\n return typeof ResizeObserver === 'undefined' || !ResizeObserver\n ? of(null)\n : new Observable(observer => {\n const resize = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n observer.next(entries);\n });\n resize.observe(element);\n return () => {\n resize.disconnect();\n };\n });\n }\n\n ngOnDestroy() {\n this.hostFocusControl.destroy();\n }\n}\n","@if (prependText) {\n <div class=\"input-group-prepend\">\n <span class=\"input-group-text\">{{ prependText }}</span>\n </div>\n}\n@if (prependTemplate) {\n <div class=\"input-group-prepend\">\n <ng-template *ngTemplateOutlet=\"prependTemplate\"></ng-template>\n </div>\n}\n\n@if (prefixTemplate) {\n <div class=\"input-group-prefix\">\n <ng-template *ngTemplateOutlet=\"prefixTemplate\"></ng-template>\n </div>\n}\n\n<ng-content></ng-content>\n\n@if (appendText) {\n <div class=\"input-group-append\">\n <span class=\"input-group-text\">{{ appendText }}</span>\n </div>\n}\n@if (appendTemplate) {\n <div class=\"input-group-append\">\n <ng-template *ngTemplateOutlet=\"appendTemplate\"></ng-template>\n </div>\n}\n\n@if (suffixTemplate) {\n <div class=\"input-group-suffix\">\n <ng-template *ngTemplateOutlet=\"suffixTemplate\"></ng-template>\n </div>\n}\n","import {\n AbstractControlValueAccessor,\n Constructor,\n mixinDisabled,\n mixinInitialized,\n mixinTabIndex,\n ThyCanDisable,\n ThyHasTabIndex,\n ThyInitialized,\n useHostFocusControl\n} from 'ngx-tethys/core';\n\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyAutofocusDirective } from 'ngx-tethys/shared';\nimport { ThyInputDirective, ThyInputSize } from './input.directive';\n\nimport { FocusOrigin } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nexport type ThyInputSearchTheme = 'default' | 'ellipse' | 'transparent' | '';\nexport type ThyInputSearchIconPosition = 'before' | 'after';\n\nexport const CUSTOM_INPUT_SEARCH_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyInputSearch),\n multi: true\n};\n\nconst noop = () => {};\n\nconst _MixinBase: Constructor<ThyHasTabIndex> &\n Constructor<ThyInitialized> &\n Constructor<ThyCanDisable> &\n typeof AbstractControlValueAccessor = mixinInitialized(mixinTabIndex(mixinDisabled(AbstractControlValueAccessor)));\n\n/**\n * 搜索输入框\n * @name thy-input-search\n * @order 30\n */\n@Component({\n selector: 'thy-input-search',\n templateUrl: './input-search.component.html',\n providers: [CUSTOM_INPUT_SEARCH_CONTROL_VALUE_ACCESSOR],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-input form-control thy-input-search',\n '[class.thy-input-search-ellipse]': 'thyTheme === \"ellipse\"',\n '[class.thy-input-search-transparent]': 'thyTheme === \"transparent\"',\n '[class.thy-input-search-before-with-clear]': 'searchText && iconPosition === \"before\"',\n '[class.form-control-active]': 'focused',\n '[attr.tabindex]': 'tabIndex'\n },\n imports: [ThyIcon, ThyInputDirective, ThyAutofocusDirective, FormsModule]\n})\nexport class ThyInputSearch extends _MixinBase implements ControlValueAccessor, OnInit, OnDestroy {\n private cdr = inject(ChangeDetectorRef);\n private elementRef = inject(ElementRef);\n\n @ViewChild('input', { static: true }) inputElement: ElementRef<any>;\n\n private hostRenderer = useHostRenderer();\n\n private hostFocusControl = useHostFocusControl();\n\n public disabled = false;\n\n public autoFocus = false;\n\n public iconPosition: ThyInputSearchIconPosition = 'before';\n\n searchText: string;\n\n focused = false;\n\n /**\n * 搜索框 name 属性\n */\n @Input() name = '';\n\n /**\n * 搜索框 Placeholder\n */\n @Input() placeholder = '';\n\n /**\n * 搜索框风格\n * @type 'default' | 'ellipse' | 'transparent'\n * @default default\n */\n @Input() thyTheme: ThyInputSearchTheme;\n\n /**\n * 是否自动聚焦\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n set thySearchFocus(value: boolean) {\n this.autoFocus = value;\n this.focused = value;\n }\n\n /**\n * 搜索图标位置,当传入 after 时,搜索图标在输入框后方显示,有内容时显示为关闭按钮\n * @type\n */\n @Input() set thyIconPosition(value: ThyInputSearchIconPosition) {\n this.iconPosition = value || 'before';\n this.updateClasses();\n }\n\n /**\n * 输入框大小\n * @type 'xs' | 'sm' | 'md' | 'default' | 'lg'\n */\n @Input() thySize: ThyInputSize;\n\n /**\n * @deprecated please use thyClear\n */\n @Output() clear: EventEmitter<Event> = new EventEmitter<Event>();\n\n /**\n * 清除搜索事件\n */\n @Output() thyClear: EventEmitter<Event> = new EventEmitter<Event>();\n\n constructor() {\n super();\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n this.updateClasses(true);\n\n this.hostFocusControl.focusChanged = (origin: FocusOrigin) => {\n if (this.disabled) {\n return;\n }\n\n if (origin) {\n if (!this.focused) {\n this.inputElement.nativeElement.focus();\n }\n } else {\n if (this.focused) {\n this.focused = false;\n this.onTouchedFn();\n }\n }\n this.cdr.markForCheck();\n };\n }\n\n updateClasses(forceUpdate = false) {\n if (this.initialized || forceUpdate) {\n this.hostRenderer.updateClass([`thy-input-search-${this.iconPosition}`]);\n }\n }\n\n writeValue(value: any): void {\n this.searchText = value;\n this.cdr.markForCheck();\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n searchModelChange() {\n this.onChangeFn(this.searchText);\n }\n\n clearSearchText(event: Event) {\n const element = this.elementRef.nativeElement.querySelector('.input-search-control');\n element.focus();\n event.stopPropagation();\n if (this.disabled) {\n return;\n }\n this.searchText = '';\n this.onChangeFn(this.searchText);\n this.clear.emit(event);\n this.thyClear.emit(event);\n }\n\n ngOnDestroy(): void {\n this.hostFocusControl.destroy();\n }\n}\n","@if (iconPosition === 'before') {\n <thy-icon class=\"input-prepend\" thyIconName=\"search\"></thy-icon>\n}\n<input\n class=\"input-search-control\"\n #input\n thyInput\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [thyAutofocus]=\"autoFocus\"\n [(ngModel)]=\"searchText\"\n (ngModelChange)=\"searchModelChange()\"\n (focus)=\"!focused ? (focused = true) : null\"\n [thySize]=\"thySize\"\n tabindex=\"-1\" />\n@if (iconPosition === 'after') {\n <div class=\"input-append input-append-divider\">\n @if (searchText) {\n <a class=\"close\" href=\"javascript:;\" (click)=\"clearSearchText($event)\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </a>\n } @else {\n <thy-icon class=\"text-placeholder\" thyIconName=\"search\"></thy-icon>\n }\n </div>\n}\n\n@if (searchText && iconPosition === 'before') {\n <a class=\"close input-append\" href=\"javascript:;\" (click)=\"clearSearchText($event)\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </a>\n}\n","import { Component, OnInit, ChangeDetectionStrategy, Input, ChangeDetectorRef, inject, DestroyRef } from '@angular/core';\nimport { ThyInputDirective } from './input.directive';\nimport { switchMap, filter, tap } from 'rxjs/operators';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Subject } from 'rxjs';\nimport { ThyInputGroup } from './input-group.component';\n\n/**\n * 输入框输入文字展示\n * @name thy-input-count\n * @order 40\n */\n@Component({\n selector: 'thy-input-count',\n template: '{{inputLength}} / {{maxLength}}',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-input-count text-muted'\n }\n})\nexport class ThyInputCount implements OnInit {\n private changeDetectorRef = inject(ChangeDetectorRef);\n private inputGroup = inject(ThyInputGroup, { optional: true })!;\n\n private readonly destroyRef = inject(DestroyRef);\n\n private hasInput = false;\n\n /**\n * 输入框组件,如果不传默认会读取外层 thy-input-group 下的 thyInput 指令\n * @type ThyInputDirective\n */\n @Input() set thyInput(value: ThyInputDirective) {\n this.hasInput = true;\n this.thyInput$.next(value);\n }\n\n maxLength: number | string;\n\n inputLength = 0;\n\n thyInput$ = new Subject<ThyInputDirective>();\n\n constructor() {\n this.setup();\n }\n\n setup() {\n this.thyInput$\n .pipe(\n filter(input => {\n return !!input;\n }),\n tap(input => {\n this.maxLength = input.nativeElement.getAttribute('maxlength');\n this.changeDetectorRef.markForCheck();\n }),\n takeUntilDestroyed(this.destroyRef),\n switchMap(input => {\n return input.ngControl.valueChanges;\n }),\n tap(value => {\n this.inputLength = value?.length || 0;\n this.changeDetectorRef.markForCheck();\n }),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe();\n }\n\n ngOnInit(): void {\n if (!this.hasInput && this.inputGroup && this.inputGroup.inputDirective) {\n this.thyInput$.next(this.inputGroup.inputDirective);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyInputDirective } from './input.directive';\nimport { ThyInput } from './input.component';\nimport { ThyInputGroup } from './input-group.component';\nimport { ThyInputSearch } from './input-search.component';\nimport { FormsModule } from '@angular/forms';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyDividerModule } from 'ngx-tethys/divider';\nimport { ThyInputCount } from './input-count.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ThySharedModule,\n ThyIconModule,\n ThyDividerModule,\n ThyInputDirective,\n ThyInput,\n ThyInputGroup,\n ThyInputSearch,\n ThyInputCount\n ],\n exports: [ThyInputDirective, ThyInput, ThyInputGroup, ThyInputSearch, ThyInputCount]\n})\nexport class ThyInputModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["inputGroupSizeMap","noop"],"mappings":"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"}
|