@imposium-hub/components 1.56.0 → 1.57.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.
Files changed (162) hide show
  1. package/dist/cjs/components/font-picker/FontPicker.d.ts +44 -0
  2. package/dist/cjs/components/font-picker/FontPicker.js +182 -0
  3. package/dist/cjs/components/font-picker/FontPicker.js.map +1 -0
  4. package/dist/cjs/components/font-picker/font-manager/FontManager.d.ts +26 -0
  5. package/dist/cjs/components/font-picker/font-manager/FontManager.js +209 -0
  6. package/dist/cjs/components/font-picker/font-manager/FontManager.js.map +1 -0
  7. package/dist/cjs/components/font-picker/font-manager/constants.d.ts +4 -0
  8. package/dist/cjs/components/font-picker/font-manager/constants.js +8 -0
  9. package/dist/cjs/components/font-picker/font-manager/constants.js.map +1 -0
  10. package/dist/cjs/components/font-picker/font-manager/font-styles/declarations.d.ts +4 -0
  11. package/dist/cjs/components/font-picker/font-manager/font-styles/declarations.js +27 -0
  12. package/dist/cjs/components/font-picker/font-manager/font-styles/declarations.js.map +1 -0
  13. package/dist/cjs/components/font-picker/font-manager/fontStyle.d.ts +1 -0
  14. package/dist/cjs/components/font-picker/font-manager/fontStyle.js +61 -0
  15. package/dist/cjs/components/font-picker/font-manager/fontStyle.js.map +1 -0
  16. package/dist/cjs/components/font-picker/font-manager/google-fonts/fontList.d.ts +5 -0
  17. package/dist/cjs/components/font-picker/font-manager/google-fonts/fontList.js +87 -0
  18. package/dist/cjs/components/font-picker/font-manager/google-fonts/fontList.js.map +1 -0
  19. package/dist/cjs/components/font-picker/font-manager/index.d.ts +3 -0
  20. package/dist/cjs/components/font-picker/font-manager/index.js +26 -0
  21. package/dist/cjs/components/font-picker/font-manager/index.js.map +1 -0
  22. package/dist/cjs/components/font-picker/font-manager/interface.d.ts +0 -0
  23. package/dist/cjs/components/font-picker/font-manager/interface.js +1 -0
  24. package/dist/cjs/components/font-picker/font-manager/interface.js.map +1 -0
  25. package/dist/cjs/components/font-picker/font-manager/loadFonts.d.ts +5 -0
  26. package/dist/cjs/components/font-picker/font-manager/loadFonts.js +20 -0
  27. package/dist/cjs/components/font-picker/font-manager/loadFonts.js.map +1 -0
  28. package/dist/cjs/components/font-picker/font-manager/types.d.ts +25 -0
  29. package/dist/cjs/components/font-picker/font-manager/types.js +12 -0
  30. package/dist/cjs/components/font-picker/font-manager/types.js.map +1 -0
  31. package/dist/cjs/components/font-picker/font-manager/utils/ids.d.ts +4 -0
  32. package/dist/cjs/components/font-picker/font-manager/utils/ids.js +11 -0
  33. package/dist/cjs/components/font-picker/font-manager/utils/ids.js.map +1 -0
  34. package/dist/cjs/components/font-picker/font-manager/utils/request.d.ts +4 -0
  35. package/dist/cjs/components/font-picker/font-manager/utils/request.js +29 -0
  36. package/dist/cjs/components/font-picker/font-manager/utils/request.js.map +1 -0
  37. package/dist/cjs/components/font-picker/font-manager/utils/utils.d.ts +2 -0
  38. package/dist/cjs/components/font-picker/font-manager/utils/utils.js +30 -0
  39. package/dist/cjs/components/font-picker/font-manager/utils/utils.js.map +1 -0
  40. package/dist/cjs/components/font-picker/font-manager/utils.d.ts +3 -0
  41. package/dist/cjs/components/font-picker/font-manager/utils.js +42 -0
  42. package/dist/cjs/components/font-picker/font-manager/utils.js.map +1 -0
  43. package/dist/cjs/index.d.ts +2 -1
  44. package/dist/cjs/index.js +3 -1
  45. package/dist/cjs/index.js.map +1 -1
  46. package/dist/esm/components/font-picker/FontPicker.d.ts +44 -0
  47. package/dist/esm/components/font-picker/FontPicker.js +134 -0
  48. package/dist/esm/components/font-picker/FontPicker.js.map +1 -0
  49. package/dist/esm/components/font-picker/font-manager/FontManager.d.ts +26 -0
  50. package/dist/esm/components/font-picker/font-manager/FontManager.js +105 -0
  51. package/dist/esm/components/font-picker/font-manager/FontManager.js.map +1 -0
  52. package/dist/esm/components/font-picker/font-manager/constants.d.ts +4 -0
  53. package/dist/esm/components/font-picker/font-manager/constants.js +5 -0
  54. package/dist/esm/components/font-picker/font-manager/constants.js.map +1 -0
  55. package/dist/esm/components/font-picker/font-manager/font-styles/declarations.d.ts +4 -0
  56. package/dist/esm/components/font-picker/font-manager/font-styles/declarations.js +27 -0
  57. package/dist/esm/components/font-picker/font-manager/font-styles/declarations.js.map +1 -0
  58. package/dist/esm/components/font-picker/font-manager/fontStyle.d.ts +1 -0
  59. package/dist/esm/components/font-picker/font-manager/fontStyle.js +65 -0
  60. package/dist/esm/components/font-picker/font-manager/fontStyle.js.map +1 -0
  61. package/dist/esm/components/font-picker/font-manager/google-fonts/fontList.d.ts +5 -0
  62. package/dist/esm/components/font-picker/font-manager/google-fonts/fontList.js +22 -0
  63. package/dist/esm/components/font-picker/font-manager/google-fonts/fontList.js.map +1 -0
  64. package/dist/esm/components/font-picker/font-manager/index.d.ts +3 -0
  65. package/dist/esm/components/font-picker/font-manager/index.js +4 -0
  66. package/dist/esm/components/font-picker/font-manager/index.js.map +1 -0
  67. package/dist/esm/components/font-picker/font-manager/interface.d.ts +0 -0
  68. package/dist/esm/components/font-picker/font-manager/interface.js +1 -0
  69. package/dist/esm/components/font-picker/font-manager/interface.js.map +1 -0
  70. package/dist/esm/components/font-picker/font-manager/loadFonts.d.ts +5 -0
  71. package/dist/esm/components/font-picker/font-manager/loadFonts.js +16 -0
  72. package/dist/esm/components/font-picker/font-manager/loadFonts.js.map +1 -0
  73. package/dist/esm/components/font-picker/font-manager/types.d.ts +25 -0
  74. package/dist/esm/components/font-picker/font-manager/types.js +9 -0
  75. package/dist/esm/components/font-picker/font-manager/types.js.map +1 -0
  76. package/dist/esm/components/font-picker/font-manager/utils/ids.d.ts +4 -0
  77. package/dist/esm/components/font-picker/font-manager/utils/ids.js +7 -0
  78. package/dist/esm/components/font-picker/font-manager/utils/ids.js.map +1 -0
  79. package/dist/esm/components/font-picker/font-manager/utils/request.d.ts +4 -0
  80. package/dist/esm/components/font-picker/font-manager/utils/request.js +25 -0
  81. package/dist/esm/components/font-picker/font-manager/utils/request.js.map +1 -0
  82. package/dist/esm/components/font-picker/font-manager/utils/utils.d.ts +2 -0
  83. package/dist/esm/components/font-picker/font-manager/utils/utils.js +25 -0
  84. package/dist/esm/components/font-picker/font-manager/utils/utils.js.map +1 -0
  85. package/dist/esm/components/font-picker/font-manager/utils.d.ts +3 -0
  86. package/dist/esm/components/font-picker/font-manager/utils.js +36 -0
  87. package/dist/esm/components/font-picker/font-manager/utils.js.map +1 -0
  88. package/dist/esm/index.d.ts +2 -1
  89. package/dist/esm/index.js +2 -1
  90. package/dist/esm/index.js.map +1 -1
  91. package/dist/styles.css +107 -0
  92. package/dist/styles.less +132 -0
  93. package/less/components/font-picker.less +131 -0
  94. package/less/entry.less +2 -1
  95. package/package.json +1 -1
  96. package/src/components/font-picker/FontPicker.tsx +222 -0
  97. package/src/components/font-picker/font-manager/FontManager.ts +138 -0
  98. package/src/components/font-picker/font-manager/constants.ts +7 -0
  99. package/src/components/font-picker/font-manager/fontStyle.ts +78 -0
  100. package/src/components/font-picker/font-manager/types.ts +83 -0
  101. package/src/components/font-picker/font-manager/utils.ts +36 -0
  102. package/src/index.ts +3 -1
  103. package/dist/cjs/components/publish-wizard/EmailWorkflow.d.ts +0 -2
  104. package/dist/cjs/components/publish-wizard/EmailWorkflow.js +0 -491
  105. package/dist/cjs/components/publish-wizard/EmailWorkflow.js.map +0 -1
  106. package/dist/cjs/components/publish-wizard/copy.d.ts +0 -186
  107. package/dist/cjs/components/publish-wizard/copy.js +0 -199
  108. package/dist/cjs/components/publish-wizard/copy.js.map +0 -1
  109. package/dist/cjs/components/story-previewer/StoryPreviewer_BACKUP_64741.d.ts +0 -2
  110. package/dist/cjs/components/story-previewer/StoryPreviewer_BACKUP_64741.js +0 -670
  111. package/dist/cjs/components/story-previewer/StoryPreviewer_BACKUP_64741.js.map +0 -1
  112. package/dist/cjs/components/story-previewer/StoryPreviewer_BASE_64741.d.ts +0 -2
  113. package/dist/cjs/components/story-previewer/StoryPreviewer_BASE_64741.js +0 -553
  114. package/dist/cjs/components/story-previewer/StoryPreviewer_BASE_64741.js.map +0 -1
  115. package/dist/cjs/components/story-previewer/StoryPreviewer_LOCAL_64741.d.ts +0 -2
  116. package/dist/cjs/components/story-previewer/StoryPreviewer_LOCAL_64741.js +0 -650
  117. package/dist/cjs/components/story-previewer/StoryPreviewer_LOCAL_64741.js.map +0 -1
  118. package/dist/cjs/components/story-previewer/StoryPreviewer_REMOTE_64741.d.ts +0 -2
  119. package/dist/cjs/components/story-previewer/StoryPreviewer_REMOTE_64741.js +0 -639
  120. package/dist/cjs/components/story-previewer/StoryPreviewer_REMOTE_64741.js.map +0 -1
  121. package/dist/cjs/constants/assets_BACKUP_14924.d.ts +0 -20
  122. package/dist/cjs/constants/assets_BACKUP_14924.js +0 -30
  123. package/dist/cjs/constants/assets_BACKUP_14924.js.map +0 -1
  124. package/dist/cjs/constants/assets_BASE_14924.d.ts +0 -21
  125. package/dist/cjs/constants/assets_BASE_14924.js +0 -32
  126. package/dist/cjs/constants/assets_BASE_14924.js.map +0 -1
  127. package/dist/cjs/constants/assets_LOCAL_14924.d.ts +0 -20
  128. package/dist/cjs/constants/assets_LOCAL_14924.js +0 -30
  129. package/dist/cjs/constants/assets_LOCAL_14924.js.map +0 -1
  130. package/dist/cjs/constants/assets_REMOTE_14924.d.ts +0 -21
  131. package/dist/cjs/constants/assets_REMOTE_14924.js +0 -32
  132. package/dist/cjs/constants/assets_REMOTE_14924.js.map +0 -1
  133. package/dist/esm/components/publish-wizard/EmailWorkflow.d.ts +0 -2
  134. package/dist/esm/components/publish-wizard/EmailWorkflow.js +0 -398
  135. package/dist/esm/components/publish-wizard/EmailWorkflow.js.map +0 -1
  136. package/dist/esm/components/publish-wizard/copy.d.ts +0 -186
  137. package/dist/esm/components/publish-wizard/copy.js +0 -196
  138. package/dist/esm/components/publish-wizard/copy.js.map +0 -1
  139. package/dist/esm/components/story-previewer/StoryPreviewer_BACKUP_64741.d.ts +0 -2
  140. package/dist/esm/components/story-previewer/StoryPreviewer_BACKUP_64741.js +0 -554
  141. package/dist/esm/components/story-previewer/StoryPreviewer_BACKUP_64741.js.map +0 -1
  142. package/dist/esm/components/story-previewer/StoryPreviewer_BASE_64741.d.ts +0 -2
  143. package/dist/esm/components/story-previewer/StoryPreviewer_BASE_64741.js +0 -489
  144. package/dist/esm/components/story-previewer/StoryPreviewer_BASE_64741.js.map +0 -1
  145. package/dist/esm/components/story-previewer/StoryPreviewer_LOCAL_64741.d.ts +0 -2
  146. package/dist/esm/components/story-previewer/StoryPreviewer_LOCAL_64741.js +0 -537
  147. package/dist/esm/components/story-previewer/StoryPreviewer_LOCAL_64741.js.map +0 -1
  148. package/dist/esm/components/story-previewer/StoryPreviewer_REMOTE_64741.d.ts +0 -2
  149. package/dist/esm/components/story-previewer/StoryPreviewer_REMOTE_64741.js +0 -526
  150. package/dist/esm/components/story-previewer/StoryPreviewer_REMOTE_64741.js.map +0 -1
  151. package/dist/esm/constants/assets_BACKUP_14924.d.ts +0 -20
  152. package/dist/esm/constants/assets_BACKUP_14924.js +0 -26
  153. package/dist/esm/constants/assets_BACKUP_14924.js.map +0 -1
  154. package/dist/esm/constants/assets_BASE_14924.d.ts +0 -21
  155. package/dist/esm/constants/assets_BASE_14924.js +0 -28
  156. package/dist/esm/constants/assets_BASE_14924.js.map +0 -1
  157. package/dist/esm/constants/assets_LOCAL_14924.d.ts +0 -20
  158. package/dist/esm/constants/assets_LOCAL_14924.js +0 -26
  159. package/dist/esm/constants/assets_LOCAL_14924.js.map +0 -1
  160. package/dist/esm/constants/assets_REMOTE_14924.d.ts +0 -21
  161. package/dist/esm/constants/assets_REMOTE_14924.js +0 -28
  162. package/dist/esm/constants/assets_REMOTE_14924.js.map +0 -1
@@ -0,0 +1,44 @@
1
+ import * as React from 'react';
2
+ import FontManager from './font-manager/FontManager';
3
+ import { Category, Font, Script, Variant } from './font-manager/types';
4
+ interface IFontPickerProps {
5
+ apiKey: string;
6
+ activeFontFamily: string;
7
+ onChange: (font: string) => void;
8
+ families: string[];
9
+ categories: Category[];
10
+ scripts: Script[];
11
+ variants: Variant[];
12
+ filter: (font: Font) => boolean;
13
+ limit: number;
14
+ defaultFonts: any;
15
+ customFonts?: any;
16
+ }
17
+ interface IFontPickerState {
18
+ expanded: boolean;
19
+ fonts: any;
20
+ }
21
+ export default class FontPicker extends React.PureComponent<IFontPickerProps, IFontPickerState> {
22
+ fontManager: FontManager;
23
+ static defaultProps: {
24
+ activeFontFamily: string;
25
+ families: string[];
26
+ categories: Category[];
27
+ scripts: Script[];
28
+ variants: Variant[];
29
+ filter: (font: Font) => boolean;
30
+ limit: number;
31
+ };
32
+ private clickOutsideHandler;
33
+ constructor(props: any);
34
+ componentDidMount(): void;
35
+ componentWillUnmount(): void;
36
+ componentDidUpdate: (prevProps: any) => void;
37
+ private onClose;
38
+ private onSelection;
39
+ private setActiveFontFamily;
40
+ private generateFontList;
41
+ private toggleExpanded;
42
+ render: () => JSX.Element;
43
+ }
44
+ export {};
@@ -0,0 +1,182 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ var desc = Object.getOwnPropertyDescriptor(m, k);
20
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
21
+ desc = { enumerable: true, get: function() { return m[k]; } };
22
+ }
23
+ Object.defineProperty(o, k2, desc);
24
+ }) : (function(o, m, k, k2) {
25
+ if (k2 === undefined) k2 = k;
26
+ o[k2] = m[k];
27
+ }));
28
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
29
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
30
+ }) : function(o, v) {
31
+ o["default"] = v;
32
+ });
33
+ var __importStar = (this && this.__importStar) || function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ var __importDefault = (this && this.__importDefault) || function (mod) {
41
+ return (mod && mod.__esModule) ? mod : { "default": mod };
42
+ };
43
+ Object.defineProperty(exports, "__esModule", { value: true });
44
+ var React = __importStar(require("react"));
45
+ var FontManager_1 = __importDefault(require("./font-manager/FontManager"));
46
+ var types_1 = require("./font-manager/types");
47
+ var constants_1 = require("./font-manager/constants");
48
+ var fontStyle_1 = require("./font-manager/fontStyle");
49
+ var FontPicker = /** @class */ (function (_super) {
50
+ __extends(FontPicker, _super);
51
+ function FontPicker(props) {
52
+ var _this = _super.call(this, props) || this;
53
+ _this.componentDidUpdate = function (prevProps) {
54
+ var _a = _this.props, activeFontFamily = _a.activeFontFamily, onChange = _a.onChange, customFonts = _a.customFonts, defaultFonts = _a.defaultFonts;
55
+ if (prevProps.customFonts !== customFonts) {
56
+ _this.fontManager
57
+ .init()
58
+ .then(function (fontMap) {
59
+ var googleFonts = Array.from(fontMap.values()).filter(function (f) { return f.files; });
60
+ var updateDefaultFonts = defaultFonts.map(function (f) { return googleFonts.find(function (o) { return o.family === f.family; }) || f; });
61
+ var uniqueFontFamilies = new Set();
62
+ var uniqueFonts = updateDefaultFonts.filter(function (e) {
63
+ var isDup = uniqueFontFamilies.has(e.family);
64
+ uniqueFontFamilies.add(e.family);
65
+ if (!isDup) {
66
+ return true;
67
+ }
68
+ return false;
69
+ });
70
+ _this.setState({ fonts: uniqueFonts }, function () {
71
+ return (0, fontStyle_1.createFontStyleSheets)(defaultFonts, uniqueFonts, customFonts);
72
+ });
73
+ })
74
+ .catch(function (err) {
75
+ console.error('Error trying to fetch the list of available fonts');
76
+ console.error(err);
77
+ });
78
+ }
79
+ if (activeFontFamily !== prevProps.activeFontFamily) {
80
+ _this.setActiveFontFamily(activeFontFamily);
81
+ }
82
+ if (onChange !== prevProps.onChange) {
83
+ _this.fontManager.setOnChange(onChange);
84
+ }
85
+ };
86
+ _this.onClose = function (e) {
87
+ var targetEl = e.target;
88
+ var fontPickerEl = document.getElementById("font-picker");
89
+ while (true) {
90
+ if (targetEl === fontPickerEl) {
91
+ return;
92
+ }
93
+ if (targetEl.parentNode) {
94
+ targetEl = targetEl.parentNode;
95
+ }
96
+ else {
97
+ _this.toggleExpanded();
98
+ return;
99
+ }
100
+ }
101
+ };
102
+ _this.onSelection = function (e) {
103
+ var activeFontFamily = e.target.textContent;
104
+ if (!activeFontFamily) {
105
+ throw Error("Missing font family in clicked font button");
106
+ }
107
+ _this.setActiveFontFamily(activeFontFamily);
108
+ _this.toggleExpanded();
109
+ };
110
+ _this.setActiveFontFamily = function (activeFontFamily) {
111
+ _this.fontManager.setActiveFont(activeFontFamily);
112
+ };
113
+ _this.generateFontList = function () {
114
+ var _a = _this.props, activeFontFamily = _a.activeFontFamily, families = _a.families;
115
+ return (React.createElement("ul", { className: 'font-list' }, families.map(function (font) {
116
+ var isActive = font === activeFontFamily;
117
+ return (React.createElement("li", { key: font, className: 'font-list-item' },
118
+ React.createElement("button", { type: 'button', id: "font-button-".concat(font), className: "font-button ".concat(isActive ? 'active-font' : ''), onClick: _this.onSelection, onKeyDown: _this.onSelection, style: { fontFamily: font } }, font)));
119
+ })));
120
+ };
121
+ _this.toggleExpanded = function () {
122
+ var expanded = _this.state.expanded;
123
+ if (expanded) {
124
+ _this.setState({
125
+ expanded: false
126
+ });
127
+ document.removeEventListener('click', _this.clickOutsideHandler);
128
+ }
129
+ else {
130
+ _this.setState({
131
+ expanded: true
132
+ });
133
+ document.addEventListener('click', _this.clickOutsideHandler);
134
+ }
135
+ };
136
+ _this.render = function () {
137
+ var activeFontFamily = _this.props.activeFontFamily;
138
+ var expanded = _this.state.expanded;
139
+ return (React.createElement("div", { id: "font-picker", className: expanded ? 'expanded' : '' },
140
+ React.createElement("button", { type: 'button', className: 'dropdown-button', onClick: _this.toggleExpanded, onKeyDown: _this.toggleExpanded },
141
+ React.createElement("p", { className: 'dropdown-font-family' }, activeFontFamily),
142
+ React.createElement("p", { className: 'dropdown-icon finished' })),
143
+ _this.generateFontList()));
144
+ };
145
+ var _a = _this.props, apiKey = _a.apiKey, activeFontFamily = _a.activeFontFamily, families = _a.families, categories = _a.categories, scripts = _a.scripts, variants = _a.variants, filter = _a.filter, limit = _a.limit, onChange = _a.onChange;
146
+ _this.state = {
147
+ expanded: false,
148
+ fonts: null
149
+ };
150
+ var options = {
151
+ families: families,
152
+ categories: categories,
153
+ scripts: scripts,
154
+ variants: variants,
155
+ filter: filter,
156
+ limit: limit
157
+ };
158
+ _this.fontManager = new FontManager_1.default(apiKey, activeFontFamily, options, onChange);
159
+ return _this;
160
+ }
161
+ FontPicker.prototype.componentDidMount = function () {
162
+ var _this = this;
163
+ this.clickOutsideHandler = function (e) { return _this.onClose(e); };
164
+ };
165
+ FontPicker.prototype.componentWillUnmount = function () {
166
+ this.clickOutsideHandler = function (e) {
167
+ return;
168
+ };
169
+ };
170
+ FontPicker.defaultProps = {
171
+ activeFontFamily: constants_1.FONT_FAMILY_DEFAULT,
172
+ families: types_1.OPTIONS_DEFAULTS.families,
173
+ categories: types_1.OPTIONS_DEFAULTS.categories,
174
+ scripts: types_1.OPTIONS_DEFAULTS.scripts,
175
+ variants: types_1.OPTIONS_DEFAULTS.variants,
176
+ filter: types_1.OPTIONS_DEFAULTS.filter,
177
+ limit: types_1.OPTIONS_DEFAULTS.limit
178
+ };
179
+ return FontPicker;
180
+ }(React.PureComponent));
181
+ exports.default = FontPicker;
182
+ //# sourceMappingURL=FontPicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FontPicker.js","sourceRoot":"","sources":["../../../../src/components/font-picker/FontPicker.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { FontList, Options } from './types';
2
+ export default class FontManager {
3
+ private readonly apiKey;
4
+ private readonly options;
5
+ private onChange;
6
+ private fonts;
7
+ constructor(apiKey: string, defaultFamily: string, { families, categories, scripts, variants, filter, limit }: Options, onChange: (font: string) => void);
8
+ /**
9
+ * Fetch list of all fonts from Google Fonts API, filter it according to the class parameters and
10
+ * save them to the font map
11
+ */
12
+ init(): Promise<FontList>;
13
+ private getFontList;
14
+ /**
15
+ * Add a new font to the font map and download its preview characters
16
+ */
17
+ private addFont;
18
+ /**
19
+ * Set the specified font as the active font and download it
20
+ */
21
+ setActiveFont(fontFamily: string): void;
22
+ /**
23
+ * Update the onChange function (executed when changing the active font)
24
+ */
25
+ setOnChange(onChange: (font: string) => void): void;
26
+ }
@@ -0,0 +1,209 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (_) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __rest = (this && this.__rest) || function (s, e) {
50
+ var t = {};
51
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
52
+ t[p] = s[p];
53
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
54
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
55
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
56
+ t[p[i]] = s[p[i]];
57
+ }
58
+ return t;
59
+ };
60
+ var __values = (this && this.__values) || function(o) {
61
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
62
+ if (m) return m.call(o);
63
+ if (o && typeof o.length === "number") return {
64
+ next: function () {
65
+ if (o && i >= o.length) o = void 0;
66
+ return { value: o && o[i++], done: !o };
67
+ }
68
+ };
69
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
70
+ };
71
+ Object.defineProperty(exports, "__esModule", { value: true });
72
+ var types_1 = require("./types");
73
+ var constants_1 = require("./constants");
74
+ var utils_1 = require("./utils");
75
+ var FontManager = /** @class */ (function () {
76
+ function FontManager(apiKey, defaultFamily, _a, onChange) {
77
+ if (defaultFamily === void 0) { defaultFamily = constants_1.FONT_FAMILY_DEFAULT; }
78
+ var _b = _a.families, families = _b === void 0 ? types_1.OPTIONS_DEFAULTS.families : _b, _c = _a.categories, categories = _c === void 0 ? types_1.OPTIONS_DEFAULTS.categories : _c, _d = _a.scripts, scripts = _d === void 0 ? types_1.OPTIONS_DEFAULTS.scripts : _d, _e = _a.variants, variants = _e === void 0 ? types_1.OPTIONS_DEFAULTS.variants : _e, _f = _a.filter, filter = _f === void 0 ? types_1.OPTIONS_DEFAULTS.filter : _f, _g = _a.limit, limit = _g === void 0 ? types_1.OPTIONS_DEFAULTS.limit : _g;
79
+ this.fonts = new Map();
80
+ // Save parameters as class variables
81
+ this.apiKey = apiKey;
82
+ this.options = {
83
+ families: families,
84
+ categories: categories,
85
+ scripts: scripts,
86
+ variants: variants,
87
+ filter: filter,
88
+ limit: limit
89
+ };
90
+ this.onChange = onChange;
91
+ // Download default font and add it to the empty font list
92
+ this.addFont(defaultFamily);
93
+ this.setActiveFont(defaultFamily);
94
+ }
95
+ /**
96
+ * Fetch list of all fonts from Google Fonts API, filter it according to the class parameters and
97
+ * save them to the font map
98
+ */
99
+ FontManager.prototype.init = function () {
100
+ return __awaiter(this, void 0, void 0, function () {
101
+ var fonts, _loop_1, this_1, fonts_1, fonts_1_1, font, state_1;
102
+ var e_1, _a;
103
+ return __generator(this, function (_b) {
104
+ switch (_b.label) {
105
+ case 0: return [4 /*yield*/, this.getFontList(this.apiKey)];
106
+ case 1:
107
+ fonts = _b.sent();
108
+ _loop_1 = function (font) {
109
+ // const font = fonts[i];
110
+ // Exit once specified limit of number of fonts is reached
111
+ if (this_1.fonts.size >= this_1.options.limit) {
112
+ return "break";
113
+ }
114
+ if (
115
+ // Skip default font if it is also contained in the list
116
+ !this_1.fonts.has(font.family) &&
117
+ // `families` parameter: Only keep fonts whose names are included in the provided array
118
+ (this_1.options.families.length === 0 ||
119
+ this_1.options.families.includes(font.family)) &&
120
+ // `categories` parameter: only keep fonts in categories from the provided array
121
+ (this_1.options.categories.length === 0 ||
122
+ this_1.options.categories.includes(font.category)) &&
123
+ // `scripts` parameter: Only keep fonts which are available in all specified scripts
124
+ this_1.options.scripts.every(function (script) { return font.scripts.includes(script); }) &&
125
+ // `variants` parameter: Only keep fonts which contain all specified variants
126
+ this_1.options.variants.every(function (variant) {
127
+ return font.variants.includes(variant);
128
+ }) &&
129
+ // `filter` parameter: Only keep fonts for which the `filter` function evaluates to `true`
130
+ this_1.options.filter(font) === true) {
131
+ // Font fulfils all requirements: Add it to font map
132
+ this_1.fonts.set(font.family, font);
133
+ }
134
+ };
135
+ this_1 = this;
136
+ try {
137
+ // Save desired fonts in the font map
138
+ for (fonts_1 = __values(fonts), fonts_1_1 = fonts_1.next(); !fonts_1_1.done; fonts_1_1 = fonts_1.next()) {
139
+ font = fonts_1_1.value;
140
+ state_1 = _loop_1(font);
141
+ if (state_1 === "break")
142
+ break;
143
+ }
144
+ }
145
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
146
+ finally {
147
+ try {
148
+ if (fonts_1_1 && !fonts_1_1.done && (_a = fonts_1.return)) _a.call(fonts_1);
149
+ }
150
+ finally { if (e_1) throw e_1.error; }
151
+ }
152
+ return [2 /*return*/, this.fonts];
153
+ }
154
+ });
155
+ });
156
+ };
157
+ FontManager.prototype.getFontList = function (apiKey) {
158
+ return __awaiter(this, void 0, void 0, function () {
159
+ var url, response, fontsOriginal;
160
+ return __generator(this, function (_a) {
161
+ switch (_a.label) {
162
+ case 0:
163
+ url = new URL(constants_1.LIST_BASE_URL);
164
+ url.searchParams.append('sort', 'popularity');
165
+ url.searchParams.append('key', apiKey);
166
+ return [4 /*yield*/, (0, utils_1.get)(url.href)];
167
+ case 1:
168
+ response = _a.sent();
169
+ fontsOriginal = JSON.parse(response).items;
170
+ return [2 /*return*/, fontsOriginal.map(function (fontOriginal) {
171
+ var family = fontOriginal.family, subsets = fontOriginal.subsets, others = __rest(fontOriginal, ["family", "subsets"]);
172
+ return __assign(__assign({}, others), { family: family, id: (0, utils_1.getFontId)(family), scripts: subsets });
173
+ })];
174
+ }
175
+ });
176
+ });
177
+ };
178
+ /**
179
+ * Add a new font to the font map and download its preview characters
180
+ */
181
+ FontManager.prototype.addFont = function (fontFamily) {
182
+ var font = {
183
+ family: fontFamily,
184
+ id: (0, utils_1.getFontId)(fontFamily),
185
+ variants: [],
186
+ category: 'display',
187
+ scripts: []
188
+ };
189
+ this.fonts.set(fontFamily, font);
190
+ };
191
+ /**
192
+ * Set the specified font as the active font and download it
193
+ */
194
+ FontManager.prototype.setActiveFont = function (fontFamily) {
195
+ var runOnChange = fontFamily !== 'Font not found';
196
+ if (runOnChange) {
197
+ this.onChange(fontFamily);
198
+ }
199
+ };
200
+ /**
201
+ * Update the onChange function (executed when changing the active font)
202
+ */
203
+ FontManager.prototype.setOnChange = function (onChange) {
204
+ this.onChange = onChange;
205
+ };
206
+ return FontManager;
207
+ }());
208
+ exports.default = FontManager;
209
+ //# sourceMappingURL=FontManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FontManager.js","sourceRoot":"","sources":["../../../../../src/components/font-picker/font-manager/FontManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const FONT_BASE_URL = "https://fonts.googleapis.com/css2";
2
+ export declare const LIST_BASE_URL = "https://www.googleapis.com/webfonts/v1/webfonts";
3
+ export declare const FONT_FACE_REGEX: RegExp;
4
+ export declare const FONT_FAMILY_DEFAULT = "Open Sans";
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FONT_FAMILY_DEFAULT = exports.FONT_FACE_REGEX = exports.LIST_BASE_URL = exports.FONT_BASE_URL = void 0;
4
+ exports.FONT_BASE_URL = 'https://fonts.googleapis.com/css2';
5
+ exports.LIST_BASE_URL = 'https://www.googleapis.com/webfonts/v1/webfonts';
6
+ exports.FONT_FACE_REGEX = /@font-face {([\s\S]*?)}/gm;
7
+ exports.FONT_FAMILY_DEFAULT = 'Open Sans';
8
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/components/font-picker/font-manager/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG,mCAAmC,CAAC;AAEpD,QAAA,aAAa,GAAG,iDAAiD,CAAC;AAElE,QAAA,eAAe,GAAG,2BAA2B,CAAC;AAE9C,QAAA,mBAAmB,GAAG,WAAW,CAAC"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Add/update declaration for applying the current active font
3
+ */
4
+ export declare const applyActiveFont: (activeFont: string, previousFontFamily: string) => void;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.applyActiveFont = void 0;
4
+ /**
5
+ * Create/find and return the apply-font stylesheet for the provided selectorSuffix
6
+ */
7
+ var getActiveFontStylesheet = function () {
8
+ var stylesheetId = "active-font";
9
+ var activeFontStylesheet = document.getElementById(stylesheetId);
10
+ if (!activeFontStylesheet) {
11
+ activeFontStylesheet = document.createElement('style');
12
+ activeFontStylesheet.id = stylesheetId;
13
+ document.head.appendChild(activeFontStylesheet);
14
+ }
15
+ return activeFontStylesheet;
16
+ };
17
+ /**
18
+ * Add/update declaration for applying the current active font
19
+ */
20
+ var applyActiveFont = function (activeFont, previousFontFamily) {
21
+ var style = "\n\t\t.apply-font {\n\t\t\tfont-family: \"".concat(activeFont, "\"").concat(previousFontFamily ? ", \"".concat(previousFontFamily, "\"") : '', ";\n\t\t}\n\t");
22
+ var activeFontStylesheet = getActiveFontStylesheet();
23
+ console.log(activeFontStylesheet);
24
+ activeFontStylesheet.innerHTML = style;
25
+ };
26
+ exports.applyActiveFont = applyActiveFont;
27
+ //# sourceMappingURL=declarations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declarations.js","sourceRoot":"","sources":["../../../../../../src/components/font-picker/font-manager/font-styles/declarations.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAM,uBAAuB,GAAG;IAC5B,IAAM,YAAY,GAAG,aAAa,CAAC;IACnC,IAAI,oBAAoB,GAAG,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAqB,CAAC;IACrF,IAAI,CAAC,oBAAoB,EAAE;QACvB,oBAAoB,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACvD,oBAAoB,CAAC,EAAE,GAAG,YAAY,CAAC;QACvC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;KACnD;IACD,OAAO,oBAAoB,CAAC;AAChC,CAAC,CAAC;AAEF;;GAEG;AACI,IAAM,eAAe,GAAG,UAAC,UAAkB,EAAE,kBAA0B;IAC1E,IAAM,KAAK,GAAG,oDAEC,UAAU,eAAI,kBAAkB,CAAC,CAAC,CAAC,cAAM,kBAAkB,OAAG,CAAC,CAAC,CAAC,EAAE,iBAEpF,CAAC;IACC,IAAM,oBAAoB,GAAG,uBAAuB,EAAE,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;IACjC,oBAAoB,CAAC,SAAS,GAAG,KAAK,CAAC;AAC3C,CAAC,CAAC;AATW,QAAA,eAAe,mBAS1B"}
@@ -0,0 +1 @@
1
+ export declare const createFontStyleSheets: (defaultFonts: any, uniqueFonts: any, availableFonts?: any) => void;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createFontStyleSheets = void 0;
4
+ var constants_1 = require("./constants");
5
+ var utils_1 = require("./utils");
6
+ var createFontStyleSheets = function (defaultFonts, uniqueFonts, availableFonts) {
7
+ defaultFonts.map(function (font) {
8
+ var fonts = uniqueFonts.find(function (f) { return f.family === font.family; });
9
+ var fontId = font.name.toLowerCase().split(' ').join('-');
10
+ // non Google Font style
11
+ if (fonts === null || fonts === void 0 ? void 0 : fonts.file) {
12
+ fillFontStyleSheets(fontId, font);
13
+ }
14
+ // google font style
15
+ if (fonts === null || fonts === void 0 ? void 0 : fonts.files) {
16
+ var fontURL = new URL(constants_1.FONT_BASE_URL);
17
+ fontURL.searchParams.append('family', "".concat(font.family, ":wght@").concat(font.weight));
18
+ fontURL.searchParams.append('text', font.name);
19
+ fontURL.searchParams.append('font-display', 'swap');
20
+ (0, utils_1.get)(fontURL.href)
21
+ .then(function (res) {
22
+ var rule = (0, utils_1.getMatches)(constants_1.FONT_FACE_REGEX, res);
23
+ var updateFont = rule[rule.length - 1].replace(font.family, font.name);
24
+ fillFontStyleSheets(fontId, updateFont, font.name);
25
+ })
26
+ .catch(function (e) { return console.error(e); });
27
+ }
28
+ });
29
+ // custom font style
30
+ if (availableFonts) {
31
+ availableFonts.map(function (font) {
32
+ var fontId = font.name.toLowerCase();
33
+ fillFontStyleSheets(fontId, font);
34
+ });
35
+ }
36
+ };
37
+ exports.createFontStyleSheets = createFontStyleSheets;
38
+ var fillFontStyleSheets = function (fontId, font, fontName) {
39
+ var stylesheetNode = document.getElementById("font-".concat(fontId));
40
+ var weight = font.weight, file = font.file, url = font.url, name = font.name, family = font.family;
41
+ var fontFamily = name !== family ? name : family;
42
+ var fontWeight = weight ? "font-weight: ".concat(weight, ";") : '';
43
+ var fontUrl = file ? "fonts/".concat(file) : "".concat(url);
44
+ if (stylesheetNode === null) {
45
+ stylesheetNode = stylesheetNode;
46
+ stylesheetNode = document.createElement('style');
47
+ if (stylesheetNode !== null) {
48
+ stylesheetNode.id = "font-".concat(fontId);
49
+ stylesheetNode.setAttribute('data-is-preview', 'true');
50
+ // non-google and custom fonts style
51
+ if (fontFamily && fontFamily && fontUrl) {
52
+ stylesheetNode.textContent = "\n @font-face {\n font-family: ".concat(fontFamily, ";\n ").concat(fontWeight, "\n src: url(").concat(fontUrl, ");\n }");
53
+ }
54
+ if (fontName) {
55
+ stylesheetNode.textContent = "\n @font-face {\n ".concat(font.replace("'".concat(fontName, "'"), fontName), "\n }");
56
+ }
57
+ document.head.appendChild(stylesheetNode);
58
+ }
59
+ }
60
+ };
61
+ //# sourceMappingURL=fontStyle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fontStyle.js","sourceRoot":"","sources":["../../../../../src/components/font-picker/font-manager/fontStyle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { Font } from '../types';
2
+ /**
3
+ * Fetch the list of all available fonts from the Google Fonts API
4
+ */
5
+ export declare const getFontList: (apiKey: string) => Promise<Font[]>;