@ng-nest/ui 21.0.11 → 21.0.12

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 (41) hide show
  1. package/fesm2022/ng-nest-ui-auto-complete.mjs +10 -2
  2. package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
  3. package/fesm2022/ng-nest-ui-cascade.mjs +9 -1
  4. package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
  5. package/fesm2022/ng-nest-ui-color-picker.mjs +9 -1
  6. package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
  7. package/fesm2022/ng-nest-ui-contextmenu.mjs +441 -0
  8. package/fesm2022/ng-nest-ui-contextmenu.mjs.map +1 -0
  9. package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
  10. package/fesm2022/ng-nest-ui-date-picker.mjs +18 -2
  11. package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
  12. package/fesm2022/ng-nest-ui-dropdown.mjs +15 -3
  13. package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
  14. package/fesm2022/ng-nest-ui-select.mjs +49 -14
  15. package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
  16. package/fesm2022/ng-nest-ui-splitter.mjs +407 -0
  17. package/fesm2022/ng-nest-ui-splitter.mjs.map +1 -0
  18. package/fesm2022/ng-nest-ui-time-picker.mjs +9 -1
  19. package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
  20. package/fesm2022/ng-nest-ui-tree-select.mjs +11 -3
  21. package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
  22. package/fesm2022/ng-nest-ui-watermark.mjs +378 -0
  23. package/fesm2022/ng-nest-ui-watermark.mjs.map +1 -0
  24. package/fesm2022/ng-nest-ui.mjs +3 -0
  25. package/fesm2022/ng-nest-ui.mjs.map +1 -1
  26. package/package.json +13 -1
  27. package/types/ng-nest-ui-auto-complete.d.ts +3 -3
  28. package/types/ng-nest-ui-cascade.d.ts +4 -4
  29. package/types/ng-nest-ui-checkbox.d.ts +1 -1
  30. package/types/ng-nest-ui-color-picker.d.ts +4 -4
  31. package/types/ng-nest-ui-contextmenu.d.ts +176 -0
  32. package/types/ng-nest-ui-core.d.ts +29 -1
  33. package/types/ng-nest-ui-date-picker.d.ts +7 -7
  34. package/types/ng-nest-ui-dropdown.d.ts +12 -2
  35. package/types/ng-nest-ui-radio.d.ts +1 -1
  36. package/types/ng-nest-ui-select.d.ts +28 -3
  37. package/types/ng-nest-ui-splitter.d.ts +163 -0
  38. package/types/ng-nest-ui-time-picker.d.ts +3 -3
  39. package/types/ng-nest-ui-tree-select.d.ts +4 -4
  40. package/types/ng-nest-ui-watermark.d.ts +267 -0
  41. package/types/ng-nest-ui.d.ts +3 -0
@@ -0,0 +1,378 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, Component, signal, computed, ChangeDetectionStrategy, ViewEncapsulation, NgModule } from '@angular/core';
3
+ import { XPropertyFunction, XToNumber, XToBoolean } from '@ng-nest/ui/core';
4
+
5
+ /**
6
+ * Watermark
7
+ * @selector x-watermark
8
+ * @decorator component
9
+ */
10
+ const XWatermarkPrefix = 'x-watermark';
11
+ const X_WATERMARK_CONFIG_NAME = 'watermark';
12
+ /**
13
+ * Watermark Property
14
+ */
15
+ class XWatermarkProperty extends XPropertyFunction(X_WATERMARK_CONFIG_NAME) {
16
+ constructor() {
17
+ super(...arguments);
18
+ /**
19
+ * @zh_CN 水印内容
20
+ * @en_US Watermark content
21
+ * @example
22
+ *
23
+ * ```html
24
+ * <x-watermark content="NG-NEST"></x-watermark>
25
+ * ```
26
+ *
27
+ */
28
+ this.content = input('', ...(ngDevMode ? [{ debugName: "content" }] : []));
29
+ /**
30
+ * @zh_CN 水印宽度
31
+ * @en_US Watermark width
32
+ * @example
33
+ *
34
+ * ```html
35
+ * <x-watermark [width]="120"></x-watermark>
36
+ * ```
37
+ *
38
+ */
39
+ this.width = input(this.config?.width ?? 120, { ...(ngDevMode ? { debugName: "width" } : {}), transform: XToNumber });
40
+ /**
41
+ * @zh_CN 水印高度
42
+ * @en_US Watermark height
43
+ * @example
44
+ *
45
+ * ```html
46
+ * <x-watermark [height]="60"></x-watermark>
47
+ * ```
48
+ *
49
+ */
50
+ this.height = input(this.config?.height ?? 60, { ...(ngDevMode ? { debugName: "height" } : {}), transform: XToNumber });
51
+ /**
52
+ * @zh_CN 旋转角度
53
+ * @en_US Rotation angle
54
+ * @example
55
+ *
56
+ * ```html
57
+ * <x-watermark [rotate]="-22"></x-watermark>
58
+ * <x-watermark [rotate]="0"></x-watermark>
59
+ * ```
60
+ *
61
+ */
62
+ this.rotate = input(this.config?.rotate ?? -22, { ...(ngDevMode ? { debugName: "rotate" } : {}), transform: XToNumber });
63
+ /**
64
+ * @zh_CN 字体大小
65
+ * @en_US Font size
66
+ * @example
67
+ *
68
+ * ```html
69
+ * <x-watermark [fontSize]="14"></x-watermark>
70
+ * ```
71
+ *
72
+ */
73
+ this.fontSize = input(this.config?.fontSize ?? 14, { ...(ngDevMode ? { debugName: "fontSize" } : {}), transform: XToNumber });
74
+ /**
75
+ * @zh_CN 字体
76
+ * @en_US Font family
77
+ * @example
78
+ *
79
+ * ```html
80
+ * <x-watermark fontFamily="Varela Round"></x-watermark>
81
+ * ```
82
+ *
83
+ */
84
+ this.fontFamily = input(this.config?.fontFamily ?? 'Varela Round', ...(ngDevMode ? [{ debugName: "fontFamily" }] : []));
85
+ /**
86
+ * @zh_CN 字体颜色
87
+ * @en_US Font color
88
+ * @example
89
+ *
90
+ * ```html
91
+ * <x-watermark color="rgba(0, 0, 0, 0.12)"></x-watermark>
92
+ * ```
93
+ *
94
+ */
95
+ this.color = input(this.config?.color ?? 'rgba(0, 0, 0, 0.12)', ...(ngDevMode ? [{ debugName: "color" }] : []));
96
+ /**
97
+ * @zh_CN 层级
98
+ * @en_US Z-index
99
+ * @example
100
+ *
101
+ * ```html
102
+ * <x-watermark [zIndex]="9999"></x-watermark>
103
+ * ```
104
+ *
105
+ */
106
+ this.zIndex = input(this.config?.zIndex ?? 9999, { ...(ngDevMode ? { debugName: "zIndex" } : {}), transform: XToNumber });
107
+ /**
108
+ * @zh_CN 透明度
109
+ * @en_US Opacity
110
+ * @example
111
+ *
112
+ * ```html
113
+ * <x-watermark [alpha]="1"></x-watermark>
114
+ * <x-watermark [alpha]="0.5"></x-watermark>
115
+ * ```
116
+ *
117
+ */
118
+ this.alpha = input(this.config?.alpha ?? 1, { ...(ngDevMode ? { debugName: "alpha" } : {}), transform: XToNumber });
119
+ /**
120
+ * @zh_CN 水平间距
121
+ * @en_US Horizontal gap
122
+ * @example
123
+ *
124
+ * ```html
125
+ * <x-watermark [gapX]="100"></x-watermark>
126
+ * ```
127
+ *
128
+ */
129
+ this.gapX = input(this.config?.gapX ?? 100, { ...(ngDevMode ? { debugName: "gapX" } : {}), transform: XToNumber });
130
+ /**
131
+ * @zh_CN 垂直间距
132
+ * @en_US Vertical gap
133
+ * @example
134
+ *
135
+ * ```html
136
+ * <x-watermark [gapY]="100"></x-watermark>
137
+ * ```
138
+ *
139
+ */
140
+ this.gapY = input(this.config?.gapY ?? 100, { ...(ngDevMode ? { debugName: "gapY" } : {}), transform: XToNumber });
141
+ /**
142
+ * @zh_CN 水平偏移
143
+ * @en_US Horizontal offset
144
+ * @example
145
+ *
146
+ * ```html
147
+ * <x-watermark [offsetLeft]="0"></x-watermark>
148
+ * ```
149
+ *
150
+ */
151
+ this.offsetLeft = input(this.config?.offsetLeft ?? 0, { ...(ngDevMode ? { debugName: "offsetLeft" } : {}), transform: XToNumber });
152
+ /**
153
+ * @zh_CN 垂直偏移
154
+ * @en_US Vertical offset
155
+ * @example
156
+ *
157
+ * ```html
158
+ * <x-watermark [offsetTop]="0"></x-watermark>
159
+ * ```
160
+ *
161
+ */
162
+ this.offsetTop = input(this.config?.offsetTop ?? 0, { ...(ngDevMode ? { debugName: "offsetTop" } : {}), transform: XToNumber });
163
+ /**
164
+ * @zh_CN 是否交错显示
165
+ * @en_US Whether to stagger display
166
+ * @example
167
+ *
168
+ * ```html
169
+ * <x-watermark [striped]="true"></x-watermark>
170
+ * <x-watermark [striped]="false"></x-watermark>
171
+ * ```
172
+ *
173
+ */
174
+ this.striped = input(this.config?.striped ?? false, { ...(ngDevMode ? { debugName: "striped" } : {}), transform: XToBoolean });
175
+ /**
176
+ * @zh_CN 是否禁用
177
+ * @en_US Whether to disable
178
+ * @example
179
+ *
180
+ * ```html
181
+ * <x-watermark [disabled]="true"></x-watermark>
182
+ * <x-watermark [disabled]="false"></x-watermark>
183
+ * ```
184
+ *
185
+ */
186
+ this.disabled = input(this.config?.disabled ?? false, { ...(ngDevMode ? { debugName: "disabled" } : {}), transform: XToBoolean });
187
+ /**
188
+ * @zh_CN 图片/图标 URL
189
+ * @en_US Image/icon URL
190
+ * @example
191
+ *
192
+ * ```html
193
+ * <x-watermark imageSrc="/assets/logo.png"></x-watermark>
194
+ * ```
195
+ *
196
+ */
197
+ this.imageSrc = input('', ...(ngDevMode ? [{ debugName: "imageSrc" }] : []));
198
+ /**
199
+ * @zh_CN 图片宽度
200
+ * @en_US Image width
201
+ * @example
202
+ *
203
+ * ```html
204
+ * <x-watermark [imageWidth]="40"></x-watermark>
205
+ * ```
206
+ *
207
+ */
208
+ this.imageWidth = input(0, { ...(ngDevMode ? { debugName: "imageWidth" } : {}), transform: XToNumber });
209
+ /**
210
+ * @zh_CN 图片高度
211
+ * @en_US Image height
212
+ * @example
213
+ *
214
+ * ```html
215
+ * <x-watermark [imageHeight]="40"></x-watermark>
216
+ * ```
217
+ *
218
+ */
219
+ this.imageHeight = input(0, { ...(ngDevMode ? { debugName: "imageHeight" } : {}), transform: XToNumber });
220
+ /**
221
+ * @zh_CN 图片相对文本的位置
222
+ * @en_US Image position relative to text
223
+ * @example
224
+ *
225
+ * ```html
226
+ * <x-watermark imagePosition="top"></x-watermark>
227
+ * <x-watermark imagePosition="center"></x-watermark>
228
+ * <x-watermark imagePosition="bottom"></x-watermark>
229
+ * ```
230
+ *
231
+ */
232
+ this.imagePosition = input('center', ...(ngDevMode ? [{ debugName: "imagePosition" }] : []));
233
+ }
234
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: XWatermarkProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
235
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.1", type: XWatermarkProperty, isStandalone: true, selector: "x-watermark-property", inputs: { content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, rotate: { classPropertyName: "rotate", publicName: "rotate", isSignal: true, isRequired: false, transformFunction: null }, fontSize: { classPropertyName: "fontSize", publicName: "fontSize", isSignal: true, isRequired: false, transformFunction: null }, fontFamily: { classPropertyName: "fontFamily", publicName: "fontFamily", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, alpha: { classPropertyName: "alpha", publicName: "alpha", isSignal: true, isRequired: false, transformFunction: null }, gapX: { classPropertyName: "gapX", publicName: "gapX", isSignal: true, isRequired: false, transformFunction: null }, gapY: { classPropertyName: "gapY", publicName: "gapY", isSignal: true, isRequired: false, transformFunction: null }, offsetLeft: { classPropertyName: "offsetLeft", publicName: "offsetLeft", isSignal: true, isRequired: false, transformFunction: null }, offsetTop: { classPropertyName: "offsetTop", publicName: "offsetTop", isSignal: true, isRequired: false, transformFunction: null }, striped: { classPropertyName: "striped", publicName: "striped", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, imageSrc: { classPropertyName: "imageSrc", publicName: "imageSrc", isSignal: true, isRequired: false, transformFunction: null }, imageWidth: { classPropertyName: "imageWidth", publicName: "imageWidth", isSignal: true, isRequired: false, transformFunction: null }, imageHeight: { classPropertyName: "imageHeight", publicName: "imageHeight", isSignal: true, isRequired: false, transformFunction: null }, imagePosition: { classPropertyName: "imagePosition", publicName: "imagePosition", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
236
+ }
237
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: XWatermarkProperty, decorators: [{
238
+ type: Component,
239
+ args: [{ selector: `${XWatermarkPrefix}-property`, template: '' }]
240
+ }], propDecorators: { content: [{ type: i0.Input, args: [{ isSignal: true, alias: "content", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], rotate: [{ type: i0.Input, args: [{ isSignal: true, alias: "rotate", required: false }] }], fontSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "fontSize", required: false }] }], fontFamily: [{ type: i0.Input, args: [{ isSignal: true, alias: "fontFamily", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], zIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "zIndex", required: false }] }], alpha: [{ type: i0.Input, args: [{ isSignal: true, alias: "alpha", required: false }] }], gapX: [{ type: i0.Input, args: [{ isSignal: true, alias: "gapX", required: false }] }], gapY: [{ type: i0.Input, args: [{ isSignal: true, alias: "gapY", required: false }] }], offsetLeft: [{ type: i0.Input, args: [{ isSignal: true, alias: "offsetLeft", required: false }] }], offsetTop: [{ type: i0.Input, args: [{ isSignal: true, alias: "offsetTop", required: false }] }], striped: [{ type: i0.Input, args: [{ isSignal: true, alias: "striped", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], imageSrc: [{ type: i0.Input, args: [{ isSignal: true, alias: "imageSrc", required: false }] }], imageWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "imageWidth", required: false }] }], imageHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "imageHeight", required: false }] }], imagePosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "imagePosition", required: false }] }] } });
241
+
242
+ class XWatermarkComponent extends XWatermarkProperty {
243
+ constructor() {
244
+ super();
245
+ this.backgroundImage = signal('', ...(ngDevMode ? [{ debugName: "backgroundImage" }] : []));
246
+ this.font = computed(() => {
247
+ return `${this.fontSize()}px ${this.fontFamily()}`;
248
+ }, ...(ngDevMode ? [{ debugName: "font" }] : []));
249
+ this.textWidth = computed(() => {
250
+ const canvas = document.createElement('canvas');
251
+ const ctx = canvas.getContext('2d');
252
+ if (ctx) {
253
+ ctx.font = this.font();
254
+ return ctx.measureText(this.content()).width;
255
+ }
256
+ return this.width();
257
+ }, ...(ngDevMode ? [{ debugName: "textWidth" }] : []));
258
+ this.watermarkWidth = computed(() => {
259
+ const imgW = this.imageSrc() && this.imageWidth() ? this.imageWidth() : this.textWidth();
260
+ return Math.max(imgW, this.textWidth()) + this.gapX();
261
+ }, ...(ngDevMode ? [{ debugName: "watermarkWidth" }] : []));
262
+ this.watermarkHeight = computed(() => {
263
+ const imgH = this.imageSrc() && this.imageHeight() ? this.imageHeight() : this.height();
264
+ return Math.max(imgH, this.height()) + this.gapY();
265
+ }, ...(ngDevMode ? [{ debugName: "watermarkHeight" }] : []));
266
+ }
267
+ ngAfterViewInit() {
268
+ this.createWatermark();
269
+ }
270
+ ngOnDestroy() { }
271
+ createWatermark() {
272
+ if (this.imageSrc()) {
273
+ this.drawWatermarkWithImage();
274
+ }
275
+ else {
276
+ this.drawWatermarkText();
277
+ }
278
+ }
279
+ loadImage(src) {
280
+ return new Promise((resolve, reject) => {
281
+ const img = new Image();
282
+ img.crossOrigin = 'anonymous';
283
+ img.onload = () => resolve(img);
284
+ img.onerror = reject;
285
+ img.src = src;
286
+ });
287
+ }
288
+ async drawWatermarkWithImage() {
289
+ const w = this.watermarkWidth();
290
+ const h = this.watermarkHeight();
291
+ const canvas = document.createElement('canvas');
292
+ canvas.width = w;
293
+ canvas.height = h;
294
+ const ctx = canvas.getContext('2d');
295
+ if (!ctx)
296
+ return;
297
+ try {
298
+ const img = await this.loadImage(this.imageSrc());
299
+ const imgW = this.imageWidth() || this.width();
300
+ const imgH = this.imageHeight() || this.height();
301
+ ctx.save();
302
+ ctx.rotate((this.rotate() * Math.PI) / 180);
303
+ ctx.globalAlpha = this.alpha();
304
+ // 绘制图片
305
+ const imgX = (w - imgW) / 2;
306
+ const imgY = (h - imgH) / 2;
307
+ ctx.drawImage(img, imgX, imgY, imgW, imgH);
308
+ // 绘制文本
309
+ if (this.content()) {
310
+ ctx.font = this.font();
311
+ ctx.fillStyle = this.color();
312
+ ctx.textAlign = 'center';
313
+ ctx.textBaseline = 'middle';
314
+ let textY = h / 2;
315
+ if (this.imagePosition() === 'top') {
316
+ textY = imgY - 10;
317
+ }
318
+ else if (this.imagePosition() === 'bottom') {
319
+ textY = imgY + imgH + 10;
320
+ }
321
+ ctx.fillText(this.content(), w / 2, textY);
322
+ }
323
+ ctx.restore();
324
+ this.backgroundImage.set(canvas.toDataURL());
325
+ }
326
+ catch {
327
+ // 图片加载失败,降级为纯文本
328
+ this.drawWatermarkText();
329
+ }
330
+ }
331
+ drawWatermarkText() {
332
+ const w = this.watermarkWidth();
333
+ const h = this.watermarkHeight();
334
+ const canvas = document.createElement('canvas');
335
+ canvas.width = w;
336
+ canvas.height = h;
337
+ const ctx = canvas.getContext('2d');
338
+ if (!ctx)
339
+ return;
340
+ ctx.save();
341
+ ctx.rotate((this.rotate() * Math.PI) / 180);
342
+ ctx.font = this.font();
343
+ ctx.fillStyle = this.color();
344
+ ctx.globalAlpha = this.alpha();
345
+ ctx.textAlign = 'center';
346
+ ctx.textBaseline = 'middle';
347
+ ctx.fillText(this.content(), w / 2, h / 2);
348
+ ctx.restore();
349
+ const dataUrl = canvas.toDataURL();
350
+ this.backgroundImage.set(dataUrl);
351
+ }
352
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: XWatermarkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
353
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.1", type: XWatermarkComponent, isStandalone: true, selector: "x-watermark", usesInheritance: true, ngImport: i0, template: "<div\n class=\"x-watermark\"\n [class.x-watermark-disabled]=\"disabled()\"\n [style.z-index]=\"zIndex()\"\n [style.background-image]=\"backgroundImage() ? 'url(' + backgroundImage() + ')' : 'none'\"\n [style.background-repeat]=\"'repeat'\"\n [style.background-size]=\"watermarkWidth() + 'px ' + watermarkHeight() + 'px'\"\n [style.background-position]=\"offsetLeft() + 'px ' + offsetTop() + 'px'\"\n>\n <ng-content></ng-content>\n</div>", styles: [".x-watermark{margin:0;padding:0}.x-watermark{font-size:var(--x-font-size);display:inline-block;box-sizing:border-box;position:relative}.x-watermark-disabled{pointer-events:none;-webkit-user-select:none;user-select:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
354
+ }
355
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: XWatermarkComponent, decorators: [{
356
+ type: Component,
357
+ args: [{ selector: XWatermarkPrefix, imports: [], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"x-watermark\"\n [class.x-watermark-disabled]=\"disabled()\"\n [style.z-index]=\"zIndex()\"\n [style.background-image]=\"backgroundImage() ? 'url(' + backgroundImage() + ')' : 'none'\"\n [style.background-repeat]=\"'repeat'\"\n [style.background-size]=\"watermarkWidth() + 'px ' + watermarkHeight() + 'px'\"\n [style.background-position]=\"offsetLeft() + 'px ' + offsetTop() + 'px'\"\n>\n <ng-content></ng-content>\n</div>", styles: [".x-watermark{margin:0;padding:0}.x-watermark{font-size:var(--x-font-size);display:inline-block;box-sizing:border-box;position:relative}.x-watermark-disabled{pointer-events:none;-webkit-user-select:none;user-select:none}\n"] }]
358
+ }], ctorParameters: () => [] });
359
+
360
+ class XWatermarkModule {
361
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: XWatermarkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
362
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.1", ngImport: i0, type: XWatermarkModule, imports: [XWatermarkComponent], exports: [XWatermarkComponent] }); }
363
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: XWatermarkModule }); }
364
+ }
365
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: XWatermarkModule, decorators: [{
366
+ type: NgModule,
367
+ args: [{
368
+ exports: [XWatermarkComponent],
369
+ imports: [XWatermarkComponent]
370
+ }]
371
+ }] });
372
+
373
+ /**
374
+ * Generated bundle index. Do not edit.
375
+ */
376
+
377
+ export { XWatermarkComponent, XWatermarkModule, XWatermarkPrefix, XWatermarkProperty };
378
+ //# sourceMappingURL=ng-nest-ui-watermark.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ng-nest-ui-watermark.mjs","sources":["../../../../lib/ng-nest/ui/watermark/watermark.property.ts","../../../../lib/ng-nest/ui/watermark/watermark.component.ts","../../../../lib/ng-nest/ui/watermark/watermark.component.html","../../../../lib/ng-nest/ui/watermark/watermark.module.ts","../../../../lib/ng-nest/ui/watermark/ng-nest-ui-watermark.ts"],"sourcesContent":["import { Component, input } from '@angular/core';\r\nimport { XToNumber, XToBoolean, XPropertyFunction } from '@ng-nest/ui/core';\r\nimport type { XNumber, XBoolean } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Watermark\r\n * @selector x-watermark\r\n * @decorator component\r\n */\r\nexport const XWatermarkPrefix = 'x-watermark';\r\nconst X_WATERMARK_CONFIG_NAME = 'watermark';\r\n\r\n/**\r\n * Watermark Property\r\n */\r\n@Component({ selector: `${XWatermarkPrefix}-property`, template: '' })\r\nexport class XWatermarkProperty extends XPropertyFunction(X_WATERMARK_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 水印内容\r\n * @en_US Watermark content\r\n * @example\r\n *\r\n * ```html\r\n * <x-watermark content=\"NG-NEST\"></x-watermark>\r\n * ```\r\n *\r\n */\r\n readonly content = input<string>('');\r\n /**\r\n * @zh_CN 水印宽度\r\n * @en_US Watermark width\r\n * @example\r\n *\r\n * ```html\r\n * <x-watermark [width]=\"120\"></x-watermark>\r\n * ```\r\n *\r\n */\r\n readonly width = input<number, XNumber>(this.config?.width ?? 120, { transform: XToNumber });\r\n /**\r\n * @zh_CN 水印高度\r\n * @en_US Watermark height\r\n * @example\r\n *\r\n * ```html\r\n * <x-watermark [height]=\"60\"></x-watermark>\r\n * ```\r\n *\r\n */\r\n readonly height = input<number, XNumber>(this.config?.height ?? 60, { transform: XToNumber });\r\n /**\r\n * @zh_CN 旋转角度\r\n * @en_US Rotation angle\r\n * @example\r\n *\r\n * ```html\r\n * <x-watermark [rotate]=\"-22\"></x-watermark>\r\n * <x-watermark [rotate]=\"0\"></x-watermark>\r\n * ```\r\n *\r\n */\r\n readonly rotate = input<number, XNumber>(this.config?.rotate ?? -22, { transform: XToNumber });\r\n /**\r\n * @zh_CN 字体大小\r\n * @en_US Font size\r\n * @example\r\n *\r\n * ```html\r\n * <x-watermark [fontSize]=\"14\"></x-watermark>\r\n * ```\r\n *\r\n */\r\n readonly fontSize = input<number, XNumber>(this.config?.fontSize ?? 14, { transform: XToNumber });\r\n /**\r\n * @zh_CN 字体\r\n * @en_US Font family\r\n * @example\r\n *\r\n * ```html\r\n * <x-watermark fontFamily=\"Varela Round\"></x-watermark>\r\n * ```\r\n *\r\n */\r\n readonly fontFamily = input<string>(this.config?.fontFamily ?? 'Varela Round');\r\n /**\r\n * @zh_CN 字体颜色\r\n * @en_US Font color\r\n * @example\r\n *\r\n * ```html\r\n * <x-watermark color=\"rgba(0, 0, 0, 0.12)\"></x-watermark>\r\n * ```\r\n *\r\n */\r\n readonly color = input<string>(this.config?.color ?? 'rgba(0, 0, 0, 0.12)');\r\n /**\r\n * @zh_CN 层级\r\n * @en_US Z-index\r\n * @example\r\n *\r\n * ```html\r\n * <x-watermark [zIndex]=\"9999\"></x-watermark>\r\n * ```\r\n *\r\n */\r\n readonly zIndex = input<number, XNumber>(this.config?.zIndex ?? 9999, { transform: XToNumber });\r\n /**\r\n * @zh_CN 透明度\r\n * @en_US Opacity\r\n * @example\r\n *\r\n * ```html\r\n * <x-watermark [alpha]=\"1\"></x-watermark>\r\n * <x-watermark [alpha]=\"0.5\"></x-watermark>\r\n * ```\r\n *\r\n */\r\n readonly alpha = input<number, XNumber>(this.config?.alpha ?? 1, { transform: XToNumber });\r\n /**\r\n * @zh_CN 水平间距\r\n * @en_US Horizontal gap\r\n * @example\r\n *\r\n * ```html\r\n * <x-watermark [gapX]=\"100\"></x-watermark>\r\n * ```\r\n *\r\n */\r\n readonly gapX = input<number, XNumber>(this.config?.gapX ?? 100, { transform: XToNumber });\r\n /**\r\n * @zh_CN 垂直间距\r\n * @en_US Vertical gap\r\n * @example\r\n *\r\n * ```html\r\n * <x-watermark [gapY]=\"100\"></x-watermark>\r\n * ```\r\n *\r\n */\r\n readonly gapY = input<number, XNumber>(this.config?.gapY ?? 100, { transform: XToNumber });\r\n /**\r\n * @zh_CN 水平偏移\r\n * @en_US Horizontal offset\r\n * @example\r\n *\r\n * ```html\r\n * <x-watermark [offsetLeft]=\"0\"></x-watermark>\r\n * ```\r\n *\r\n */\r\n readonly offsetLeft = input<number, XNumber>(this.config?.offsetLeft ?? 0, { transform: XToNumber });\r\n /**\r\n * @zh_CN 垂直偏移\r\n * @en_US Vertical offset\r\n * @example\r\n *\r\n * ```html\r\n * <x-watermark [offsetTop]=\"0\"></x-watermark>\r\n * ```\r\n *\r\n */\r\n readonly offsetTop = input<number, XNumber>(this.config?.offsetTop ?? 0, { transform: XToNumber });\r\n /**\r\n * @zh_CN 是否交错显示\r\n * @en_US Whether to stagger display\r\n * @example\r\n *\r\n * ```html\r\n * <x-watermark [striped]=\"true\"></x-watermark>\r\n * <x-watermark [striped]=\"false\"></x-watermark>\r\n * ```\r\n *\r\n */\r\n readonly striped = input<boolean, XBoolean>(this.config?.striped ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 是否禁用\r\n * @en_US Whether to disable\r\n * @example\r\n *\r\n * ```html\r\n * <x-watermark [disabled]=\"true\"></x-watermark>\r\n * <x-watermark [disabled]=\"false\"></x-watermark>\r\n * ```\r\n *\r\n */\r\n readonly disabled = input<boolean, XBoolean>(this.config?.disabled ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 图片/图标 URL\r\n * @en_US Image/icon URL\r\n * @example\r\n *\r\n * ```html\r\n * <x-watermark imageSrc=\"/assets/logo.png\"></x-watermark>\r\n * ```\r\n *\r\n */\r\n readonly imageSrc = input<string>('');\r\n /**\r\n * @zh_CN 图片宽度\r\n * @en_US Image width\r\n * @example\r\n *\r\n * ```html\r\n * <x-watermark [imageWidth]=\"40\"></x-watermark>\r\n * ```\r\n *\r\n */\r\n readonly imageWidth = input<number, XNumber>(0, { transform: XToNumber });\r\n /**\r\n * @zh_CN 图片高度\r\n * @en_US Image height\r\n * @example\r\n *\r\n * ```html\r\n * <x-watermark [imageHeight]=\"40\"></x-watermark>\r\n * ```\r\n *\r\n */\r\n readonly imageHeight = input<number, XNumber>(0, { transform: XToNumber });\r\n /**\r\n * @zh_CN 图片相对文本的位置\r\n * @en_US Image position relative to text\r\n * @example\r\n *\r\n * ```html\r\n * <x-watermark imagePosition=\"top\"></x-watermark>\r\n * <x-watermark imagePosition=\"center\"></x-watermark>\r\n * <x-watermark imagePosition=\"bottom\"></x-watermark>\r\n * ```\r\n *\r\n */\r\n readonly imagePosition = input<XWatermarkImagePosition>('center');\r\n}\r\n\r\n/**\r\n * @zh_CN 图片相对文本的位置\r\n * @en_US Image position relative to text\r\n */\r\nexport type XWatermarkImagePosition = 'top' | 'center' | 'bottom';\r\n","import {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n computed,\n signal,\n AfterViewInit,\n OnDestroy\n} from '@angular/core';\nimport { XWatermarkProperty, XWatermarkPrefix } from './watermark.property';\n\n@Component({\n selector: XWatermarkPrefix,\n imports: [],\n templateUrl: './watermark.component.html',\n styleUrls: ['./watermark.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class XWatermarkComponent extends XWatermarkProperty implements AfterViewInit, OnDestroy {\n backgroundImage = signal<string>('');\n\n private font = computed(() => {\n return `${this.fontSize()}px ${this.fontFamily()}`;\n });\n\n private textWidth = computed(() => {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n if (ctx) {\n ctx.font = this.font();\n return ctx.measureText(this.content()).width;\n }\n return this.width();\n });\n\n watermarkWidth = computed(() => {\n const imgW = this.imageSrc() && this.imageWidth() ? this.imageWidth() : this.textWidth();\n return Math.max(imgW, this.textWidth()) + this.gapX();\n });\n \n watermarkHeight = computed(() => {\n const imgH = this.imageSrc() && this.imageHeight() ? this.imageHeight() : this.height();\n return Math.max(imgH, this.height()) + this.gapY();\n });\n\n constructor() {\n super();\n }\n\n ngAfterViewInit() {\n this.createWatermark();\n }\n\n ngOnDestroy() {}\n\n private createWatermark() {\n if (this.imageSrc()) {\n this.drawWatermarkWithImage();\n } else {\n this.drawWatermarkText();\n }\n }\n\n private loadImage(src: string): Promise<HTMLImageElement> {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = 'anonymous';\n img.onload = () => resolve(img);\n img.onerror = reject;\n img.src = src;\n });\n }\n\n private async drawWatermarkWithImage() {\n const w = this.watermarkWidth();\n const h = this.watermarkHeight();\n const canvas = document.createElement('canvas');\n canvas.width = w;\n canvas.height = h;\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n\n try {\n const img = await this.loadImage(this.imageSrc());\n const imgW = this.imageWidth() || this.width();\n const imgH = this.imageHeight() || this.height();\n \n ctx.save();\n ctx.rotate((this.rotate() * Math.PI) / 180);\n ctx.globalAlpha = this.alpha();\n \n // 绘制图片\n const imgX = (w - imgW) / 2;\n const imgY = (h - imgH) / 2;\n ctx.drawImage(img, imgX, imgY, imgW, imgH);\n \n // 绘制文本\n if (this.content()) {\n ctx.font = this.font();\n ctx.fillStyle = this.color();\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n \n let textY = h / 2;\n if (this.imagePosition() === 'top') {\n textY = imgY - 10;\n } else if (this.imagePosition() === 'bottom') {\n textY = imgY + imgH + 10;\n }\n \n ctx.fillText(this.content(), w / 2, textY);\n }\n \n ctx.restore();\n this.backgroundImage.set(canvas.toDataURL());\n } catch {\n // 图片加载失败,降级为纯文本\n this.drawWatermarkText();\n }\n }\n\n private drawWatermarkText() {\n const w = this.watermarkWidth();\n const h = this.watermarkHeight();\n\n const canvas = document.createElement('canvas');\n canvas.width = w;\n canvas.height = h;\n\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n\n ctx.save();\n ctx.rotate((this.rotate() * Math.PI) / 180);\n ctx.font = this.font();\n ctx.fillStyle = this.color();\n ctx.globalAlpha = this.alpha();\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n ctx.fillText(this.content(), w / 2, h / 2);\n ctx.restore();\n\n const dataUrl = canvas.toDataURL();\n this.backgroundImage.set(dataUrl);\n }\n}\n","<div\n class=\"x-watermark\"\n [class.x-watermark-disabled]=\"disabled()\"\n [style.z-index]=\"zIndex()\"\n [style.background-image]=\"backgroundImage() ? 'url(' + backgroundImage() + ')' : 'none'\"\n [style.background-repeat]=\"'repeat'\"\n [style.background-size]=\"watermarkWidth() + 'px ' + watermarkHeight() + 'px'\"\n [style.background-position]=\"offsetLeft() + 'px ' + offsetTop() + 'px'\"\n>\n <ng-content></ng-content>\n</div>","import { NgModule } from '@angular/core';\nimport { XWatermarkComponent } from './watermark.component';\n\n@NgModule({\n exports: [XWatermarkComponent],\n imports: [XWatermarkComponent]\n})\nexport class XWatermarkModule {}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -71,6 +71,7 @@ export * from '@ng-nest/ui/affix';
71
71
  export * from '@ng-nest/ui/anchor';
72
72
  export * from '@ng-nest/ui/back-top';
73
73
  export * from '@ng-nest/ui/crumb';
74
+ export * from '@ng-nest/ui/contextmenu';
74
75
  export * from '@ng-nest/ui/dropdown';
75
76
  export * from '@ng-nest/ui/menu';
76
77
  export * from '@ng-nest/ui/page-header';
@@ -93,6 +94,8 @@ export * from '@ng-nest/ui/slider';
93
94
  export * from '@ng-nest/ui/scrollable';
94
95
  export * from '@ng-nest/ui/highlight';
95
96
  export * from '@ng-nest/ui/inner';
97
+ export * from '@ng-nest/ui/watermark';
98
+ export * from '@ng-nest/ui/splitter';
96
99
 
97
100
  /**
98
101
  * Core
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui.mjs","sources":["../../../../lib/ng-nest/ui/index.ts","../../../../lib/ng-nest/ui/ng-nest-ui.ts"],"sourcesContent":["/**\r\n * Core\r\n */\r\nexport * from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Basic\r\n */\r\nexport * from '@ng-nest/ui/button';\r\nexport * from '@ng-nest/ui/color';\r\nexport * from '@ng-nest/ui/container';\r\nexport * from '@ng-nest/ui/layout';\r\nexport * from '@ng-nest/ui/icon';\r\nexport * from '@ng-nest/ui/i18n';\r\nexport * from '@ng-nest/ui/link';\r\nexport * from '@ng-nest/ui/theme';\r\n\r\n/**\r\n * Data\r\n */\r\nexport * from '@ng-nest/ui/avatar';\r\nexport * from '@ng-nest/ui/badge';\r\nexport * from '@ng-nest/ui/card';\r\nexport * from '@ng-nest/ui/carousel';\r\nexport * from '@ng-nest/ui/collapse';\r\nexport * from '@ng-nest/ui/calendar';\r\nexport * from '@ng-nest/ui/comment';\r\nexport * from '@ng-nest/ui/description';\r\nexport * from '@ng-nest/ui/empty';\r\nexport * from '@ng-nest/ui/image';\r\nexport * from '@ng-nest/ui/outlet';\r\nexport * from '@ng-nest/ui/pagination';\r\nexport * from '@ng-nest/ui/progress';\r\nexport * from '@ng-nest/ui/ripple';\r\nexport * from '@ng-nest/ui/resizable';\r\nexport * from '@ng-nest/ui/drag';\r\nexport * from '@ng-nest/ui/statistic';\r\nexport * from '@ng-nest/ui/table';\r\nexport * from '@ng-nest/ui/table-view';\r\nexport * from '@ng-nest/ui/tag';\r\nexport * from '@ng-nest/ui/text-retract';\r\nexport * from '@ng-nest/ui/time-ago';\r\nexport * from '@ng-nest/ui/time-range';\r\nexport * from '@ng-nest/ui/timeline';\r\nexport * from '@ng-nest/ui/tree';\r\nexport * from '@ng-nest/ui/tree-file';\r\nexport * from '@ng-nest/ui/keyword';\r\n\r\n/**\r\n * Feedback\r\n */\r\nexport * from '@ng-nest/ui/alert';\r\nexport * from '@ng-nest/ui/dialog';\r\nexport * from '@ng-nest/ui/drawer';\r\nexport * from '@ng-nest/ui/loading';\r\nexport * from '@ng-nest/ui/message';\r\nexport * from '@ng-nest/ui/message-box';\r\nexport * from '@ng-nest/ui/notification';\r\nexport * from '@ng-nest/ui/popconfirm';\r\nexport * from '@ng-nest/ui/popover';\r\nexport * from '@ng-nest/ui/result';\r\nexport * from '@ng-nest/ui/skeleton';\r\nexport * from '@ng-nest/ui/tooltip';\r\n\r\n/**\r\n * Form\r\n */\r\nexport * from '@ng-nest/ui/auto-complete';\r\nexport * from '@ng-nest/ui/base-form';\r\nexport * from '@ng-nest/ui/cascade';\r\nexport * from '@ng-nest/ui/checkbox';\r\nexport * from '@ng-nest/ui/color-picker';\r\nexport * from '@ng-nest/ui/date-picker';\r\nexport * from '@ng-nest/ui/form';\r\nexport * from '@ng-nest/ui/find';\r\nexport * from '@ng-nest/ui/input';\r\nexport * from '@ng-nest/ui/input-number';\r\nexport * from '@ng-nest/ui/list';\r\nexport * from '@ng-nest/ui/radio';\r\nexport * from '@ng-nest/ui/rate';\r\nexport * from '@ng-nest/ui/select';\r\nexport * from '@ng-nest/ui/slider-select';\r\nexport * from '@ng-nest/ui/switch';\r\nexport * from '@ng-nest/ui/time-picker';\r\nexport * from '@ng-nest/ui/transfer';\r\nexport * from '@ng-nest/ui/tree-select';\r\nexport * from '@ng-nest/ui/textarea';\r\nexport * from '@ng-nest/ui/upload';\r\n\r\n/**\r\n * Navigation\r\n */\r\nexport * from '@ng-nest/ui/affix';\r\nexport * from '@ng-nest/ui/anchor';\r\nexport * from '@ng-nest/ui/back-top';\r\nexport * from '@ng-nest/ui/crumb';\r\nexport * from '@ng-nest/ui/dropdown';\r\nexport * from '@ng-nest/ui/menu';\r\nexport * from '@ng-nest/ui/page-header';\r\nexport * from '@ng-nest/ui/steps';\r\nexport * from '@ng-nest/ui/tabs';\r\n\r\n/**\r\n * AI\r\n */\r\nexport * from '@ng-nest/ui/bubble';\r\nexport * from '@ng-nest/ui/sender';\r\nexport * from '@ng-nest/ui/coversations';\r\nexport * from '@ng-nest/ui/welcome';\r\nexport * from '@ng-nest/ui/prompts';\r\nexport * from '@ng-nest/ui/attachments';\r\nexport * from '@ng-nest/ui/suggestion';\r\nexport * from '@ng-nest/ui/thought-chain';\r\n\r\n/**\r\n * Others\r\n */\r\nexport * from '@ng-nest/ui/doc';\r\nexport * from '@ng-nest/ui/divider';\r\nexport * from '@ng-nest/ui/examples';\r\nexport * from '@ng-nest/ui/api';\r\nexport * from '@ng-nest/ui/pattern';\r\nexport * from '@ng-nest/ui/slider';\r\nexport * from '@ng-nest/ui/scrollable';\r\nexport * from '@ng-nest/ui/highlight';\r\nexport * from '@ng-nest/ui/inner';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEG;;ACFH;;AAEG"}
1
+ {"version":3,"file":"ng-nest-ui.mjs","sources":["../../../../lib/ng-nest/ui/index.ts","../../../../lib/ng-nest/ui/ng-nest-ui.ts"],"sourcesContent":["/**\r\n * Core\r\n */\r\nexport * from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Basic\r\n */\r\nexport * from '@ng-nest/ui/button';\r\nexport * from '@ng-nest/ui/color';\r\nexport * from '@ng-nest/ui/container';\r\nexport * from '@ng-nest/ui/layout';\r\nexport * from '@ng-nest/ui/icon';\r\nexport * from '@ng-nest/ui/i18n';\r\nexport * from '@ng-nest/ui/link';\r\nexport * from '@ng-nest/ui/theme';\r\n\r\n/**\r\n * Data\r\n */\r\nexport * from '@ng-nest/ui/avatar';\r\nexport * from '@ng-nest/ui/badge';\r\nexport * from '@ng-nest/ui/card';\r\nexport * from '@ng-nest/ui/carousel';\r\nexport * from '@ng-nest/ui/collapse';\r\nexport * from '@ng-nest/ui/calendar';\r\nexport * from '@ng-nest/ui/comment';\r\nexport * from '@ng-nest/ui/description';\r\nexport * from '@ng-nest/ui/empty';\r\nexport * from '@ng-nest/ui/image';\r\nexport * from '@ng-nest/ui/outlet';\r\nexport * from '@ng-nest/ui/pagination';\r\nexport * from '@ng-nest/ui/progress';\r\nexport * from '@ng-nest/ui/ripple';\r\nexport * from '@ng-nest/ui/resizable';\r\nexport * from '@ng-nest/ui/drag';\r\nexport * from '@ng-nest/ui/statistic';\r\nexport * from '@ng-nest/ui/table';\r\nexport * from '@ng-nest/ui/table-view';\r\nexport * from '@ng-nest/ui/tag';\r\nexport * from '@ng-nest/ui/text-retract';\r\nexport * from '@ng-nest/ui/time-ago';\r\nexport * from '@ng-nest/ui/time-range';\r\nexport * from '@ng-nest/ui/timeline';\r\nexport * from '@ng-nest/ui/tree';\r\nexport * from '@ng-nest/ui/tree-file';\r\nexport * from '@ng-nest/ui/keyword';\r\n\r\n/**\r\n * Feedback\r\n */\r\nexport * from '@ng-nest/ui/alert';\r\nexport * from '@ng-nest/ui/dialog';\r\nexport * from '@ng-nest/ui/drawer';\r\nexport * from '@ng-nest/ui/loading';\r\nexport * from '@ng-nest/ui/message';\r\nexport * from '@ng-nest/ui/message-box';\r\nexport * from '@ng-nest/ui/notification';\r\nexport * from '@ng-nest/ui/popconfirm';\r\nexport * from '@ng-nest/ui/popover';\r\nexport * from '@ng-nest/ui/result';\r\nexport * from '@ng-nest/ui/skeleton';\r\nexport * from '@ng-nest/ui/tooltip';\r\n\r\n/**\r\n * Form\r\n */\r\nexport * from '@ng-nest/ui/auto-complete';\r\nexport * from '@ng-nest/ui/base-form';\r\nexport * from '@ng-nest/ui/cascade';\r\nexport * from '@ng-nest/ui/checkbox';\r\nexport * from '@ng-nest/ui/color-picker';\r\nexport * from '@ng-nest/ui/date-picker';\r\nexport * from '@ng-nest/ui/form';\r\nexport * from '@ng-nest/ui/find';\r\nexport * from '@ng-nest/ui/input';\r\nexport * from '@ng-nest/ui/input-number';\r\nexport * from '@ng-nest/ui/list';\r\nexport * from '@ng-nest/ui/radio';\r\nexport * from '@ng-nest/ui/rate';\r\nexport * from '@ng-nest/ui/select';\r\nexport * from '@ng-nest/ui/slider-select';\r\nexport * from '@ng-nest/ui/switch';\r\nexport * from '@ng-nest/ui/time-picker';\r\nexport * from '@ng-nest/ui/transfer';\r\nexport * from '@ng-nest/ui/tree-select';\r\nexport * from '@ng-nest/ui/textarea';\r\nexport * from '@ng-nest/ui/upload';\r\n\r\n/**\r\n * Navigation\r\n */\r\nexport * from '@ng-nest/ui/affix';\r\nexport * from '@ng-nest/ui/anchor';\r\nexport * from '@ng-nest/ui/back-top';\r\nexport * from '@ng-nest/ui/crumb';\r\nexport * from '@ng-nest/ui/contextmenu';\r\nexport * from '@ng-nest/ui/dropdown';\r\nexport * from '@ng-nest/ui/menu';\r\nexport * from '@ng-nest/ui/page-header';\r\nexport * from '@ng-nest/ui/steps';\r\nexport * from '@ng-nest/ui/tabs';\r\n\r\n/**\r\n * AI\r\n */\r\nexport * from '@ng-nest/ui/bubble';\r\nexport * from '@ng-nest/ui/sender';\r\nexport * from '@ng-nest/ui/coversations';\r\nexport * from '@ng-nest/ui/welcome';\r\nexport * from '@ng-nest/ui/prompts';\r\nexport * from '@ng-nest/ui/attachments';\r\nexport * from '@ng-nest/ui/suggestion';\r\nexport * from '@ng-nest/ui/thought-chain';\r\n\r\n/**\r\n * Others\r\n */\r\nexport * from '@ng-nest/ui/doc';\r\nexport * from '@ng-nest/ui/divider';\r\nexport * from '@ng-nest/ui/examples';\r\nexport * from '@ng-nest/ui/api';\r\nexport * from '@ng-nest/ui/pattern';\r\nexport * from '@ng-nest/ui/slider';\r\nexport * from '@ng-nest/ui/scrollable';\r\nexport * from '@ng-nest/ui/highlight';\r\nexport * from '@ng-nest/ui/inner';\r\nexport * from '@ng-nest/ui/watermark';\r\nexport * from '@ng-nest/ui/splitter';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEG;;ACFH;;AAEG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ng-nest/ui",
3
- "version": "21.0.11",
3
+ "version": "21.0.12",
4
4
  "license": "MIT",
5
5
  "homepage": "https://www.ngnest.com",
6
6
  "author": "ng-nest",
@@ -120,6 +120,10 @@
120
120
  "types": "./types/ng-nest-ui-container.d.ts",
121
121
  "default": "./fesm2022/ng-nest-ui-container.mjs"
122
122
  },
123
+ "./contextmenu": {
124
+ "types": "./types/ng-nest-ui-contextmenu.d.ts",
125
+ "default": "./fesm2022/ng-nest-ui-contextmenu.mjs"
126
+ },
123
127
  "./core": {
124
128
  "types": "./types/ng-nest-ui-core.d.ts",
125
129
  "default": "./fesm2022/ng-nest-ui-core.mjs"
@@ -324,6 +328,10 @@
324
328
  "types": "./types/ng-nest-ui-slider-select.d.ts",
325
329
  "default": "./fesm2022/ng-nest-ui-slider-select.mjs"
326
330
  },
331
+ "./splitter": {
332
+ "types": "./types/ng-nest-ui-splitter.d.ts",
333
+ "default": "./fesm2022/ng-nest-ui-splitter.mjs"
334
+ },
327
335
  "./statistic": {
328
336
  "types": "./types/ng-nest-ui-statistic.d.ts",
329
337
  "default": "./fesm2022/ng-nest-ui-statistic.mjs"
@@ -416,6 +424,10 @@
416
424
  "types": "./types/ng-nest-ui-upload.d.ts",
417
425
  "default": "./fesm2022/ng-nest-ui-upload.mjs"
418
426
  },
427
+ "./watermark": {
428
+ "types": "./types/ng-nest-ui-watermark.d.ts",
429
+ "default": "./fesm2022/ng-nest-ui-watermark.mjs"
430
+ },
419
431
  "./welcome": {
420
432
  "types": "./types/ng-nest-ui-welcome.d.ts",
421
433
  "default": "./fesm2022/ng-nest-ui-welcome.mjs"
@@ -5,7 +5,7 @@ import { TemplateRef, OnInit, OnChanges, ComponentRef, SimpleChanges } from '@an
5
5
  import * as rxjs from 'rxjs';
6
6
  import { Subject, BehaviorSubject } from 'rxjs';
7
7
  import * as _ng_nest_ui_core from '@ng-nest/ui/core';
8
- import { XBoolean, XTemplate, XNumber, XAlign, XJustify, XDirection, XSize, XData, XParentIdentityProperty, XVariant, XPositionTopBottom, XFloatLabel } from '@ng-nest/ui/core';
8
+ import { XBoolean, XTemplate, XNumber, XAlign, XJustify, XDirection, XSize, XData, XParentIdentityProperty, XVariant, XPlacement, XFloatLabel, XPositionTopBottom } from '@ng-nest/ui/core';
9
9
  import { XFormOption } from '@ng-nest/ui/base-form';
10
10
  import { XInputComponent } from '@ng-nest/ui/input';
11
11
  import { XListComponent } from '@ng-nest/ui/list';
@@ -88,7 +88,7 @@ declare class XAutoCompleteProperty extends XAutoCompleteProperty_base {
88
88
  * @zh_CN 展示方位
89
89
  * @en_US Display position
90
90
  */
91
- readonly placement: _angular_core.InputSignal<XPositionTopBottom>;
91
+ readonly placement: _angular_core.InputSignal<XPlacement>;
92
92
  /**
93
93
  * @zh_CN 节点模板
94
94
  * @en_US Node template
@@ -277,7 +277,7 @@ interface XAutoCompleteOption extends XFormOption {
277
277
  * @zh_CN 展示方位
278
278
  * @en_US Display position
279
279
  */
280
- placement?: XPositionTopBottom;
280
+ placement?: XPlacement;
281
281
  /**
282
282
  * @zh_CN 节点模板
283
283
  * @en_US Node template
@@ -5,7 +5,7 @@ import { TemplateRef, OnInit, AfterViewInit, OnChanges, OnDestroy, ElementRef, C
5
5
  import * as rxjs from 'rxjs';
6
6
  import { Subject } from 'rxjs';
7
7
  import * as _ng_nest_ui_core from '@ng-nest/ui/core';
8
- import { XBoolean, XTemplate, XNumber, XAlign, XJustify, XDirection, XSize, XData, XParentIdentityProperty, XVariant, XCorner, XTrigger, XFloatLabel, XPositionTopBottom } from '@ng-nest/ui/core';
8
+ import { XBoolean, XTemplate, XNumber, XAlign, XJustify, XDirection, XSize, XData, XParentIdentityProperty, XVariant, XPlacement, XTrigger, XFloatLabel } from '@ng-nest/ui/core';
9
9
  import { XFormOption } from '@ng-nest/ui/base-form';
10
10
  import { XInputComponent } from '@ng-nest/ui/input';
11
11
  import { XPortalOverlayRef } from '@ng-nest/ui/portal';
@@ -83,7 +83,7 @@ declare class XCascadeProperty extends XCascadeProperty_base {
83
83
  * @zh_CN 展示方位
84
84
  * @en_US Display position
85
85
  */
86
- readonly placement: _angular_core.InputSignal<XCorner>;
86
+ readonly placement: _angular_core.InputSignal<XPlacement>;
87
87
  /**
88
88
  * @zh_CN 清除按钮
89
89
  * @en_US Clear button
@@ -280,7 +280,7 @@ interface XCascadeOption extends XFormOption {
280
280
  * @zh_CN 展示方位
281
281
  * @en_US Display position
282
282
  */
283
- placement?: XCorner;
283
+ placement?: XPlacement;
284
284
  /**
285
285
  * @zh_CN 显示边框
286
286
  * @en_US Display Border
@@ -441,7 +441,7 @@ declare class XCascadePortalComponent implements OnInit {
441
441
  done(): void;
442
442
  start(): void;
443
443
  value: _angular_core.InputSignal<any>;
444
- placement: _angular_core.InputSignal<XPositionTopBottom | undefined>;
444
+ placement: _angular_core.InputSignal<XPlacement | undefined>;
445
445
  nodeTpl: _angular_core.InputSignal<TemplateRef<any> | undefined>;
446
446
  inputCom: _angular_core.InputSignal<XInputComponent | undefined>;
447
447
  nodeTrigger: _angular_core.InputSignal<_ng_nest_ui_core.XTrigger | undefined>;
@@ -332,7 +332,7 @@ declare class XCheckboxComponent extends XCheckboxProperty implements OnChanges,
332
332
  labelMapSignal: _angular_core.Signal<{
333
333
  [x: string]: boolean;
334
334
  }>;
335
- checkboxType: _angular_core.Signal<"button" | "icon" | "tag" | "initial">;
335
+ checkboxType: _angular_core.Signal<"initial" | "button" | "icon" | "tag">;
336
336
  constructor();
337
337
  ngOnChanges(changes: SimpleChanges): void;
338
338
  ngOnDestroy(): void;
@@ -5,7 +5,7 @@ import { TemplateRef, OnInit, OnChanges, AfterViewInit, ElementRef, SimpleChange
5
5
  import * as rxjs from 'rxjs';
6
6
  import { Subject } from 'rxjs';
7
7
  import * as _ng_nest_ui_core from '@ng-nest/ui/core';
8
- import { XBoolean, XTemplate, XNumber, XAlign, XJustify, XDirection, XSize, XVariant, XCorner, XFloatLabel, XPositionTopBottom } from '@ng-nest/ui/core';
8
+ import { XBoolean, XTemplate, XNumber, XAlign, XJustify, XDirection, XSize, XVariant, XPlacement, XFloatLabel } from '@ng-nest/ui/core';
9
9
  import { XFormOption } from '@ng-nest/ui/base-form';
10
10
  import { XSliderSelectComponent } from '@ng-nest/ui/slider-select';
11
11
  import { CdkDragMove } from '@angular/cdk/drag-drop';
@@ -80,7 +80,7 @@ declare class XColorPickerProperty extends XColorPickerProperty_base {
80
80
  * @zh_CN 展示方位
81
81
  * @en_US Display position
82
82
  */
83
- readonly placement: _angular_core.InputSignal<XCorner>;
83
+ readonly placement: _angular_core.InputSignal<XPlacement>;
84
84
  /**
85
85
  * @zh_CN 清除按钮
86
86
  * @en_US Clear button
@@ -235,7 +235,7 @@ interface XColorPickerOption extends XFormOption {
235
235
  * @zh_CN 展示方位
236
236
  * @en_US Display position
237
237
  */
238
- placement?: XCorner;
238
+ placement?: XPlacement;
239
239
  /**
240
240
  * @zh_CN 显示边框
241
241
  * @en_US Display Border
@@ -374,7 +374,7 @@ declare class XColorPickerPortalComponent implements OnInit, OnChanges, AfterVie
374
374
  transparentCom: _angular_core.Signal<XSliderSelectComponent>;
375
375
  value: _angular_core.ModelSignal<string>;
376
376
  inputCom: _angular_core.InputSignal<XInputComponent | undefined>;
377
- placement: _angular_core.InputSignal<XPositionTopBottom | undefined>;
377
+ placement: _angular_core.InputSignal<XPlacement | undefined>;
378
378
  panelTemplate: _angular_core.InputSignal<TemplateRef<any> | undefined>;
379
379
  animating: _angular_core.OutputEmitterRef<boolean>;
380
380
  nodeClick: _angular_core.OutputEmitterRef<string>;