@trebired/frontend 13.17.0 → 13.18.0
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/CHANGELOG.md +6 -0
- package/dist/layout/index.d.ts +3 -0
- package/dist/layout/index.d.ts.map +1 -1
- package/dist/layout/index.js +6 -2
- package/dist/layout/index.js.map +1 -1
- package/dist/layout/scroll.d.ts +13 -0
- package/dist/layout/scroll.d.ts.map +1 -0
- package/dist/layout/scroll.js +53 -0
- package/dist/layout/scroll.js.map +1 -0
- package/dist/src/layout/index.d.ts +3 -0
- package/dist/src/layout/index.d.ts.map +1 -1
- package/dist/src/layout/index.js +6 -2
- package/dist/src/layout/index.js.map +1 -1
- package/dist/src/layout/scroll.d.ts +13 -0
- package/dist/src/layout/scroll.d.ts.map +1 -0
- package/dist/src/layout/scroll.js +53 -0
- package/dist/src/layout/scroll.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 13.18.0
|
|
4
|
+
|
|
5
|
+
- Added the scroll-state system, so a header that changes appearance once the page is scrolled no longer has to compute that in React. `createScrollStateBootScript()` returns a boot script that sets `data-…-scrolled` on `<html>` before the first paint and keeps it current from then on, so the correct header is painted immediately even when a reload restores a scrolled position.
|
|
6
|
+
- `bindScrollState()` binds the same state from the runtime for apps that do not use a boot script, and does nothing when the boot script already owns it. `bindLayouts` calls it, with the threshold configurable through `scroll` in the layout runtime options.
|
|
7
|
+
- `applyScrollState()`, `readScrollState()`, `SCROLL_STATE_ATTRIBUTE` and `SCROLL_STATE_SELECTOR` are exported for stylesheets and code that need the state directly. The threshold defaults to 24 pixels.
|
|
8
|
+
|
|
3
9
|
## 13.17.0
|
|
4
10
|
|
|
5
11
|
- The locale boot script no longer keeps the document hidden until `DOMContentLoaded`. It still hides the page when the visitor's stored locale differs from the rendered one, but `LocaleProvider` now clears that pending state as soon as the localized tree has committed, so the hidden window lasts only until the correct text is on screen instead of until every deferred script has run.
|
package/dist/layout/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type BindRoot } from "../dom/index.d.ts";
|
|
2
|
+
import { type ScrollStateOptions } from "./scroll.js";
|
|
2
3
|
import { type HeaderRuntimeOptions } from "./header.js";
|
|
3
4
|
declare const LAYOUT_ROOT_SELECTOR: string;
|
|
4
5
|
declare const LAYOUT_MAIN_SELECTOR: string;
|
|
@@ -20,6 +21,7 @@ type LayoutBodyState = {
|
|
|
20
21
|
type LayoutRuntimeOptions = {
|
|
21
22
|
header?: HeaderRuntimeOptions;
|
|
22
23
|
mobile?: boolean;
|
|
24
|
+
scroll?: ScrollStateOptions;
|
|
23
25
|
};
|
|
24
26
|
declare function readLayoutBodyState(root?: ParentNode): LayoutBodyState;
|
|
25
27
|
declare function applyLayoutBodyState(state: LayoutBodyState, options?: LayoutRuntimeOptions): LayoutBodyState;
|
|
@@ -31,6 +33,7 @@ declare function ensureLayoutPortalRoot(): HTMLElement;
|
|
|
31
33
|
declare function createLayoutBootScript(state?: Partial<LayoutBodyState>): string;
|
|
32
34
|
export { LAYOUT_BODY_ATTRIBUTE, LAYOUT_CONTENT_SELECTOR, LAYOUT_MAIN_SELECTOR, LAYOUT_MOBILE_BODY_ATTRIBUTE, LAYOUT_PORTAL_ROOT_ID, LAYOUT_PORTAL_ROOT_SELECTOR, LAYOUT_ROOT_SELECTOR, SITE_HEADER_ROOT_ATTRIBUTE, SITE_HEADER_ROOT_SELECTOR, applyLayoutBodyState, bindLayoutRoot, bindLayouts, createLayoutBootScript, ensureLayoutPortalRoot, readLayoutBodyState, siteHeaderRootHtml, syncLayoutBodyState, };
|
|
33
35
|
export * from "./breadcrumb.js";
|
|
36
|
+
export * from "./scroll.js";
|
|
34
37
|
export * from "./header.js";
|
|
35
38
|
export * from "./state.js";
|
|
36
39
|
export type { LayoutBodyState, LayoutRuntimeOptions, LayoutSide };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,aAAa,CAAC;AAGrB,QAAA,MAAM,oBAAoB,QAAsC,CAAC;AACjE,QAAA,MAAM,oBAAoB,QAAsC,CAAC;AACjE,QAAA,MAAM,uBAAuB,QAAyC,CAAC;AACvE,QAAA,MAAM,qBAAqB,2BAA0C,CAAC;AACtE,QAAA,MAAM,2BAA2B,QAA6C,CAAC;AAC/E,QAAA,MAAM,qBAAqB,kBAA6B,CAAC;AACzD,QAAA,MAAM,4BAA4B,kBAAoC,CAAC;AACvE,QAAA,MAAM,0BAA0B,kBAAuC,CAAC;AACxE,QAAA,MAAM,yBAAyB,QAA2C,CAAC;AAE3E,KAAK,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnC,KAAK,eAAe,GAAG;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAAmB,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,aAAa,CAAC;AAGrB,QAAA,MAAM,oBAAoB,QAAsC,CAAC;AACjE,QAAA,MAAM,oBAAoB,QAAsC,CAAC;AACjE,QAAA,MAAM,uBAAuB,QAAyC,CAAC;AACvE,QAAA,MAAM,qBAAqB,2BAA0C,CAAC;AACtE,QAAA,MAAM,2BAA2B,QAA6C,CAAC;AAC/E,QAAA,MAAM,qBAAqB,kBAA6B,CAAC;AACzD,QAAA,MAAM,4BAA4B,kBAAoC,CAAC;AACvE,QAAA,MAAM,0BAA0B,kBAAuC,CAAC;AACxE,QAAA,MAAM,yBAAyB,QAA2C,CAAC;AAE3E,KAAK,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnC,KAAK,eAAe,GAAG;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B,CAAC;AAUF,iBAAS,mBAAmB,CAAC,IAAI,GAAE,UAAqB,GAAG,eAAe,CAQzE;AAED,iBAAS,oBAAoB,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,GAAE,oBAAyB,mBAgBvF;AAED,iBAAS,mBAAmB,CAAC,IAAI,GAAE,UAAqB,EAAE,OAAO,GAAE,oBAAyB,mBAE3F;AAED,iBAAS,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,EAAE,OAAO,GAAE,oBAAyB,eAKnF;AAED,iBAAS,WAAW,CAAC,IAAI,GAAE,QAAmB,EAAE,OAAO,GAAE,oBAAyB,QASjF;AAED,iBAAS,kBAAkB,CAAC,UAAU,EAAE,MAAM,UAE7C;AAED,iBAAS,sBAAsB,gBAS9B;AAED,iBAAS,sBAAsB,CAAC,KAAK,GAAE,OAAO,CAAC,eAAe,CAAM,UAqBnE;AAED,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,4BAA4B,EAC5B,qBAAqB,EACrB,2BAA2B,EAC3B,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,EACzB,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GACpB,CAAC;AACF,cAAa,iBAAiB,CAAC;AAC/B,cAAa,aAAa,CAAC;AAC3B,cAAa,aAAa,CAAC;AAC3B,cAAa,YAAY,CAAC;AAC1B,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC"}
|
package/dist/layout/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { queryAll } from "../dom/index.js";
|
|
2
2
|
import { bindBreadcrumbs } from "./breadcrumb.js";
|
|
3
|
+
import { bindScrollState } from "./scroll.js";
|
|
3
4
|
import { HEADER_PRIMARY_SELECTOR, HEADER_SECONDARY_SELECTOR, bindHeaders, } from "./header.js";
|
|
4
5
|
import { FRONTEND_PREFIX, frontendDataAttr, frontendDataSelector } from "../namespace/index.js";
|
|
5
6
|
const LAYOUT_ROOT_SELECTOR = frontendDataSelector("layout-root");
|
|
@@ -54,8 +55,10 @@ function bindLayouts(root = document, options = {}) {
|
|
|
54
55
|
});
|
|
55
56
|
bindHeaders(root, options.header || {});
|
|
56
57
|
bindBreadcrumbs(root);
|
|
57
|
-
if (root
|
|
58
|
-
|
|
58
|
+
if (root !== document)
|
|
59
|
+
return;
|
|
60
|
+
bindScrollState(options.scroll);
|
|
61
|
+
syncLayoutBodyState(document, options);
|
|
59
62
|
}
|
|
60
63
|
function siteHeaderRootHtml(headerHtml) {
|
|
61
64
|
return `<div ${SITE_HEADER_ROOT_ATTRIBUTE}="">${headerHtml}</div>`;
|
|
@@ -96,6 +99,7 @@ function createLayoutBootScript(state = {}) {
|
|
|
96
99
|
}
|
|
97
100
|
export { LAYOUT_BODY_ATTRIBUTE, LAYOUT_CONTENT_SELECTOR, LAYOUT_MAIN_SELECTOR, LAYOUT_MOBILE_BODY_ATTRIBUTE, LAYOUT_PORTAL_ROOT_ID, LAYOUT_PORTAL_ROOT_SELECTOR, LAYOUT_ROOT_SELECTOR, SITE_HEADER_ROOT_ATTRIBUTE, SITE_HEADER_ROOT_SELECTOR, applyLayoutBodyState, bindLayoutRoot, bindLayouts, createLayoutBootScript, ensureLayoutPortalRoot, readLayoutBodyState, siteHeaderRootHtml, syncLayoutBodyState, };
|
|
98
101
|
export * from "./breadcrumb.js";
|
|
102
|
+
export * from "./scroll.js";
|
|
99
103
|
export * from "./header.js";
|
|
100
104
|
export * from "./state.js";
|
|
101
105
|
//# sourceMappingURL=index.js.map
|
package/dist/layout/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAiB,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,WAAW,GAEZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAExF,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;AACjE,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;AACjE,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;AACvE,MAAM,qBAAqB,GAAG,GAAG,eAAe,qBAAqB,CAAC;AACtE,MAAM,2BAA2B,GAAG,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;AAC/E,MAAM,qBAAqB,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACzD,MAAM,4BAA4B,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;AACvE,MAAM,0BAA0B,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;AACxE,MAAM,yBAAyB,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAiB,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,eAAe,EAA2B,MAAM,aAAa,CAAC;AACvE,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,WAAW,GAEZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAExF,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;AACjE,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;AACjE,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;AACvE,MAAM,qBAAqB,GAAG,GAAG,eAAe,qBAAqB,CAAC;AACtE,MAAM,2BAA2B,GAAG,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;AAC/E,MAAM,qBAAqB,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACzD,MAAM,4BAA4B,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;AACvE,MAAM,0BAA0B,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;AACxE,MAAM,yBAAyB,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;AAkB3E,SAAS,kBAAkB,CAAC,IAAgB;IAC1C,OAAO,GAAG,oBAAoB,CAAC,eAAe,CAAC,GAAG,oBAAoB,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC;AACjG,CAAC;AAED,SAAS,UAAU,CAAC,IAAgB,EAAE,IAAgB;IACpD,OAAO,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAmB,QAAQ;IACtD,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;QAC/D,cAAc,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;QACxC,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC1F,eAAe,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC;QAC1C,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC;KAC3E,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAsB,EAAE,UAAgC,EAAE;IACtF,MAAM,IAAI,GAAG,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACpE,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IACjD,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC1F,IAAI,CAAC,YAAY,CACf,gBAAgB,CAAC,kBAAkB,CAAC,EACpC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAC5C,CAAC;IACF,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC7F,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC/F,IAAI,CAAC,YAAY,CACf,4BAA4B,EAC5B,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CACvE,CAAC;IACF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAmB,QAAQ,EAAE,UAAgC,EAAE;IAC1F,OAAO,oBAAoB,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,cAAc,CAAC,IAAwB,EAAE,UAAgC,EAAE;IAClF,IAAI,CAAC,CAAC,IAAI,YAAY,WAAW,CAAC;QAAE,OAAO,IAAI,CAAC;IAChD,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC;IAC5D,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,OAAiB,QAAQ,EAAE,UAAgC,EAAE;IAChF,QAAQ,CAAc,IAAI,EAAE,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QACrE,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IACH,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IACxC,eAAe,CAAC,IAAI,CAAC,CAAC;IACtB,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO;IAC9B,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,kBAAkB,CAAC,UAAkB;IAC5C,OAAO,QAAQ,0BAA0B,OAAO,UAAU,QAAQ,CAAC;AACrE,CAAC;AAED,SAAS,sBAAsB;IAC7B,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;IAChE,IAAI,QAAQ,YAAY,WAAW;QAAE,OAAO,QAAQ,CAAC;IACrD,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,GAAG,qBAAqB,CAAC;IAChC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9D,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAkC,EAAE;IAClE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3B,SAAS,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI;QACnC,cAAc,EAAE,KAAK,CAAC,cAAc,KAAK,IAAI;QAC7C,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,KAAK,IAAI;QACrD,eAAe,EAAE,KAAK,CAAC,eAAe,KAAK,IAAI;QAC/C,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,KAAK,IAAI;KACxD,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC7B,OAAO;QACL,kBAAkB;QAClB,aAAa,OAAO,GAAG;QACvB,yBAAyB;QACzB,kBAAkB;QAClB,qBAAqB,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,WAAW;QACrE,qBAAqB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,mCAAmC;QAC1G,qBAAqB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,4CAA4C;QACrH,qBAAqB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,wCAAwC;QAC7G,qBAAqB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,yCAAyC;QAC/G,qBAAqB,IAAI,CAAC,SAAS,CAAC,4BAA4B,CAAC,4CAA4C;QAC7G,kBAAkB;KACnB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACb,CAAC;AAED,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,4BAA4B,EAC5B,qBAAqB,EACrB,2BAA2B,EAC3B,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,EACzB,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GACpB,CAAC;AACF,cAAa,iBAAiB,CAAC;AAC/B,cAAa,aAAa,CAAC;AAC3B,cAAa,aAAa,CAAC;AAC3B,cAAa,YAAY,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
declare const SCROLL_STATE_ATTRIBUTE: `data-${string}`;
|
|
2
|
+
declare const SCROLL_STATE_SELECTOR: string;
|
|
3
|
+
declare const DEFAULT_SCROLL_THRESHOLD = 24;
|
|
4
|
+
type ScrollStateOptions = {
|
|
5
|
+
threshold?: number;
|
|
6
|
+
};
|
|
7
|
+
declare function readScrollState(options?: ScrollStateOptions): boolean;
|
|
8
|
+
declare function applyScrollState(options?: ScrollStateOptions): boolean;
|
|
9
|
+
declare function bindScrollState(options?: ScrollStateOptions): () => void;
|
|
10
|
+
declare function createScrollStateBootScript(options?: ScrollStateOptions): string;
|
|
11
|
+
export { DEFAULT_SCROLL_THRESHOLD, SCROLL_STATE_ATTRIBUTE, SCROLL_STATE_SELECTOR, applyScrollState, bindScrollState, createScrollStateBootScript, readScrollState, };
|
|
12
|
+
export type { ScrollStateOptions };
|
|
13
|
+
//# sourceMappingURL=scroll.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scroll.d.ts","sourceRoot":"","sources":["../../../src/layout/scroll.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,sBAAsB,kBAA+B,CAAC;AAC5D,QAAA,MAAM,qBAAqB,QAA2C,CAAC;AACvE,QAAA,MAAM,wBAAwB,KAAK,CAAC;AAEpC,KAAK,kBAAkB,GAAG;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAOF,iBAAS,eAAe,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAGlE;AAED,iBAAS,gBAAgB,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAMnE;AAOD,iBAAS,eAAe,CAAC,OAAO,GAAE,kBAAuB,GAAG,MAAM,IAAI,CAYrE;AAED,iBAAS,2BAA2B,CAAC,OAAO,GAAE,kBAAuB,GAAG,MAAM,CAW7E;AAED,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,2BAA2B,EAC3B,eAAe,GAChB,CAAC;AACF,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { frontendDataAttr, frontendDataSelector } from "../namespace/index.js";
|
|
2
|
+
const SCROLL_STATE_ATTRIBUTE = frontendDataAttr("scrolled");
|
|
3
|
+
const SCROLL_STATE_SELECTOR = frontendDataSelector("scrolled", "true");
|
|
4
|
+
const DEFAULT_SCROLL_THRESHOLD = 24;
|
|
5
|
+
function scrollStateThreshold(options = {}) {
|
|
6
|
+
const value = Number(options.threshold);
|
|
7
|
+
return Number.isFinite(value) && value >= 0 ? value : DEFAULT_SCROLL_THRESHOLD;
|
|
8
|
+
}
|
|
9
|
+
function readScrollState(options = {}) {
|
|
10
|
+
if (typeof window === "undefined")
|
|
11
|
+
return false;
|
|
12
|
+
return (window.scrollY || window.pageYOffset || 0) > scrollStateThreshold(options);
|
|
13
|
+
}
|
|
14
|
+
function applyScrollState(options = {}) {
|
|
15
|
+
const scrolled = readScrollState(options);
|
|
16
|
+
if (typeof document !== "undefined") {
|
|
17
|
+
document.documentElement.setAttribute(SCROLL_STATE_ATTRIBUTE, scrolled ? "true" : "false");
|
|
18
|
+
}
|
|
19
|
+
return scrolled;
|
|
20
|
+
}
|
|
21
|
+
function scrollStateBound() {
|
|
22
|
+
if (typeof document === "undefined")
|
|
23
|
+
return false;
|
|
24
|
+
return document.documentElement.hasAttribute(SCROLL_STATE_ATTRIBUTE);
|
|
25
|
+
}
|
|
26
|
+
function bindScrollState(options = {}) {
|
|
27
|
+
if (typeof window === "undefined" || scrollStateBound())
|
|
28
|
+
return () => undefined;
|
|
29
|
+
const update = () => {
|
|
30
|
+
applyScrollState(options);
|
|
31
|
+
};
|
|
32
|
+
update();
|
|
33
|
+
window.addEventListener("scroll", update, { passive: true });
|
|
34
|
+
window.addEventListener("resize", update, { passive: true });
|
|
35
|
+
return () => {
|
|
36
|
+
window.removeEventListener("scroll", update);
|
|
37
|
+
window.removeEventListener("resize", update);
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
function createScrollStateBootScript(options = {}) {
|
|
41
|
+
return [
|
|
42
|
+
"(function(){try{",
|
|
43
|
+
`var A=${JSON.stringify(SCROLL_STATE_ATTRIBUTE)},T=${scrollStateThreshold(options)};`,
|
|
44
|
+
"var h=document.documentElement;",
|
|
45
|
+
"var u=function(){h.setAttribute(A,(window.scrollY||window.pageYOffset||0)>T?'true':'false')};",
|
|
46
|
+
"u();",
|
|
47
|
+
"window.addEventListener('scroll',u,{passive:true});",
|
|
48
|
+
"window.addEventListener('resize',u,{passive:true});",
|
|
49
|
+
"}catch(e){}})();",
|
|
50
|
+
].join("");
|
|
51
|
+
}
|
|
52
|
+
export { DEFAULT_SCROLL_THRESHOLD, SCROLL_STATE_ATTRIBUTE, SCROLL_STATE_SELECTOR, applyScrollState, bindScrollState, createScrollStateBootScript, readScrollState, };
|
|
53
|
+
//# sourceMappingURL=scroll.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../../src/layout/scroll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAEvE,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;AAC5D,MAAM,qBAAqB,GAAG,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACvE,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAMpC,SAAS,oBAAoB,CAAC,UAA8B,EAAE;IAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,wBAAwB,CAAC;AACjF,CAAC;AAED,SAAS,eAAe,CAAC,UAA8B,EAAE;IACvD,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IAChD,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACrF,CAAC;AAED,SAAS,gBAAgB,CAAC,UAA8B,EAAE;IACxD,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;QACpC,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,gBAAgB;IACvB,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IAClD,OAAO,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,eAAe,CAAC,UAA8B,EAAE;IACvD,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,gBAAgB,EAAE;QAAE,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC;IAChF,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC,CAAC;IACF,MAAM,EAAE,CAAC;IACT,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,OAAO,GAAG,EAAE;QACV,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC7C,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAAC,UAA8B,EAAE;IACnE,OAAO;QACL,kBAAkB;QAClB,SAAS,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,MAAM,oBAAoB,CAAC,OAAO,CAAC,GAAG;QACrF,iCAAiC;QACjC,+FAA+F;QAC/F,MAAM;QACN,qDAAqD;QACrD,qDAAqD;QACrD,kBAAkB;KACnB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACb,CAAC;AAED,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,2BAA2B,EAC3B,eAAe,GAChB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type BindRoot } from "../../dom/index.d.ts";
|
|
2
|
+
import { type ScrollStateOptions } from "./scroll.js";
|
|
2
3
|
import { type HeaderRuntimeOptions } from "./header.js";
|
|
3
4
|
declare const LAYOUT_ROOT_SELECTOR: string;
|
|
4
5
|
declare const LAYOUT_MAIN_SELECTOR: string;
|
|
@@ -20,6 +21,7 @@ type LayoutBodyState = {
|
|
|
20
21
|
type LayoutRuntimeOptions = {
|
|
21
22
|
header?: HeaderRuntimeOptions;
|
|
22
23
|
mobile?: boolean;
|
|
24
|
+
scroll?: ScrollStateOptions;
|
|
23
25
|
};
|
|
24
26
|
declare function readLayoutBodyState(root?: ParentNode): LayoutBodyState;
|
|
25
27
|
declare function applyLayoutBodyState(state: LayoutBodyState, options?: LayoutRuntimeOptions): LayoutBodyState;
|
|
@@ -31,6 +33,7 @@ declare function ensureLayoutPortalRoot(): HTMLElement;
|
|
|
31
33
|
declare function createLayoutBootScript(state?: Partial<LayoutBodyState>): string;
|
|
32
34
|
export { LAYOUT_BODY_ATTRIBUTE, LAYOUT_CONTENT_SELECTOR, LAYOUT_MAIN_SELECTOR, LAYOUT_MOBILE_BODY_ATTRIBUTE, LAYOUT_PORTAL_ROOT_ID, LAYOUT_PORTAL_ROOT_SELECTOR, LAYOUT_ROOT_SELECTOR, SITE_HEADER_ROOT_ATTRIBUTE, SITE_HEADER_ROOT_SELECTOR, applyLayoutBodyState, bindLayoutRoot, bindLayouts, createLayoutBootScript, ensureLayoutPortalRoot, readLayoutBodyState, siteHeaderRootHtml, syncLayoutBodyState, };
|
|
33
35
|
export * from "./breadcrumb.js";
|
|
36
|
+
export * from "./scroll.js";
|
|
34
37
|
export * from "./header.js";
|
|
35
38
|
export * from "./state.js";
|
|
36
39
|
export type { LayoutBodyState, LayoutRuntimeOptions, LayoutSide };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,aAAa,CAAC;AAGrB,QAAA,MAAM,oBAAoB,QAAsC,CAAC;AACjE,QAAA,MAAM,oBAAoB,QAAsC,CAAC;AACjE,QAAA,MAAM,uBAAuB,QAAyC,CAAC;AACvE,QAAA,MAAM,qBAAqB,2BAA0C,CAAC;AACtE,QAAA,MAAM,2BAA2B,QAA6C,CAAC;AAC/E,QAAA,MAAM,qBAAqB,kBAA6B,CAAC;AACzD,QAAA,MAAM,4BAA4B,kBAAoC,CAAC;AACvE,QAAA,MAAM,0BAA0B,kBAAuC,CAAC;AACxE,QAAA,MAAM,yBAAyB,QAA2C,CAAC;AAE3E,KAAK,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnC,KAAK,eAAe,GAAG;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAAmB,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,aAAa,CAAC;AAGrB,QAAA,MAAM,oBAAoB,QAAsC,CAAC;AACjE,QAAA,MAAM,oBAAoB,QAAsC,CAAC;AACjE,QAAA,MAAM,uBAAuB,QAAyC,CAAC;AACvE,QAAA,MAAM,qBAAqB,2BAA0C,CAAC;AACtE,QAAA,MAAM,2BAA2B,QAA6C,CAAC;AAC/E,QAAA,MAAM,qBAAqB,kBAA6B,CAAC;AACzD,QAAA,MAAM,4BAA4B,kBAAoC,CAAC;AACvE,QAAA,MAAM,0BAA0B,kBAAuC,CAAC;AACxE,QAAA,MAAM,yBAAyB,QAA2C,CAAC;AAE3E,KAAK,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnC,KAAK,eAAe,GAAG;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B,CAAC;AAUF,iBAAS,mBAAmB,CAAC,IAAI,GAAE,UAAqB,GAAG,eAAe,CAQzE;AAED,iBAAS,oBAAoB,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,GAAE,oBAAyB,mBAgBvF;AAED,iBAAS,mBAAmB,CAAC,IAAI,GAAE,UAAqB,EAAE,OAAO,GAAE,oBAAyB,mBAE3F;AAED,iBAAS,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,EAAE,OAAO,GAAE,oBAAyB,eAKnF;AAED,iBAAS,WAAW,CAAC,IAAI,GAAE,QAAmB,EAAE,OAAO,GAAE,oBAAyB,QASjF;AAED,iBAAS,kBAAkB,CAAC,UAAU,EAAE,MAAM,UAE7C;AAED,iBAAS,sBAAsB,gBAS9B;AAED,iBAAS,sBAAsB,CAAC,KAAK,GAAE,OAAO,CAAC,eAAe,CAAM,UAqBnE;AAED,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,4BAA4B,EAC5B,qBAAqB,EACrB,2BAA2B,EAC3B,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,EACzB,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GACpB,CAAC;AACF,cAAa,iBAAiB,CAAC;AAC/B,cAAa,aAAa,CAAC;AAC3B,cAAa,aAAa,CAAC;AAC3B,cAAa,YAAY,CAAC;AAC1B,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC"}
|
package/dist/src/layout/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { queryAll } from "../../dom/index.js";
|
|
2
2
|
import { bindBreadcrumbs } from "./breadcrumb.js";
|
|
3
|
+
import { bindScrollState } from "./scroll.js";
|
|
3
4
|
import { HEADER_PRIMARY_SELECTOR, HEADER_SECONDARY_SELECTOR, bindHeaders, } from "./header.js";
|
|
4
5
|
import { FRONTEND_PREFIX, frontendDataAttr, frontendDataSelector } from "../../namespace/index.js";
|
|
5
6
|
const LAYOUT_ROOT_SELECTOR = frontendDataSelector("layout-root");
|
|
@@ -54,8 +55,10 @@ function bindLayouts(root = document, options = {}) {
|
|
|
54
55
|
});
|
|
55
56
|
bindHeaders(root, options.header || {});
|
|
56
57
|
bindBreadcrumbs(root);
|
|
57
|
-
if (root
|
|
58
|
-
|
|
58
|
+
if (root !== document)
|
|
59
|
+
return;
|
|
60
|
+
bindScrollState(options.scroll);
|
|
61
|
+
syncLayoutBodyState(document, options);
|
|
59
62
|
}
|
|
60
63
|
function siteHeaderRootHtml(headerHtml) {
|
|
61
64
|
return `<div ${SITE_HEADER_ROOT_ATTRIBUTE}="">${headerHtml}</div>`;
|
|
@@ -96,6 +99,7 @@ function createLayoutBootScript(state = {}) {
|
|
|
96
99
|
}
|
|
97
100
|
export { LAYOUT_BODY_ATTRIBUTE, LAYOUT_CONTENT_SELECTOR, LAYOUT_MAIN_SELECTOR, LAYOUT_MOBILE_BODY_ATTRIBUTE, LAYOUT_PORTAL_ROOT_ID, LAYOUT_PORTAL_ROOT_SELECTOR, LAYOUT_ROOT_SELECTOR, SITE_HEADER_ROOT_ATTRIBUTE, SITE_HEADER_ROOT_SELECTOR, applyLayoutBodyState, bindLayoutRoot, bindLayouts, createLayoutBootScript, ensureLayoutPortalRoot, readLayoutBodyState, siteHeaderRootHtml, syncLayoutBodyState, };
|
|
98
101
|
export * from "./breadcrumb.js";
|
|
102
|
+
export * from "./scroll.js";
|
|
99
103
|
export * from "./header.js";
|
|
100
104
|
export * from "./state.js";
|
|
101
105
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAiB,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,WAAW,GAEZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAExF,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;AACjE,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;AACjE,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;AACvE,MAAM,qBAAqB,GAAG,GAAG,eAAe,qBAAqB,CAAC;AACtE,MAAM,2BAA2B,GAAG,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;AAC/E,MAAM,qBAAqB,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACzD,MAAM,4BAA4B,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;AACvE,MAAM,0BAA0B,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;AACxE,MAAM,yBAAyB,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/layout/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
declare const SCROLL_STATE_ATTRIBUTE: `data-${string}`;
|
|
2
|
+
declare const SCROLL_STATE_SELECTOR: string;
|
|
3
|
+
declare const DEFAULT_SCROLL_THRESHOLD = 24;
|
|
4
|
+
type ScrollStateOptions = {
|
|
5
|
+
threshold?: number;
|
|
6
|
+
};
|
|
7
|
+
declare function readScrollState(options?: ScrollStateOptions): boolean;
|
|
8
|
+
declare function applyScrollState(options?: ScrollStateOptions): boolean;
|
|
9
|
+
declare function bindScrollState(options?: ScrollStateOptions): () => void;
|
|
10
|
+
declare function createScrollStateBootScript(options?: ScrollStateOptions): string;
|
|
11
|
+
export { DEFAULT_SCROLL_THRESHOLD, SCROLL_STATE_ATTRIBUTE, SCROLL_STATE_SELECTOR, applyScrollState, bindScrollState, createScrollStateBootScript, readScrollState, };
|
|
12
|
+
export type { ScrollStateOptions };
|
|
13
|
+
//# sourceMappingURL=scroll.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scroll.d.ts","sourceRoot":"","sources":["../../../src/layout/scroll.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,sBAAsB,kBAA+B,CAAC;AAC5D,QAAA,MAAM,qBAAqB,QAA2C,CAAC;AACvE,QAAA,MAAM,wBAAwB,KAAK,CAAC;AAEpC,KAAK,kBAAkB,GAAG;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAOF,iBAAS,eAAe,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAGlE;AAED,iBAAS,gBAAgB,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAMnE;AAOD,iBAAS,eAAe,CAAC,OAAO,GAAE,kBAAuB,GAAG,MAAM,IAAI,CAYrE;AAED,iBAAS,2BAA2B,CAAC,OAAO,GAAE,kBAAuB,GAAG,MAAM,CAW7E;AAED,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,2BAA2B,EAC3B,eAAe,GAChB,CAAC;AACF,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { frontendDataAttr, frontendDataSelector } from "../../namespace/index.js";
|
|
2
|
+
const SCROLL_STATE_ATTRIBUTE = frontendDataAttr("scrolled");
|
|
3
|
+
const SCROLL_STATE_SELECTOR = frontendDataSelector("scrolled", "true");
|
|
4
|
+
const DEFAULT_SCROLL_THRESHOLD = 24;
|
|
5
|
+
function scrollStateThreshold(options = {}) {
|
|
6
|
+
const value = Number(options.threshold);
|
|
7
|
+
return Number.isFinite(value) && value >= 0 ? value : DEFAULT_SCROLL_THRESHOLD;
|
|
8
|
+
}
|
|
9
|
+
function readScrollState(options = {}) {
|
|
10
|
+
if (typeof window === "undefined")
|
|
11
|
+
return false;
|
|
12
|
+
return (window.scrollY || window.pageYOffset || 0) > scrollStateThreshold(options);
|
|
13
|
+
}
|
|
14
|
+
function applyScrollState(options = {}) {
|
|
15
|
+
const scrolled = readScrollState(options);
|
|
16
|
+
if (typeof document !== "undefined") {
|
|
17
|
+
document.documentElement.setAttribute(SCROLL_STATE_ATTRIBUTE, scrolled ? "true" : "false");
|
|
18
|
+
}
|
|
19
|
+
return scrolled;
|
|
20
|
+
}
|
|
21
|
+
function scrollStateBound() {
|
|
22
|
+
if (typeof document === "undefined")
|
|
23
|
+
return false;
|
|
24
|
+
return document.documentElement.hasAttribute(SCROLL_STATE_ATTRIBUTE);
|
|
25
|
+
}
|
|
26
|
+
function bindScrollState(options = {}) {
|
|
27
|
+
if (typeof window === "undefined" || scrollStateBound())
|
|
28
|
+
return () => undefined;
|
|
29
|
+
const update = () => {
|
|
30
|
+
applyScrollState(options);
|
|
31
|
+
};
|
|
32
|
+
update();
|
|
33
|
+
window.addEventListener("scroll", update, { passive: true });
|
|
34
|
+
window.addEventListener("resize", update, { passive: true });
|
|
35
|
+
return () => {
|
|
36
|
+
window.removeEventListener("scroll", update);
|
|
37
|
+
window.removeEventListener("resize", update);
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
function createScrollStateBootScript(options = {}) {
|
|
41
|
+
return [
|
|
42
|
+
"(function(){try{",
|
|
43
|
+
`var A=${JSON.stringify(SCROLL_STATE_ATTRIBUTE)},T=${scrollStateThreshold(options)};`,
|
|
44
|
+
"var h=document.documentElement;",
|
|
45
|
+
"var u=function(){h.setAttribute(A,(window.scrollY||window.pageYOffset||0)>T?'true':'false')};",
|
|
46
|
+
"u();",
|
|
47
|
+
"window.addEventListener('scroll',u,{passive:true});",
|
|
48
|
+
"window.addEventListener('resize',u,{passive:true});",
|
|
49
|
+
"}catch(e){}})();",
|
|
50
|
+
].join("");
|
|
51
|
+
}
|
|
52
|
+
export { DEFAULT_SCROLL_THRESHOLD, SCROLL_STATE_ATTRIBUTE, SCROLL_STATE_SELECTOR, applyScrollState, bindScrollState, createScrollStateBootScript, readScrollState, };
|
|
53
|
+
//# sourceMappingURL=scroll.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../../src/layout/scroll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAEvE,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;AAC5D,MAAM,qBAAqB,GAAG,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACvE,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAMpC,SAAS,oBAAoB,CAAC,UAA8B,EAAE;IAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,wBAAwB,CAAC;AACjF,CAAC;AAED,SAAS,eAAe,CAAC,UAA8B,EAAE;IACvD,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IAChD,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACrF,CAAC;AAED,SAAS,gBAAgB,CAAC,UAA8B,EAAE;IACxD,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;QACpC,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,gBAAgB;IACvB,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IAClD,OAAO,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,eAAe,CAAC,UAA8B,EAAE;IACvD,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,gBAAgB,EAAE;QAAE,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC;IAChF,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC,CAAC;IACF,MAAM,EAAE,CAAC;IACT,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,OAAO,GAAG,EAAE;QACV,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC7C,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAAC,UAA8B,EAAE;IACnE,OAAO;QACL,kBAAkB;QAClB,SAAS,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,MAAM,oBAAoB,CAAC,OAAO,CAAC,GAAG;QACrF,iCAAiC;QACjC,+FAA+F;QAC/F,MAAM;QACN,qDAAqD;QACrD,qDAAqD;QACrD,kBAAkB;KACnB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACb,CAAC;AAED,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,2BAA2B,EAC3B,eAAe,GAChB,CAAC"}
|
package/package.json
CHANGED