haori 0.13.0 → 0.13.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.ja.md +1 -1
- package/README.md +1 -1
- package/dist/haori.cjs.js +10 -10
- package/dist/haori.es.js +191 -165
- package/dist/haori.iife.js +10 -10
- package/dist/index.d.ts +1 -1
- package/package.json +11 -3
- package/dist/haori.cjs.js.map +0 -1
- package/dist/haori.es.js.map +0 -1
- package/dist/haori.iife.js.map +0 -1
- package/dist/package.json +0 -70
- package/dist/src/builtins.d.ts +0 -100
- package/dist/src/builtins.d.ts.map +0 -1
- package/dist/src/builtins.js +0 -194
- package/dist/src/builtins.js.map +0 -1
- package/dist/src/core.d.ts +0 -505
- package/dist/src/core.d.ts.map +0 -1
- package/dist/src/core.js +0 -1817
- package/dist/src/core.js.map +0 -1
- package/dist/src/dev.d.ts +0 -35
- package/dist/src/dev.d.ts.map +0 -1
- package/dist/src/dev.js +0 -44
- package/dist/src/dev.js.map +0 -1
- package/dist/src/env.d.ts +0 -43
- package/dist/src/env.d.ts.map +0 -1
- package/dist/src/env.js +0 -108
- package/dist/src/env.js.map +0 -1
- package/dist/src/event.d.ts +0 -171
- package/dist/src/event.d.ts.map +0 -1
- package/dist/src/event.js +0 -235
- package/dist/src/event.js.map +0 -1
- package/dist/src/event_dispatcher.d.ts +0 -66
- package/dist/src/event_dispatcher.d.ts.map +0 -1
- package/dist/src/event_dispatcher.js +0 -167
- package/dist/src/event_dispatcher.js.map +0 -1
- package/dist/src/expression.d.ts +0 -260
- package/dist/src/expression.d.ts.map +0 -1
- package/dist/src/expression.js +0 -975
- package/dist/src/expression.js.map +0 -1
- package/dist/src/form.d.ts +0 -148
- package/dist/src/form.d.ts.map +0 -1
- package/dist/src/form.js +0 -428
- package/dist/src/form.js.map +0 -1
- package/dist/src/fragment.d.ts +0 -621
- package/dist/src/fragment.d.ts.map +0 -1
- package/dist/src/fragment.js +0 -1963
- package/dist/src/fragment.js.map +0 -1
- package/dist/src/haori.d.ts +0 -130
- package/dist/src/haori.d.ts.map +0 -1
- package/dist/src/haori.js +0 -215
- package/dist/src/haori.js.map +0 -1
- package/dist/src/import.d.ts +0 -19
- package/dist/src/import.d.ts.map +0 -1
- package/dist/src/import.js +0 -64
- package/dist/src/import.js.map +0 -1
- package/dist/src/index.d.ts +0 -27
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -30
- package/dist/src/index.js.map +0 -1
- package/dist/src/intersect.d.ts +0 -28
- package/dist/src/intersect.d.ts.map +0 -1
- package/dist/src/intersect.js +0 -201
- package/dist/src/intersect.js.map +0 -1
- package/dist/src/log.d.ts +0 -32
- package/dist/src/log.d.ts.map +0 -1
- package/dist/src/log.js +0 -43
- package/dist/src/log.js.map +0 -1
- package/dist/src/observer.d.ts +0 -24
- package/dist/src/observer.d.ts.map +0 -1
- package/dist/src/observer.js +0 -131
- package/dist/src/observer.js.map +0 -1
- package/dist/src/procedure.d.ts +0 -447
- package/dist/src/procedure.d.ts.map +0 -1
- package/dist/src/procedure.js +0 -1921
- package/dist/src/procedure.js.map +0 -1
- package/dist/src/queue.d.ts +0 -35
- package/dist/src/queue.d.ts.map +0 -1
- package/dist/src/queue.js +0 -202
- package/dist/src/queue.js.map +0 -1
- package/dist/src/url.d.ts +0 -14
- package/dist/src/url.d.ts.map +0 -1
- package/dist/src/url.js +0 -22
- package/dist/src/url.js.map +0 -1
- package/dist/tests/bind-arg-own-binding.test.d.ts +0 -2
- package/dist/tests/bind-arg-own-binding.test.d.ts.map +0 -1
- package/dist/tests/bind-arg-own-binding.test.js +0 -63
- package/dist/tests/bind-arg-own-binding.test.js.map +0 -1
- package/dist/tests/bindcomplete-and-scope.test.d.ts +0 -2
- package/dist/tests/bindcomplete-and-scope.test.d.ts.map +0 -1
- package/dist/tests/bindcomplete-and-scope.test.js +0 -115
- package/dist/tests/bindcomplete-and-scope.test.js.map +0 -1
- package/dist/tests/builtins.test.d.ts +0 -2
- package/dist/tests/builtins.test.d.ts.map +0 -1
- package/dist/tests/builtins.test.js +0 -152
- package/dist/tests/builtins.test.js.map +0 -1
- package/dist/tests/click-attributes.test.d.ts +0 -2
- package/dist/tests/click-attributes.test.d.ts.map +0 -1
- package/dist/tests/click-attributes.test.js +0 -113
- package/dist/tests/click-attributes.test.js.map +0 -1
- package/dist/tests/click-no-disabled.test.d.ts +0 -2
- package/dist/tests/click-no-disabled.test.d.ts.map +0 -1
- package/dist/tests/click-no-disabled.test.js +0 -67
- package/dist/tests/click-no-disabled.test.js.map +0 -1
- package/dist/tests/core.test.d.ts +0 -5
- package/dist/tests/core.test.d.ts.map +0 -1
- package/dist/tests/core.test.js +0 -1056
- package/dist/tests/core.test.js.map +0 -1
- package/dist/tests/data-bind-arg-reeval.test.d.ts +0 -2
- package/dist/tests/data-bind-arg-reeval.test.d.ts.map +0 -1
- package/dist/tests/data-bind-arg-reeval.test.js +0 -119
- package/dist/tests/data-bind-arg-reeval.test.js.map +0 -1
- package/dist/tests/data-bind-merge.test.d.ts +0 -2
- package/dist/tests/data-bind-merge.test.d.ts.map +0 -1
- package/dist/tests/data-bind-merge.test.js +0 -86
- package/dist/tests/data-bind-merge.test.js.map +0 -1
- package/dist/tests/data-click-defer.test.d.ts +0 -2
- package/dist/tests/data-click-defer.test.d.ts.map +0 -1
- package/dist/tests/data-click-defer.test.js +0 -57
- package/dist/tests/data-click-defer.test.js.map +0 -1
- package/dist/tests/data-click-run.test.d.ts +0 -5
- package/dist/tests/data-click-run.test.d.ts.map +0 -1
- package/dist/tests/data-click-run.test.js +0 -109
- package/dist/tests/data-click-run.test.js.map +0 -1
- package/dist/tests/data-derive.test.d.ts +0 -2
- package/dist/tests/data-derive.test.d.ts.map +0 -1
- package/dist/tests/data-derive.test.js +0 -999
- package/dist/tests/data-derive.test.js.map +0 -1
- package/dist/tests/data-each-browserlike.test.d.ts +0 -2
- package/dist/tests/data-each-browserlike.test.d.ts.map +0 -1
- package/dist/tests/data-each-browserlike.test.js +0 -48
- package/dist/tests/data-each-browserlike.test.js.map +0 -1
- package/dist/tests/data-each-fragment-debug.test.d.ts +0 -2
- package/dist/tests/data-each-fragment-debug.test.d.ts.map +0 -1
- package/dist/tests/data-each-fragment-debug.test.js +0 -119
- package/dist/tests/data-each-fragment-debug.test.js.map +0 -1
- package/dist/tests/data-each-table.test.d.ts +0 -2
- package/dist/tests/data-each-table.test.d.ts.map +0 -1
- package/dist/tests/data-each-table.test.js +0 -131
- package/dist/tests/data-each-table.test.js.map +0 -1
- package/dist/tests/data-each-template-recovery.test.d.ts +0 -2
- package/dist/tests/data-each-template-recovery.test.d.ts.map +0 -1
- package/dist/tests/data-each-template-recovery.test.js +0 -87
- package/dist/tests/data-each-template-recovery.test.js.map +0 -1
- package/dist/tests/data-event-prevent.test.d.ts +0 -2
- package/dist/tests/data-event-prevent.test.d.ts.map +0 -1
- package/dist/tests/data-event-prevent.test.js +0 -76
- package/dist/tests/data-event-prevent.test.js.map +0 -1
- package/dist/tests/data-fetch-form-input-binding.test.d.ts +0 -2
- package/dist/tests/data-fetch-form-input-binding.test.d.ts.map +0 -1
- package/dist/tests/data-fetch-form-input-binding.test.js +0 -202
- package/dist/tests/data-fetch-form-input-binding.test.js.map +0 -1
- package/dist/tests/data-fetch-tbody-dom.test.d.ts +0 -2
- package/dist/tests/data-fetch-tbody-dom.test.d.ts.map +0 -1
- package/dist/tests/data-fetch-tbody-dom.test.js +0 -82
- package/dist/tests/data-fetch-tbody-dom.test.js.map +0 -1
- package/dist/tests/data-form-container.test.d.ts +0 -2
- package/dist/tests/data-form-container.test.d.ts.map +0 -1
- package/dist/tests/data-form-container.test.js +0 -88
- package/dist/tests/data-form-container.test.js.map +0 -1
- package/dist/tests/data-if-dev-diagnostics.test.d.ts +0 -2
- package/dist/tests/data-if-dev-diagnostics.test.d.ts.map +0 -1
- package/dist/tests/data-if-dev-diagnostics.test.js +0 -55
- package/dist/tests/data-if-dev-diagnostics.test.js.map +0 -1
- package/dist/tests/data-if-falsy.test.d.ts +0 -2
- package/dist/tests/data-if-falsy.test.d.ts.map +0 -1
- package/dist/tests/data-if-falsy.test.js +0 -73
- package/dist/tests/data-if-falsy.test.js.map +0 -1
- package/dist/tests/data-load-on-show.test.d.ts +0 -2
- package/dist/tests/data-load-on-show.test.d.ts.map +0 -1
- package/dist/tests/data-load-on-show.test.js +0 -98
- package/dist/tests/data-load-on-show.test.js.map +0 -1
- package/dist/tests/derive-each-render-wait.test.d.ts +0 -2
- package/dist/tests/derive-each-render-wait.test.d.ts.map +0 -1
- package/dist/tests/derive-each-render-wait.test.js +0 -90
- package/dist/tests/derive-each-render-wait.test.js.map +0 -1
- package/dist/tests/dev.test.d.ts +0 -2
- package/dist/tests/dev.test.d.ts.map +0 -1
- package/dist/tests/dev.test.js +0 -51
- package/dist/tests/dev.test.js.map +0 -1
- package/dist/tests/each-update-event.test.d.ts +0 -2
- package/dist/tests/each-update-event.test.d.ts.map +0 -1
- package/dist/tests/each-update-event.test.js +0 -83
- package/dist/tests/each-update-event.test.js.map +0 -1
- package/dist/tests/each_arg.test.d.ts +0 -2
- package/dist/tests/each_arg.test.d.ts.map +0 -1
- package/dist/tests/each_arg.test.js +0 -41
- package/dist/tests/each_arg.test.js.map +0 -1
- package/dist/tests/env.test.d.ts +0 -2
- package/dist/tests/env.test.d.ts.map +0 -1
- package/dist/tests/env.test.js +0 -124
- package/dist/tests/env.test.js.map +0 -1
- package/dist/tests/evaluation-profile.test.d.ts +0 -2
- package/dist/tests/evaluation-profile.test.d.ts.map +0 -1
- package/dist/tests/evaluation-profile.test.js +0 -92
- package/dist/tests/evaluation-profile.test.js.map +0 -1
- package/dist/tests/event.test.d.ts +0 -2
- package/dist/tests/event.test.d.ts.map +0 -1
- package/dist/tests/event.test.js +0 -300
- package/dist/tests/event.test.js.map +0 -1
- package/dist/tests/expression-disallowed-keyword-hint.test.d.ts +0 -2
- package/dist/tests/expression-disallowed-keyword-hint.test.d.ts.map +0 -1
- package/dist/tests/expression-disallowed-keyword-hint.test.js +0 -45
- package/dist/tests/expression-disallowed-keyword-hint.test.js.map +0 -1
- package/dist/tests/expression-forbidden-hint.test.d.ts +0 -2
- package/dist/tests/expression-forbidden-hint.test.d.ts.map +0 -1
- package/dist/tests/expression-forbidden-hint.test.js +0 -37
- package/dist/tests/expression-forbidden-hint.test.js.map +0 -1
- package/dist/tests/expression.test.d.ts +0 -2
- package/dist/tests/expression.test.d.ts.map +0 -1
- package/dist/tests/expression.test.js +0 -482
- package/dist/tests/expression.test.js.map +0 -1
- package/dist/tests/fetch-and-procedure-scenarios.test.d.ts +0 -2
- package/dist/tests/fetch-and-procedure-scenarios.test.d.ts.map +0 -1
- package/dist/tests/fetch-and-procedure-scenarios.test.js +0 -195
- package/dist/tests/fetch-and-procedure-scenarios.test.js.map +0 -1
- package/dist/tests/form-number-type.test.d.ts +0 -2
- package/dist/tests/form-number-type.test.d.ts.map +0 -1
- package/dist/tests/form-number-type.test.js +0 -83
- package/dist/tests/form-number-type.test.js.map +0 -1
- package/dist/tests/form.test.d.ts +0 -2
- package/dist/tests/form.test.d.ts.map +0 -1
- package/dist/tests/form.test.js +0 -636
- package/dist/tests/form.test.js.map +0 -1
- package/dist/tests/fragment.test.d.ts +0 -2
- package/dist/tests/fragment.test.d.ts.map +0 -1
- package/dist/tests/fragment.test.js +0 -284
- package/dist/tests/fragment.test.js.map +0 -1
- package/dist/tests/haori.test.d.ts +0 -2
- package/dist/tests/haori.test.d.ts.map +0 -1
- package/dist/tests/haori.test.js +0 -149
- package/dist/tests/haori.test.js.map +0 -1
- package/dist/tests/helpers/async.d.ts +0 -20
- package/dist/tests/helpers/async.d.ts.map +0 -1
- package/dist/tests/helpers/async.js +0 -35
- package/dist/tests/helpers/async.js.map +0 -1
- package/dist/tests/import.test.d.ts +0 -2
- package/dist/tests/import.test.d.ts.map +0 -1
- package/dist/tests/import.test.js +0 -148
- package/dist/tests/import.test.js.map +0 -1
- package/dist/tests/intersect.test.d.ts +0 -2
- package/dist/tests/intersect.test.d.ts.map +0 -1
- package/dist/tests/intersect.test.js +0 -173
- package/dist/tests/intersect.test.js.map +0 -1
- package/dist/tests/log.test.d.ts +0 -2
- package/dist/tests/log.test.d.ts.map +0 -1
- package/dist/tests/log.test.js +0 -58
- package/dist/tests/log.test.js.map +0 -1
- package/dist/tests/observer.test.d.ts +0 -2
- package/dist/tests/observer.test.d.ts.map +0 -1
- package/dist/tests/observer.test.js +0 -64
- package/dist/tests/observer.test.js.map +0 -1
- package/dist/tests/placeholder-resolution.test.d.ts +0 -2
- package/dist/tests/placeholder-resolution.test.d.ts.map +0 -1
- package/dist/tests/placeholder-resolution.test.js +0 -463
- package/dist/tests/placeholder-resolution.test.js.map +0 -1
- package/dist/tests/procedure-action-operations.test.d.ts +0 -2
- package/dist/tests/procedure-action-operations.test.d.ts.map +0 -1
- package/dist/tests/procedure-action-operations.test.js +0 -1140
- package/dist/tests/procedure-action-operations.test.js.map +0 -1
- package/dist/tests/procedure-bind-append.test.d.ts +0 -2
- package/dist/tests/procedure-bind-append.test.d.ts.map +0 -1
- package/dist/tests/procedure-bind-append.test.js +0 -80
- package/dist/tests/procedure-bind-append.test.js.map +0 -1
- package/dist/tests/procedure-fetch-options.test.d.ts +0 -2
- package/dist/tests/procedure-fetch-options.test.d.ts.map +0 -1
- package/dist/tests/procedure-fetch-options.test.js +0 -255
- package/dist/tests/procedure-fetch-options.test.js.map +0 -1
- package/dist/tests/procedure.test.d.ts +0 -2
- package/dist/tests/procedure.test.d.ts.map +0 -1
- package/dist/tests/procedure.test.js +0 -137
- package/dist/tests/procedure.test.js.map +0 -1
- package/dist/tests/procedure_events.test.d.ts +0 -7
- package/dist/tests/procedure_events.test.d.ts.map +0 -1
- package/dist/tests/procedure_events.test.js +0 -261
- package/dist/tests/procedure_events.test.js.map +0 -1
- package/dist/tests/render-wait.test.d.ts +0 -2
- package/dist/tests/render-wait.test.d.ts.map +0 -1
- package/dist/tests/render-wait.test.js +0 -68
- package/dist/tests/render-wait.test.js.map +0 -1
- package/dist/tests/reset_each.test.d.ts +0 -2
- package/dist/tests/reset_each.test.d.ts.map +0 -1
- package/dist/tests/reset_each.test.js +0 -215
- package/dist/tests/reset_each.test.js.map +0 -1
- package/dist/tests/row-move.test.d.ts +0 -2
- package/dist/tests/row-move.test.d.ts.map +0 -1
- package/dist/tests/row-move.test.js +0 -220
- package/dist/tests/row-move.test.js.map +0 -1
- package/dist/tests/row-operations.test.d.ts +0 -2
- package/dist/tests/row-operations.test.d.ts.map +0 -1
- package/dist/tests/row-operations.test.js +0 -259
- package/dist/tests/row-operations.test.js.map +0 -1
- package/dist/tests/scheduled-evaluate-wait.test.d.ts +0 -2
- package/dist/tests/scheduled-evaluate-wait.test.d.ts.map +0 -1
- package/dist/tests/scheduled-evaluate-wait.test.js +0 -68
- package/dist/tests/scheduled-evaluate-wait.test.js.map +0 -1
- package/dist/tests/url.test.d.ts +0 -2
- package/dist/tests/url.test.d.ts.map +0 -1
- package/dist/tests/url.test.js +0 -150
- package/dist/tests/url.test.js.map +0 -1
- package/dist/vite.config.d.ts +0 -3
- package/dist/vite.config.d.ts.map +0 -1
- package/dist/vite.config.js +0 -28
- package/dist/vite.config.js.map +0 -1
- package/dist/vitest.config.d.ts +0 -3
- package/dist/vitest.config.d.ts.map +0 -1
- package/dist/vitest.config.js +0 -19
- package/dist/vitest.config.js.map +0 -1
package/dist/src/event.js
DELETED
|
@@ -1,235 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Haoriイベント発火ユーティリティ
|
|
3
|
-
*
|
|
4
|
-
* Haoriライブラリが発火するカスタムイベントの統一的な発火機能を提供します。
|
|
5
|
-
*/
|
|
6
|
-
export default class HaoriEvent {
|
|
7
|
-
/**
|
|
8
|
-
* カスタムイベントを発火します。
|
|
9
|
-
*
|
|
10
|
-
* @param target イベントを発火する対象要素
|
|
11
|
-
* @param eventName イベント名(haori:プレフィックスは自動追加)
|
|
12
|
-
* @param detail イベントの詳細データ
|
|
13
|
-
* @param options イベントオプション
|
|
14
|
-
*/
|
|
15
|
-
static dispatch(target, eventName, detail, options) {
|
|
16
|
-
const event = new CustomEvent(`haori:${eventName}`, {
|
|
17
|
-
bubbles: options?.bubbles ?? true,
|
|
18
|
-
cancelable: options?.cancelable ?? false,
|
|
19
|
-
composed: options?.composed ?? true,
|
|
20
|
-
detail,
|
|
21
|
-
});
|
|
22
|
-
return target.dispatchEvent(event);
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* readyイベントを発火します。
|
|
26
|
-
*
|
|
27
|
-
* @param version ライブラリバージョン
|
|
28
|
-
*/
|
|
29
|
-
static ready(version) {
|
|
30
|
-
HaoriEvent.dispatch(document, 'ready', { version });
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* renderイベントを発火します。
|
|
34
|
-
*
|
|
35
|
-
* @param target 評価対象要素
|
|
36
|
-
*/
|
|
37
|
-
static render(target) {
|
|
38
|
-
HaoriEvent.dispatch(target, 'render', { target });
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* importstartイベントを発火します。
|
|
42
|
-
*
|
|
43
|
-
* @param target data-import要素
|
|
44
|
-
* @param url インポート対象URL
|
|
45
|
-
*/
|
|
46
|
-
static importStart(target, url) {
|
|
47
|
-
HaoriEvent.dispatch(target, 'importstart', {
|
|
48
|
-
url,
|
|
49
|
-
startedAt: performance.now(),
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* importendイベントを発火します。
|
|
54
|
-
*
|
|
55
|
-
* @param target data-import要素
|
|
56
|
-
* @param url インポート対象URL
|
|
57
|
-
* @param bytes 取得バイト数
|
|
58
|
-
* @param startedAt 開始時刻
|
|
59
|
-
*/
|
|
60
|
-
static importEnd(target, url, bytes, startedAt) {
|
|
61
|
-
HaoriEvent.dispatch(target, 'importend', {
|
|
62
|
-
url,
|
|
63
|
-
bytes,
|
|
64
|
-
durationMs: performance.now() - startedAt,
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* importerrorイベントを発火します。
|
|
69
|
-
*
|
|
70
|
-
* @param target data-import要素
|
|
71
|
-
* @param url インポート対象URL
|
|
72
|
-
* @param error エラー内容
|
|
73
|
-
*/
|
|
74
|
-
static importError(target, url, error) {
|
|
75
|
-
HaoriEvent.dispatch(target, 'importerror', { url, error });
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* bindchangeイベントを発火します。
|
|
79
|
-
*
|
|
80
|
-
* @param target バインド対象要素
|
|
81
|
-
* @param previous 変更前のデータ
|
|
82
|
-
* @param next 変更後のデータ
|
|
83
|
-
* @param reason 変更理由
|
|
84
|
-
*/
|
|
85
|
-
static bindChange(target, previous, next, reason = 'other') {
|
|
86
|
-
const changedKeys = [];
|
|
87
|
-
// 変更されたキーを検出
|
|
88
|
-
const prevKeys = new Set(Object.keys(previous || {}));
|
|
89
|
-
const nextKeys = new Set(Object.keys(next));
|
|
90
|
-
const allKeys = new Set([...prevKeys, ...nextKeys]);
|
|
91
|
-
for (const key of allKeys) {
|
|
92
|
-
const prevValue = previous?.[key];
|
|
93
|
-
const nextValue = next[key];
|
|
94
|
-
if (prevValue !== nextValue) {
|
|
95
|
-
changedKeys.push(key);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
HaoriEvent.dispatch(target, 'bindchange', {
|
|
99
|
-
previous: previous || {},
|
|
100
|
-
next,
|
|
101
|
-
changedKeys,
|
|
102
|
-
reason,
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* bindcompleteイベントを発火します。
|
|
107
|
-
*
|
|
108
|
-
* Procedure(data-*-bind / data-*-bind-arg など)によるバインドと、それに伴う
|
|
109
|
-
* 対象要素配下の再評価(data-if / data-each 等)が完了したタイミングで発火します。
|
|
110
|
-
* 外部スクリプトがバインド完了を契機に同期処理を行うために利用できます。
|
|
111
|
-
*
|
|
112
|
-
* @param target バインド対象要素
|
|
113
|
-
* @param bindArg バインド時に使用したネストキー(指定がない場合は null)
|
|
114
|
-
* @param reason 変更理由
|
|
115
|
-
*/
|
|
116
|
-
static bindComplete(target, bindArg = null, reason = 'other') {
|
|
117
|
-
HaoriEvent.dispatch(target, 'bindcomplete', { bindArg, reason });
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* eachupdateイベントを発火します。
|
|
121
|
-
*
|
|
122
|
-
* @param target data-each要素
|
|
123
|
-
* @param added 追加された行のキー
|
|
124
|
-
* @param removed 削除された行のキー
|
|
125
|
-
* @param order 現在の順序
|
|
126
|
-
*/
|
|
127
|
-
static eachUpdate(target, added, removed, order) {
|
|
128
|
-
HaoriEvent.dispatch(target, 'eachupdate', {
|
|
129
|
-
added,
|
|
130
|
-
removed,
|
|
131
|
-
order,
|
|
132
|
-
total: order.length,
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* rowaddイベントを発火します。
|
|
137
|
-
*
|
|
138
|
-
* @param target 行要素
|
|
139
|
-
* @param key 行キー
|
|
140
|
-
* @param index インデックス
|
|
141
|
-
* @param item 行データ
|
|
142
|
-
*/
|
|
143
|
-
static rowAdd(target, key, index, item) {
|
|
144
|
-
HaoriEvent.dispatch(target, 'rowadd', { key, index, item });
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* rowremoveイベントを発火します。
|
|
148
|
-
*
|
|
149
|
-
* @param target 行要素
|
|
150
|
-
* @param key 行キー
|
|
151
|
-
* @param index インデックス
|
|
152
|
-
*/
|
|
153
|
-
static rowRemove(target, key, index) {
|
|
154
|
-
HaoriEvent.dispatch(target, 'rowremove', { key, index });
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* rowmoveイベントを発火します。
|
|
158
|
-
*
|
|
159
|
-
* @param target 行要素
|
|
160
|
-
* @param key 行キー
|
|
161
|
-
* @param from 移動前インデックス
|
|
162
|
-
* @param to 移動後インデックス
|
|
163
|
-
*/
|
|
164
|
-
static rowMove(target, key, from, to) {
|
|
165
|
-
HaoriEvent.dispatch(target, 'rowmove', { key, from, to });
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* showイベントを発火します。
|
|
169
|
-
*
|
|
170
|
-
* @param target data-if要素
|
|
171
|
-
*/
|
|
172
|
-
static show(target) {
|
|
173
|
-
HaoriEvent.dispatch(target, 'show', { visible: true });
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* hideイベントを発火します。
|
|
177
|
-
*
|
|
178
|
-
* @param target data-if要素
|
|
179
|
-
*/
|
|
180
|
-
static hide(target) {
|
|
181
|
-
HaoriEvent.dispatch(target, 'hide', { visible: false });
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* fetchstartイベントを発火します。
|
|
185
|
-
*
|
|
186
|
-
* @param target 起点要素
|
|
187
|
-
* @param url フェッチURL
|
|
188
|
-
* @param options フェッチオプション
|
|
189
|
-
* @param payload 送信データ
|
|
190
|
-
* @param metadata runtime とメソッド変換情報。
|
|
191
|
-
* @return 戻り値はありません。
|
|
192
|
-
*/
|
|
193
|
-
static fetchStart(target, url, options, payload, metadata) {
|
|
194
|
-
HaoriEvent.dispatch(target, 'fetchstart', {
|
|
195
|
-
url,
|
|
196
|
-
options: options || {},
|
|
197
|
-
payload,
|
|
198
|
-
startedAt: performance.now(),
|
|
199
|
-
...metadata,
|
|
200
|
-
});
|
|
201
|
-
}
|
|
202
|
-
/**
|
|
203
|
-
* fetchendイベントを発火します。
|
|
204
|
-
*
|
|
205
|
-
* @param target 起点要素
|
|
206
|
-
* @param url フェッチURL
|
|
207
|
-
* @param status HTTPステータス
|
|
208
|
-
* @param startedAt 開始時刻
|
|
209
|
-
*/
|
|
210
|
-
static fetchEnd(target, url, status, startedAt) {
|
|
211
|
-
HaoriEvent.dispatch(target, 'fetchend', {
|
|
212
|
-
url,
|
|
213
|
-
status,
|
|
214
|
-
durationMs: performance.now() - startedAt,
|
|
215
|
-
});
|
|
216
|
-
}
|
|
217
|
-
/**
|
|
218
|
-
* fetcherrorイベントを発火します。
|
|
219
|
-
*
|
|
220
|
-
* @param target 起点要素
|
|
221
|
-
* @param url フェッチURL
|
|
222
|
-
* @param error エラー内容
|
|
223
|
-
* @param status HTTPステータス(存在する場合)
|
|
224
|
-
* @param startedAt 開始時刻(存在する場合)
|
|
225
|
-
*/
|
|
226
|
-
static fetchError(target, url, error, status, startedAt) {
|
|
227
|
-
HaoriEvent.dispatch(target, 'fetcherror', {
|
|
228
|
-
url,
|
|
229
|
-
status,
|
|
230
|
-
error,
|
|
231
|
-
durationMs: startedAt ? performance.now() - startedAt : undefined,
|
|
232
|
-
});
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
//# sourceMappingURL=event.js.map
|
package/dist/src/event.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/event.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview イベント振り分け機能
|
|
3
|
-
*
|
|
4
|
-
* クリック/変更/ロード/ポップステートイベントを検出し Procedure に委譲します。
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* イベントの振り分けを行うクラスです。
|
|
8
|
-
*/
|
|
9
|
-
export default class EventDispatcher {
|
|
10
|
-
/** Haori が history.state に埋め込む状態キー */
|
|
11
|
-
private static readonly HISTORY_STATE_KEY;
|
|
12
|
-
/** ルート要素 */
|
|
13
|
-
private readonly root;
|
|
14
|
-
/** クリックデリゲータ */
|
|
15
|
-
private readonly onClick;
|
|
16
|
-
/** 変更デリゲータ */
|
|
17
|
-
private readonly onChange;
|
|
18
|
-
/** ロードデリゲータ(キャプチャで拾う) */
|
|
19
|
-
private readonly onLoadCapture;
|
|
20
|
-
/** ページ全体のロード完了時の処理 */
|
|
21
|
-
private readonly onWindowLoad;
|
|
22
|
-
/**
|
|
23
|
-
* popstate デリゲータ(Haori が管理する履歴に戻った場合だけページをリロード)。
|
|
24
|
-
*
|
|
25
|
-
* @param event popstate イベント
|
|
26
|
-
*/
|
|
27
|
-
private readonly onPopstate;
|
|
28
|
-
/**
|
|
29
|
-
* コンストラクタ。
|
|
30
|
-
*
|
|
31
|
-
* @param root 監視対象のルート要素(デフォルトは document )
|
|
32
|
-
*/
|
|
33
|
-
constructor(root?: Document | HTMLElement);
|
|
34
|
-
/**
|
|
35
|
-
* イベントリスナーの登録を開始します。
|
|
36
|
-
* クリック、変更、ロード、popstate イベントを監視し、対応するProcedureを実行します。
|
|
37
|
-
*/
|
|
38
|
-
start(): void;
|
|
39
|
-
/**
|
|
40
|
-
* イベントリスナーの登録を停止します。
|
|
41
|
-
*/
|
|
42
|
-
stop(): void;
|
|
43
|
-
/**
|
|
44
|
-
* イベントを処理し、対応するProcedureを実行します。
|
|
45
|
-
*
|
|
46
|
-
* @param event 発生したイベント
|
|
47
|
-
* @param type イベントタイプ('click', 'change', 'load'など)
|
|
48
|
-
*/
|
|
49
|
-
private delegate;
|
|
50
|
-
/**
|
|
51
|
-
* イベントのターゲットから HTMLElement を取得します。
|
|
52
|
-
*
|
|
53
|
-
* @param target イベントのターゲット
|
|
54
|
-
* @param type イベントタイプ。click の場合のみ祖先委譲を行う
|
|
55
|
-
* @returns HTMLElement または null
|
|
56
|
-
*/
|
|
57
|
-
private getElementFromTarget;
|
|
58
|
-
/**
|
|
59
|
-
* data-click-* 属性を持つ最も近い祖先要素を返します。
|
|
60
|
-
*
|
|
61
|
-
* @param element 探索開始要素
|
|
62
|
-
* @returns 処理対象要素。見つからない場合は null
|
|
63
|
-
*/
|
|
64
|
-
private findClickableElement;
|
|
65
|
-
}
|
|
66
|
-
//# sourceMappingURL=event_dispatcher.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event_dispatcher.d.ts","sourceRoot":"","sources":["../../src/event_dispatcher.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAClC,sCAAsC;IACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAA2B;IAEpE,YAAY;IACZ,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAyB;IAE9C,gBAAgB;IAChB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmD;IAE3E,cAAc;IACd,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoD;IAE7E,yBAAyB;IACzB,OAAO,CAAC,QAAQ,CAAC,aAAa,CACC;IAE/B,sBAAsB;IACtB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAO3B;IAEF;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAMzB;IAEF;;;;OAIG;gBACS,IAAI,GAAE,QAAQ,GAAG,WAAsB;IAInD;;;OAGG;IACH,KAAK,IAAI,IAAI;IAWb;;OAEG;IACH,IAAI,IAAI,IAAI;IAQZ;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IA8ChB;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IA0B5B;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;CAY7B"}
|
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview イベント振り分け機能
|
|
3
|
-
*
|
|
4
|
-
* クリック/変更/ロード/ポップステートイベントを検出し Procedure に委譲します。
|
|
5
|
-
*/
|
|
6
|
-
import Fragment, { ElementFragment } from './fragment';
|
|
7
|
-
import Procedure from './procedure';
|
|
8
|
-
import Log from './log';
|
|
9
|
-
/**
|
|
10
|
-
* イベントの振り分けを行うクラスです。
|
|
11
|
-
*/
|
|
12
|
-
class EventDispatcher {
|
|
13
|
-
/**
|
|
14
|
-
* コンストラクタ。
|
|
15
|
-
*
|
|
16
|
-
* @param root 監視対象のルート要素(デフォルトは document )
|
|
17
|
-
*/
|
|
18
|
-
constructor(root = document) {
|
|
19
|
-
/** クリックデリゲータ */
|
|
20
|
-
this.onClick = (event) => this.delegate(event, 'click');
|
|
21
|
-
/** 変更デリゲータ */
|
|
22
|
-
this.onChange = (event) => this.delegate(event, 'change');
|
|
23
|
-
/** ロードデリゲータ(キャプチャで拾う) */
|
|
24
|
-
this.onLoadCapture = (event) => this.delegate(event, 'load');
|
|
25
|
-
/** ページ全体のロード完了時の処理 */
|
|
26
|
-
this.onWindowLoad = () => {
|
|
27
|
-
// ページロード時にも load を1回ディスパッチ
|
|
28
|
-
const html = document.documentElement;
|
|
29
|
-
const fragment = Fragment.get(html);
|
|
30
|
-
if (fragment) {
|
|
31
|
-
void new Procedure(fragment, 'load').run();
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
/**
|
|
35
|
-
* popstate デリゲータ(Haori が管理する履歴に戻った場合だけページをリロード)。
|
|
36
|
-
*
|
|
37
|
-
* @param event popstate イベント
|
|
38
|
-
*/
|
|
39
|
-
this.onPopstate = (event) => {
|
|
40
|
-
const state = event.state;
|
|
41
|
-
if (!state || state[EventDispatcher.HISTORY_STATE_KEY] !== true) {
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
location.reload();
|
|
45
|
-
};
|
|
46
|
-
this.root = root;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* イベントリスナーの登録を開始します。
|
|
50
|
-
* クリック、変更、ロード、popstate イベントを監視し、対応するProcedureを実行します。
|
|
51
|
-
*/
|
|
52
|
-
start() {
|
|
53
|
-
this.root.addEventListener('click', this.onClick);
|
|
54
|
-
this.root.addEventListener('change', this.onChange);
|
|
55
|
-
// load は非バブルなのでキャプチャで拾う
|
|
56
|
-
this.root.addEventListener('load', this.onLoadCapture, true);
|
|
57
|
-
// ページ全体のロード
|
|
58
|
-
window.addEventListener('load', this.onWindowLoad, { once: true });
|
|
59
|
-
// ブラウザの戻る・進む操作
|
|
60
|
-
window.addEventListener('popstate', this.onPopstate);
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* イベントリスナーの登録を停止します。
|
|
64
|
-
*/
|
|
65
|
-
stop() {
|
|
66
|
-
this.root.removeEventListener('click', this.onClick);
|
|
67
|
-
this.root.removeEventListener('change', this.onChange);
|
|
68
|
-
this.root.removeEventListener('load', this.onLoadCapture, true);
|
|
69
|
-
window.removeEventListener('load', this.onWindowLoad);
|
|
70
|
-
window.removeEventListener('popstate', this.onPopstate);
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* イベントを処理し、対応するProcedureを実行します。
|
|
74
|
-
*
|
|
75
|
-
* @param event 発生したイベント
|
|
76
|
-
* @param type イベントタイプ('click', 'change', 'load'など)
|
|
77
|
-
*/
|
|
78
|
-
delegate(event, type) {
|
|
79
|
-
const element = this.getElementFromTarget(event.target, type);
|
|
80
|
-
if (!element) {
|
|
81
|
-
return;
|
|
82
|
-
}
|
|
83
|
-
// data-{event}-prevent: ネイティブのデフォルト動作(type="submit" のフォーム送信や
|
|
84
|
-
// <a href> の遷移など)を抑止する。delegate はイベントリスナー内で同期実行される
|
|
85
|
-
// ため、ここで preventDefault すれば data-click-defer と併用してもデフォルト動作を
|
|
86
|
-
// 確実に止められる(伝播は止めないので他ライブラリのハンドラには影響しない)。
|
|
87
|
-
if (element.hasAttribute(`data-${type}-prevent`)) {
|
|
88
|
-
event.preventDefault();
|
|
89
|
-
}
|
|
90
|
-
const fragment = Fragment.get(element);
|
|
91
|
-
if (!fragment) {
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
// changeイベントの場合、DOM値と同期
|
|
95
|
-
if (type === 'change' && fragment instanceof ElementFragment) {
|
|
96
|
-
fragment.syncValue();
|
|
97
|
-
}
|
|
98
|
-
const runProcedure = () => {
|
|
99
|
-
new Procedure(fragment, type, event).run().catch(error => {
|
|
100
|
-
Log.error('[Haori]', 'Procedure execution error:', error);
|
|
101
|
-
});
|
|
102
|
-
};
|
|
103
|
-
// data-click-defer 指定時は、Haori の click 処理を次フレーム(または次マクロ
|
|
104
|
-
// タスク)へ遅延する。これにより Bootstrap など他ライブラリの「同一クリック
|
|
105
|
-
// イベント中に同期実行される」ハンドラ(collapse トグル等)が先に完了し、
|
|
106
|
-
// Haori の reset/copy 等による DOM 変更との競合を避けられる。
|
|
107
|
-
if (type === 'click' && element.hasAttribute('data-click-defer')) {
|
|
108
|
-
if (typeof requestAnimationFrame !== 'undefined') {
|
|
109
|
-
requestAnimationFrame(() => runProcedure());
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
setTimeout(runProcedure, 0);
|
|
113
|
-
}
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
runProcedure();
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* イベントのターゲットから HTMLElement を取得します。
|
|
120
|
-
*
|
|
121
|
-
* @param target イベントのターゲット
|
|
122
|
-
* @param type イベントタイプ。click の場合のみ祖先委譲を行う
|
|
123
|
-
* @returns HTMLElement または null
|
|
124
|
-
*/
|
|
125
|
-
getElementFromTarget(target, type) {
|
|
126
|
-
if (!target) {
|
|
127
|
-
return null;
|
|
128
|
-
}
|
|
129
|
-
if (target instanceof HTMLElement) {
|
|
130
|
-
if (type === 'click') {
|
|
131
|
-
return this.findClickableElement(target);
|
|
132
|
-
}
|
|
133
|
-
return target;
|
|
134
|
-
}
|
|
135
|
-
if (target instanceof Node) {
|
|
136
|
-
const element = target.parentElement;
|
|
137
|
-
if (!element) {
|
|
138
|
-
return null;
|
|
139
|
-
}
|
|
140
|
-
if (type === 'click') {
|
|
141
|
-
return this.findClickableElement(element);
|
|
142
|
-
}
|
|
143
|
-
return element;
|
|
144
|
-
}
|
|
145
|
-
return null;
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* data-click-* 属性を持つ最も近い祖先要素を返します。
|
|
149
|
-
*
|
|
150
|
-
* @param element 探索開始要素
|
|
151
|
-
* @returns 処理対象要素。見つからない場合は null
|
|
152
|
-
*/
|
|
153
|
-
findClickableElement(element) {
|
|
154
|
-
let current = element;
|
|
155
|
-
while (current) {
|
|
156
|
-
if (current.getAttributeNames().some(name => name.startsWith('data-click-'))) {
|
|
157
|
-
return current;
|
|
158
|
-
}
|
|
159
|
-
current = current.parentElement;
|
|
160
|
-
}
|
|
161
|
-
return null;
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
/** Haori が history.state に埋め込む状態キー */
|
|
165
|
-
EventDispatcher.HISTORY_STATE_KEY = '__haoriHistoryState__';
|
|
166
|
-
export default EventDispatcher;
|
|
167
|
-
//# sourceMappingURL=event_dispatcher.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event_dispatcher.js","sourceRoot":"","sources":["../../src/event_dispatcher.ts"],"names":[],"mappings":"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"}
|