pds-dev-kit-web 2.2.14 → 2.2.16
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.
- package/dist/src/common/assets/icons/line/TypefaceDisplay20.d.ts +4 -0
- package/dist/src/common/assets/icons/line/TypefaceDisplay20.js +30 -0
- package/dist/src/common/assets/icons/line/TypefaceHand20.d.ts +4 -0
- package/dist/src/common/assets/icons/line/TypefaceHand20.js +30 -0
- package/dist/src/common/assets/icons/line/TypefaceMonospace20.d.ts +4 -0
- package/dist/src/common/assets/icons/line/TypefaceMonospace20.js +30 -0
- package/dist/src/common/assets/icons/line/TypefaceSanserif20.d.ts +4 -0
- package/dist/src/common/assets/icons/line/TypefaceSanserif20.js +30 -0
- package/dist/src/common/assets/icons/line/TypefaceSerif20.d.ts +4 -0
- package/dist/src/common/assets/icons/line/TypefaceSerif20.js +30 -0
- package/dist/src/common/assets/icons/line/index.d.ts +5 -5
- package/dist/src/common/assets/icons/line/index.js +10 -10
- package/dist/src/hybrid/components/Icon/Icon.js +2 -1
- package/dist/src/sub/DynamicLayout/mock_samplePage.js +1 -1
- package/dist/src/sub/DynamicLayout/pagesPreviewMock.d.ts +1 -1
- package/dist/src/sub/DynamicLayout/pagesPreviewMock.js +4 -4
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/Button/Button.js +3 -0
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/Text/Text.js +4 -0
- package/dist/src/sub/DynamicLayout/sections/CustomSection/hooks/useGoogleFonts/getGoogleFonts.d.ts +4 -0
- package/dist/src/sub/DynamicLayout/sections/CustomSection/hooks/useGoogleFonts/getGoogleFonts.js +25 -0
- package/dist/src/sub/DynamicLayout/sections/CustomSection/hooks/useGoogleFonts/index.d.ts +2 -0
- package/dist/src/sub/DynamicLayout/sections/CustomSection/hooks/useGoogleFonts/index.js +11 -0
- package/dist/src/sub/DynamicLayout/sections/CustomSection/hooks/useGoogleFonts/useGoogleFonts.d.ts +4 -0
- package/dist/src/sub/DynamicLayout/sections/CustomSection/hooks/useGoogleFonts/useGoogleFonts.js +17 -0
- package/dist/src/sub/DynamicLayout/sections/CustomSection/newUtils/textUtil.d.ts +3 -2
- package/dist/src/sub/DynamicLayout/sections/CustomSection/newUtils/textUtil.js +5 -2
- package/dist/src/sub/GoogleFontkit/GoogleFontApplyExample.d.ts +3 -0
- package/dist/src/sub/GoogleFontkit/GoogleFontApplyExample.js +92 -0
- package/dist/src/sub/GoogleFontkit/GoogleFontsListExample.d.ts +3 -0
- package/dist/src/sub/GoogleFontkit/GoogleFontsListExample.js +57 -0
- package/dist/src/sub/GoogleFontkit/api/getGoogleFontCss.d.ts +10 -0
- package/dist/src/sub/GoogleFontkit/api/getGoogleFontCss.js +53 -0
- package/dist/src/sub/GoogleFontkit/api/getGoogleFontDefaultText.d.ts +2 -0
- package/dist/src/sub/GoogleFontkit/api/getGoogleFontDefaultText.js +55 -0
- package/dist/src/sub/GoogleFontkit/api/getGoogleWebFonts.d.ts +10 -0
- package/dist/src/sub/GoogleFontkit/api/getGoogleWebFonts.js +53 -0
- package/dist/src/sub/GoogleFontkit/constants.d.ts +7 -0
- package/dist/src/sub/GoogleFontkit/constants.js +44 -0
- package/dist/src/sub/GoogleFontkit/headless/GoogleFontItem.d.ts +15 -0
- package/dist/src/sub/GoogleFontkit/headless/GoogleFontItem.js +126 -0
- package/dist/src/sub/GoogleFontkit/headless/GoogleFontsList.d.ts +17 -0
- package/dist/src/sub/GoogleFontkit/headless/GoogleFontsList.js +144 -0
- package/dist/src/sub/GoogleFontkit/hooks/useDebounce.d.ts +1 -0
- package/dist/src/sub/GoogleFontkit/hooks/useDebounce.js +14 -0
- package/dist/src/sub/GoogleFontkit/hooks/useIntersectionObserver.d.ts +6 -0
- package/dist/src/sub/GoogleFontkit/hooks/useIntersectionObserver.js +29 -0
- package/dist/src/sub/GoogleFontkit/index.d.ts +7 -0
- package/dist/src/sub/GoogleFontkit/index.js +32 -0
- package/dist/src/sub/GoogleFontkit/types.d.ts +44 -0
- package/dist/src/sub/GoogleFontkit/types.js +14 -0
- package/dist/src/sub/GoogleFontkit/utils/applyActiveFont.d.ts +2 -0
- package/dist/src/sub/GoogleFontkit/utils/applyActiveFont.js +12 -0
- package/dist/src/sub/GoogleFontkit/utils/callGoogleFontCSSAndApply.d.ts +2 -0
- package/dist/src/sub/GoogleFontkit/utils/callGoogleFontCSSAndApply.js +72 -0
- package/dist/src/sub/GoogleFontkit/utils/createStyleSheet.d.ts +1 -0
- package/dist/src/sub/GoogleFontkit/utils/createStyleSheet.js +10 -0
- package/dist/src/sub/GoogleFontkit/utils/extractFontStyles.d.ts +1 -0
- package/dist/src/sub/GoogleFontkit/utils/extractFontStyles.js +22 -0
- package/dist/src/sub/GoogleFontkit/utils/fillStyleSheet.d.ts +1 -0
- package/dist/src/sub/GoogleFontkit/utils/fillStyleSheet.js +13 -0
- package/dist/src/sub/GoogleFontkit/utils/getActiveFontStylesheet.d.ts +1 -0
- package/dist/src/sub/GoogleFontkit/utils/getActiveFontStylesheet.js +13 -0
- package/dist/src/sub/GoogleFontkit/utils/getFontId.d.ts +1 -0
- package/dist/src/sub/GoogleFontkit/utils/getFontId.js +6 -0
- package/dist/src/sub/GoogleFontkit/utils/getMatches.d.ts +1 -0
- package/dist/src/sub/GoogleFontkit/utils/getMatches.js +14 -0
- package/dist/src/sub/GoogleFontkit/utils/isStyleSheetExists.d.ts +1 -0
- package/dist/src/sub/GoogleFontkit/utils/isStyleSheetExists.js +12 -0
- package/dist/src/sub/GoogleFontkit/utils/parseFontVariants.d.ts +4 -0
- package/dist/src/sub/GoogleFontkit/utils/parseFontVariants.js +18 -0
- package/dist/src/sub/GoogleFontkit/utils/setStyleSheetType.d.ts +1 -0
- package/dist/src/sub/GoogleFontkit/utils/setStyleSheetType.js +15 -0
- package/package.json +1 -1
- package/release-note.md +4 -4
- package/dist/src/common/assets/icons/line/TypefaceDisplay24.d.ts +0 -4
- package/dist/src/common/assets/icons/line/TypefaceDisplay24.js +0 -30
- package/dist/src/common/assets/icons/line/TypefaceHand24.d.ts +0 -4
- package/dist/src/common/assets/icons/line/TypefaceHand24.js +0 -30
- package/dist/src/common/assets/icons/line/TypefaceMonospace24.d.ts +0 -4
- package/dist/src/common/assets/icons/line/TypefaceMonospace24.js +0 -30
- package/dist/src/common/assets/icons/line/TypefaceSanserif24.d.ts +0 -4
- package/dist/src/common/assets/icons/line/TypefaceSanserif24.js +0 -30
- package/dist/src/common/assets/icons/line/TypefaceSerif24.d.ts +0 -4
- package/dist/src/common/assets/icons/line/TypefaceSerif24.js +0 -30
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
3
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
4
|
+
return cooked;
|
|
5
|
+
};
|
|
6
|
+
var __assign = (this && this.__assign) || function () {
|
|
7
|
+
__assign = Object.assign || function(t) {
|
|
8
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
9
|
+
s = arguments[i];
|
|
10
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
11
|
+
t[p] = s[p];
|
|
12
|
+
}
|
|
13
|
+
return t;
|
|
14
|
+
};
|
|
15
|
+
return __assign.apply(this, arguments);
|
|
16
|
+
};
|
|
17
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
22
|
+
var styled_components_1 = __importDefault(require("styled-components"));
|
|
23
|
+
var constants_1 = require("./constants");
|
|
24
|
+
var GoogleFontItem_1 = __importDefault(require("./headless/GoogleFontItem"));
|
|
25
|
+
var GoogleFontsList_1 = __importDefault(require("./headless/GoogleFontsList"));
|
|
26
|
+
var GOOGLE_FONT_API_KEY = '문의바람';
|
|
27
|
+
function GoogleFontsListExample() {
|
|
28
|
+
return ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(GoogleFontsList_1.default, __assign({ apiKey: GOOGLE_FONT_API_KEY, sort: "trending" }, { children: function (_a) {
|
|
29
|
+
var isLoading = _a.isLoading, filteredFonts = _a.filteredFonts, filterOptions = _a.filterOptions, changeSort = _a.changeSort, changeFilterOption = _a.changeFilterOption;
|
|
30
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(SFilters, { children: [(0, jsx_runtime_1.jsx)("button", __assign({ type: "button", onClick: function () { return changeSort('date'); } }, { children: "change sort" })), (0, jsx_runtime_1.jsx)("input", { type: "text", onChange: function (e) {
|
|
31
|
+
return changeFilterOption({
|
|
32
|
+
name: 'searchQuery',
|
|
33
|
+
value: e.target.value
|
|
34
|
+
});
|
|
35
|
+
} }), (0, jsx_runtime_1.jsx)("div", __assign({ style: { backgroundColor: 'yellow' } }, { children: constants_1.SUBSETS.map(function (eachSubset) {
|
|
36
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("span", { children: eachSubset }), (0, jsx_runtime_1.jsx)("input", { type: "checkbox", id: eachSubset, value: eachSubset, checked: filterOptions.subsets.includes(eachSubset), onClick: function () {
|
|
37
|
+
return changeFilterOption({
|
|
38
|
+
name: 'subsets',
|
|
39
|
+
value: [eachSubset]
|
|
40
|
+
});
|
|
41
|
+
} }, eachSubset)] }));
|
|
42
|
+
}) })), (0, jsx_runtime_1.jsx)("div", __assign({ style: { backgroundColor: 'red' } }, { children: constants_1.CATEGORIES.map(function (category) {
|
|
43
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("span", { children: category }), (0, jsx_runtime_1.jsx)("input", { type: "checkbox", id: category, value: category, checked: filterOptions.categories.includes(category), onClick: function () {
|
|
44
|
+
return changeFilterOption({
|
|
45
|
+
name: 'categories',
|
|
46
|
+
value: [category]
|
|
47
|
+
});
|
|
48
|
+
} }, category)] }));
|
|
49
|
+
}) }))] }), isLoading && 'isLoading', filteredFonts.map(function (font) { return ((0, jsx_runtime_1.jsx)(GoogleFontItem_1.default, __assign({ font: font, fetchDefaultText: false }, { children: function (_a) {
|
|
50
|
+
var isFontFamilyLoading = _a.isLoading, ref = _a.ref;
|
|
51
|
+
return ((0, jsx_runtime_1.jsxs)("div", __assign({ ref: ref }, { children: [isFontFamilyLoading && (0, jsx_runtime_1.jsx)("div", { children: "loading.." }), (0, jsx_runtime_1.jsx)("div", __assign({ style: { fontFamily: font.family } }, { children: font.family }))] })));
|
|
52
|
+
} }), font.id)); })] }));
|
|
53
|
+
} })) }));
|
|
54
|
+
}
|
|
55
|
+
var SFilters = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n border: 1px solid black;\n"], ["\n border: 1px solid black;\n"])));
|
|
56
|
+
exports.default = GoogleFontsListExample;
|
|
57
|
+
var templateObject_1;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
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;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
var GOOGLE_FONTS_CSS_BASE_URL = 'https://fonts.googleapis.com/css2';
|
|
40
|
+
function getGoogleFontCss(searchParamsObj) {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
42
|
+
var url;
|
|
43
|
+
return __generator(this, function (_a) {
|
|
44
|
+
url = new URL(GOOGLE_FONTS_CSS_BASE_URL);
|
|
45
|
+
Object.entries(searchParamsObj).forEach(function (param) {
|
|
46
|
+
var key = param[0], value = param[1];
|
|
47
|
+
url.searchParams.append(key, value);
|
|
48
|
+
});
|
|
49
|
+
return [2 /*return*/, fetch(url.href).then(function (res) { return res.text(); })];
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
exports.default = getGoogleFontCss;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
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;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
var GOOGLE_SAMPLE_TEXT_BASE_URL = 'https://fonts.google.com/sampletext';
|
|
40
|
+
function getGoogleFontDefaultText(family) {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
42
|
+
var url;
|
|
43
|
+
return __generator(this, function (_a) {
|
|
44
|
+
url = new URL(GOOGLE_SAMPLE_TEXT_BASE_URL);
|
|
45
|
+
url.searchParams.append('family', family);
|
|
46
|
+
return [2 /*return*/, fetch(url.href).then(function (res) {
|
|
47
|
+
return res.text().then(function (text) {
|
|
48
|
+
var testTexts = JSON.parse(text.substring(5));
|
|
49
|
+
return testTexts;
|
|
50
|
+
});
|
|
51
|
+
})];
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
exports.default = getGoogleFontDefaultText;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
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;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
var GOOGLE_WEBFONTS_BASE_URL = 'https://www.googleapis.com/webfonts/v1/webfonts';
|
|
40
|
+
function getGoogleWebFonts(searchParamsObj) {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
42
|
+
var url;
|
|
43
|
+
return __generator(this, function (_a) {
|
|
44
|
+
url = new URL(GOOGLE_WEBFONTS_BASE_URL);
|
|
45
|
+
Object.entries(searchParamsObj).forEach(function (param) {
|
|
46
|
+
var key = param[0], value = param[1];
|
|
47
|
+
url.searchParams.append(key, value);
|
|
48
|
+
});
|
|
49
|
+
return [2 /*return*/, fetch(url.href).then(function (res) { return res.json(); })];
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
exports.default = getGoogleWebFonts;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Category, SortOption, Subset } from './types';
|
|
2
|
+
export declare const FONT_FACE_REGEX: RegExp;
|
|
3
|
+
export declare const FONT_FAMILY_REGEX: RegExp;
|
|
4
|
+
export declare const PREVIEW_ATTRIBUTE_NAME = "data-is-preview";
|
|
5
|
+
export declare const CATEGORIES: Category[];
|
|
6
|
+
export declare const SORTS: SortOption[];
|
|
7
|
+
export declare const SUBSETS: Subset[];
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SUBSETS = exports.SORTS = exports.CATEGORIES = exports.PREVIEW_ATTRIBUTE_NAME = exports.FONT_FAMILY_REGEX = exports.FONT_FACE_REGEX = void 0;
|
|
4
|
+
exports.FONT_FACE_REGEX = /@font-face {([\s\S]*?)}/gm;
|
|
5
|
+
exports.FONT_FAMILY_REGEX = /font-family: ['"](.*?)['"]/gm;
|
|
6
|
+
exports.PREVIEW_ATTRIBUTE_NAME = 'data-is-preview';
|
|
7
|
+
exports.CATEGORIES = [
|
|
8
|
+
'serif',
|
|
9
|
+
'sans-serif',
|
|
10
|
+
'display',
|
|
11
|
+
'handwriting',
|
|
12
|
+
'monospace'
|
|
13
|
+
];
|
|
14
|
+
exports.SORTS = ['trending', 'popularity', 'date', 'alpha'];
|
|
15
|
+
exports.SUBSETS = [
|
|
16
|
+
'korean',
|
|
17
|
+
'latin',
|
|
18
|
+
'latin-ext',
|
|
19
|
+
'arabic',
|
|
20
|
+
'bengali',
|
|
21
|
+
'chinese-hongkong',
|
|
22
|
+
'chinese-simplified',
|
|
23
|
+
'chinese-traditional',
|
|
24
|
+
'cyrillic',
|
|
25
|
+
'cyrillic-ext',
|
|
26
|
+
'devanagari',
|
|
27
|
+
'greek',
|
|
28
|
+
'greek-ext',
|
|
29
|
+
'gujarati',
|
|
30
|
+
'gurmukhi',
|
|
31
|
+
'hebrew',
|
|
32
|
+
'japanese',
|
|
33
|
+
'kannada',
|
|
34
|
+
'khmer',
|
|
35
|
+
'malayalam',
|
|
36
|
+
'myanmar',
|
|
37
|
+
'oriya',
|
|
38
|
+
'sinhala',
|
|
39
|
+
'tamil',
|
|
40
|
+
'telugu',
|
|
41
|
+
'thai',
|
|
42
|
+
'tibetan',
|
|
43
|
+
'vietnamese'
|
|
44
|
+
];
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { LegacyRef } from 'react';
|
|
2
|
+
import type { Font } from '../types';
|
|
3
|
+
type HeadlessProps = {
|
|
4
|
+
isLoading: boolean;
|
|
5
|
+
isVisible: boolean;
|
|
6
|
+
ref: LegacyRef<HTMLElement>;
|
|
7
|
+
defaultText: string;
|
|
8
|
+
};
|
|
9
|
+
type Props = {
|
|
10
|
+
font: Font;
|
|
11
|
+
children: (args: HeadlessProps) => JSX.Element;
|
|
12
|
+
fetchDefaultText: boolean;
|
|
13
|
+
};
|
|
14
|
+
declare function GoogleFontItem({ font, fetchDefaultText, children }: Props): JSX.Element;
|
|
15
|
+
export default GoogleFontItem;
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
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;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
var react_1 = require("react");
|
|
43
|
+
var getGoogleFontCss_1 = __importDefault(require("../api/getGoogleFontCss"));
|
|
44
|
+
var getGoogleFontDefaultText_1 = __importDefault(require("../api/getGoogleFontDefaultText"));
|
|
45
|
+
var useIntersectionObserver_1 = __importDefault(require("../hooks/useIntersectionObserver"));
|
|
46
|
+
var applyActiveFont_1 = __importDefault(require("../utils/applyActiveFont"));
|
|
47
|
+
var createStyleSheet_1 = __importDefault(require("../utils/createStyleSheet"));
|
|
48
|
+
var extractFontStyles_1 = __importDefault(require("../utils/extractFontStyles"));
|
|
49
|
+
var fillStyleSheet_1 = __importDefault(require("../utils/fillStyleSheet"));
|
|
50
|
+
var isStyleSheetExists_1 = __importDefault(require("../utils/isStyleSheetExists"));
|
|
51
|
+
var parseFontVariants_1 = __importDefault(require("../utils/parseFontVariants"));
|
|
52
|
+
var setStyleSheetType_1 = __importDefault(require("../utils/setStyleSheetType"));
|
|
53
|
+
function GoogleFontItem(_a) {
|
|
54
|
+
var font = _a.font, fetchDefaultText = _a.fetchDefaultText, children = _a.children;
|
|
55
|
+
var _b = (0, react_1.useState)(false), isLoading = _b[0], setIsLoading = _b[1];
|
|
56
|
+
var _c = (0, react_1.useState)(''), defaultText = _c[0], setDefaultText = _c[1];
|
|
57
|
+
var ref = (0, react_1.useRef)(null);
|
|
58
|
+
var entry = (0, useIntersectionObserver_1.default)(ref, {});
|
|
59
|
+
var isVisible = !!(entry === null || entry === void 0 ? void 0 : entry.isIntersecting);
|
|
60
|
+
(0, react_1.useEffect)(function () {
|
|
61
|
+
if (!isVisible) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
function getCss() {
|
|
65
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
66
|
+
var css, fontStyles;
|
|
67
|
+
return __generator(this, function (_a) {
|
|
68
|
+
switch (_a.label) {
|
|
69
|
+
case 0:
|
|
70
|
+
setIsLoading(true);
|
|
71
|
+
return [4 /*yield*/, (0, getGoogleFontCss_1.default)({
|
|
72
|
+
family: "".concat(font.family).concat((0, parseFontVariants_1.default)(font.variants, {
|
|
73
|
+
prefix: ':wght@',
|
|
74
|
+
separator: ';'
|
|
75
|
+
})),
|
|
76
|
+
'font-display': 'swap'
|
|
77
|
+
})];
|
|
78
|
+
case 1:
|
|
79
|
+
css = _a.sent();
|
|
80
|
+
fontStyles = (0, extractFontStyles_1.default)(css);
|
|
81
|
+
(0, fillStyleSheet_1.default)(font.id, fontStyles[font.id]);
|
|
82
|
+
setIsLoading(false);
|
|
83
|
+
return [2 /*return*/];
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
if ((0, isStyleSheetExists_1.default)(font.id, false)) {
|
|
89
|
+
(0, applyActiveFont_1.default)(font, '', '');
|
|
90
|
+
setIsLoading(false);
|
|
91
|
+
}
|
|
92
|
+
else if ((0, isStyleSheetExists_1.default)(font.id, true)) {
|
|
93
|
+
(0, setStyleSheetType_1.default)(font.id, false);
|
|
94
|
+
setIsLoading(false);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
(0, createStyleSheet_1.default)(font.id, false);
|
|
98
|
+
getCss();
|
|
99
|
+
}
|
|
100
|
+
}, [font, isVisible]);
|
|
101
|
+
(0, react_1.useEffect)(function () {
|
|
102
|
+
if (!fetchDefaultText) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
if (!font.family || !isVisible || defaultText) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
function getDefaultText() {
|
|
109
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
110
|
+
var text;
|
|
111
|
+
return __generator(this, function (_a) {
|
|
112
|
+
switch (_a.label) {
|
|
113
|
+
case 0: return [4 /*yield*/, (0, getGoogleFontDefaultText_1.default)(font.family)];
|
|
114
|
+
case 1:
|
|
115
|
+
text = _a.sent();
|
|
116
|
+
setDefaultText(text.sampleText.tester);
|
|
117
|
+
return [2 /*return*/];
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
getDefaultText();
|
|
123
|
+
}, [font, isVisible, defaultText, fetchDefaultText]);
|
|
124
|
+
return children({ isLoading: isLoading, isVisible: isVisible, ref: ref, defaultText: defaultText });
|
|
125
|
+
}
|
|
126
|
+
exports.default = GoogleFontItem;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { Font, SortOption, FilterOptionType, ChangeFilterOptionHandler } from '../types';
|
|
3
|
+
type HeadlessProps = {
|
|
4
|
+
isLoading: boolean;
|
|
5
|
+
fonts: Font[];
|
|
6
|
+
filteredFonts: Font[];
|
|
7
|
+
filterOptions: FilterOptionType;
|
|
8
|
+
changeSort: (sortOption: SortOption) => void;
|
|
9
|
+
changeFilterOption: ChangeFilterOptionHandler;
|
|
10
|
+
};
|
|
11
|
+
type Props = {
|
|
12
|
+
apiKey: string;
|
|
13
|
+
sort: SortOption;
|
|
14
|
+
children: (args: HeadlessProps) => JSX.Element;
|
|
15
|
+
};
|
|
16
|
+
declare function GoogleFontsList({ apiKey, sort, children }: Props): JSX.Element;
|
|
17
|
+
export default GoogleFontsList;
|
|
@@ -0,0 +1,144 @@
|
|
|
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 (g && (g = 0, op[0] && (_ = 0)), _) 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 __importDefault = (this && this.__importDefault) || function (mod) {
|
|
50
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
51
|
+
};
|
|
52
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
|
+
var react_1 = require("react");
|
|
54
|
+
var getGoogleWebFonts_1 = __importDefault(require("../api/getGoogleWebFonts"));
|
|
55
|
+
var getFontId_1 = __importDefault(require("../utils/getFontId"));
|
|
56
|
+
var DEFAULT_CATEGORIES = [
|
|
57
|
+
'serif',
|
|
58
|
+
'sans-serif',
|
|
59
|
+
'display',
|
|
60
|
+
'handwriting',
|
|
61
|
+
'monospace'
|
|
62
|
+
];
|
|
63
|
+
function GoogleFontsList(_a) {
|
|
64
|
+
var apiKey = _a.apiKey, sort = _a.sort, children = _a.children;
|
|
65
|
+
var _b = (0, react_1.useState)(false), isLoading = _b[0], setIsLoading = _b[1];
|
|
66
|
+
var _c = (0, react_1.useState)([]), fonts = _c[0], setFonts = _c[1];
|
|
67
|
+
var _d = (0, react_1.useState)({
|
|
68
|
+
searchQuery: '',
|
|
69
|
+
categories: DEFAULT_CATEGORIES,
|
|
70
|
+
subsets: []
|
|
71
|
+
}), filterOptions = _d[0], setFilterOptions = _d[1];
|
|
72
|
+
(0, react_1.useEffect)(function () {
|
|
73
|
+
function call() {
|
|
74
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
75
|
+
var items;
|
|
76
|
+
return __generator(this, function (_a) {
|
|
77
|
+
switch (_a.label) {
|
|
78
|
+
case 0:
|
|
79
|
+
setIsLoading(true);
|
|
80
|
+
return [4 /*yield*/, (0, getGoogleWebFonts_1.default)({
|
|
81
|
+
key: apiKey,
|
|
82
|
+
sort: sort
|
|
83
|
+
})];
|
|
84
|
+
case 1:
|
|
85
|
+
items = (_a.sent()).items;
|
|
86
|
+
setFonts(items.map(function (item) { return (__assign(__assign({}, item), { id: (0, getFontId_1.default)(item.family) })); }));
|
|
87
|
+
setIsLoading(false);
|
|
88
|
+
return [2 /*return*/];
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
call();
|
|
94
|
+
}, [apiKey, sort]);
|
|
95
|
+
function changeSort(sortOption) {
|
|
96
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
97
|
+
var items;
|
|
98
|
+
return __generator(this, function (_a) {
|
|
99
|
+
switch (_a.label) {
|
|
100
|
+
case 0:
|
|
101
|
+
setIsLoading(true);
|
|
102
|
+
return [4 /*yield*/, (0, getGoogleWebFonts_1.default)({
|
|
103
|
+
key: apiKey,
|
|
104
|
+
sort: sortOption
|
|
105
|
+
})];
|
|
106
|
+
case 1:
|
|
107
|
+
items = (_a.sent()).items;
|
|
108
|
+
setFonts(items.map(function (item) { return (__assign(__assign({}, item), { id: (0, getFontId_1.default)(item.family) })); }));
|
|
109
|
+
return [2 /*return*/];
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
function changeFilterOption(arg) {
|
|
115
|
+
var name = arg.name, value = arg.value;
|
|
116
|
+
setFilterOptions(function (prev) {
|
|
117
|
+
var _a;
|
|
118
|
+
return (__assign(__assign({}, prev), (_a = {}, _a[name] = value, _a)));
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
var filteredFonts = fonts.filter(function (font) {
|
|
122
|
+
var categories = filterOptions.categories, searchQuery = filterOptions.searchQuery, subsets = filterOptions.subsets;
|
|
123
|
+
var isSelectedCategory = categories.includes(font.category);
|
|
124
|
+
var query = searchQuery.toLocaleLowerCase().trim();
|
|
125
|
+
var matchSearchQuery = font.family.toLocaleLowerCase().includes(query);
|
|
126
|
+
if (!matchSearchQuery) {
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
var hasSomeScript = subsets.length > 0 ? font.subsets.some(function (subset) { return subsets.includes(subset); }) : true;
|
|
130
|
+
if (isSelectedCategory && hasSomeScript) {
|
|
131
|
+
return true;
|
|
132
|
+
}
|
|
133
|
+
return false;
|
|
134
|
+
});
|
|
135
|
+
return children({
|
|
136
|
+
isLoading: isLoading,
|
|
137
|
+
fonts: fonts,
|
|
138
|
+
filteredFonts: filteredFonts,
|
|
139
|
+
filterOptions: filterOptions,
|
|
140
|
+
changeSort: changeSort,
|
|
141
|
+
changeFilterOption: changeFilterOption
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
exports.default = GoogleFontsList;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function useDebounce<T>(value: T, delay?: number): T;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var react_1 = require("react");
|
|
4
|
+
function useDebounce(value, delay) {
|
|
5
|
+
var _a = (0, react_1.useState)(value), debouncedValue = _a[0], setDebouncedValue = _a[1];
|
|
6
|
+
(0, react_1.useEffect)(function () {
|
|
7
|
+
var timer = setTimeout(function () { return setDebouncedValue(value); }, delay || 500);
|
|
8
|
+
return function () {
|
|
9
|
+
clearTimeout(timer);
|
|
10
|
+
};
|
|
11
|
+
}, [value, delay]);
|
|
12
|
+
return debouncedValue;
|
|
13
|
+
}
|
|
14
|
+
exports.default = useDebounce;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { RefObject } from 'react';
|
|
2
|
+
interface Args extends IntersectionObserverInit {
|
|
3
|
+
freezeOnceVisible?: boolean;
|
|
4
|
+
}
|
|
5
|
+
declare function useIntersectionObserver(elementRef: RefObject<Element>, { threshold, root, rootMargin, freezeOnceVisible }: Args): IntersectionObserverEntry | undefined;
|
|
6
|
+
export default useIntersectionObserver;
|