@mediaclip/library 1.1.0 → 12.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/README.md +8 -0
  2. package/dist/LayoutInterface.d.ts +4 -0
  3. package/dist/ThemeInterface.d.ts +9 -0
  4. package/dist/index.d.ts +4 -0
  5. package/dist/layouts/index.d.ts +1 -0
  6. package/dist/shared/CollageBuilder.d.ts +23 -0
  7. package/dist/shared/Modules.d.ts +1 -0
  8. package/dist/shared/Rect.d.ts +16 -0
  9. package/dist/shared/arguments/AddClipartElementArgument.d.ts +8 -0
  10. package/dist/shared/arguments/AddPhotoElementArgument.d.ts +8 -0
  11. package/dist/shared/arguments/AddStaticImageElementArgument.d.ts +7 -0
  12. package/dist/shared/arguments/AddStaticTextElementArgument.d.ts +17 -0
  13. package/dist/shared/arguments/AddTextElementArgument.d.ts +22 -0
  14. package/dist/shared/arguments/AddVisualElementArgumentBase.d.ts +10 -0
  15. package/dist/shared/arguments/index.d.ts +6 -0
  16. package/dist/shared/elements/BackgroundElement.d.ts +10 -0
  17. package/dist/shared/elements/ClipartElement.d.ts +11 -0
  18. package/dist/shared/elements/ElementBackground.d.ts +6 -0
  19. package/dist/shared/elements/ElementBorder.d.ts +6 -0
  20. package/dist/shared/elements/HAlign.d.ts +1 -0
  21. package/dist/shared/elements/PhotoElement.d.ts +12 -0
  22. package/dist/shared/elements/PhotoFitting.d.ts +1 -0
  23. package/dist/shared/elements/StaticImageElement.d.ts +10 -0
  24. package/dist/shared/elements/StaticTextElement.d.ts +21 -0
  25. package/dist/shared/elements/TextElement.d.ts +27 -0
  26. package/dist/shared/elements/TextElementMode.d.ts +1 -0
  27. package/dist/shared/elements/VAlign.d.ts +1 -0
  28. package/dist/shared/elements/VisualElement.d.ts +12 -0
  29. package/dist/shared/elements/index.d.ts +13 -0
  30. package/dist/shared/index.d.ts +3 -0
  31. package/dist/shared/resources/Anchor.d.ts +11 -0
  32. package/dist/shared/resources/ClipartResource.d.ts +5 -0
  33. package/dist/shared/resources/ImageBackgroundResource.d.ts +10 -0
  34. package/dist/shared/resources/ImageResourceBase.d.ts +5 -0
  35. package/dist/shared/resources/PhotoResource.d.ts +6 -0
  36. package/dist/shared/resources/ResourceBase.d.ts +3 -0
  37. package/dist/shared/resources/index.d.ts +2 -0
  38. package/dist/themes/AutofillData.d.ts +7 -0
  39. package/dist/themes/Format.d.ts +19 -0
  40. package/dist/themes/PhotosContainer.d.ts +6 -0
  41. package/dist/themes/ResourcesLoader.d.ts +6 -0
  42. package/dist/themes/ThemeCollageBuilder.d.ts +14 -0
  43. package/dist/themes/ThemeContext.d.ts +8 -0
  44. package/dist/themes/arguments/AddClipartElementArgument.d.ts +4 -0
  45. package/dist/themes/arguments/AddPhotoElementArgument.d.ts +5 -0
  46. package/dist/themes/arguments/AddStaticImageElementArgument.d.ts +4 -0
  47. package/dist/themes/arguments/AddStaticTextElementArgument.d.ts +3 -0
  48. package/dist/themes/arguments/AddTextElementArgument.d.ts +3 -0
  49. package/dist/themes/arguments/SetBackgroundElementArgument.d.ts +7 -0
  50. package/dist/themes/arguments/index.d.ts +6 -0
  51. package/dist/themes/clustering/BlankAlgorithmSettings.d.ts +3 -0
  52. package/dist/themes/clustering/ClusteringAlgorithmSelector.d.ts +8 -0
  53. package/dist/themes/clustering/ClusteringAlgorithmSettingsBase.d.ts +7 -0
  54. package/dist/themes/clustering/FixedGroupAlgorithmSettings.d.ts +4 -0
  55. package/dist/themes/clustering/GroupByDateAlgorithmSettings.d.ts +4 -0
  56. package/dist/themes/clustering/index.d.ts +1 -0
  57. package/dist/themes/index.d.ts +8 -0
  58. package/dist/themes/selector/CreateSelector.d.ts +5 -0
  59. package/dist/themes/selector/SelectorEntry.d.ts +13 -0
  60. package/dist/themes/selector/SelectorRule.d.ts +7 -0
  61. package/dist/themes/selector/index.d.ts +1 -0
  62. package/dist/themes/styles/StyleEntry.d.ts +43 -0
  63. package/dist/themes/styles/StylesContainer.d.ts +4 -0
  64. package/dist/themes/styles/index.d.ts +2 -0
  65. package/package.json +26 -29
  66. package/lib/Layout.d.ts +0 -24
  67. package/lib/Layout.js +0 -61
  68. package/lib/autofill-options.d.ts +0 -3
  69. package/lib/autofill-options.js +0 -3
  70. package/lib/autofill-photo.d.ts +0 -9
  71. package/lib/autofill-photo.js +0 -12
  72. package/lib/autofill-photos-enumerator.d.ts +0 -10
  73. package/lib/autofill-photos-enumerator.js +0 -22
  74. package/lib/autofill-specifications.d.ts +0 -12
  75. package/lib/autofill-specifications.js +0 -18
  76. package/lib/background-element.d.ts +0 -6
  77. package/lib/background-element.js +0 -17
  78. package/lib/border.d.ts +0 -2
  79. package/lib/border.js +0 -6
  80. package/lib/clipart-element.d.ts +0 -5
  81. package/lib/clipart-element.js +0 -15
  82. package/lib/collage.d.ts +0 -23
  83. package/lib/collage.js +0 -45
  84. package/lib/container.d.ts +0 -5
  85. package/lib/container.js +0 -10
  86. package/lib/format.d.ts +0 -50
  87. package/lib/format.js +0 -71
  88. package/lib/frame-border.d.ts +0 -4
  89. package/lib/frame-border.js +0 -11
  90. package/lib/grid-element.d.ts +0 -13
  91. package/lib/grid-element.js +0 -40
  92. package/lib/h-align.d.ts +0 -5
  93. package/lib/h-align.js +0 -9
  94. package/lib/image-element.d.ts +0 -9
  95. package/lib/image-element.js +0 -19
  96. package/lib/index.d.ts +0 -25
  97. package/lib/index.js +0 -30
  98. package/lib/layout-functions.d.ts +0 -2
  99. package/lib/layout-functions.js +0 -8
  100. package/lib/mask-border.d.ts +0 -4
  101. package/lib/mask-border.js +0 -11
  102. package/lib/modules.d.ts +0 -4
  103. package/lib/modules.js +0 -8
  104. package/lib/photo-element.d.ts +0 -19
  105. package/lib/photo-element.js +0 -43
  106. package/lib/photo-fitting.d.ts +0 -5
  107. package/lib/photo-fitting.js +0 -9
  108. package/lib/straight-border.d.ts +0 -5
  109. package/lib/straight-border.js +0 -12
  110. package/lib/text-element-mode.d.ts +0 -5
  111. package/lib/text-element-mode.js +0 -9
  112. package/lib/text-element.d.ts +0 -27
  113. package/lib/text-element.js +0 -64
  114. package/lib/text-style-effect.d.ts +0 -2
  115. package/lib/text-style-effect.js +0 -6
  116. package/lib/text-style-embossing-effect.d.ts +0 -5
  117. package/lib/text-style-embossing-effect.js +0 -12
  118. package/lib/text-style-stroke-effect.d.ts +0 -5
  119. package/lib/text-style-stroke-effect.js +0 -12
  120. package/lib/theme-functions.d.ts +0 -6
  121. package/lib/theme-functions.js +0 -57
  122. package/lib/visual-element-with-border.d.ts +0 -9
  123. package/lib/visual-element-with-border.js +0 -26
  124. package/lib/visual-element.d.ts +0 -17
  125. package/lib/visual-element.js +0 -101
package/README.md ADDED
@@ -0,0 +1,8 @@
1
+ # Mediaclip Library EcmaScript Themes Typings
2
+
3
+ Learn more about EcmaScript themes at [doc.mediaclip.ca](https://doc.mediaclip.ca/library/themes/es/).
4
+
5
+ ```bash
6
+ npm init --yes
7
+ npm i @mediaclip/library
8
+ ```
@@ -0,0 +1,4 @@
1
+ import * as lib from ".";
2
+ export interface LayoutInterface {
3
+ create?: (collage: lib.CollageBuilder) => void;
4
+ }
@@ -0,0 +1,9 @@
1
+ import * as lib from "./themes";
2
+ export interface ThemeInterface {
3
+ beforeAutofill?: (autofill: lib.AutofillData) => void;
4
+ clustering?: (algo: lib.ClusteringAlgorithmSelector) => void;
5
+ preload?: (resources: lib.ResourcesLoader) => void;
6
+ styles?: (styles: lib.StylesContainer) => void;
7
+ configure?: (selector: lib.CreateSelector) => void;
8
+ create?: (collage: lib.ThemeCollageBuilder) => void;
9
+ }
@@ -0,0 +1,4 @@
1
+ export { CollageBuilder, Rect } from "./shared/";
2
+ export * from "./themes/";
3
+ export { ThemeInterface } from "./ThemeInterface";
4
+ export { LayoutInterface } from "./LayoutInterface";
@@ -0,0 +1 @@
1
+ export { CollageBuilder } from "../shared/builder";
@@ -0,0 +1,23 @@
1
+ import { AddClipartElementArgument, AddPhotoElementArgument, AddStaticImageElementArgument, AddStaticTextElementArgument, AddTextElementArgument } from "./arguments";
2
+ import { ClipartElement, PhotoElement, StaticImageElement, StaticTextElement, TextElement, VisualElement } from "./elements";
3
+ import { Rect } from "./Rect";
4
+ export interface CollageBuilder {
5
+ readonly marginRect: Rect;
6
+ readonly fullPageRect: Rect;
7
+ readonly width: number;
8
+ readonly height: number;
9
+ readonly bleed: number;
10
+ spacing: number;
11
+ marginTop: number;
12
+ marginRight: number;
13
+ marginBottom: number;
14
+ marginLeft: number;
15
+ readonly elements: VisualElement[];
16
+ readonly staticElements: VisualElement[];
17
+ addPhoto(value?: AddPhotoElementArgument): PhotoElement;
18
+ addText(value?: AddTextElementArgument): TextElement;
19
+ addClipart(value?: AddClipartElementArgument): ClipartElement;
20
+ addStaticText(value?: AddStaticTextElementArgument): StaticTextElement;
21
+ addStaticImage(value?: AddStaticImageElementArgument): StaticImageElement;
22
+ log(value: undefined | number | string | unknown): void;
23
+ }
@@ -0,0 +1 @@
1
+ export type Modules = "Photobook" | "Gifting" | "Print";
@@ -0,0 +1,16 @@
1
+ export interface IRect {
2
+ x: number;
3
+ y: number;
4
+ width: number;
5
+ height: number;
6
+ rotation: number;
7
+ right: number;
8
+ bottom: number;
9
+ }
10
+ export interface Rect extends IRect {
11
+ split(value: {
12
+ rows?: number | number[];
13
+ columns?: number | number[];
14
+ spacing?: number;
15
+ }): Rect[];
16
+ }
@@ -0,0 +1,8 @@
1
+ import { ElementBorder } from "../elements";
2
+ import { AddVisualElementArgumentBase } from "./AddVisualElementArgumentBase";
3
+ export interface AddClipartElementArgument extends AddVisualElementArgumentBase {
4
+ tag?: string;
5
+ border?: ElementBorder;
6
+ colorize?: string;
7
+ colorizeSpotColor?: string;
8
+ }
@@ -0,0 +1,8 @@
1
+ import { ElementBorder, PhotoFitting } from "../elements";
2
+ import { AddVisualElementArgumentBase } from "./AddVisualElementArgumentBase";
3
+ export interface AddPhotoElementArgument extends AddVisualElementArgumentBase {
4
+ tag?: string;
5
+ required?: boolean;
6
+ border?: ElementBorder;
7
+ fitting?: PhotoFitting;
8
+ }
@@ -0,0 +1,7 @@
1
+ import { AddVisualElementArgumentBase } from "./AddVisualElementArgumentBase";
2
+ import { ElementBorder } from "../elements";
3
+ export interface AddStaticImageElementArgument extends AddVisualElementArgumentBase {
4
+ border?: ElementBorder;
5
+ colorize?: string;
6
+ colorizeSpotColor?: string;
7
+ }
@@ -0,0 +1,17 @@
1
+ import { ElementBackground, ElementBorder, HAlign, VAlign } from "../elements";
2
+ import { AddVisualElementArgumentBase } from "./AddVisualElementArgumentBase";
3
+ export interface AddStaticTextElementArgument extends AddVisualElementArgumentBase {
4
+ text?: string;
5
+ tag?: string;
6
+ hAlign?: HAlign;
7
+ vAlign?: VAlign;
8
+ bold?: boolean;
9
+ italic?: boolean;
10
+ underline?: boolean;
11
+ fontFamily?: string;
12
+ fontSize?: number;
13
+ color?: string;
14
+ spotColor?: string;
15
+ background?: ElementBackground;
16
+ border?: ElementBorder;
17
+ }
@@ -0,0 +1,22 @@
1
+ import { ElementBackground, ElementBorder, HAlign, TextElementMode, VAlign } from "../elements";
2
+ import { AddVisualElementArgumentBase } from "./AddVisualElementArgumentBase";
3
+ export interface AddTextElementArgument extends AddVisualElementArgumentBase {
4
+ text?: string;
5
+ tag?: string;
6
+ mode?: TextElementMode;
7
+ required?: boolean;
8
+ behavior?: string;
9
+ maxCharacters?: number;
10
+ maxHeight?: number;
11
+ hAlign?: HAlign;
12
+ vAlign?: VAlign;
13
+ bold?: boolean;
14
+ italic?: boolean;
15
+ underline?: boolean;
16
+ fontFamily?: string;
17
+ fontSize?: number;
18
+ color?: string;
19
+ spotColor?: string;
20
+ background?: ElementBackground;
21
+ border?: ElementBorder;
22
+ }
@@ -0,0 +1,10 @@
1
+ import { Rect } from "../Rect";
2
+ import { VisualElement } from "../elements/VisualElement";
3
+ export interface AddVisualElementArgumentBase {
4
+ rect?: VisualElement | Rect;
5
+ x?: number;
6
+ y?: number;
7
+ width?: number;
8
+ height?: number;
9
+ rotation?: number;
10
+ }
@@ -0,0 +1,6 @@
1
+ export * from "../CollageBuilder";
2
+ export * from "./AddClipartElementArgument";
3
+ export * from "./AddPhotoElementArgument";
4
+ export * from "./AddStaticImageElementArgument";
5
+ export * from "./AddStaticTextElementArgument";
6
+ export * from "./AddTextElementArgument";
@@ -0,0 +1,10 @@
1
+ import { ImageBackgroundResource } from "../resources/ImageBackgroundResource";
2
+ import { VisualElement } from "./VisualElement";
3
+ export interface BackgroundElement extends VisualElement {
4
+ readonly type: "BackgroundElement";
5
+ image?: ImageBackgroundResource;
6
+ color: string;
7
+ spotColor?: string;
8
+ colorizeColor?: string;
9
+ colorizeSpotColor?: string;
10
+ }
@@ -0,0 +1,11 @@
1
+ import { ClipartResource } from "../resources";
2
+ import { ElementBorder } from "./ElementBorder";
3
+ import { VisualElement } from "./VisualElement";
4
+ export interface ClipartElement extends VisualElement {
5
+ readonly type: "ClipartElement";
6
+ tag?: string;
7
+ clipart?: ClipartResource;
8
+ border?: ElementBorder;
9
+ colorize?: string;
10
+ colorizeSpotColor?: string;
11
+ }
@@ -0,0 +1,6 @@
1
+ export interface ElementBackground {
2
+ /** A hexadecimal color, e.g. #000000 for black */
3
+ color: string;
4
+ /** Between 0 (transparent) and 1 (opaque) */
5
+ opacity: number;
6
+ }
@@ -0,0 +1,6 @@
1
+ export interface ElementBorder {
2
+ /** A hexadecimal color, e.g. #000000 for black */
3
+ color: string;
4
+ /** The size of the border in 300 DPI points */
5
+ size: number;
6
+ }
@@ -0,0 +1 @@
1
+ export type HAlign = "Left" | "Middle" | "Right";
@@ -0,0 +1,12 @@
1
+ import { ElementBorder } from "./ElementBorder";
2
+ import { PhotoFitting } from "./PhotoFitting";
3
+ import { PhotoResource } from "../resources";
4
+ import { VisualElement } from "./VisualElement";
5
+ export interface PhotoElement extends VisualElement {
6
+ readonly type: "PhotoElement";
7
+ photo: PhotoResource;
8
+ tag?: string;
9
+ required?: boolean;
10
+ fitting?: PhotoFitting;
11
+ border?: ElementBorder;
12
+ }
@@ -0,0 +1 @@
1
+ export type PhotoFitting = "FillIn" | "FitIn" | "FitFrame";
@@ -0,0 +1,10 @@
1
+ import { ClipartResource } from "../resources";
2
+ import { ElementBorder } from "./ElementBorder";
3
+ import { VisualElement } from "./VisualElement";
4
+ export interface StaticImageElement extends VisualElement {
5
+ readonly type: "StaticImageElement";
6
+ clipart?: ClipartResource;
7
+ border?: ElementBorder;
8
+ colorize?: string;
9
+ colorizeSpotColor?: string;
10
+ }
@@ -0,0 +1,21 @@
1
+ import { ElementBackground } from "./ElementBackground";
2
+ import { ElementBorder } from "./ElementBorder";
3
+ import { HAlign } from "./HAlign";
4
+ import { VAlign } from "./VAlign";
5
+ import { VisualElement } from "./VisualElement";
6
+ export interface StaticTextElement extends VisualElement {
7
+ readonly type: "StaticTextElement";
8
+ text?: string;
9
+ tag?: string;
10
+ hAlign: HAlign;
11
+ vAlign: VAlign;
12
+ bold: boolean;
13
+ italic: boolean;
14
+ underline: boolean;
15
+ fontFamily: string;
16
+ fontSize: number;
17
+ color: string;
18
+ spotColor?: string;
19
+ background?: ElementBackground;
20
+ border?: ElementBorder;
21
+ }
@@ -0,0 +1,27 @@
1
+ import { ElementBackground } from "./ElementBackground";
2
+ import { ElementBorder } from "./ElementBorder";
3
+ import { HAlign } from "./HAlign";
4
+ import { TextElementMode } from "./TextElementMode";
5
+ import { VAlign } from "./VAlign";
6
+ import { VisualElement } from "./VisualElement";
7
+ export interface TextElement extends VisualElement {
8
+ readonly type: "TextElement";
9
+ text: string;
10
+ tag?: string;
11
+ mode: TextElementMode;
12
+ required: boolean;
13
+ behavior?: string;
14
+ maxCharacters: number;
15
+ maxHeight: number;
16
+ hAlign: HAlign;
17
+ vAlign: VAlign;
18
+ bold: boolean;
19
+ italic: boolean;
20
+ underline: boolean;
21
+ fontFamily: string;
22
+ fontSize: number;
23
+ color: string;
24
+ spotColor?: string;
25
+ background?: ElementBackground;
26
+ border?: ElementBorder;
27
+ }
@@ -0,0 +1 @@
1
+ export type TextElementMode = "TextElementMode" | "DynamicFontSize" | "Fixed";
@@ -0,0 +1 @@
1
+ export type VAlign = "Top" | "Middle" | "Bottom";
@@ -0,0 +1,12 @@
1
+ import { IRect, Rect } from "../Rect";
2
+ export interface VisualElement extends IRect {
3
+ readonly type: string;
4
+ x: number;
5
+ y: number;
6
+ width: number;
7
+ height: number;
8
+ readonly right: number;
9
+ readonly bottom: number;
10
+ getRect: () => Rect;
11
+ setRect: (rect: Rect) => void;
12
+ }
@@ -0,0 +1,13 @@
1
+ export * from "./BackgroundElement";
2
+ export * from "./ClipartElement";
3
+ export * from "./ElementBackground";
4
+ export * from "./ElementBorder";
5
+ export * from "./HAlign";
6
+ export * from "./PhotoElement";
7
+ export * from "./StaticImageElement";
8
+ export * from "./StaticTextElement";
9
+ export * from "./TextElement";
10
+ export * from "./TextElementMode";
11
+ export * from "./VAlign";
12
+ export * from "./VisualElement";
13
+ export * from "./PhotoFitting";
@@ -0,0 +1,3 @@
1
+ export { CollageBuilder } from "./CollageBuilder";
2
+ export { Rect } from "./Rect";
3
+ export { Modules } from "./Modules";
@@ -0,0 +1,11 @@
1
+ export declare enum Anchor {
2
+ "Center" = 0,
3
+ "TopLeft" = 1,
4
+ "Top" = 2,
5
+ "TopRight" = 3,
6
+ "Left" = 4,
7
+ "Right" = 5,
8
+ "BottomLeft" = 6,
9
+ "Bottom" = 7,
10
+ "BottomRight" = 8
11
+ }
@@ -0,0 +1,5 @@
1
+ import { ImageResourceBase } from "./ImageResourceBase";
2
+ export interface ClipartResource extends ImageResourceBase {
3
+ readonly colorize: string;
4
+ readonly colorizeSpotColor: string;
5
+ }
@@ -0,0 +1,10 @@
1
+ import { Anchor } from "./Anchor";
2
+ import { ImageResourceBase } from "./ImageResourceBase";
3
+ export interface ImageBackgroundResource extends ImageResourceBase {
4
+ readonly anchor: Anchor;
5
+ readonly transparent: boolean;
6
+ readonly color: string;
7
+ readonly colorize: string;
8
+ readonly spotColor: string;
9
+ readonly colorizeSpotColor: string;
10
+ }
@@ -0,0 +1,5 @@
1
+ import { ResourceBase } from "./ResourceBase";
2
+ export interface ImageResourceBase extends ResourceBase {
3
+ readonly width: number;
4
+ readonly height: number;
5
+ }
@@ -0,0 +1,6 @@
1
+ export interface PhotoResource {
2
+ readonly width: number;
3
+ readonly height: number;
4
+ readonly filename: string;
5
+ readonly metadata: Record<string, string>;
6
+ }
@@ -0,0 +1,3 @@
1
+ export interface ResourceBase {
2
+ readonly id: string;
3
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./ClipartResource";
2
+ export * from "./PhotoResource";
@@ -0,0 +1,7 @@
1
+ import { PhotoResource } from "../shared/resources";
2
+ export interface AutofillData {
3
+ sets: Record<string, AutofillSet>;
4
+ }
5
+ export interface AutofillSet {
6
+ photos: PhotoResource[];
7
+ }
@@ -0,0 +1,19 @@
1
+ export type Format = PhotobookFormat | GiftingFormat | PrintFormat;
2
+ export interface FormatBase {
3
+ getCollageIds: () => string[];
4
+ getCollageDimensions: (collageId: string) => CollageDimensions;
5
+ }
6
+ export interface CollageDimensions {
7
+ readonly width: number;
8
+ readonly height: number;
9
+ readonly bleed: number;
10
+ }
11
+ export interface PhotobookFormat extends FormatBase {
12
+ readonly type: "photobook";
13
+ }
14
+ export interface GiftingFormat extends FormatBase {
15
+ readonly type: "gifting";
16
+ }
17
+ export interface PrintFormat extends FormatBase {
18
+ readonly type: "print";
19
+ }
@@ -0,0 +1,6 @@
1
+ import { PhotoResource } from "../shared/resources";
2
+ export interface PhotosContainer {
3
+ remaining: number;
4
+ take(): PhotoResource | undefined;
5
+ take(count: number): PhotoResource[];
6
+ }
@@ -0,0 +1,6 @@
1
+ export interface ResourcesLoader {
2
+ load(value: string | string[] | {
3
+ name: string;
4
+ resources: string[];
5
+ }): void;
6
+ }
@@ -0,0 +1,14 @@
1
+ import { AddClipartElementArgument, AddPhotoElementArgument, AddStaticImageElementArgument, AddTextElementArgument, SetBackgroundElementArgument } from "./arguments";
2
+ import { BackgroundElement, ClipartElement, PhotoElement, StaticImageElement, TextElement } from "../shared/elements";
3
+ import { CollageBuilder } from "../shared";
4
+ import { PhotosContainer } from "./PhotosContainer";
5
+ export interface ThemeCollageBuilder extends CollageBuilder {
6
+ customizable: boolean;
7
+ readonly photos: PhotosContainer;
8
+ readonly background: BackgroundElement;
9
+ setBackground(value?: string | SetBackgroundElementArgument): BackgroundElement;
10
+ addPhoto(value?: AddPhotoElementArgument): PhotoElement;
11
+ addText(value?: AddTextElementArgument): TextElement;
12
+ addClipart(value?: AddClipartElementArgument): ClipartElement;
13
+ addStaticImage(value?: AddStaticImageElementArgument): StaticImageElement;
14
+ }
@@ -0,0 +1,8 @@
1
+ import { Format } from "./Format";
2
+ import { Modules } from "../shared";
3
+ export interface ThemeContext {
4
+ readonly module: Modules;
5
+ readonly culture: string;
6
+ readonly format: Format;
7
+ getOption(key: string): string;
8
+ }
@@ -0,0 +1,4 @@
1
+ import { AddClipartElementArgument as AddClipartElementArgumentBase } from "../../shared/arguments";
2
+ export interface AddClipartElementArgument extends AddClipartElementArgumentBase {
3
+ id?: string;
4
+ }
@@ -0,0 +1,5 @@
1
+ import { AddPhotoElementArgument as AddPhotoElementArgumentBase } from "../../shared/arguments";
2
+ import { PhotoResource } from "../../shared/resources";
3
+ export interface AddPhotoElementArgument extends AddPhotoElementArgumentBase {
4
+ photo?: PhotoResource;
5
+ }
@@ -0,0 +1,4 @@
1
+ import { AddStaticImageElementArgument as AddStaticImageElementArgumentBase } from "../../shared/arguments";
2
+ export interface AddStaticImageElementArgument extends AddStaticImageElementArgumentBase {
3
+ id?: string;
4
+ }
@@ -0,0 +1,3 @@
1
+ import { AddStaticTextElementArgument as AddStaticTextElementArgumentBase } from "../../shared/arguments";
2
+ export interface AddStaticTextElementArgument extends AddStaticTextElementArgumentBase {
3
+ }
@@ -0,0 +1,3 @@
1
+ import { AddTextElementArgument as AddTextElementArgumentBase } from "../../shared/arguments";
2
+ export interface AddTextElementArgument extends AddTextElementArgumentBase {
3
+ }
@@ -0,0 +1,7 @@
1
+ export interface SetBackgroundElementArgument {
2
+ id?: string;
3
+ color?: string;
4
+ spotColor?: string;
5
+ colorize?: string;
6
+ colorizeSpotColor?: string;
7
+ }
@@ -0,0 +1,6 @@
1
+ export * from "./AddClipartElementArgument";
2
+ export * from "./AddPhotoElementArgument";
3
+ export * from "./AddStaticImageElementArgument";
4
+ export * from "./AddStaticTextElementArgument";
5
+ export * from "./AddTextElementArgument";
6
+ export * from "./SetBackgroundElementArgument";
@@ -0,0 +1,3 @@
1
+ import { ClusteringAlgorithmSettingsBase } from "./ClusteringAlgorithmSettingsBase";
2
+ export interface BlankAlgorithmSettings extends ClusteringAlgorithmSettingsBase {
3
+ }
@@ -0,0 +1,8 @@
1
+ import { BlankAlgorithmSettings } from "./BlankAlgorithmSettings";
2
+ import { FixedGroupAlgorithmSettings } from "./FixedGroupAlgorithmSettings";
3
+ import { GroupByDateAlgorithmSettings } from "./GroupByDateAlgorithmSettings";
4
+ export interface ClusteringAlgorithmSelector {
5
+ blank: (settings: BlankAlgorithmSettings) => void;
6
+ fixedGroup: (settings: FixedGroupAlgorithmSettings) => void;
7
+ groupByDate: (settings: GroupByDateAlgorithmSettings) => void;
8
+ }
@@ -0,0 +1,7 @@
1
+ import { AutofillSet } from "../AutofillData";
2
+ import { PhotoResource } from "../../shared/resources";
3
+ export interface ClusteringAlgorithmSettingsBase {
4
+ source?: string;
5
+ ids?: string[];
6
+ filter?: (set: AutofillSet) => PhotoResource[];
7
+ }
@@ -0,0 +1,4 @@
1
+ import { ClusteringAlgorithmSettingsBase } from "./ClusteringAlgorithmSettingsBase";
2
+ export interface FixedGroupAlgorithmSettings extends ClusteringAlgorithmSettingsBase {
3
+ photosPerGroup: number;
4
+ }
@@ -0,0 +1,4 @@
1
+ import { ClusteringAlgorithmSettingsBase } from "./ClusteringAlgorithmSettingsBase";
2
+ export interface GroupByDateAlgorithmSettings extends ClusteringAlgorithmSettingsBase {
3
+ maxPhotosPerGroup?: number;
4
+ }
@@ -0,0 +1 @@
1
+ export * from "./ClusteringAlgorithmSelector";
@@ -0,0 +1,8 @@
1
+ export { ClusteringAlgorithmSelector } from "./clustering/";
2
+ export { PhotosContainer } from "./PhotosContainer";
3
+ export { ResourcesLoader } from "./ResourcesLoader";
4
+ export { CreateSelector } from "./selector/";
5
+ export { StylesContainer } from "./styles/";
6
+ export { ThemeCollageBuilder } from "./ThemeCollageBuilder";
7
+ export { AutofillData, AutofillSet } from "./AutofillData";
8
+ export { ThemeContext } from "./ThemeContext";
@@ -0,0 +1,5 @@
1
+ import { SelectorEntry } from "./SelectorEntry";
2
+ import { SelectorRule } from "./SelectorRule";
3
+ export interface CreateSelector {
4
+ when: (rule: SelectorRule) => SelectorEntry;
5
+ }
@@ -0,0 +1,13 @@
1
+ import { StyleEntry } from "../styles";
2
+ import { ThemeCollageBuilder } from "../ThemeCollageBuilder";
3
+ export interface SelectorEntry {
4
+ name: (name?: string) => SelectorEntry;
5
+ style: (style: string | StyleEntry) => SelectorEntry;
6
+ load: (value: string | string[] | {
7
+ name: string;
8
+ resources: string[];
9
+ }) => SelectorEntry;
10
+ autoLayout: (ids: string | string[]) => SelectorEntry;
11
+ empty: () => void;
12
+ create: (fn: (collage: ThemeCollageBuilder) => void) => void;
13
+ }
@@ -0,0 +1,7 @@
1
+ export interface SelectorRule {
2
+ id: string | string[];
3
+ photos?: number | {
4
+ min: number;
5
+ max: number;
6
+ };
7
+ }
@@ -0,0 +1 @@
1
+ export * from "./CreateSelector";
@@ -0,0 +1,43 @@
1
+ import { ElementBackground, ElementBorder, HAlign, VAlign } from "../../shared/elements";
2
+ import { SetBackgroundElementArgument } from "../arguments";
3
+ export interface StyleEntry {
4
+ extends?: string;
5
+ id?: string;
6
+ background?: string | SetBackgroundElementArgument;
7
+ texts?: TextStyleArgument | TextStyleArgument[];
8
+ clipart?: ClipartStyleArgument | ClipartStyleArgument[];
9
+ photos?: PhotoStyleArgument | PhotoStyleArgument[];
10
+ margin?: number | {
11
+ top: number;
12
+ right: number;
13
+ bottom: number;
14
+ left: number;
15
+ };
16
+ spacing?: number;
17
+ }
18
+ interface TextStyleArgument {
19
+ tag?: string;
20
+ hAlign?: HAlign;
21
+ vAlign?: VAlign;
22
+ bold?: boolean;
23
+ italic?: boolean;
24
+ underline?: boolean;
25
+ fontFamily: string;
26
+ fontSize?: number;
27
+ color?: string;
28
+ spotColor?: string;
29
+ background?: ElementBackground;
30
+ border?: ElementBorder;
31
+ computeTextHeight?: boolean;
32
+ }
33
+ interface ClipartStyleArgument {
34
+ tag: string;
35
+ id: string;
36
+ colorize?: string;
37
+ colorizeSpotColor?: string;
38
+ }
39
+ interface PhotoStyleArgument {
40
+ tag: string;
41
+ border?: ElementBorder;
42
+ }
43
+ export {};