@ng-nest/ui 21.0.13 → 22.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/fesm2022/ng-nest-ui-affix.mjs +12 -12
- package/fesm2022/ng-nest-ui-affix.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-alert.mjs +46 -34
- package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-anchor.mjs +43 -31
- package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-api.mjs +7 -7
- package/fesm2022/ng-nest-ui-attachments.mjs +74 -48
- package/fesm2022/ng-nest-ui-attachments.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-auto-complete.mjs +114 -70
- package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-avatar.mjs +47 -32
- package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-back-top.mjs +23 -18
- package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-badge.mjs +30 -23
- package/fesm2022/ng-nest-ui-badge.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-base-form.mjs +75 -44
- package/fesm2022/ng-nest-ui-base-form.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-bubble.mjs +76 -48
- package/fesm2022/ng-nest-ui-bubble.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-button.mjs +53 -42
- package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-calendar.mjs +30 -20
- package/fesm2022/ng-nest-ui-calendar.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-card.mjs +21 -16
- package/fesm2022/ng-nest-ui-card.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-carousel.mjs +68 -46
- package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-cascade.mjs +121 -73
- package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-checkbox.mjs +54 -38
- package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-collapse.mjs +38 -30
- package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-color-picker.mjs +119 -72
- package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-color.mjs +22 -16
- package/fesm2022/ng-nest-ui-color.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-comment.mjs +23 -21
- package/fesm2022/ng-nest-ui-comment.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-container.mjs +40 -37
- package/fesm2022/ng-nest-ui-container.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-contextmenu.mjs +71 -45
- package/fesm2022/ng-nest-ui-contextmenu.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-core.mjs +24 -21
- package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-coversations.mjs +25 -18
- package/fesm2022/ng-nest-ui-coversations.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-crumb.mjs +15 -13
- package/fesm2022/ng-nest-ui-crumb.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-date-picker.mjs +425 -256
- package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-description.mjs +42 -31
- package/fesm2022/ng-nest-ui-description.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-dialog.mjs +106 -82
- package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-divider.mjs +24 -17
- package/fesm2022/ng-nest-ui-divider.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-doc.mjs +7 -7
- package/fesm2022/ng-nest-ui-drag.mjs +10 -10
- package/fesm2022/ng-nest-ui-drawer.mjs +52 -43
- package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-dropdown.mjs +94 -58
- package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-empty.mjs +14 -12
- package/fesm2022/ng-nest-ui-empty.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-examples.mjs +7 -7
- package/fesm2022/ng-nest-ui-find.mjs +111 -71
- package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-form.mjs +45 -33
- package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-highlight.mjs +26 -20
- package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-i18n.mjs +16 -15
- package/fesm2022/ng-nest-ui-i18n.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-icon.mjs +28 -21
- package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-image.mjs +57 -51
- package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-inner.mjs +11 -11
- package/fesm2022/ng-nest-ui-inner.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-input-number.mjs +63 -42
- package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-input.mjs +130 -85
- package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-keyword.mjs +19 -15
- package/fesm2022/ng-nest-ui-keyword.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-layout.mjs +37 -31
- package/fesm2022/ng-nest-ui-layout.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-link.mjs +23 -18
- package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-list.mjs +137 -89
- package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-loading.mjs +36 -25
- package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-menu.mjs +68 -45
- package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-message-box.mjs +10 -10
- package/fesm2022/ng-nest-ui-message.mjs +10 -10
- package/fesm2022/ng-nest-ui-notification.mjs +10 -10
- package/fesm2022/ng-nest-ui-outlet.mjs +11 -9
- package/fesm2022/ng-nest-ui-outlet.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-page-header.mjs +20 -15
- package/fesm2022/ng-nest-ui-page-header.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-pagination.mjs +69 -48
- package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-pattern.mjs +7 -7
- package/fesm2022/ng-nest-ui-popconfirm.mjs +40 -27
- package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-popover.mjs +57 -38
- package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-portal.mjs +7 -7
- package/fesm2022/ng-nest-ui-progress.mjs +60 -41
- package/fesm2022/ng-nest-ui-progress.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-prompts.mjs +18 -15
- package/fesm2022/ng-nest-ui-prompts.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-radio.mjs +50 -35
- package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-rate.mjs +43 -29
- package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-resizable.mjs +18 -16
- package/fesm2022/ng-nest-ui-resizable.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-result.mjs +22 -16
- package/fesm2022/ng-nest-ui-result.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-ripple.mjs +14 -13
- package/fesm2022/ng-nest-ui-ripple.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-scrollable.mjs +41 -24
- package/fesm2022/ng-nest-ui-scrollable.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-select.mjs +197 -118
- package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-sender.mjs +43 -31
- package/fesm2022/ng-nest-ui-sender.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-skeleton.mjs +17 -15
- package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-slider-select.mjs +85 -53
- package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-slider.mjs +58 -37
- package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-splitter.mjs +32 -24
- package/fesm2022/ng-nest-ui-splitter.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-statistic.mjs +44 -30
- package/fesm2022/ng-nest-ui-statistic.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-steps.mjs +30 -22
- package/fesm2022/ng-nest-ui-steps.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-suggestion.mjs +23 -20
- package/fesm2022/ng-nest-ui-suggestion.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-switch.mjs +35 -25
- package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-table-view.mjs +78 -69
- package/fesm2022/ng-nest-ui-table-view.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-table.mjs +320 -205
- package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tabs.mjs +74 -56
- package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tag.mjs +30 -23
- package/fesm2022/ng-nest-ui-tag.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-text-retract.mjs +19 -15
- package/fesm2022/ng-nest-ui-text-retract.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-textarea.mjs +69 -44
- package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-theme.mjs +34 -23
- package/fesm2022/ng-nest-ui-theme.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-thought-chain.mjs +26 -19
- package/fesm2022/ng-nest-ui-thought-chain.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-ago.mjs +7 -7
- package/fesm2022/ng-nest-ui-time-picker.mjs +164 -96
- package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-range.mjs +7 -7
- package/fesm2022/ng-nest-ui-timeline.mjs +26 -19
- package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tooltip.mjs +53 -35
- package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-transfer.mjs +66 -40
- package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree-file.mjs +39 -28
- package/fesm2022/ng-nest-ui-tree-file.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree-select.mjs +186 -111
- package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree.mjs +166 -105
- package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-typography.mjs +16 -13
- package/fesm2022/ng-nest-ui-typography.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-upload.mjs +81 -53
- package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-watermark.mjs +45 -35
- package/fesm2022/ng-nest-ui-watermark.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-welcome.mjs +22 -16
- package/fesm2022/ng-nest-ui-welcome.mjs.map +1 -1
- package/package.json +7 -6
- package/types/ng-nest-ui-base-form.d.ts +3 -3
- package/types/ng-nest-ui-carousel.d.ts +1 -1
- package/types/ng-nest-ui-container.d.ts +1 -1
- package/types/ng-nest-ui-core.d.ts +1 -1
- package/types/ng-nest-ui-dialog.d.ts +1 -1
- package/types/ng-nest-ui-drawer.d.ts +1 -1
- package/types/ng-nest-ui-form.d.ts +12 -12
- package/types/ng-nest-ui-layout.d.ts +1 -1
- package/types/ng-nest-ui-list.d.ts +1 -1
- package/types/ng-nest-ui-portal.d.ts +3 -3
- package/types/ng-nest-ui-table-view.d.ts +1 -1
- package/types/ng-nest-ui-table.d.ts +1 -1
- package/types/ng-nest-ui-tabs.d.ts +1 -1
- package/types/ng-nest-ui-tree.d.ts +1 -1
|
@@ -26,117 +26,127 @@ class XCheckboxProperty extends XFormControlFunction(X_CHECKBOX_CONFIG_NAME) {
|
|
|
26
26
|
* @zh_CN 多选框数据
|
|
27
27
|
* @en_US Checkbox data
|
|
28
28
|
*/
|
|
29
|
-
this.data = input([], { ...(ngDevMode ? { debugName: "data" } : {}), transform: XToDataConvert });
|
|
29
|
+
this.data = input([], { ...(ngDevMode ? { debugName: "data" } : /* istanbul ignore next */ {}), transform: XToDataConvert });
|
|
30
30
|
/**
|
|
31
31
|
* @zh_CN 按钮样式
|
|
32
32
|
* @en_US Button style
|
|
33
33
|
*/
|
|
34
|
-
this.button = input(false, { ...(ngDevMode ? { debugName: "button" } : {}), transform: XToBoolean });
|
|
34
|
+
this.button = input(false, { ...(ngDevMode ? { debugName: "button" } : /* istanbul ignore next */ {}), transform: XToBoolean });
|
|
35
35
|
/**
|
|
36
36
|
* @zh_CN 图标样式
|
|
37
37
|
* @en_US Icon style
|
|
38
38
|
*/
|
|
39
|
-
this.icon = input(false, { ...(ngDevMode ? { debugName: "icon" } : {}), transform: XToBoolean });
|
|
39
|
+
this.icon = input(false, { ...(ngDevMode ? { debugName: "icon" } : /* istanbul ignore next */ {}), transform: XToBoolean });
|
|
40
40
|
/**
|
|
41
41
|
* @zh_CN tag 标签样式
|
|
42
42
|
* @en_US Tag style
|
|
43
43
|
*/
|
|
44
|
-
this.tag = input(false, { ...(ngDevMode ? { debugName: "tag" } : {}), transform: XToBoolean });
|
|
44
|
+
this.tag = input(false, { ...(ngDevMode ? { debugName: "tag" } : /* istanbul ignore next */ {}), transform: XToBoolean });
|
|
45
45
|
/**
|
|
46
46
|
* @zh_CN 不确定状态的样式
|
|
47
47
|
* @en_US Uncertain state style
|
|
48
48
|
*/
|
|
49
|
-
this.indeterminate = input(false, { ...(ngDevMode ? { debugName: "indeterminate" } : {}), transform: XToBoolean });
|
|
49
|
+
this.indeterminate = input(false, { ...(ngDevMode ? { debugName: "indeterminate" } : /* istanbul ignore next */ {}), transform: XToBoolean });
|
|
50
50
|
/**
|
|
51
51
|
* @zh_CN 按钮/图标/ tag 标签样式时生效
|
|
52
52
|
* @en_US Take effect when button style
|
|
53
53
|
*/
|
|
54
|
-
this.type = input('initial',
|
|
54
|
+
this.type = input('initial', /* @ts-ignore */
|
|
55
|
+
...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
|
|
55
56
|
/**
|
|
56
57
|
* @zh_CN tag 标签边框
|
|
57
58
|
* @en_US Tag bordered
|
|
58
59
|
*/
|
|
59
|
-
this.tagBordered = input(true, { ...(ngDevMode ? { debugName: "tagBordered" } : {}), transform: XToBoolean });
|
|
60
|
+
this.tagBordered = input(true, { ...(ngDevMode ? { debugName: "tagBordered" } : /* istanbul ignore next */ {}), transform: XToBoolean });
|
|
60
61
|
/**
|
|
61
62
|
* @zh_CN tag 标签深色主题
|
|
62
63
|
* @en_US Tag dark theme
|
|
63
64
|
*/
|
|
64
|
-
this.tagDark = input(false, { ...(ngDevMode ? { debugName: "tagDark" } : {}), transform: XToBoolean });
|
|
65
|
+
this.tagDark = input(false, { ...(ngDevMode ? { debugName: "tagDark" } : /* istanbul ignore next */ {}), transform: XToBoolean });
|
|
65
66
|
/**
|
|
66
67
|
* @zh_CN 只有一个选项,启动此参数时,value 的值为 true / false
|
|
67
68
|
* @en_US There is only one option, when this parameter is activated, the value is true or false
|
|
68
69
|
*/
|
|
69
|
-
this.single = input(false, { ...(ngDevMode ? { debugName: "single" } : {}), transform: XToBoolean });
|
|
70
|
+
this.single = input(false, { ...(ngDevMode ? { debugName: "single" } : /* istanbul ignore next */ {}), transform: XToBoolean });
|
|
70
71
|
/**
|
|
71
72
|
* @zh_CN 垂直布局,不支持 button 和 icon 样式
|
|
72
73
|
* @en_US Vertical layout, does not support button and icon styles
|
|
73
74
|
*/
|
|
74
|
-
this.vertical = input(false, { ...(ngDevMode ? { debugName: "vertical" } : {}), transform: XToBoolean });
|
|
75
|
+
this.vertical = input(false, { ...(ngDevMode ? { debugName: "vertical" } : /* istanbul ignore next */ {}), transform: XToBoolean });
|
|
75
76
|
/**
|
|
76
77
|
* @zh_CN 标签
|
|
77
78
|
* @en_US Label
|
|
78
79
|
*/
|
|
79
|
-
this.label = input('',
|
|
80
|
+
this.label = input('', /* @ts-ignore */
|
|
81
|
+
...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
|
|
80
82
|
/**
|
|
81
83
|
* @zh_CN 标签宽度
|
|
82
84
|
* @en_US Label width
|
|
83
85
|
*/
|
|
84
|
-
this.labelWidth = input('', { ...(ngDevMode ? { debugName: "labelWidth" } : {}), transform: XToCssPixelValue });
|
|
86
|
+
this.labelWidth = input('', { ...(ngDevMode ? { debugName: "labelWidth" } : /* istanbul ignore next */ {}), transform: XToCssPixelValue });
|
|
85
87
|
/**
|
|
86
88
|
* @zh_CN 标签文字对齐方式
|
|
87
89
|
* @en_US Label text alignment method
|
|
88
90
|
*/
|
|
89
|
-
this.labelAlign = input('start',
|
|
91
|
+
this.labelAlign = input('start', /* @ts-ignore */
|
|
92
|
+
...(ngDevMode ? [{ debugName: "labelAlign" }] : /* istanbul ignore next */ []));
|
|
90
93
|
/**
|
|
91
94
|
* @zh_CN flex 布局下的子元素水平排列方式
|
|
92
95
|
* @en_US The level of sub-element level arrangement under flex layout
|
|
93
96
|
*/
|
|
94
|
-
this.justify = input('start',
|
|
97
|
+
this.justify = input('start', /* @ts-ignore */
|
|
98
|
+
...(ngDevMode ? [{ debugName: "justify" }] : /* istanbul ignore next */ []));
|
|
95
99
|
/**
|
|
96
100
|
* @zh_CN flex 布局下的子元素垂直排列方式
|
|
97
101
|
* @en_US sub-element vertical arrangement method under flex layout
|
|
98
102
|
*/
|
|
99
|
-
this.align = input('start',
|
|
103
|
+
this.align = input('start', /* @ts-ignore */
|
|
104
|
+
...(ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []));
|
|
100
105
|
/**
|
|
101
106
|
* @zh_CN flex 布局下的子元素排列方向
|
|
102
107
|
* @en_US The direction of the sub-element arrangement under flex layout
|
|
103
108
|
*/
|
|
104
|
-
this.direction = input('column',
|
|
109
|
+
this.direction = input('column', /* @ts-ignore */
|
|
110
|
+
...(ngDevMode ? [{ debugName: "direction" }] : /* istanbul ignore next */ []));
|
|
105
111
|
/**
|
|
106
112
|
* @zh_CN 禁用
|
|
107
113
|
* @en_US Disabled
|
|
108
114
|
*/
|
|
109
|
-
this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : {}), transform: XToBoolean });
|
|
115
|
+
this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: XToBoolean });
|
|
110
116
|
/**
|
|
111
117
|
* @zh_CN 必填
|
|
112
118
|
* @en_US Required
|
|
113
119
|
*/
|
|
114
|
-
this.required = input(false, { ...(ngDevMode ? { debugName: "required" } : {}), transform: XToBoolean });
|
|
120
|
+
this.required = input(false, { ...(ngDevMode ? { debugName: "required" } : /* istanbul ignore next */ {}), transform: XToBoolean });
|
|
115
121
|
/**
|
|
116
122
|
* @zh_CN 值模板
|
|
117
123
|
* @en_US Node template
|
|
118
124
|
*/
|
|
119
|
-
this.valueTpl = input(
|
|
125
|
+
this.valueTpl = input(/* @ts-ignore */
|
|
126
|
+
...(ngDevMode ? [undefined, { debugName: "valueTpl" }] : /* istanbul ignore next */ []));
|
|
120
127
|
/**
|
|
121
128
|
* @zh_CN 值模板参数
|
|
122
129
|
* @en_US Node template
|
|
123
130
|
*/
|
|
124
|
-
this.valueTplContext = input(
|
|
131
|
+
this.valueTplContext = input(/* @ts-ignore */
|
|
132
|
+
...(ngDevMode ? [undefined, { debugName: "valueTplContext" }] : /* istanbul ignore next */ []));
|
|
125
133
|
/**
|
|
126
134
|
* @zh_CN 前置标签
|
|
127
135
|
* @en_US Before label
|
|
128
136
|
*/
|
|
129
|
-
this.before = input(
|
|
137
|
+
this.before = input(/* @ts-ignore */
|
|
138
|
+
...(ngDevMode ? [undefined, { debugName: "before" }] : /* istanbul ignore next */ []));
|
|
130
139
|
/**
|
|
131
140
|
* @zh_CN 后置标签
|
|
132
141
|
* @en_US After label
|
|
133
142
|
*/
|
|
134
|
-
this.after = input(
|
|
143
|
+
this.after = input(/* @ts-ignore */
|
|
144
|
+
...(ngDevMode ? [undefined, { debugName: "after" }] : /* istanbul ignore next */ []));
|
|
135
145
|
}
|
|
136
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
137
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
146
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: XCheckboxProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
147
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.1", type: XCheckboxProperty, isStandalone: true, selector: "x-checkbox-property", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, button: { classPropertyName: "button", publicName: "button", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, tag: { classPropertyName: "tag", publicName: "tag", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, tagBordered: { classPropertyName: "tagBordered", publicName: "tagBordered", isSignal: true, isRequired: false, transformFunction: null }, tagDark: { classPropertyName: "tagDark", publicName: "tagDark", isSignal: true, isRequired: false, transformFunction: null }, single: { classPropertyName: "single", publicName: "single", isSignal: true, isRequired: false, transformFunction: null }, vertical: { classPropertyName: "vertical", publicName: "vertical", 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 }, valueTpl: { classPropertyName: "valueTpl", publicName: "valueTpl", isSignal: true, isRequired: false, transformFunction: null }, valueTplContext: { classPropertyName: "valueTplContext", publicName: "valueTplContext", isSignal: true, isRequired: false, transformFunction: null }, before: { classPropertyName: "before", publicName: "before", isSignal: true, isRequired: false, transformFunction: null }, after: { classPropertyName: "after", publicName: "after", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
|
|
138
148
|
}
|
|
139
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
149
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: XCheckboxProperty, decorators: [{
|
|
140
150
|
type: Component,
|
|
141
151
|
args: [{ selector: `${XCheckboxPrefix}-property`, template: '' }]
|
|
142
152
|
}], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], button: [{ type: i0.Input, args: [{ isSignal: true, alias: "button", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], tag: [{ type: i0.Input, args: [{ isSignal: true, alias: "tag", required: false }] }], indeterminate: [{ type: i0.Input, args: [{ isSignal: true, alias: "indeterminate", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], tagBordered: [{ type: i0.Input, args: [{ isSignal: true, alias: "tagBordered", required: false }] }], tagDark: [{ type: i0.Input, args: [{ isSignal: true, alias: "tagDark", required: false }] }], single: [{ type: i0.Input, args: [{ isSignal: true, alias: "single", required: false }] }], vertical: [{ type: i0.Input, args: [{ isSignal: true, alias: "vertical", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], labelWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelWidth", required: false }] }], labelAlign: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelAlign", required: false }] }], justify: [{ type: i0.Input, args: [{ isSignal: true, alias: "justify", required: false }] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], direction: [{ type: i0.Input, args: [{ isSignal: true, alias: "direction", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], valueTpl: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueTpl", required: false }] }], valueTplContext: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueTplContext", required: false }] }], before: [{ type: i0.Input, args: [{ isSignal: true, alias: "before", required: false }] }], after: [{ type: i0.Input, args: [{ isSignal: true, alias: "after", required: false }] }] } });
|
|
@@ -145,18 +155,23 @@ class XCheckboxComponent extends XCheckboxProperty {
|
|
|
145
155
|
constructor() {
|
|
146
156
|
super();
|
|
147
157
|
this.checkbox = viewChild.required('checkbox', { read: (ElementRef) });
|
|
148
|
-
this.beforeIsTemplate = computed(() => this.before() instanceof TemplateRef,
|
|
149
|
-
|
|
150
|
-
this.
|
|
158
|
+
this.beforeIsTemplate = computed(() => this.before() instanceof TemplateRef, /* @ts-ignore */
|
|
159
|
+
...(ngDevMode ? [{ debugName: "beforeIsTemplate" }] : /* istanbul ignore next */ []));
|
|
160
|
+
this.afterIsTemplate = computed(() => this.after() instanceof TemplateRef, /* @ts-ignore */
|
|
161
|
+
...(ngDevMode ? [{ debugName: "afterIsTemplate" }] : /* istanbul ignore next */ []));
|
|
162
|
+
this.nodes = signal([], /* @ts-ignore */
|
|
163
|
+
...(ngDevMode ? [{ debugName: "nodes" }] : /* istanbul ignore next */ []));
|
|
151
164
|
this.unSubject = new Subject();
|
|
152
165
|
this.classMap = computed(() => ({
|
|
153
166
|
[`x-justify-${this.justify()}`]: !!this.justify(),
|
|
154
167
|
[`x-align-${this.align()}`]: !!this.align(),
|
|
155
168
|
[`x-direction-${this.direction()}`]: !!this.direction()
|
|
156
|
-
}),
|
|
169
|
+
}), /* @ts-ignore */
|
|
170
|
+
...(ngDevMode ? [{ debugName: "classMap" }] : /* istanbul ignore next */ []));
|
|
157
171
|
this.labelMapSignal = computed(() => ({
|
|
158
172
|
[`x-text-align-${this.labelAlign()}`]: !!this.labelAlign()
|
|
159
|
-
}),
|
|
173
|
+
}), /* @ts-ignore */
|
|
174
|
+
...(ngDevMode ? [{ debugName: "labelMapSignal" }] : /* istanbul ignore next */ []));
|
|
160
175
|
this.checkboxType = computed(() => {
|
|
161
176
|
if (this.button()) {
|
|
162
177
|
return 'button';
|
|
@@ -170,7 +185,8 @@ class XCheckboxComponent extends XCheckboxProperty {
|
|
|
170
185
|
else {
|
|
171
186
|
return 'initial';
|
|
172
187
|
}
|
|
173
|
-
},
|
|
188
|
+
}, /* @ts-ignore */
|
|
189
|
+
...(ngDevMode ? [{ debugName: "checkboxType" }] : /* istanbul ignore next */ []));
|
|
174
190
|
effect(() => {
|
|
175
191
|
this.value();
|
|
176
192
|
this.setChecked();
|
|
@@ -224,20 +240,20 @@ class XCheckboxComponent extends XCheckboxProperty {
|
|
|
224
240
|
this.nodes.set(x);
|
|
225
241
|
});
|
|
226
242
|
}
|
|
227
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
228
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: XCheckboxComponent, isStandalone: true, selector: "x-checkbox", providers: [XValueAccessor(XCheckboxComponent)], viewQueries: [{ propertyName: "checkbox", first: true, predicate: ["checkbox"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n #checkbox\r\n class=\"x-checkbox\"\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-checkbox-button]=\"button()\"\r\n [class.x-checkbox-icon]=\"icon()\"\r\n [class.x-checkbox-vertical]=\"vertical()\"\r\n [class.x-checkbox-after]=\"after()\"\r\n [class.x-checkbox-before]=\"before()\"\r\n [class.x-checkbox-after-template]=\"afterIsTemplate()\"\r\n [class.x-checkbox-before-template]=\"beforeIsTemplate()\"\r\n [ngClass]=\"classMap()\"\r\n>\r\n @if (label()) {\r\n <label\r\n [class.x-checkbox-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-checkbox-row\">\r\n @if (before()) {\r\n <div class=\"x-checkbox-row-before\">\r\n <ng-container *xOutlet=\"before()\">{{ before() }}</ng-container>\r\n </div>\r\n }\r\n <div class=\"x-checkbox-row-list\">\r\n @switch (checkboxType()) {\r\n @case ('initial') {\r\n @for (item of nodes(); track item.id) {\r\n <div\r\n class=\"x-checkbox-row-item\"\r\n [class.x-checked]=\"item.checked!\"\r\n [class.x-disabled]=\"disabledComputed() || item.disabled\"\r\n [class.x-indeterminate]=\"indeterminate()\"\r\n (click)=\"checkboxClick($event, item)\"\r\n >\r\n <span class=\"x-checkbox-box\"></span>\r\n <span class=\"x-checkbox-label\">\r\n <ng-container *xOutlet=\"item.label; context: { $node: item.node }\">{{ item.label }}</ng-container>\r\n </span>\r\n </div>\r\n }\r\n }\r\n @case ('button') {\r\n <x-buttons boxShadow=\"false\">\r\n @for (item of nodes(); track item.id) {\r\n <x-button\r\n [icon]=\"item.icon!\"\r\n [title]=\"item.title!\"\r\n [size]=\"size()\"\r\n [type]=\"type()\"\r\n [activated]=\"item.checked!\"\r\n [disabled]=\"disabledComputed() || item.disabled!\"\r\n attrType=\"button\"\r\n (click)=\"checkboxClick($event, item)\"\r\n plain\r\n >{{ item.label }}</x-button\r\n >\r\n }\r\n </x-buttons>\r\n }\r\n @case ('icon') {\r\n <x-buttons boxShadow=\"false\">\r\n @for (item of nodes(); track item.id) {\r\n <x-button\r\n [icon]=\"item.icon!\"\r\n [title]=\"item.title!\"\r\n [size]=\"size()\"\r\n [type]=\"type()\"\r\n [activated]=\"item.checked!\"\r\n [disabled]=\"disabledComputed() || item.disabled!\"\r\n attrType=\"button\"\r\n (click)=\"checkboxClick($event, item)\"\r\n plain\r\n >{{ item.label }}</x-button\r\n >\r\n }\r\n </x-buttons>\r\n }\r\n @case ('tag') {\r\n @for (item of nodes(); track item) {\r\n <x-tag\r\n checked\r\n manual\r\n [type]=\"type()\"\r\n [size]=\"size()\"\r\n [bordered]=\"tagBordered()\"\r\n [dark]=\"tagDark()\"\r\n [disabled]=\"disabledComputed() || item.disabled!\"\r\n [selected]=\"item.checked!\"\r\n (click)=\"checkboxClick($event, item)\"\r\n >{{ item.label }}</x-tag\r\n >\r\n }\r\n }\r\n }\r\n </div>\r\n @if (after()) {\r\n <div class=\"x-checkbox-row-after\">\r\n <ng-container *xOutlet=\"after()\">{{ after() }}</ng-container>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: ["x-checkbox{display:inline-block}.x-checkbox{margin:0;padding:0}.x-checkbox{width:100%}.x-checkbox.x-flex{display:flex}.x-checkbox.x-justify-start{justify-content:flex-start}.x-checkbox.x-justify-center{justify-content:center}.x-checkbox.x-justify-end{justify-content:flex-end}.x-checkbox.x-justify-space-between{justify-content:space-between}.x-checkbox.x-justify-space-around{justify-content:space-around}.x-checkbox.x-align-start{align-items:flex-start}.x-checkbox.x-align-center{align-items:center}.x-checkbox.x-align-end{align-items:flex-end}.x-checkbox.x-direction-column{flex-direction:column}.x-checkbox.x-direction-column-reverse{flex-direction:column-reverse}.x-checkbox.x-direction-row{flex-direction:row}.x-checkbox.x-direction-row-reverse{flex-direction:row-reverse}.x-checkbox>label{display:inline-block;white-space:nowrap;height:var(--x-height-medium);line-height:var(--x-height-medium);position:relative;color:var(--x-text-300);font-weight:500}.x-checkbox>label.x-text-align-start{text-align:start}.x-checkbox>label.x-text-align-center{text-align:center}.x-checkbox>label.x-text-align-end{text-align:end}.x-checkbox-row{flex:1;display:flex;align-items:center;flex-wrap:wrap}.x-checkbox-row .x-checkbox-row-before,.x-checkbox-row .x-checkbox-row-after{border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);background-color:var(--x-background-a100);padding:0 var(--x-padding-medium);height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-checkbox-row-list{position:relative;display:inline-flex;align-items:center}.x-checkbox-row-list x-tag:not(:first-child){margin-left:var(--x-font-size)}.x-checkbox-row-item{position:relative;display:inline-flex;align-items:center;white-space:nowrap;outline:none;margin-right:var(--x-font-size);font-size:var(--x-font-size);cursor:pointer;transition:all .3s}.x-checkbox-row-item:hover{color:var(--x-primary)}.x-checkbox-row-item:hover .x-checkbox-box{border-color:var(--x-primary)}.x-checkbox-row-item:last-child{margin-right:0}.x-checkbox-row-item.x-indeterminate:not(.x-checked) .x-checkbox-box{border-color:var(--x-primary)}.x-checkbox-row-item.x-indeterminate:not(.x-checked) .x-checkbox-box:after{top:50%;left:50%;width:.75rem;height:.75rem;background-color:var(--x-primary);border:0;transform:translate(-50%,-50%) scale(1);opacity:1;border-radius:.125rem;content:\" \";transition:transform .2s}.x-checkbox-row-item.x-checked .x-checkbox-box{border-color:var(--x-primary);background-color:var(--x-primary)}.x-checkbox-row-item.x-checked .x-checkbox-box:after{border:.125rem solid white;border-top:0;border-left:0;top:.575rem;left:.325rem;width:.425rem;height:.825rem;transform:rotate(40deg) scale(1) translate(-50%,-50%);opacity:1;transition:transform .2s;content:\" \"}.x-checkbox-row-item.x-disabled{color:var(--x-text-400);cursor:not-allowed}.x-checkbox-row-item.x-disabled .x-checkbox-box{border-color:var(--x-border-a900);background-color:var(--x-border-a300)}.x-checkbox-row-item.x-disabled .x-checkbox-box:after{border-color:var(--x-text-400);background-color:transparent}.x-checkbox-button .x-checkbox-row-before,.x-checkbox-icon .x-checkbox-row-before{margin-right:0}.x-checkbox-button .x-checkbox-row-after,.x-checkbox-icon .x-checkbox-row-after{margin-left:0}.x-checkbox-vertical .x-checkbox-row-list{flex-direction:column;align-items:flex-start}.x-checkbox-vertical .x-checkbox-row-list x-tag{margin-left:0}.x-checkbox-vertical .x-checkbox-row-list x-tag:not(:first-child){margin-top:.25rem}.x-checkbox-vertical .x-checkbox-row-item{margin-right:0}.x-checkbox-vertical .x-checkbox-row-item:not(:first-child){margin-top:.25rem}.x-checkbox-box{border:var(--x-border-width) solid var(--x-border);width:calc(var(--x-height-medium) - .875rem);height:calc(var(--x-height-medium) - .875rem);border-radius:.425rem;background-color:var(--x-background-a100);position:relative;display:inline-block;box-sizing:border-box;transition:all .3s}.x-checkbox-box:hover{border-color:var(--x-primary)}.x-checkbox-box:after{position:absolute;top:.35rem;left:.175rem;display:inline-block;width:.3rem;height:.6rem;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-top:0;border-left:0;transform:rotate(40deg) scale(0) translate(-50%,-50%);opacity:0;transition:scale .2s;content:\" \"}.x-checkbox-label{margin-left:.325rem;-webkit-user-select:none;user-select:none}.x-checkbox-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-checkbox-before:not(.x-checkbox-before-template,.x-checkbox-button,.x-checkbox-icon) .x-checkbox-row-before{margin-right:var(--x-padding-medium)}.x-checkbox-before.x-checkbox-button .x-buttons:not(.x-buttons-space)>x-button:first-child .x-button,.x-checkbox-before.x-checkbox-icon .x-buttons:not(.x-buttons-space)>x-button:first-child .x-button{border-top-left-radius:0;border-bottom-left-radius:0}.x-checkbox-before.x-checkbox-button .x-checkbox-row-before,.x-checkbox-before.x-checkbox-icon .x-checkbox-row-before{margin-right:0;border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.x-checkbox-before-template .x-checkbox-row-before{display:contents}.x-checkbox-before-template .x-checkbox-row-list{margin-left:var(--x-padding-medium)}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-list,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-list{margin-left:0}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-list .x-button,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-list .x-button{margin-left:calc(var(--x-border-width) * -1)}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-list .x-button:hover,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-list .x-button:focus,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-list .x-button:hover,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-list .x-button:focus{z-index:1}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before input:hover,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before input:focus,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before .x-button:hover,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before .x-button:focus,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before input:hover,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before input:focus,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before .x-button:hover,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before .x-button:focus{z-index:1}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before input,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before .x-button,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before input,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before .x-button{border-top-right-radius:0;border-bottom-right-radius:0}.x-checkbox-after:not(.x-checkbox-before-template,.x-checkbox-button,.x-checkbox-icon) .x-checkbox-row-after{margin-left:var(--x-padding-medium)}.x-checkbox-after.x-checkbox-button .x-buttons:not(.x-buttons-space)>x-button:last-child .x-button,.x-checkbox-after.x-checkbox-icon .x-buttons:not(.x-buttons-space)>x-button:last-child .x-button{border-top-right-radius:0;border-bottom-right-radius:0}.x-checkbox-after.x-checkbox-button .x-checkbox-row-after,.x-checkbox-after.x-checkbox-icon .x-checkbox-row-after{margin-left:0;border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.x-checkbox-after-template .x-checkbox-row-after{display:contents}.x-checkbox-after-template .x-checkbox-row-list{margin-right:var(--x-padding-medium)}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-list,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-list{margin-right:0}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-list .x-button,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-list .x-button{margin-right:calc(var(--x-border-width) * -1)}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-list .x-button:hover,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-list .x-button:focus,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-list .x-button:hover,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-list .x-button:focus{z-index:1}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after input:hover,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after input:focus,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after .x-button:hover,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after .x-button:focus,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after input:hover,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after input:focus,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after .x-button:hover,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after .x-button:focus{z-index:1}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after input,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after .x-button,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after input,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after .x-button{border-top-left-radius:0;border-bottom-left-radius:0}.x-checkbox.x-disabled .x-checkbox-item.x-indeterminate .x-checkbox-box:after{background-color:var(--x-text-400)}.x-checkbox.x-disabled .x-checkbox-item.x-checked .x-checkbox-box:after{background-color:transparent}.x-checkbox.x-disabled .x-checkbox-item{color:var(--x-text-400);cursor:not-allowed}.x-checkbox.x-disabled .x-checkbox-item .x-checkbox-box{border-color:var(--x-border-a900);background-color:var(--x-border-a300)}.x-checkbox.x-disabled .x-checkbox-item .x-checkbox-box:after{border-color:var(--x-text-400);background-color:transparent}.x-checkbox.x-invalid>label,.x-checkbox.x-required>label{color:var(--x-danger)}.x-checkbox.x-direction-row>label{padding:0 .5rem 0 0}.x-checkbox.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-checkbox.x-direction-column,.x-checkbox.x-direction-column-reverse{align-items:inherit}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: XButtonComponent, selector: "x-button" }, { kind: "component", type: XButtonsComponent, selector: "x-buttons" }, { kind: "component", type: XTagComponent, selector: "x-tag" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
243
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: XCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
244
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.1", type: XCheckboxComponent, isStandalone: true, selector: "x-checkbox", providers: [XValueAccessor(XCheckboxComponent)], viewQueries: [{ propertyName: "checkbox", first: true, predicate: ["checkbox"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n #checkbox\r\n class=\"x-checkbox\"\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-checkbox-button]=\"button()\"\r\n [class.x-checkbox-icon]=\"icon()\"\r\n [class.x-checkbox-vertical]=\"vertical()\"\r\n [class.x-checkbox-after]=\"after()\"\r\n [class.x-checkbox-before]=\"before()\"\r\n [class.x-checkbox-after-template]=\"afterIsTemplate()\"\r\n [class.x-checkbox-before-template]=\"beforeIsTemplate()\"\r\n [ngClass]=\"classMap()\"\r\n>\r\n @if (label()) {\r\n <label\r\n [class.x-checkbox-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-checkbox-row\">\r\n @if (before()) {\r\n <div class=\"x-checkbox-row-before\">\r\n <ng-container *xOutlet=\"before()\">{{ before() }}</ng-container>\r\n </div>\r\n }\r\n <div class=\"x-checkbox-row-list\">\r\n @switch (checkboxType()) {\r\n @case ('initial') {\r\n @for (item of nodes(); track item.id) {\r\n <div\r\n class=\"x-checkbox-row-item\"\r\n [class.x-checked]=\"item.checked!\"\r\n [class.x-disabled]=\"disabledComputed() || item.disabled\"\r\n [class.x-indeterminate]=\"indeterminate()\"\r\n (click)=\"checkboxClick($event, item)\"\r\n >\r\n <span class=\"x-checkbox-box\"></span>\r\n <span class=\"x-checkbox-label\">\r\n <ng-container *xOutlet=\"item.label; context: { $node: item.node }\">{{ item.label }}</ng-container>\r\n </span>\r\n </div>\r\n }\r\n }\r\n @case ('button') {\r\n <x-buttons boxShadow=\"false\">\r\n @for (item of nodes(); track item.id) {\r\n <x-button\r\n [icon]=\"item.icon!\"\r\n [title]=\"item.title!\"\r\n [size]=\"size()\"\r\n [type]=\"type()\"\r\n [activated]=\"item.checked!\"\r\n [disabled]=\"disabledComputed() || item.disabled!\"\r\n attrType=\"button\"\r\n (click)=\"checkboxClick($event, item)\"\r\n plain\r\n >{{ item.label }}</x-button\r\n >\r\n }\r\n </x-buttons>\r\n }\r\n @case ('icon') {\r\n <x-buttons boxShadow=\"false\">\r\n @for (item of nodes(); track item.id) {\r\n <x-button\r\n [icon]=\"item.icon!\"\r\n [title]=\"item.title!\"\r\n [size]=\"size()\"\r\n [type]=\"type()\"\r\n [activated]=\"item.checked!\"\r\n [disabled]=\"disabledComputed() || item.disabled!\"\r\n attrType=\"button\"\r\n (click)=\"checkboxClick($event, item)\"\r\n plain\r\n >{{ item.label }}</x-button\r\n >\r\n }\r\n </x-buttons>\r\n }\r\n @case ('tag') {\r\n @for (item of nodes(); track item) {\r\n <x-tag\r\n checked\r\n manual\r\n [type]=\"type()\"\r\n [size]=\"size()\"\r\n [bordered]=\"tagBordered()\"\r\n [dark]=\"tagDark()\"\r\n [disabled]=\"disabledComputed() || item.disabled!\"\r\n [selected]=\"item.checked!\"\r\n (click)=\"checkboxClick($event, item)\"\r\n >{{ item.label }}</x-tag\r\n >\r\n }\r\n }\r\n }\r\n </div>\r\n @if (after()) {\r\n <div class=\"x-checkbox-row-after\">\r\n <ng-container *xOutlet=\"after()\">{{ after() }}</ng-container>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: ["x-checkbox{display:inline-block}.x-checkbox{margin:0;padding:0}.x-checkbox{width:100%}.x-checkbox.x-flex{display:flex}.x-checkbox.x-justify-start{justify-content:flex-start}.x-checkbox.x-justify-center{justify-content:center}.x-checkbox.x-justify-end{justify-content:flex-end}.x-checkbox.x-justify-space-between{justify-content:space-between}.x-checkbox.x-justify-space-around{justify-content:space-around}.x-checkbox.x-align-start{align-items:flex-start}.x-checkbox.x-align-center{align-items:center}.x-checkbox.x-align-end{align-items:flex-end}.x-checkbox.x-direction-column{flex-direction:column}.x-checkbox.x-direction-column-reverse{flex-direction:column-reverse}.x-checkbox.x-direction-row{flex-direction:row}.x-checkbox.x-direction-row-reverse{flex-direction:row-reverse}.x-checkbox>label{display:inline-block;white-space:nowrap;height:var(--x-height-medium);line-height:var(--x-height-medium);position:relative;color:var(--x-text-300);font-weight:500}.x-checkbox>label.x-text-align-start{text-align:start}.x-checkbox>label.x-text-align-center{text-align:center}.x-checkbox>label.x-text-align-end{text-align:end}.x-checkbox-row{flex:1;display:flex;align-items:center;flex-wrap:wrap}.x-checkbox-row .x-checkbox-row-before,.x-checkbox-row .x-checkbox-row-after{border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);background-color:var(--x-background-a100);padding:0 var(--x-padding-medium);height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-checkbox-row-list{position:relative;display:inline-flex;align-items:center}.x-checkbox-row-list x-tag:not(:first-child){margin-left:var(--x-font-size)}.x-checkbox-row-item{position:relative;display:inline-flex;align-items:center;white-space:nowrap;outline:none;margin-right:var(--x-font-size);font-size:var(--x-font-size);cursor:pointer;transition:all .3s}.x-checkbox-row-item:hover{color:var(--x-primary)}.x-checkbox-row-item:hover .x-checkbox-box{border-color:var(--x-primary)}.x-checkbox-row-item:last-child{margin-right:0}.x-checkbox-row-item.x-indeterminate:not(.x-checked) .x-checkbox-box{border-color:var(--x-primary)}.x-checkbox-row-item.x-indeterminate:not(.x-checked) .x-checkbox-box:after{top:50%;left:50%;width:.75rem;height:.75rem;background-color:var(--x-primary);border:0;transform:translate(-50%,-50%) scale(1);opacity:1;border-radius:.125rem;content:\" \";transition:transform .2s}.x-checkbox-row-item.x-checked .x-checkbox-box{border-color:var(--x-primary);background-color:var(--x-primary)}.x-checkbox-row-item.x-checked .x-checkbox-box:after{border:.125rem solid white;border-top:0;border-left:0;top:.575rem;left:.325rem;width:.425rem;height:.825rem;transform:rotate(40deg) scale(1) translate(-50%,-50%);opacity:1;transition:transform .2s;content:\" \"}.x-checkbox-row-item.x-disabled{color:var(--x-text-400);cursor:not-allowed}.x-checkbox-row-item.x-disabled .x-checkbox-box{border-color:var(--x-border-a900);background-color:var(--x-border-a300)}.x-checkbox-row-item.x-disabled .x-checkbox-box:after{border-color:var(--x-text-400);background-color:transparent}.x-checkbox-button .x-checkbox-row-before,.x-checkbox-icon .x-checkbox-row-before{margin-right:0}.x-checkbox-button .x-checkbox-row-after,.x-checkbox-icon .x-checkbox-row-after{margin-left:0}.x-checkbox-vertical .x-checkbox-row-list{flex-direction:column;align-items:flex-start}.x-checkbox-vertical .x-checkbox-row-list x-tag{margin-left:0}.x-checkbox-vertical .x-checkbox-row-list x-tag:not(:first-child){margin-top:.25rem}.x-checkbox-vertical .x-checkbox-row-item{margin-right:0}.x-checkbox-vertical .x-checkbox-row-item:not(:first-child){margin-top:.25rem}.x-checkbox-box{border:var(--x-border-width) solid var(--x-border);width:calc(var(--x-height-medium) - .875rem);height:calc(var(--x-height-medium) - .875rem);border-radius:.425rem;background-color:var(--x-background-a100);position:relative;display:inline-block;box-sizing:border-box;transition:all .3s}.x-checkbox-box:hover{border-color:var(--x-primary)}.x-checkbox-box:after{position:absolute;top:.35rem;left:.175rem;display:inline-block;width:.3rem;height:.6rem;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-top:0;border-left:0;transform:rotate(40deg) scale(0) translate(-50%,-50%);opacity:0;transition:scale .2s;content:\" \"}.x-checkbox-label{margin-left:.325rem;-webkit-user-select:none;user-select:none}.x-checkbox-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-checkbox-before:not(.x-checkbox-before-template,.x-checkbox-button,.x-checkbox-icon) .x-checkbox-row-before{margin-right:var(--x-padding-medium)}.x-checkbox-before.x-checkbox-button .x-buttons:not(.x-buttons-space)>x-button:first-child .x-button,.x-checkbox-before.x-checkbox-icon .x-buttons:not(.x-buttons-space)>x-button:first-child .x-button{border-top-left-radius:0;border-bottom-left-radius:0}.x-checkbox-before.x-checkbox-button .x-checkbox-row-before,.x-checkbox-before.x-checkbox-icon .x-checkbox-row-before{margin-right:0;border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.x-checkbox-before-template .x-checkbox-row-before{display:contents}.x-checkbox-before-template .x-checkbox-row-list{margin-left:var(--x-padding-medium)}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-list,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-list{margin-left:0}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-list .x-button,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-list .x-button{margin-left:calc(var(--x-border-width) * -1)}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-list .x-button:hover,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-list .x-button:focus,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-list .x-button:hover,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-list .x-button:focus{z-index:1}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before input:hover,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before input:focus,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before .x-button:hover,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before .x-button:focus,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before input:hover,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before input:focus,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before .x-button:hover,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before .x-button:focus{z-index:1}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before input,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before .x-button,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before input,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before .x-button{border-top-right-radius:0;border-bottom-right-radius:0}.x-checkbox-after:not(.x-checkbox-before-template,.x-checkbox-button,.x-checkbox-icon) .x-checkbox-row-after{margin-left:var(--x-padding-medium)}.x-checkbox-after.x-checkbox-button .x-buttons:not(.x-buttons-space)>x-button:last-child .x-button,.x-checkbox-after.x-checkbox-icon .x-buttons:not(.x-buttons-space)>x-button:last-child .x-button{border-top-right-radius:0;border-bottom-right-radius:0}.x-checkbox-after.x-checkbox-button .x-checkbox-row-after,.x-checkbox-after.x-checkbox-icon .x-checkbox-row-after{margin-left:0;border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.x-checkbox-after-template .x-checkbox-row-after{display:contents}.x-checkbox-after-template .x-checkbox-row-list{margin-right:var(--x-padding-medium)}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-list,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-list{margin-right:0}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-list .x-button,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-list .x-button{margin-right:calc(var(--x-border-width) * -1)}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-list .x-button:hover,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-list .x-button:focus,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-list .x-button:hover,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-list .x-button:focus{z-index:1}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after input:hover,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after input:focus,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after .x-button:hover,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after .x-button:focus,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after input:hover,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after input:focus,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after .x-button:hover,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after .x-button:focus{z-index:1}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after input,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after .x-button,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after input,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after .x-button{border-top-left-radius:0;border-bottom-left-radius:0}.x-checkbox.x-disabled .x-checkbox-item.x-indeterminate .x-checkbox-box:after{background-color:var(--x-text-400)}.x-checkbox.x-disabled .x-checkbox-item.x-checked .x-checkbox-box:after{background-color:transparent}.x-checkbox.x-disabled .x-checkbox-item{color:var(--x-text-400);cursor:not-allowed}.x-checkbox.x-disabled .x-checkbox-item .x-checkbox-box{border-color:var(--x-border-a900);background-color:var(--x-border-a300)}.x-checkbox.x-disabled .x-checkbox-item .x-checkbox-box:after{border-color:var(--x-text-400);background-color:transparent}.x-checkbox.x-invalid>label,.x-checkbox.x-required>label{color:var(--x-danger)}.x-checkbox.x-direction-row>label{padding:0 .5rem 0 0}.x-checkbox.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-checkbox.x-direction-column,.x-checkbox.x-direction-column-reverse{align-items:inherit}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: XButtonComponent, selector: "x-button" }, { kind: "component", type: XButtonsComponent, selector: "x-buttons" }, { kind: "component", type: XTagComponent, selector: "x-tag" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
229
245
|
}
|
|
230
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
246
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: XCheckboxComponent, decorators: [{
|
|
231
247
|
type: Component,
|
|
232
248
|
args: [{ selector: `${XCheckboxPrefix}`, imports: [NgClass, FormsModule, XButtonComponent, XButtonsComponent, XTagComponent, XOutletDirective], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XCheckboxComponent)], template: "<div\r\n #checkbox\r\n class=\"x-checkbox\"\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-checkbox-button]=\"button()\"\r\n [class.x-checkbox-icon]=\"icon()\"\r\n [class.x-checkbox-vertical]=\"vertical()\"\r\n [class.x-checkbox-after]=\"after()\"\r\n [class.x-checkbox-before]=\"before()\"\r\n [class.x-checkbox-after-template]=\"afterIsTemplate()\"\r\n [class.x-checkbox-before-template]=\"beforeIsTemplate()\"\r\n [ngClass]=\"classMap()\"\r\n>\r\n @if (label()) {\r\n <label\r\n [class.x-checkbox-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-checkbox-row\">\r\n @if (before()) {\r\n <div class=\"x-checkbox-row-before\">\r\n <ng-container *xOutlet=\"before()\">{{ before() }}</ng-container>\r\n </div>\r\n }\r\n <div class=\"x-checkbox-row-list\">\r\n @switch (checkboxType()) {\r\n @case ('initial') {\r\n @for (item of nodes(); track item.id) {\r\n <div\r\n class=\"x-checkbox-row-item\"\r\n [class.x-checked]=\"item.checked!\"\r\n [class.x-disabled]=\"disabledComputed() || item.disabled\"\r\n [class.x-indeterminate]=\"indeterminate()\"\r\n (click)=\"checkboxClick($event, item)\"\r\n >\r\n <span class=\"x-checkbox-box\"></span>\r\n <span class=\"x-checkbox-label\">\r\n <ng-container *xOutlet=\"item.label; context: { $node: item.node }\">{{ item.label }}</ng-container>\r\n </span>\r\n </div>\r\n }\r\n }\r\n @case ('button') {\r\n <x-buttons boxShadow=\"false\">\r\n @for (item of nodes(); track item.id) {\r\n <x-button\r\n [icon]=\"item.icon!\"\r\n [title]=\"item.title!\"\r\n [size]=\"size()\"\r\n [type]=\"type()\"\r\n [activated]=\"item.checked!\"\r\n [disabled]=\"disabledComputed() || item.disabled!\"\r\n attrType=\"button\"\r\n (click)=\"checkboxClick($event, item)\"\r\n plain\r\n >{{ item.label }}</x-button\r\n >\r\n }\r\n </x-buttons>\r\n }\r\n @case ('icon') {\r\n <x-buttons boxShadow=\"false\">\r\n @for (item of nodes(); track item.id) {\r\n <x-button\r\n [icon]=\"item.icon!\"\r\n [title]=\"item.title!\"\r\n [size]=\"size()\"\r\n [type]=\"type()\"\r\n [activated]=\"item.checked!\"\r\n [disabled]=\"disabledComputed() || item.disabled!\"\r\n attrType=\"button\"\r\n (click)=\"checkboxClick($event, item)\"\r\n plain\r\n >{{ item.label }}</x-button\r\n >\r\n }\r\n </x-buttons>\r\n }\r\n @case ('tag') {\r\n @for (item of nodes(); track item) {\r\n <x-tag\r\n checked\r\n manual\r\n [type]=\"type()\"\r\n [size]=\"size()\"\r\n [bordered]=\"tagBordered()\"\r\n [dark]=\"tagDark()\"\r\n [disabled]=\"disabledComputed() || item.disabled!\"\r\n [selected]=\"item.checked!\"\r\n (click)=\"checkboxClick($event, item)\"\r\n >{{ item.label }}</x-tag\r\n >\r\n }\r\n }\r\n }\r\n </div>\r\n @if (after()) {\r\n <div class=\"x-checkbox-row-after\">\r\n <ng-container *xOutlet=\"after()\">{{ after() }}</ng-container>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: ["x-checkbox{display:inline-block}.x-checkbox{margin:0;padding:0}.x-checkbox{width:100%}.x-checkbox.x-flex{display:flex}.x-checkbox.x-justify-start{justify-content:flex-start}.x-checkbox.x-justify-center{justify-content:center}.x-checkbox.x-justify-end{justify-content:flex-end}.x-checkbox.x-justify-space-between{justify-content:space-between}.x-checkbox.x-justify-space-around{justify-content:space-around}.x-checkbox.x-align-start{align-items:flex-start}.x-checkbox.x-align-center{align-items:center}.x-checkbox.x-align-end{align-items:flex-end}.x-checkbox.x-direction-column{flex-direction:column}.x-checkbox.x-direction-column-reverse{flex-direction:column-reverse}.x-checkbox.x-direction-row{flex-direction:row}.x-checkbox.x-direction-row-reverse{flex-direction:row-reverse}.x-checkbox>label{display:inline-block;white-space:nowrap;height:var(--x-height-medium);line-height:var(--x-height-medium);position:relative;color:var(--x-text-300);font-weight:500}.x-checkbox>label.x-text-align-start{text-align:start}.x-checkbox>label.x-text-align-center{text-align:center}.x-checkbox>label.x-text-align-end{text-align:end}.x-checkbox-row{flex:1;display:flex;align-items:center;flex-wrap:wrap}.x-checkbox-row .x-checkbox-row-before,.x-checkbox-row .x-checkbox-row-after{border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);background-color:var(--x-background-a100);padding:0 var(--x-padding-medium);height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-checkbox-row-list{position:relative;display:inline-flex;align-items:center}.x-checkbox-row-list x-tag:not(:first-child){margin-left:var(--x-font-size)}.x-checkbox-row-item{position:relative;display:inline-flex;align-items:center;white-space:nowrap;outline:none;margin-right:var(--x-font-size);font-size:var(--x-font-size);cursor:pointer;transition:all .3s}.x-checkbox-row-item:hover{color:var(--x-primary)}.x-checkbox-row-item:hover .x-checkbox-box{border-color:var(--x-primary)}.x-checkbox-row-item:last-child{margin-right:0}.x-checkbox-row-item.x-indeterminate:not(.x-checked) .x-checkbox-box{border-color:var(--x-primary)}.x-checkbox-row-item.x-indeterminate:not(.x-checked) .x-checkbox-box:after{top:50%;left:50%;width:.75rem;height:.75rem;background-color:var(--x-primary);border:0;transform:translate(-50%,-50%) scale(1);opacity:1;border-radius:.125rem;content:\" \";transition:transform .2s}.x-checkbox-row-item.x-checked .x-checkbox-box{border-color:var(--x-primary);background-color:var(--x-primary)}.x-checkbox-row-item.x-checked .x-checkbox-box:after{border:.125rem solid white;border-top:0;border-left:0;top:.575rem;left:.325rem;width:.425rem;height:.825rem;transform:rotate(40deg) scale(1) translate(-50%,-50%);opacity:1;transition:transform .2s;content:\" \"}.x-checkbox-row-item.x-disabled{color:var(--x-text-400);cursor:not-allowed}.x-checkbox-row-item.x-disabled .x-checkbox-box{border-color:var(--x-border-a900);background-color:var(--x-border-a300)}.x-checkbox-row-item.x-disabled .x-checkbox-box:after{border-color:var(--x-text-400);background-color:transparent}.x-checkbox-button .x-checkbox-row-before,.x-checkbox-icon .x-checkbox-row-before{margin-right:0}.x-checkbox-button .x-checkbox-row-after,.x-checkbox-icon .x-checkbox-row-after{margin-left:0}.x-checkbox-vertical .x-checkbox-row-list{flex-direction:column;align-items:flex-start}.x-checkbox-vertical .x-checkbox-row-list x-tag{margin-left:0}.x-checkbox-vertical .x-checkbox-row-list x-tag:not(:first-child){margin-top:.25rem}.x-checkbox-vertical .x-checkbox-row-item{margin-right:0}.x-checkbox-vertical .x-checkbox-row-item:not(:first-child){margin-top:.25rem}.x-checkbox-box{border:var(--x-border-width) solid var(--x-border);width:calc(var(--x-height-medium) - .875rem);height:calc(var(--x-height-medium) - .875rem);border-radius:.425rem;background-color:var(--x-background-a100);position:relative;display:inline-block;box-sizing:border-box;transition:all .3s}.x-checkbox-box:hover{border-color:var(--x-primary)}.x-checkbox-box:after{position:absolute;top:.35rem;left:.175rem;display:inline-block;width:.3rem;height:.6rem;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-top:0;border-left:0;transform:rotate(40deg) scale(0) translate(-50%,-50%);opacity:0;transition:scale .2s;content:\" \"}.x-checkbox-label{margin-left:.325rem;-webkit-user-select:none;user-select:none}.x-checkbox-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-checkbox-before:not(.x-checkbox-before-template,.x-checkbox-button,.x-checkbox-icon) .x-checkbox-row-before{margin-right:var(--x-padding-medium)}.x-checkbox-before.x-checkbox-button .x-buttons:not(.x-buttons-space)>x-button:first-child .x-button,.x-checkbox-before.x-checkbox-icon .x-buttons:not(.x-buttons-space)>x-button:first-child .x-button{border-top-left-radius:0;border-bottom-left-radius:0}.x-checkbox-before.x-checkbox-button .x-checkbox-row-before,.x-checkbox-before.x-checkbox-icon .x-checkbox-row-before{margin-right:0;border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.x-checkbox-before-template .x-checkbox-row-before{display:contents}.x-checkbox-before-template .x-checkbox-row-list{margin-left:var(--x-padding-medium)}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-list,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-list{margin-left:0}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-list .x-button,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-list .x-button{margin-left:calc(var(--x-border-width) * -1)}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-list .x-button:hover,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-list .x-button:focus,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-list .x-button:hover,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-list .x-button:focus{z-index:1}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before input:hover,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before input:focus,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before .x-button:hover,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before .x-button:focus,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before input:hover,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before input:focus,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before .x-button:hover,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before .x-button:focus{z-index:1}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before input,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before .x-button,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before input,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before .x-button{border-top-right-radius:0;border-bottom-right-radius:0}.x-checkbox-after:not(.x-checkbox-before-template,.x-checkbox-button,.x-checkbox-icon) .x-checkbox-row-after{margin-left:var(--x-padding-medium)}.x-checkbox-after.x-checkbox-button .x-buttons:not(.x-buttons-space)>x-button:last-child .x-button,.x-checkbox-after.x-checkbox-icon .x-buttons:not(.x-buttons-space)>x-button:last-child .x-button{border-top-right-radius:0;border-bottom-right-radius:0}.x-checkbox-after.x-checkbox-button .x-checkbox-row-after,.x-checkbox-after.x-checkbox-icon .x-checkbox-row-after{margin-left:0;border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.x-checkbox-after-template .x-checkbox-row-after{display:contents}.x-checkbox-after-template .x-checkbox-row-list{margin-right:var(--x-padding-medium)}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-list,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-list{margin-right:0}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-list .x-button,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-list .x-button{margin-right:calc(var(--x-border-width) * -1)}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-list .x-button:hover,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-list .x-button:focus,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-list .x-button:hover,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-list .x-button:focus{z-index:1}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after input:hover,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after input:focus,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after .x-button:hover,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after .x-button:focus,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after input:hover,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after input:focus,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after .x-button:hover,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after .x-button:focus{z-index:1}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after input,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after .x-button,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after input,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after .x-button{border-top-left-radius:0;border-bottom-left-radius:0}.x-checkbox.x-disabled .x-checkbox-item.x-indeterminate .x-checkbox-box:after{background-color:var(--x-text-400)}.x-checkbox.x-disabled .x-checkbox-item.x-checked .x-checkbox-box:after{background-color:transparent}.x-checkbox.x-disabled .x-checkbox-item{color:var(--x-text-400);cursor:not-allowed}.x-checkbox.x-disabled .x-checkbox-item .x-checkbox-box{border-color:var(--x-border-a900);background-color:var(--x-border-a300)}.x-checkbox.x-disabled .x-checkbox-item .x-checkbox-box:after{border-color:var(--x-text-400);background-color:transparent}.x-checkbox.x-invalid>label,.x-checkbox.x-required>label{color:var(--x-danger)}.x-checkbox.x-direction-row>label{padding:0 .5rem 0 0}.x-checkbox.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-checkbox.x-direction-column,.x-checkbox.x-direction-column-reverse{align-items:inherit}\n"] }]
|
|
233
249
|
}], ctorParameters: () => [], propDecorators: { checkbox: [{ type: i0.ViewChild, args: ['checkbox', { ...{ read: (ElementRef) }, isSignal: true }] }] } });
|
|
234
250
|
|
|
235
251
|
class XCheckboxModule {
|
|
236
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
237
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
238
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
252
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: XCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
253
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.1", ngImport: i0, type: XCheckboxModule, imports: [XCheckboxComponent], exports: [XCheckboxComponent] }); }
|
|
254
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: XCheckboxModule, imports: [XCheckboxComponent] }); }
|
|
239
255
|
}
|
|
240
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
256
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: XCheckboxModule, decorators: [{
|
|
241
257
|
type: NgModule,
|
|
242
258
|
args: [{
|
|
243
259
|
exports: [XCheckboxComponent],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-nest-ui-checkbox.mjs","sources":["../../../../lib/ng-nest/ui/checkbox/checkbox.property.ts","../../../../lib/ng-nest/ui/checkbox/checkbox.component.ts","../../../../lib/ng-nest/ui/checkbox/checkbox.component.html","../../../../lib/ng-nest/ui/checkbox/checkbox.module.ts","../../../../lib/ng-nest/ui/checkbox/ng-nest-ui-checkbox.ts"],"sourcesContent":["import { XToBoolean, XToCssPixelValue, XToDataConvert } from '@ng-nest/ui/core';\r\nimport { Component, TemplateRef, input } from '@angular/core';\r\nimport { XButtonType } from '@ng-nest/ui/button';\r\nimport { XFormControlFunction, XFormOption } from '@ng-nest/ui/base-form';\r\nimport type {\r\n XData,\r\n XTemplate,\r\n XIdentityProperty,\r\n XBoolean,\r\n XDirection,\r\n XAlign,\r\n XJustify,\r\n XNumber\r\n} from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Checkbox\r\n * @selector x-checkbox\r\n * @decorator component\r\n */\r\nexport const XCheckboxPrefix = 'x-checkbox';\r\nconst X_CHECKBOX_CONFIG_NAME = 'checkbox';\r\n\r\n/**\r\n * Checkbox Property\r\n */\r\n@Component({ selector: `${XCheckboxPrefix}-property`, template: '' })\r\nexport class XCheckboxProperty extends XFormControlFunction(X_CHECKBOX_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 多选框数据\r\n * @en_US Checkbox data\r\n */\r\n readonly data = input<XData<XCheckboxNode>, XData<XCheckboxNode>>([], { transform: XToDataConvert });\r\n /**\r\n * @zh_CN 按钮样式\r\n * @en_US Button style\r\n */\r\n readonly button = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 图标样式\r\n * @en_US Icon style\r\n */\r\n readonly icon = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN tag 标签样式\r\n * @en_US Tag style\r\n */\r\n readonly tag = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 不确定状态的样式\r\n * @en_US Uncertain state style\r\n */\r\n readonly indeterminate = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 按钮/图标/ tag 标签样式时生效\r\n * @en_US Take effect when button style\r\n */\r\n readonly type = input<XButtonType>('initial');\r\n /**\r\n * @zh_CN tag 标签边框\r\n * @en_US Tag bordered\r\n */\r\n readonly tagBordered = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN tag 标签深色主题\r\n * @en_US Tag dark theme\r\n */\r\n readonly tagDark = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 只有一个选项,启动此参数时,value 的值为 true / false\r\n * @en_US There is only one option, when this parameter is activated, the value is true or false\r\n */\r\n readonly single = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 垂直布局,不支持 button 和 icon 样式\r\n * @en_US Vertical layout, does not support button and icon styles\r\n */\r\n readonly vertical = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 标签\r\n * @en_US Label\r\n */\r\n override readonly label = input<XTemplate>('');\r\n /**\r\n * @zh_CN 标签宽度\r\n * @en_US Label width\r\n */\r\n override readonly labelWidth = input<string, XNumber>('', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 标签文字对齐方式\r\n * @en_US Label text alignment method\r\n */\r\n override readonly labelAlign = input<XAlign>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素水平排列方式\r\n * @en_US The level of sub-element level arrangement under flex layout\r\n */\r\n override readonly justify = input<XJustify>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素垂直排列方式\r\n * @en_US sub-element vertical arrangement method under flex layout\r\n */\r\n override readonly align = input<XAlign>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素排列方向\r\n * @en_US The direction of the sub-element arrangement under flex layout\r\n */\r\n override readonly direction = input<XDirection>('column');\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 Node template\r\n */\r\n override readonly valueTpl = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 值模板参数\r\n * @en_US Node template\r\n */\r\n override readonly valueTplContext = input();\r\n /**\r\n * @zh_CN 前置标签\r\n * @en_US Before label\r\n */\r\n override readonly before = input<XTemplate>();\r\n /**\r\n * @zh_CN 后置标签\r\n * @en_US After label\r\n */\r\n override readonly after = input<XTemplate>();\r\n}\r\n\r\n/**\r\n * Checkbox Option\r\n */\r\nexport interface XCheckboxOption extends XFormOption {\r\n /**\r\n * @zh_CN 多选框数据\r\n * @en_US Checkbox data\r\n */\r\n data?: XData<XCheckboxNode>;\r\n /**\r\n * @zh_CN 按钮样式\r\n * @en_US Button style\r\n */\r\n button?: boolean;\r\n /**\r\n * @zh_CN 图标样式\r\n * @en_US Icon style\r\n */\r\n icon?: boolean;\r\n /**\r\n * @zh_CN tag 标签样式\r\n * @en_US Tag style\r\n */\r\n tag?: boolean;\r\n /**\r\n * @zh_CN 不确定状态的样式\r\n * @en_US Uncertain state style\r\n */\r\n indeterminate?: boolean;\r\n /**\r\n * @zh_CN 按钮/图标/ tag 标签样式时生效\r\n * @en_US Take effect when button style\r\n */\r\n type?: XButtonType;\r\n /**\r\n * @zh_CN tag 标签边框\r\n * @en_US Tag bordered\r\n */\r\n tagBordered?: boolean;\r\n /**\r\n * @zh_CN tag 标签深色主题\r\n * @en_US Tag dark theme\r\n */\r\n tagDark?: boolean;\r\n /**\r\n * @zh_CN 只有一个选项,启动此参数时,value 的值为 true / false\r\n * @en_US There is only one option, when this parameter is activated, the value is true or false\r\n */\r\n single?: boolean;\r\n /**\r\n * @zh_CN 垂直布局,不支持 button 和 icon 样式\r\n * @en_US Vertical layout, does not support button and icon styles\r\n */\r\n vertical?: boolean;\r\n /**\r\n * @zh_CN 标签\r\n * @en_US Label\r\n */\r\n label?: string;\r\n /**\r\n * @zh_CN 标签宽度\r\n * @en_US Label width\r\n */\r\n labelWidth?: string;\r\n /**\r\n * @zh_CN 标签文字对齐方式\r\n * @en_US Label text alignment method\r\n */\r\n labelAlign?: XAlign;\r\n /**\r\n * @zh_CN flex 布局下的子元素水平排列方式\r\n * @en_US The level of sub-element level arrangement under flex layout\r\n */\r\n justify?: XJustify;\r\n /**\r\n * @zh_CN flex 布局下的子元素垂直排列方式\r\n * @en_US sub-element vertical arrangement method under flex layout\r\n */\r\n align?: XAlign;\r\n /**\r\n * @zh_CN flex 布局下的子元素排列方向\r\n * @en_US The direction of the sub-element arrangement under flex layout\r\n */\r\n direction?: XDirection;\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 Before label\r\n */\r\n before?: XTemplate;\r\n /**\r\n * @zh_CN 后置标签\r\n * @en_US After label\r\n */\r\n after?: XTemplate;\r\n}\r\n\r\n/**\r\n * @zh_CN Checkbox 数据对象\r\n * @en_US Checkbox data object\r\n */\r\nexport interface XCheckboxNode extends XIdentityProperty {\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disable\r\n */\r\n disabled?: boolean;\r\n /**\r\n * @zh_CN 选中\r\n * @en_US Disable\r\n */\r\n checked?: boolean;\r\n /**\r\n * @zh_CN 图标\r\n * @en_US Icon\r\n */\r\n icon?: string;\r\n /**\r\n * @zh_CN 图标的提示信息\r\n * @en_US Icon message\r\n */\r\n title?: string;\r\n /**\r\n * @zh_CN 标签文字\r\n * @en_US Label text\r\n */\r\n label?: XTemplate;\r\n /**\r\n * @zh_CN label 为模板参数的时候\r\n * @en_US Label when setting template parameters\r\n */\r\n node?: XCheckboxNode;\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n OnChanges,\r\n SimpleChanges,\r\n TemplateRef,\r\n OnDestroy,\r\n computed,\r\n viewChild,\r\n signal,\r\n effect\r\n} from '@angular/core';\r\nimport { XCheckboxPrefix, XCheckboxNode, XCheckboxProperty } from './checkbox.property';\r\nimport { Subject } from 'rxjs';\r\nimport { XIsChange, XSetData } from '@ng-nest/ui/core';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\nimport { XTagComponent } from '@ng-nest/ui/tag';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { XButtonComponent, XButtonsComponent } from '@ng-nest/ui/button';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { NgClass } from '@angular/common';\r\n\r\n@Component({\r\n selector: `${XCheckboxPrefix}`,\r\n imports: [NgClass, FormsModule, XButtonComponent, XButtonsComponent, XTagComponent, XOutletDirective],\r\n templateUrl: './checkbox.component.html',\r\n styleUrls: ['./checkbox.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XCheckboxComponent)]\r\n})\r\nexport class XCheckboxComponent extends XCheckboxProperty implements OnChanges, OnDestroy {\r\n checkbox = viewChild.required('checkbox', { read: ElementRef<HTMLElement> });\r\n\r\n beforeIsTemplate = computed(() => this.before() instanceof TemplateRef);\r\n afterIsTemplate = computed(() => this.after() instanceof TemplateRef);\r\n\r\n nodes = signal<XCheckboxNode[]>([]);\r\n private unSubject = new Subject<void>();\r\n\r\n classMap = computed(() => ({\r\n [`x-justify-${this.justify()}`]: !!this.justify(),\r\n [`x-align-${this.align()}`]: !!this.align(),\r\n [`x-direction-${this.direction()}`]: !!this.direction()\r\n }));\r\n labelMapSignal = computed(() => ({\r\n [`x-text-align-${this.labelAlign()}`]: !!this.labelAlign()\r\n }));\r\n checkboxType = computed(() => {\r\n if (this.button()) {\r\n return 'button';\r\n } else if (this.icon()) {\r\n return 'icon';\r\n } else if (this.tag()) {\r\n return 'tag';\r\n } else {\r\n return 'initial';\r\n }\r\n });\r\n\r\n constructor() {\r\n super();\r\n effect(() => {\r\n this.value();\r\n this.setChecked();\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { data } = changes;\r\n XIsChange(data) && this.setData();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n }\r\n\r\n checkboxClick(event: Event, node: XCheckboxNode) {\r\n event.preventDefault();\r\n if (this.disabledComputed() || node.disabled) return;\r\n this.formControlValidator();\r\n if (this.single()) {\r\n this.value.update((x) => !x);\r\n } else {\r\n this.value.set((this.value() as Array<any>) || []);\r\n let index = this.value().indexOf(node.id);\r\n if (index >= 0) {\r\n this.value().splice(index, 1);\r\n this.value.set([...this.value()]);\r\n } else this.value.set([...this.value(), node.id]);\r\n }\r\n if (this.onChange) this.onChange(this.value());\r\n }\r\n\r\n isChecked(id: any): boolean {\r\n if (this.single()) return this.value() as boolean;\r\n else return Array.isArray(this.value()) && this.value().includes(id);\r\n }\r\n\r\n setChecked() {\r\n this.nodes.update((x) => {\r\n x.forEach((y) => {\r\n y.checked = this.isChecked(y.id);\r\n });\r\n return [...x];\r\n });\r\n }\r\n\r\n private setData() {\r\n XSetData<XCheckboxNode>(this.data(), this.unSubject).subscribe((x) => {\r\n this.nodes.set(x);\r\n });\r\n }\r\n}\r\n","<div\r\n #checkbox\r\n class=\"x-checkbox\"\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-checkbox-button]=\"button()\"\r\n [class.x-checkbox-icon]=\"icon()\"\r\n [class.x-checkbox-vertical]=\"vertical()\"\r\n [class.x-checkbox-after]=\"after()\"\r\n [class.x-checkbox-before]=\"before()\"\r\n [class.x-checkbox-after-template]=\"afterIsTemplate()\"\r\n [class.x-checkbox-before-template]=\"beforeIsTemplate()\"\r\n [ngClass]=\"classMap()\"\r\n>\r\n @if (label()) {\r\n <label\r\n [class.x-checkbox-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-checkbox-row\">\r\n @if (before()) {\r\n <div class=\"x-checkbox-row-before\">\r\n <ng-container *xOutlet=\"before()\">{{ before() }}</ng-container>\r\n </div>\r\n }\r\n <div class=\"x-checkbox-row-list\">\r\n @switch (checkboxType()) {\r\n @case ('initial') {\r\n @for (item of nodes(); track item.id) {\r\n <div\r\n class=\"x-checkbox-row-item\"\r\n [class.x-checked]=\"item.checked!\"\r\n [class.x-disabled]=\"disabledComputed() || item.disabled\"\r\n [class.x-indeterminate]=\"indeterminate()\"\r\n (click)=\"checkboxClick($event, item)\"\r\n >\r\n <span class=\"x-checkbox-box\"></span>\r\n <span class=\"x-checkbox-label\">\r\n <ng-container *xOutlet=\"item.label; context: { $node: item.node }\">{{ item.label }}</ng-container>\r\n </span>\r\n </div>\r\n }\r\n }\r\n @case ('button') {\r\n <x-buttons boxShadow=\"false\">\r\n @for (item of nodes(); track item.id) {\r\n <x-button\r\n [icon]=\"item.icon!\"\r\n [title]=\"item.title!\"\r\n [size]=\"size()\"\r\n [type]=\"type()\"\r\n [activated]=\"item.checked!\"\r\n [disabled]=\"disabledComputed() || item.disabled!\"\r\n attrType=\"button\"\r\n (click)=\"checkboxClick($event, item)\"\r\n plain\r\n >{{ item.label }}</x-button\r\n >\r\n }\r\n </x-buttons>\r\n }\r\n @case ('icon') {\r\n <x-buttons boxShadow=\"false\">\r\n @for (item of nodes(); track item.id) {\r\n <x-button\r\n [icon]=\"item.icon!\"\r\n [title]=\"item.title!\"\r\n [size]=\"size()\"\r\n [type]=\"type()\"\r\n [activated]=\"item.checked!\"\r\n [disabled]=\"disabledComputed() || item.disabled!\"\r\n attrType=\"button\"\r\n (click)=\"checkboxClick($event, item)\"\r\n plain\r\n >{{ item.label }}</x-button\r\n >\r\n }\r\n </x-buttons>\r\n }\r\n @case ('tag') {\r\n @for (item of nodes(); track item) {\r\n <x-tag\r\n checked\r\n manual\r\n [type]=\"type()\"\r\n [size]=\"size()\"\r\n [bordered]=\"tagBordered()\"\r\n [dark]=\"tagDark()\"\r\n [disabled]=\"disabledComputed() || item.disabled!\"\r\n [selected]=\"item.checked!\"\r\n (click)=\"checkboxClick($event, item)\"\r\n >{{ item.label }}</x-tag\r\n >\r\n }\r\n }\r\n }\r\n </div>\r\n @if (after()) {\r\n <div class=\"x-checkbox-row-after\">\r\n <ng-container *xOutlet=\"after()\">{{ after() }}</ng-container>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XCheckboxComponent } from './checkbox.component';\r\n\r\n@NgModule({\r\n exports: [XCheckboxComponent],\r\n imports: [XCheckboxComponent]\r\n})\r\nexport class XCheckboxModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-nest-ui-checkbox.mjs","sources":["../../../../lib/ng-nest/ui/checkbox/checkbox.property.ts","../../../../lib/ng-nest/ui/checkbox/checkbox.component.ts","../../../../lib/ng-nest/ui/checkbox/checkbox.component.html","../../../../lib/ng-nest/ui/checkbox/checkbox.module.ts","../../../../lib/ng-nest/ui/checkbox/ng-nest-ui-checkbox.ts"],"sourcesContent":["import { XToBoolean, XToCssPixelValue, XToDataConvert } from '@ng-nest/ui/core';\r\nimport { Component, TemplateRef, input } from '@angular/core';\r\nimport { XButtonType } from '@ng-nest/ui/button';\r\nimport { XFormControlFunction, XFormOption } from '@ng-nest/ui/base-form';\r\nimport type {\r\n XData,\r\n XTemplate,\r\n XIdentityProperty,\r\n XBoolean,\r\n XDirection,\r\n XAlign,\r\n XJustify,\r\n XNumber\r\n} from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Checkbox\r\n * @selector x-checkbox\r\n * @decorator component\r\n */\r\nexport const XCheckboxPrefix = 'x-checkbox';\r\nconst X_CHECKBOX_CONFIG_NAME = 'checkbox';\r\n\r\n/**\r\n * Checkbox Property\r\n */\r\n@Component({ selector: `${XCheckboxPrefix}-property`, template: '' })\r\nexport class XCheckboxProperty extends XFormControlFunction(X_CHECKBOX_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 多选框数据\r\n * @en_US Checkbox data\r\n */\r\n readonly data = input<XData<XCheckboxNode>, XData<XCheckboxNode>>([], { transform: XToDataConvert });\r\n /**\r\n * @zh_CN 按钮样式\r\n * @en_US Button style\r\n */\r\n readonly button = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 图标样式\r\n * @en_US Icon style\r\n */\r\n readonly icon = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN tag 标签样式\r\n * @en_US Tag style\r\n */\r\n readonly tag = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 不确定状态的样式\r\n * @en_US Uncertain state style\r\n */\r\n readonly indeterminate = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 按钮/图标/ tag 标签样式时生效\r\n * @en_US Take effect when button style\r\n */\r\n readonly type = input<XButtonType>('initial');\r\n /**\r\n * @zh_CN tag 标签边框\r\n * @en_US Tag bordered\r\n */\r\n readonly tagBordered = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN tag 标签深色主题\r\n * @en_US Tag dark theme\r\n */\r\n readonly tagDark = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 只有一个选项,启动此参数时,value 的值为 true / false\r\n * @en_US There is only one option, when this parameter is activated, the value is true or false\r\n */\r\n readonly single = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 垂直布局,不支持 button 和 icon 样式\r\n * @en_US Vertical layout, does not support button and icon styles\r\n */\r\n readonly vertical = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 标签\r\n * @en_US Label\r\n */\r\n override readonly label = input<XTemplate>('');\r\n /**\r\n * @zh_CN 标签宽度\r\n * @en_US Label width\r\n */\r\n override readonly labelWidth = input<string, XNumber>('', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 标签文字对齐方式\r\n * @en_US Label text alignment method\r\n */\r\n override readonly labelAlign = input<XAlign>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素水平排列方式\r\n * @en_US The level of sub-element level arrangement under flex layout\r\n */\r\n override readonly justify = input<XJustify>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素垂直排列方式\r\n * @en_US sub-element vertical arrangement method under flex layout\r\n */\r\n override readonly align = input<XAlign>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素排列方向\r\n * @en_US The direction of the sub-element arrangement under flex layout\r\n */\r\n override readonly direction = input<XDirection>('column');\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 Node template\r\n */\r\n override readonly valueTpl = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 值模板参数\r\n * @en_US Node template\r\n */\r\n override readonly valueTplContext = input();\r\n /**\r\n * @zh_CN 前置标签\r\n * @en_US Before label\r\n */\r\n override readonly before = input<XTemplate>();\r\n /**\r\n * @zh_CN 后置标签\r\n * @en_US After label\r\n */\r\n override readonly after = input<XTemplate>();\r\n}\r\n\r\n/**\r\n * Checkbox Option\r\n */\r\nexport interface XCheckboxOption extends XFormOption {\r\n /**\r\n * @zh_CN 多选框数据\r\n * @en_US Checkbox data\r\n */\r\n data?: XData<XCheckboxNode>;\r\n /**\r\n * @zh_CN 按钮样式\r\n * @en_US Button style\r\n */\r\n button?: boolean;\r\n /**\r\n * @zh_CN 图标样式\r\n * @en_US Icon style\r\n */\r\n icon?: boolean;\r\n /**\r\n * @zh_CN tag 标签样式\r\n * @en_US Tag style\r\n */\r\n tag?: boolean;\r\n /**\r\n * @zh_CN 不确定状态的样式\r\n * @en_US Uncertain state style\r\n */\r\n indeterminate?: boolean;\r\n /**\r\n * @zh_CN 按钮/图标/ tag 标签样式时生效\r\n * @en_US Take effect when button style\r\n */\r\n type?: XButtonType;\r\n /**\r\n * @zh_CN tag 标签边框\r\n * @en_US Tag bordered\r\n */\r\n tagBordered?: boolean;\r\n /**\r\n * @zh_CN tag 标签深色主题\r\n * @en_US Tag dark theme\r\n */\r\n tagDark?: boolean;\r\n /**\r\n * @zh_CN 只有一个选项,启动此参数时,value 的值为 true / false\r\n * @en_US There is only one option, when this parameter is activated, the value is true or false\r\n */\r\n single?: boolean;\r\n /**\r\n * @zh_CN 垂直布局,不支持 button 和 icon 样式\r\n * @en_US Vertical layout, does not support button and icon styles\r\n */\r\n vertical?: boolean;\r\n /**\r\n * @zh_CN 标签\r\n * @en_US Label\r\n */\r\n label?: string;\r\n /**\r\n * @zh_CN 标签宽度\r\n * @en_US Label width\r\n */\r\n labelWidth?: string;\r\n /**\r\n * @zh_CN 标签文字对齐方式\r\n * @en_US Label text alignment method\r\n */\r\n labelAlign?: XAlign;\r\n /**\r\n * @zh_CN flex 布局下的子元素水平排列方式\r\n * @en_US The level of sub-element level arrangement under flex layout\r\n */\r\n justify?: XJustify;\r\n /**\r\n * @zh_CN flex 布局下的子元素垂直排列方式\r\n * @en_US sub-element vertical arrangement method under flex layout\r\n */\r\n align?: XAlign;\r\n /**\r\n * @zh_CN flex 布局下的子元素排列方向\r\n * @en_US The direction of the sub-element arrangement under flex layout\r\n */\r\n direction?: XDirection;\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 Before label\r\n */\r\n before?: XTemplate;\r\n /**\r\n * @zh_CN 后置标签\r\n * @en_US After label\r\n */\r\n after?: XTemplate;\r\n}\r\n\r\n/**\r\n * @zh_CN Checkbox 数据对象\r\n * @en_US Checkbox data object\r\n */\r\nexport interface XCheckboxNode extends XIdentityProperty {\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disable\r\n */\r\n disabled?: boolean;\r\n /**\r\n * @zh_CN 选中\r\n * @en_US Disable\r\n */\r\n checked?: boolean;\r\n /**\r\n * @zh_CN 图标\r\n * @en_US Icon\r\n */\r\n icon?: string;\r\n /**\r\n * @zh_CN 图标的提示信息\r\n * @en_US Icon message\r\n */\r\n title?: string;\r\n /**\r\n * @zh_CN 标签文字\r\n * @en_US Label text\r\n */\r\n label?: XTemplate;\r\n /**\r\n * @zh_CN label 为模板参数的时候\r\n * @en_US Label when setting template parameters\r\n */\r\n node?: XCheckboxNode;\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n OnChanges,\r\n SimpleChanges,\r\n TemplateRef,\r\n OnDestroy,\r\n computed,\r\n viewChild,\r\n signal,\r\n effect\r\n} from '@angular/core';\r\nimport { XCheckboxPrefix, XCheckboxNode, XCheckboxProperty } from './checkbox.property';\r\nimport { Subject } from 'rxjs';\r\nimport { XIsChange, XSetData } from '@ng-nest/ui/core';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\nimport { XTagComponent } from '@ng-nest/ui/tag';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { XButtonComponent, XButtonsComponent } from '@ng-nest/ui/button';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { NgClass } from '@angular/common';\r\n\r\n@Component({\r\n selector: `${XCheckboxPrefix}`,\r\n imports: [NgClass, FormsModule, XButtonComponent, XButtonsComponent, XTagComponent, XOutletDirective],\r\n templateUrl: './checkbox.component.html',\r\n styleUrls: ['./checkbox.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XCheckboxComponent)]\r\n})\r\nexport class XCheckboxComponent extends XCheckboxProperty implements OnChanges, OnDestroy {\r\n checkbox = viewChild.required('checkbox', { read: ElementRef<HTMLElement> });\r\n\r\n beforeIsTemplate = computed(() => this.before() instanceof TemplateRef);\r\n afterIsTemplate = computed(() => this.after() instanceof TemplateRef);\r\n\r\n nodes = signal<XCheckboxNode[]>([]);\r\n private unSubject = new Subject<void>();\r\n\r\n classMap = computed(() => ({\r\n [`x-justify-${this.justify()}`]: !!this.justify(),\r\n [`x-align-${this.align()}`]: !!this.align(),\r\n [`x-direction-${this.direction()}`]: !!this.direction()\r\n }));\r\n labelMapSignal = computed(() => ({\r\n [`x-text-align-${this.labelAlign()}`]: !!this.labelAlign()\r\n }));\r\n checkboxType = computed(() => {\r\n if (this.button()) {\r\n return 'button';\r\n } else if (this.icon()) {\r\n return 'icon';\r\n } else if (this.tag()) {\r\n return 'tag';\r\n } else {\r\n return 'initial';\r\n }\r\n });\r\n\r\n constructor() {\r\n super();\r\n effect(() => {\r\n this.value();\r\n this.setChecked();\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { data } = changes;\r\n XIsChange(data) && this.setData();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n }\r\n\r\n checkboxClick(event: Event, node: XCheckboxNode) {\r\n event.preventDefault();\r\n if (this.disabledComputed() || node.disabled) return;\r\n this.formControlValidator();\r\n if (this.single()) {\r\n this.value.update((x) => !x);\r\n } else {\r\n this.value.set((this.value() as Array<any>) || []);\r\n let index = this.value().indexOf(node.id);\r\n if (index >= 0) {\r\n this.value().splice(index, 1);\r\n this.value.set([...this.value()]);\r\n } else this.value.set([...this.value(), node.id]);\r\n }\r\n if (this.onChange) this.onChange(this.value());\r\n }\r\n\r\n isChecked(id: any): boolean {\r\n if (this.single()) return this.value() as boolean;\r\n else return Array.isArray(this.value()) && this.value().includes(id);\r\n }\r\n\r\n setChecked() {\r\n this.nodes.update((x) => {\r\n x.forEach((y) => {\r\n y.checked = this.isChecked(y.id);\r\n });\r\n return [...x];\r\n });\r\n }\r\n\r\n private setData() {\r\n XSetData<XCheckboxNode>(this.data(), this.unSubject).subscribe((x) => {\r\n this.nodes.set(x);\r\n });\r\n }\r\n}\r\n","<div\r\n #checkbox\r\n class=\"x-checkbox\"\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-checkbox-button]=\"button()\"\r\n [class.x-checkbox-icon]=\"icon()\"\r\n [class.x-checkbox-vertical]=\"vertical()\"\r\n [class.x-checkbox-after]=\"after()\"\r\n [class.x-checkbox-before]=\"before()\"\r\n [class.x-checkbox-after-template]=\"afterIsTemplate()\"\r\n [class.x-checkbox-before-template]=\"beforeIsTemplate()\"\r\n [ngClass]=\"classMap()\"\r\n>\r\n @if (label()) {\r\n <label\r\n [class.x-checkbox-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-checkbox-row\">\r\n @if (before()) {\r\n <div class=\"x-checkbox-row-before\">\r\n <ng-container *xOutlet=\"before()\">{{ before() }}</ng-container>\r\n </div>\r\n }\r\n <div class=\"x-checkbox-row-list\">\r\n @switch (checkboxType()) {\r\n @case ('initial') {\r\n @for (item of nodes(); track item.id) {\r\n <div\r\n class=\"x-checkbox-row-item\"\r\n [class.x-checked]=\"item.checked!\"\r\n [class.x-disabled]=\"disabledComputed() || item.disabled\"\r\n [class.x-indeterminate]=\"indeterminate()\"\r\n (click)=\"checkboxClick($event, item)\"\r\n >\r\n <span class=\"x-checkbox-box\"></span>\r\n <span class=\"x-checkbox-label\">\r\n <ng-container *xOutlet=\"item.label; context: { $node: item.node }\">{{ item.label }}</ng-container>\r\n </span>\r\n </div>\r\n }\r\n }\r\n @case ('button') {\r\n <x-buttons boxShadow=\"false\">\r\n @for (item of nodes(); track item.id) {\r\n <x-button\r\n [icon]=\"item.icon!\"\r\n [title]=\"item.title!\"\r\n [size]=\"size()\"\r\n [type]=\"type()\"\r\n [activated]=\"item.checked!\"\r\n [disabled]=\"disabledComputed() || item.disabled!\"\r\n attrType=\"button\"\r\n (click)=\"checkboxClick($event, item)\"\r\n plain\r\n >{{ item.label }}</x-button\r\n >\r\n }\r\n </x-buttons>\r\n }\r\n @case ('icon') {\r\n <x-buttons boxShadow=\"false\">\r\n @for (item of nodes(); track item.id) {\r\n <x-button\r\n [icon]=\"item.icon!\"\r\n [title]=\"item.title!\"\r\n [size]=\"size()\"\r\n [type]=\"type()\"\r\n [activated]=\"item.checked!\"\r\n [disabled]=\"disabledComputed() || item.disabled!\"\r\n attrType=\"button\"\r\n (click)=\"checkboxClick($event, item)\"\r\n plain\r\n >{{ item.label }}</x-button\r\n >\r\n }\r\n </x-buttons>\r\n }\r\n @case ('tag') {\r\n @for (item of nodes(); track item) {\r\n <x-tag\r\n checked\r\n manual\r\n [type]=\"type()\"\r\n [size]=\"size()\"\r\n [bordered]=\"tagBordered()\"\r\n [dark]=\"tagDark()\"\r\n [disabled]=\"disabledComputed() || item.disabled!\"\r\n [selected]=\"item.checked!\"\r\n (click)=\"checkboxClick($event, item)\"\r\n >{{ item.label }}</x-tag\r\n >\r\n }\r\n }\r\n }\r\n </div>\r\n @if (after()) {\r\n <div class=\"x-checkbox-row-after\">\r\n <ng-container *xOutlet=\"after()\">{{ after() }}</ng-container>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XCheckboxComponent } from './checkbox.component';\r\n\r\n@NgModule({\r\n exports: [XCheckboxComponent],\r\n imports: [XCheckboxComponent]\r\n})\r\nexport class XCheckboxModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|