@ng-nest/ui 13.0.4 → 13.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/alert/alert.component.d.ts +2 -1
  2. package/core/config/config.d.ts +7 -1
  3. package/core/interfaces/layout.type.d.ts +1 -1
  4. package/dialog/{dialog-container.component.d.ts → dialog-portal.component.d.ts} +3 -3
  5. package/dialog/{dialog-container.directives.d.ts → dialog-portal.directives.d.ts} +0 -0
  6. package/dialog/dialog-ref.d.ts +3 -3
  7. package/dialog/dialog.module.d.ts +3 -3
  8. package/dialog/dialog.property.d.ts +3 -3
  9. package/dialog/public-api.d.ts +2 -2
  10. package/drawer/drawer-container.component.d.ts +3 -13
  11. package/drawer/drawer-portal.component.d.ts +18 -0
  12. package/drawer/{drawer-container.directives.d.ts → drawer-portal.directives.d.ts} +0 -0
  13. package/drawer/drawer-ref.d.ts +3 -3
  14. package/drawer/drawer.component.d.ts +10 -3
  15. package/drawer/drawer.module.d.ts +9 -8
  16. package/drawer/drawer.property.d.ts +16 -2
  17. package/drawer/examples/en_US/default/container/README.md +6 -0
  18. package/drawer/examples/zh_CN/default/container/README.md +6 -0
  19. package/drawer/public-api.d.ts +3 -2
  20. package/esm2020/alert/alert.component.mjs +9 -4
  21. package/esm2020/auto-complete/auto-complete.module.mjs +2 -3
  22. package/esm2020/cascade/cascade.module.mjs +2 -3
  23. package/esm2020/color-picker/color-picker.module.mjs +2 -3
  24. package/esm2020/core/config/config.mjs +1 -1
  25. package/esm2020/core/interfaces/layout.type.mjs +1 -1
  26. package/esm2020/date-picker/date-picker.module.mjs +2 -3
  27. package/esm2020/dialog/dialog-portal.component.mjs +52 -0
  28. package/esm2020/dialog/{dialog-container.directives.mjs → dialog-portal.directives.mjs} +7 -7
  29. package/esm2020/dialog/dialog-ref.mjs +1 -1
  30. package/esm2020/dialog/dialog.component.mjs +5 -5
  31. package/esm2020/dialog/dialog.module.mjs +7 -7
  32. package/esm2020/dialog/dialog.property.mjs +2 -2
  33. package/esm2020/dialog/dialog.service.mjs +3 -3
  34. package/esm2020/dialog/public-api.mjs +3 -3
  35. package/esm2020/drawer/drawer-container.component.mjs +16 -39
  36. package/esm2020/drawer/drawer-portal.component.mjs +52 -0
  37. package/esm2020/drawer/{drawer-container.directives.mjs → drawer-portal.directives.mjs} +5 -5
  38. package/esm2020/drawer/drawer-ref.mjs +1 -1
  39. package/esm2020/drawer/drawer.component.mjs +54 -18
  40. package/esm2020/drawer/drawer.module.mjs +23 -6
  41. package/esm2020/drawer/drawer.property.mjs +19 -1
  42. package/esm2020/drawer/drawer.service.mjs +4 -4
  43. package/esm2020/drawer/public-api.mjs +4 -3
  44. package/esm2020/dropdown/dropdown.module.mjs +2 -3
  45. package/esm2020/find/find.component.mjs +13 -4
  46. package/esm2020/find/find.property.mjs +18 -2
  47. package/esm2020/menu/menu.component.mjs +3 -3
  48. package/esm2020/menu/menu.property.mjs +7 -2
  49. package/esm2020/message/message-ref.mjs +12 -0
  50. package/esm2020/message/message.component.mjs +3 -3
  51. package/esm2020/message/message.property.mjs +1 -1
  52. package/esm2020/message/message.service.mjs +34 -13
  53. package/esm2020/message/public-api.mjs +2 -1
  54. package/esm2020/popconfirm/popconfirm.component.mjs +26 -5
  55. package/esm2020/popconfirm/popconfirm.property.mjs +10 -3
  56. package/esm2020/popover/popover.directive.mjs +8 -2
  57. package/esm2020/popover/popover.module.mjs +2 -3
  58. package/esm2020/popover/popover.property.mjs +7 -2
  59. package/esm2020/select/select.module.mjs +2 -3
  60. package/esm2020/table/table-body.component.mjs +4 -4
  61. package/esm2020/table/table.component.mjs +3 -3
  62. package/esm2020/table/table.property.mjs +7 -3
  63. package/esm2020/time-picker/time-picker.module.mjs +2 -3
  64. package/esm2020/tooltip/tooltip.directive.mjs +12 -4
  65. package/esm2020/tooltip/tooltip.module.mjs +2 -3
  66. package/esm2020/tooltip/tooltip.property.mjs +18 -2
  67. package/esm2020/tree/tree-node.component.mjs +3 -3
  68. package/esm2020/tree/tree.property.mjs +8 -2
  69. package/fesm2015/ng-nest-ui-alert.mjs +8 -3
  70. package/fesm2015/ng-nest-ui-alert.mjs.map +1 -1
  71. package/fesm2015/ng-nest-ui-auto-complete.mjs +1 -2
  72. package/fesm2015/ng-nest-ui-auto-complete.mjs.map +1 -1
  73. package/fesm2015/ng-nest-ui-cascade.mjs +1 -2
  74. package/fesm2015/ng-nest-ui-cascade.mjs.map +1 -1
  75. package/fesm2015/ng-nest-ui-color-picker.mjs +1 -2
  76. package/fesm2015/ng-nest-ui-color-picker.mjs.map +1 -1
  77. package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
  78. package/fesm2015/ng-nest-ui-date-picker.mjs +1 -2
  79. package/fesm2015/ng-nest-ui-date-picker.mjs.map +1 -1
  80. package/fesm2015/ng-nest-ui-dialog.mjs +22 -22
  81. package/fesm2015/ng-nest-ui-dialog.mjs.map +1 -1
  82. package/fesm2015/ng-nest-ui-drawer.mjs +129 -32
  83. package/fesm2015/ng-nest-ui-drawer.mjs.map +1 -1
  84. package/fesm2015/ng-nest-ui-dropdown.mjs +1 -2
  85. package/fesm2015/ng-nest-ui-dropdown.mjs.map +1 -1
  86. package/fesm2015/ng-nest-ui-find.mjs +29 -4
  87. package/fesm2015/ng-nest-ui-find.mjs.map +1 -1
  88. package/fesm2015/ng-nest-ui-menu.mjs +8 -3
  89. package/fesm2015/ng-nest-ui-menu.mjs.map +1 -1
  90. package/fesm2015/ng-nest-ui-message.mjs +48 -15
  91. package/fesm2015/ng-nest-ui-message.mjs.map +1 -1
  92. package/fesm2015/ng-nest-ui-popconfirm.mjs +34 -6
  93. package/fesm2015/ng-nest-ui-popconfirm.mjs.map +1 -1
  94. package/fesm2015/ng-nest-ui-popover.mjs +14 -4
  95. package/fesm2015/ng-nest-ui-popover.mjs.map +1 -1
  96. package/fesm2015/ng-nest-ui-select.mjs +1 -2
  97. package/fesm2015/ng-nest-ui-select.mjs.map +1 -1
  98. package/fesm2015/ng-nest-ui-table.mjs +11 -7
  99. package/fesm2015/ng-nest-ui-table.mjs.map +1 -1
  100. package/fesm2015/ng-nest-ui-time-picker.mjs +1 -2
  101. package/fesm2015/ng-nest-ui-time-picker.mjs.map +1 -1
  102. package/fesm2015/ng-nest-ui-tooltip.mjs +29 -6
  103. package/fesm2015/ng-nest-ui-tooltip.mjs.map +1 -1
  104. package/fesm2015/ng-nest-ui-tree.mjs +9 -3
  105. package/fesm2015/ng-nest-ui-tree.mjs.map +1 -1
  106. package/fesm2020/ng-nest-ui-alert.mjs +8 -3
  107. package/fesm2020/ng-nest-ui-alert.mjs.map +1 -1
  108. package/fesm2020/ng-nest-ui-auto-complete.mjs +1 -2
  109. package/fesm2020/ng-nest-ui-auto-complete.mjs.map +1 -1
  110. package/fesm2020/ng-nest-ui-cascade.mjs +1 -2
  111. package/fesm2020/ng-nest-ui-cascade.mjs.map +1 -1
  112. package/fesm2020/ng-nest-ui-color-picker.mjs +1 -2
  113. package/fesm2020/ng-nest-ui-color-picker.mjs.map +1 -1
  114. package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
  115. package/fesm2020/ng-nest-ui-date-picker.mjs +1 -2
  116. package/fesm2020/ng-nest-ui-date-picker.mjs.map +1 -1
  117. package/fesm2020/ng-nest-ui-dialog.mjs +22 -22
  118. package/fesm2020/ng-nest-ui-dialog.mjs.map +1 -1
  119. package/fesm2020/ng-nest-ui-drawer.mjs +127 -32
  120. package/fesm2020/ng-nest-ui-drawer.mjs.map +1 -1
  121. package/fesm2020/ng-nest-ui-dropdown.mjs +1 -2
  122. package/fesm2020/ng-nest-ui-dropdown.mjs.map +1 -1
  123. package/fesm2020/ng-nest-ui-find.mjs +29 -4
  124. package/fesm2020/ng-nest-ui-find.mjs.map +1 -1
  125. package/fesm2020/ng-nest-ui-menu.mjs +8 -3
  126. package/fesm2020/ng-nest-ui-menu.mjs.map +1 -1
  127. package/fesm2020/ng-nest-ui-message.mjs +47 -15
  128. package/fesm2020/ng-nest-ui-message.mjs.map +1 -1
  129. package/fesm2020/ng-nest-ui-popconfirm.mjs +34 -6
  130. package/fesm2020/ng-nest-ui-popconfirm.mjs.map +1 -1
  131. package/fesm2020/ng-nest-ui-popover.mjs +14 -4
  132. package/fesm2020/ng-nest-ui-popover.mjs.map +1 -1
  133. package/fesm2020/ng-nest-ui-select.mjs +1 -2
  134. package/fesm2020/ng-nest-ui-select.mjs.map +1 -1
  135. package/fesm2020/ng-nest-ui-table.mjs +11 -7
  136. package/fesm2020/ng-nest-ui-table.mjs.map +1 -1
  137. package/fesm2020/ng-nest-ui-time-picker.mjs +1 -2
  138. package/fesm2020/ng-nest-ui-time-picker.mjs.map +1 -1
  139. package/fesm2020/ng-nest-ui-tooltip.mjs +29 -6
  140. package/fesm2020/ng-nest-ui-tooltip.mjs.map +1 -1
  141. package/fesm2020/ng-nest-ui-tree.mjs +9 -3
  142. package/fesm2020/ng-nest-ui-tree.mjs.map +1 -1
  143. package/find/find.property.d.ts +31 -1
  144. package/menu/menu.property.d.ts +8 -3
  145. package/message/examples/en_US/default/loading/README.md +6 -0
  146. package/message/examples/zh_CN/default/loading/README.md +6 -0
  147. package/message/message-ref.d.ts +8 -0
  148. package/message/message.component.d.ts +3 -3
  149. package/message/message.property.d.ts +23 -3
  150. package/message/message.service.d.ts +4 -1
  151. package/message/public-api.d.ts +1 -0
  152. package/package.json +7 -7
  153. package/popconfirm/examples/en_US/default/async-close/README.md +6 -0
  154. package/popconfirm/examples/en_US/default/condition/README.md +6 -0
  155. package/popconfirm/examples/zh_CN/default/async-close/README.md +6 -0
  156. package/popconfirm/examples/zh_CN/default/condition/README.md +6 -0
  157. package/popconfirm/popconfirm.component.d.ts +6 -2
  158. package/popconfirm/popconfirm.property.d.ts +13 -2
  159. package/popover/popover.property.d.ts +6 -1
  160. package/steps/examples/zh_CN/default/node-status/README.md +1 -1
  161. package/table/examples/en_US/default/rowclass/README.md +6 -0
  162. package/table/examples/zh_CN/default/rowclass/README.md +6 -0
  163. package/table/table.property.d.ts +23 -2
  164. package/tooltip/tooltip.directive.d.ts +1 -0
  165. package/tooltip/tooltip.property.d.ts +11 -1
  166. package/tree/tree.property.d.ts +6 -1
  167. package/esm2020/dialog/dialog-container.component.mjs +0 -52
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-popconfirm.mjs","sources":["../../../../lib/ng-nest/ui/popconfirm/popconfirm.property.ts","../../../../lib/ng-nest/ui/popconfirm/popconfirm.component.ts","../../../../lib/ng-nest/ui/popconfirm/popconfirm.component.html","../../../../lib/ng-nest/ui/popconfirm/popconfirm.module.ts","../../../../lib/ng-nest/ui/popconfirm/ng-nest-ui-popconfirm.ts"],"sourcesContent":["import { XPlacement, XTemplate, XProperty, XWithConfig } from '@ng-nest/ui/core';\r\nimport { XPopoverTrigger } from '@ng-nest/ui/popover';\r\nimport { Input, Output, EventEmitter, Component } from '@angular/core';\r\n\r\n/**\r\n * Popconfirm\r\n * @selector x-popconfirm\r\n * @decorator component\r\n */\r\nexport const XPopconfirmPrefix = 'x-popconfirm';\r\nconst X_CONFIG_NAME = 'popconfirm';\r\n\r\n/**\r\n * Popconfirm Property\r\n */\r\n@Component({ template: '' })\r\nexport class XPopconfirmProperty extends XProperty {\r\n /**\r\n * @zh_CN 标题,支持自定义模板\r\n * @en_US Title, support custom template\r\n */\r\n @Input() title?: XTemplate;\r\n /**\r\n * @zh_CN 内容,支持自定义模板\r\n * @en_US Content, support custom templates\r\n */\r\n @Input() content?: XTemplate;\r\n /**\r\n * @zh_CN 弹出的位置\r\n * @en_US Pop-up position\r\n */\r\n @Input() @XWithConfig<XPlacement>(X_CONFIG_NAME, 'bottom') placement?: XPlacement;\r\n /**\r\n * @zh_CN 激活方式\r\n * @en_US Activation method\r\n */\r\n @Input() @XWithConfig<XPopoverTrigger>(X_CONFIG_NAME, 'click') trigger?: XPopoverTrigger;\r\n /**\r\n * @zh_CN 宽度\r\n * @en_US Width\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, '12rem') width?: string;\r\n /**\r\n * @zh_CN 图标\r\n * @en_US Icon\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, 'fto-help-circle') icon?: string;\r\n /**\r\n * @zh_CN 图标颜色\r\n * @en_US Icon color\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, '#e6a23c') iconColor?: string;\r\n /**\r\n * @zh_CN 取消的文字\r\n * @en_US Canceled text\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME) cancelText?: string;\r\n /**\r\n * @zh_CN 确认的文字\r\n * @en_US Confirmed text\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME) confirmText?: string;\r\n /**\r\n * @zh_CN 取消的点击事件\r\n * @en_US Cancelled click event\r\n */\r\n @Output() cancel = new EventEmitter();\r\n /**\r\n * @zh_CN 确认的点击事件\r\n * @en_US Confirmed click event\r\n */\r\n @Output() confirm = new EventEmitter();\r\n}\r\n","import { Renderer2, ElementRef, ChangeDetectorRef, Component, ChangeDetectionStrategy, ViewEncapsulation } from '@angular/core';\r\nimport { XPopconfirmProperty, XPopconfirmPrefix } from './popconfirm.property';\r\nimport { XBoolean, XConfigService } from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\nimport { XI18nService, XI18nPopconfirm } from '@ng-nest/ui/i18n';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: `${XPopconfirmPrefix}`,\r\n templateUrl: './popconfirm.component.html',\r\n styleUrls: ['./popconfirm.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XPopconfirmComponent extends XPopconfirmProperty {\r\n visible!: XBoolean;\r\n locale: XI18nPopconfirm = {};\r\n\r\n private _unSubject = new Subject<void>();\r\n\r\n get getCancelText() {\r\n return this.cancelText || this.locale.cancelText;\r\n }\r\n\r\n get getConfirmText() {\r\n return this.confirmText || this.locale.confirmText;\r\n }\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService,\r\n public i18n: XI18nService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.popconfirm as XI18nPopconfirm),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n onCancel() {\r\n this.visible = false;\r\n this.cancel.emit();\r\n }\r\n\r\n onConfirm() {\r\n this.visible = false;\r\n this.confirm.emit();\r\n }\r\n}\r\n","<div\r\n #popconfirm\r\n class=\"x-popconfirm\"\r\n x-popover\r\n [title]=\"titleTpl\"\r\n [content]=\"content\"\r\n [footer]=\"footerTpl\"\r\n [placement]=\"placement\"\r\n [trigger]=\"trigger\"\r\n [width]=\"width\"\r\n [(visible)]=\"visible\"\r\n>\r\n <ng-content></ng-content>\r\n</div>\r\n\r\n<ng-template #titleTpl>\r\n <div class=\"x-popconfirm-title\">\r\n <ng-container *xOutlet=\"title\">\r\n <x-icon *ngIf=\"icon\" [style.color]=\"iconColor\" [type]=\"icon\"></x-icon>\r\n <span>{{ title }}</span>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #footerTpl>\r\n <div class=\"x-popconfirm-buttons\">\r\n <x-button (click)=\"onCancel()\">{{ getCancelText }}</x-button>\r\n <x-button type=\"primary\" (click)=\"onConfirm()\">{{ getConfirmText }}</x-button>\r\n </div>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { XPopconfirmComponent } from './popconfirm.component';\r\nimport { XPopoverModule } from '@ng-nest/ui/popover';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XPopconfirmProperty } from './popconfirm.property';\r\n\r\n@NgModule({\r\n declarations: [XPopconfirmComponent, XPopconfirmProperty],\r\n exports: [XPopconfirmComponent],\r\n imports: [CommonModule, XPopoverModule, XButtonModule, XIconModule, XOutletModule]\r\n})\r\nexport class XPopconfirmModule {}\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-popconfirm.mjs","sources":["../../../../lib/ng-nest/ui/popconfirm/popconfirm.property.ts","../../../../lib/ng-nest/ui/popconfirm/popconfirm.component.ts","../../../../lib/ng-nest/ui/popconfirm/popconfirm.component.html","../../../../lib/ng-nest/ui/popconfirm/popconfirm.module.ts","../../../../lib/ng-nest/ui/popconfirm/ng-nest-ui-popconfirm.ts"],"sourcesContent":["import { XPlacement, XTemplate, XProperty, XWithConfig, XInputBoolean, XBoolean } from '@ng-nest/ui/core';\r\nimport { XPopoverTrigger } from '@ng-nest/ui/popover';\r\nimport { Input, Output, EventEmitter, Component } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n/**\r\n * Popconfirm\r\n * @selector x-popconfirm\r\n * @decorator component\r\n */\r\nexport const XPopconfirmPrefix = 'x-popconfirm';\r\nconst X_CONFIG_NAME = 'popconfirm';\r\n\r\n/**\r\n * Popconfirm Property\r\n */\r\n@Component({ template: '' })\r\nexport class XPopconfirmProperty extends XProperty {\r\n /**\r\n * @zh_CN 标题,支持自定义模板\r\n * @en_US Title, support custom template\r\n */\r\n @Input() title?: XTemplate;\r\n /**\r\n * @zh_CN 内容,支持自定义模板\r\n * @en_US Content, support custom templates\r\n */\r\n @Input() content?: XTemplate;\r\n /**\r\n * @zh_CN 弹出的位置\r\n * @en_US Pop-up position\r\n */\r\n @Input() @XWithConfig<XPlacement>(X_CONFIG_NAME, 'bottom') placement?: XPlacement;\r\n /**\r\n * @zh_CN 激活方式\r\n * @en_US Activation method\r\n */\r\n @Input() @XWithConfig<XPopoverTrigger>(X_CONFIG_NAME, 'click') trigger?: XPopoverTrigger;\r\n /**\r\n * @zh_CN 宽度\r\n * @en_US Width\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, '12rem') width?: string;\r\n /**\r\n * @zh_CN 图标\r\n * @en_US Icon\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, 'fto-help-circle') icon?: string;\r\n /**\r\n * @zh_CN 图标颜色\r\n * @en_US Icon color\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, '#e6a23c') iconColor?: string;\r\n /**\r\n * @zh_CN 取消的文字\r\n * @en_US Canceled text\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME) cancelText?: string;\r\n /**\r\n * @zh_CN 确认的文字\r\n * @en_US Confirmed text\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME) confirmText?: string;\r\n /**\r\n * @zh_CN 确认异步 Observable\r\n * @en_US Confirm async\r\n */\r\n @Input() confirmAsync?: Observable<void>;\r\n /**\r\n * @zh_CN 条件触发\r\n * @en_US condition trigger\r\n */\r\n @Input() @XInputBoolean() condition?: XBoolean;\r\n /**\r\n * @zh_CN 取消的点击事件\r\n * @en_US Cancelled click event\r\n */\r\n @Output() cancel = new EventEmitter();\r\n /**\r\n * @zh_CN 确认的点击事件\r\n * @en_US Confirmed click event\r\n */\r\n @Output() confirm = new EventEmitter();\r\n}\r\n","import { Renderer2, ElementRef, ChangeDetectorRef, Component, ChangeDetectionStrategy, ViewEncapsulation, OnDestroy } from '@angular/core';\r\nimport { XPopconfirmProperty, XPopconfirmPrefix } from './popconfirm.property';\r\nimport { XBoolean, XConfigService } from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\nimport { XI18nService, XI18nPopconfirm } from '@ng-nest/ui/i18n';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: `${XPopconfirmPrefix}`,\r\n templateUrl: './popconfirm.component.html',\r\n styleUrls: ['./popconfirm.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XPopconfirmComponent extends XPopconfirmProperty implements OnDestroy {\r\n visible!: XBoolean;\r\n locale: XI18nPopconfirm = {};\r\n loading = false;\r\n\r\n private _unSubject = new Subject<void>();\r\n private _asyncUnSub = new Subject<void>();\r\n\r\n get getCancelText() {\r\n return this.cancelText || this.locale.cancelText;\r\n }\r\n\r\n get getConfirmText() {\r\n return this.confirmText || this.locale.confirmText;\r\n }\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService,\r\n public i18n: XI18nService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.popconfirm as XI18nPopconfirm),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.complete();\r\n }\r\n\r\n onCancel() {\r\n this.visible = false;\r\n this.cancel.emit();\r\n }\r\n\r\n onConfirm() {\r\n if (this.confirmAsync) {\r\n this.loading = true;\r\n this.confirmAsync.pipe(takeUntil(this._asyncUnSub)).subscribe(() => {\r\n this.loading = false;\r\n this.visible = false;\r\n this.confirm.emit();\r\n this.cdr.detectChanges();\r\n this._asyncUnSub.next();\r\n });\r\n } else {\r\n this.visible = false;\r\n this.confirm.emit();\r\n }\r\n }\r\n\r\n onClick() {\r\n this.condition && this.onConfirm();\r\n }\r\n}\r\n","<div\r\n #popconfirm\r\n class=\"x-popconfirm\"\r\n x-popover\r\n [title]=\"titleTpl\"\r\n [content]=\"content\"\r\n [footer]=\"footerTpl\"\r\n [placement]=\"placement\"\r\n [trigger]=\"trigger\"\r\n [width]=\"width\"\r\n [condition]=\"condition\"\r\n [(visible)]=\"visible\"\r\n (click)=\"onClick()\"\r\n>\r\n <ng-content></ng-content>\r\n</div>\r\n\r\n<ng-template #titleTpl>\r\n <div class=\"x-popconfirm-title\">\r\n <ng-container *xOutlet=\"title\">\r\n <x-icon *ngIf=\"icon\" [style.color]=\"iconColor\" [type]=\"icon\"></x-icon>\r\n <span>{{ title }}</span>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #footerTpl>\r\n <div class=\"x-popconfirm-buttons\">\r\n <x-button (click)=\"onCancel()\">{{ getCancelText }}</x-button>\r\n <x-button type=\"primary\" (click)=\"onConfirm()\" [loading]=\"loading\">{{ getConfirmText }}</x-button>\r\n </div>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { XPopconfirmComponent } from './popconfirm.component';\r\nimport { XPopoverModule } from '@ng-nest/ui/popover';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XPopconfirmProperty } from './popconfirm.property';\r\n\r\n@NgModule({\r\n declarations: [XPopconfirmComponent, XPopconfirmProperty],\r\n exports: [XPopconfirmComponent],\r\n imports: [CommonModule, XPopoverModule, XButtonModule, XIconModule, XOutletModule]\r\n})\r\nexport class XPopconfirmModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -34,7 +34,7 @@ class XPopoverProperty extends XProperty {
34
34
  }
35
35
  }
36
36
  /** @nocollapse */ /** @nocollapse */ XPopoverProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: XPopoverProperty, deps: null, target: i0.ɵɵFactoryTarget.Directive });
37
- /** @nocollapse */ /** @nocollapse */ XPopoverProperty.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: XPopoverProperty, selector: "[x-popover], x-popover", inputs: { title: "title", content: "content", footer: "footer", placement: "placement", trigger: "trigger", width: "width", visible: "visible" }, outputs: { visibleChange: "visibleChange" }, usesInheritance: true, ngImport: i0 });
37
+ /** @nocollapse */ /** @nocollapse */ XPopoverProperty.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: XPopoverProperty, selector: "[x-popover], x-popover", inputs: { title: "title", content: "content", footer: "footer", placement: "placement", trigger: "trigger", width: "width", visible: "visible", condition: "condition" }, outputs: { visibleChange: "visibleChange" }, usesInheritance: true, ngImport: i0 });
38
38
  __decorate([
39
39
  XWithConfig(X_CONFIG_NAME, 'bottom')
40
40
  ], XPopoverProperty.prototype, "placement", void 0);
@@ -47,6 +47,9 @@ __decorate([
47
47
  __decorate([
48
48
  XInputBoolean()
49
49
  ], XPopoverProperty.prototype, "visible", void 0);
50
+ __decorate([
51
+ XInputBoolean()
52
+ ], XPopoverProperty.prototype, "condition", void 0);
50
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: XPopoverProperty, decorators: [{
51
54
  type: Directive,
52
55
  args: [{ selector: `[${XPopoverPrefix}], ${XPopoverPrefix}` }]
@@ -64,6 +67,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
64
67
  type: Input
65
68
  }], visible: [{
66
69
  type: Input
70
+ }], condition: [{
71
+ type: Input
67
72
  }], visibleChange: [{
68
73
  type: Output
69
74
  }] } });
@@ -182,6 +187,8 @@ class XPopoverDirective extends XPopoverProperty {
182
187
  this._unSubject = new Subject();
183
188
  }
184
189
  click() {
190
+ if (this.condition)
191
+ return;
185
192
  if (this.trigger === 'click') {
186
193
  this.visible = !this.visible;
187
194
  if (this.visible)
@@ -192,10 +199,14 @@ class XPopoverDirective extends XPopoverProperty {
192
199
  }
193
200
  }
194
201
  mouseenter() {
202
+ if (this.condition)
203
+ return;
195
204
  if (this.trigger === 'hover')
196
205
  this.show();
197
206
  }
198
207
  mouseleave() {
208
+ if (this.condition)
209
+ return;
199
210
  if (this.trigger === 'hover')
200
211
  this.hide();
201
212
  }
@@ -203,7 +214,7 @@ class XPopoverDirective extends XPopoverProperty {
203
214
  ngOnChanges(changes) {
204
215
  const { content, visible } = changes;
205
216
  XIsChange(content) && this.contentChange.next(this.content);
206
- if (XIsChange(visible)) {
217
+ if (XIsChange(visible) && !this.condition) {
207
218
  if (this.visible)
208
219
  this.show();
209
220
  else
@@ -334,8 +345,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
334
345
  args: [{
335
346
  declarations: [XPopoverDirective, XPopoverPortalComponent, XPopoverProperty],
336
347
  exports: [XPopoverDirective, XPopoverPortalComponent],
337
- imports: [CommonModule, XPortalModule, XOutletModule],
338
- entryComponents: [XPopoverPortalComponent]
348
+ imports: [CommonModule, XPortalModule, XOutletModule]
339
349
  }]
340
350
  }] });
341
351
 
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-popover.mjs","sources":["../../../../lib/ng-nest/ui/popover/popover.property.ts","../../../../lib/ng-nest/ui/popover/popover-portal.component.ts","../../../../lib/ng-nest/ui/popover/popover-portal.component.html","../../../../lib/ng-nest/ui/popover/popover.directive.ts","../../../../lib/ng-nest/ui/popover/popover.module.ts","../../../../lib/ng-nest/ui/popover/ng-nest-ui-popover.ts"],"sourcesContent":["import { XPlacement, XTemplate, XProperty, XInputBoolean, XBoolean, XWithConfig } from '@ng-nest/ui/core';\r\nimport { Input, Output, EventEmitter, Directive } from '@angular/core';\r\n\r\n/**\r\n * Popover\r\n * @selector x-popover\r\n * @decorator directive\r\n */\r\nexport const XPopoverPrefix = 'x-popover';\r\nconst X_CONFIG_NAME = 'popover';\r\n\r\n/**\r\n * Popover Property\r\n */\r\n@Directive({ selector: `[${XPopoverPrefix}], ${XPopoverPrefix}` })\r\nexport class XPopoverProperty extends XProperty {\r\n /**\r\n * @zh_CN 标题,支持自定义模板\r\n * @en_US Title, support custom template\r\n */\r\n @Input() title?: XTemplate;\r\n /**\r\n * @zh_CN 内容,支持自定义模板\r\n * @en_US Content, support custom templates\r\n */\r\n @Input() content?: XTemplate;\r\n /**\r\n * @zh_CN 底部,支持自定义模板\r\n * @en_US At the bottom, support custom templates\r\n */\r\n @Input() footer?: XTemplate;\r\n /**\r\n * @zh_CN 弹出的位置\r\n * @en_US Pop-up position\r\n */\r\n @Input() @XWithConfig<XPlacement>(X_CONFIG_NAME, 'bottom') placement?: XPlacement;\r\n /**\r\n * @zh_CN 激活方式\r\n * @en_US Activation method\r\n */\r\n @Input() @XWithConfig<XPopoverTrigger>(X_CONFIG_NAME, 'hover') trigger?: XPopoverTrigger;\r\n /**\r\n * @zh_CN 宽度\r\n * @en_US Width\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, '10rem') width?: string;\r\n /**\r\n * @zh_CN 显示/隐藏控制\r\n * @en_US Show/hide control\r\n */\r\n @Input() @XInputBoolean() visible?: XBoolean;\r\n /**\r\n * @zh_CN 显示/隐藏改变的事件\r\n * @en_US Show/hide changed events\r\n */\r\n @Output() visibleChange = new EventEmitter<XBoolean>();\r\n}\r\n\r\n/**\r\n * @zh_CN 激活方式\r\n * @en_US Activation method\r\n * @value \"hover\"\r\n * @value \"click\"\r\n */\r\nexport type XPopoverTrigger = 'hover' | 'click';\r\n\r\n/**\r\n * Popover Portal\r\n * @selector x-popover-portal\r\n * @decorator component\r\n */\r\nexport const XPopoverPortalPrefix = 'x-popover-portal';\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n OnInit,\r\n ElementRef,\r\n OnDestroy,\r\n ViewChild,\r\n Renderer2,\r\n HostListener,\r\n HostBinding\r\n} from '@angular/core';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { XPopoverPortalPrefix, XPopoverTrigger } from './popover.property';\r\nimport { XTemplate, XPlacement, XClassMap, XFadeAnimation } from '@ng-nest/ui/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: `${XPopoverPortalPrefix}`,\r\n templateUrl: './popover-portal.component.html',\r\n styleUrls: ['./popover-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XFadeAnimation]\r\n})\r\nexport class XPopoverPortalComponent implements OnInit, OnDestroy {\r\n @HostListener('mouseenter') mouseenter() {\r\n if (this.trigger === 'hover') {\r\n this.portalHover(true);\r\n }\r\n }\r\n\r\n @HostListener('mouseleave') mouseleave() {\r\n if (this.trigger === 'hover') {\r\n this.portalHover(false);\r\n }\r\n }\r\n\r\n @HostBinding('@x-fade-animation') animation: any;\r\n\r\n @ViewChild('popoverPortal', { static: true }) popoverPortal!: ElementRef;\r\n @ViewChild('popoverArrow', { static: true }) popoverArrow!: ElementRef;\r\n\r\n classMap: XClassMap = {};\r\n box!: DOMRect;\r\n portalBox!: DOMRect;\r\n arrowBox!: DOMRect;\r\n // docClickFunction: Function;\r\n title!: XTemplate;\r\n content!: XTemplate;\r\n footer!: XTemplate;\r\n contentChange!: BehaviorSubject<any>;\r\n trigger!: XPopoverTrigger;\r\n placement!: XPlacement;\r\n previousPlacement!: XPlacement;\r\n portalHover!: Function;\r\n closePortal!: Function;\r\n viewInit!: Function;\r\n width!: string;\r\n positionChange: Subject<any> = new Subject();\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(private renderer: Renderer2, public cdr: ChangeDetectorRef) {}\r\n\r\n ngOnInit(): void {\r\n this.contentChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.content = x;\r\n this.cdr.detectChanges();\r\n });\r\n this.positionChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.placement = x;\r\n this.setClassMap();\r\n setTimeout(() => this.setArrow());\r\n this.cdr.detectChanges();\r\n });\r\n this.setClassMap();\r\n }\r\n\r\n stopPropagation(event: Event): void {\r\n event.stopPropagation();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.viewInit();\r\n this.portalBox = this.popoverPortal.nativeElement.getBoundingClientRect();\r\n this.arrowBox = this.popoverArrow.nativeElement.getBoundingClientRect();\r\n this.setArrow();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n setClassMap() {\r\n this.classMap[`${XPopoverPortalPrefix}-${this.previousPlacement}`] = false;\r\n this.classMap[`${XPopoverPortalPrefix}-${this.placement}`] = true;\r\n this.previousPlacement = `${this.placement}` as XPlacement;\r\n }\r\n\r\n setArrow() {\r\n let offset = this.arrowBox.height / 2;\r\n if (this.portalBox.height > this.box.height && (this.includes('right-') || this.includes('left-'))) {\r\n if (this.includes('-start')) {\r\n this.renderer.setStyle(this.popoverArrow.nativeElement, 'top', `${this.box.height / 2 - offset}px`);\r\n } else if (this.includes('-end')) {\r\n this.renderer.setStyle(this.popoverArrow.nativeElement, 'bottom', `${this.box.height / 2 - offset}px`);\r\n }\r\n } else if (this.portalBox.width > this.box.width && (this.includes('top-') || this.includes('bottom-'))) {\r\n if (this.includes('-start')) {\r\n this.renderer.setStyle(this.popoverArrow.nativeElement, 'left', `${this.box.width / 2 - offset}px`);\r\n } else if (this.includes('-end')) {\r\n this.renderer.setStyle(this.popoverArrow.nativeElement, 'right', `${this.box.width / 2 - offset}px`);\r\n }\r\n }\r\n }\r\n\r\n includes(arrow: string) {\r\n return this.placement.indexOf(arrow) >= 0;\r\n }\r\n}\r\n","<div #popoverPortal class=\"x-popover-portal\" [ngClass]=\"classMap\" (click)=\"stopPropagation($event)\">\r\n <div class=\"x-popover-portal-inner\" [style.width]=\"width\">\r\n <div *ngIf=\"title\" class=\"x-popover-portal-title\">\r\n <ng-container *xOutlet=\"title\">\r\n {{ title }}\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"content\" class=\"x-popover-portal-content\">\r\n <ng-container *xOutlet=\"content\">\r\n {{ content }}\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"footer\" class=\"x-popover-portal-footer\">\r\n <ng-container *xOutlet=\"footer\">\r\n {{ footer }}\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div #popoverArrow class=\"x-popover-portal-arrow\"></div>\r\n</div>\r\n","import { OnInit, ElementRef, ViewContainerRef, Directive, HostListener, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { XPortalService, XPortalOverlayRef, XPortalConnectedPosition } from '@ng-nest/ui/portal';\r\nimport { XPopoverPortalComponent } from './popover-portal.component';\r\nimport { XPopoverPrefix, XPopoverProperty } from './popover.property';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { OverlayConfig, FlexibleConnectedPositionStrategy, ConnectedOverlayPositionChange, Overlay } from '@angular/cdk/overlay';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { XPlacement, XIsChange, XConfigService } from '@ng-nest/ui/core';\r\n\r\n@Directive({ selector: `[${XPopoverPrefix}], ${XPopoverPrefix}` })\r\nexport class XPopoverDirective extends XPopoverProperty implements OnInit, OnChanges {\r\n portal!: XPortalOverlayRef<XPopoverPortalComponent>;\r\n box!: DOMRect;\r\n contentChange: BehaviorSubject<any> = new BehaviorSubject(null);\r\n positionChange: Subject<any> = new Subject();\r\n timeoutHide: any;\r\n private _unSubject = new Subject<void>();\r\n private realPlacement!: XPlacement;\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private portalService: XPortalService,\r\n private viewContainerRef: ViewContainerRef,\r\n private overlay: Overlay,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n @HostListener('click') click() {\r\n if (this.trigger === 'click') {\r\n this.visible = !this.visible;\r\n if (this.visible) this.show();\r\n else this.hide();\r\n this.visibleChange.emit(this.visible);\r\n }\r\n }\r\n\r\n @HostListener('mouseenter') mouseenter() {\r\n if (this.trigger === 'hover') this.show();\r\n }\r\n\r\n @HostListener('mouseleave') mouseleave() {\r\n if (this.trigger === 'hover') this.hide();\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { content, visible } = changes;\r\n XIsChange(content) && this.contentChange.next(this.content);\r\n if (XIsChange(visible)) {\r\n if (this.visible) this.show();\r\n else this.hide();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n this.contentChange.unsubscribe();\r\n }\r\n\r\n ngAfterViewInit() {}\r\n\r\n show() {\r\n if (this.timeoutHide) clearTimeout(this.timeoutHide);\r\n if (!this.portal || (this.portal && !this.portal.overlayRef?.hasAttached())) {\r\n this.visible = true;\r\n this.createPortal();\r\n this.visibleChange.emit(this.visible);\r\n }\r\n }\r\n\r\n hide() {\r\n if (this.portal.overlayRef?.hasAttached()) {\r\n this.timeoutHide = setTimeout(() => {\r\n this.visible = false;\r\n this.portal.overlayRef?.dispose();\r\n this.visibleChange.emit(this.visible);\r\n });\r\n }\r\n }\r\n\r\n createPortal() {\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n positionStrategy: this.portalService.setPlacement({\r\n elementRef: this.elementRef,\r\n placement: [this.placement as XPlacement, 'bottom', 'top', 'left', 'right']\r\n }),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XPopoverPortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n if (this.trigger === 'click') {\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(takeUntil(this._unSubject))\r\n .subscribe(() => {\r\n this.hide();\r\n });\r\n }\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this._unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XPlacement;\r\n if (place !== this.realPlacement) {\r\n this.realPlacement = place;\r\n this.positionChange.next(place);\r\n this.portal.overlayRef?.updatePosition();\r\n }\r\n });\r\n }\r\n\r\n setInstance() {\r\n let componentRef = this.portal?.componentRef;\r\n if (!componentRef) return;\r\n this.box = this.elementRef.nativeElement.getBoundingClientRect();\r\n this.realPlacement = `${this.placement}` as XPlacement;\r\n Object.assign(componentRef.instance, {\r\n box: this.box,\r\n title: this.title,\r\n content: this.content,\r\n footer: this.footer,\r\n contentChange: this.contentChange,\r\n positionChange: this.positionChange,\r\n trigger: this.trigger,\r\n placement: this.placement,\r\n width: this.width,\r\n portalHover: (hover: boolean) => {\r\n if (this.timeoutHide && hover) {\r\n clearTimeout(this.timeoutHide);\r\n } else {\r\n this.hide();\r\n }\r\n },\r\n closePortal: () => this.hide(),\r\n viewInit: () => this.portal.overlayRef?.updatePosition()\r\n });\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n\r\n update() {\r\n if (this.portal) this.portal.overlayRef?.updatePosition();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XPopoverDirective } from './popover.directive';\r\nimport { XPopoverPortalComponent } from './popover-portal.component';\r\nimport { XPortalModule } from '@ng-nest/ui/portal';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { XPopoverProperty } from './popover.property';\r\n\r\n@NgModule({\r\n declarations: [XPopoverDirective, XPopoverPortalComponent, XPopoverProperty],\r\n exports: [XPopoverDirective, XPopoverPortalComponent],\r\n imports: [CommonModule, XPortalModule, XOutletModule],\r\n entryComponents: [XPopoverPortalComponent]\r\n})\r\nexport class XPopoverModule {}\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-popover.mjs","sources":["../../../../lib/ng-nest/ui/popover/popover.property.ts","../../../../lib/ng-nest/ui/popover/popover-portal.component.ts","../../../../lib/ng-nest/ui/popover/popover-portal.component.html","../../../../lib/ng-nest/ui/popover/popover.directive.ts","../../../../lib/ng-nest/ui/popover/popover.module.ts","../../../../lib/ng-nest/ui/popover/ng-nest-ui-popover.ts"],"sourcesContent":["import { XPlacement, XTemplate, XProperty, XInputBoolean, XBoolean, XWithConfig } from '@ng-nest/ui/core';\r\nimport { Input, Output, EventEmitter, Directive } from '@angular/core';\r\n\r\n/**\r\n * Popover\r\n * @selector x-popover\r\n * @decorator directive\r\n */\r\nexport const XPopoverPrefix = 'x-popover';\r\nconst X_CONFIG_NAME = 'popover';\r\n\r\n/**\r\n * Popover Property\r\n */\r\n@Directive({ selector: `[${XPopoverPrefix}], ${XPopoverPrefix}` })\r\nexport class XPopoverProperty extends XProperty {\r\n /**\r\n * @zh_CN 标题,支持自定义模板\r\n * @en_US Title, support custom template\r\n */\r\n @Input() title?: XTemplate;\r\n /**\r\n * @zh_CN 内容,支持自定义模板\r\n * @en_US Content, support custom templates\r\n */\r\n @Input() content?: XTemplate;\r\n /**\r\n * @zh_CN 底部,支持自定义模板\r\n * @en_US At the bottom, support custom templates\r\n */\r\n @Input() footer?: XTemplate;\r\n /**\r\n * @zh_CN 弹出的位置\r\n * @en_US Pop-up position\r\n */\r\n @Input() @XWithConfig<XPlacement>(X_CONFIG_NAME, 'bottom') placement?: XPlacement;\r\n /**\r\n * @zh_CN 激活方式\r\n * @en_US Activation method\r\n */\r\n @Input() @XWithConfig<XPopoverTrigger>(X_CONFIG_NAME, 'hover') trigger?: XPopoverTrigger;\r\n /**\r\n * @zh_CN 宽度\r\n * @en_US Width\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, '10rem') width?: string;\r\n /**\r\n * @zh_CN 显示/隐藏控制\r\n * @en_US Show/hide control\r\n */\r\n @Input() @XInputBoolean() visible?: XBoolean;\r\n /**\r\n * @zh_CN 条件触发\r\n * @en_US condition trigger\r\n */\r\n @Input() @XInputBoolean() condition?: XBoolean;\r\n /**\r\n * @zh_CN 显示/隐藏改变的事件\r\n * @en_US Show/hide changed events\r\n */\r\n @Output() visibleChange = new EventEmitter<XBoolean>();\r\n}\r\n\r\n/**\r\n * @zh_CN 激活方式\r\n * @en_US Activation method\r\n * @value \"hover\"\r\n * @value \"click\"\r\n */\r\nexport type XPopoverTrigger = 'hover' | 'click';\r\n\r\n/**\r\n * Popover Portal\r\n * @selector x-popover-portal\r\n * @decorator component\r\n */\r\nexport const XPopoverPortalPrefix = 'x-popover-portal';\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n OnInit,\r\n ElementRef,\r\n OnDestroy,\r\n ViewChild,\r\n Renderer2,\r\n HostListener,\r\n HostBinding\r\n} from '@angular/core';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { XPopoverPortalPrefix, XPopoverTrigger } from './popover.property';\r\nimport { XTemplate, XPlacement, XClassMap, XFadeAnimation } from '@ng-nest/ui/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: `${XPopoverPortalPrefix}`,\r\n templateUrl: './popover-portal.component.html',\r\n styleUrls: ['./popover-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XFadeAnimation]\r\n})\r\nexport class XPopoverPortalComponent implements OnInit, OnDestroy {\r\n @HostListener('mouseenter') mouseenter() {\r\n if (this.trigger === 'hover') {\r\n this.portalHover(true);\r\n }\r\n }\r\n\r\n @HostListener('mouseleave') mouseleave() {\r\n if (this.trigger === 'hover') {\r\n this.portalHover(false);\r\n }\r\n }\r\n\r\n @HostBinding('@x-fade-animation') animation: any;\r\n\r\n @ViewChild('popoverPortal', { static: true }) popoverPortal!: ElementRef;\r\n @ViewChild('popoverArrow', { static: true }) popoverArrow!: ElementRef;\r\n\r\n classMap: XClassMap = {};\r\n box!: DOMRect;\r\n portalBox!: DOMRect;\r\n arrowBox!: DOMRect;\r\n // docClickFunction: Function;\r\n title!: XTemplate;\r\n content!: XTemplate;\r\n footer!: XTemplate;\r\n contentChange!: BehaviorSubject<any>;\r\n trigger!: XPopoverTrigger;\r\n placement!: XPlacement;\r\n previousPlacement!: XPlacement;\r\n portalHover!: Function;\r\n closePortal!: Function;\r\n viewInit!: Function;\r\n width!: string;\r\n positionChange: Subject<any> = new Subject();\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(private renderer: Renderer2, public cdr: ChangeDetectorRef) {}\r\n\r\n ngOnInit(): void {\r\n this.contentChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.content = x;\r\n this.cdr.detectChanges();\r\n });\r\n this.positionChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.placement = x;\r\n this.setClassMap();\r\n setTimeout(() => this.setArrow());\r\n this.cdr.detectChanges();\r\n });\r\n this.setClassMap();\r\n }\r\n\r\n stopPropagation(event: Event): void {\r\n event.stopPropagation();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.viewInit();\r\n this.portalBox = this.popoverPortal.nativeElement.getBoundingClientRect();\r\n this.arrowBox = this.popoverArrow.nativeElement.getBoundingClientRect();\r\n this.setArrow();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n setClassMap() {\r\n this.classMap[`${XPopoverPortalPrefix}-${this.previousPlacement}`] = false;\r\n this.classMap[`${XPopoverPortalPrefix}-${this.placement}`] = true;\r\n this.previousPlacement = `${this.placement}` as XPlacement;\r\n }\r\n\r\n setArrow() {\r\n let offset = this.arrowBox.height / 2;\r\n if (this.portalBox.height > this.box.height && (this.includes('right-') || this.includes('left-'))) {\r\n if (this.includes('-start')) {\r\n this.renderer.setStyle(this.popoverArrow.nativeElement, 'top', `${this.box.height / 2 - offset}px`);\r\n } else if (this.includes('-end')) {\r\n this.renderer.setStyle(this.popoverArrow.nativeElement, 'bottom', `${this.box.height / 2 - offset}px`);\r\n }\r\n } else if (this.portalBox.width > this.box.width && (this.includes('top-') || this.includes('bottom-'))) {\r\n if (this.includes('-start')) {\r\n this.renderer.setStyle(this.popoverArrow.nativeElement, 'left', `${this.box.width / 2 - offset}px`);\r\n } else if (this.includes('-end')) {\r\n this.renderer.setStyle(this.popoverArrow.nativeElement, 'right', `${this.box.width / 2 - offset}px`);\r\n }\r\n }\r\n }\r\n\r\n includes(arrow: string) {\r\n return this.placement.indexOf(arrow) >= 0;\r\n }\r\n}\r\n","<div #popoverPortal class=\"x-popover-portal\" [ngClass]=\"classMap\" (click)=\"stopPropagation($event)\">\r\n <div class=\"x-popover-portal-inner\" [style.width]=\"width\">\r\n <div *ngIf=\"title\" class=\"x-popover-portal-title\">\r\n <ng-container *xOutlet=\"title\">\r\n {{ title }}\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"content\" class=\"x-popover-portal-content\">\r\n <ng-container *xOutlet=\"content\">\r\n {{ content }}\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"footer\" class=\"x-popover-portal-footer\">\r\n <ng-container *xOutlet=\"footer\">\r\n {{ footer }}\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div #popoverArrow class=\"x-popover-portal-arrow\"></div>\r\n</div>\r\n","import { OnInit, ElementRef, ViewContainerRef, Directive, HostListener, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { XPortalService, XPortalOverlayRef, XPortalConnectedPosition } from '@ng-nest/ui/portal';\r\nimport { XPopoverPortalComponent } from './popover-portal.component';\r\nimport { XPopoverPrefix, XPopoverProperty } from './popover.property';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { OverlayConfig, FlexibleConnectedPositionStrategy, ConnectedOverlayPositionChange, Overlay } from '@angular/cdk/overlay';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { XPlacement, XIsChange, XConfigService } from '@ng-nest/ui/core';\r\n\r\n@Directive({ selector: `[${XPopoverPrefix}], ${XPopoverPrefix}` })\r\nexport class XPopoverDirective extends XPopoverProperty implements OnInit, OnChanges {\r\n portal!: XPortalOverlayRef<XPopoverPortalComponent>;\r\n box!: DOMRect;\r\n contentChange: BehaviorSubject<any> = new BehaviorSubject(null);\r\n positionChange: Subject<any> = new Subject();\r\n timeoutHide: any;\r\n private _unSubject = new Subject<void>();\r\n private realPlacement!: XPlacement;\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private portalService: XPortalService,\r\n private viewContainerRef: ViewContainerRef,\r\n private overlay: Overlay,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n @HostListener('click') click() {\r\n if (this.condition) return;\r\n if (this.trigger === 'click') {\r\n this.visible = !this.visible;\r\n if (this.visible) this.show();\r\n else this.hide();\r\n this.visibleChange.emit(this.visible);\r\n }\r\n }\r\n\r\n @HostListener('mouseenter') mouseenter() {\r\n if (this.condition) return;\r\n if (this.trigger === 'hover') this.show();\r\n }\r\n\r\n @HostListener('mouseleave') mouseleave() {\r\n if (this.condition) return;\r\n if (this.trigger === 'hover') this.hide();\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { content, visible } = changes;\r\n XIsChange(content) && this.contentChange.next(this.content);\r\n if (XIsChange(visible) && !this.condition) {\r\n if (this.visible) this.show();\r\n else this.hide();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n this.contentChange.unsubscribe();\r\n }\r\n\r\n ngAfterViewInit() {}\r\n\r\n show() {\r\n if (this.timeoutHide) clearTimeout(this.timeoutHide);\r\n if (!this.portal || (this.portal && !this.portal.overlayRef?.hasAttached())) {\r\n this.visible = true;\r\n this.createPortal();\r\n this.visibleChange.emit(this.visible);\r\n }\r\n }\r\n\r\n hide() {\r\n if (this.portal.overlayRef?.hasAttached()) {\r\n this.timeoutHide = setTimeout(() => {\r\n this.visible = false;\r\n this.portal.overlayRef?.dispose();\r\n this.visibleChange.emit(this.visible);\r\n });\r\n }\r\n }\r\n\r\n createPortal() {\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n positionStrategy: this.portalService.setPlacement({\r\n elementRef: this.elementRef,\r\n placement: [this.placement as XPlacement, 'bottom', 'top', 'left', 'right']\r\n }),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XPopoverPortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n if (this.trigger === 'click') {\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(takeUntil(this._unSubject))\r\n .subscribe(() => {\r\n this.hide();\r\n });\r\n }\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this._unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XPlacement;\r\n if (place !== this.realPlacement) {\r\n this.realPlacement = place;\r\n this.positionChange.next(place);\r\n this.portal.overlayRef?.updatePosition();\r\n }\r\n });\r\n }\r\n\r\n setInstance() {\r\n let componentRef = this.portal?.componentRef;\r\n if (!componentRef) return;\r\n this.box = this.elementRef.nativeElement.getBoundingClientRect();\r\n this.realPlacement = `${this.placement}` as XPlacement;\r\n Object.assign(componentRef.instance, {\r\n box: this.box,\r\n title: this.title,\r\n content: this.content,\r\n footer: this.footer,\r\n contentChange: this.contentChange,\r\n positionChange: this.positionChange,\r\n trigger: this.trigger,\r\n placement: this.placement,\r\n width: this.width,\r\n portalHover: (hover: boolean) => {\r\n if (this.timeoutHide && hover) {\r\n clearTimeout(this.timeoutHide);\r\n } else {\r\n this.hide();\r\n }\r\n },\r\n closePortal: () => this.hide(),\r\n viewInit: () => this.portal.overlayRef?.updatePosition()\r\n });\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n\r\n update() {\r\n if (this.portal) this.portal.overlayRef?.updatePosition();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XPopoverDirective } from './popover.directive';\r\nimport { XPopoverPortalComponent } from './popover-portal.component';\r\nimport { XPortalModule } from '@ng-nest/ui/portal';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { XPopoverProperty } from './popover.property';\r\n\r\n@NgModule({\r\n declarations: [XPopoverDirective, XPopoverPortalComponent, XPopoverProperty],\r\n exports: [XPopoverDirective, XPopoverPortalComponent],\r\n imports: [CommonModule, XPortalModule, XOutletModule]\r\n})\r\nexport class XPopoverModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -455,8 +455,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
455
455
  args: [{
456
456
  declarations: [XSelectComponent, XSelectPortalComponent, XSelectProperty],
457
457
  exports: [XSelectComponent, XSelectPortalComponent],
458
- imports: [CommonModule, FormsModule, ReactiveFormsModule, XPortalModule, XInputModule, XListModule, XBaseFormModule],
459
- entryComponents: [XSelectPortalComponent]
458
+ imports: [CommonModule, FormsModule, ReactiveFormsModule, XPortalModule, XInputModule, XListModule, XBaseFormModule]
460
459
  }]
461
460
  }] });
462
461
 
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-select.mjs","sources":["../../../../lib/ng-nest/ui/select/select.property.ts","../../../../lib/ng-nest/ui/select/select-portal.component.ts","../../../../lib/ng-nest/ui/select/select-portal.component.html","../../../../lib/ng-nest/ui/select/select.component.ts","../../../../lib/ng-nest/ui/select/select.component.html","../../../../lib/ng-nest/ui/select/select.module.ts","../../../../lib/ng-nest/ui/select/ng-nest-ui-select.ts"],"sourcesContent":["import {\r\n XParentIdentityProperty,\r\n XDataConvert,\r\n XInputBoolean,\r\n XData,\r\n XBoolean,\r\n XWithConfig,\r\n XPositionTopBottom,\r\n XSize\r\n} from '@ng-nest/ui/core';\r\nimport { Input, Component, TemplateRef } from '@angular/core';\r\nimport { XControlValueAccessor, XFormOption } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * Select\r\n * @selector x-select\r\n * @decorator component\r\n */\r\nexport const XSelectPrefix = 'x-select';\r\nconst X_CONFIG_NAME = 'select';\r\n\r\n/**\r\n * Select Property\r\n */\r\n@Component({ template: '' })\r\nexport class XSelectProperty extends XControlValueAccessor<any> {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n @Input() @XDataConvert() data: XData<XSelectNode> = [];\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) @XInputBoolean() clearable?: XBoolean;\r\n /**\r\n * @zh_CN 异步加载\r\n * @en_US Asynchronous loading\r\n */\r\n @Input() @XInputBoolean() async?: XBoolean;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n @Input() @XWithConfig<XPositionTopBottom>(X_CONFIG_NAME, 'bottom') placement?: XPositionTopBottom;\r\n /**\r\n * @zh_CN 多选功能\r\n * @en_US Multiple choice\r\n */\r\n @Input() @XInputBoolean() multiple?: XBoolean;\r\n /**\r\n * @zh_CN 节点模板\r\n * @en_US Node template\r\n */\r\n @Input() nodeTpl?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n @Input() @XWithConfig<XSize>(X_CONFIG_NAME, 'medium') override size!: XSize;\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n @Input() @XInputBoolean() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) bordered!: XBoolean;\r\n}\r\n\r\n/**\r\n * Select Option\r\n * @undocument true\r\n */\r\nexport interface XSelectOption extends XFormOption {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n data?: XData<XSelectNode>;\r\n /**\r\n * @zh_CN 异步加载\r\n * @en_US Asynchronous loading\r\n */\r\n async?: XBoolean;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n placement?: XPositionTopBottom;\r\n /**\r\n * @zh_CN 多选功能\r\n * @en_US Multiple choice\r\n */\r\n multiple?: XBoolean;\r\n}\r\n\r\n/**\r\n * @zh_CN Select 数据对象\r\n * @en_US Select data object\r\n */\r\nexport interface XSelectNode extends XParentIdentityProperty<XSelectNode> {}\r\n\r\n/**\r\n * Select Portal\r\n * @selector x-select-portal\r\n * @decorator component\r\n */\r\nexport const XSelectPortalPrefix = 'x-select-portal';\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n OnInit,\r\n OnDestroy,\r\n Renderer2,\r\n HostBinding,\r\n HostListener,\r\n TemplateRef,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { XSelectNode, XSelectPortalPrefix } from './select.property';\r\nimport { Subject } from 'rxjs';\r\nimport { XConnectBaseAnimation, XNumber, XPositionTopBottom } from '@ng-nest/ui/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { XListComponent } from '@ng-nest/ui/list';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\n\r\n@Component({\r\n selector: `${XSelectPortalPrefix}`,\r\n templateUrl: './select-portal.component.html',\r\n styleUrls: ['./select-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XConnectBaseAnimation]\r\n})\r\nexport class XSelectPortalComponent implements OnInit, OnDestroy {\r\n @HostBinding('@x-connect-base-animation') public placement!: XPositionTopBottom;\r\n @HostListener('@x-connect-base-animation.done', ['$event']) done(event: { toState: any }) {\r\n this.animating(false);\r\n event.toState === 'void' && this.destroyPortal();\r\n }\r\n @HostListener('@x-connect-base-animation.start', ['$event']) start() {\r\n this.animating(true);\r\n }\r\n\r\n @ViewChild('list') list!: XListComponent;\r\n\r\n data!: XSelectNode[];\r\n value: any;\r\n valueChange!: Subject<any>;\r\n positionChange!: Subject<any>;\r\n animating!: Function;\r\n activeChange!: Function;\r\n destroyPortal!: Function;\r\n closeSubject!: Subject<void>;\r\n keydownSubject!: Subject<KeyboardEvent>;\r\n nodeEmit!: Function;\r\n multiple: XNumber = 1;\r\n nodeTpl!: TemplateRef<any>;\r\n show: boolean = false;\r\n active: number = -1;\r\n inputCom!: XInputComponent;\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(public renderer: Renderer2, public cdr: ChangeDetectorRef) {}\r\n\r\n ngOnInit(): void {\r\n this.valueChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.value = x;\r\n this.cdr.detectChanges();\r\n });\r\n this.positionChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.placement = x;\r\n this.cdr.detectChanges();\r\n });\r\n this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe(() => {\r\n this.list.setUnActive(this.active);\r\n });\r\n this.keydownSubject.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.list.keydown(x);\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n stopPropagation(event: Event): void {\r\n event.stopPropagation();\r\n }\r\n\r\n nodeClick(node: XSelectNode) {\r\n if (this.multiple === 0) this.nodeEmit(this.value);\r\n else this.nodeEmit(node);\r\n }\r\n\r\n onActive(num: number) {\r\n this.active = num;\r\n }\r\n\r\n onTabOut() {\r\n this.closeSubject.next();\r\n }\r\n}\r\n","<div #selectPortal class=\"x-select-portal\" (click)=\"inputCom.inputFocus(); stopPropagation($event)\">\r\n <x-list\r\n #list\r\n [data]=\"data\"\r\n [(ngModel)]=\"value\"\r\n (nodeClick)=\"nodeClick($event)\"\r\n (keyManagerChange)=\"onActive($event)\"\r\n (keyManagerTabOut)=\"onTabOut()\"\r\n checked\r\n [objectArray]=\"multiple === 0\"\r\n [multiple]=\"multiple\"\r\n [nodeTpl]=\"nodeTpl\"\r\n [scrollElement]=\"selectPortal\"\r\n ></x-list>\r\n</div>\r\n","import { Subject } from 'rxjs';\r\nimport {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n ElementRef,\r\n SimpleChanges,\r\n OnChanges,\r\n ViewContainerRef,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { XSelectNode, XSelectProperty, XSelectPrefix } from './select.property';\r\nimport { XIsEmpty, XIsObservable, XIsChange, XSetData, XClearClass, XConfigService, XIsArray, XPositionTopBottom } from '@ng-nest/ui/core';\r\nimport { XPortalService, XPortalOverlayRef, XPortalConnectedPosition } from '@ng-nest/ui/portal';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport { XSelectPortalComponent } from './select-portal.component';\r\nimport { Overlay, FlexibleConnectedPositionStrategy, ConnectedOverlayPositionChange, OverlayConfig } from '@angular/cdk/overlay';\r\nimport { takeUntil, throttleTime } from 'rxjs/operators';\r\nimport { DOWN_ARROW, UP_ARROW, ENTER, MAC_ENTER, TAB, ESCAPE, LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n@Component({\r\n selector: `${XSelectPrefix}`,\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XSelectComponent)]\r\n})\r\nexport class XSelectComponent extends XSelectProperty implements OnInit, OnChanges {\r\n @ViewChild('inputCom', { static: true }) inputCom!: XInputComponent;\r\n @ViewChild('select', { static: true }) select!: ElementRef;\r\n\r\n override writeValue(value: any) {\r\n if (this.multiple && XIsEmpty(value)) {\r\n value = [];\r\n }\r\n this.value = value;\r\n this.setDisplayValue();\r\n this.valueChange.next(this.value);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n override readonly = true;\r\n enter: boolean = false;\r\n showClearable: boolean = false;\r\n displayValue: any = '';\r\n nodes: XSelectNode[] = [];\r\n cloneNodes!: XSelectNode[];\r\n portal!: XPortalOverlayRef<XSelectPortalComponent>;\r\n icon: string = 'fto-chevron-down';\r\n iconSpin: boolean = false;\r\n box!: DOMRect;\r\n protalHeight!: number;\r\n maxNodes: number = 6;\r\n protalTobottom: boolean = true;\r\n asyncLoading = false;\r\n animating = false;\r\n override valueTplContext: { $node: any; $isValue: boolean } = { $node: null, $isValue: true };\r\n valueChange: Subject<any> = new Subject();\r\n positionChange: Subject<any> = new Subject();\r\n closeSubject: Subject<void> = new Subject();\r\n keydownSubject: Subject<KeyboardEvent> = new Subject();\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n private cdr: ChangeDetectorRef,\r\n private portalService: XPortalService,\r\n private viewContainerRef: ViewContainerRef,\r\n private overlay: Overlay,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setFlex(this.select.nativeElement, this.renderer, this.justify, this.align, this.direction);\r\n this.setClassMap();\r\n this.setSubject();\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 ngAfterViewInit() {\r\n this.setPortal();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n setClassMap() {\r\n XClearClass(this.labelMap);\r\n this.labelMap[`x-text-align-${this.labelAlign}`] = this.labelAlign ? true : false;\r\n }\r\n\r\n setData() {\r\n if (this.async) return;\r\n XSetData<XSelectNode>(this.data, this._unSubject).subscribe((x) => {\r\n this.nodes = x;\r\n this.setDisplayValue();\r\n this.setPortal();\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n setSubject() {\r\n this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe(() => {\r\n this.closePortal();\r\n });\r\n this.keydownSubject.pipe(throttleTime(10), takeUntil(this._unSubject)).subscribe((x) => {\r\n const keyCode = x.keyCode;\r\n if (!this.portalAttached() && [DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW, ENTER, MAC_ENTER].includes(keyCode)) {\r\n this.showPortal();\r\n }\r\n if (this.portalAttached() && [ESCAPE].includes(keyCode)) {\r\n this.closeSubject.next();\r\n }\r\n });\r\n }\r\n\r\n menter() {\r\n if (this.disabled || !this.clearable) return;\r\n this.enter = true;\r\n if (!XIsEmpty(this.displayValue)) {\r\n this.icon = '';\r\n this.showClearable = true;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n mleave() {\r\n if (this.disabled || !this.clearable) return;\r\n this.enter = false;\r\n if (this.clearable) {\r\n this.icon = 'fto-chevron-down';\r\n this.showClearable = false;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n clearEmit() {\r\n this.value = '';\r\n this.displayValue = '';\r\n this.valueTplContext.$node = null;\r\n this.mleave();\r\n this.valueChange.next(this.value);\r\n if (this.onChange) this.onChange(this.value);\r\n }\r\n\r\n setDisplayValue() {\r\n if (this.nodes.length > 0) {\r\n if (this.multiple) {\r\n if (XIsEmpty(this.value)) {\r\n this.displayValue = '';\r\n this.valueTplContext.$node = null;\r\n } else {\r\n let nodes = this.nodes.filter((x) => !XIsEmpty(this.value.find((y: XSelectNode) => y.id === x.id)));\r\n this.displayValue = nodes.map((x) => x.label).join(',');\r\n this.valueTplContext.$node = [...nodes];\r\n }\r\n } else {\r\n let node = this.nodes.find((x) => x.id === this.value);\r\n if (node) {\r\n this.displayValue = node.label;\r\n this.valueTplContext.$node = node;\r\n } else {\r\n this.displayValue = '';\r\n this.valueTplContext.$node = null;\r\n }\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n portalAttached() {\r\n return this.portal?.overlayRef?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.detach();\r\n this.active = false;\r\n this.cdr.detectChanges();\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n destroyPortal() {\r\n this.portal?.overlayRef?.dispose();\r\n }\r\n\r\n showPortal() {\r\n if (this.disabled || this.iconSpin) return;\r\n if (this.animating) return;\r\n this.active = true;\r\n if (this.async && XIsObservable(this.data) && this.nodes.length === 0) {\r\n this.icon = 'fto-loader';\r\n this.iconSpin = true;\r\n this.cdr.detectChanges();\r\n XSetData<XSelectNode>(this.data, this._unSubject).subscribe((x) => {\r\n this.nodes = x;\r\n this.setDisplayValue();\r\n this.createPortal();\r\n this.icon = 'fto-chevron-down';\r\n this.iconSpin = false;\r\n this.cdr.detectChanges();\r\n });\r\n } else {\r\n this.createPortal();\r\n }\r\n this.inputCom.inputFocus();\r\n }\r\n\r\n createPortal() {\r\n this.nodes.filter((x) => x.selected).map((x) => (x.selected = false));\r\n this.box = this.inputCom.inputRef.nativeElement.getBoundingClientRect();\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n width: this.box.width,\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XSelectPortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(takeUntil(this._unSubject))\r\n .subscribe(() => {\r\n this.setDisplayValue();\r\n this.closeSubject.next();\r\n });\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this._unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XPositionTopBottom;\r\n place !== this.placement && this.positionChange.next(place);\r\n });\r\n }\r\n\r\n setInstance() {\r\n let componentRef = this.portal.componentRef;\r\n if (!componentRef) return;\r\n Object.assign(componentRef.instance, {\r\n data: this.nodes,\r\n value: this.value,\r\n placement: this.placement,\r\n multiple: this.multiple === true ? 0 : 1,\r\n nodeTpl: this.nodeTpl,\r\n valueChange: this.valueChange,\r\n positionChange: this.positionChange,\r\n closeSubject: this.closeSubject,\r\n keydownSubject: this.keydownSubject,\r\n inputCom: this.inputCom,\r\n destroyPortal: () => this.destroyPortal(),\r\n nodeEmit: (node: XSelectNode) => this.nodeClick(node),\r\n animating: (ing: boolean) => (this.animating = ing)\r\n });\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n\r\n nodeClick(node: XSelectNode | XSelectNode[]) {\r\n if (this.multiple && XIsArray(node)) {\r\n node = node as XSelectNode[];\r\n this.value = node;\r\n this.setDisplayValue();\r\n } else {\r\n node = node as XSelectNode;\r\n this.displayValue = node.label;\r\n this.valueTplContext.$node = node;\r\n this.value = node.id;\r\n this.closeSubject.next();\r\n }\r\n this.inputCom.inputFocus();\r\n if (this.onChange) this.onChange(this.value);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: this.inputCom.inputRef,\r\n placement: [this.placement as XPositionTopBottom, 'bottom', 'top'],\r\n transformOriginOn: 'x-select-portal'\r\n });\r\n }\r\n\r\n setPortal() {\r\n this.portalAttached() && this.portal?.overlayRef?.updatePositionStrategy(this.setPlacement());\r\n }\r\n\r\n formControlChanges() {\r\n this.setData();\r\n this.ngOnInit();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onKeydown($event: KeyboardEvent) {\r\n this.keydownSubject.next($event);\r\n if ($event.keyCode !== TAB) $event.preventDefault();\r\n }\r\n\r\n onFocus(_event: Event) {\r\n this.inputCom.inputFocus();\r\n }\r\n}\r\n","<div #select class=\"x-select\">\r\n <div class=\"x-select-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [icon]=\"icon\"\r\n [iconSpin]=\"iconSpin\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"showClearable\"\r\n [(ngModel)]=\"displayValue\"\r\n [valueTpl]=\"valueTpl ? valueTpl : nodeTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"before\"\r\n [after]=\"after\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n [pointer]=\"true\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xKeydown)=\"onKeydown($event)\"\r\n (xFocus)=\"onFocus($event)\"\r\n (xClick)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XSelectComponent } from './select.component';\r\nimport { XInputModule } from '@ng-nest/ui/input';\r\nimport { XPortalModule } from '@ng-nest/ui/portal';\r\nimport { XListModule } from '@ng-nest/ui/list';\r\nimport { XSelectPortalComponent } from './select-portal.component';\r\nimport { XSelectProperty } from './select.property';\r\nimport { XBaseFormModule } from '@ng-nest/ui/base-form';\r\n\r\n@NgModule({\r\n declarations: [XSelectComponent, XSelectPortalComponent, XSelectProperty],\r\n exports: [XSelectComponent, XSelectPortalComponent],\r\n imports: [CommonModule, FormsModule, ReactiveFormsModule, XPortalModule, XInputModule, XListModule, XBaseFormModule],\r\n entryComponents: [XSelectPortalComponent]\r\n})\r\nexport class XSelectModule {}\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-select.mjs","sources":["../../../../lib/ng-nest/ui/select/select.property.ts","../../../../lib/ng-nest/ui/select/select-portal.component.ts","../../../../lib/ng-nest/ui/select/select-portal.component.html","../../../../lib/ng-nest/ui/select/select.component.ts","../../../../lib/ng-nest/ui/select/select.component.html","../../../../lib/ng-nest/ui/select/select.module.ts","../../../../lib/ng-nest/ui/select/ng-nest-ui-select.ts"],"sourcesContent":["import {\r\n XParentIdentityProperty,\r\n XDataConvert,\r\n XInputBoolean,\r\n XData,\r\n XBoolean,\r\n XWithConfig,\r\n XPositionTopBottom,\r\n XSize\r\n} from '@ng-nest/ui/core';\r\nimport { Input, Component, TemplateRef } from '@angular/core';\r\nimport { XControlValueAccessor, XFormOption } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * Select\r\n * @selector x-select\r\n * @decorator component\r\n */\r\nexport const XSelectPrefix = 'x-select';\r\nconst X_CONFIG_NAME = 'select';\r\n\r\n/**\r\n * Select Property\r\n */\r\n@Component({ template: '' })\r\nexport class XSelectProperty extends XControlValueAccessor<any> {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n @Input() @XDataConvert() data: XData<XSelectNode> = [];\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) @XInputBoolean() clearable?: XBoolean;\r\n /**\r\n * @zh_CN 异步加载\r\n * @en_US Asynchronous loading\r\n */\r\n @Input() @XInputBoolean() async?: XBoolean;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n @Input() @XWithConfig<XPositionTopBottom>(X_CONFIG_NAME, 'bottom') placement?: XPositionTopBottom;\r\n /**\r\n * @zh_CN 多选功能\r\n * @en_US Multiple choice\r\n */\r\n @Input() @XInputBoolean() multiple?: XBoolean;\r\n /**\r\n * @zh_CN 节点模板\r\n * @en_US Node template\r\n */\r\n @Input() nodeTpl?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n @Input() @XWithConfig<XSize>(X_CONFIG_NAME, 'medium') override size!: XSize;\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n @Input() @XInputBoolean() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) bordered!: XBoolean;\r\n}\r\n\r\n/**\r\n * Select Option\r\n * @undocument true\r\n */\r\nexport interface XSelectOption extends XFormOption {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n data?: XData<XSelectNode>;\r\n /**\r\n * @zh_CN 异步加载\r\n * @en_US Asynchronous loading\r\n */\r\n async?: XBoolean;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n placement?: XPositionTopBottom;\r\n /**\r\n * @zh_CN 多选功能\r\n * @en_US Multiple choice\r\n */\r\n multiple?: XBoolean;\r\n}\r\n\r\n/**\r\n * @zh_CN Select 数据对象\r\n * @en_US Select data object\r\n */\r\nexport interface XSelectNode extends XParentIdentityProperty<XSelectNode> {}\r\n\r\n/**\r\n * Select Portal\r\n * @selector x-select-portal\r\n * @decorator component\r\n */\r\nexport const XSelectPortalPrefix = 'x-select-portal';\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n OnInit,\r\n OnDestroy,\r\n Renderer2,\r\n HostBinding,\r\n HostListener,\r\n TemplateRef,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { XSelectNode, XSelectPortalPrefix } from './select.property';\r\nimport { Subject } from 'rxjs';\r\nimport { XConnectBaseAnimation, XNumber, XPositionTopBottom } from '@ng-nest/ui/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { XListComponent } from '@ng-nest/ui/list';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\n\r\n@Component({\r\n selector: `${XSelectPortalPrefix}`,\r\n templateUrl: './select-portal.component.html',\r\n styleUrls: ['./select-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XConnectBaseAnimation]\r\n})\r\nexport class XSelectPortalComponent implements OnInit, OnDestroy {\r\n @HostBinding('@x-connect-base-animation') public placement!: XPositionTopBottom;\r\n @HostListener('@x-connect-base-animation.done', ['$event']) done(event: { toState: any }) {\r\n this.animating(false);\r\n event.toState === 'void' && this.destroyPortal();\r\n }\r\n @HostListener('@x-connect-base-animation.start', ['$event']) start() {\r\n this.animating(true);\r\n }\r\n\r\n @ViewChild('list') list!: XListComponent;\r\n\r\n data!: XSelectNode[];\r\n value: any;\r\n valueChange!: Subject<any>;\r\n positionChange!: Subject<any>;\r\n animating!: Function;\r\n activeChange!: Function;\r\n destroyPortal!: Function;\r\n closeSubject!: Subject<void>;\r\n keydownSubject!: Subject<KeyboardEvent>;\r\n nodeEmit!: Function;\r\n multiple: XNumber = 1;\r\n nodeTpl!: TemplateRef<any>;\r\n show: boolean = false;\r\n active: number = -1;\r\n inputCom!: XInputComponent;\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(public renderer: Renderer2, public cdr: ChangeDetectorRef) {}\r\n\r\n ngOnInit(): void {\r\n this.valueChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.value = x;\r\n this.cdr.detectChanges();\r\n });\r\n this.positionChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.placement = x;\r\n this.cdr.detectChanges();\r\n });\r\n this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe(() => {\r\n this.list.setUnActive(this.active);\r\n });\r\n this.keydownSubject.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.list.keydown(x);\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n stopPropagation(event: Event): void {\r\n event.stopPropagation();\r\n }\r\n\r\n nodeClick(node: XSelectNode) {\r\n if (this.multiple === 0) this.nodeEmit(this.value);\r\n else this.nodeEmit(node);\r\n }\r\n\r\n onActive(num: number) {\r\n this.active = num;\r\n }\r\n\r\n onTabOut() {\r\n this.closeSubject.next();\r\n }\r\n}\r\n","<div #selectPortal class=\"x-select-portal\" (click)=\"inputCom.inputFocus(); stopPropagation($event)\">\r\n <x-list\r\n #list\r\n [data]=\"data\"\r\n [(ngModel)]=\"value\"\r\n (nodeClick)=\"nodeClick($event)\"\r\n (keyManagerChange)=\"onActive($event)\"\r\n (keyManagerTabOut)=\"onTabOut()\"\r\n checked\r\n [objectArray]=\"multiple === 0\"\r\n [multiple]=\"multiple\"\r\n [nodeTpl]=\"nodeTpl\"\r\n [scrollElement]=\"selectPortal\"\r\n ></x-list>\r\n</div>\r\n","import { Subject } from 'rxjs';\r\nimport {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n ElementRef,\r\n SimpleChanges,\r\n OnChanges,\r\n ViewContainerRef,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { XSelectNode, XSelectProperty, XSelectPrefix } from './select.property';\r\nimport { XIsEmpty, XIsObservable, XIsChange, XSetData, XClearClass, XConfigService, XIsArray, XPositionTopBottom } from '@ng-nest/ui/core';\r\nimport { XPortalService, XPortalOverlayRef, XPortalConnectedPosition } from '@ng-nest/ui/portal';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport { XSelectPortalComponent } from './select-portal.component';\r\nimport { Overlay, FlexibleConnectedPositionStrategy, ConnectedOverlayPositionChange, OverlayConfig } from '@angular/cdk/overlay';\r\nimport { takeUntil, throttleTime } from 'rxjs/operators';\r\nimport { DOWN_ARROW, UP_ARROW, ENTER, MAC_ENTER, TAB, ESCAPE, LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n@Component({\r\n selector: `${XSelectPrefix}`,\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XSelectComponent)]\r\n})\r\nexport class XSelectComponent extends XSelectProperty implements OnInit, OnChanges {\r\n @ViewChild('inputCom', { static: true }) inputCom!: XInputComponent;\r\n @ViewChild('select', { static: true }) select!: ElementRef;\r\n\r\n override writeValue(value: any) {\r\n if (this.multiple && XIsEmpty(value)) {\r\n value = [];\r\n }\r\n this.value = value;\r\n this.setDisplayValue();\r\n this.valueChange.next(this.value);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n override readonly = true;\r\n enter: boolean = false;\r\n showClearable: boolean = false;\r\n displayValue: any = '';\r\n nodes: XSelectNode[] = [];\r\n cloneNodes!: XSelectNode[];\r\n portal!: XPortalOverlayRef<XSelectPortalComponent>;\r\n icon: string = 'fto-chevron-down';\r\n iconSpin: boolean = false;\r\n box!: DOMRect;\r\n protalHeight!: number;\r\n maxNodes: number = 6;\r\n protalTobottom: boolean = true;\r\n asyncLoading = false;\r\n animating = false;\r\n override valueTplContext: { $node: any; $isValue: boolean } = { $node: null, $isValue: true };\r\n valueChange: Subject<any> = new Subject();\r\n positionChange: Subject<any> = new Subject();\r\n closeSubject: Subject<void> = new Subject();\r\n keydownSubject: Subject<KeyboardEvent> = new Subject();\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n private cdr: ChangeDetectorRef,\r\n private portalService: XPortalService,\r\n private viewContainerRef: ViewContainerRef,\r\n private overlay: Overlay,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setFlex(this.select.nativeElement, this.renderer, this.justify, this.align, this.direction);\r\n this.setClassMap();\r\n this.setSubject();\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 ngAfterViewInit() {\r\n this.setPortal();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n setClassMap() {\r\n XClearClass(this.labelMap);\r\n this.labelMap[`x-text-align-${this.labelAlign}`] = this.labelAlign ? true : false;\r\n }\r\n\r\n setData() {\r\n if (this.async) return;\r\n XSetData<XSelectNode>(this.data, this._unSubject).subscribe((x) => {\r\n this.nodes = x;\r\n this.setDisplayValue();\r\n this.setPortal();\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n setSubject() {\r\n this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe(() => {\r\n this.closePortal();\r\n });\r\n this.keydownSubject.pipe(throttleTime(10), takeUntil(this._unSubject)).subscribe((x) => {\r\n const keyCode = x.keyCode;\r\n if (!this.portalAttached() && [DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW, ENTER, MAC_ENTER].includes(keyCode)) {\r\n this.showPortal();\r\n }\r\n if (this.portalAttached() && [ESCAPE].includes(keyCode)) {\r\n this.closeSubject.next();\r\n }\r\n });\r\n }\r\n\r\n menter() {\r\n if (this.disabled || !this.clearable) return;\r\n this.enter = true;\r\n if (!XIsEmpty(this.displayValue)) {\r\n this.icon = '';\r\n this.showClearable = true;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n mleave() {\r\n if (this.disabled || !this.clearable) return;\r\n this.enter = false;\r\n if (this.clearable) {\r\n this.icon = 'fto-chevron-down';\r\n this.showClearable = false;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n clearEmit() {\r\n this.value = '';\r\n this.displayValue = '';\r\n this.valueTplContext.$node = null;\r\n this.mleave();\r\n this.valueChange.next(this.value);\r\n if (this.onChange) this.onChange(this.value);\r\n }\r\n\r\n setDisplayValue() {\r\n if (this.nodes.length > 0) {\r\n if (this.multiple) {\r\n if (XIsEmpty(this.value)) {\r\n this.displayValue = '';\r\n this.valueTplContext.$node = null;\r\n } else {\r\n let nodes = this.nodes.filter((x) => !XIsEmpty(this.value.find((y: XSelectNode) => y.id === x.id)));\r\n this.displayValue = nodes.map((x) => x.label).join(',');\r\n this.valueTplContext.$node = [...nodes];\r\n }\r\n } else {\r\n let node = this.nodes.find((x) => x.id === this.value);\r\n if (node) {\r\n this.displayValue = node.label;\r\n this.valueTplContext.$node = node;\r\n } else {\r\n this.displayValue = '';\r\n this.valueTplContext.$node = null;\r\n }\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n portalAttached() {\r\n return this.portal?.overlayRef?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.detach();\r\n this.active = false;\r\n this.cdr.detectChanges();\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n destroyPortal() {\r\n this.portal?.overlayRef?.dispose();\r\n }\r\n\r\n showPortal() {\r\n if (this.disabled || this.iconSpin) return;\r\n if (this.animating) return;\r\n this.active = true;\r\n if (this.async && XIsObservable(this.data) && this.nodes.length === 0) {\r\n this.icon = 'fto-loader';\r\n this.iconSpin = true;\r\n this.cdr.detectChanges();\r\n XSetData<XSelectNode>(this.data, this._unSubject).subscribe((x) => {\r\n this.nodes = x;\r\n this.setDisplayValue();\r\n this.createPortal();\r\n this.icon = 'fto-chevron-down';\r\n this.iconSpin = false;\r\n this.cdr.detectChanges();\r\n });\r\n } else {\r\n this.createPortal();\r\n }\r\n this.inputCom.inputFocus();\r\n }\r\n\r\n createPortal() {\r\n this.nodes.filter((x) => x.selected).map((x) => (x.selected = false));\r\n this.box = this.inputCom.inputRef.nativeElement.getBoundingClientRect();\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n width: this.box.width,\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XSelectPortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(takeUntil(this._unSubject))\r\n .subscribe(() => {\r\n this.setDisplayValue();\r\n this.closeSubject.next();\r\n });\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this._unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XPositionTopBottom;\r\n place !== this.placement && this.positionChange.next(place);\r\n });\r\n }\r\n\r\n setInstance() {\r\n let componentRef = this.portal.componentRef;\r\n if (!componentRef) return;\r\n Object.assign(componentRef.instance, {\r\n data: this.nodes,\r\n value: this.value,\r\n placement: this.placement,\r\n multiple: this.multiple === true ? 0 : 1,\r\n nodeTpl: this.nodeTpl,\r\n valueChange: this.valueChange,\r\n positionChange: this.positionChange,\r\n closeSubject: this.closeSubject,\r\n keydownSubject: this.keydownSubject,\r\n inputCom: this.inputCom,\r\n destroyPortal: () => this.destroyPortal(),\r\n nodeEmit: (node: XSelectNode) => this.nodeClick(node),\r\n animating: (ing: boolean) => (this.animating = ing)\r\n });\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n\r\n nodeClick(node: XSelectNode | XSelectNode[]) {\r\n if (this.multiple && XIsArray(node)) {\r\n node = node as XSelectNode[];\r\n this.value = node;\r\n this.setDisplayValue();\r\n } else {\r\n node = node as XSelectNode;\r\n this.displayValue = node.label;\r\n this.valueTplContext.$node = node;\r\n this.value = node.id;\r\n this.closeSubject.next();\r\n }\r\n this.inputCom.inputFocus();\r\n if (this.onChange) this.onChange(this.value);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: this.inputCom.inputRef,\r\n placement: [this.placement as XPositionTopBottom, 'bottom', 'top'],\r\n transformOriginOn: 'x-select-portal'\r\n });\r\n }\r\n\r\n setPortal() {\r\n this.portalAttached() && this.portal?.overlayRef?.updatePositionStrategy(this.setPlacement());\r\n }\r\n\r\n formControlChanges() {\r\n this.setData();\r\n this.ngOnInit();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onKeydown($event: KeyboardEvent) {\r\n this.keydownSubject.next($event);\r\n if ($event.keyCode !== TAB) $event.preventDefault();\r\n }\r\n\r\n onFocus(_event: Event) {\r\n this.inputCom.inputFocus();\r\n }\r\n}\r\n","<div #select class=\"x-select\">\r\n <div class=\"x-select-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [icon]=\"icon\"\r\n [iconSpin]=\"iconSpin\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"showClearable\"\r\n [(ngModel)]=\"displayValue\"\r\n [valueTpl]=\"valueTpl ? valueTpl : nodeTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"before\"\r\n [after]=\"after\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n [pointer]=\"true\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xKeydown)=\"onKeydown($event)\"\r\n (xFocus)=\"onFocus($event)\"\r\n (xClick)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XSelectComponent } from './select.component';\r\nimport { XInputModule } from '@ng-nest/ui/input';\r\nimport { XPortalModule } from '@ng-nest/ui/portal';\r\nimport { XListModule } from '@ng-nest/ui/list';\r\nimport { XSelectPortalComponent } from './select-portal.component';\r\nimport { XSelectProperty } from './select.property';\r\nimport { XBaseFormModule } from '@ng-nest/ui/base-form';\r\n\r\n@NgModule({\r\n declarations: [XSelectComponent, XSelectPortalComponent, XSelectProperty],\r\n exports: [XSelectComponent, XSelectPortalComponent],\r\n imports: [CommonModule, FormsModule, ReactiveFormsModule, XPortalModule, XInputModule, XListModule, XBaseFormModule]\r\n})\r\nexport class XSelectModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}