@pairbo/ui-kit 0.3.32 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,7 @@
1
1
  import { CSSResultGroup } from 'lit';
2
2
  import { default as PairboElement } from '../../internal/pairbo-element.js';
3
3
  import { Canvas, FabricImage, Rect, Group, Textbox } from 'fabric';
4
+ type DisplayType = "default" | "fullSize";
4
5
  type Size = {
5
6
  width: number;
6
7
  height: number;
@@ -32,6 +33,7 @@ export default class PboHandwrittenCanvas extends PairboElement {
32
33
  imageWidth: number | null;
33
34
  imageLeft: number | null;
34
35
  imageTop: number | null;
36
+ displayType: DisplayType;
35
37
  baseCanvas: HTMLCanvasElement;
36
38
  canvas: Canvas;
37
39
  backgroundFabImg: FabricImage | undefined;
@@ -41,21 +43,53 @@ export default class PboHandwrittenCanvas extends PairboElement {
41
43
  handwrittenImage: FabricImage | undefined;
42
44
  clipMaskOverlay: Group | undefined;
43
45
  areaSize: Size;
44
- handleBackgroundImageUrlChange(): Promise<void>;
45
- handleHandwrittenImageUrlChange(_: string | undefined, newValue: string | undefined): Promise<void>;
46
- createClipMaskOverlay(): Group;
47
- updateProcessedImgAreaPosition(): void;
48
46
  private _dimensionsUpdateTimeout;
49
- handleHandwrittenImageDimensionsChange(oldValue: number | null, newValue: number | null): void;
50
- applyHandwrittenImageDimensions(): void;
51
- setHandwrittenImageDimensions(dimensions: {
52
- top?: number;
53
- left?: number;
54
- height?: number;
55
- width?: number;
56
- }): void;
47
+ private readonly DEFAULT_BACKGROUND_URL;
48
+ private readonly AREA_PERCENTAGES;
49
+ private readonly HANDWRITTEN_IMAGE_STYLES;
50
+ private readonly CONTROL_VISIBILITY;
51
+ handleBackgroundImageUrlChange(): Promise<void>;
52
+ handleHandwrittenImageUrlChange(): Promise<void>;
53
+ handleHandwrittenImageDimensionsChange(): void;
57
54
  firstUpdated(): void;
58
- appendBackgroundImageToCanvas(url: string, callback?: Function): Promise<void>;
59
55
  render(): import('lit-html').TemplateResult<1>;
56
+ private initializeCanvas;
57
+ private setupEventListeners;
58
+ private loadInitialContent;
59
+ private removeBackgroundImage;
60
+ private loadBackgroundImage;
61
+ private appendBackgroundImageToCanvas;
62
+ private removeHandwrittenImage;
63
+ private loadHandwrittenImage;
64
+ private configureHandwrittenImage;
65
+ private calculateImageScale;
66
+ private calculateCornerSize;
67
+ private calculateTouchCornerSize;
68
+ private createClipRect;
69
+ private updateHandwrittenImageDimensions;
70
+ private setupHandwrittenImageEvents;
71
+ private handleImageScaling;
72
+ private handleImageMoving;
73
+ private handleImageSelected;
74
+ private handleImageDeselected;
75
+ private showSelectionUI;
76
+ private hideSelectionUI;
77
+ private createClipMaskOverlay;
78
+ private createMaskRect;
79
+ updateClipMaskOverlay(): void;
80
+ resetHandwrittenImagePosition(): void;
81
+ private updateProcessedImgAreaPosition;
82
+ private getAreaPercentages;
83
+ private updateAreaRect;
84
+ private createAreaRect;
85
+ private debounceUpdateDimensions;
86
+ private applyHandwrittenImageDimensions;
87
+ private isValidForDimensionUpdate;
88
+ private setHandwrittenImageDimensions;
89
+ private hasValidDimensions;
90
+ private updateDimensionIfChanged;
91
+ private emitDimensionsChangedEvent;
92
+ private createUploadingText;
93
+ private handleImageProcessing;
60
94
  }
61
95
  export {};
@@ -8,6 +8,14 @@ type Position = {
8
8
  left: number;
9
9
  top: number;
10
10
  };
11
+ type DisplayType = "default" | "fullSize";
12
+ type FontConfig = {
13
+ family: string;
14
+ label: string;
15
+ fontSizePt: number;
16
+ lineHeight: number;
17
+ maxLines: Record<DisplayType, number>;
18
+ };
11
19
  /**
12
20
  * @summary Short summary of the component's intended use.
13
21
  * @status experimental
@@ -30,6 +38,7 @@ export default class PboTypeCanvas extends PairboElement {
30
38
  font: string;
31
39
  color: string;
32
40
  alignment: "left" | "center" | "right";
41
+ displayType: DisplayType;
33
42
  canvas: HTMLCanvasElement;
34
43
  canvasContainer: HTMLDivElement;
35
44
  scale: number;
@@ -39,12 +48,29 @@ export default class PboTypeCanvas extends PairboElement {
39
48
  imgLoading: boolean;
40
49
  backgroundImage: HTMLImageElement | undefined;
41
50
  resizeObserver: ResizeObserver | undefined;
51
+ dpi: number;
52
+ fontConfig: FontConfig;
53
+ processedMessage: string;
42
54
  handleBackgroundImageUrlChange(): Promise<void>;
43
55
  handleBackgroundImageChange(): void;
56
+ handleProcessedMessageChange(): void;
57
+ private debounceTimer;
58
+ protected inchToPixel(inch: number, dpi: number): number;
59
+ protected ptToInch(pt: number): number;
44
60
  protected firstUpdated(): void;
45
61
  protected updated(props: PropertyValues): void;
46
62
  getMaxStringLength(ctx: CanvasRenderingContext2D, text: string, width: number): number;
47
- wrapText(ctx: CanvasRenderingContext2D, message: string, areaPosition: Position, areaSize: Size, maxLineSize: number, alignment: "center" | "left" | "right"): void;
63
+ wrapText({ ctx, message, areaPosition, areaSize, maxLineSize, alignment, lineHeight, fontSizePt, verticalAlignment, }: {
64
+ ctx: CanvasRenderingContext2D;
65
+ message: string;
66
+ areaPosition: Position;
67
+ areaSize: Size;
68
+ maxLineSize: number;
69
+ alignment: "center" | "left" | "right";
70
+ fontSizePt: number;
71
+ lineHeight?: number;
72
+ verticalAlignment?: "top" | "middle" | "bottom";
73
+ }): void;
48
74
  /**
49
75
  * Updates the position and size of the text area based on the canvas dimensions.
50
76
  */
@@ -60,10 +60,14 @@ export default class PboTypeForm extends PairboElement {
60
60
  message: string;
61
61
  };
62
62
  wrappedSubmitTypeForm: SubmitTypeForm;
63
+ processedMessage: string;
64
+ maxChars: 223 | 600;
65
+ handleCardChange(): void;
63
66
  updateWrappedSubmitTypeForm(): void;
64
67
  protected firstUpdated(): void;
65
68
  get formData(): TypeFormData;
66
69
  private handleFormChange;
70
+ private handleTypeCanvasProcessed;
67
71
  hostConnected(): void;
68
72
  hostDisconnected(): void;
69
73
  submitFormHandler(e: SubmitEvent): void;
@@ -0,0 +1,8 @@
1
+ export type PboTypeCanvasProcessedEvent = CustomEvent<{
2
+ message: string;
3
+ }>;
4
+ declare global {
5
+ interface GlobalEventHandlersEventMap {
6
+ "pbo-type-canvas-processed": PboTypeCanvasProcessedEvent;
7
+ }
8
+ }