aptechka 0.97.0 → 0.97.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.
@@ -6,8 +6,8 @@ export interface HistoryManagerState {
6
6
  export interface HistoryManagerChangeParameters {
7
7
  action: HistoryManagerChangeAction;
8
8
  pathname: string;
9
- searchParameters?: string | undefined;
10
- hash?: string | undefined;
9
+ searchParameters?: string;
10
+ hash?: string;
11
11
  data?: Record<string, unknown>;
12
12
  }
13
13
  export type HistoryManagerChangeAction = 'replace' | 'push' | 'none';
@@ -31,8 +31,11 @@ declare class HistoryManager {
31
31
  back(): void;
32
32
  forward(): void;
33
33
  go(delta: number): void;
34
+ syncWithBrowser(): void;
35
+ clearHistory(): void;
34
36
  __change(parameters: HistoryManagerChangeParameters): void;
35
37
  debugHistory(): void;
38
+ setMaxHistorySize(size: number): void;
36
39
  }
37
40
  export declare const historyManager: HistoryManager;
38
41
  export {};
@@ -1 +1 @@
1
- "use strict";var __defProp=Object.defineProperty,__defProps=Object.defineProperties;var __getOwnPropDescs=Object.getOwnPropertyDescriptors;var __getOwnPropSymbols=Object.getOwnPropertySymbols;var __hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable;var __typeError=msg=>{throw TypeError(msg)};var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value,__spreadValues=(a,b)=>{for(var prop in b||(b={}))__hasOwnProp.call(b,prop)&&__defNormalProp(a,prop,b[prop]);if(__getOwnPropSymbols)for(var prop of __getOwnPropSymbols(b))__propIsEnum.call(b,prop)&&__defNormalProp(a,prop,b[prop]);return a},__spreadProps=(a,b)=>__defProps(a,__getOwnPropDescs(b)),__name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __accessCheck=(obj,member,msg)=>member.has(obj)||__typeError("Cannot "+msg);var __privateGet=(obj,member,getter)=>(__accessCheck(obj,member,"read from private field"),getter?getter.call(obj):member.get(obj)),__privateAdd=(obj,member,value)=>member.has(obj)?__typeError("Cannot add the same private member more than once"):member instanceof WeakSet?member.add(obj):member.set(obj,value),__privateSet=(obj,member,value,setter)=>(__accessCheck(obj,member,"write to private field"),setter?setter.call(obj,value):member.set(obj,value),value),__privateMethod=(obj,member,method)=>(__accessCheck(obj,member,"access private method"),method);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var _previousStates,_popStateHandlers,_HistoryManager_instances,setupTracking_fn,overrideHistoryMethods_fn,updateHistory_fn,handlePopState_fn,getPathname_fn;const _HistoryManager=class _HistoryManager{constructor(){__privateAdd(this,_HistoryManager_instances);__privateAdd(this,_previousStates);__privateAdd(this,_popStateHandlers);history.scrollRestoration="manual",__privateSet(this,_previousStates,[history.state]),__privateSet(this,_popStateHandlers,[]),__privateMethod(this,_HistoryManager_instances,setupTracking_fn).call(this)}get size(){return __privateGet(this,_previousStates).length}getPreviousState(){return __privateGet(this,_previousStates).length>1?__privateGet(this,_previousStates)[__privateGet(this,_previousStates).length-2]:null}getCurrentState(){return __privateGet(this,_previousStates).length>0?__privateGet(this,_previousStates)[__privateGet(this,_previousStates).length-1]:null}addPopStateHandler(handler,unshift){unshift?__privateGet(this,_popStateHandlers).unshift(handler):__privateGet(this,_popStateHandlers).push(handler)}removePopStateHandler(handler){const index=__privateGet(this,_popStateHandlers).indexOf(handler);index>-1&&__privateGet(this,_popStateHandlers).splice(index,1)}updateCurrentStateData(data){let state=this.getCurrentState();state&&(state.data=__spreadValues(__spreadValues({},state.data),data))}updatePreviousStateData(data){let state=this.getPreviousState();state&&(state.data=__spreadValues(__spreadValues({},state.data),data))}pushState(page,data){const state={page:__privateMethod(this,_HistoryManager_instances,getPathname_fn).call(this,page),data,timestamp:Date.now()};history.pushState(state,"",page)}replaceState(page,data){const state={page:__privateMethod(this,_HistoryManager_instances,getPathname_fn).call(this,page),data,timestamp:Date.now()};history.replaceState(state,"",page)}back(){history.back()}forward(){history.forward()}go(delta){history.go(delta)}__change(parameters){if(parameters.action==="none")return;const por=parameters==null?void 0:parameters.searchParameters,hash=parameters.hash?parameters.hash.startsWith("#")?parameters.hash:"#"+parameters.hash:"",searhParameters=por?por.startsWith("?")?por:"?"+por:"",pathPlus=`${parameters.pathname}${searhParameters}${hash}`;parameters.action==="push"?this.pushState(pathPlus,parameters.data):parameters.action==="replace"&&this.replaceState(pathPlus,parameters.data)}debugHistory(){console.log("Current history state:"),__privateGet(this,_previousStates).forEach((state,index)=>{console.log(`[${index}]:`,state==null?void 0:state.page)})}};_previousStates=new WeakMap,_popStateHandlers=new WeakMap,_HistoryManager_instances=new WeakSet,setupTracking_fn=__name(function(){window.addEventListener("popstate",__privateMethod(this,_HistoryManager_instances,handlePopState_fn).bind(this)),__privateMethod(this,_HistoryManager_instances,overrideHistoryMethods_fn).call(this)},"#setupTracking"),overrideHistoryMethods_fn=__name(function(){const originalPushState=history.pushState,originalReplaceState=history.replaceState;history.pushState=(state,title,url)=>(__privateMethod(this,_HistoryManager_instances,updateHistory_fn).call(this,state),originalPushState.call(history,state,title,url)),history.replaceState=(state,title,url)=>(__privateMethod(this,_HistoryManager_instances,updateHistory_fn).call(this,state,!0),originalReplaceState.call(history,state,title,url))},"#overrideHistoryMethods"),updateHistory_fn=__name(function(state,isReplace=!1){isReplace&&__privateGet(this,_previousStates).length>0?__privateGet(this,_previousStates)[__privateGet(this,_previousStates).length-1]=state:(__privateGet(this,_previousStates).push(state),__privateGet(this,_previousStates).length>50&&__privateGet(this,_previousStates).shift())},"#updateHistory"),handlePopState_fn=__name(function(event){const targetState=this.getPreviousState(),previousState=this.getCurrentState();targetState&&(__privateGet(this,_previousStates)[__privateGet(this,_previousStates).length-2]=previousState,__privateGet(this,_previousStates)[__privateGet(this,_previousStates).length-1]=targetState),__privateGet(this,_popStateHandlers).forEach(handler=>{handler(__spreadProps(__spreadValues({},event),{state:targetState,previousState}))})},"#handlePopState"),getPathname_fn=__name(function(url){return typeof url=="string"?url:url.pathname},"#getPathname"),__name(_HistoryManager,"HistoryManager");let HistoryManager=_HistoryManager;const historyManager=new HistoryManager;exports.historyManager=historyManager;
1
+ "use strict";var __defProp=Object.defineProperty,__defProps=Object.defineProperties;var __getOwnPropDescs=Object.getOwnPropertyDescriptors;var __getOwnPropSymbols=Object.getOwnPropertySymbols;var __hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable;var __typeError=msg=>{throw TypeError(msg)};var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value,__spreadValues=(a,b)=>{for(var prop in b||(b={}))__hasOwnProp.call(b,prop)&&__defNormalProp(a,prop,b[prop]);if(__getOwnPropSymbols)for(var prop of __getOwnPropSymbols(b))__propIsEnum.call(b,prop)&&__defNormalProp(a,prop,b[prop]);return a},__spreadProps=(a,b)=>__defProps(a,__getOwnPropDescs(b)),__name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __accessCheck=(obj,member,msg)=>member.has(obj)||__typeError("Cannot "+msg);var __privateGet=(obj,member,getter)=>(__accessCheck(obj,member,"read from private field"),getter?getter.call(obj):member.get(obj)),__privateAdd=(obj,member,value)=>member.has(obj)?__typeError("Cannot add the same private member more than once"):member instanceof WeakSet?member.add(obj):member.set(obj,value),__privateSet=(obj,member,value,setter)=>(__accessCheck(obj,member,"write to private field"),setter?setter.call(obj,value):member.set(obj,value),value),__privateMethod=(obj,member,method)=>(__accessCheck(obj,member,"access private method"),method);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var _previousStates,_popStateHandlers,_maxHistorySize,_HistoryManager_instances,setupTracking_fn,overrideHistoryMethods_fn,updateHistory_fn,handlePopState_fn,getPathname_fn;const _HistoryManager=class _HistoryManager{constructor(){__privateAdd(this,_HistoryManager_instances);__privateAdd(this,_previousStates);__privateAdd(this,_popStateHandlers);__privateAdd(this,_maxHistorySize,50);history.scrollRestoration="manual";const initialState=history.state;if(initialState!=null&&initialState.page)__privateSet(this,_previousStates,[initialState]);else{const defaultState={page:window.location.pathname+window.location.search+window.location.hash,timestamp:Date.now()};__privateSet(this,_previousStates,[defaultState]),history.replaceState(defaultState,"",defaultState.page)}__privateSet(this,_popStateHandlers,[]),__privateMethod(this,_HistoryManager_instances,setupTracking_fn).call(this)}get size(){return __privateGet(this,_previousStates).length}getPreviousState(){return __privateGet(this,_previousStates).length>1?__privateGet(this,_previousStates)[__privateGet(this,_previousStates).length-2]:null}getCurrentState(){return __privateGet(this,_previousStates).length>0?__privateGet(this,_previousStates)[__privateGet(this,_previousStates).length-1]:null}addPopStateHandler(handler,unshift){unshift?__privateGet(this,_popStateHandlers).unshift(handler):__privateGet(this,_popStateHandlers).push(handler)}removePopStateHandler(handler){const index=__privateGet(this,_popStateHandlers).indexOf(handler);index>-1&&__privateGet(this,_popStateHandlers).splice(index,1)}updateCurrentStateData(data){const state=this.getCurrentState();if(state){const newState=__spreadProps(__spreadValues({},state),{data:__spreadValues(__spreadValues({},state.data),data)});__privateGet(this,_previousStates)[__privateGet(this,_previousStates).length-1]=newState,history.replaceState(newState,"",state.page)}}updatePreviousStateData(data){const state=this.getPreviousState();if(state){const newState=__spreadProps(__spreadValues({},state),{data:__spreadValues(__spreadValues({},state.data),data)});__privateGet(this,_previousStates)[__privateGet(this,_previousStates).length-2]=newState}}pushState(page,data){const pageString=page.toString(),state={page:__privateMethod(this,_HistoryManager_instances,getPathname_fn).call(this,page),data,timestamp:Date.now()};history.pushState(state,"",pageString)}replaceState(page,data){const pageString=page.toString(),state={page:__privateMethod(this,_HistoryManager_instances,getPathname_fn).call(this,page),data,timestamp:Date.now()};history.replaceState(state,"",pageString)}back(){history.back()}forward(){history.forward()}go(delta){history.go(delta)}syncWithBrowser(){const browserState=history.state;if(browserState!=null&&browserState.page){const currentState=this.getCurrentState();(currentState==null?void 0:currentState.page)!==browserState.page&&__privateGet(this,_previousStates).push(browserState)}}clearHistory(){const currentState=this.getCurrentState();currentState&&__privateSet(this,_previousStates,[currentState])}__change(parameters){if(parameters.action==="none")return;const searchParams=parameters.searchParameters||"",hash=parameters.hash?parameters.hash.startsWith("#")?parameters.hash:"#"+parameters.hash:"",searchString=searchParams?searchParams.startsWith("?")?searchParams:"?"+searchParams:"",pathPlus=`${parameters.pathname}${searchString}${hash}`;parameters.action==="push"?this.pushState(pathPlus,parameters.data):parameters.action==="replace"&&this.replaceState(pathPlus,parameters.data)}debugHistory(){console.log("=== HistoryManager Debug ==="),console.log("Current browser state:",history.state),console.log("Internal states stack:"),__privateGet(this,_previousStates).forEach((state,index)=>{const isCurrent=index===__privateGet(this,_previousStates).length-1;console.log(`[${index}]${isCurrent?" (current)":""}:`,state==null?void 0:state.page,state!=null&&state.timestamp?new Date(state.timestamp).toLocaleTimeString():"",state!=null&&state.data?"(has data)":"")}),console.log("============================")}setMaxHistorySize(size){if(size>0)for(__privateSet(this,_maxHistorySize,size);__privateGet(this,_previousStates).length>size;)__privateGet(this,_previousStates).shift()}};_previousStates=new WeakMap,_popStateHandlers=new WeakMap,_maxHistorySize=new WeakMap,_HistoryManager_instances=new WeakSet,setupTracking_fn=__name(function(){window.addEventListener("popstate",__privateMethod(this,_HistoryManager_instances,handlePopState_fn).bind(this)),__privateMethod(this,_HistoryManager_instances,overrideHistoryMethods_fn).call(this)},"#setupTracking"),overrideHistoryMethods_fn=__name(function(){const originalPushState=history.pushState,originalReplaceState=history.replaceState;history.pushState=(state,title,url)=>(state&&"page"in state&&__privateMethod(this,_HistoryManager_instances,updateHistory_fn).call(this,state,!1),originalPushState.call(history,state,title,url)),history.replaceState=(state,title,url)=>(state&&"page"in state&&__privateMethod(this,_HistoryManager_instances,updateHistory_fn).call(this,state,!0),originalReplaceState.call(history,state,title,url))},"#overrideHistoryMethods"),updateHistory_fn=__name(function(state,isReplace=!1){isReplace&&__privateGet(this,_previousStates).length>0?__privateGet(this,_previousStates)[__privateGet(this,_previousStates).length-1]=state:(__privateGet(this,_previousStates).push(state),__privateGet(this,_previousStates).length>__privateGet(this,_maxHistorySize)&&__privateGet(this,_previousStates).shift())},"#updateHistory"),handlePopState_fn=__name(function(event){const previousState=this.getCurrentState(),currentState=event.state;currentState&&currentState.page&&(__privateGet(this,_previousStates).push(currentState),__privateGet(this,_previousStates).length>__privateGet(this,_maxHistorySize)&&__privateGet(this,_previousStates).shift()),__privateGet(this,_popStateHandlers).forEach(handler=>{handler(__spreadProps(__spreadValues({},event),{state:currentState,previousState}))})},"#handlePopState"),getPathname_fn=__name(function(url){return typeof url=="string"?url:url.pathname+url.search+url.hash},"#getPathname"),__name(_HistoryManager,"HistoryManager");let HistoryManager=_HistoryManager;const historyManager=new HistoryManager;exports.historyManager=historyManager;
@@ -15,13 +15,25 @@ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { en
15
15
  }, __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)), __name = (target, value) => __defProp(target, "name", { value, configurable: !0 });
16
16
  var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
17
17
  var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj)), __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value), __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value), __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
18
- var _previousStates, _popStateHandlers, _HistoryManager_instances, setupTracking_fn, overrideHistoryMethods_fn, updateHistory_fn, handlePopState_fn, getPathname_fn;
18
+ var _previousStates, _popStateHandlers, _maxHistorySize, _HistoryManager_instances, setupTracking_fn, overrideHistoryMethods_fn, updateHistory_fn, handlePopState_fn, getPathname_fn;
19
19
  const _HistoryManager = class _HistoryManager {
20
20
  constructor() {
21
21
  __privateAdd(this, _HistoryManager_instances);
22
22
  __privateAdd(this, _previousStates);
23
23
  __privateAdd(this, _popStateHandlers);
24
- history.scrollRestoration = "manual", __privateSet(this, _previousStates, [history.state]), __privateSet(this, _popStateHandlers, []), __privateMethod(this, _HistoryManager_instances, setupTracking_fn).call(this);
24
+ __privateAdd(this, _maxHistorySize, 50);
25
+ history.scrollRestoration = "manual";
26
+ const initialState = history.state;
27
+ if (initialState != null && initialState.page)
28
+ __privateSet(this, _previousStates, [initialState]);
29
+ else {
30
+ const defaultState = {
31
+ page: window.location.pathname + window.location.search + window.location.hash,
32
+ timestamp: Date.now()
33
+ };
34
+ __privateSet(this, _previousStates, [defaultState]), history.replaceState(defaultState, "", defaultState.page);
35
+ }
36
+ __privateSet(this, _popStateHandlers, []), __privateMethod(this, _HistoryManager_instances, setupTracking_fn).call(this);
25
37
  }
26
38
  get size() {
27
39
  return __privateGet(this, _previousStates).length;
@@ -40,28 +52,38 @@ const _HistoryManager = class _HistoryManager {
40
52
  index > -1 && __privateGet(this, _popStateHandlers).splice(index, 1);
41
53
  }
42
54
  updateCurrentStateData(data) {
43
- let state = this.getCurrentState();
44
- state && (state.data = __spreadValues(__spreadValues({}, state.data), data));
55
+ const state = this.getCurrentState();
56
+ if (state) {
57
+ const newState = __spreadProps(__spreadValues({}, state), {
58
+ data: __spreadValues(__spreadValues({}, state.data), data)
59
+ });
60
+ __privateGet(this, _previousStates)[__privateGet(this, _previousStates).length - 1] = newState, history.replaceState(newState, "", state.page);
61
+ }
45
62
  }
46
63
  updatePreviousStateData(data) {
47
- let state = this.getPreviousState();
48
- state && (state.data = __spreadValues(__spreadValues({}, state.data), data));
64
+ const state = this.getPreviousState();
65
+ if (state) {
66
+ const newState = __spreadProps(__spreadValues({}, state), {
67
+ data: __spreadValues(__spreadValues({}, state.data), data)
68
+ });
69
+ __privateGet(this, _previousStates)[__privateGet(this, _previousStates).length - 2] = newState;
70
+ }
49
71
  }
50
72
  pushState(page, data) {
51
- const state = {
73
+ const pageString = page.toString(), state = {
52
74
  page: __privateMethod(this, _HistoryManager_instances, getPathname_fn).call(this, page),
53
75
  data,
54
76
  timestamp: Date.now()
55
77
  };
56
- history.pushState(state, "", page);
78
+ history.pushState(state, "", pageString);
57
79
  }
58
80
  replaceState(page, data) {
59
- const state = {
81
+ const pageString = page.toString(), state = {
60
82
  page: __privateMethod(this, _HistoryManager_instances, getPathname_fn).call(this, page),
61
83
  data,
62
84
  timestamp: Date.now()
63
85
  };
64
- history.replaceState(state, "", page);
86
+ history.replaceState(state, "", pageString);
65
87
  }
66
88
  back() {
67
89
  history.back();
@@ -72,36 +94,58 @@ const _HistoryManager = class _HistoryManager {
72
94
  go(delta) {
73
95
  history.go(delta);
74
96
  }
97
+ syncWithBrowser() {
98
+ const browserState = history.state;
99
+ if (browserState != null && browserState.page) {
100
+ const currentState = this.getCurrentState();
101
+ (currentState == null ? void 0 : currentState.page) !== browserState.page && __privateGet(this, _previousStates).push(browserState);
102
+ }
103
+ }
104
+ clearHistory() {
105
+ const currentState = this.getCurrentState();
106
+ currentState && __privateSet(this, _previousStates, [currentState]);
107
+ }
75
108
  // Для Morph. Убрать когда там будут URL
76
109
  __change(parameters) {
77
110
  if (parameters.action === "none")
78
111
  return;
79
- const por = parameters == null ? void 0 : parameters.searchParameters, hash = parameters.hash ? parameters.hash.startsWith("#") ? parameters.hash : "#" + parameters.hash : "", searhParameters = por ? por.startsWith("?") ? por : "?" + por : "", pathPlus = `${parameters.pathname}${searhParameters}${hash}`;
112
+ const searchParams = parameters.searchParameters || "", hash = parameters.hash ? parameters.hash.startsWith("#") ? parameters.hash : "#" + parameters.hash : "", searchString = searchParams ? searchParams.startsWith("?") ? searchParams : "?" + searchParams : "", pathPlus = `${parameters.pathname}${searchString}${hash}`;
80
113
  parameters.action === "push" ? this.pushState(pathPlus, parameters.data) : parameters.action === "replace" && this.replaceState(pathPlus, parameters.data);
81
114
  }
82
115
  debugHistory() {
83
- console.log("Current history state:"), __privateGet(this, _previousStates).forEach((state, index) => {
84
- console.log(`[${index}]:`, state == null ? void 0 : state.page);
85
- });
116
+ console.log("=== HistoryManager Debug ==="), console.log("Current browser state:", history.state), console.log("Internal states stack:"), __privateGet(this, _previousStates).forEach((state, index) => {
117
+ const isCurrent = index === __privateGet(this, _previousStates).length - 1;
118
+ console.log(
119
+ `[${index}]${isCurrent ? " (current)" : ""}:`,
120
+ state == null ? void 0 : state.page,
121
+ state != null && state.timestamp ? new Date(state.timestamp).toLocaleTimeString() : "",
122
+ state != null && state.data ? "(has data)" : ""
123
+ );
124
+ }), console.log("============================");
125
+ }
126
+ setMaxHistorySize(size) {
127
+ if (size > 0)
128
+ for (__privateSet(this, _maxHistorySize, size); __privateGet(this, _previousStates).length > size; )
129
+ __privateGet(this, _previousStates).shift();
86
130
  }
87
131
  };
88
- _previousStates = new WeakMap(), _popStateHandlers = new WeakMap(), _HistoryManager_instances = new WeakSet(), setupTracking_fn = /* @__PURE__ */ __name(function() {
132
+ _previousStates = new WeakMap(), _popStateHandlers = new WeakMap(), _maxHistorySize = new WeakMap(), _HistoryManager_instances = new WeakSet(), setupTracking_fn = /* @__PURE__ */ __name(function() {
89
133
  window.addEventListener("popstate", __privateMethod(this, _HistoryManager_instances, handlePopState_fn).bind(this)), __privateMethod(this, _HistoryManager_instances, overrideHistoryMethods_fn).call(this);
90
134
  }, "#setupTracking"), overrideHistoryMethods_fn = /* @__PURE__ */ __name(function() {
91
135
  const originalPushState = history.pushState, originalReplaceState = history.replaceState;
92
- history.pushState = (state, title, url) => (__privateMethod(this, _HistoryManager_instances, updateHistory_fn).call(this, state), originalPushState.call(history, state, title, url)), history.replaceState = (state, title, url) => (__privateMethod(this, _HistoryManager_instances, updateHistory_fn).call(this, state, !0), originalReplaceState.call(history, state, title, url));
136
+ history.pushState = (state, title, url) => (state && "page" in state && __privateMethod(this, _HistoryManager_instances, updateHistory_fn).call(this, state, !1), originalPushState.call(history, state, title, url)), history.replaceState = (state, title, url) => (state && "page" in state && __privateMethod(this, _HistoryManager_instances, updateHistory_fn).call(this, state, !0), originalReplaceState.call(history, state, title, url));
93
137
  }, "#overrideHistoryMethods"), updateHistory_fn = /* @__PURE__ */ __name(function(state, isReplace = !1) {
94
- isReplace && __privateGet(this, _previousStates).length > 0 ? __privateGet(this, _previousStates)[__privateGet(this, _previousStates).length - 1] = state : (__privateGet(this, _previousStates).push(state), __privateGet(this, _previousStates).length > 50 && __privateGet(this, _previousStates).shift());
138
+ isReplace && __privateGet(this, _previousStates).length > 0 ? __privateGet(this, _previousStates)[__privateGet(this, _previousStates).length - 1] = state : (__privateGet(this, _previousStates).push(state), __privateGet(this, _previousStates).length > __privateGet(this, _maxHistorySize) && __privateGet(this, _previousStates).shift());
95
139
  }, "#updateHistory"), handlePopState_fn = /* @__PURE__ */ __name(function(event) {
96
- const targetState = this.getPreviousState(), previousState = this.getCurrentState();
97
- targetState && (__privateGet(this, _previousStates)[__privateGet(this, _previousStates).length - 2] = previousState, __privateGet(this, _previousStates)[__privateGet(this, _previousStates).length - 1] = targetState), __privateGet(this, _popStateHandlers).forEach((handler) => {
140
+ const previousState = this.getCurrentState(), currentState = event.state;
141
+ currentState && currentState.page && (__privateGet(this, _previousStates).push(currentState), __privateGet(this, _previousStates).length > __privateGet(this, _maxHistorySize) && __privateGet(this, _previousStates).shift()), __privateGet(this, _popStateHandlers).forEach((handler) => {
98
142
  handler(__spreadProps(__spreadValues({}, event), {
99
- state: targetState,
143
+ state: currentState,
100
144
  previousState
101
145
  }));
102
146
  });
103
147
  }, "#handlePopState"), getPathname_fn = /* @__PURE__ */ __name(function(url) {
104
- return typeof url == "string" ? url : url.pathname;
148
+ return typeof url == "string" ? url : url.pathname + url.search + url.hash;
105
149
  }, "#getPathname"), __name(_HistoryManager, "HistoryManager");
106
150
  let HistoryManager = _HistoryManager;
107
151
  const historyManager = new HistoryManager();
package/lib/spa/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var __defProp=Object.defineProperty,__defProps=Object.defineProperties;var __getOwnPropDescs=Object.getOwnPropertyDescriptors;var __getOwnPropSymbols=Object.getOwnPropertySymbols;var __hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable;var __typeError=msg=>{throw TypeError(msg)};var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value,__spreadValues=(a,b)=>{for(var prop in b||(b={}))__hasOwnProp.call(b,prop)&&__defNormalProp(a,prop,b[prop]);if(__getOwnPropSymbols)for(var prop of __getOwnPropSymbols(b))__propIsEnum.call(b,prop)&&__defNormalProp(a,prop,b[prop]);return a},__spreadProps=(a,b)=>__defProps(a,__getOwnPropDescs(b)),__name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __accessCheck=(obj,member,msg)=>member.has(obj)||__typeError("Cannot "+msg);var __privateGet=(obj,member,getter)=>(__accessCheck(obj,member,"read from private field"),getter?getter.call(obj):member.get(obj)),__privateAdd=(obj,member,value)=>member.has(obj)?__typeError("Cannot add the same private member more than once"):member instanceof WeakSet?member.add(obj):member.set(obj,value),__privateSet=(obj,member,value,setter)=>(__accessCheck(obj,member,"write to private field"),setter?setter.call(obj,value):member.set(obj,value),value),__privateMethod=(obj,member,method)=>(__accessCheck(obj,member,"access private method"),method);var __privateWrapper=(obj,member,setter,getter)=>({set _(value){__privateSet(obj,member,value,setter)},get _(){return __privateGet(obj,member,getter)}});var __async=(__this,__arguments,generator)=>new Promise((resolve,reject)=>{var fulfilled=value=>{try{step(generator.next(value))}catch(e){reject(e)}},rejected=value=>{try{step(generator.throw(value))}catch(e){reject(e)}},step=x=>x.done?resolve(x.value):Promise.resolve(x.value).then(fulfilled,rejected);step((generator=generator.apply(__this,__arguments)).next())});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const cache_index=require("../cache/index.cjs"),LocalLinks=require("../LocalLinks-DATKwnwQ.cjs"),PageAnnouncerElement=require("../PageAnnouncerElement-DreveHSN.cjs"),PageScroll=require("../PageScroll-xuHDTIoC.cjs"),ScrollNavigator=require("../ScrollNavigator-CNKI1Iae.cjs"),shared_index=require("../shared/index.cjs"),events=require("../events-UlGk63iC.cjs"),morph=require("../morph-CsmERL3V.cjs");require("construct-style-sheets-polyfill");require("../index-BrasTsja.cjs");const url=require("../url-D_KuhhOg.cjs");var _cache,_domParser,_options,_scroll,_links,_announcerElement,_updateId,_isBack,_SPA_instances,navigateInternal_fn;const _SPA=class _SPA{constructor(options){__privateAdd(this,_SPA_instances);__privateAdd(this,_cache,new cache_index.Cache);__privateAdd(this,_domParser,new DOMParser);__privateAdd(this,_options,null);__privateAdd(this,_scroll,null);__privateAdd(this,_links,null);__privateAdd(this,_announcerElement,null);__privateAdd(this,_updateId,0);__privateAdd(this,_isBack,!1);_SPA.instance||(_SPA.instance=this,__privateSet(this,_options,__spreadProps(__spreadValues({},options),{base:url.normalizeBase(options==null?void 0:options.base)})),__privateSet(this,_announcerElement,new PageAnnouncerElement.PageAnnouncerElement),__privateSet(this,_scroll,new PageScroll.PageScroll(__privateGet(this,_options).scrollSelector)),__privateGet(this,_scroll).update(),__privateSet(this,_links,new LocalLinks.LocalLinks({base:__privateGet(this,_options).base,trailingSlash:__privateGet(this,_options).trailingSlash,includeAnchor:options==null?void 0:options.includeAnchor,onClick:__name((url2,options2)=>{this.navigate(url2,options2).signal.addEventListener("abort",()=>{console.log("Navigation aborted")})},"onClick")})),__privateGet(this,_links).update(),shared_index.historyManager.addPopStateHandler(event=>{var _a,_b,_c,_d,_e,_f;if((_b=(_a=event.state)==null?void 0:_a.data)!=null&&_b.popover||(_d=(_c=event.previousState)==null?void 0:_c.data)!=null&&_d.popover)return;__privateSet(this,_isBack,!0),this.navigate(location.href.replace(location.origin,""),{scrollValue:((_f=(_e=event.state)==null?void 0:_e.data)==null?void 0:_f.scrollTop)||0}).signal.addEventListener("abort",()=>{console.log("Popstate navigation aborted")})}))}get scroll(){return __privateGet(this,_scroll)}navigate(url2,options){const abortController=new AbortController,signal=(options==null?void 0:options.signal)||abortController.signal,navigationPromise=__privateMethod(this,_SPA_instances,navigateInternal_fn).call(this,url2,__spreadProps(__spreadValues({},options),{signal})).catch(error=>{throw error instanceof Error&&error.name==="AbortError"||console.error("Navigation failed:",error),error});return Object.assign(navigationPromise,{signal,abort:__name(()=>abortController.abort(),"abort")})}};_cache=new WeakMap,_domParser=new WeakMap,_options=new WeakMap,_scroll=new WeakMap,_links=new WeakMap,_announcerElement=new WeakMap,_updateId=new WeakMap,_isBack=new WeakMap,_SPA_instances=new WeakSet,navigateInternal_fn=__name(function(url$1,options){return __async(this,null,function*(){var _a,_b,_c,_d,_e,_f,_g;let isBack=__privateGet(this,_isBack);__privateSet(this,_isBack,!1);const updateId=++__privateWrapper(this,_updateId)._,{signal}=options||{signal:new AbortController().signal};let fullUrl=url.normalizeURL(url$1,{base:__privateGet(this,_options).base,trailingSlash:__privateGet(this,_options).trailingSlash});if(__privateGet(this,_options).urlModifier&&(fullUrl=__privateGet(this,_options).urlModifier(fullUrl)),options!=null&&options.pushStateNoFetch){shared_index.historyManager.updateCurrentStateData({scrollTop:__privateGet(this,_scroll).y}),shared_index.historyManager.pushState(fullUrl);return}signal.throwIfAborted(),events.dispatchEvent(document,"spaBeforeFetch",{custom:!0,detail:{signal}});let contents=__privateGet(this,_cache).get(fullUrl.toString());if(!contents||options!=null&&options.revalidate)try{contents=yield(yield fetch(`${fullUrl}`,{headers:{"X-SPA":"true"},signal})).text()}catch(error){if(error instanceof Error&&error.name==="AbortError")throw error;window.location.assign(fullUrl);return}if(signal.throwIfAborted(),events.dispatchEvent(document,"spaAfterFetch",{custom:!0,detail:{signal}}),!contents||(options!=null&&options.cache&&__privateGet(this,_cache).set(fullUrl.toString(),contents),signal.throwIfAborted(),__privateGet(this,_updateId)!==updateId))return;isBack?shared_index.historyManager.updatePreviousStateData({scrollTop:__privateGet(this,_scroll).y}):(shared_index.historyManager.updateCurrentStateData({scrollTop:__privateGet(this,_scroll).y}),shared_index.historyManager.pushState(fullUrl)),signal.throwIfAborted();const html=__privateGet(this,_domParser).parseFromString(contents,"text/html");if(url.normalizeRelativeURLs(html,fullUrl),yield(_b=(_a=__privateGet(this,_options)).beforeDiff)==null?void 0:_b.call(_a,html,signal),signal.throwIfAborted(),__privateGet(this,_updateId)!==updateId)return;events.dispatchEvent(document,"spaBeforeUpdate",{custom:!0,detail:{signal}});let title=(_c=html.querySelector("title"))==null?void 0:_c.textContent;if(title)document.title=title;else{const h1=document.querySelector("h1");title=(_e=(_d=h1==null?void 0:h1.innerText)!=null?_d:h1==null?void 0:h1.textContent)!=null?_e:fullUrl.pathname}signal.throwIfAborted(),__privateGet(this,_announcerElement).create(html,title);const updateDone=__name(()=>{__privateGet(this,_scroll).update(),__privateGet(this,_links).update(),__privateGet(this,_announcerElement).done(),options!=null&&options.keepScrollPosition||ScrollNavigator.ScrollNavigator.scrollToElement((options==null?void 0:options.scrollValue)||0,__spreadValues({scrollElement:__privateGet(this,_scroll).element,behavior:"instant"},options==null?void 0:options.scrollOptions))},"updateDone");if(__privateGet(this,_options).viewTransition&&document.startViewTransition){const v=document.startViewTransition(()=>morph.morph(document,html));yield v.updateCallbackDone,signal.throwIfAborted(),updateDone(),yield v.finished}else yield morph.morph(document,html),signal.throwIfAborted(),updateDone();yield(_g=(_f=__privateGet(this,_options)).afterDiff)==null?void 0:_g.call(_f,signal),signal.throwIfAborted(),events.dispatchEvent(document,"spaAfterUpdate",{custom:!0,detail:{signal}})})},"#navigateInternal"),__name(_SPA,"SPA"),_SPA.instance=null;let SPA=_SPA;exports.SPA=SPA;
1
+ "use strict";var __defProp=Object.defineProperty,__defProps=Object.defineProperties;var __getOwnPropDescs=Object.getOwnPropertyDescriptors;var __getOwnPropSymbols=Object.getOwnPropertySymbols;var __hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable;var __typeError=msg=>{throw TypeError(msg)};var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value,__spreadValues=(a,b)=>{for(var prop in b||(b={}))__hasOwnProp.call(b,prop)&&__defNormalProp(a,prop,b[prop]);if(__getOwnPropSymbols)for(var prop of __getOwnPropSymbols(b))__propIsEnum.call(b,prop)&&__defNormalProp(a,prop,b[prop]);return a},__spreadProps=(a,b)=>__defProps(a,__getOwnPropDescs(b)),__name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __accessCheck=(obj,member,msg)=>member.has(obj)||__typeError("Cannot "+msg);var __privateGet=(obj,member,getter)=>(__accessCheck(obj,member,"read from private field"),getter?getter.call(obj):member.get(obj)),__privateAdd=(obj,member,value)=>member.has(obj)?__typeError("Cannot add the same private member more than once"):member instanceof WeakSet?member.add(obj):member.set(obj,value),__privateSet=(obj,member,value,setter)=>(__accessCheck(obj,member,"write to private field"),setter?setter.call(obj,value):member.set(obj,value),value),__privateMethod=(obj,member,method)=>(__accessCheck(obj,member,"access private method"),method);var __privateWrapper=(obj,member,setter,getter)=>({set _(value){__privateSet(obj,member,value,setter)},get _(){return __privateGet(obj,member,getter)}});var __async=(__this,__arguments,generator)=>new Promise((resolve,reject)=>{var fulfilled=value=>{try{step(generator.next(value))}catch(e){reject(e)}},rejected=value=>{try{step(generator.throw(value))}catch(e){reject(e)}},step=x=>x.done?resolve(x.value):Promise.resolve(x.value).then(fulfilled,rejected);step((generator=generator.apply(__this,__arguments)).next())});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const cache_index=require("../cache/index.cjs"),LocalLinks=require("../LocalLinks-DATKwnwQ.cjs"),PageAnnouncerElement=require("../PageAnnouncerElement-DreveHSN.cjs"),PageScroll=require("../PageScroll-xuHDTIoC.cjs"),ScrollNavigator=require("../ScrollNavigator-CNKI1Iae.cjs"),shared_index=require("../shared/index.cjs"),events=require("../events-UlGk63iC.cjs"),morph=require("../morph-CsmERL3V.cjs");require("construct-style-sheets-polyfill");require("../index-BrasTsja.cjs");const url=require("../url-D_KuhhOg.cjs");var _cache,_domParser,_options,_scroll,_links,_announcerElement,_updateId,_isBack,_SPA_instances,navigateInternal_fn;const _SPA=class _SPA{constructor(options){__privateAdd(this,_SPA_instances);__privateAdd(this,_cache,new cache_index.Cache);__privateAdd(this,_domParser,new DOMParser);__privateAdd(this,_options,null);__privateAdd(this,_scroll,null);__privateAdd(this,_links,null);__privateAdd(this,_announcerElement,null);__privateAdd(this,_updateId,0);__privateAdd(this,_isBack,!1);_SPA.instance||(_SPA.instance=this,__privateSet(this,_options,__spreadProps(__spreadValues({},options),{base:url.normalizeBase(options==null?void 0:options.base)})),__privateSet(this,_announcerElement,new PageAnnouncerElement.PageAnnouncerElement),__privateSet(this,_scroll,new PageScroll.PageScroll(__privateGet(this,_options).scrollSelector)),__privateGet(this,_scroll).update(),__privateSet(this,_links,new LocalLinks.LocalLinks({base:__privateGet(this,_options).base,trailingSlash:__privateGet(this,_options).trailingSlash,includeAnchor:options==null?void 0:options.includeAnchor,onClick:__name((url2,options2)=>{this.navigate(url2,options2).signal.addEventListener("abort",()=>{console.log("Navigation aborted")})},"onClick")})),__privateGet(this,_links).update(),shared_index.historyManager.addPopStateHandler(event=>{var _a,_b,_c,_d,_e,_f,_g,_h;if((_b=(_a=event.state)==null?void 0:_a.data)!=null&&_b.popover||(_d=(_c=event.previousState)==null?void 0:_c.data)!=null&&_d.popover)return;__privateSet(this,_isBack,!0),this.navigate(location.href.replace(location.origin,""),{scrollValue:((_f=(_e=event.state)==null?void 0:_e.data)==null?void 0:_f.scrollTop)||0,pushStateNoFetch:(_h=(_g=event.state)==null?void 0:_g.data)==null?void 0:_h.pushStateNoFetch}).signal.addEventListener("abort",()=>{console.log("Popstate navigation aborted")})}))}get scroll(){return __privateGet(this,_scroll)}navigate(url2,options){const abortController=new AbortController,signal=(options==null?void 0:options.signal)||abortController.signal,navigationPromise=__privateMethod(this,_SPA_instances,navigateInternal_fn).call(this,url2,__spreadProps(__spreadValues({},options),{signal})).catch(error=>{throw error instanceof Error&&error.name==="AbortError"||console.error("Navigation failed:",error),error});return Object.assign(navigationPromise,{signal,abort:__name(()=>abortController.abort(),"abort")})}};_cache=new WeakMap,_domParser=new WeakMap,_options=new WeakMap,_scroll=new WeakMap,_links=new WeakMap,_announcerElement=new WeakMap,_updateId=new WeakMap,_isBack=new WeakMap,_SPA_instances=new WeakSet,navigateInternal_fn=__name(function(url$1,options){return __async(this,null,function*(){var _a,_b,_c,_d,_e,_f,_g;let isBack=__privateGet(this,_isBack);__privateSet(this,_isBack,!1);const updateId=++__privateWrapper(this,_updateId)._,{signal}=options||{signal:new AbortController().signal};let fullUrl=url.normalizeURL(url$1,{base:__privateGet(this,_options).base,trailingSlash:__privateGet(this,_options).trailingSlash});if(__privateGet(this,_options).urlModifier&&(fullUrl=__privateGet(this,_options).urlModifier(fullUrl)),options!=null&&options.pushStateNoFetch){isBack||shared_index.historyManager.pushState(fullUrl,{pushStateNoFetch:!0});return}signal.throwIfAborted(),events.dispatchEvent(document,"spaBeforeFetch",{custom:!0,detail:{signal}});let contents=__privateGet(this,_cache).get(fullUrl.toString());if(!contents||options!=null&&options.revalidate)try{contents=yield(yield fetch(`${fullUrl}`,{headers:{"X-SPA":"true"},signal})).text()}catch(error){if(error instanceof Error&&error.name==="AbortError")throw error;window.location.assign(fullUrl);return}if(signal.throwIfAborted(),events.dispatchEvent(document,"spaAfterFetch",{custom:!0,detail:{signal}}),!contents||(options!=null&&options.cache&&__privateGet(this,_cache).set(fullUrl.toString(),contents),signal.throwIfAborted(),__privateGet(this,_updateId)!==updateId))return;isBack?shared_index.historyManager.updatePreviousStateData({scrollTop:__privateGet(this,_scroll).y}):(shared_index.historyManager.updateCurrentStateData({scrollTop:__privateGet(this,_scroll).y}),shared_index.historyManager.pushState(fullUrl)),signal.throwIfAborted();const html=__privateGet(this,_domParser).parseFromString(contents,"text/html");if(url.normalizeRelativeURLs(html,fullUrl),yield(_b=(_a=__privateGet(this,_options)).beforeDiff)==null?void 0:_b.call(_a,html,signal),signal.throwIfAborted(),__privateGet(this,_updateId)!==updateId)return;events.dispatchEvent(document,"spaBeforeUpdate",{custom:!0,detail:{signal}});let title=(_c=html.querySelector("title"))==null?void 0:_c.textContent;if(title)document.title=title;else{const h1=document.querySelector("h1");title=(_e=(_d=h1==null?void 0:h1.innerText)!=null?_d:h1==null?void 0:h1.textContent)!=null?_e:fullUrl.pathname}signal.throwIfAborted(),__privateGet(this,_announcerElement).create(html,title);const updateDone=__name(()=>{__privateGet(this,_scroll).update(),__privateGet(this,_links).update(),__privateGet(this,_announcerElement).done(),options!=null&&options.keepScrollPosition||ScrollNavigator.ScrollNavigator.scrollToElement((options==null?void 0:options.scrollValue)||0,__spreadValues({scrollElement:__privateGet(this,_scroll).element,behavior:"instant"},options==null?void 0:options.scrollOptions))},"updateDone");if(__privateGet(this,_options).viewTransition&&document.startViewTransition){const v=document.startViewTransition(()=>morph.morph(document,html));yield v.updateCallbackDone,signal.throwIfAborted(),updateDone(),yield v.finished}else yield morph.morph(document,html),signal.throwIfAborted(),updateDone();yield(_g=(_f=__privateGet(this,_options)).afterDiff)==null?void 0:_g.call(_f,signal),signal.throwIfAborted(),events.dispatchEvent(document,"spaAfterUpdate",{custom:!0,detail:{signal}})})},"#navigateInternal"),__name(_SPA,"SPA"),_SPA.instance=null;let SPA=_SPA;exports.SPA=SPA;
package/lib/spa/index.js CHANGED
@@ -74,13 +74,14 @@ const _SPA = class _SPA {
74
74
  });
75
75
  }, "onClick")
76
76
  })), __privateGet(this, _links).update(), historyManager.addPopStateHandler((event) => {
77
- var _a, _b, _c, _d, _e, _f;
77
+ var _a, _b, _c, _d, _e, _f, _g, _h;
78
78
  if ((_b = (_a = event.state) == null ? void 0 : _a.data) != null && _b.popover || (_d = (_c = event.previousState) == null ? void 0 : _c.data) != null && _d.popover)
79
79
  return;
80
80
  __privateSet(this, _isBack, !0), this.navigate(
81
81
  location.href.replace(location.origin, ""),
82
82
  {
83
- scrollValue: ((_f = (_e = event.state) == null ? void 0 : _e.data) == null ? void 0 : _f.scrollTop) || 0
83
+ scrollValue: ((_f = (_e = event.state) == null ? void 0 : _e.data) == null ? void 0 : _f.scrollTop) || 0,
84
+ pushStateNoFetch: (_h = (_g = event.state) == null ? void 0 : _g.data) == null ? void 0 : _h.pushStateNoFetch
84
85
  }
85
86
  ).signal.addEventListener("abort", () => {
86
87
  console.log("Popstate navigation aborted");
@@ -113,9 +114,7 @@ _cache = new WeakMap(), _domParser = new WeakMap(), _options = new WeakMap(), _s
113
114
  trailingSlash: __privateGet(this, _options).trailingSlash
114
115
  });
115
116
  if (__privateGet(this, _options).urlModifier && (fullUrl = __privateGet(this, _options).urlModifier(fullUrl)), options != null && options.pushStateNoFetch) {
116
- historyManager.updateCurrentStateData({
117
- scrollTop: __privateGet(this, _scroll).y
118
- }), historyManager.pushState(fullUrl);
117
+ isBack || historyManager.pushState(fullUrl, { pushStateNoFetch: !0 });
119
118
  return;
120
119
  }
121
120
  signal.throwIfAborted(), dispatchEvent(document, "spaBeforeFetch", {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aptechka",
3
- "version": "0.97.0",
3
+ "version": "0.97.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/denisavitski/aptechka.git"