fragmented 3.0.1 → 3.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -1
- package/example.js +35 -16
- package/lib/fragmented.js +28 -15
- package/lib/index.js +7 -1
- package/package.json +1 -1
- package/src/fragmented.js +35 -23
- package/src/index.js +1 -1
package/README.md
CHANGED
|
@@ -84,7 +84,15 @@ setFragment("test"); // change handlers won't be invoked
|
|
|
84
84
|
|
|
85
85
|
Also note that the `fragment` variable is an instance of the `String` object, rather than a string primitive, in order that properties on it can be defined. So use `==` rather than `===` if equating it to a string primitive. Finally, note that if you use a `switch` statement, which uses strict equality, you will need to explicitly coerce the `fragment` variable to a string primitive before passing it in.
|
|
86
86
|
|
|
87
|
-
|
|
87
|
+
You can import these functions more conventionally if you think that destructuring the global `fragment` variable is too cute:
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
import { getFragment, setFragment, onFragmentChange, offFragmentChange } from "fragmented";
|
|
91
|
+
|
|
92
|
+
...
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Finally if you do not like the thought of a global `fragment` variable then you can refer to it as `window.fragment`.
|
|
88
96
|
|
|
89
97
|
## Building
|
|
90
98
|
|
package/example.js
CHANGED
|
@@ -51,30 +51,23 @@
|
|
|
51
51
|
});
|
|
52
52
|
}
|
|
53
53
|
_export(exports, {
|
|
54
|
+
getFragment: function() {
|
|
55
|
+
return getFragment;
|
|
56
|
+
},
|
|
54
57
|
offFragmentChange: function() {
|
|
55
58
|
return offFragmentChange;
|
|
56
59
|
},
|
|
57
60
|
onFragmentChange: function() {
|
|
58
61
|
return onFragmentChange;
|
|
62
|
+
},
|
|
63
|
+
setFragment: function() {
|
|
64
|
+
return setFragment;
|
|
59
65
|
}
|
|
60
66
|
});
|
|
61
67
|
var _constants = require_constants();
|
|
62
68
|
var _eventTypes = require_eventTypes();
|
|
63
|
-
Object.defineProperty(window, _constants.FRAGMENT, {
|
|
64
|
-
get: function get() {
|
|
65
|
-
var fragment2 = getFragment();
|
|
66
|
-
return fragment2;
|
|
67
|
-
},
|
|
68
|
-
set: function set(fragment2) {
|
|
69
|
-
var silently = false;
|
|
70
|
-
setFragment(fragment2, silently);
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
var eventType = _eventTypes.HASHCHANGE_EVENT_TYPE;
|
|
74
|
-
var fragmentChangeHandlers = [];
|
|
75
|
-
window.addEventListener(eventType, hashChangeListener);
|
|
76
69
|
function getFragment() {
|
|
77
|
-
var hash =
|
|
70
|
+
var hash = getHash(), fragment2 = new String(hash);
|
|
78
71
|
Object.assign(fragment2, {
|
|
79
72
|
getFragment,
|
|
80
73
|
setFragment,
|
|
@@ -106,12 +99,32 @@
|
|
|
106
99
|
fragmentChangeHandlers.splice(start, deleteCount);
|
|
107
100
|
}
|
|
108
101
|
}
|
|
102
|
+
Object.defineProperty(window, _constants.FRAGMENT, {
|
|
103
|
+
get: function get() {
|
|
104
|
+
var fragment2 = getFragment();
|
|
105
|
+
return fragment2;
|
|
106
|
+
},
|
|
107
|
+
set: function set(fragment2) {
|
|
108
|
+
var silently = false;
|
|
109
|
+
setFragment(fragment2, silently);
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
var eventType = _eventTypes.HASHCHANGE_EVENT_TYPE;
|
|
113
|
+
var fragmentChangeHandlers = [];
|
|
114
|
+
window.addEventListener(eventType, hashChangeListener);
|
|
109
115
|
function hashChangeListener(event) {
|
|
110
|
-
var hash =
|
|
116
|
+
var hash = getHash(), fragment2 = hash;
|
|
111
117
|
fragmentChangeHandlers.forEach(function(fragmentChangeHandler) {
|
|
112
118
|
fragmentChangeHandler(event, fragment2);
|
|
113
119
|
});
|
|
114
120
|
}
|
|
121
|
+
function getHash() {
|
|
122
|
+
var location = window.location;
|
|
123
|
+
var hash = location.hash;
|
|
124
|
+
var start = 1;
|
|
125
|
+
hash = hash.substring(start);
|
|
126
|
+
return hash;
|
|
127
|
+
}
|
|
115
128
|
});
|
|
116
129
|
|
|
117
130
|
// lib/index.js
|
|
@@ -128,11 +141,17 @@
|
|
|
128
141
|
});
|
|
129
142
|
}
|
|
130
143
|
_export(exports, {
|
|
144
|
+
getFragment: function() {
|
|
145
|
+
return _fragmented.getFragment;
|
|
146
|
+
},
|
|
131
147
|
offFragmentChange: function() {
|
|
132
148
|
return _fragmented.offFragmentChange;
|
|
133
149
|
},
|
|
134
150
|
onFragmentChange: function() {
|
|
135
151
|
return _fragmented.onFragmentChange;
|
|
152
|
+
},
|
|
153
|
+
setFragment: function() {
|
|
154
|
+
return _fragmented.setFragment;
|
|
136
155
|
}
|
|
137
156
|
});
|
|
138
157
|
var _fragmented = require_fragmented();
|
|
@@ -156,4 +175,4 @@
|
|
|
156
175
|
});
|
|
157
176
|
require_example();
|
|
158
177
|
})();
|
|
159
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
178
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL2NvbnN0YW50cy5qcyIsICJzcmMvZXZlbnRUeXBlcy5qcyIsICJzcmMvZnJhZ21lbnRlZC5qcyIsICJzcmMvaW5kZXguanMiLCAic3JjL2V4YW1wbGUuanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgY29uc3QgRlJBR01FTlQgPSBcImZyYWdtZW50XCI7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBIQVNIQ0hBTkdFX0VWRU5UX1RZUEUgPSBcImhhc2hjaGFuZ2VcIjtcbiIsICJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRlJBR01FTlQgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IEhBU0hDSEFOR0VfRVZFTlRfVFlQRSB9IGZyb20gXCIuL2V2ZW50VHlwZXNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZyYWdtZW50KCkge1xuICBjb25zdCBoYXNoID0gZ2V0SGFzaCgpLFxuICAgICAgICBmcmFnbWVudCA9IG5ldyBTdHJpbmcoaGFzaCk7ICAvLy9cblxuICBPYmplY3QuYXNzaWduKGZyYWdtZW50LCB7XG4gICAgZ2V0RnJhZ21lbnQsXG4gICAgc2V0RnJhZ21lbnQsXG4gICAgb25GcmFnbWVudENoYW5nZSxcbiAgICBvZmZGcmFnbWVudENoYW5nZVxuICB9KTtcblxuICByZXR1cm4gZnJhZ21lbnQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRGcmFnbWVudChmcmFnbWVudCwgc2lsZW50bHkgPSB0cnVlKSB7XG4gIGNvbnN0IGhhc2ggPSBmcmFnbWVudDsgIC8vL1xuXG4gIGlmIChzaWxlbnRseSkge1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFzaENoYW5nZUxpc3RlbmVyKTtcbiAgfVxuXG4gIHdpbmRvdy5sb2NhdGlvbi5oYXNoID0gaGFzaDtcblxuICBpZiAoc2lsZW50bHkpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFzaENoYW5nZUxpc3RlbmVyKTtcbiAgICB9LCAwKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gb25GcmFnbWVudENoYW5nZShmcmFnbWVudENoYW5nZUhhbmRsZXIpIHtcbiAgZnJhZ21lbnRDaGFuZ2VIYW5kbGVycy5wdXNoKGZyYWdtZW50Q2hhbmdlSGFuZGxlcik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvZmZGcmFnbWVudENoYW5nZShmcmFnbWVudENoYW5nZUhhbmRsZXIpIHtcbiAgY29uc3QgaW5kZXggPSBmcmFnbWVudENoYW5nZUhhbmRsZXJzLmluZGV4T2YoZnJhZ21lbnRDaGFuZ2VIYW5kbGVyKTtcblxuICBpZiAoaW5kZXggPiAtMSkge1xuICAgIGNvbnN0IHN0YXJ0ID0gaW5kZXgsICAvLy9cbiAgICAgICAgICBkZWxldGVDb3VudCA9IDE7XG5cbiAgICBmcmFnbWVudENoYW5nZUhhbmRsZXJzLnNwbGljZShzdGFydCwgZGVsZXRlQ291bnQpO1xuICB9XG59XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csIEZSQUdNRU5ULCB7XG4gIGdldDogZnVuY3Rpb24oKSB7XG4gICAgY29uc3QgZnJhZ21lbnQgPSBnZXRGcmFnbWVudCgpO1xuXG4gICAgcmV0dXJuIGZyYWdtZW50O1xuICB9LFxuXG4gIHNldDogZnVuY3Rpb24oZnJhZ21lbnQpIHtcbiAgICBjb25zdCBzaWxlbnRseSA9IGZhbHNlO1xuXG4gICAgc2V0RnJhZ21lbnQoZnJhZ21lbnQsIHNpbGVudGx5KTtcbiAgfVxufSk7XG5cbmNvbnN0IGV2ZW50VHlwZSA9IEhBU0hDSEFOR0VfRVZFTlRfVFlQRSxcbiAgICAgIGZyYWdtZW50Q2hhbmdlSGFuZGxlcnMgPSBbXTtcblxud2luZG93LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYXNoQ2hhbmdlTGlzdGVuZXIpO1xuXG5mdW5jdGlvbiBoYXNoQ2hhbmdlTGlzdGVuZXIoZXZlbnQpIHtcbiAgY29uc3QgaGFzaCA9IGdldEhhc2goKSxcbiAgICAgICAgZnJhZ21lbnQgPSBoYXNoOyAgLy8vXG5cbiAgZnJhZ21lbnRDaGFuZ2VIYW5kbGVycy5mb3JFYWNoKChmcmFnbWVudENoYW5nZUhhbmRsZXIpID0+IHtcbiAgICBmcmFnbWVudENoYW5nZUhhbmRsZXIoZXZlbnQsIGZyYWdtZW50KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldEhhc2goKSB7XG4gIGNvbnN0IHsgbG9jYXRpb24gfSA9IHdpbmRvdztcblxuICBsZXQgeyBoYXNoIH0gPSBsb2NhdGlvbjtcblxuICBjb25zdCBzdGFydCA9IDE7XG5cbiAgaGFzaCA9IGhhc2guc3Vic3RyaW5nKHN0YXJ0KTtcblxuICByZXR1cm4gaGFzaDtcbn0iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBcIi4vZnJhZ21lbnRlZFwiO1xuXG5leHBvcnQgeyBzZXRGcmFnbWVudCwgZ2V0RnJhZ21lbnQsIG9uRnJhZ21lbnRDaGFuZ2UsIG9mZkZyYWdtZW50Q2hhbmdlIH0gZnJvbSBcIi4vZnJhZ21lbnRlZFwiO1xuXG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBcIi4vaW5kZXhcIjsgLy8vXG5cbmNvbnN0IHsgb25GcmFnbWVudENoYW5nZSwgb2ZmRnJhZ21lbnRDaGFuZ2UgfSA9IGZyYWdtZW50O1xuXG5vbkZyYWdtZW50Q2hhbmdlKGZyYWdtZW50Q2hhbmdlSGFuZGxlcik7XG5cbmNvbnNvbGUubG9nKGZyYWdtZW50KVxuXG5mcmFnbWVudCA9IFwidGVzdFwiO1xuXG4vLyBvZmZGcmFnbWVudENoYW5nZShmcmFnbWVudENoYW5nZUhhbmRsZXIpO1xuXG5mdW5jdGlvbiBmcmFnbWVudENoYW5nZUhhbmRsZXIoKSB7XG4gIGNvbnNvbGUubG9nKGZyYWdtZW50KVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7OztBQUFBOzs7OzttQ0FFYSxZQUFBOzs7ZUFBQTs7O0FBQU4sUUFBTSxXQUFXOzs7O0FDRnhCOzs7OzttQ0FFYSx5QkFBQTs7O2VBQUE7OztBQUFOLFFBQU0sd0JBQXdCOzs7O0FDRnJDOzs7Ozs7Ozs7Ozs7O01BS2dCLGFBQVcsV0FBQTtlQUFYOztNQWtDQSxtQkFBaUIsV0FBQTtlQUFqQjs7TUFKQSxrQkFBZ0IsV0FBQTtlQUFoQjs7TUFoQkEsYUFBVyxXQUFBO2VBQVg7Ozs7O0FBZFQsMkJBQVM7QUFDZCxVQUFNLE9BQU8sV0FDUCxZQUFXLElBQUksT0FBTztBQUU1QixhQUFPLE9BQU8sV0FBVTtRQUN0QjtRQUNBO1FBQ0E7UUFDQTs7QUFHRixhQUFPOztBQUdGLHlCQUFxQixXQUFRO1VBQUUsV0FBQSxVQUFBLFNBQUEsS0FBQSxVQUFBLE9BQUEsU0FBQSxVQUFBLEtBQVc7QUFDL0MsVUFBTSxPQUFPO0FBRWIsVUFBSSxVQUFVO0FBQ1osZUFBTyxvQkFBb0IsV0FBVzs7QUFHeEMsYUFBTyxTQUFTLE9BQU87QUFFdkIsVUFBSSxVQUFVO0FBQ1osbUJBQVcsV0FBQTtBQUNULGlCQUFPLGlCQUFpQixXQUFXO1dBQ2xDOzs7QUFJQSw4QkFBMEIsdUJBQXFCO0FBQ3BELDZCQUF1QixLQUFLOztBQUd2QiwrQkFBMkIsdUJBQXFCO0FBQ3JELFVBQU0sUUFBUSx1QkFBdUIsUUFBUTtBQUU3QyxVQUFJLFFBQVEsSUFBSTtBQUNkLFlBQU0sUUFBUSxPQUNSLGNBQWM7QUFFcEIsK0JBQXVCLE9BQU8sT0FBTzs7O0FBSXpDLFdBQU8sZUFBZSxRQUFRLFdBQUEsVUFBVTtNQUN0QyxLQUFLLGVBQUw7QUFDRSxZQUFNLFlBQVc7QUFFakIsZUFBTzs7TUFHVCxLQUFLLGFBQVMsV0FBUTtBQUNwQixZQUFNLFdBQVc7QUFFakIsb0JBQVksV0FBVTs7O0FBSTFCLFFBQU0sWUFBWSxZQUFBO0FBQWxCLFFBQ00seUJBQXlCO0FBRS9CLFdBQU8saUJBQWlCLFdBQVc7QUFFbkMsZ0NBQTRCLE9BQUs7QUFDL0IsVUFBTSxPQUFPLFdBQ1AsWUFBVztBQUVqQiw2QkFBdUIsUUFBUSxTQUFDLHVCQUFBO0FBQzlCLDhCQUFzQixPQUFPOzs7QUFJakMsdUJBQVM7QUFDUCxVQUFRLFdBQWEsT0FBYjtBQUVSLFVBQU0sT0FBUyxTQUFUO0FBRU4sVUFBTSxRQUFRO0FBRWQsYUFBTyxLQUFLLFVBQVU7QUFFdEIsYUFBTzs7Ozs7QUN2RlQ7Ozs7Ozs7Ozs7Ozs7TUFJc0IsYUFBVyxXQUFBO2VBQVgsWUFBQTs7TUFBK0IsbUJBQWlCLFdBQUE7ZUFBakIsWUFBQTs7TUFBbEIsa0JBQWdCLFdBQUE7ZUFBaEIsWUFBQTs7TUFBMUIsYUFBVyxXQUFBO2VBQVgsWUFBQTs7Ozs7OztBQ0pUOzs7Ozs7QUFJQSxRQUFRLG1CQUF3QyxTQUF4QztBQUFSLFFBQTBCLG9CQUFzQixTQUF0QjtBQUUxQixxQkFBaUI7QUFFakIsWUFBUSxJQUFJO0FBRVosZUFBVztBQUlYLHFDQUFTO0FBQ1AsY0FBUSxJQUFJOzs7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
package/lib/fragmented.js
CHANGED
|
@@ -9,29 +9,23 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
+
getFragment: function() {
|
|
13
|
+
return getFragment;
|
|
14
|
+
},
|
|
12
15
|
offFragmentChange: function() {
|
|
13
16
|
return offFragmentChange;
|
|
14
17
|
},
|
|
15
18
|
onFragmentChange: function() {
|
|
16
19
|
return onFragmentChange;
|
|
20
|
+
},
|
|
21
|
+
setFragment: function() {
|
|
22
|
+
return setFragment;
|
|
17
23
|
}
|
|
18
24
|
});
|
|
19
25
|
var _constants = require("./constants");
|
|
20
26
|
var _eventTypes = require("./eventTypes");
|
|
21
|
-
Object.defineProperty(window, _constants.FRAGMENT, {
|
|
22
|
-
get: function get() {
|
|
23
|
-
var fragment = getFragment();
|
|
24
|
-
return fragment;
|
|
25
|
-
},
|
|
26
|
-
set: function set(fragment) {
|
|
27
|
-
var silently = false;
|
|
28
|
-
setFragment(fragment, silently);
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
var eventType = _eventTypes.HASHCHANGE_EVENT_TYPE, fragmentChangeHandlers = [];
|
|
32
|
-
window.addEventListener(eventType, hashChangeListener);
|
|
33
27
|
function getFragment() {
|
|
34
|
-
var hash =
|
|
28
|
+
var hash = getHash(), fragment = new String(hash); ///
|
|
35
29
|
Object.assign(fragment, {
|
|
36
30
|
getFragment: getFragment,
|
|
37
31
|
setFragment: setFragment,
|
|
@@ -63,11 +57,30 @@ function offFragmentChange(fragmentChangeHandler) {
|
|
|
63
57
|
fragmentChangeHandlers.splice(start, deleteCount);
|
|
64
58
|
}
|
|
65
59
|
}
|
|
60
|
+
Object.defineProperty(window, _constants.FRAGMENT, {
|
|
61
|
+
get: function get() {
|
|
62
|
+
var fragment = getFragment();
|
|
63
|
+
return fragment;
|
|
64
|
+
},
|
|
65
|
+
set: function set(fragment) {
|
|
66
|
+
var silently = false;
|
|
67
|
+
setFragment(fragment, silently);
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
var eventType = _eventTypes.HASHCHANGE_EVENT_TYPE, fragmentChangeHandlers = [];
|
|
71
|
+
window.addEventListener(eventType, hashChangeListener);
|
|
66
72
|
function hashChangeListener(event) {
|
|
67
|
-
var hash =
|
|
73
|
+
var hash = getHash(), fragment = hash; ///
|
|
68
74
|
fragmentChangeHandlers.forEach(function(fragmentChangeHandler) {
|
|
69
75
|
fragmentChangeHandler(event, fragment);
|
|
70
76
|
});
|
|
71
77
|
}
|
|
78
|
+
function getHash() {
|
|
79
|
+
var location = window.location;
|
|
80
|
+
var hash = location.hash;
|
|
81
|
+
var start = 1;
|
|
82
|
+
hash = hash.substring(start);
|
|
83
|
+
return hash;
|
|
84
|
+
}
|
|
72
85
|
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9mcmFnbWVudGVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBGUkFHTUVOVCB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgSEFTSENIQU5HRV9FVkVOVF9UWVBFIH0gZnJvbSBcIi4vZXZlbnRUeXBlc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RnJhZ21lbnQoKSB7XG4gIGNvbnN0IGhhc2ggPSBnZXRIYXNoKCksXG4gICAgICAgIGZyYWdtZW50ID0gbmV3IFN0cmluZyhoYXNoKTsgIC8vL1xuXG4gIE9iamVjdC5hc3NpZ24oZnJhZ21lbnQsIHtcbiAgICBnZXRGcmFnbWVudCxcbiAgICBzZXRGcmFnbWVudCxcbiAgICBvbkZyYWdtZW50Q2hhbmdlLFxuICAgIG9mZkZyYWdtZW50Q2hhbmdlXG4gIH0pO1xuXG4gIHJldHVybiBmcmFnbWVudDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEZyYWdtZW50KGZyYWdtZW50LCBzaWxlbnRseSA9IHRydWUpIHtcbiAgY29uc3QgaGFzaCA9IGZyYWdtZW50OyAgLy8vXG5cbiAgaWYgKHNpbGVudGx5KSB7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYXNoQ2hhbmdlTGlzdGVuZXIpO1xuICB9XG5cbiAgd2luZG93LmxvY2F0aW9uLmhhc2ggPSBoYXNoO1xuXG4gIGlmIChzaWxlbnRseSkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYXNoQ2hhbmdlTGlzdGVuZXIpO1xuICAgIH0sIDApO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvbkZyYWdtZW50Q2hhbmdlKGZyYWdtZW50Q2hhbmdlSGFuZGxlcikge1xuICBmcmFnbWVudENoYW5nZUhhbmRsZXJzLnB1c2goZnJhZ21lbnRDaGFuZ2VIYW5kbGVyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9mZkZyYWdtZW50Q2hhbmdlKGZyYWdtZW50Q2hhbmdlSGFuZGxlcikge1xuICBjb25zdCBpbmRleCA9IGZyYWdtZW50Q2hhbmdlSGFuZGxlcnMuaW5kZXhPZihmcmFnbWVudENoYW5nZUhhbmRsZXIpO1xuXG4gIGlmIChpbmRleCA+IC0xKSB7XG4gICAgY29uc3Qgc3RhcnQgPSBpbmRleCwgIC8vL1xuICAgICAgICAgIGRlbGV0ZUNvdW50ID0gMTtcblxuICAgIGZyYWdtZW50Q2hhbmdlSGFuZGxlcnMuc3BsaWNlKHN0YXJ0LCBkZWxldGVDb3VudCk7XG4gIH1cbn1cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywgRlJBR01FTlQsIHtcbiAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICBjb25zdCBmcmFnbWVudCA9IGdldEZyYWdtZW50KCk7XG5cbiAgICByZXR1cm4gZnJhZ21lbnQ7XG4gIH0sXG5cbiAgc2V0OiBmdW5jdGlvbihmcmFnbWVudCkge1xuICAgIGNvbnN0IHNpbGVudGx5ID0gZmFsc2U7XG5cbiAgICBzZXRGcmFnbWVudChmcmFnbWVudCwgc2lsZW50bHkpO1xuICB9XG59KTtcblxuY29uc3QgZXZlbnRUeXBlID0gSEFTSENIQU5HRV9FVkVOVF9UWVBFLFxuICAgICAgZnJhZ21lbnRDaGFuZ2VIYW5kbGVycyA9IFtdO1xuXG53aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhc2hDaGFuZ2VMaXN0ZW5lcik7XG5cbmZ1bmN0aW9uIGhhc2hDaGFuZ2VMaXN0ZW5lcihldmVudCkge1xuICBjb25zdCBoYXNoID0gZ2V0SGFzaCgpLFxuICAgICAgICBmcmFnbWVudCA9IGhhc2g7ICAvLy9cblxuICBmcmFnbWVudENoYW5nZUhhbmRsZXJzLmZvckVhY2goKGZyYWdtZW50Q2hhbmdlSGFuZGxlcikgPT4ge1xuICAgIGZyYWdtZW50Q2hhbmdlSGFuZGxlcihldmVudCwgZnJhZ21lbnQpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0SGFzaCgpIHtcbiAgY29uc3QgeyBsb2NhdGlvbiB9ID0gd2luZG93O1xuXG4gIGxldCB7IGhhc2ggfSA9IGxvY2F0aW9uO1xuXG4gIGNvbnN0IHN0YXJ0ID0gMTtcblxuICBoYXNoID0gaGFzaC5zdWJzdHJpbmcoc3RhcnQpO1xuXG4gIHJldHVybiBoYXNoO1xufSJdLCJuYW1lcyI6WyJnZXRGcmFnbWVudCIsIm9mZkZyYWdtZW50Q2hhbmdlIiwib25GcmFnbWVudENoYW5nZSIsInNldEZyYWdtZW50IiwiaGFzaCIsImdldEhhc2giLCJmcmFnbWVudCIsIlN0cmluZyIsIk9iamVjdCIsImFzc2lnbiIsInNpbGVudGx5Iiwid2luZG93IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImV2ZW50VHlwZSIsImhhc2hDaGFuZ2VMaXN0ZW5lciIsImxvY2F0aW9uIiwic2V0VGltZW91dCIsImFkZEV2ZW50TGlzdGVuZXIiLCJmcmFnbWVudENoYW5nZUhhbmRsZXIiLCJmcmFnbWVudENoYW5nZUhhbmRsZXJzIiwicHVzaCIsImluZGV4IiwiaW5kZXhPZiIsInN0YXJ0IiwiZGVsZXRlQ291bnQiLCJzcGxpY2UiLCJkZWZpbmVQcm9wZXJ0eSIsIkZSQUdNRU5UIiwiZ2V0Iiwic2V0IiwiSEFTSENIQU5HRV9FVkVOVF9UWVBFIiwiZXZlbnQiLCJmb3JFYWNoIiwic3Vic3RyaW5nIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFLZ0JBLFdBQVc7ZUFBWEE7O0lBa0NBQyxpQkFBaUI7ZUFBakJBOztJQUpBQyxnQkFBZ0I7ZUFBaEJBOztJQWhCQUMsV0FBVztlQUFYQTs7O3lCQWpCUzswQkFDYTtBQUUvQixTQUFTSDtJQUNkLElBQU1JLE9BQU9DLFdBQ1BDLFdBQVcsSUFBSUMsT0FBT0gsT0FBUSxHQUFHO0lBRXZDSSxPQUFPQyxNQUFNLENBQUNILFVBQVU7UUFDdEJOLGFBQUFBO1FBQ0FHLGFBQUFBO1FBQ0FELGtCQUFBQTtRQUNBRCxtQkFBQUE7SUFDRjtJQUVBLE9BQU9LO0FBQ1Q7QUFFTyxTQUFTSCxZQUFZRyxRQUFRO1FBQUVJLFdBQUFBLGlFQUFXO0lBQy9DLElBQU1OLE9BQU9FLFVBQVcsR0FBRztJQUUzQixJQUFJSSxVQUFVO1FBQ1pDLE9BQU9DLG1CQUFtQixDQUFDQyxXQUFXQztJQUN4QztJQUVBSCxPQUFPSSxRQUFRLENBQUNYLElBQUksR0FBR0E7SUFFdkIsSUFBSU0sVUFBVTtRQUNaTSxXQUFXO1lBQ1RMLE9BQU9NLGdCQUFnQixDQUFDSixXQUFXQztRQUNyQyxHQUFHO0lBQ0w7QUFDRjtBQUVPLFNBQVNaLGlCQUFpQmdCLHFCQUFxQjtJQUNwREMsdUJBQXVCQyxJQUFJLENBQUNGO0FBQzlCO0FBRU8sU0FBU2pCLGtCQUFrQmlCLHFCQUFxQjtJQUNyRCxJQUFNRyxRQUFRRix1QkFBdUJHLE9BQU8sQ0FBQ0o7SUFFN0MsSUFBSUcsUUFBUSxDQUFDLEdBQUc7UUFDZCxJQUFNRSxRQUFRRixPQUNSRyxjQUFjO1FBRXBCTCx1QkFBdUJNLE1BQU0sQ0FBQ0YsT0FBT0M7SUFDdkM7QUFDRjtBQUVBaEIsT0FBT2tCLGNBQWMsQ0FBQ2YsUUFBUWdCLG1CQUFRLEVBQUU7SUFDdENDLEtBQUssU0FBTEE7UUFDRSxJQUFNdEIsV0FBV047UUFFakIsT0FBT007SUFDVDtJQUVBdUIsS0FBSyxTQUFMQSxJQUFjdkIsUUFBUTtRQUNwQixJQUFNSSxXQUFXO1FBRWpCUCxZQUFZRyxVQUFVSTtJQUN4QjtBQUNGO0FBRUEsSUFBTUcsWUFBWWlCLGlDQUFxQixFQUNqQ1gseUJBQXlCLEVBQUU7QUFFakNSLE9BQU9NLGdCQUFnQixDQUFDSixXQUFXQztBQUVuQyxTQUFTQSxtQkFBbUJpQixLQUFLO0lBQy9CLElBQU0zQixPQUFPQyxXQUNQQyxXQUFXRixNQUFPLEdBQUc7SUFFM0JlLHVCQUF1QmEsT0FBTyxDQUFDLFNBQUNkO1FBQzlCQSxzQkFBc0JhLE9BQU96QjtJQUMvQjtBQUNGO0FBRUEsU0FBU0Q7SUFDUCxJQUFNLEFBQUVVLFdBQWFKLE9BQWJJO0lBRVIsSUFBSSxBQUFFWCxPQUFTVyxTQUFUWDtJQUVOLElBQU1tQixRQUFRO0lBRWRuQixPQUFPQSxLQUFLNkIsU0FBUyxDQUFDVjtJQUV0QixPQUFPbkI7QUFDVCJ9
|
package/lib/index.js
CHANGED
|
@@ -9,13 +9,19 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
+
getFragment: function() {
|
|
13
|
+
return _fragmented.getFragment;
|
|
14
|
+
},
|
|
12
15
|
offFragmentChange: function() {
|
|
13
16
|
return _fragmented.offFragmentChange;
|
|
14
17
|
},
|
|
15
18
|
onFragmentChange: function() {
|
|
16
19
|
return _fragmented.onFragmentChange;
|
|
20
|
+
},
|
|
21
|
+
setFragment: function() {
|
|
22
|
+
return _fragmented.setFragment;
|
|
17
23
|
}
|
|
18
24
|
});
|
|
19
25
|
var _fragmented = require("./fragmented");
|
|
20
26
|
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFwiLi9mcmFnbWVudGVkXCI7XG5cbmV4cG9ydCB7IHNldEZyYWdtZW50LCBnZXRGcmFnbWVudCwgb25GcmFnbWVudENoYW5nZSwgb2ZmRnJhZ21lbnRDaGFuZ2UgfSBmcm9tIFwiLi9mcmFnbWVudGVkXCI7XG5cbiJdLCJuYW1lcyI6WyJnZXRGcmFnbWVudCIsIm9mZkZyYWdtZW50Q2hhbmdlIiwib25GcmFnbWVudENoYW5nZSIsInNldEZyYWdtZW50Il0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBSXNCQSxXQUFXO2VBQVhBLHVCQUFXOztJQUFvQkMsaUJBQWlCO2VBQWpCQSw2QkFBaUI7O0lBQW5DQyxnQkFBZ0I7ZUFBaEJBLDRCQUFnQjs7SUFBMUNDLFdBQVc7ZUFBWEEsdUJBQVc7OzswQkFGYiJ9
|
package/package.json
CHANGED
package/src/fragmented.js
CHANGED
|
@@ -3,27 +3,8 @@
|
|
|
3
3
|
import { FRAGMENT } from "./constants";
|
|
4
4
|
import { HASHCHANGE_EVENT_TYPE } from "./eventTypes";
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const fragment = getFragment();
|
|
9
|
-
|
|
10
|
-
return fragment;
|
|
11
|
-
},
|
|
12
|
-
|
|
13
|
-
set: function(fragment) {
|
|
14
|
-
const silently = false;
|
|
15
|
-
|
|
16
|
-
setFragment(fragment, silently);
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
const eventType = HASHCHANGE_EVENT_TYPE,
|
|
21
|
-
fragmentChangeHandlers = [];
|
|
22
|
-
|
|
23
|
-
window.addEventListener(eventType, hashChangeListener);
|
|
24
|
-
|
|
25
|
-
function getFragment() {
|
|
26
|
-
const hash = window.location.hash.substr(1), ///
|
|
6
|
+
export function getFragment() {
|
|
7
|
+
const hash = getHash(),
|
|
27
8
|
fragment = new String(hash); ///
|
|
28
9
|
|
|
29
10
|
Object.assign(fragment, {
|
|
@@ -36,7 +17,7 @@ function getFragment() {
|
|
|
36
17
|
return fragment;
|
|
37
18
|
}
|
|
38
19
|
|
|
39
|
-
function setFragment(fragment, silently = true) {
|
|
20
|
+
export function setFragment(fragment, silently = true) {
|
|
40
21
|
const hash = fragment; ///
|
|
41
22
|
|
|
42
23
|
if (silently) {
|
|
@@ -67,11 +48,42 @@ export function offFragmentChange(fragmentChangeHandler) {
|
|
|
67
48
|
}
|
|
68
49
|
}
|
|
69
50
|
|
|
51
|
+
Object.defineProperty(window, FRAGMENT, {
|
|
52
|
+
get: function() {
|
|
53
|
+
const fragment = getFragment();
|
|
54
|
+
|
|
55
|
+
return fragment;
|
|
56
|
+
},
|
|
57
|
+
|
|
58
|
+
set: function(fragment) {
|
|
59
|
+
const silently = false;
|
|
60
|
+
|
|
61
|
+
setFragment(fragment, silently);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
const eventType = HASHCHANGE_EVENT_TYPE,
|
|
66
|
+
fragmentChangeHandlers = [];
|
|
67
|
+
|
|
68
|
+
window.addEventListener(eventType, hashChangeListener);
|
|
69
|
+
|
|
70
70
|
function hashChangeListener(event) {
|
|
71
|
-
const hash =
|
|
71
|
+
const hash = getHash(),
|
|
72
72
|
fragment = hash; ///
|
|
73
73
|
|
|
74
74
|
fragmentChangeHandlers.forEach((fragmentChangeHandler) => {
|
|
75
75
|
fragmentChangeHandler(event, fragment);
|
|
76
76
|
});
|
|
77
77
|
}
|
|
78
|
+
|
|
79
|
+
function getHash() {
|
|
80
|
+
const { location } = window;
|
|
81
|
+
|
|
82
|
+
let { hash } = location;
|
|
83
|
+
|
|
84
|
+
const start = 1;
|
|
85
|
+
|
|
86
|
+
hash = hash.substring(start);
|
|
87
|
+
|
|
88
|
+
return hash;
|
|
89
|
+
}
|
package/src/index.js
CHANGED