stimulus-library 0.3.19 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/controllers/ajax/async_block_controller.d.ts +18 -18
  3. package/dist/controllers/ajax/lazy_block_controller.d.ts +9 -9
  4. package/dist/controllers/ajax/load_block_controller.d.ts +19 -19
  5. package/dist/controllers/ajax/poll_block_controller.d.ts +16 -16
  6. package/dist/controllers/anchor_spy_controller.d.ts +15 -15
  7. package/dist/controllers/back_link_controller.d.ts +19 -19
  8. package/dist/controllers/clipboard_controller.d.ts +18 -18
  9. package/dist/controllers/confirm_controller.d.ts +13 -13
  10. package/dist/controllers/confirm_navigation_controller.d.ts +15 -15
  11. package/dist/controllers/debug_controller.d.ts +6 -6
  12. package/dist/controllers/disable_with_controller.d.ts +25 -25
  13. package/dist/controllers/dismissable_controller.d.ts +6 -6
  14. package/dist/controllers/element_save_controller.d.ts +25 -25
  15. package/dist/controllers/empty_dom_controller.d.ts +29 -29
  16. package/dist/controllers/forms/auto_submit_form_controller.d.ts +15 -14
  17. package/dist/controllers/forms/auto_submit_form_controller.d.ts.map +1 -1
  18. package/dist/controllers/forms/autosize_controller.d.ts +9 -9
  19. package/dist/controllers/forms/char_count_controller.d.ts +26 -26
  20. package/dist/controllers/forms/checkbox_select_all_controller.d.ts +14 -14
  21. package/dist/controllers/forms/detect_dirty_controller.d.ts +16 -16
  22. package/dist/controllers/forms/detect_dirty_form_controller.d.ts +19 -19
  23. package/dist/controllers/forms/disable_inputs_controller.d.ts +16 -16
  24. package/dist/controllers/forms/enable_inputs_controller.d.ts +16 -16
  25. package/dist/controllers/forms/form_rc_controller.d.ts +13 -7
  26. package/dist/controllers/forms/form_rc_controller.d.ts.map +1 -1
  27. package/dist/controllers/forms/form_save_controller.d.ts +33 -33
  28. package/dist/controllers/forms/limited_selection_checkboxes_controller.d.ts +17 -17
  29. package/dist/controllers/forms/navigate_form_errors_controller.d.ts +34 -34
  30. package/dist/controllers/forms/nested_form_controller.d.ts +21 -21
  31. package/dist/controllers/forms/password_confirm_controller.d.ts +17 -17
  32. package/dist/controllers/forms/password_peek_controller.d.ts +8 -8
  33. package/dist/controllers/forms/remote_form_controller.d.ts +13 -13
  34. package/dist/controllers/forms/sync_inputs_controller.d.ts +21 -21
  35. package/dist/controllers/forms/value_warn_controller.d.ts +39 -39
  36. package/dist/controllers/forms/word_count_controller.d.ts +26 -26
  37. package/dist/controllers/media/fallback_image_controller.d.ts +27 -27
  38. package/dist/controllers/media/lightbox_image_controller.d.ts +29 -29
  39. package/dist/controllers/media/media_player_controller.d.ts +12 -12
  40. package/dist/controllers/prefetch_controller.d.ts +18 -18
  41. package/dist/controllers/responsive_iframe_controller.d.ts +23 -23
  42. package/dist/controllers/scroll/scroll_container_controller.d.ts +21 -21
  43. package/dist/controllers/scroll/scroll_into_focus_controller.d.ts +15 -15
  44. package/dist/controllers/scroll/scroll_to_bottom_controller.d.ts +11 -11
  45. package/dist/controllers/scroll/scroll_to_controller.d.ts +17 -17
  46. package/dist/controllers/scroll/scroll_to_top_controller.d.ts +11 -11
  47. package/dist/controllers/self_destruct_controller.d.ts +10 -10
  48. package/dist/controllers/sticky_controller.d.ts +19 -19
  49. package/dist/controllers/tables/table_sort_controller.d.ts +20 -20
  50. package/dist/controllers/tables/table_truncate_controller.d.ts +26 -26
  51. package/dist/controllers/teleport_controller.d.ts +15 -15
  52. package/dist/controllers/temporary_state_controller.d.ts +28 -28
  53. package/dist/controllers/toggle_class_controller.d.ts +35 -35
  54. package/dist/controllers/turbo_frame_rc_controller.d.ts +20 -20
  55. package/dist/controllers/turbo_frame_refresh_controller.d.ts +16 -16
  56. package/dist/controllers/utility/intersection_controller.d.ts +13 -13
  57. package/dist/controllers/utility/interval_controller.d.ts +13 -13
  58. package/dist/controllers/utility/presence_controller.d.ts +5 -5
  59. package/dist/controllers/utility/timeout_controller.d.ts +12 -12
  60. package/dist/controllers/utility/user_focus_controller.d.ts +10 -10
  61. package/dist/controllers/visual/clock_controller.d.ts +18 -18
  62. package/dist/controllers/visual/countdown_controller.d.ts +53 -53
  63. package/dist/controllers/visual/duration_controller.d.ts +27 -27
  64. package/dist/controllers/visual/tabs_controller.d.ts +37 -37
  65. package/dist/controllers/visual/time_distance_controller.d.ts +18 -18
  66. package/dist/controllers/visual/tree_view_controller.d.ts +29 -29
  67. package/dist/index.d.ts +66 -66
  68. package/dist/stimulus-library.cjs.js +2 -0
  69. package/dist/stimulus-library.cjs.js.map +1 -0
  70. package/dist/stimulus-library.es.js +2 -0
  71. package/dist/stimulus-library.es.js.map +1 -0
  72. package/dist/stimulus-library.umd.js +1 -1
  73. package/dist/stimulus-library.umd.js.map +1 -1
  74. package/dist/utilities/base_controller.d.ts +13 -13
  75. package/dist/utilities/base_controller.d.ts.map +1 -1
  76. package/dist/utilities/elements.d.ts +13 -13
  77. package/dist/utilities/ephemeral_controller.d.ts +5 -5
  78. package/dist/utilities/event_bus.d.ts +3 -3
  79. package/dist/utilities/requestSubmit.d.ts +2 -2
  80. package/dist/utilities/scroll.d.ts +10 -10
  81. package/dist/utilities/turbo.d.ts +1 -1
  82. package/package.json +16 -10
  83. package/dist/stimulus-library.js +0 -2
  84. package/dist/stimulus-library.js.map +0 -1
  85. package/dist/stimulus-library.modern.js +0 -2
  86. package/dist/stimulus-library.modern.js.map +0 -1
  87. package/dist/stimulus-library.module.js +0 -2
  88. package/dist/stimulus-library.module.js.map +0 -1
  89. package/src/controllers/ajax/async_block_controller.ts +0 -28
  90. package/src/controllers/ajax/lazy_block_controller.ts +0 -31
  91. package/src/controllers/ajax/load_block_controller.ts +0 -59
  92. package/src/controllers/ajax/poll_block_controller.ts +0 -32
  93. package/src/controllers/anchor_spy_controller.ts +0 -47
  94. package/src/controllers/back_link_controller.ts +0 -49
  95. package/src/controllers/clipboard_controller.ts +0 -47
  96. package/src/controllers/confirm_controller.ts +0 -50
  97. package/src/controllers/confirm_navigation_controller.ts +0 -51
  98. package/src/controllers/debug_controller.ts +0 -11
  99. package/src/controllers/disable_with_controller.ts +0 -116
  100. package/src/controllers/dismissable_controller.ts +0 -12
  101. package/src/controllers/element_save_controller.ts +0 -93
  102. package/src/controllers/empty_dom_controller.ts +0 -105
  103. package/src/controllers/forms/auto_submit_form_controller.ts +0 -59
  104. package/src/controllers/forms/autosize_controller.ts +0 -41
  105. package/src/controllers/forms/char_count_controller.ts +0 -91
  106. package/src/controllers/forms/checkbox_select_all_controller.ts +0 -57
  107. package/src/controllers/forms/detect_dirty_controller.ts +0 -116
  108. package/src/controllers/forms/detect_dirty_form_controller.ts +0 -127
  109. package/src/controllers/forms/disable_inputs_controller.ts +0 -44
  110. package/src/controllers/forms/enable_inputs_controller.ts +0 -44
  111. package/src/controllers/forms/form_rc_controller.ts +0 -20
  112. package/src/controllers/forms/form_save_controller.ts +0 -141
  113. package/src/controllers/forms/limited_selection_checkboxes_controller.ts +0 -44
  114. package/src/controllers/forms/navigate_form_errors_controller.ts +0 -144
  115. package/src/controllers/forms/nested_form_controller.ts +0 -68
  116. package/src/controllers/forms/password_confirm_controller.ts +0 -68
  117. package/src/controllers/forms/password_peek_controller.ts +0 -27
  118. package/src/controllers/forms/remote_form_controller.ts +0 -34
  119. package/src/controllers/forms/sync_inputs_controller.ts +0 -89
  120. package/src/controllers/forms/value_warn_controller.ts +0 -107
  121. package/src/controllers/forms/word_count_controller.ts +0 -86
  122. package/src/controllers/media/fallback_image_controller.ts +0 -108
  123. package/src/controllers/media/lightbox_image_controller.ts +0 -89
  124. package/src/controllers/media/media_player_controller.ts +0 -37
  125. package/src/controllers/prefetch_controller.ts +0 -99
  126. package/src/controllers/responsive_iframe_controller.ts +0 -75
  127. package/src/controllers/scroll/scroll_container_controller.ts +0 -73
  128. package/src/controllers/scroll/scroll_into_focus_controller.ts +0 -34
  129. package/src/controllers/scroll/scroll_to_bottom_controller.ts +0 -35
  130. package/src/controllers/scroll/scroll_to_controller.ts +0 -38
  131. package/src/controllers/scroll/scroll_to_top_controller.ts +0 -35
  132. package/src/controllers/self_destruct_controller.ts +0 -23
  133. package/src/controllers/sticky_controller.ts +0 -84
  134. package/src/controllers/tables/table_sort_controller.ts +0 -105
  135. package/src/controllers/tables/table_truncate_controller.ts +0 -106
  136. package/src/controllers/teleport_controller.ts +0 -64
  137. package/src/controllers/temporary_state_controller.ts +0 -82
  138. package/src/controllers/toggle_class_controller.ts +0 -149
  139. package/src/controllers/turbo_frame_rc_controller.ts +0 -77
  140. package/src/controllers/turbo_frame_refresh_controller.ts +0 -51
  141. package/src/controllers/utility/intersection_controller.ts +0 -51
  142. package/src/controllers/utility/interval_controller.ts +0 -34
  143. package/src/controllers/utility/presence_controller.ts +0 -13
  144. package/src/controllers/utility/timeout_controller.ts +0 -30
  145. package/src/controllers/utility/user_focus_controller.ts +0 -40
  146. package/src/controllers/visual/clock_controller.ts +0 -75
  147. package/src/controllers/visual/countdown_controller.ts +0 -198
  148. package/src/controllers/visual/duration_controller.ts +0 -106
  149. package/src/controllers/visual/tabs_controller.ts +0 -162
  150. package/src/controllers/visual/time_distance_controller.ts +0 -66
  151. package/src/controllers/visual/tree_view_controller.ts +0 -154
  152. package/src/index.ts +0 -71
  153. package/src/utilities/base_controller.ts +0 -143
  154. package/src/utilities/elements.ts +0 -47
  155. package/src/utilities/ephemeral_controller.ts +0 -45
  156. package/src/utilities/event_bus.ts +0 -3
  157. package/src/utilities/requestSubmit.ts +0 -23
  158. package/src/utilities/scroll.ts +0 -101
  159. package/src/utilities/turbo.ts +0 -3
  160. package/src/utilities/types.d.ts +0 -4
  161. package/tsconfig.json +0 -27
package/src/index.ts DELETED
@@ -1,71 +0,0 @@
1
- // Utilities
2
- import {ValueWarnController} from "./controllers/forms/value_warn_controller";
3
-
4
- export {BaseController} from "./utilities/base_controller";
5
- export {EphemeralController} from "./utilities/ephemeral_controller";
6
-
7
- // Controllers
8
- export {AnchorSpyController} from "./controllers/anchor_spy_controller";
9
- export {AsyncBlockController} from "./controllers/ajax/async_block_controller";
10
- export {AutoSubmitFormController} from "./controllers/forms/auto_submit_form_controller";
11
- export {AutosizeController} from "./controllers/forms/autosize_controller";
12
- export {BackLinkController} from "./controllers/back_link_controller";
13
- export {CharCountController} from "./controllers/forms/char_count_controller";
14
- export {CheckboxSelectAllController} from "./controllers/forms/checkbox_select_all_controller";
15
- export {ClipboardController} from "./controllers/clipboard_controller";
16
- export {ClockController} from "./controllers/visual/clock_controller";
17
- export {ConfirmController} from "./controllers/confirm_controller";
18
- export {ConfirmNavigationController} from "./controllers/confirm_navigation_controller";
19
- export {CountdownController} from "./controllers/visual/countdown_controller";
20
- export {DebugController} from "./controllers/debug_controller";
21
- export {DetectDirtyController, isDirty} from "./controllers/forms/detect_dirty_controller";
22
- export {DetectDirtyFormController, isFormDirty} from "./controllers/forms/detect_dirty_form_controller";
23
- export {DisableInputsController} from "./controllers/forms/disable_inputs_controller";
24
- export {DisableWithController} from "./controllers/disable_with_controller";
25
- export {DismissableController} from "./controllers/dismissable_controller";
26
- export {DurationController} from "./controllers/visual/duration_controller";
27
- export {ElementSaveController} from "./controllers/element_save_controller";
28
- export {EmptyDomController} from "./controllers/empty_dom_controller";
29
- export {EnableInputsController} from "./controllers/forms/enable_inputs_controller";
30
- export {FallbackImageController} from "./controllers/media/fallback_image_controller";
31
- export {FormRcController} from "./controllers/forms/form_rc_controller";
32
- export {FormSaveController} from "./controllers/forms/form_save_controller";
33
- export {IntersectionController} from "./controllers/utility/intersection_controller";
34
- export {IntervalController} from "./controllers/utility/interval_controller";
35
- export {LazyBlockController} from "./controllers/ajax/lazy_block_controller";
36
- export {LightboxImageController} from "./controllers/media/lightbox_image_controller";
37
- export {LimitedSelectionCheckboxesController} from "./controllers/forms/limited_selection_checkboxes_controller";
38
- export {LoadBlockController} from "./controllers/ajax/load_block_controller";
39
- export {MediaPlayerController} from "./controllers/media/media_player_controller";
40
- export {NavigateFormErrorsController} from "./controllers/forms/navigate_form_errors_controller";
41
- export {NestedFormController} from "./controllers/forms/nested_form_controller";
42
- export {PasswordConfirmController} from "./controllers/forms/password_confirm_controller";
43
- export {PasswordPeekController} from "./controllers/forms/password_peek_controller";
44
- export {PollBlockController} from "./controllers/ajax/poll_block_controller";
45
- export {PrefetchController} from "./controllers/prefetch_controller";
46
- export {PresenceController} from "./controllers/utility/presence_controller";
47
- export {RemoteFormController} from "./controllers/forms/remote_form_controller";
48
- export {RemoveController} from "./controllers/dismissable_controller";
49
- export {ResponsiveIframeBodyController, ResponsiveIframeWrapperController} from "./controllers/responsive_iframe_controller";
50
- export {ScrollContainerController} from "./controllers/scroll/scroll_container_controller";
51
- export {ScrollIntoFocusController} from "./controllers/scroll/scroll_into_focus_controller";
52
- export {ScrollToBottomController} from "./controllers/scroll/scroll_to_bottom_controller";
53
- export {ScrollToController} from "./controllers/scroll/scroll_to_controller";
54
- export {ScrollToTopController} from "./controllers/scroll/scroll_to_top_controller";
55
- export {SelfDestructController} from "./controllers/self_destruct_controller";
56
- export {StickyController} from "./controllers/sticky_controller";
57
- export {SyncInputsController} from "./controllers/forms/sync_inputs_controller";
58
- export {TableSortController} from "./controllers/tables/table_sort_controller";
59
- export {TableTruncateController} from "./controllers/tables/table_truncate_controller";
60
- export {TabsController} from "./controllers/visual/tabs_controller";
61
- export {TeleportController} from "./controllers/teleport_controller";
62
- export {TemporaryStateController, applyTemporaryState, applyTemporaryClass} from "./controllers/temporary_state_controller";
63
- export {TimeDistanceController} from "./controllers/visual/time_distance_controller";
64
- export {TimeoutController} from "./controllers/utility/timeout_controller";
65
- export {ToggleClassController} from "./controllers/toggle_class_controller";
66
- export {TreeViewController} from "./controllers/visual/tree_view_controller";
67
- export {TurboFrameRCController} from "./controllers/turbo_frame_rc_controller";
68
- export {TurboFrameRefreshController} from "./controllers/turbo_frame_refresh_controller";
69
- export {UserFocusController} from "./controllers/utility/user_focus_controller";
70
- export {ValueWarnController} from "./controllers/forms/value_warn_controller";
71
- export {WordCountController} from "./controllers/forms/word_count_controller";
@@ -1,143 +0,0 @@
1
- import {Context, Controller} from "stimulus";
2
-
3
- export class BaseController extends Controller {
4
-
5
- constructor(context: Context) {
6
- super(context);
7
- // @ts-ignore
8
- if (!this.application.debug) {
9
- return this;
10
- }
11
- return new Proxy(this, {
12
- get: (obj, prop) => {
13
- let returnVal = Reflect.get(obj, prop);
14
- let self = this;
15
- if (logProperty(prop.toString())) {
16
- if (typeof returnVal == "function") {
17
- return new Proxy(returnVal, {
18
- apply(target: any, thisArg: any, argArray?: any): any {
19
- self.log(prop.toString(), {
20
- args: argArray,
21
- });
22
- return Reflect.apply(target, thisArg, argArray);
23
- },
24
- });
25
- } else {
26
- this.log(prop.toString());
27
- }
28
- }
29
- return returnVal;
30
- },
31
- });
32
- }
33
-
34
- get el(): HTMLElement {
35
- return this.element as HTMLElement;
36
- }
37
-
38
- get isTurboPreview(): boolean {
39
- return document.documentElement.hasAttribute('data-turbo-preview') || document.documentElement.hasAttribute('data-turbolinks-preview');
40
- }
41
-
42
- get isTurbolinksPreview(): boolean {
43
- return this.isTurboPreview;
44
- }
45
-
46
- get csrfToken(): string | null {
47
- return this.metaValue('csrf-token');
48
- }
49
-
50
- metaValue(name: string): string | null {
51
- const element = document.head.querySelector(`meta[name="${name}"]`);
52
- return element?.getAttribute('content') || null;
53
- }
54
-
55
- dispatch(element: HTMLElement, eventName: string, options: CustomEventInit = {}) {
56
- let mergedOptions = Object.assign({}, {bubbles: true, cancelable: true, detail: {target: element}}, options);
57
- if (!!mergedOptions.detail.target) {
58
- mergedOptions.detail.target = element;
59
- }
60
- let event = new CustomEvent(eventName, mergedOptions);
61
- this.logEvent(eventName, event, element);
62
- element.dispatchEvent(event);
63
- }
64
-
65
- log(functionName: string, args: {} = {}): void {
66
- // @ts-ignore
67
- if (!this.application.debug) {
68
- return;
69
- }
70
- let logger = console;
71
- logger.groupCollapsed(`%c${this.identifier} %c#${functionName}`, "color: #3B82F6", "color: unset");
72
- logger.log({
73
- element: this.element,
74
- ...args,
75
- });
76
- logger.groupEnd();
77
- }
78
-
79
- warn(warning: string, args: {} = {}): void {
80
- // @ts-ignore
81
- if (!this.application.debug) {
82
- return;
83
- }
84
- let logger = console;
85
- logger.groupCollapsed(`%c${this.identifier} %c#${warning}`, "color: F39B1AFF", "color: unset");
86
- logger.warn({
87
- element: this.element,
88
- ...args,
89
- });
90
- logger.groupEnd();
91
- }
92
-
93
- logEvent(eventName: string, event: CustomEvent, element: HTMLElement) {
94
- // @ts-ignore
95
- if (!this.application.debug) {
96
- return;
97
- }
98
- let logger = console;
99
- logger.groupCollapsed(`%c${this.identifier} %c${eventName}%c`, "color: #3B82F6", "color: #0be000", "color: unset");
100
- logger.log({element});
101
- logger.groupEnd();
102
- }
103
-
104
- }
105
-
106
- function logProperty(prop: string): boolean {
107
- switch (prop) {
108
- case "application":
109
- case "el":
110
- case "element":
111
- case "constructor":
112
- case "initialize":
113
- case "log":
114
- case "logEvent":
115
- case "dispatch":
116
- case "data":
117
- case "valueDescriptorMap":
118
- case "mutate":
119
- case "identifier":
120
- return false;
121
- }
122
-
123
- if (/^_.*?$/.test(prop)) {
124
- return false;
125
- }
126
- if (/^.*?Target(s)?$/.test(prop)) {
127
- return false;
128
- }
129
- if (/^.*?Value$/.test(prop)) {
130
- return false;
131
- }
132
- if (/^.*?ValueChanged$/.test(prop)) {
133
- return false;
134
- }
135
- if (/^.*?Class$/.test(prop)) {
136
- return false;
137
- }
138
- if (/^.*?Classes$/.test(prop)) {
139
- return false;
140
- }
141
-
142
- return true;
143
- }
@@ -1,47 +0,0 @@
1
- export function isHTMLLinkElement(element: Element): element is HTMLLinkElement {
2
- return element.nodeName == "LINK";
3
- }
4
-
5
- export function isHTMLAnchorElement(element: Element): element is HTMLAnchorElement {
6
- return element.nodeName == "A";
7
- }
8
-
9
- export function isHTMLFormElement(element: Element): element is HTMLFormElement {
10
- return element.nodeName == "FORM";
11
- }
12
-
13
- export function isHTMLInputElement(element: Element): element is HTMLInputElement {
14
- return element.nodeName == "INPUT";
15
- }
16
-
17
- export function isHTMLTextAreaElement(element: Element): element is HTMLTextAreaElement {
18
- return element.nodeName == "TEXTAREA";
19
- }
20
-
21
- export function isHTMLButtonElement(element: Element): element is HTMLButtonElement {
22
- return element.nodeName == "BUTTON";
23
- }
24
-
25
- export function isHTMLSelectElement(element: Element): element is HTMLSelectElement {
26
- return element.nodeName == "SELECT";
27
- }
28
-
29
- export function isHTMLImageElement(element: Element): element is HTMLImageElement {
30
- return element.nodeName == "IMG";
31
- }
32
-
33
- export function isElementCheckable(element: Element): element is HTMLInputElement & { checked: boolean } {
34
- return isHTMLInputElement(element) && (element.type === "radio" || element.type === "checkbox");
35
- }
36
-
37
- export function isTypeOfFormInputElement(element: Element): element is (HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement) {
38
- return isHTMLInputElement(element) || isHTMLSelectElement(element) || isHTMLTextAreaElement(element);
39
- }
40
-
41
- export function createHiddenButton(type: "submit" | "reset"): HTMLButtonElement {
42
- let button = document.createElement('button');
43
- button.type = type;
44
- button.style.display = 'none';
45
- button.dataset.sythentic = 'true';
46
- return button;
47
- }
@@ -1,45 +0,0 @@
1
- import camelCase from "camelcase";
2
- import {BaseController} from "./base_controller";
3
-
4
- export class EphemeralController extends BaseController {
5
-
6
- _cleanupSelf() {
7
- this.cleanup(this.el);
8
- }
9
-
10
- cleanup(element: HTMLElement) {
11
- element.dataset.controller = element.dataset.controller?.replaceAll(new RegExp(`(\s|^)${this.identifier}(\s|$)`, "g"), "") || "";
12
- if (element.dataset.controller == "") {
13
- // If there are no controllers left, remove the attribute
14
- delete element.dataset.controller;
15
- }
16
-
17
- let substringIdentifierValueRegex = new RegExp(`(\s|^)${this.identifier}\\..+?(\s|$)`, "g");
18
- element.dataset.target = element.dataset.target?.replaceAll(substringIdentifierValueRegex, "") || "";
19
- delete element.dataset[camelCase(`${this.identifier}-target`)];
20
- if (element.dataset.target == "") {
21
- // If there are no targets left, remove the attribute
22
- delete element.dataset.target;
23
- }
24
-
25
- element.dataset.action = element.dataset.target?.replaceAll(substringIdentifierValueRegex, "") || "";
26
- delete element.dataset[camelCase(`${this.identifier}-action`)];
27
- if (element.dataset.action == "") {
28
- // If there are no actions left, remove the attribute
29
- delete element.dataset.action;
30
- }
31
-
32
- // @ts-ignore
33
- let values = this.constructor.values;
34
- if (values) {
35
- Object.keys(values).forEach(val => delete element.dataset[camelCase(`${this.identifier}-${val}-value`)]);
36
- }
37
-
38
- // @ts-ignore
39
- let classes = this.constructor.classes;
40
- if (classes) {
41
- Object.keys(classes).forEach(val => delete element.dataset[camelCase(`${this.identifier}-${val}-class`)]);
42
- }
43
- }
44
-
45
- }
@@ -1,3 +0,0 @@
1
- import mitt from 'mitt';
2
-
3
- export const EventBus = mitt<{ [idx: string]: any }>();
@@ -1,23 +0,0 @@
1
- import {createHiddenButton} from "./elements";
2
-
3
- export function requestSubmit(form: HTMLFormElement) {
4
- if (form.requestSubmit) {
5
- form.requestSubmit();
6
- } else {
7
- let button: HTMLButtonElement | null = form.querySelector('button[type="submit"]');
8
- if (!button) {
9
- button = button = createHiddenButton("submit");
10
- form.insertAdjacentElement('beforeend', button);
11
- }
12
- button.click();
13
- }
14
- }
15
-
16
- export function requestReset(form: HTMLFormElement) {
17
- let button: HTMLButtonElement | null = form.querySelector('button[type="reset"]');
18
- if (!button) {
19
- button = createHiddenButton("reset");
20
- form.insertAdjacentElement('beforeend', button);
21
- }
22
- button.click();
23
- }
@@ -1,101 +0,0 @@
1
- const smoothSupported = "scrollBehavior" in document.documentElement.style;
2
- let smoothPolyfilled: boolean;
3
-
4
- export async function scrollToElement(element: Element, {behavior = "smooth", block = "start", inline = "nearest"}: ScrollIntoViewOptions = {}) {
5
- if (behavior == "smooth" && !smoothSupported) {
6
- await polyfillSmooth();
7
- }
8
- element.scrollIntoView({behavior, block, inline});
9
- }
10
-
11
- export async function scrollAbsoluteTop(element: Window | Element, {behavior = "smooth"}: ScrollOptions = {}) {
12
- if (behavior == "smooth" && !smoothSupported) {
13
- await polyfillSmooth();
14
- }
15
- element.scrollTo({top: 0, left: 0, behavior});
16
- }
17
-
18
- export async function scrollAbsoluteBottom(element: Window | Element, {behavior = "smooth"}: ScrollOptions = {}) {
19
- if (behavior == "smooth" && !smoothSupported) {
20
- await polyfillSmooth();
21
- }
22
- if (element == window) {
23
- element.scrollTo({top: document.body.scrollHeight, left: 0, behavior});
24
- } else {
25
- element.scrollTo({top: (element as Element).scrollHeight, left: 0, behavior});
26
- }
27
- }
28
-
29
- export async function scrollAbsoluteLeft(element: Window | Element, {behavior = "smooth"}: ScrollOptions = {}) {
30
- if (behavior == "smooth" && !smoothSupported) {
31
- await polyfillSmooth();
32
- }
33
- element.scrollTo({left: 0, behavior});
34
- }
35
-
36
- export async function scrollAbsoluteRight(element: Window | Element, {behavior = "smooth"}: ScrollOptions = {}) {
37
- if (behavior == "smooth" && !smoothSupported) {
38
- await polyfillSmooth();
39
- }
40
- if (element == window) {
41
- element.scrollTo({left: document.body.scrollWidth, behavior});
42
- } else {
43
- element.scrollTo({left: (element as Element).scrollWidth, behavior});
44
- }
45
- }
46
-
47
- export async function scrollUp(element: Window | Element, amount: number, {behavior = "smooth"}: ScrollOptions = {}) {
48
- if (behavior == "smooth" && !smoothSupported) {
49
- await polyfillSmooth();
50
- }
51
- element.scrollBy({top: -amount, left: 0, behavior});
52
- }
53
-
54
- export async function scrollDown(element: Window | Element, amount: number, {behavior = "smooth"}: ScrollOptions = {}) {
55
- if (behavior == "smooth" && !smoothSupported) {
56
- await polyfillSmooth();
57
- }
58
- element.scrollBy({top: amount, left: 0, behavior});
59
- }
60
-
61
- export async function scrollLeft(element: Window | Element, amount: number, {behavior = "smooth"}: ScrollOptions = {}) {
62
- if (behavior == "smooth" && !smoothSupported) {
63
- await polyfillSmooth();
64
- }
65
- element.scrollBy({top: 0, left: -amount, behavior});
66
- }
67
-
68
- export async function scrollRight(element: Window | Element, amount: number, {behavior = "smooth"}: ScrollOptions = {}) {
69
- if (behavior == "smooth" && !smoothSupported) {
70
- await polyfillSmooth();
71
- }
72
- element.scrollBy({top: 0, left: amount, behavior});
73
- }
74
-
75
- async function polyfillSmooth() {
76
- const {polyfill} = await import(/* webpackChunkName: "smoothscroll-polyfill" */ "smoothscroll-polyfill");
77
- if (smoothPolyfilled) {
78
- return;
79
- }
80
- smoothPolyfilled = true;
81
- polyfill();
82
- }
83
-
84
- export function getScrollParent(node: HTMLElement | null): Window | HTMLElement | null {
85
- if (!node) {
86
- return null;
87
- }
88
-
89
- if (node == document.body) {
90
- return window;
91
- }
92
-
93
- const overflowY = getComputedStyle(node).overflowY;
94
- const isScrollable = overflowY !== "visible" && overflowY !== "hidden";
95
-
96
- if (isScrollable && node.scrollHeight >= node.clientHeight) {
97
- return node;
98
- }
99
-
100
- return getScrollParent(node.parentElement) || document.body;
101
- }
@@ -1,3 +0,0 @@
1
- export function isTurboFrame(element: HTMLElement): element is TurboFrame {
2
- return element.nodeName == "TURBO-FRAME";
3
- }
@@ -1,4 +0,0 @@
1
- interface TurboFrame extends HTMLElement {
2
- nodeName: "TURBO-FRAME"
3
- src: string
4
- }
package/tsconfig.json DELETED
@@ -1,27 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "strict": true,
4
- "declaration": true,
5
- "declarationMap": true,
6
- "moduleResolution": "node",
7
- "esModuleInterop": true,
8
- "module": "ESNext",
9
- "target": "ESNext",
10
- "sourceMap": true,
11
- "outDir": "dist",
12
- "rootDir": "src",
13
- "baseUrl": ".",
14
- "paths": {
15
- "src/*": [
16
- "src/index.ts"
17
- ]
18
- }
19
- },
20
- "include": [
21
- "./src/**/*.js",
22
- "./src/**/*.ts"
23
- ],
24
- "exclude": [
25
- "node_modules"
26
- ]
27
- }