@ng-nest/ui 20.1.0 → 20.1.2

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.
Files changed (121) hide show
  1. package/alert/index.d.ts +21 -2
  2. package/auto-complete/index.d.ts +3 -3
  3. package/avatar/index.d.ts +64 -2
  4. package/bubble/index.d.ts +190 -0
  5. package/calendar/index.d.ts +2 -1
  6. package/cascade/index.d.ts +3 -3
  7. package/color-picker/index.d.ts +3 -3
  8. package/core/index.d.ts +21 -4
  9. package/date-picker/index.d.ts +4 -4
  10. package/dropdown/index.d.ts +4 -4
  11. package/fesm2022/ng-nest-ui-affix.mjs +11 -13
  12. package/fesm2022/ng-nest-ui-affix.mjs.map +1 -1
  13. package/fesm2022/ng-nest-ui-alert.mjs +28 -15
  14. package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
  15. package/fesm2022/ng-nest-ui-anchor.mjs +18 -22
  16. package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
  17. package/fesm2022/ng-nest-ui-api.mjs +7 -7
  18. package/fesm2022/ng-nest-ui-auto-complete.mjs +13 -13
  19. package/fesm2022/ng-nest-ui-avatar.mjs +28 -16
  20. package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
  21. package/fesm2022/ng-nest-ui-back-top.mjs +10 -10
  22. package/fesm2022/ng-nest-ui-badge.mjs +10 -10
  23. package/fesm2022/ng-nest-ui-base-form.mjs +7 -7
  24. package/fesm2022/ng-nest-ui-bubble.mjs +374 -0
  25. package/fesm2022/ng-nest-ui-bubble.mjs.map +1 -0
  26. package/fesm2022/ng-nest-ui-button.mjs +16 -16
  27. package/fesm2022/ng-nest-ui-calendar.mjs +10 -10
  28. package/fesm2022/ng-nest-ui-card.mjs +10 -10
  29. package/fesm2022/ng-nest-ui-carousel.mjs +16 -16
  30. package/fesm2022/ng-nest-ui-cascade.mjs +13 -13
  31. package/fesm2022/ng-nest-ui-checkbox.mjs +11 -11
  32. package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
  33. package/fesm2022/ng-nest-ui-collapse.mjs +16 -16
  34. package/fesm2022/ng-nest-ui-color-picker.mjs +16 -16
  35. package/fesm2022/ng-nest-ui-color.mjs +10 -10
  36. package/fesm2022/ng-nest-ui-comment.mjs +16 -16
  37. package/fesm2022/ng-nest-ui-container.mjs +31 -31
  38. package/fesm2022/ng-nest-ui-core.mjs +21 -18
  39. package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
  40. package/fesm2022/ng-nest-ui-crumb.mjs +10 -10
  41. package/fesm2022/ng-nest-ui-date-picker.mjs +49 -49
  42. package/fesm2022/ng-nest-ui-description.mjs +16 -16
  43. package/fesm2022/ng-nest-ui-dialog.mjs +40 -40
  44. package/fesm2022/ng-nest-ui-doc.mjs +7 -7
  45. package/fesm2022/ng-nest-ui-drag.mjs +10 -10
  46. package/fesm2022/ng-nest-ui-drawer.mjs +31 -31
  47. package/fesm2022/ng-nest-ui-dropdown.mjs +13 -13
  48. package/fesm2022/ng-nest-ui-empty.mjs +10 -10
  49. package/fesm2022/ng-nest-ui-examples.mjs +7 -7
  50. package/fesm2022/ng-nest-ui-find.mjs +10 -10
  51. package/fesm2022/ng-nest-ui-form.mjs +16 -16
  52. package/fesm2022/ng-nest-ui-highlight.mjs +13 -13
  53. package/fesm2022/ng-nest-ui-i18n.mjs +13 -13
  54. package/fesm2022/ng-nest-ui-icon.mjs +13 -13
  55. package/fesm2022/ng-nest-ui-image.mjs +19 -19
  56. package/fesm2022/ng-nest-ui-inner.mjs +10 -10
  57. package/fesm2022/ng-nest-ui-input-number.mjs +10 -10
  58. package/fesm2022/ng-nest-ui-input.mjs +18 -18
  59. package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
  60. package/fesm2022/ng-nest-ui-keyword.mjs +10 -10
  61. package/fesm2022/ng-nest-ui-layout.mjs +16 -16
  62. package/fesm2022/ng-nest-ui-link.mjs +10 -10
  63. package/fesm2022/ng-nest-ui-list.mjs +19 -19
  64. package/fesm2022/ng-nest-ui-loading.mjs +16 -11
  65. package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
  66. package/fesm2022/ng-nest-ui-menu.mjs +16 -16
  67. package/fesm2022/ng-nest-ui-message-box.mjs +10 -10
  68. package/fesm2022/ng-nest-ui-message.mjs +10 -10
  69. package/fesm2022/ng-nest-ui-notification.mjs +10 -10
  70. package/fesm2022/ng-nest-ui-outlet.mjs +7 -7
  71. package/fesm2022/ng-nest-ui-page-header.mjs +10 -10
  72. package/fesm2022/ng-nest-ui-pagination.mjs +10 -10
  73. package/fesm2022/ng-nest-ui-pattern.mjs +7 -7
  74. package/fesm2022/ng-nest-ui-popconfirm.mjs +10 -10
  75. package/fesm2022/ng-nest-ui-popover.mjs +13 -13
  76. package/fesm2022/ng-nest-ui-portal.mjs +7 -7
  77. package/fesm2022/ng-nest-ui-progress.mjs +10 -10
  78. package/fesm2022/ng-nest-ui-radio.mjs +10 -10
  79. package/fesm2022/ng-nest-ui-rate.mjs +10 -10
  80. package/fesm2022/ng-nest-ui-resizable.mjs +10 -10
  81. package/fesm2022/ng-nest-ui-result.mjs +10 -10
  82. package/fesm2022/ng-nest-ui-ripple.mjs +10 -10
  83. package/fesm2022/ng-nest-ui-scrollable.mjs +7 -7
  84. package/fesm2022/ng-nest-ui-select.mjs +13 -13
  85. package/fesm2022/ng-nest-ui-sender.mjs +189 -0
  86. package/fesm2022/ng-nest-ui-sender.mjs.map +1 -0
  87. package/fesm2022/ng-nest-ui-skeleton.mjs +10 -10
  88. package/fesm2022/ng-nest-ui-slider-select.mjs +10 -10
  89. package/fesm2022/ng-nest-ui-slider.mjs +10 -10
  90. package/fesm2022/ng-nest-ui-statistic.mjs +16 -16
  91. package/fesm2022/ng-nest-ui-steps.mjs +10 -10
  92. package/fesm2022/ng-nest-ui-switch.mjs +10 -10
  93. package/fesm2022/ng-nest-ui-table-view.mjs +58 -58
  94. package/fesm2022/ng-nest-ui-table.mjs +34 -34
  95. package/fesm2022/ng-nest-ui-tabs.mjs +25 -25
  96. package/fesm2022/ng-nest-ui-tag.mjs +10 -10
  97. package/fesm2022/ng-nest-ui-text-retract.mjs +10 -10
  98. package/fesm2022/ng-nest-ui-textarea.mjs +11 -11
  99. package/fesm2022/ng-nest-ui-theme.mjs +10 -10
  100. package/fesm2022/ng-nest-ui-time-ago.mjs +7 -7
  101. package/fesm2022/ng-nest-ui-time-picker.mjs +16 -16
  102. package/fesm2022/ng-nest-ui-time-range.mjs +7 -7
  103. package/fesm2022/ng-nest-ui-timeline.mjs +10 -10
  104. package/fesm2022/ng-nest-ui-tooltip.mjs +13 -13
  105. package/fesm2022/ng-nest-ui-transfer.mjs +10 -10
  106. package/fesm2022/ng-nest-ui-tree-file.mjs +10 -10
  107. package/fesm2022/ng-nest-ui-tree-select.mjs +13 -13
  108. package/fesm2022/ng-nest-ui-tree.mjs +19 -19
  109. package/fesm2022/ng-nest-ui-typography.mjs +10 -10
  110. package/fesm2022/ng-nest-ui-upload.mjs +13 -13
  111. package/fesm2022/ng-nest-ui.mjs +2 -0
  112. package/fesm2022/ng-nest-ui.mjs.map +1 -1
  113. package/index.d.ts +2 -0
  114. package/loading/index.d.ts +6 -1
  115. package/message-box/index.d.ts +5 -4
  116. package/package.json +21 -13
  117. package/select/index.d.ts +3 -3
  118. package/sender/index.d.ts +169 -0
  119. package/steps/index.d.ts +2 -1
  120. package/time-picker/index.d.ts +3 -3
  121. package/tree-select/index.d.ts +3 -3
@@ -0,0 +1,189 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, output, Component, viewChild, signal, computed, ChangeDetectionStrategy, ViewEncapsulation, NgModule } from '@angular/core';
3
+ import { XFormControlFunction, XValueAccessor } from '@ng-nest/ui/base-form';
4
+ import { XToNumber, XToBoolean } from '@ng-nest/ui/core';
5
+ import * as i1 from '@angular/cdk/text-field';
6
+ import { TextFieldModule } from '@angular/cdk/text-field';
7
+ import { XButtonComponent } from '@ng-nest/ui/button';
8
+ import * as i2 from '@angular/forms';
9
+ import { FormsModule } from '@angular/forms';
10
+ import { NgTemplateOutlet } from '@angular/common';
11
+
12
+ /**
13
+ * Sender
14
+ * @selector x-sender
15
+ * @decorator component
16
+ */
17
+ const XSenderPrefix = 'x-sender';
18
+ const X_SENDER_CONFIG_NAME = 'sender';
19
+ /**
20
+ * Sender Property
21
+ */
22
+ class XSenderProperty extends XFormControlFunction(X_SENDER_CONFIG_NAME) {
23
+ constructor() {
24
+ super(...arguments);
25
+ /**
26
+ * @zh_CN 最小的行数
27
+ * @en_US min number of rows
28
+ */
29
+ this.minRows = input(1, ...(ngDevMode ? [{ debugName: "minRows", transform: XToNumber }] : [{ transform: XToNumber }]));
30
+ /**
31
+ * @zh_CN 最大的行数
32
+ * @en_US max number of rows
33
+ */
34
+ this.maxRows = input(Number.MAX_SAFE_INTEGER, ...(ngDevMode ? [{ debugName: "maxRows", transform: XToNumber }] : [{ transform: XToNumber }]));
35
+ /**
36
+ * @zh_CN 提交加载中
37
+ * @en_US Loading
38
+ */
39
+ this.loading = input(false, ...(ngDevMode ? [{ debugName: "loading", transform: XToBoolean }] : [{ transform: XToBoolean }]));
40
+ /**
41
+ * @zh_CN 提交类型
42
+ * @en_US Submit type
43
+ */
44
+ this.submitType = input(this.config?.submitType ?? 'enter', ...(ngDevMode ? [{ debugName: "submitType" }] : []));
45
+ /**
46
+ * @zh_CN 提交
47
+ * @en_US Submit
48
+ */
49
+ this.submit = output();
50
+ /**
51
+ * @zh_CN 自定义后缀
52
+ * @en_US Custom suffix
53
+ */
54
+ this.suffix = input(...(ngDevMode ? [undefined, { debugName: "suffix" }] : []));
55
+ /**
56
+ * @zh_CN 自定义前缀
57
+ * @en_US Custom prefix
58
+ */
59
+ this.prefix = input(...(ngDevMode ? [undefined, { debugName: "prefix" }] : []));
60
+ /**
61
+ * @zh_CN 自定义头部
62
+ * @en_US Custom header
63
+ */
64
+ this.header = input(...(ngDevMode ? [undefined, { debugName: "header" }] : []));
65
+ /**
66
+ * @zh_CN 自定义底部
67
+ * @en_US Custom footer
68
+ */
69
+ this.footer = input(...(ngDevMode ? [undefined, { debugName: "footer" }] : []));
70
+ /**
71
+ * @zh_CN 输入提示信息
72
+ * @en_US Enter prompt information
73
+ */
74
+ this.placeholder = input('', ...(ngDevMode ? [{ debugName: "placeholder" }] : []));
75
+ /**
76
+ * @zh_CN 禁用
77
+ * @en_US Disabled
78
+ */
79
+ this.disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled", transform: XToBoolean }] : [{ transform: XToBoolean }]));
80
+ /**
81
+ * @zh_CN 必填
82
+ * @en_US Required
83
+ */
84
+ this.required = input(false, ...(ngDevMode ? [{ debugName: "required", transform: XToBoolean }] : [{ transform: XToBoolean }]));
85
+ /**
86
+ * @zh_CN 只读
87
+ * @en_US Readonly
88
+ */
89
+ this.readonly = input(false, ...(ngDevMode ? [{ debugName: "readonly", transform: XToBoolean }] : [{ transform: XToBoolean }]));
90
+ /**
91
+ * @zh_CN 正则验证规则
92
+ * @en_US Regular verification rules
93
+ */
94
+ this.pattern = input(null, ...(ngDevMode ? [{ debugName: "pattern" }] : []));
95
+ /**
96
+ * @zh_CN 验证不通过提示文字
97
+ * @en_US Verify not pass the prompt text
98
+ */
99
+ this.message = input([], ...(ngDevMode ? [{ debugName: "message" }] : []));
100
+ /**
101
+ * @zh_CN 输入验证函数
102
+ * @en_US Enter the verification function
103
+ */
104
+ this.inputValidator = input(...(ngDevMode ? [undefined, { debugName: "inputValidator" }] : []));
105
+ }
106
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: XSenderProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
107
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.0", type: XSenderProperty, isStandalone: true, selector: "x-sender-property", inputs: { minRows: { classPropertyName: "minRows", publicName: "minRows", isSignal: true, isRequired: false, transformFunction: null }, maxRows: { classPropertyName: "maxRows", publicName: "maxRows", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, submitType: { classPropertyName: "submitType", publicName: "submitType", isSignal: true, isRequired: false, transformFunction: null }, suffix: { classPropertyName: "suffix", publicName: "suffix", isSignal: true, isRequired: false, transformFunction: null }, prefix: { classPropertyName: "prefix", publicName: "prefix", isSignal: true, isRequired: false, transformFunction: null }, header: { classPropertyName: "header", publicName: "header", isSignal: true, isRequired: false, transformFunction: null }, footer: { classPropertyName: "footer", publicName: "footer", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, pattern: { classPropertyName: "pattern", publicName: "pattern", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, inputValidator: { classPropertyName: "inputValidator", publicName: "inputValidator", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { submit: "submit" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
108
+ }
109
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: XSenderProperty, decorators: [{
110
+ type: Component,
111
+ args: [{ selector: `${XSenderPrefix}-property`, template: '' }]
112
+ }] });
113
+
114
+ class XSenderComponent extends XSenderProperty {
115
+ constructor() {
116
+ super(...arguments);
117
+ this.textarea = viewChild.required('textarea');
118
+ this.focused = signal(false, ...(ngDevMode ? [{ debugName: "focused" }] : []));
119
+ this.maxRowsComputed = computed(() => {
120
+ const rows = this.maxRows();
121
+ return rows === Number.MAX_SAFE_INTEGER ? undefined : rows;
122
+ }, ...(ngDevMode ? [{ debugName: "maxRowsComputed" }] : []));
123
+ this.placeholderComputed = computed(() => {
124
+ const placeholder = this.placeholder();
125
+ return placeholder;
126
+ }, ...(ngDevMode ? [{ debugName: "placeholderComputed" }] : []));
127
+ }
128
+ onKeydown(event) {
129
+ if (this.submitType() === 'enter') {
130
+ if (event.key === 'Enter' && !event.shiftKey) {
131
+ event.preventDefault();
132
+ this.onEnterPressed(event);
133
+ }
134
+ }
135
+ else if (this.submitType() === 'shiftEnter') {
136
+ if (event.key === 'Enter' && event.shiftKey) {
137
+ event.preventDefault();
138
+ this.onEnterPressed(event);
139
+ }
140
+ }
141
+ }
142
+ onEnterPressed(event) {
143
+ this.submit.emit(event);
144
+ }
145
+ inputFocus(type = 'after') {
146
+ this.textarea().nativeElement.focus();
147
+ if (!this.value())
148
+ return;
149
+ if (type === 'after') {
150
+ this.textarea().nativeElement.setSelectionRange(this.value().length, this.value().length);
151
+ }
152
+ else if (type === 'before') {
153
+ this.textarea().nativeElement.setSelectionRange(0, 0);
154
+ }
155
+ else if (type === 'select') {
156
+ this.textarea().nativeElement.setSelectionRange(0, this.value().length);
157
+ }
158
+ }
159
+ change(value) {
160
+ if (this.onChange)
161
+ this.onChange(value);
162
+ }
163
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: XSenderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
164
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.0", type: XSenderComponent, isStandalone: true, selector: "x-sender", providers: [XValueAccessor(XSenderComponent)], viewQueries: [{ propertyName: "textarea", first: true, predicate: ["textarea"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"x-sender\"\r\n [class.x-disabled]=\"disabledComputed()\"\r\n [class.x-required]=\"requiredIsEmpty()\"\r\n [class.x-invalid]=\"invalid()\"\r\n [class.x-focused]=\"focused()\"\r\n>\r\n <div class=\"x-sender-wrap\">\r\n @if (header()) {\r\n <div class=\"x-sender-header\">\r\n <ng-container *ngTemplateOutlet=\"header()\"></ng-container>\r\n </div>\r\n }\r\n <div class=\"x-sender-content\" (click)=\"inputFocus('after')\">\r\n @if (prefix()) {\r\n <div class=\"x-sender-prefix\">\r\n <ng-container *ngTemplateOutlet=\"prefix()\"></ng-container>\r\n </div>\r\n }\r\n <textarea\r\n #textarea\r\n [disabled]=\"disabledComputed()\"\r\n [required]=\"requiredComputed()\"\r\n [readOnly]=\"readonly()\"\r\n [placeholder]=\"placeholderComputed()\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"change($event)\"\r\n cdkTextareaAutosize\r\n [cdkAutosizeMinRows]=\"minRows()\"\r\n [cdkAutosizeMaxRows]=\"maxRowsComputed()\"\r\n (keydown)=\"onKeydown($event)\"\r\n (focus)=\"focused.set(true)\"\r\n (blur)=\"focused.set(false)\"\r\n (input)=\"formControlValidator()\"\r\n (click)=\"$event.stopPropagation()\"\r\n class=\"x-sender-textarea\"\r\n ></textarea>\r\n\r\n @if (suffix()) {\r\n <div class=\"x-sender-suffix\">\r\n <ng-container *ngTemplateOutlet=\"suffix()\"></ng-container>\r\n </div>\r\n } @else {\r\n @if (!footer()) {\r\n <div class=\"x-sender-suffix\">\r\n <x-button\r\n type=\"primary\"\r\n circle\r\n flat\r\n icon=\"fto-send\"\r\n [loading]=\"loading()\"\r\n [disabled]=\"disabledComputed()\"\r\n (click)=\"onEnterPressed($event)\"\r\n ></x-button>\r\n </div>\r\n }\r\n }\r\n </div>\r\n @if (footer()) {\r\n <div class=\"x-sender-footer\">\r\n <ng-container *ngTemplateOutlet=\"footer()\"></ng-container>\r\n </div>\r\n }\r\n @if (requiredIsEmpty() || invalid()) {\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n }\r\n </div>\r\n</div>\r\n", styles: [".x-sender{margin:0;padding:0}.x-sender-wrap{position:relative;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);background-color:var(--x-background);transition:all var(--x-animation-duration-slow)}.x-sender-wrap:hover{border-color:var(--x-primary-300)}.x-sender-content{display:flex;align-items:flex-end;padding:var(--x-padding-small) var(--x-padding-medium);gap:var(--x-padding-small);width:100%;cursor:text}.x-sender-textarea{padding:0;flex:auto;align-self:center;min-height:auto;line-height:1.5;vertical-align:bottom;background-color:transparent;resize:none;border:none}.x-sender-header{border-top-left-radius:var(--x-border-radius);border-top-right-radius:var(--x-border-radius);color:var(--x-text-400);background-color:var(--x-background-a200);padding:var(--x-padding-small) var(--x-padding-medium) var(--x-padding-mini) var(--x-padding-medium)}.x-sender-footer{padding:var(--x-padding-mini) var(--x-padding-medium) var(--x-padding-small) var(--x-padding-medium)}.x-sender.x-disabled .x-sender-wrap{color:var(--x-text-400);cursor:default;border-color:var(--x-border-100);background-color:var(--x-background-a300)}.x-sender.x-disabled .x-sender-textarea{color:var(--x-text-400);cursor:default}.x-sender.x-invalid .x-border-error,.x-sender.x-required .x-border-error{position:absolute;height:.75rem;width:.75rem;z-index:10}.x-sender.x-invalid .x-border-error.x-top-left,.x-sender.x-required .x-border-error.x-top-left{border-top-left-radius:var(--x-border-radius);top:0;left:0;border-top:var(--x-border-width) solid var(--x-danger);border-left:var(--x-border-width) solid var(--x-danger)}.x-sender.x-invalid .x-border-error.x-top-right,.x-sender.x-required .x-border-error.x-top-right{border-top-right-radius:var(--x-border-radius);top:0;right:0;border-top:var(--x-border-width) solid var(--x-danger);border-right:var(--x-border-width) solid var(--x-danger)}.x-sender.x-invalid .x-border-error.x-bottom-left,.x-sender.x-required .x-border-error.x-bottom-left{border-bottom-left-radius:var(--x-border-radius);bottom:0;left:0;border-bottom:var(--x-border-width) solid var(--x-danger);border-left:var(--x-border-width) solid var(--x-danger)}.x-sender.x-invalid .x-border-error.x-bottom-right,.x-sender.x-required .x-border-error.x-bottom-right{border-bottom-right-radius:var(--x-border-radius);bottom:0;right:0;border-bottom:var(--x-border-width) solid var(--x-danger);border-right:var(--x-border-width) solid var(--x-danger)}\n"], dependencies: [{ kind: "ngmodule", type: TextFieldModule }, { kind: "directive", type: i1.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: XButtonComponent, selector: "x-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
165
+ }
166
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: XSenderComponent, decorators: [{
167
+ type: Component,
168
+ args: [{ selector: 'x-sender', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XSenderComponent)], imports: [TextFieldModule, FormsModule, NgTemplateOutlet, XButtonComponent], template: "<div\r\n class=\"x-sender\"\r\n [class.x-disabled]=\"disabledComputed()\"\r\n [class.x-required]=\"requiredIsEmpty()\"\r\n [class.x-invalid]=\"invalid()\"\r\n [class.x-focused]=\"focused()\"\r\n>\r\n <div class=\"x-sender-wrap\">\r\n @if (header()) {\r\n <div class=\"x-sender-header\">\r\n <ng-container *ngTemplateOutlet=\"header()\"></ng-container>\r\n </div>\r\n }\r\n <div class=\"x-sender-content\" (click)=\"inputFocus('after')\">\r\n @if (prefix()) {\r\n <div class=\"x-sender-prefix\">\r\n <ng-container *ngTemplateOutlet=\"prefix()\"></ng-container>\r\n </div>\r\n }\r\n <textarea\r\n #textarea\r\n [disabled]=\"disabledComputed()\"\r\n [required]=\"requiredComputed()\"\r\n [readOnly]=\"readonly()\"\r\n [placeholder]=\"placeholderComputed()\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"change($event)\"\r\n cdkTextareaAutosize\r\n [cdkAutosizeMinRows]=\"minRows()\"\r\n [cdkAutosizeMaxRows]=\"maxRowsComputed()\"\r\n (keydown)=\"onKeydown($event)\"\r\n (focus)=\"focused.set(true)\"\r\n (blur)=\"focused.set(false)\"\r\n (input)=\"formControlValidator()\"\r\n (click)=\"$event.stopPropagation()\"\r\n class=\"x-sender-textarea\"\r\n ></textarea>\r\n\r\n @if (suffix()) {\r\n <div class=\"x-sender-suffix\">\r\n <ng-container *ngTemplateOutlet=\"suffix()\"></ng-container>\r\n </div>\r\n } @else {\r\n @if (!footer()) {\r\n <div class=\"x-sender-suffix\">\r\n <x-button\r\n type=\"primary\"\r\n circle\r\n flat\r\n icon=\"fto-send\"\r\n [loading]=\"loading()\"\r\n [disabled]=\"disabledComputed()\"\r\n (click)=\"onEnterPressed($event)\"\r\n ></x-button>\r\n </div>\r\n }\r\n }\r\n </div>\r\n @if (footer()) {\r\n <div class=\"x-sender-footer\">\r\n <ng-container *ngTemplateOutlet=\"footer()\"></ng-container>\r\n </div>\r\n }\r\n @if (requiredIsEmpty() || invalid()) {\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n }\r\n </div>\r\n</div>\r\n", styles: [".x-sender{margin:0;padding:0}.x-sender-wrap{position:relative;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);background-color:var(--x-background);transition:all var(--x-animation-duration-slow)}.x-sender-wrap:hover{border-color:var(--x-primary-300)}.x-sender-content{display:flex;align-items:flex-end;padding:var(--x-padding-small) var(--x-padding-medium);gap:var(--x-padding-small);width:100%;cursor:text}.x-sender-textarea{padding:0;flex:auto;align-self:center;min-height:auto;line-height:1.5;vertical-align:bottom;background-color:transparent;resize:none;border:none}.x-sender-header{border-top-left-radius:var(--x-border-radius);border-top-right-radius:var(--x-border-radius);color:var(--x-text-400);background-color:var(--x-background-a200);padding:var(--x-padding-small) var(--x-padding-medium) var(--x-padding-mini) var(--x-padding-medium)}.x-sender-footer{padding:var(--x-padding-mini) var(--x-padding-medium) var(--x-padding-small) var(--x-padding-medium)}.x-sender.x-disabled .x-sender-wrap{color:var(--x-text-400);cursor:default;border-color:var(--x-border-100);background-color:var(--x-background-a300)}.x-sender.x-disabled .x-sender-textarea{color:var(--x-text-400);cursor:default}.x-sender.x-invalid .x-border-error,.x-sender.x-required .x-border-error{position:absolute;height:.75rem;width:.75rem;z-index:10}.x-sender.x-invalid .x-border-error.x-top-left,.x-sender.x-required .x-border-error.x-top-left{border-top-left-radius:var(--x-border-radius);top:0;left:0;border-top:var(--x-border-width) solid var(--x-danger);border-left:var(--x-border-width) solid var(--x-danger)}.x-sender.x-invalid .x-border-error.x-top-right,.x-sender.x-required .x-border-error.x-top-right{border-top-right-radius:var(--x-border-radius);top:0;right:0;border-top:var(--x-border-width) solid var(--x-danger);border-right:var(--x-border-width) solid var(--x-danger)}.x-sender.x-invalid .x-border-error.x-bottom-left,.x-sender.x-required .x-border-error.x-bottom-left{border-bottom-left-radius:var(--x-border-radius);bottom:0;left:0;border-bottom:var(--x-border-width) solid var(--x-danger);border-left:var(--x-border-width) solid var(--x-danger)}.x-sender.x-invalid .x-border-error.x-bottom-right,.x-sender.x-required .x-border-error.x-bottom-right{border-bottom-right-radius:var(--x-border-radius);bottom:0;right:0;border-bottom:var(--x-border-width) solid var(--x-danger);border-right:var(--x-border-width) solid var(--x-danger)}\n"] }]
169
+ }] });
170
+
171
+ class XSenderModule {
172
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: XSenderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
173
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.0", ngImport: i0, type: XSenderModule, imports: [XSenderComponent], exports: [XSenderComponent] }); }
174
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: XSenderModule, imports: [XSenderComponent] }); }
175
+ }
176
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: XSenderModule, decorators: [{
177
+ type: NgModule,
178
+ args: [{
179
+ exports: [XSenderComponent],
180
+ imports: [XSenderComponent]
181
+ }]
182
+ }] });
183
+
184
+ /**
185
+ * Generated bundle index. Do not edit.
186
+ */
187
+
188
+ export { XSenderComponent, XSenderModule };
189
+ //# sourceMappingURL=ng-nest-ui-sender.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ng-nest-ui-sender.mjs","sources":["../../../../lib/ng-nest/ui/sender/sender.property.ts","../../../../lib/ng-nest/ui/sender/sender.component.ts","../../../../lib/ng-nest/ui/sender/sender.component.html","../../../../lib/ng-nest/ui/sender/sender.module.ts","../../../../lib/ng-nest/ui/sender/ng-nest-ui-sender.ts"],"sourcesContent":["import { XFormControlFunction, XFormOption } from '@ng-nest/ui/base-form';\r\nimport { Component, input, output, TemplateRef } from '@angular/core';\r\nimport { XBoolean, XNumber, XToBoolean, XToNumber } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Sender\r\n * @selector x-sender\r\n * @decorator component\r\n */\r\nexport const XSenderPrefix = 'x-sender';\r\nconst X_SENDER_CONFIG_NAME = 'sender';\r\n\r\n/**\r\n * Sender Property\r\n */\r\n@Component({ selector: `${XSenderPrefix}-property`, template: '' })\r\nexport class XSenderProperty extends XFormControlFunction(X_SENDER_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 最小的行数\r\n * @en_US min number of rows\r\n */\r\n readonly minRows = input<number, XNumber>(1, { transform: XToNumber });\r\n /**\r\n * @zh_CN 最大的行数\r\n * @en_US max number of rows\r\n */\r\n readonly maxRows = input<number, XNumber>(Number.MAX_SAFE_INTEGER, { transform: XToNumber });\r\n /**\r\n * @zh_CN 提交加载中\r\n * @en_US Loading\r\n */\r\n readonly loading = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 提交类型\r\n * @en_US Submit type\r\n */\r\n readonly submitType = input<XSenderSubmitType>(this.config?.submitType ?? 'enter');\r\n /**\r\n * @zh_CN 提交\r\n * @en_US Submit\r\n */\r\n readonly submit = output<Event>();\r\n /**\r\n * @zh_CN 自定义后缀\r\n * @en_US Custom suffix\r\n */\r\n readonly suffix = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 自定义前缀\r\n * @en_US Custom prefix\r\n */\r\n readonly prefix = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 自定义头部\r\n * @en_US Custom header\r\n */\r\n readonly header = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 自定义底部\r\n * @en_US Custom footer\r\n */\r\n readonly footer = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 输入提示信息\r\n * @en_US Enter prompt information\r\n */\r\n override readonly placeholder = input<string | string[]>('');\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disabled\r\n */\r\n override readonly disabled = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 必填\r\n * @en_US Required\r\n */\r\n override readonly required = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 只读\r\n * @en_US Readonly\r\n */\r\n override readonly readonly = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 正则验证规则\r\n * @en_US Regular verification rules\r\n */\r\n override readonly pattern = input<RegExp | RegExp[] | any>(null);\r\n /**\r\n * @zh_CN 验证不通过提示文字\r\n * @en_US Verify not pass the prompt text\r\n */\r\n override readonly message = input<string | string[]>([]);\r\n /**\r\n * @zh_CN 输入验证函数\r\n * @en_US Enter the verification function\r\n */\r\n override readonly inputValidator = input<(value: any) => boolean>();\r\n}\r\n\r\n/**\r\n * Sender Option\r\n */\r\nexport interface XSenderOption extends XFormOption {\r\n /**\r\n * @zh_CN 最小的行数\r\n * @en_US min number of rows\r\n */\r\n minRows?: number;\r\n /**\r\n * @zh_CN 最大的行数\r\n * @en_US max number of rows\r\n */\r\n maxRows?: number;\r\n /**\r\n * @zh_CN 提交加载中\r\n * @en_US Loading\r\n */\r\n loading?: boolean;\r\n /**\r\n * @zh_CN 提交类型\r\n * @en_US Submit type\r\n */\r\n submitType?: XSenderSubmitType;\r\n /**\r\n * @zh_CN 提交\r\n * @en_US Submit\r\n */\r\n submit?: (event: Event) => void;\r\n /**\r\n * @zh_CN 自定义后缀\r\n * @en_US Custom suffix\r\n */\r\n suffix?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 自定义前缀\r\n * @en_US Custom prefix\r\n */\r\n prefix?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 自定义头部\r\n * @en_US Custom header\r\n */\r\n header?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 自定义底部\r\n * @en_US Custom footer\r\n */\r\n footer?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 输入提示信息\r\n * @en_US Enter prompt information\r\n */\r\n placeholder?: string;\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disabled\r\n */\r\n disabled?: boolean;\r\n /**\r\n * @zh_CN 必填\r\n * @en_US Required\r\n */\r\n required?: boolean;\r\n /**\r\n * @zh_CN 只读\r\n * @en_US Readonly\r\n */\r\n readonly?: boolean;\r\n /**\r\n * @zh_CN 正则验证规则\r\n * @en_US Regular verification rules\r\n */\r\n pattern?: RegExp | RegExp[] | any;\r\n /**\r\n * @zh_CN 验证不通过提示文字\r\n * @en_US Verify not pass the prompt text\r\n */\r\n message?: string | string[];\r\n /**\r\n * @zh_CN 输入验证函数\r\n * @en_US Enter the verification function\r\n */\r\n inputValidator: (value: any) => boolean;\r\n}\r\n\r\n/**\r\n * @zh_CN 提交类型\r\n * @en_US Submit type\r\n */\r\nexport type XSenderSubmitType = 'enter' | 'shiftEnter';\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n viewChild,\r\n ElementRef,\r\n computed,\r\n signal\r\n} from '@angular/core';\r\nimport { XSenderProperty } from './sender.property';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\nimport { TextFieldModule } from '@angular/cdk/text-field';\r\nimport { XButtonComponent } from '@ng-nest/ui/button';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'x-sender',\r\n templateUrl: './sender.component.html',\r\n styleUrls: ['./sender.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XSenderComponent)],\r\n imports: [TextFieldModule, FormsModule, NgTemplateOutlet, XButtonComponent]\r\n})\r\nexport class XSenderComponent extends XSenderProperty {\r\n textarea = viewChild.required<ElementRef<HTMLTextAreaElement>>('textarea');\r\n focused = signal(false);\r\n maxRowsComputed = computed(() => {\r\n const rows = this.maxRows();\r\n return rows === Number.MAX_SAFE_INTEGER ? undefined : rows;\r\n });\r\n placeholderComputed = computed(() => {\r\n const placeholder = this.placeholder() as string;\r\n return placeholder;\r\n });\r\n\r\n onKeydown(event: KeyboardEvent) {\r\n if (this.submitType() === 'enter') {\r\n if (event.key === 'Enter' && !event.shiftKey) {\r\n event.preventDefault();\r\n this.onEnterPressed(event);\r\n }\r\n } else if (this.submitType() === 'shiftEnter') {\r\n if (event.key === 'Enter' && event.shiftKey) {\r\n event.preventDefault();\r\n this.onEnterPressed(event);\r\n }\r\n }\r\n }\r\n\r\n onEnterPressed(event: Event) {\r\n this.submit.emit(event);\r\n }\r\n\r\n inputFocus(type: 'focus' | 'select' | 'before' | 'after' = 'after') {\r\n this.textarea().nativeElement.focus();\r\n if (!this.value()) return;\r\n if (type === 'after') {\r\n this.textarea().nativeElement.setSelectionRange(this.value().length, this.value().length);\r\n } else if (type === 'before') {\r\n this.textarea().nativeElement.setSelectionRange(0, 0);\r\n } else if (type === 'select') {\r\n this.textarea().nativeElement.setSelectionRange(0, this.value().length);\r\n }\r\n }\r\n\r\n change(value: any) {\r\n if (this.onChange) this.onChange(value);\r\n }\r\n}\r\n","<div\r\n class=\"x-sender\"\r\n [class.x-disabled]=\"disabledComputed()\"\r\n [class.x-required]=\"requiredIsEmpty()\"\r\n [class.x-invalid]=\"invalid()\"\r\n [class.x-focused]=\"focused()\"\r\n>\r\n <div class=\"x-sender-wrap\">\r\n @if (header()) {\r\n <div class=\"x-sender-header\">\r\n <ng-container *ngTemplateOutlet=\"header()\"></ng-container>\r\n </div>\r\n }\r\n <div class=\"x-sender-content\" (click)=\"inputFocus('after')\">\r\n @if (prefix()) {\r\n <div class=\"x-sender-prefix\">\r\n <ng-container *ngTemplateOutlet=\"prefix()\"></ng-container>\r\n </div>\r\n }\r\n <textarea\r\n #textarea\r\n [disabled]=\"disabledComputed()\"\r\n [required]=\"requiredComputed()\"\r\n [readOnly]=\"readonly()\"\r\n [placeholder]=\"placeholderComputed()\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"change($event)\"\r\n cdkTextareaAutosize\r\n [cdkAutosizeMinRows]=\"minRows()\"\r\n [cdkAutosizeMaxRows]=\"maxRowsComputed()\"\r\n (keydown)=\"onKeydown($event)\"\r\n (focus)=\"focused.set(true)\"\r\n (blur)=\"focused.set(false)\"\r\n (input)=\"formControlValidator()\"\r\n (click)=\"$event.stopPropagation()\"\r\n class=\"x-sender-textarea\"\r\n ></textarea>\r\n\r\n @if (suffix()) {\r\n <div class=\"x-sender-suffix\">\r\n <ng-container *ngTemplateOutlet=\"suffix()\"></ng-container>\r\n </div>\r\n } @else {\r\n @if (!footer()) {\r\n <div class=\"x-sender-suffix\">\r\n <x-button\r\n type=\"primary\"\r\n circle\r\n flat\r\n icon=\"fto-send\"\r\n [loading]=\"loading()\"\r\n [disabled]=\"disabledComputed()\"\r\n (click)=\"onEnterPressed($event)\"\r\n ></x-button>\r\n </div>\r\n }\r\n }\r\n </div>\r\n @if (footer()) {\r\n <div class=\"x-sender-footer\">\r\n <ng-container *ngTemplateOutlet=\"footer()\"></ng-container>\r\n </div>\r\n }\r\n @if (requiredIsEmpty() || invalid()) {\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n }\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XSenderComponent } from './sender.component';\r\n\r\n@NgModule({\r\n exports: [XSenderComponent],\r\n imports: [XSenderComponent]\r\n})\r\nexport class XSenderModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -48,10 +48,10 @@ class XSkeletonProperty extends XPropertyFunction(X_SKELETON_CONFIG_NAME) {
48
48
  */
49
49
  this.border = input(false, ...(ngDevMode ? [{ debugName: "border", transform: XToBoolean }] : [{ transform: XToBoolean }]));
50
50
  }
51
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XSkeletonProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
52
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.4", type: XSkeletonProperty, isStandalone: true, selector: "x-skeleton-property", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, border: { classPropertyName: "border", publicName: "border", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
51
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: XSkeletonProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
52
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.0", type: XSkeletonProperty, isStandalone: true, selector: "x-skeleton-property", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, border: { classPropertyName: "border", publicName: "border", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
53
53
  }
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XSkeletonProperty, decorators: [{
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: XSkeletonProperty, decorators: [{
55
55
  type: Component,
56
56
  args: [{ selector: `${XSkeletonPrefix}-property`, template: '' }]
57
57
  }] });
@@ -67,20 +67,20 @@ class XSkeletonComponent extends XSkeletonProperty {
67
67
  return NaN;
68
68
  return XToCssPx(value, this.fontSize());
69
69
  }
70
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XSkeletonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
71
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.4", type: XSkeletonComponent, isStandalone: true, selector: "x-skeleton", usesInheritance: true, ngImport: i0, template: "@if (loading()) {\r\n <div #skeleton class=\"x-skeleton\" [class.x-skeleton-active]=\"active()\" [class.x-skeleton-border]=\"border()\">\r\n <ng-container *ngTemplateOutlet=\"rowsTpl; context: { rows: data() }\"></ng-container>\r\n </div>\r\n} @else {\r\n <ng-content></ng-content>\r\n}\r\n\r\n<ng-template #rowsTpl let-rows=\"rows\">\r\n @for (row of rows; track row) {\r\n <x-row [space]=\"row.space\" [justify]=\"row.flex ? 'start' : undefined\" [ngStyle]=\"row.style\">\r\n @for (col of row.cols; track col) {\r\n <x-col\r\n [span]=\"col.span\"\r\n [inherit]=\"col.width || col.height ? true : false\"\r\n [ngStyle]=\"col.style\"\r\n [style.padding-top.px]=\"border() && toCssPx(row.space) / 2\"\r\n [style.padding-bottom.px]=\"border() && toCssPx(row.space) / 2\"\r\n [ngClass]=\"{\r\n title: col.type === 'title',\r\n img: col.type === 'img',\r\n avatar: col.type === 'avatar',\r\n transparent: col.type === 'transparent',\r\n 'has-child': col.rows\r\n }\"\r\n >\r\n <div [style.width]=\"col.width\" [style.height]=\"col.height\">\r\n @if (col.rows) {\r\n <ng-container *ngTemplateOutlet=\"rowsTpl; context: { rows: col.rows }\"></ng-container>\r\n }\r\n </div>\r\n </x-col>\r\n }\r\n </x-row>\r\n }\r\n</ng-template>\r\n", styles: ["@keyframes skeleton-active{0%{width:0;opacity:.1}20%{width:0;opacity:.5}to{width:100%;opacity:0}}.x-skeleton{margin:0;padding:0}.x-skeleton x-row,.x-skeleton x-col{min-height:1rem}.x-skeleton x-row{background-color:var(--x-background)}.x-skeleton x-row:not(:first-child){margin-top:1rem}.x-skeleton x-col>div{width:100%;height:1rem;background-color:var(--x-info-800);border-radius:var(--x-border-radius);position:relative}.x-skeleton x-col.has-child>div{background-color:transparent}.x-skeleton x-col.has-size{width:inherit}.x-skeleton x-col.avatar>div{border-radius:50%}.x-skeleton x-col.title>div,.x-skeleton x-col.avatar>div,.x-skeleton x-col.img>div{background-color:var(--x-info-700)}.x-skeleton x-col.transparent{padding:0!important}.x-skeleton x-col.transparent>div{background-color:transparent}.x-skeleton-border x-row{margin:0!important}.x-skeleton-border x-row x-col{border-left:var(--x-border-width) var(--x-border-style) var(--x-border);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-skeleton-border x-row x-col:last-child{border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-skeleton-border x-row:first-child x-col{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-skeleton-active x-col:not(.has-child):not(.transparent)>div:before{position:absolute;inset:0;background:var(--x-background-100);border-radius:var(--x-border-radius);opacity:0;animation:skeleton-active 1.4s cubic-bezier(.23,1,.32,1) infinite;content:\"\"}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: XRowComponent, selector: "x-row" }, { kind: "component", type: XColComponent, selector: "x-col" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
70
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: XSkeletonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
71
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.0", type: XSkeletonComponent, isStandalone: true, selector: "x-skeleton", usesInheritance: true, ngImport: i0, template: "@if (loading()) {\r\n <div #skeleton class=\"x-skeleton\" [class.x-skeleton-active]=\"active()\" [class.x-skeleton-border]=\"border()\">\r\n <ng-container *ngTemplateOutlet=\"rowsTpl; context: { rows: data() }\"></ng-container>\r\n </div>\r\n} @else {\r\n <ng-content></ng-content>\r\n}\r\n\r\n<ng-template #rowsTpl let-rows=\"rows\">\r\n @for (row of rows; track row) {\r\n <x-row [space]=\"row.space\" [justify]=\"row.flex ? 'start' : undefined\" [ngStyle]=\"row.style\">\r\n @for (col of row.cols; track col) {\r\n <x-col\r\n [span]=\"col.span\"\r\n [inherit]=\"col.width || col.height ? true : false\"\r\n [ngStyle]=\"col.style\"\r\n [style.padding-top.px]=\"border() && toCssPx(row.space) / 2\"\r\n [style.padding-bottom.px]=\"border() && toCssPx(row.space) / 2\"\r\n [ngClass]=\"{\r\n title: col.type === 'title',\r\n img: col.type === 'img',\r\n avatar: col.type === 'avatar',\r\n transparent: col.type === 'transparent',\r\n 'has-child': col.rows\r\n }\"\r\n >\r\n <div [style.width]=\"col.width\" [style.height]=\"col.height\">\r\n @if (col.rows) {\r\n <ng-container *ngTemplateOutlet=\"rowsTpl; context: { rows: col.rows }\"></ng-container>\r\n }\r\n </div>\r\n </x-col>\r\n }\r\n </x-row>\r\n }\r\n</ng-template>\r\n", styles: ["@keyframes skeleton-active{0%{width:0;opacity:.1}20%{width:0;opacity:.5}to{width:100%;opacity:0}}.x-skeleton{margin:0;padding:0}.x-skeleton x-row,.x-skeleton x-col{min-height:1rem}.x-skeleton x-row{background-color:var(--x-background)}.x-skeleton x-row:not(:first-child){margin-top:1rem}.x-skeleton x-col>div{width:100%;height:1rem;background-color:var(--x-info-800);border-radius:var(--x-border-radius);position:relative}.x-skeleton x-col.has-child>div{background-color:transparent}.x-skeleton x-col.has-size{width:inherit}.x-skeleton x-col.avatar>div{border-radius:50%}.x-skeleton x-col.title>div,.x-skeleton x-col.avatar>div,.x-skeleton x-col.img>div{background-color:var(--x-info-700)}.x-skeleton x-col.transparent{padding:0!important}.x-skeleton x-col.transparent>div{background-color:transparent}.x-skeleton-border x-row{margin:0!important}.x-skeleton-border x-row x-col{border-left:var(--x-border-width) var(--x-border-style) var(--x-border);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-skeleton-border x-row x-col:last-child{border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-skeleton-border x-row:first-child x-col{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-skeleton-active x-col:not(.has-child):not(.transparent)>div:before{position:absolute;inset:0;background:var(--x-background-100);border-radius:var(--x-border-radius);opacity:0;animation:skeleton-active 1.4s cubic-bezier(.23,1,.32,1) infinite;content:\"\"}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: XRowComponent, selector: "x-row" }, { kind: "component", type: XColComponent, selector: "x-col" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
72
72
  }
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XSkeletonComponent, decorators: [{
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: XSkeletonComponent, decorators: [{
74
74
  type: Component,
75
75
  args: [{ selector: `${XSkeletonPrefix}`, imports: [NgClass, NgTemplateOutlet, NgStyle, XRowComponent, XColComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (loading()) {\r\n <div #skeleton class=\"x-skeleton\" [class.x-skeleton-active]=\"active()\" [class.x-skeleton-border]=\"border()\">\r\n <ng-container *ngTemplateOutlet=\"rowsTpl; context: { rows: data() }\"></ng-container>\r\n </div>\r\n} @else {\r\n <ng-content></ng-content>\r\n}\r\n\r\n<ng-template #rowsTpl let-rows=\"rows\">\r\n @for (row of rows; track row) {\r\n <x-row [space]=\"row.space\" [justify]=\"row.flex ? 'start' : undefined\" [ngStyle]=\"row.style\">\r\n @for (col of row.cols; track col) {\r\n <x-col\r\n [span]=\"col.span\"\r\n [inherit]=\"col.width || col.height ? true : false\"\r\n [ngStyle]=\"col.style\"\r\n [style.padding-top.px]=\"border() && toCssPx(row.space) / 2\"\r\n [style.padding-bottom.px]=\"border() && toCssPx(row.space) / 2\"\r\n [ngClass]=\"{\r\n title: col.type === 'title',\r\n img: col.type === 'img',\r\n avatar: col.type === 'avatar',\r\n transparent: col.type === 'transparent',\r\n 'has-child': col.rows\r\n }\"\r\n >\r\n <div [style.width]=\"col.width\" [style.height]=\"col.height\">\r\n @if (col.rows) {\r\n <ng-container *ngTemplateOutlet=\"rowsTpl; context: { rows: col.rows }\"></ng-container>\r\n }\r\n </div>\r\n </x-col>\r\n }\r\n </x-row>\r\n }\r\n</ng-template>\r\n", styles: ["@keyframes skeleton-active{0%{width:0;opacity:.1}20%{width:0;opacity:.5}to{width:100%;opacity:0}}.x-skeleton{margin:0;padding:0}.x-skeleton x-row,.x-skeleton x-col{min-height:1rem}.x-skeleton x-row{background-color:var(--x-background)}.x-skeleton x-row:not(:first-child){margin-top:1rem}.x-skeleton x-col>div{width:100%;height:1rem;background-color:var(--x-info-800);border-radius:var(--x-border-radius);position:relative}.x-skeleton x-col.has-child>div{background-color:transparent}.x-skeleton x-col.has-size{width:inherit}.x-skeleton x-col.avatar>div{border-radius:50%}.x-skeleton x-col.title>div,.x-skeleton x-col.avatar>div,.x-skeleton x-col.img>div{background-color:var(--x-info-700)}.x-skeleton x-col.transparent{padding:0!important}.x-skeleton x-col.transparent>div{background-color:transparent}.x-skeleton-border x-row{margin:0!important}.x-skeleton-border x-row x-col{border-left:var(--x-border-width) var(--x-border-style) var(--x-border);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-skeleton-border x-row x-col:last-child{border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-skeleton-border x-row:first-child x-col{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-skeleton-active x-col:not(.has-child):not(.transparent)>div:before{position:absolute;inset:0;background:var(--x-background-100);border-radius:var(--x-border-radius);opacity:0;animation:skeleton-active 1.4s cubic-bezier(.23,1,.32,1) infinite;content:\"\"}\n"] }]
76
76
  }] });
77
77
 
78
78
  class XSkeletonModule {
79
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XSkeletonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
80
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.4", ngImport: i0, type: XSkeletonModule, imports: [XSkeletonComponent], exports: [XSkeletonComponent] }); }
81
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XSkeletonModule, imports: [XSkeletonComponent] }); }
79
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: XSkeletonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
80
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.0", ngImport: i0, type: XSkeletonModule, imports: [XSkeletonComponent], exports: [XSkeletonComponent] }); }
81
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: XSkeletonModule, imports: [XSkeletonComponent] }); }
82
82
  }
83
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XSkeletonModule, decorators: [{
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: XSkeletonModule, decorators: [{
84
84
  type: NgModule,
85
85
  args: [{
86
86
  exports: [XSkeletonComponent],
@@ -135,10 +135,10 @@ class XSliderSelectProperty extends XFormControlFunction(X_SLIDER_SELECT_CONFIG_
135
135
  */
136
136
  this.dragEndEmit = output();
137
137
  }
138
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XSliderSelectProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
139
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.4", type: XSliderSelectProperty, isStandalone: true, selector: "x-slider-select-property", inputs: { min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, precision: { classPropertyName: "precision", publicName: "precision", isSignal: true, isRequired: false, transformFunction: null }, showTooltip: { classPropertyName: "showTooltip", publicName: "showTooltip", isSignal: true, isRequired: false, transformFunction: null }, reverse: { classPropertyName: "reverse", publicName: "reverse", isSignal: true, isRequired: false, transformFunction: null }, vertical: { classPropertyName: "vertical", publicName: "vertical", isSignal: true, isRequired: false, transformFunction: null }, range: { classPropertyName: "range", publicName: "range", isSignal: true, isRequired: false, transformFunction: null }, customButton: { classPropertyName: "customButton", publicName: "customButton", isSignal: true, isRequired: false, transformFunction: null }, marks: { classPropertyName: "marks", publicName: "marks", isSignal: true, isRequired: false, transformFunction: null }, tooltipCustom: { classPropertyName: "tooltipCustom", publicName: "tooltipCustom", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, labelWidth: { classPropertyName: "labelWidth", publicName: "labelWidth", isSignal: true, isRequired: false, transformFunction: null }, labelAlign: { classPropertyName: "labelAlign", publicName: "labelAlign", isSignal: true, isRequired: false, transformFunction: null }, justify: { classPropertyName: "justify", publicName: "justify", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dragStartEmit: "dragStartEmit", dragMoveEmit: "dragMoveEmit", dragEndEmit: "dragEndEmit" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
138
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: XSliderSelectProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
139
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.0", type: XSliderSelectProperty, isStandalone: true, selector: "x-slider-select-property", inputs: { min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, precision: { classPropertyName: "precision", publicName: "precision", isSignal: true, isRequired: false, transformFunction: null }, showTooltip: { classPropertyName: "showTooltip", publicName: "showTooltip", isSignal: true, isRequired: false, transformFunction: null }, reverse: { classPropertyName: "reverse", publicName: "reverse", isSignal: true, isRequired: false, transformFunction: null }, vertical: { classPropertyName: "vertical", publicName: "vertical", isSignal: true, isRequired: false, transformFunction: null }, range: { classPropertyName: "range", publicName: "range", isSignal: true, isRequired: false, transformFunction: null }, customButton: { classPropertyName: "customButton", publicName: "customButton", isSignal: true, isRequired: false, transformFunction: null }, marks: { classPropertyName: "marks", publicName: "marks", isSignal: true, isRequired: false, transformFunction: null }, tooltipCustom: { classPropertyName: "tooltipCustom", publicName: "tooltipCustom", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, labelWidth: { classPropertyName: "labelWidth", publicName: "labelWidth", isSignal: true, isRequired: false, transformFunction: null }, labelAlign: { classPropertyName: "labelAlign", publicName: "labelAlign", isSignal: true, isRequired: false, transformFunction: null }, justify: { classPropertyName: "justify", publicName: "justify", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dragStartEmit: "dragStartEmit", dragMoveEmit: "dragMoveEmit", dragEndEmit: "dragEndEmit" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
140
140
  }
141
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XSliderSelectProperty, decorators: [{
141
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: XSliderSelectProperty, decorators: [{
142
142
  type: Component,
143
143
  args: [{ selector: `${XSliderSelectPrefix}-property`, template: '' }]
144
144
  }] });
@@ -476,10 +476,10 @@ class XSliderSelectComponent extends XSliderSelectProperty {
476
476
  }
477
477
  }
478
478
  }
479
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XSliderSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
480
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.4", type: XSliderSelectComponent, isStandalone: true, selector: "x-slider-select", host: { properties: { "class.x-slider-select-vertical": "this.getVertical" } }, providers: [XValueAccessor(XSliderSelectComponent)], viewQueries: [{ propertyName: "sliderSelect", first: true, predicate: ["sliderSelect"], descendants: true, isSignal: true }, { propertyName: "dragStartRef", first: true, predicate: ["dragStartRef"], descendants: true, isSignal: true }, { propertyName: "dragEndRef", first: true, predicate: ["dragEndRef"], descendants: true, isSignal: true }, { propertyName: "railRef", first: true, predicate: ["railRef"], descendants: true, isSignal: true }, { propertyName: "processRef", first: true, predicate: ["processRef"], descendants: true, isSignal: true }, { propertyName: "tooltips", predicate: XTooltipDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\r\n #sliderSelect\r\n class=\"x-slider-select\"\r\n [class.x-flex]=\"justify() || align() || direction()\"\r\n [class.x-disabled]=\"disabledComputed()\"\r\n [class.x-required]=\"requiredIsEmpty()\"\r\n [class.x-invalid]=\"invalid()\"\r\n [class.x-slider-select-reverse]=\"reverse()\"\r\n [class.x-slider-select-range]=\"range()\"\r\n [ngClass]=\"classMap()\"\r\n>\r\n @if (label()) {\r\n <label\r\n [class.x-slider-select-label-required]=\"requiredComputed()\"\r\n [style.width]=\"labelWidth()\"\r\n [ngClass]=\"labelMapSignal()\"\r\n *xOutlet=\"label()\"\r\n >\r\n {{ label() }}\r\n </label>\r\n }\r\n <div class=\"x-slider-select-inner\" #innerRef>\r\n <div class=\"x-slider-select-rail\" #railRef>\r\n <div></div>\r\n </div>\r\n <div class=\"x-slider-select-drags\">\r\n <div class=\"x-slider-select-track\" #trackRef>\r\n <div\r\n #processRef\r\n class=\"x-slider-select-process\"\r\n cdkDrag\r\n [cdkDragLockAxis]=\"vertical() ? 'y' : 'x'\"\r\n [cdkDragDisabled]=\"disabledComputed() || !range()\"\r\n [cdkDragBoundary]=\"trackRef\"\r\n (cdkDragStarted)=\"started($event, 'both')\"\r\n (cdkDragEnded)=\"ended($event, 'both')\"\r\n (cdkDragMoved)=\"moved($event, 'both')\"\r\n ></div>\r\n </div>\r\n <div class=\"x-slider-select-marks\">\r\n @for (mark of markList(); track mark.label) {\r\n <div class=\"x-slider-select-mark\" [ngStyle]=\"mark.style\">\r\n <span class=\"x-slider-select-mark-label\">{{ mark.label }}</span>\r\n </div>\r\n }\r\n </div>\r\n <div\r\n #dragStartRef\r\n class=\"x-slider-select-drag\"\r\n cdkDrag\r\n [cdkDragLockAxis]=\"vertical() ? 'y' : 'x'\"\r\n [cdkDragDisabled]=\"disabledComputed()\"\r\n [cdkDragBoundary]=\"innerRef\"\r\n (cdkDragStarted)=\"started($event, 'start')\"\r\n (cdkDragEnded)=\"ended($event, 'start')\"\r\n (cdkDragMoved)=\"moved($event, 'start')\"\r\n >\r\n <div\r\n #tooltipStart\r\n x-tooltip\r\n tabindex=\"0\"\r\n class=\"x-slider-select-button\"\r\n [class.x-slider-select-button-actived]=\"startVisible()\"\r\n [class.x-slider-select-custom-button]=\"customButton()\"\r\n placement=\"top\"\r\n [disabled]=\"!showTooltip()\"\r\n [content]=\"tooltipStartTpl\"\r\n [(visible)]=\"startVisible\"\r\n [manual]=\"startManual()\"\r\n >\r\n <ng-container *xOutlet=\"customButton()\">{{ customButton() }}</ng-container>\r\n </div>\r\n <ng-template #tooltipStartTpl>\r\n <ng-container *xOutlet=\"tooltipCustom(); context: { $value: startDisplayValue() }\">{{\r\n startDisplayValue()\r\n }}</ng-container>\r\n </ng-template>\r\n </div>\r\n <div\r\n [hidden]=\"!range()\"\r\n #dragEndRef\r\n class=\"x-slider-select-drag\"\r\n cdkDrag\r\n [cdkDragLockAxis]=\"vertical() ? 'y' : 'x'\"\r\n [cdkDragDisabled]=\"disabledComputed()\"\r\n [cdkDragBoundary]=\"innerRef\"\r\n (cdkDragStarted)=\"started($event, 'end')\"\r\n (cdkDragEnded)=\"ended($event, 'end')\"\r\n (cdkDragMoved)=\"moved($event, 'end')\"\r\n >\r\n <div\r\n #tooltipEnd\r\n x-tooltip\r\n tabindex=\"0\"\r\n class=\"x-slider-select-button\"\r\n [class.x-slider-select-button-actived]=\"endVisible()\"\r\n [class.x-slider-select-custom-button]=\"customButton()\"\r\n placement=\"top\"\r\n [disabled]=\"!showTooltip()\"\r\n [content]=\"tooltipEndTpl\"\r\n [(visible)]=\"endVisible\"\r\n [manual]=\"endManual()\"\r\n >\r\n <ng-container *xOutlet=\"customButton()\">{{ customButton() }}</ng-container>\r\n </div>\r\n <ng-template #tooltipEndTpl>\r\n <ng-container *xOutlet=\"tooltipCustom(); context: { $value: endDisplayValue() }\">{{\r\n endDisplayValue()\r\n }}</ng-container>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-slider-select{display:inline-block;width:12rem}.x-slider-select{margin:0;padding:0}.x-slider-select{width:100%}.x-slider-select.x-flex{display:flex}.x-slider-select.x-justify-start{justify-content:flex-start}.x-slider-select.x-justify-center{justify-content:center}.x-slider-select.x-justify-end{justify-content:flex-end}.x-slider-select.x-justify-space-between{justify-content:space-between}.x-slider-select.x-justify-space-around{justify-content:space-around}.x-slider-select.x-align-start{align-items:flex-start}.x-slider-select.x-align-center{align-items:center}.x-slider-select.x-align-end{align-items:flex-end}.x-slider-select.x-direction-column{flex-direction:column}.x-slider-select.x-direction-column-reverse{flex-direction:column-reverse}.x-slider-select.x-direction-row{flex-direction:row}.x-slider-select.x-direction-row-reverse{flex-direction:row-reverse}.x-slider-select>label{display:inline-block;white-space:nowrap;height:var(--x-height-medium);line-height:var(--x-height-medium);color:var(--x-text-300);font-weight:500}.x-slider-select>label.x-text-align-start{text-align:start}.x-slider-select>label.x-text-align-center{text-align:center}.x-slider-select>label.x-text-align-end{text-align:end}.x-slider-select-label-required:before{display:inline-block;margin-right:.25rem;color:var(--x-danger);line-height:1;font-size:var(--x-font-size-small);content:\"*\"}.x-slider-select-inner{flex:1;position:relative;display:flex;align-items:center;padding-right:1rem}.x-slider-select-rail{position:absolute;margin-left:.5rem;width:calc(100% - 1rem);background-color:var(--x-border-100);height:calc(var(--x-height-medium) / 4);border-radius:var(--x-border-radius)}.x-slider-select-rail>div{width:100%;height:100%;border-radius:var(--x-border-radius)}.x-slider-select-track{margin-left:.5rem;width:100%;border-radius:var(--x-border-radius);position:absolute}.x-slider-select-process{height:calc(var(--x-height-medium) / 4);background-color:var(--x-primary);border-radius:var(--x-border-radius);width:0%;position:relative}.x-slider-select-drags{position:relative;width:100%;height:var(--x-height-medium);display:flex;align-items:center}.x-slider-select-drag{position:absolute;cursor:pointer}.x-slider-select-marks{position:absolute;margin-left:.5rem;width:100%;height:var(--x-height-medium);display:flex;align-items:center}.x-slider-select-mark{position:absolute;transform:translate(-50%);border-radius:1rem;display:flex;align-items:center;justify-content:center}.x-slider-select-mark:before{content:\" \";position:absolute;width:.75rem;height:.75rem;border:calc(var(--x-border-width) * 2) solid var(--x-primary);background-color:var(--x-background-a100);border-radius:1rem}.x-slider-select-mark-label{transform:translateY(1rem)}.x-slider-select-button:not(.x-slider-select-custom-button){border-radius:1rem;border:calc(var(--x-border-width) * 2) solid var(--x-primary);background-color:var(--x-background-a100)}.x-slider-select-button{width:1rem;height:1rem;display:flex;align-items:center;justify-content:center;transition:var(--x-animation-duration-base)}.x-slider-select-button:hover,.x-slider-select-button-actived{transform:scale(1.2)}.x-slider-select-bar{width:100%;height:100%}.x-slider-select.x-invalid>label,.x-slider-select.x-required>label{color:var(--x-danger)}.x-slider-select.x-invalid>.x-slider-select-row>x-icon,.x-slider-select.x-required>.x-slider-select-row>x-icon{color:var(--x-danger)}.x-slider-select.x-invalid>.x-slider-select-row:before,.x-slider-select.x-required>.x-slider-select-row:before{content:\" \";z-index:2;position:absolute;height:var(--x-height-medium);line-height:var(--x-height-medium);border-top-left-radius:var(--x-border-radius);border-bottom-left-radius:var(--x-border-radius);width:.125rem;background-color:var(--x-danger)}.x-slider-select.x-disabled .x-slider-select-rail{background-color:var(--x-border-300)}.x-slider-select.x-disabled .x-slider-select-process{background-color:var(--x-primary-400)}.x-slider-select.x-disabled .x-slider-select-drag{cursor:not-allowed}.x-slider-select.x-disabled .x-slider-select-button:not(.x-slider-select-custom-button){border-color:var(--x-primary-400)}.x-slider-select.x-flex.x-direction-row>label{padding:0 .5rem 0 0}.x-slider-select.x-flex.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-slider-select.x-flex.x-direction-column,.x-slider-select.x-flex.x-direction-column-reverse{align-items:inherit}.x-slider-select-max-length{position:absolute;font-size:var(--x-font-size-small);color:var(--x-text-500);padding:0 var(--x-padding-medium);right:0}.x-slider-select:hover:not(.x-disabled) .x-slider-select-process{background-color:var(--x-primary-100)}.x-slider-select:hover:not(.x-disabled) .x-slider-select-button{border-color:var(--x-primary-100)}.x-slider-select-reverse .x-slider-select-inner{padding-right:0;padding-left:1rem}.x-slider-select-reverse .x-slider-select-rail{margin-left:-.5rem}.x-slider-select-reverse .x-slider-select-marks{margin-right:.5rem}.x-slider-select-reverse .x-slider-select-mark{transform:translate(50%)}.x-slider-select-reverse .x-slider-select-track{display:flex;justify-content:flex-end;margin-right:.5rem}.x-slider-select-reverse .x-slider-select-drags{justify-content:flex-end;right:auto}.x-slider-select-vertical{width:initial;height:12rem}.x-slider-select-vertical .x-slider-select{height:100%}.x-slider-select-vertical .x-slider-select-inner{padding-right:initial;padding-top:1rem;align-items:initial;justify-content:center;height:100%}.x-slider-select-vertical .x-slider-select-rail{margin-left:initial;margin-top:-.5rem;height:calc(100% - 1rem);width:calc(var(--x-height-medium) / 4)}.x-slider-select-vertical .x-slider-select-track{display:flex;align-items:flex-end;margin-left:initial;margin-bottom:.5rem;width:calc(var(--x-height-medium) / 4);height:100%}.x-slider-select-vertical .x-slider-select-marks{display:flex;align-items:flex-end;justify-content:center;margin-left:initial;margin-bottom:.5rem;width:calc(var(--x-height-medium) / 4);height:100%}.x-slider-select-vertical .x-slider-select-mark{transform:translate(0) translateY(50%)}.x-slider-select-vertical .x-slider-select-mark-label{transform:translate(50%) translateY(0);margin-left:1rem}.x-slider-select-vertical .x-slider-select-process{height:0%;width:calc(var(--x-height-medium) / 4)}.x-slider-select-vertical .x-slider-select-drags{height:100%;width:var(--x-height-medium);align-items:flex-end;justify-content:center;right:auto}.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-inner{padding-left:initial;padding-bottom:1rem;padding-top:initial}.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-rail{margin-top:.5rem}.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-track,.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-marks{align-items:flex-start;margin-bottom:-.5rem;margin-right:initial}.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-mark{transform:translate(0) translateY(-50%)}.x-slider-select-range .x-slider-select-process{cursor:pointer}.x-slider-select:not(.x-slider-select-reverse) .x-slider-select-drag{left:auto}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i1.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: XTooltipDirective, selector: "[x-tooltip], x-tooltip" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
479
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: XSliderSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
480
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.0", type: XSliderSelectComponent, isStandalone: true, selector: "x-slider-select", host: { properties: { "class.x-slider-select-vertical": "this.getVertical" } }, providers: [XValueAccessor(XSliderSelectComponent)], viewQueries: [{ propertyName: "sliderSelect", first: true, predicate: ["sliderSelect"], descendants: true, isSignal: true }, { propertyName: "dragStartRef", first: true, predicate: ["dragStartRef"], descendants: true, isSignal: true }, { propertyName: "dragEndRef", first: true, predicate: ["dragEndRef"], descendants: true, isSignal: true }, { propertyName: "railRef", first: true, predicate: ["railRef"], descendants: true, isSignal: true }, { propertyName: "processRef", first: true, predicate: ["processRef"], descendants: true, isSignal: true }, { propertyName: "tooltips", predicate: XTooltipDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\r\n #sliderSelect\r\n class=\"x-slider-select\"\r\n [class.x-flex]=\"justify() || align() || direction()\"\r\n [class.x-disabled]=\"disabledComputed()\"\r\n [class.x-required]=\"requiredIsEmpty()\"\r\n [class.x-invalid]=\"invalid()\"\r\n [class.x-slider-select-reverse]=\"reverse()\"\r\n [class.x-slider-select-range]=\"range()\"\r\n [ngClass]=\"classMap()\"\r\n>\r\n @if (label()) {\r\n <label\r\n [class.x-slider-select-label-required]=\"requiredComputed()\"\r\n [style.width]=\"labelWidth()\"\r\n [ngClass]=\"labelMapSignal()\"\r\n *xOutlet=\"label()\"\r\n >\r\n {{ label() }}\r\n </label>\r\n }\r\n <div class=\"x-slider-select-inner\" #innerRef>\r\n <div class=\"x-slider-select-rail\" #railRef>\r\n <div></div>\r\n </div>\r\n <div class=\"x-slider-select-drags\">\r\n <div class=\"x-slider-select-track\" #trackRef>\r\n <div\r\n #processRef\r\n class=\"x-slider-select-process\"\r\n cdkDrag\r\n [cdkDragLockAxis]=\"vertical() ? 'y' : 'x'\"\r\n [cdkDragDisabled]=\"disabledComputed() || !range()\"\r\n [cdkDragBoundary]=\"trackRef\"\r\n (cdkDragStarted)=\"started($event, 'both')\"\r\n (cdkDragEnded)=\"ended($event, 'both')\"\r\n (cdkDragMoved)=\"moved($event, 'both')\"\r\n ></div>\r\n </div>\r\n <div class=\"x-slider-select-marks\">\r\n @for (mark of markList(); track mark.label) {\r\n <div class=\"x-slider-select-mark\" [ngStyle]=\"mark.style\">\r\n <span class=\"x-slider-select-mark-label\">{{ mark.label }}</span>\r\n </div>\r\n }\r\n </div>\r\n <div\r\n #dragStartRef\r\n class=\"x-slider-select-drag\"\r\n cdkDrag\r\n [cdkDragLockAxis]=\"vertical() ? 'y' : 'x'\"\r\n [cdkDragDisabled]=\"disabledComputed()\"\r\n [cdkDragBoundary]=\"innerRef\"\r\n (cdkDragStarted)=\"started($event, 'start')\"\r\n (cdkDragEnded)=\"ended($event, 'start')\"\r\n (cdkDragMoved)=\"moved($event, 'start')\"\r\n >\r\n <div\r\n #tooltipStart\r\n x-tooltip\r\n tabindex=\"0\"\r\n class=\"x-slider-select-button\"\r\n [class.x-slider-select-button-actived]=\"startVisible()\"\r\n [class.x-slider-select-custom-button]=\"customButton()\"\r\n placement=\"top\"\r\n [disabled]=\"!showTooltip()\"\r\n [content]=\"tooltipStartTpl\"\r\n [(visible)]=\"startVisible\"\r\n [manual]=\"startManual()\"\r\n >\r\n <ng-container *xOutlet=\"customButton()\">{{ customButton() }}</ng-container>\r\n </div>\r\n <ng-template #tooltipStartTpl>\r\n <ng-container *xOutlet=\"tooltipCustom(); context: { $value: startDisplayValue() }\">{{\r\n startDisplayValue()\r\n }}</ng-container>\r\n </ng-template>\r\n </div>\r\n <div\r\n [hidden]=\"!range()\"\r\n #dragEndRef\r\n class=\"x-slider-select-drag\"\r\n cdkDrag\r\n [cdkDragLockAxis]=\"vertical() ? 'y' : 'x'\"\r\n [cdkDragDisabled]=\"disabledComputed()\"\r\n [cdkDragBoundary]=\"innerRef\"\r\n (cdkDragStarted)=\"started($event, 'end')\"\r\n (cdkDragEnded)=\"ended($event, 'end')\"\r\n (cdkDragMoved)=\"moved($event, 'end')\"\r\n >\r\n <div\r\n #tooltipEnd\r\n x-tooltip\r\n tabindex=\"0\"\r\n class=\"x-slider-select-button\"\r\n [class.x-slider-select-button-actived]=\"endVisible()\"\r\n [class.x-slider-select-custom-button]=\"customButton()\"\r\n placement=\"top\"\r\n [disabled]=\"!showTooltip()\"\r\n [content]=\"tooltipEndTpl\"\r\n [(visible)]=\"endVisible\"\r\n [manual]=\"endManual()\"\r\n >\r\n <ng-container *xOutlet=\"customButton()\">{{ customButton() }}</ng-container>\r\n </div>\r\n <ng-template #tooltipEndTpl>\r\n <ng-container *xOutlet=\"tooltipCustom(); context: { $value: endDisplayValue() }\">{{\r\n endDisplayValue()\r\n }}</ng-container>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-slider-select{display:inline-block;width:12rem}.x-slider-select{margin:0;padding:0}.x-slider-select{width:100%}.x-slider-select.x-flex{display:flex}.x-slider-select.x-justify-start{justify-content:flex-start}.x-slider-select.x-justify-center{justify-content:center}.x-slider-select.x-justify-end{justify-content:flex-end}.x-slider-select.x-justify-space-between{justify-content:space-between}.x-slider-select.x-justify-space-around{justify-content:space-around}.x-slider-select.x-align-start{align-items:flex-start}.x-slider-select.x-align-center{align-items:center}.x-slider-select.x-align-end{align-items:flex-end}.x-slider-select.x-direction-column{flex-direction:column}.x-slider-select.x-direction-column-reverse{flex-direction:column-reverse}.x-slider-select.x-direction-row{flex-direction:row}.x-slider-select.x-direction-row-reverse{flex-direction:row-reverse}.x-slider-select>label{display:inline-block;white-space:nowrap;height:var(--x-height-medium);line-height:var(--x-height-medium);color:var(--x-text-300);font-weight:500}.x-slider-select>label.x-text-align-start{text-align:start}.x-slider-select>label.x-text-align-center{text-align:center}.x-slider-select>label.x-text-align-end{text-align:end}.x-slider-select-label-required:before{display:inline-block;margin-right:.25rem;color:var(--x-danger);line-height:1;font-size:var(--x-font-size-small);content:\"*\"}.x-slider-select-inner{flex:1;position:relative;display:flex;align-items:center;padding-right:1rem}.x-slider-select-rail{position:absolute;margin-left:.5rem;width:calc(100% - 1rem);background-color:var(--x-border-100);height:calc(var(--x-height-medium) / 4);border-radius:var(--x-border-radius)}.x-slider-select-rail>div{width:100%;height:100%;border-radius:var(--x-border-radius)}.x-slider-select-track{margin-left:.5rem;width:100%;border-radius:var(--x-border-radius);position:absolute}.x-slider-select-process{height:calc(var(--x-height-medium) / 4);background-color:var(--x-primary);border-radius:var(--x-border-radius);width:0%;position:relative}.x-slider-select-drags{position:relative;width:100%;height:var(--x-height-medium);display:flex;align-items:center}.x-slider-select-drag{position:absolute;cursor:pointer}.x-slider-select-marks{position:absolute;margin-left:.5rem;width:100%;height:var(--x-height-medium);display:flex;align-items:center}.x-slider-select-mark{position:absolute;transform:translate(-50%);border-radius:1rem;display:flex;align-items:center;justify-content:center}.x-slider-select-mark:before{content:\" \";position:absolute;width:.75rem;height:.75rem;border:calc(var(--x-border-width) * 2) solid var(--x-primary);background-color:var(--x-background-a100);border-radius:1rem}.x-slider-select-mark-label{transform:translateY(1rem)}.x-slider-select-button:not(.x-slider-select-custom-button){border-radius:1rem;border:calc(var(--x-border-width) * 2) solid var(--x-primary);background-color:var(--x-background-a100)}.x-slider-select-button{width:1rem;height:1rem;display:flex;align-items:center;justify-content:center;transition:var(--x-animation-duration-base)}.x-slider-select-button:hover,.x-slider-select-button-actived{transform:scale(1.2)}.x-slider-select-bar{width:100%;height:100%}.x-slider-select.x-invalid>label,.x-slider-select.x-required>label{color:var(--x-danger)}.x-slider-select.x-invalid>.x-slider-select-row>x-icon,.x-slider-select.x-required>.x-slider-select-row>x-icon{color:var(--x-danger)}.x-slider-select.x-invalid>.x-slider-select-row:before,.x-slider-select.x-required>.x-slider-select-row:before{content:\" \";z-index:2;position:absolute;height:var(--x-height-medium);line-height:var(--x-height-medium);border-top-left-radius:var(--x-border-radius);border-bottom-left-radius:var(--x-border-radius);width:.125rem;background-color:var(--x-danger)}.x-slider-select.x-disabled .x-slider-select-rail{background-color:var(--x-border-300)}.x-slider-select.x-disabled .x-slider-select-process{background-color:var(--x-primary-400)}.x-slider-select.x-disabled .x-slider-select-drag{cursor:not-allowed}.x-slider-select.x-disabled .x-slider-select-button:not(.x-slider-select-custom-button){border-color:var(--x-primary-400)}.x-slider-select.x-flex.x-direction-row>label{padding:0 .5rem 0 0}.x-slider-select.x-flex.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-slider-select.x-flex.x-direction-column,.x-slider-select.x-flex.x-direction-column-reverse{align-items:inherit}.x-slider-select-max-length{position:absolute;font-size:var(--x-font-size-small);color:var(--x-text-500);padding:0 var(--x-padding-medium);right:0}.x-slider-select:hover:not(.x-disabled) .x-slider-select-process{background-color:var(--x-primary-100)}.x-slider-select:hover:not(.x-disabled) .x-slider-select-button{border-color:var(--x-primary-100)}.x-slider-select-reverse .x-slider-select-inner{padding-right:0;padding-left:1rem}.x-slider-select-reverse .x-slider-select-rail{margin-left:-.5rem}.x-slider-select-reverse .x-slider-select-marks{margin-right:.5rem}.x-slider-select-reverse .x-slider-select-mark{transform:translate(50%)}.x-slider-select-reverse .x-slider-select-track{display:flex;justify-content:flex-end;margin-right:.5rem}.x-slider-select-reverse .x-slider-select-drags{justify-content:flex-end;right:auto}.x-slider-select-vertical{width:initial;height:12rem}.x-slider-select-vertical .x-slider-select{height:100%}.x-slider-select-vertical .x-slider-select-inner{padding-right:initial;padding-top:1rem;align-items:initial;justify-content:center;height:100%}.x-slider-select-vertical .x-slider-select-rail{margin-left:initial;margin-top:-.5rem;height:calc(100% - 1rem);width:calc(var(--x-height-medium) / 4)}.x-slider-select-vertical .x-slider-select-track{display:flex;align-items:flex-end;margin-left:initial;margin-bottom:.5rem;width:calc(var(--x-height-medium) / 4);height:100%}.x-slider-select-vertical .x-slider-select-marks{display:flex;align-items:flex-end;justify-content:center;margin-left:initial;margin-bottom:.5rem;width:calc(var(--x-height-medium) / 4);height:100%}.x-slider-select-vertical .x-slider-select-mark{transform:translate(0) translateY(50%)}.x-slider-select-vertical .x-slider-select-mark-label{transform:translate(50%) translateY(0);margin-left:1rem}.x-slider-select-vertical .x-slider-select-process{height:0%;width:calc(var(--x-height-medium) / 4)}.x-slider-select-vertical .x-slider-select-drags{height:100%;width:var(--x-height-medium);align-items:flex-end;justify-content:center;right:auto}.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-inner{padding-left:initial;padding-bottom:1rem;padding-top:initial}.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-rail{margin-top:.5rem}.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-track,.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-marks{align-items:flex-start;margin-bottom:-.5rem;margin-right:initial}.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-mark{transform:translate(0) translateY(-50%)}.x-slider-select-range .x-slider-select-process{cursor:pointer}.x-slider-select:not(.x-slider-select-reverse) .x-slider-select-drag{left:auto}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i1.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: XTooltipDirective, selector: "[x-tooltip], x-tooltip" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
481
481
  }
482
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XSliderSelectComponent, decorators: [{
482
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: XSliderSelectComponent, decorators: [{
483
483
  type: Component,
484
484
  args: [{ selector: `${XSliderSelectPrefix}`, imports: [NgClass, NgStyle, FormsModule, ReactiveFormsModule, DragDropModule, XTooltipDirective, XOutletDirective], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XSliderSelectComponent)], template: "<div\r\n #sliderSelect\r\n class=\"x-slider-select\"\r\n [class.x-flex]=\"justify() || align() || direction()\"\r\n [class.x-disabled]=\"disabledComputed()\"\r\n [class.x-required]=\"requiredIsEmpty()\"\r\n [class.x-invalid]=\"invalid()\"\r\n [class.x-slider-select-reverse]=\"reverse()\"\r\n [class.x-slider-select-range]=\"range()\"\r\n [ngClass]=\"classMap()\"\r\n>\r\n @if (label()) {\r\n <label\r\n [class.x-slider-select-label-required]=\"requiredComputed()\"\r\n [style.width]=\"labelWidth()\"\r\n [ngClass]=\"labelMapSignal()\"\r\n *xOutlet=\"label()\"\r\n >\r\n {{ label() }}\r\n </label>\r\n }\r\n <div class=\"x-slider-select-inner\" #innerRef>\r\n <div class=\"x-slider-select-rail\" #railRef>\r\n <div></div>\r\n </div>\r\n <div class=\"x-slider-select-drags\">\r\n <div class=\"x-slider-select-track\" #trackRef>\r\n <div\r\n #processRef\r\n class=\"x-slider-select-process\"\r\n cdkDrag\r\n [cdkDragLockAxis]=\"vertical() ? 'y' : 'x'\"\r\n [cdkDragDisabled]=\"disabledComputed() || !range()\"\r\n [cdkDragBoundary]=\"trackRef\"\r\n (cdkDragStarted)=\"started($event, 'both')\"\r\n (cdkDragEnded)=\"ended($event, 'both')\"\r\n (cdkDragMoved)=\"moved($event, 'both')\"\r\n ></div>\r\n </div>\r\n <div class=\"x-slider-select-marks\">\r\n @for (mark of markList(); track mark.label) {\r\n <div class=\"x-slider-select-mark\" [ngStyle]=\"mark.style\">\r\n <span class=\"x-slider-select-mark-label\">{{ mark.label }}</span>\r\n </div>\r\n }\r\n </div>\r\n <div\r\n #dragStartRef\r\n class=\"x-slider-select-drag\"\r\n cdkDrag\r\n [cdkDragLockAxis]=\"vertical() ? 'y' : 'x'\"\r\n [cdkDragDisabled]=\"disabledComputed()\"\r\n [cdkDragBoundary]=\"innerRef\"\r\n (cdkDragStarted)=\"started($event, 'start')\"\r\n (cdkDragEnded)=\"ended($event, 'start')\"\r\n (cdkDragMoved)=\"moved($event, 'start')\"\r\n >\r\n <div\r\n #tooltipStart\r\n x-tooltip\r\n tabindex=\"0\"\r\n class=\"x-slider-select-button\"\r\n [class.x-slider-select-button-actived]=\"startVisible()\"\r\n [class.x-slider-select-custom-button]=\"customButton()\"\r\n placement=\"top\"\r\n [disabled]=\"!showTooltip()\"\r\n [content]=\"tooltipStartTpl\"\r\n [(visible)]=\"startVisible\"\r\n [manual]=\"startManual()\"\r\n >\r\n <ng-container *xOutlet=\"customButton()\">{{ customButton() }}</ng-container>\r\n </div>\r\n <ng-template #tooltipStartTpl>\r\n <ng-container *xOutlet=\"tooltipCustom(); context: { $value: startDisplayValue() }\">{{\r\n startDisplayValue()\r\n }}</ng-container>\r\n </ng-template>\r\n </div>\r\n <div\r\n [hidden]=\"!range()\"\r\n #dragEndRef\r\n class=\"x-slider-select-drag\"\r\n cdkDrag\r\n [cdkDragLockAxis]=\"vertical() ? 'y' : 'x'\"\r\n [cdkDragDisabled]=\"disabledComputed()\"\r\n [cdkDragBoundary]=\"innerRef\"\r\n (cdkDragStarted)=\"started($event, 'end')\"\r\n (cdkDragEnded)=\"ended($event, 'end')\"\r\n (cdkDragMoved)=\"moved($event, 'end')\"\r\n >\r\n <div\r\n #tooltipEnd\r\n x-tooltip\r\n tabindex=\"0\"\r\n class=\"x-slider-select-button\"\r\n [class.x-slider-select-button-actived]=\"endVisible()\"\r\n [class.x-slider-select-custom-button]=\"customButton()\"\r\n placement=\"top\"\r\n [disabled]=\"!showTooltip()\"\r\n [content]=\"tooltipEndTpl\"\r\n [(visible)]=\"endVisible\"\r\n [manual]=\"endManual()\"\r\n >\r\n <ng-container *xOutlet=\"customButton()\">{{ customButton() }}</ng-container>\r\n </div>\r\n <ng-template #tooltipEndTpl>\r\n <ng-container *xOutlet=\"tooltipCustom(); context: { $value: endDisplayValue() }\">{{\r\n endDisplayValue()\r\n }}</ng-container>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-slider-select{display:inline-block;width:12rem}.x-slider-select{margin:0;padding:0}.x-slider-select{width:100%}.x-slider-select.x-flex{display:flex}.x-slider-select.x-justify-start{justify-content:flex-start}.x-slider-select.x-justify-center{justify-content:center}.x-slider-select.x-justify-end{justify-content:flex-end}.x-slider-select.x-justify-space-between{justify-content:space-between}.x-slider-select.x-justify-space-around{justify-content:space-around}.x-slider-select.x-align-start{align-items:flex-start}.x-slider-select.x-align-center{align-items:center}.x-slider-select.x-align-end{align-items:flex-end}.x-slider-select.x-direction-column{flex-direction:column}.x-slider-select.x-direction-column-reverse{flex-direction:column-reverse}.x-slider-select.x-direction-row{flex-direction:row}.x-slider-select.x-direction-row-reverse{flex-direction:row-reverse}.x-slider-select>label{display:inline-block;white-space:nowrap;height:var(--x-height-medium);line-height:var(--x-height-medium);color:var(--x-text-300);font-weight:500}.x-slider-select>label.x-text-align-start{text-align:start}.x-slider-select>label.x-text-align-center{text-align:center}.x-slider-select>label.x-text-align-end{text-align:end}.x-slider-select-label-required:before{display:inline-block;margin-right:.25rem;color:var(--x-danger);line-height:1;font-size:var(--x-font-size-small);content:\"*\"}.x-slider-select-inner{flex:1;position:relative;display:flex;align-items:center;padding-right:1rem}.x-slider-select-rail{position:absolute;margin-left:.5rem;width:calc(100% - 1rem);background-color:var(--x-border-100);height:calc(var(--x-height-medium) / 4);border-radius:var(--x-border-radius)}.x-slider-select-rail>div{width:100%;height:100%;border-radius:var(--x-border-radius)}.x-slider-select-track{margin-left:.5rem;width:100%;border-radius:var(--x-border-radius);position:absolute}.x-slider-select-process{height:calc(var(--x-height-medium) / 4);background-color:var(--x-primary);border-radius:var(--x-border-radius);width:0%;position:relative}.x-slider-select-drags{position:relative;width:100%;height:var(--x-height-medium);display:flex;align-items:center}.x-slider-select-drag{position:absolute;cursor:pointer}.x-slider-select-marks{position:absolute;margin-left:.5rem;width:100%;height:var(--x-height-medium);display:flex;align-items:center}.x-slider-select-mark{position:absolute;transform:translate(-50%);border-radius:1rem;display:flex;align-items:center;justify-content:center}.x-slider-select-mark:before{content:\" \";position:absolute;width:.75rem;height:.75rem;border:calc(var(--x-border-width) * 2) solid var(--x-primary);background-color:var(--x-background-a100);border-radius:1rem}.x-slider-select-mark-label{transform:translateY(1rem)}.x-slider-select-button:not(.x-slider-select-custom-button){border-radius:1rem;border:calc(var(--x-border-width) * 2) solid var(--x-primary);background-color:var(--x-background-a100)}.x-slider-select-button{width:1rem;height:1rem;display:flex;align-items:center;justify-content:center;transition:var(--x-animation-duration-base)}.x-slider-select-button:hover,.x-slider-select-button-actived{transform:scale(1.2)}.x-slider-select-bar{width:100%;height:100%}.x-slider-select.x-invalid>label,.x-slider-select.x-required>label{color:var(--x-danger)}.x-slider-select.x-invalid>.x-slider-select-row>x-icon,.x-slider-select.x-required>.x-slider-select-row>x-icon{color:var(--x-danger)}.x-slider-select.x-invalid>.x-slider-select-row:before,.x-slider-select.x-required>.x-slider-select-row:before{content:\" \";z-index:2;position:absolute;height:var(--x-height-medium);line-height:var(--x-height-medium);border-top-left-radius:var(--x-border-radius);border-bottom-left-radius:var(--x-border-radius);width:.125rem;background-color:var(--x-danger)}.x-slider-select.x-disabled .x-slider-select-rail{background-color:var(--x-border-300)}.x-slider-select.x-disabled .x-slider-select-process{background-color:var(--x-primary-400)}.x-slider-select.x-disabled .x-slider-select-drag{cursor:not-allowed}.x-slider-select.x-disabled .x-slider-select-button:not(.x-slider-select-custom-button){border-color:var(--x-primary-400)}.x-slider-select.x-flex.x-direction-row>label{padding:0 .5rem 0 0}.x-slider-select.x-flex.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-slider-select.x-flex.x-direction-column,.x-slider-select.x-flex.x-direction-column-reverse{align-items:inherit}.x-slider-select-max-length{position:absolute;font-size:var(--x-font-size-small);color:var(--x-text-500);padding:0 var(--x-padding-medium);right:0}.x-slider-select:hover:not(.x-disabled) .x-slider-select-process{background-color:var(--x-primary-100)}.x-slider-select:hover:not(.x-disabled) .x-slider-select-button{border-color:var(--x-primary-100)}.x-slider-select-reverse .x-slider-select-inner{padding-right:0;padding-left:1rem}.x-slider-select-reverse .x-slider-select-rail{margin-left:-.5rem}.x-slider-select-reverse .x-slider-select-marks{margin-right:.5rem}.x-slider-select-reverse .x-slider-select-mark{transform:translate(50%)}.x-slider-select-reverse .x-slider-select-track{display:flex;justify-content:flex-end;margin-right:.5rem}.x-slider-select-reverse .x-slider-select-drags{justify-content:flex-end;right:auto}.x-slider-select-vertical{width:initial;height:12rem}.x-slider-select-vertical .x-slider-select{height:100%}.x-slider-select-vertical .x-slider-select-inner{padding-right:initial;padding-top:1rem;align-items:initial;justify-content:center;height:100%}.x-slider-select-vertical .x-slider-select-rail{margin-left:initial;margin-top:-.5rem;height:calc(100% - 1rem);width:calc(var(--x-height-medium) / 4)}.x-slider-select-vertical .x-slider-select-track{display:flex;align-items:flex-end;margin-left:initial;margin-bottom:.5rem;width:calc(var(--x-height-medium) / 4);height:100%}.x-slider-select-vertical .x-slider-select-marks{display:flex;align-items:flex-end;justify-content:center;margin-left:initial;margin-bottom:.5rem;width:calc(var(--x-height-medium) / 4);height:100%}.x-slider-select-vertical .x-slider-select-mark{transform:translate(0) translateY(50%)}.x-slider-select-vertical .x-slider-select-mark-label{transform:translate(50%) translateY(0);margin-left:1rem}.x-slider-select-vertical .x-slider-select-process{height:0%;width:calc(var(--x-height-medium) / 4)}.x-slider-select-vertical .x-slider-select-drags{height:100%;width:var(--x-height-medium);align-items:flex-end;justify-content:center;right:auto}.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-inner{padding-left:initial;padding-bottom:1rem;padding-top:initial}.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-rail{margin-top:.5rem}.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-track,.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-marks{align-items:flex-start;margin-bottom:-.5rem;margin-right:initial}.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-mark{transform:translate(0) translateY(-50%)}.x-slider-select-range .x-slider-select-process{cursor:pointer}.x-slider-select:not(.x-slider-select-reverse) .x-slider-select-drag{left:auto}\n"] }]
485
485
  }], propDecorators: { getVertical: [{
@@ -488,11 +488,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImpor
488
488
  }] } });
489
489
 
490
490
  class XSliderSelectModule {
491
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XSliderSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
492
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.4", ngImport: i0, type: XSliderSelectModule, imports: [XSliderSelectComponent], exports: [XSliderSelectComponent] }); }
493
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XSliderSelectModule, imports: [XSliderSelectComponent] }); }
491
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: XSliderSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
492
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.0", ngImport: i0, type: XSliderSelectModule, imports: [XSliderSelectComponent], exports: [XSliderSelectComponent] }); }
493
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: XSliderSelectModule, imports: [XSliderSelectComponent] }); }
494
494
  }
495
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XSliderSelectModule, decorators: [{
495
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: XSliderSelectModule, decorators: [{
496
496
  type: NgModule,
497
497
  args: [{
498
498
  exports: [XSliderSelectComponent],
@@ -100,10 +100,10 @@ class XSliderProperty extends XPropertyFunction(X_SLIDER_CONFIG_NAME) {
100
100
  */
101
101
  this.nodeChange = output();
102
102
  }
103
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XSliderProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
104
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.4", type: XSliderProperty, isStandalone: true, selector: "x-slider-property", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, animated: { classPropertyName: "animated", publicName: "animated", isSignal: true, isRequired: false, transformFunction: null }, activatedIndex: { classPropertyName: "activatedIndex", publicName: "activatedIndex", isSignal: true, isRequired: false, transformFunction: null }, trigger: { classPropertyName: "trigger", publicName: "trigger", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, justify: { classPropertyName: "justify", publicName: "justify", isSignal: true, isRequired: false, transformFunction: null }, nodeJustify: { classPropertyName: "nodeJustify", publicName: "nodeJustify", isSignal: true, isRequired: false, transformFunction: null }, nodeTpl: { classPropertyName: "nodeTpl", publicName: "nodeTpl", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, showExpand: { classPropertyName: "showExpand", publicName: "showExpand", isSignal: true, isRequired: false, transformFunction: null }, autoShowArrow: { classPropertyName: "autoShowArrow", publicName: "autoShowArrow", isSignal: true, isRequired: false, transformFunction: null }, expandMaxHeight: { classPropertyName: "expandMaxHeight", publicName: "expandMaxHeight", isSignal: true, isRequired: false, transformFunction: null }, showAnchor: { classPropertyName: "showAnchor", publicName: "showAnchor", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activatedIndex: "activatedIndexChange", indexChange: "indexChange", nodeChange: "nodeChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
103
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: XSliderProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
104
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.0", type: XSliderProperty, isStandalone: true, selector: "x-slider-property", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, animated: { classPropertyName: "animated", publicName: "animated", isSignal: true, isRequired: false, transformFunction: null }, activatedIndex: { classPropertyName: "activatedIndex", publicName: "activatedIndex", isSignal: true, isRequired: false, transformFunction: null }, trigger: { classPropertyName: "trigger", publicName: "trigger", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, justify: { classPropertyName: "justify", publicName: "justify", isSignal: true, isRequired: false, transformFunction: null }, nodeJustify: { classPropertyName: "nodeJustify", publicName: "nodeJustify", isSignal: true, isRequired: false, transformFunction: null }, nodeTpl: { classPropertyName: "nodeTpl", publicName: "nodeTpl", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, showExpand: { classPropertyName: "showExpand", publicName: "showExpand", isSignal: true, isRequired: false, transformFunction: null }, autoShowArrow: { classPropertyName: "autoShowArrow", publicName: "autoShowArrow", isSignal: true, isRequired: false, transformFunction: null }, expandMaxHeight: { classPropertyName: "expandMaxHeight", publicName: "expandMaxHeight", isSignal: true, isRequired: false, transformFunction: null }, showAnchor: { classPropertyName: "showAnchor", publicName: "showAnchor", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activatedIndex: "activatedIndexChange", indexChange: "indexChange", nodeChange: "nodeChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
105
105
  }
106
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XSliderProperty, decorators: [{
106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: XSliderProperty, decorators: [{
107
107
  type: Component,
108
108
  args: [{ selector: `${XSliderPrefix}-property`, template: '' }]
109
109
  }] });
@@ -311,20 +311,20 @@ class XSliderComponent extends XSliderProperty {
311
311
  getActivated(index) {
312
312
  return this.activatedIndex() === index;
313
313
  }
314
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XSliderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
315
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.4", type: XSliderComponent, isStandalone: true, selector: "x-slider", viewQueries: [{ propertyName: "sliderScroll", first: true, predicate: ["sliderScroll"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "sliderNodes", first: true, predicate: ["sliderNodes"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div #slider class=\"x-slider\" [ngClass]=\"classMap()\">\r\n @if (autoShowArrow() && showArrow()) {\r\n <x-link\r\n [disabled]=\"offset() === 0\"\r\n class=\"x-slider-arrow-left\"\r\n icon=\"fto-chevron-left\"\r\n (click)=\"scrollPrev()\"\r\n ></x-link>\r\n }\r\n <div class=\"x-slider-scroll\" #sliderScroll [ngClass]=\"scrollClassMap()\">\r\n <ul #sliderNodes [style.transform]=\"transform()\">\r\n @for (node of data(); track node.id; let i = $index) {\r\n <li [class.x-slider-activated]=\"getActivated(i)\" [class.x-slider-disabled]=\"node.disabled\" [title]=\"node.label\">\r\n <x-link\r\n (click)=\"nodeClick($event, node, i)\"\r\n (mouseenter)=\"onEnter($event, node, i)\"\r\n (mouseleave)=\"onLeave(node)\"\r\n [ngClass]=\"nodeClassMap()\"\r\n [href]=\"showAnchor() ? '#' + node.id : ''\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"nodeTpl()!; context: { $node: node }\"></ng-container>\r\n @if (!nodeTpl()) {\r\n <ng-container *xOutlet=\"node.label\">{{ node.label }}</ng-container>\r\n }\r\n </x-link>\r\n </li>\r\n }\r\n <li class=\"x-slider-highlight\" [class.x-slider-highlight-animated]=\"animated()\" [ngStyle]=\"highlightBox()\"></li>\r\n </ul>\r\n </div>\r\n @if (autoShowArrow() && showArrow()) {\r\n <x-link\r\n [disabled]=\"offset() === maxOffset()\"\r\n class=\"x-slider-arrow-right\"\r\n icon=\"fto-chevron-right\"\r\n (click)=\"scrollNext()\"\r\n ></x-link>\r\n }\r\n @if (showExpand() && showArrow() && layout() === 'row') {\r\n <x-dropdown\r\n class=\"x-slider-all\"\r\n [data]=\"data()\"\r\n trigger=\"click\"\r\n [(activatedId)]=\"activatedId\"\r\n (nodeClick)=\"dropdownClick($event)\"\r\n [portalMaxHeight]=\"expandMaxHeight()\"\r\n >\r\n <x-button icon=\"fto-list\" onlyIcon flat plain [size]=\"size()\"> </x-button>\r\n </x-dropdown>\r\n }\r\n</div>\r\n", styles: [".x-slider{margin:0;padding:0}.x-slider{position:relative;display:flex;align-items:center;height:100%}.x-slider-scroll{overflow:hidden;flex:1;display:inline-flex}.x-slider-scroll.x-justify-start{justify-content:flex-start}.x-slider-scroll.x-justify-center{justify-content:center}.x-slider-scroll.x-justify-end{justify-content:flex-end}.x-slider-scroll.x-justify-space-between{justify-content:space-between}.x-slider-scroll.x-justify-space-around{justify-content:space-around}.x-slider-scroll ul,.x-slider-scroll li{margin:0;padding:0;list-style:none}.x-slider-scroll>ul{display:inline-flex;align-items:center;position:relative;transition:transform var(--x-animation-duration-base)}.x-slider-scroll>ul>li{display:inline-flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;z-index:2}.x-slider-scroll>ul>li x-link{flex:1}.x-slider-scroll>ul>li x-link.x-justify-start{justify-content:flex-start}.x-slider-scroll>ul>li x-link.x-justify-center{justify-content:center}.x-slider-scroll>ul>li x-link.x-justify-end{justify-content:flex-end}.x-slider-scroll>ul>li x-link.x-justify-space-between{justify-content:space-between}.x-slider-scroll>ul>li x-link.x-justify-space-around{justify-content:space-around}.x-slider-scroll>ul>li x-link.x-size-big{height:var(--x-height-big);line-height:var(--x-height-big);padding:0 var(--x-padding-big)}.x-slider-scroll>ul>li x-link.x-size-large{height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-slider-scroll>ul>li x-link.x-size-medium{height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-slider-scroll>ul>li x-link.x-size-small{height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-slider-scroll>ul>li x-link.x-size-mini{height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-slider-scroll>ul>li.x-slider-highlight{position:absolute;left:0;top:0;z-index:1;width:0;height:0;border-radius:var(--x-border-small-radius);background-color:var(--x-background);box-shadow:0 .0625rem .1875rem .0625rem #0000000d}.x-slider-scroll>ul>li.x-slider-highlight-animated{transition:width var(--x-animation-duration-base),left var(--x-animation-duration-base),height var(--x-animation-duration-base),top var(--x-animation-duration-base)}.x-slider:not(.x-slider-show-arrow)>.x-slider-scroll>ul{background-color:var(--x-background-a200);border-radius:var(--x-border-radius);padding:.25rem}.x-slider-activated{color:var(--x-primary)}.x-slider-disabled{color:var(--x-text-400)!important;cursor:not-allowed!important}.x-slider-disabled .x-link{cursor:not-allowed!important}.x-slider-disabled .x-link:hover{color:var(--x-text-400)!important}.x-slider-arrow-left,.x-slider-arrow-right{height:1.675rem;line-height:1.675rem}.x-slider-arrow-left>x-icon,.x-slider-arrow-right>x-icon{margin-right:0}.x-slider-arrow-left .x-link,.x-slider-arrow-right .x-link{padding:.5rem}.x-slider-show-arrow{background-color:var(--x-background-a200);border-radius:var(--x-border-radius);padding:0 .25rem}.x-slider-show-arrow>.x-slider-scroll{justify-content:start!important;padding:.25rem 0}.x-slider-row>.x-slider-scroll>ul{flex-direction:row}.x-slider-column{display:inline-flex;flex-direction:column}.x-slider-column>.x-slider-scroll{display:inline-block}.x-slider-column>.x-slider-scroll>ul{flex-direction:column}.x-slider-column>.x-slider-scroll>ul>li{display:flex;width:100%}.x-slider-column>.x-slider-arrow-left,.x-slider-column>.x-slider-arrow-right{transform:rotate(90deg)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: XLinkComponent, selector: "x-link" }, { kind: "component", type: XButtonComponent, selector: "x-button" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: XDropdownComponent, selector: "x-dropdown" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
314
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: XSliderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
315
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.0", type: XSliderComponent, isStandalone: true, selector: "x-slider", viewQueries: [{ propertyName: "sliderScroll", first: true, predicate: ["sliderScroll"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "sliderNodes", first: true, predicate: ["sliderNodes"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div #slider class=\"x-slider\" [ngClass]=\"classMap()\">\r\n @if (autoShowArrow() && showArrow()) {\r\n <x-link\r\n [disabled]=\"offset() === 0\"\r\n class=\"x-slider-arrow-left\"\r\n icon=\"fto-chevron-left\"\r\n (click)=\"scrollPrev()\"\r\n ></x-link>\r\n }\r\n <div class=\"x-slider-scroll\" #sliderScroll [ngClass]=\"scrollClassMap()\">\r\n <ul #sliderNodes [style.transform]=\"transform()\">\r\n @for (node of data(); track node.id; let i = $index) {\r\n <li [class.x-slider-activated]=\"getActivated(i)\" [class.x-slider-disabled]=\"node.disabled\" [title]=\"node.label\">\r\n <x-link\r\n (click)=\"nodeClick($event, node, i)\"\r\n (mouseenter)=\"onEnter($event, node, i)\"\r\n (mouseleave)=\"onLeave(node)\"\r\n [ngClass]=\"nodeClassMap()\"\r\n [href]=\"showAnchor() ? '#' + node.id : ''\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"nodeTpl()!; context: { $node: node }\"></ng-container>\r\n @if (!nodeTpl()) {\r\n <ng-container *xOutlet=\"node.label\">{{ node.label }}</ng-container>\r\n }\r\n </x-link>\r\n </li>\r\n }\r\n <li class=\"x-slider-highlight\" [class.x-slider-highlight-animated]=\"animated()\" [ngStyle]=\"highlightBox()\"></li>\r\n </ul>\r\n </div>\r\n @if (autoShowArrow() && showArrow()) {\r\n <x-link\r\n [disabled]=\"offset() === maxOffset()\"\r\n class=\"x-slider-arrow-right\"\r\n icon=\"fto-chevron-right\"\r\n (click)=\"scrollNext()\"\r\n ></x-link>\r\n }\r\n @if (showExpand() && showArrow() && layout() === 'row') {\r\n <x-dropdown\r\n class=\"x-slider-all\"\r\n [data]=\"data()\"\r\n trigger=\"click\"\r\n [(activatedId)]=\"activatedId\"\r\n (nodeClick)=\"dropdownClick($event)\"\r\n [portalMaxHeight]=\"expandMaxHeight()\"\r\n >\r\n <x-button icon=\"fto-list\" onlyIcon flat plain [size]=\"size()\"> </x-button>\r\n </x-dropdown>\r\n }\r\n</div>\r\n", styles: [".x-slider{margin:0;padding:0}.x-slider{position:relative;display:flex;align-items:center;height:100%}.x-slider-scroll{overflow:hidden;flex:1;display:inline-flex}.x-slider-scroll.x-justify-start{justify-content:flex-start}.x-slider-scroll.x-justify-center{justify-content:center}.x-slider-scroll.x-justify-end{justify-content:flex-end}.x-slider-scroll.x-justify-space-between{justify-content:space-between}.x-slider-scroll.x-justify-space-around{justify-content:space-around}.x-slider-scroll ul,.x-slider-scroll li{margin:0;padding:0;list-style:none}.x-slider-scroll>ul{display:inline-flex;align-items:center;position:relative;transition:transform var(--x-animation-duration-base)}.x-slider-scroll>ul>li{display:inline-flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;z-index:2}.x-slider-scroll>ul>li x-link{flex:1}.x-slider-scroll>ul>li x-link.x-justify-start{justify-content:flex-start}.x-slider-scroll>ul>li x-link.x-justify-center{justify-content:center}.x-slider-scroll>ul>li x-link.x-justify-end{justify-content:flex-end}.x-slider-scroll>ul>li x-link.x-justify-space-between{justify-content:space-between}.x-slider-scroll>ul>li x-link.x-justify-space-around{justify-content:space-around}.x-slider-scroll>ul>li x-link.x-size-big{height:var(--x-height-big);line-height:var(--x-height-big);padding:0 var(--x-padding-big)}.x-slider-scroll>ul>li x-link.x-size-large{height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-slider-scroll>ul>li x-link.x-size-medium{height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-slider-scroll>ul>li x-link.x-size-small{height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-slider-scroll>ul>li x-link.x-size-mini{height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-slider-scroll>ul>li.x-slider-highlight{position:absolute;left:0;top:0;z-index:1;width:0;height:0;border-radius:var(--x-border-small-radius);background-color:var(--x-background);box-shadow:0 .0625rem .1875rem .0625rem #0000000d}.x-slider-scroll>ul>li.x-slider-highlight-animated{transition:width var(--x-animation-duration-base),left var(--x-animation-duration-base),height var(--x-animation-duration-base),top var(--x-animation-duration-base)}.x-slider:not(.x-slider-show-arrow)>.x-slider-scroll>ul{background-color:var(--x-background-a200);border-radius:var(--x-border-radius);padding:.25rem}.x-slider-activated{color:var(--x-primary)}.x-slider-disabled{color:var(--x-text-400)!important;cursor:not-allowed!important}.x-slider-disabled .x-link{cursor:not-allowed!important}.x-slider-disabled .x-link:hover{color:var(--x-text-400)!important}.x-slider-arrow-left,.x-slider-arrow-right{height:1.675rem;line-height:1.675rem}.x-slider-arrow-left>x-icon,.x-slider-arrow-right>x-icon{margin-right:0}.x-slider-arrow-left .x-link,.x-slider-arrow-right .x-link{padding:.5rem}.x-slider-show-arrow{background-color:var(--x-background-a200);border-radius:var(--x-border-radius);padding:0 .25rem}.x-slider-show-arrow>.x-slider-scroll{justify-content:start!important;padding:.25rem 0}.x-slider-row>.x-slider-scroll>ul{flex-direction:row}.x-slider-column{display:inline-flex;flex-direction:column}.x-slider-column>.x-slider-scroll{display:inline-block}.x-slider-column>.x-slider-scroll>ul{flex-direction:column}.x-slider-column>.x-slider-scroll>ul>li{display:flex;width:100%}.x-slider-column>.x-slider-arrow-left,.x-slider-column>.x-slider-arrow-right{transform:rotate(90deg)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: XLinkComponent, selector: "x-link" }, { kind: "component", type: XButtonComponent, selector: "x-button" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: XDropdownComponent, selector: "x-dropdown" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
316
316
  }
317
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XSliderComponent, decorators: [{
317
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: XSliderComponent, decorators: [{
318
318
  type: Component,
319
319
  args: [{ selector: `${XSliderPrefix}`, imports: [NgClass, NgStyle, NgTemplateOutlet, XLinkComponent, XButtonComponent, XOutletDirective, XDropdownComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #slider class=\"x-slider\" [ngClass]=\"classMap()\">\r\n @if (autoShowArrow() && showArrow()) {\r\n <x-link\r\n [disabled]=\"offset() === 0\"\r\n class=\"x-slider-arrow-left\"\r\n icon=\"fto-chevron-left\"\r\n (click)=\"scrollPrev()\"\r\n ></x-link>\r\n }\r\n <div class=\"x-slider-scroll\" #sliderScroll [ngClass]=\"scrollClassMap()\">\r\n <ul #sliderNodes [style.transform]=\"transform()\">\r\n @for (node of data(); track node.id; let i = $index) {\r\n <li [class.x-slider-activated]=\"getActivated(i)\" [class.x-slider-disabled]=\"node.disabled\" [title]=\"node.label\">\r\n <x-link\r\n (click)=\"nodeClick($event, node, i)\"\r\n (mouseenter)=\"onEnter($event, node, i)\"\r\n (mouseleave)=\"onLeave(node)\"\r\n [ngClass]=\"nodeClassMap()\"\r\n [href]=\"showAnchor() ? '#' + node.id : ''\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"nodeTpl()!; context: { $node: node }\"></ng-container>\r\n @if (!nodeTpl()) {\r\n <ng-container *xOutlet=\"node.label\">{{ node.label }}</ng-container>\r\n }\r\n </x-link>\r\n </li>\r\n }\r\n <li class=\"x-slider-highlight\" [class.x-slider-highlight-animated]=\"animated()\" [ngStyle]=\"highlightBox()\"></li>\r\n </ul>\r\n </div>\r\n @if (autoShowArrow() && showArrow()) {\r\n <x-link\r\n [disabled]=\"offset() === maxOffset()\"\r\n class=\"x-slider-arrow-right\"\r\n icon=\"fto-chevron-right\"\r\n (click)=\"scrollNext()\"\r\n ></x-link>\r\n }\r\n @if (showExpand() && showArrow() && layout() === 'row') {\r\n <x-dropdown\r\n class=\"x-slider-all\"\r\n [data]=\"data()\"\r\n trigger=\"click\"\r\n [(activatedId)]=\"activatedId\"\r\n (nodeClick)=\"dropdownClick($event)\"\r\n [portalMaxHeight]=\"expandMaxHeight()\"\r\n >\r\n <x-button icon=\"fto-list\" onlyIcon flat plain [size]=\"size()\"> </x-button>\r\n </x-dropdown>\r\n }\r\n</div>\r\n", styles: [".x-slider{margin:0;padding:0}.x-slider{position:relative;display:flex;align-items:center;height:100%}.x-slider-scroll{overflow:hidden;flex:1;display:inline-flex}.x-slider-scroll.x-justify-start{justify-content:flex-start}.x-slider-scroll.x-justify-center{justify-content:center}.x-slider-scroll.x-justify-end{justify-content:flex-end}.x-slider-scroll.x-justify-space-between{justify-content:space-between}.x-slider-scroll.x-justify-space-around{justify-content:space-around}.x-slider-scroll ul,.x-slider-scroll li{margin:0;padding:0;list-style:none}.x-slider-scroll>ul{display:inline-flex;align-items:center;position:relative;transition:transform var(--x-animation-duration-base)}.x-slider-scroll>ul>li{display:inline-flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;z-index:2}.x-slider-scroll>ul>li x-link{flex:1}.x-slider-scroll>ul>li x-link.x-justify-start{justify-content:flex-start}.x-slider-scroll>ul>li x-link.x-justify-center{justify-content:center}.x-slider-scroll>ul>li x-link.x-justify-end{justify-content:flex-end}.x-slider-scroll>ul>li x-link.x-justify-space-between{justify-content:space-between}.x-slider-scroll>ul>li x-link.x-justify-space-around{justify-content:space-around}.x-slider-scroll>ul>li x-link.x-size-big{height:var(--x-height-big);line-height:var(--x-height-big);padding:0 var(--x-padding-big)}.x-slider-scroll>ul>li x-link.x-size-large{height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-slider-scroll>ul>li x-link.x-size-medium{height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-slider-scroll>ul>li x-link.x-size-small{height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-slider-scroll>ul>li x-link.x-size-mini{height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-slider-scroll>ul>li.x-slider-highlight{position:absolute;left:0;top:0;z-index:1;width:0;height:0;border-radius:var(--x-border-small-radius);background-color:var(--x-background);box-shadow:0 .0625rem .1875rem .0625rem #0000000d}.x-slider-scroll>ul>li.x-slider-highlight-animated{transition:width var(--x-animation-duration-base),left var(--x-animation-duration-base),height var(--x-animation-duration-base),top var(--x-animation-duration-base)}.x-slider:not(.x-slider-show-arrow)>.x-slider-scroll>ul{background-color:var(--x-background-a200);border-radius:var(--x-border-radius);padding:.25rem}.x-slider-activated{color:var(--x-primary)}.x-slider-disabled{color:var(--x-text-400)!important;cursor:not-allowed!important}.x-slider-disabled .x-link{cursor:not-allowed!important}.x-slider-disabled .x-link:hover{color:var(--x-text-400)!important}.x-slider-arrow-left,.x-slider-arrow-right{height:1.675rem;line-height:1.675rem}.x-slider-arrow-left>x-icon,.x-slider-arrow-right>x-icon{margin-right:0}.x-slider-arrow-left .x-link,.x-slider-arrow-right .x-link{padding:.5rem}.x-slider-show-arrow{background-color:var(--x-background-a200);border-radius:var(--x-border-radius);padding:0 .25rem}.x-slider-show-arrow>.x-slider-scroll{justify-content:start!important;padding:.25rem 0}.x-slider-row>.x-slider-scroll>ul{flex-direction:row}.x-slider-column{display:inline-flex;flex-direction:column}.x-slider-column>.x-slider-scroll{display:inline-block}.x-slider-column>.x-slider-scroll>ul{flex-direction:column}.x-slider-column>.x-slider-scroll>ul>li{display:flex;width:100%}.x-slider-column>.x-slider-arrow-left,.x-slider-column>.x-slider-arrow-right{transform:rotate(90deg)}\n"] }]
320
320
  }] });
321
321
 
322
322
  class XSliderModule {
323
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XSliderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
324
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.4", ngImport: i0, type: XSliderModule, imports: [XSliderComponent], exports: [XSliderComponent] }); }
325
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XSliderModule, imports: [XSliderComponent] }); }
323
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: XSliderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
324
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.0", ngImport: i0, type: XSliderModule, imports: [XSliderComponent], exports: [XSliderComponent] }); }
325
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: XSliderModule, imports: [XSliderComponent] }); }
326
326
  }
327
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XSliderModule, decorators: [{
327
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: XSliderModule, decorators: [{
328
328
  type: NgModule,
329
329
  args: [{
330
330
  declarations: [],