fomantic-ui 2.9.3-beta.9 → 2.9.3

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 (290) hide show
  1. package/.all-contributorsrc +2 -2
  2. package/.github/FUNDING.yml +1 -1
  3. package/.github/auto_assign.yml +1 -1
  4. package/.github/workflows/ci.yml +5 -5
  5. package/.github/workflows/nightly.yml +1 -1
  6. package/.github/workflows/release.yml +1 -1
  7. package/CHANGELOG.md +131 -0
  8. package/CONTRIBUTORS.md +1 -1
  9. package/README.md +5 -2
  10. package/SECURITY.md +2 -1
  11. package/dist/components/accordion.css +1 -1
  12. package/dist/components/accordion.js +2 -2
  13. package/dist/components/accordion.min.css +1 -1
  14. package/dist/components/accordion.min.js +2 -2
  15. package/dist/components/ad.css +1 -1
  16. package/dist/components/ad.min.css +1 -1
  17. package/dist/components/api.js +10 -9
  18. package/dist/components/api.min.js +2 -2
  19. package/dist/components/breadcrumb.css +1 -1
  20. package/dist/components/breadcrumb.min.css +1 -1
  21. package/dist/components/button.css +2 -2
  22. package/dist/components/button.min.css +2 -2
  23. package/dist/components/calendar.css +140 -3
  24. package/dist/components/calendar.js +2 -2
  25. package/dist/components/calendar.min.css +2 -2
  26. package/dist/components/calendar.min.js +2 -2
  27. package/dist/components/card.css +1 -1
  28. package/dist/components/card.min.css +1 -1
  29. package/dist/components/checkbox.css +50 -6
  30. package/dist/components/checkbox.js +5 -3
  31. package/dist/components/checkbox.min.css +2 -2
  32. package/dist/components/checkbox.min.js +2 -2
  33. package/dist/components/comment.css +6 -1
  34. package/dist/components/comment.min.css +2 -2
  35. package/dist/components/container.css +62 -1
  36. package/dist/components/container.min.css +2 -2
  37. package/dist/components/dimmer.css +3 -3
  38. package/dist/components/dimmer.js +2 -2
  39. package/dist/components/dimmer.min.css +2 -2
  40. package/dist/components/dimmer.min.js +2 -2
  41. package/dist/components/divider.css +1 -1
  42. package/dist/components/divider.min.css +1 -1
  43. package/dist/components/dropdown.css +101 -25
  44. package/dist/components/dropdown.js +29 -21
  45. package/dist/components/dropdown.min.css +2 -2
  46. package/dist/components/dropdown.min.js +2 -2
  47. package/dist/components/embed.css +1 -1
  48. package/dist/components/embed.js +2 -2
  49. package/dist/components/embed.min.css +1 -1
  50. package/dist/components/embed.min.js +2 -2
  51. package/dist/components/emoji.css +697 -249
  52. package/dist/components/emoji.min.css +2 -2
  53. package/dist/components/feed.css +486 -5
  54. package/dist/components/feed.min.css +2 -2
  55. package/dist/components/flag.css +3 -2
  56. package/dist/components/flag.min.css +2 -2
  57. package/dist/components/flyout.css +1 -1
  58. package/dist/components/flyout.js +2 -33
  59. package/dist/components/flyout.min.css +1 -1
  60. package/dist/components/flyout.min.js +2 -2
  61. package/dist/components/form.css +34 -32
  62. package/dist/components/form.js +72 -31
  63. package/dist/components/form.min.css +2 -2
  64. package/dist/components/form.min.js +2 -2
  65. package/dist/components/grid.css +107 -107
  66. package/dist/components/grid.min.css +2 -2
  67. package/dist/components/header.css +1 -1
  68. package/dist/components/header.min.css +1 -1
  69. package/dist/components/icon.css +62 -62
  70. package/dist/components/icon.min.css +2 -2
  71. package/dist/components/image.css +1 -1
  72. package/dist/components/image.min.css +1 -1
  73. package/dist/components/input.css +3 -27
  74. package/dist/components/input.min.css +2 -2
  75. package/dist/components/item.css +6 -1
  76. package/dist/components/item.min.css +2 -2
  77. package/dist/components/label.css +21 -2
  78. package/dist/components/label.min.css +2 -2
  79. package/dist/components/list.css +13 -13
  80. package/dist/components/list.min.css +2 -2
  81. package/dist/components/loader.css +282 -282
  82. package/dist/components/loader.min.css +2 -2
  83. package/dist/components/menu.css +13 -7
  84. package/dist/components/menu.min.css +2 -2
  85. package/dist/components/message.css +1 -1
  86. package/dist/components/message.min.css +1 -1
  87. package/dist/components/modal.css +5 -1
  88. package/dist/components/modal.js +3 -3
  89. package/dist/components/modal.min.css +2 -2
  90. package/dist/components/modal.min.js +2 -2
  91. package/dist/components/nag.css +1 -1
  92. package/dist/components/nag.js +3 -3
  93. package/dist/components/nag.min.css +1 -1
  94. package/dist/components/nag.min.js +2 -2
  95. package/dist/components/placeholder.css +1 -1
  96. package/dist/components/placeholder.min.css +1 -1
  97. package/dist/components/popup.css +3 -3
  98. package/dist/components/popup.js +11 -9
  99. package/dist/components/popup.min.css +2 -2
  100. package/dist/components/popup.min.js +2 -2
  101. package/dist/components/progress.css +1 -1
  102. package/dist/components/progress.js +2 -2
  103. package/dist/components/progress.min.css +1 -1
  104. package/dist/components/progress.min.js +2 -2
  105. package/dist/components/rail.css +1 -1
  106. package/dist/components/rail.min.css +1 -1
  107. package/dist/components/rating.css +1 -1
  108. package/dist/components/rating.js +2 -2
  109. package/dist/components/rating.min.css +1 -1
  110. package/dist/components/rating.min.js +2 -2
  111. package/dist/components/reset.css +1 -1
  112. package/dist/components/reset.min.css +1 -1
  113. package/dist/components/reveal.css +1 -1
  114. package/dist/components/reveal.min.css +1 -1
  115. package/dist/components/search.css +26 -1
  116. package/dist/components/search.js +5 -4
  117. package/dist/components/search.min.css +2 -2
  118. package/dist/components/search.min.js +2 -2
  119. package/dist/components/segment.css +159 -33
  120. package/dist/components/segment.min.css +2 -2
  121. package/dist/components/shape.css +1 -1
  122. package/dist/components/shape.js +2 -2
  123. package/dist/components/shape.min.css +1 -1
  124. package/dist/components/shape.min.js +2 -2
  125. package/dist/components/sidebar.css +1 -1
  126. package/dist/components/sidebar.js +2 -32
  127. package/dist/components/sidebar.min.css +1 -1
  128. package/dist/components/sidebar.min.js +2 -2
  129. package/dist/components/site.css +1 -1
  130. package/dist/components/site.js +2 -2
  131. package/dist/components/site.min.css +1 -1
  132. package/dist/components/site.min.js +2 -2
  133. package/dist/components/slider.css +1 -1
  134. package/dist/components/slider.js +126 -26
  135. package/dist/components/slider.min.css +1 -1
  136. package/dist/components/slider.min.js +2 -2
  137. package/dist/components/state.js +2 -2
  138. package/dist/components/state.min.js +2 -2
  139. package/dist/components/statistic.css +1 -1
  140. package/dist/components/statistic.min.css +1 -1
  141. package/dist/components/step.css +1 -1
  142. package/dist/components/step.min.css +1 -1
  143. package/dist/components/sticky.css +1 -1
  144. package/dist/components/sticky.js +2 -2
  145. package/dist/components/sticky.min.css +1 -1
  146. package/dist/components/sticky.min.js +2 -2
  147. package/dist/components/tab.css +1 -1
  148. package/dist/components/tab.js +6 -4
  149. package/dist/components/tab.min.css +1 -1
  150. package/dist/components/tab.min.js +2 -2
  151. package/dist/components/table.css +65 -1
  152. package/dist/components/table.min.css +2 -2
  153. package/dist/components/text.css +1 -1
  154. package/dist/components/text.min.css +1 -1
  155. package/dist/components/toast.css +6 -1
  156. package/dist/components/toast.js +2 -2
  157. package/dist/components/toast.min.css +2 -2
  158. package/dist/components/toast.min.js +2 -2
  159. package/dist/components/transition.css +1 -1
  160. package/dist/components/transition.js +3 -3
  161. package/dist/components/transition.min.css +1 -1
  162. package/dist/components/transition.min.js +2 -2
  163. package/dist/components/visibility.js +2 -2
  164. package/dist/components/visibility.min.js +2 -2
  165. package/dist/semantic.css +2822 -954
  166. package/dist/semantic.js +302 -206
  167. package/dist/semantic.min.css +2 -2
  168. package/dist/semantic.min.js +2 -2
  169. package/package.json +5 -4
  170. package/scripts/nightly-version.js +2 -2
  171. package/src/definitions/behaviors/api.js +9 -8
  172. package/src/definitions/behaviors/form.js +71 -30
  173. package/src/definitions/behaviors/state.js +1 -1
  174. package/src/definitions/behaviors/visibility.js +1 -1
  175. package/src/definitions/collections/form.less +9 -14
  176. package/src/definitions/collections/grid.less +106 -106
  177. package/src/definitions/collections/menu.less +29 -22
  178. package/src/definitions/collections/table.less +66 -0
  179. package/src/definitions/elements/button.less +1 -1
  180. package/src/definitions/elements/container.less +63 -0
  181. package/src/definitions/elements/icon.less +5 -5
  182. package/src/definitions/elements/input.less +2 -2
  183. package/src/definitions/elements/label.less +21 -1
  184. package/src/definitions/elements/list.less +13 -13
  185. package/src/definitions/elements/loader.less +71 -71
  186. package/src/definitions/elements/segment.less +110 -13
  187. package/src/definitions/globals/site.js +1 -1
  188. package/src/definitions/modules/accordion.js +1 -1
  189. package/src/definitions/modules/calendar.js +1 -1
  190. package/src/definitions/modules/calendar.less +40 -11
  191. package/src/definitions/modules/checkbox.js +4 -2
  192. package/src/definitions/modules/checkbox.less +61 -5
  193. package/src/definitions/modules/dimmer.js +1 -1
  194. package/src/definitions/modules/dimmer.less +2 -2
  195. package/src/definitions/modules/dropdown.js +28 -20
  196. package/src/definitions/modules/dropdown.less +124 -21
  197. package/src/definitions/modules/embed.js +1 -1
  198. package/src/definitions/modules/flyout.js +1 -32
  199. package/src/definitions/modules/modal.js +2 -2
  200. package/src/definitions/modules/modal.less +6 -0
  201. package/src/definitions/modules/nag.js +2 -2
  202. package/src/definitions/modules/popup.js +10 -8
  203. package/src/definitions/modules/popup.less +4 -4
  204. package/src/definitions/modules/progress.js +1 -1
  205. package/src/definitions/modules/rating.js +1 -1
  206. package/src/definitions/modules/search.js +4 -3
  207. package/src/definitions/modules/search.less +31 -0
  208. package/src/definitions/modules/shape.js +1 -1
  209. package/src/definitions/modules/sidebar.js +1 -31
  210. package/src/definitions/modules/slider.js +125 -25
  211. package/src/definitions/modules/sticky.js +1 -1
  212. package/src/definitions/modules/tab.js +5 -3
  213. package/src/definitions/modules/toast.js +1 -1
  214. package/src/definitions/modules/toast.less +7 -0
  215. package/src/definitions/modules/transition.js +2 -2
  216. package/src/definitions/views/comment.less +7 -0
  217. package/src/definitions/views/feed.less +238 -32
  218. package/src/definitions/views/item.less +7 -0
  219. package/src/theme.less +1 -1
  220. package/src/themes/amazon/elements/button.variables +5 -1
  221. package/src/themes/bootstrap3/elements/button.variables +5 -1
  222. package/src/themes/chubby/elements/header.variables +6 -1
  223. package/src/themes/default/collections/message.variables +3 -9
  224. package/src/themes/default/collections/table.variables +11 -8
  225. package/src/themes/default/elements/button.variables +8 -10
  226. package/src/themes/default/elements/container.variables +3 -0
  227. package/src/themes/default/elements/emoji.variables +179 -67
  228. package/src/themes/default/elements/flag.variables +1 -1
  229. package/src/themes/default/elements/label.variables +6 -1
  230. package/src/themes/default/elements/segment.variables +8 -0
  231. package/src/themes/default/globals/site.variables +362 -341
  232. package/src/themes/default/globals/variation.variables +24 -1
  233. package/src/themes/default/modules/calendar.variables +11 -0
  234. package/src/themes/default/modules/checkbox.variables +12 -0
  235. package/src/themes/default/modules/dropdown.variables +10 -4
  236. package/src/themes/default/modules/modal.variables +3 -0
  237. package/src/themes/default/modules/popup.variables +1 -1
  238. package/src/themes/default/modules/search.variables +3 -0
  239. package/src/themes/default/modules/toast.variables +6 -5
  240. package/src/themes/default/views/card.variables +4 -12
  241. package/src/themes/default/views/feed.variables +55 -1
  242. package/src/themes/default/views/item.variables +5 -5
  243. package/src/themes/flat/collections/form.variables +4 -4
  244. package/src/themes/flat/globals/site.variables +1 -1
  245. package/src/themes/github/elements/button.variables +5 -1
  246. package/src/themes/joypixels/elements/emoji.variables +182 -70
  247. package/src/themes/material/globals/site.variables +1 -1
  248. package/src/themes/twitter/elements/button.variables +5 -1
  249. package/src/themes/twitter/elements/emoji.variables +178 -66
  250. package/tasks/admin/components/create.js +1 -2
  251. package/tasks/admin/components/init.js +3 -4
  252. package/tasks/admin/components/update.js +2 -3
  253. package/tasks/admin/distributions/create.js +9 -5
  254. package/tasks/admin/distributions/init.js +3 -4
  255. package/tasks/admin/distributions/update.js +2 -3
  256. package/tasks/config/project/install.js +3 -0
  257. package/tasks/config/tasks.js +1 -8
  258. package/tasks/config/user.js +1 -1
  259. package/tasks/docs/build.js +2 -2
  260. package/tasks/docs/metadata.js +1 -1
  261. package/tasks/docs/serve.js +1 -1
  262. package/tasks/install.js +19 -10
  263. package/tasks/watch.js +1 -2
  264. package/types/fomantic-ui-accordion.d.ts +244 -0
  265. package/types/fomantic-ui-api.d.ts +555 -0
  266. package/types/fomantic-ui-calendar.d.ts +766 -0
  267. package/types/fomantic-ui-checkbox.d.ts +332 -0
  268. package/types/fomantic-ui-dimmer.d.ts +408 -0
  269. package/types/fomantic-ui-dropdown.d.ts +1183 -0
  270. package/types/fomantic-ui-embed.d.ts +326 -0
  271. package/types/fomantic-ui-flyout.d.ts +525 -0
  272. package/types/fomantic-ui-form.d.ts +651 -0
  273. package/types/fomantic-ui-modal.d.ts +471 -0
  274. package/types/fomantic-ui-nag.d.ts +270 -0
  275. package/types/fomantic-ui-popup.d.ts +523 -0
  276. package/types/fomantic-ui-progress.d.ts +459 -0
  277. package/types/fomantic-ui-rating.d.ts +187 -0
  278. package/types/fomantic-ui-search.d.ts +496 -0
  279. package/types/fomantic-ui-shape.d.ts +274 -0
  280. package/types/fomantic-ui-sidebar.d.ts +402 -0
  281. package/types/fomantic-ui-slider.d.ts +316 -0
  282. package/types/fomantic-ui-sticky.d.ts +215 -0
  283. package/types/fomantic-ui-tab.d.ts +361 -0
  284. package/types/fomantic-ui-tests.ts +25 -0
  285. package/types/fomantic-ui-toast.d.ts +514 -0
  286. package/types/fomantic-ui-transition.d.ts +355 -0
  287. package/types/fomantic-ui-visibility.d.ts +355 -0
  288. package/types/index.d.ts +63 -0
  289. package/types/tsconfig.json +23 -0
  290. package/types/tslint.json +1 -0
@@ -0,0 +1,651 @@
1
+ declare namespace FomanticUI {
2
+ interface Form {
3
+ settings: FormSettings;
4
+
5
+ /**
6
+ * Submits selected form.
7
+ */
8
+ (behavior: 'submit'): void;
9
+
10
+ /**
11
+ * Returns 'true'/'false' whether a form passes its validation rules.
12
+ */
13
+ (behavior: 'is valid'): boolean;
14
+
15
+ /**
16
+ * Adds rule to existing rules for field, also aliased as 'add field'.
17
+ */
18
+ (behavior: 'add rule', field: string, rules: object[]): void;
19
+
20
+ /**
21
+ * Adds fields object to existing fields.
22
+ */
23
+ (behavior: 'add fields', fields: object[]): void;
24
+
25
+ /**
26
+ * Removes specific rule from field leaving other rules.
27
+ */
28
+ (behavior: 'remove rule', field: string, rules: object[]): void;
29
+
30
+ /**
31
+ * Remove all validation for a field.
32
+ */
33
+ (behavior: 'remove field', field: string): void;
34
+
35
+ /**
36
+ * Returns 'true'/'false' whether a field passes its validation rules.
37
+ * If you add 'true' as the second parameter, any failed rule will update the UI.
38
+ */
39
+ (behavior: 'is valid', fieldName: string, showErrors: boolean): boolean;
40
+
41
+ /**
42
+ * Validates form, updates UI, and calls 'onSuccess' or 'onFailure'.
43
+ */
44
+ (behavior: 'validate form'): void;
45
+
46
+ /**
47
+ * Validates field, updates UI, and calls 'onSuccess' or 'onFailure'.
48
+ */
49
+ (behavior: 'validate field', fieldName: string): void;
50
+
51
+ /**
52
+ * Returns element with matching name, id, or data-validate metadata to identifier.
53
+ */
54
+ (behavior: 'get field', identifier: string): string;
55
+
56
+ /**
57
+ * Returns value of element with id.
58
+ */
59
+ (behavior: 'get value', identifier: string): string;
60
+
61
+ /**
62
+ * Returns object of element values that match array of identifiers.
63
+ * If no IDS are passed will return all fields.
64
+ */
65
+ (behavior: 'get values', identifiers?: string[]): object;
66
+
67
+ /**
68
+ * Sets value of element with id.
69
+ */
70
+ (behavior: 'set value', identifier: string, value: string): void;
71
+
72
+ /**
73
+ * Sets key/value pairs from passed values object to matching identifiers.
74
+ */
75
+ (behavior: 'set values', values: object[]): JQuery;
76
+
77
+ /**
78
+ * Returns validation rules for a given jQuery-referenced input field.
79
+ */
80
+ (behavior: 'get validation', element: JQuery): object;
81
+
82
+ /**
83
+ * Returns whether a field exists.
84
+ */
85
+ (behavior: 'has field', identifier: string): boolean;
86
+
87
+ /**
88
+ * Manually add errors to form, given an array errors.
89
+ */
90
+ (behavior: 'add errors', errors: object[]): void;
91
+
92
+ /**
93
+ * Removes all current errors from the error message box.
94
+ */
95
+ (behavior: 'remove errors'): void;
96
+
97
+ /**
98
+ * Adds a custom user prompt for a given element with identifier.
99
+ */
100
+ (behavior: 'add prompt', identifier: string, errors: object[]): void;
101
+
102
+ /**
103
+ * Empty all fields and remove possible errors.
104
+ */
105
+ (behavior: 'clear'): void;
106
+
107
+ /**
108
+ * Set all fields to their initial value and remove possible errors.
109
+ */
110
+ (behavior: 'reset'): void;
111
+
112
+ /**
113
+ * Set fields actual values as default values.
114
+ */
115
+ (behavior: 'set defaults'): void;
116
+
117
+ /**
118
+ * Return elements which have been modified since form state was changed to 'dirty'.
119
+ */
120
+ (behavior: 'get dirty fields'): string[];
121
+
122
+ /**
123
+ * Set the state of the form to 'clean' and set new values as default.
124
+ */
125
+ (behavior: 'set as clean'): void;
126
+
127
+ /**
128
+ * Automatically adds the "empty" rule or automatically checks a checkbox for all fields with classname or attribute 'required'.
129
+ */
130
+ (behavior: 'set auto check'): void;
131
+
132
+ /**
133
+ * Set or unset matching fields as optional.
134
+ */
135
+ (behavior: 'set optional', identifier: string, bool: boolean): void;
136
+
137
+ /**
138
+ * Destroys instance and removes all events.
139
+ */
140
+ (behavior: 'destroy'): JQuery;
141
+ <K extends keyof FormSettings>(behavior: 'setting', name: K, value?: undefined, ): Partial<Pick<FormSettings, keyof FormSettings>>;
142
+ <K extends keyof FormSettings>(behavior: 'setting', name: K, value: FormSettings[K]): JQuery;
143
+ (behavior: 'setting', value: Partial<Pick<FormSettings, keyof FormSettings>>): JQuery;
144
+ (settings?: Partial<Pick<FormSettings, keyof FormSettings>>): JQuery;
145
+ }
146
+
147
+ /**
148
+ * @see {@link https://fomantic-ui.com/behaviors/form.html#/settings}
149
+ */
150
+ interface FormSettings {
151
+ // region Form Settings
152
+
153
+ /**
154
+ * Adds keyboard shortcuts for enter and escape keys to submit form and blur fields respectively.
155
+ * @default true
156
+ */
157
+ keyboardShortcuts: boolean;
158
+
159
+ /**
160
+ * Event used to trigger validation.
161
+ * Can be either 'submit', 'blur' or 'change'.
162
+ * @default 'submit'
163
+ */
164
+ on: 'submit' | 'blur' | 'change';
165
+
166
+ /**
167
+ * If set to true will revalidate fields with errors on input change.
168
+ * @default true
169
+ */
170
+ revalidate: boolean;
171
+
172
+ /**
173
+ * Delay from last typed letter to validate a field when using 'on: change' or when revalidating a field.
174
+ * @default true
175
+ */
176
+ delay: boolean;
177
+
178
+ /**
179
+ * Adds inline error on field validation error.
180
+ * @default false
181
+ */
182
+ inline: boolean;
183
+
184
+ /**
185
+ * Whether or not the form should trim the value before validating.
186
+ * @default false
187
+ */
188
+ shouldTrim: boolean;
189
+
190
+ /**
191
+ * Define how calendar values will be returned.
192
+ * Can be either 'date', 'input' or 'formatter'.
193
+ * @default 'date'
194
+ */
195
+ dateHandling: 'date' | 'input' | 'formatter';
196
+
197
+ /**
198
+ * Named transition to use when animating validation errors.
199
+ * Fade and slide down are available without including 'ui transitions'.
200
+ * @see {@link https://fomantic-ui.com/modules/transition.html}
201
+ * @default 'scale'
202
+ */
203
+ transition: string;
204
+
205
+ /**
206
+ * Animation speed for inline prompt.
207
+ * @default 150
208
+ */
209
+ duration: number;
210
+
211
+ /**
212
+ * Prevent user from leaving the page if the form has a 'dirty' state by displaying a prompt.
213
+ * @default false
214
+ */
215
+ preventLeaving: boolean;
216
+
217
+ /**
218
+ * Whether fields with classname or attribute 'required' should automatically add the "empty" rule or automatically checks checkbox fields.
219
+ * @default false
220
+ */
221
+ autoCheckRequired: boolean;
222
+
223
+ /**
224
+ * Whether, on an invalid form validation, it should automatically focus either the first error field ('true') or a specific dom node (Use a unique selector string such as '.ui.error.message' or '#myelement') or nothing ('false').
225
+ * @default false
226
+ */
227
+ errorFocus: boolean | string;
228
+
229
+ /**
230
+ *
231
+ * @default 0
232
+ */
233
+ errorLimit: number;
234
+
235
+ // endregion
236
+
237
+ // region Form Prompts
238
+
239
+ text: Form.TextSettings;
240
+
241
+ prompt: Form.PromptSettings;
242
+
243
+ // endregion
244
+
245
+ // region Formatters
246
+
247
+ formatter: Form.FormatterSettings;
248
+
249
+ // endregion
250
+
251
+ // region Callbacks
252
+
253
+ /**
254
+ * Callback on each valid field.
255
+ */
256
+ onValid(this: JQuery): void;
257
+
258
+ /**
259
+ * Callback on each invalid field.
260
+ */
261
+ onInvalid(this: JQuery): void;
262
+
263
+ /**
264
+ * Callback if a form is all valid.
265
+ */
266
+ onSuccess(this: JQuery, event: Event, fields: object[]): void;
267
+
268
+ /**
269
+ * Callback if any form field is invalid.
270
+ */
271
+ onFailure(this: JQuery, formErrors: object[], fields: object[]): void;
272
+
273
+ /**
274
+ * Callback if form state is modified to 'dirty'.
275
+ * Triggered when at least on field has been modified.
276
+ */
277
+ onDirty(this: JQuery): void;
278
+
279
+ /**
280
+ * Callback if form state is modified to 'clean'.
281
+ * Triggered when all fields are set to default values.
282
+ */
283
+ onClean(this: JQuery): void;
284
+
285
+ // endregion
286
+
287
+ // region DOM Settings
288
+
289
+ /**
290
+ * DOM Selectors used internally.
291
+ * Selectors used to find parts of a module.
292
+ */
293
+ selector: Form.SelectorSettings;
294
+
295
+ /**
296
+ * Class names used to determine element state.
297
+ */
298
+ metadata: Form.MetadataSettings;
299
+
300
+ /**
301
+ * Class names used to determine element state.
302
+ */
303
+ className: Form.ClassNameSettings;
304
+
305
+ // endregion
306
+
307
+ // region Debug Settings
308
+
309
+ /**
310
+ * Name used in log statements
311
+ * @default 'Form'
312
+ */
313
+ name: string;
314
+
315
+ /**
316
+ * Event namespace. Makes sure module teardown does not effect other events attached to an element.
317
+ * @default 'form'
318
+ */
319
+ namespace: string;
320
+
321
+ /**
322
+ * Silences all console output including error messages, regardless of other debug settings.
323
+ * @default false
324
+ */
325
+ silent: boolean;
326
+
327
+ /**
328
+ * Debug output to console
329
+ * @default false
330
+ */
331
+ debug: boolean;
332
+
333
+ /**
334
+ * Show console.table output with performance metrics
335
+ * @default true
336
+ */
337
+ performance: boolean;
338
+
339
+ /**
340
+ * Debug output includes all internal behaviors
341
+ * @default false
342
+ */
343
+ verbose: boolean;
344
+
345
+ errors: Form.ErrorSettings;
346
+
347
+ // endregion
348
+ }
349
+
350
+ namespace Form {
351
+ type TextSettings = Partial<Pick<Settings.Texts, keyof Settings.Texts>>;
352
+ type PromptSettings = Partial<Pick<Settings.Prompts, keyof Settings.Prompts>>;
353
+ type FormatterSettings = Partial<Pick<Settings.Formatters, keyof Settings.Formatters>>;
354
+ type SelectorSettings = Partial<Pick<Settings.Selectors, keyof Settings.Selectors>>;
355
+ type MetadataSettings = Partial<Pick<Settings.Metadatas, keyof Settings.Metadatas>>;
356
+ type ClassNameSettings = Partial<Pick<Settings.ClassNames, keyof Settings.ClassNames>>;
357
+ type ErrorSettings = Partial<Pick<Settings.Errors, keyof Settings.Errors>>;
358
+
359
+ namespace Settings {
360
+ interface Texts {
361
+ /**
362
+ * @default 'Please enter a valid value'
363
+ */
364
+ unspecifiedRule: string;
365
+
366
+ /**
367
+ * @default 'This field'
368
+ */
369
+ unspecifiedField: string;
370
+
371
+ /**
372
+ * @default 'There are unsaved changes on this page which will be discarded if you continue.'
373
+ */
374
+ leavingMessage: string;
375
+ }
376
+
377
+ interface Prompts {
378
+ /**
379
+ * @default '{name} must have a value'
380
+ */
381
+ empty: string;
382
+
383
+ /**
384
+ * @default '{name} must be checked'
385
+ */
386
+ checked: string;
387
+
388
+ /**
389
+ * @default '{name} must be a valid e-mail'
390
+ */
391
+ email: string;
392
+
393
+ /**
394
+ * @default '{name} must be a valid url'
395
+ */
396
+ url: string;
397
+
398
+ /**
399
+ * @default '{name} is not formatted correctly'
400
+ */
401
+ regExp: string;
402
+
403
+ /**
404
+ * @default '{name} must be an integer'
405
+ */
406
+ integer: string;
407
+
408
+ /**
409
+ * @default '{name} must be a decimal number'
410
+ */
411
+ decimal: string;
412
+
413
+ /**
414
+ * @default '{name} must be set to a number'
415
+ */
416
+ number: string;
417
+
418
+ /**
419
+ * @default "{name} must be '{ruleValue}'"
420
+ */
421
+ is: string;
422
+
423
+ /**
424
+ * @default "{name} must be exactly '{ruleValue}'"
425
+ */
426
+ isExactly: string;
427
+
428
+ /**
429
+ * @default "{name} cannot be set to '{ruleValue}'"
430
+ */
431
+ not: string;
432
+
433
+ /**
434
+ * @default "{name} cannot be set to exactly '{ruleValue}'"
435
+ */
436
+ notExactly: string;
437
+
438
+ /**
439
+ * @default "{name} cannot contain '{ruleValue}'"
440
+ */
441
+ contain: string;
442
+
443
+ /**
444
+ * @default "{name} cannot contain exactly '{ruleValue}'"
445
+ */
446
+ containExactly: string;
447
+
448
+ /**
449
+ * @default "{name} must contain '{ruleValue}'"
450
+ */
451
+ doesntContain: string;
452
+
453
+ /**
454
+ * @default "{name} must contain exactly '{ruleValue}'"
455
+ */
456
+ doesntContainExactly: string;
457
+
458
+ /**
459
+ * @default '{name} must be at least {ruleValue} characters'
460
+ */
461
+ minLength: string;
462
+
463
+ /**
464
+ * @default '{name} must be exactly {ruleValue} characters'
465
+ */
466
+ exactLength: string;
467
+
468
+ /**
469
+ * @default '{name} cannot be longer than {ruleValue} characters'
470
+ */
471
+ maxLength: string;
472
+
473
+ /**
474
+ * @default '{name} must match {ruleValue} field'
475
+ */
476
+ match: string;
477
+
478
+ /**
479
+ * @default '{name} must have a different value than {ruleValue} field'
480
+ */
481
+ different: string;
482
+
483
+ /**
484
+ * @default '{name} must be a valid credit card number'
485
+ */
486
+ creditCard: string;
487
+
488
+ /**
489
+ * @default '{name} must have at least {ruleValue} choices'
490
+ */
491
+ minCount: string;
492
+
493
+ /**
494
+ * @default '{name} must have exactly {ruleValue} choices'
495
+ */
496
+ exactCount: string;
497
+
498
+ /**
499
+ * @default '{name} must have {ruleValue} or less choices'
500
+ */
501
+ maxCount: string;
502
+ }
503
+
504
+ interface Formatters {
505
+ date(date: string): string;
506
+ datetime(date: string): string;
507
+ time(date: string): string;
508
+ month(date: string): string;
509
+ year(date: string): string;
510
+ }
511
+
512
+ interface Selectors {
513
+ /**
514
+ * @default 'input[type="checkbox"], input[type="radio"]'
515
+ */
516
+ checkbox: string;
517
+
518
+ /**
519
+ * @default '.clear'
520
+ */
521
+ clear: string;
522
+
523
+ /**
524
+ * @default 'input, textarea, select'
525
+ */
526
+ field: string;
527
+
528
+ /**
529
+ * @default '.field'
530
+ */
531
+ group: string;
532
+
533
+ /**
534
+ * @default 'input'
535
+ */
536
+ input: string;
537
+
538
+ /**
539
+ * @default '.error.message'
540
+ */
541
+ message: string;
542
+
543
+ /**
544
+ * @default '.prompt.label'
545
+ */
546
+ prompt: string;
547
+
548
+ /**
549
+ * @default 'input[type="radio"]'
550
+ */
551
+ radio: string;
552
+
553
+ /**
554
+ * @default '.reset:not([type="reset"])'
555
+ */
556
+ reset: string;
557
+
558
+ /**
559
+ * @default '.submit:not([type="submit"])'
560
+ */
561
+ submit: string;
562
+
563
+ /**
564
+ * @default '.ui.checkbox'
565
+ */
566
+ uiCheckbox: string;
567
+
568
+ /**
569
+ * @default '.ui.dropdown'
570
+ */
571
+ uiDropdown: string;
572
+
573
+ /**
574
+ * @default '.ui.calendar'
575
+ */
576
+ uiCalendar: string;
577
+ }
578
+
579
+ interface Metadatas {
580
+ /**
581
+ * @default 'default'
582
+ */
583
+ defaultValue: string;
584
+
585
+ /**
586
+ * @default 'validate'
587
+ */
588
+ validate: string;
589
+
590
+ /**
591
+ * @default 'isDirty'
592
+ */
593
+ isDirty: string;
594
+ }
595
+
596
+ interface ClassNames {
597
+ /**
598
+ * @default 'error'
599
+ */
600
+ error: string;
601
+
602
+ /**
603
+ * @default 'ui basic red pointing prompt label'
604
+ */
605
+ label: string;
606
+
607
+ /**
608
+ * @default 'down'
609
+ */
610
+ pressed: string;
611
+
612
+ /**
613
+ * @default 'success'
614
+ */
615
+ success: string;
616
+ }
617
+
618
+ interface Errors {
619
+ /**
620
+ * @default 'You must specify a string identifier for each field'
621
+ */
622
+ identifier: string;
623
+
624
+ /**
625
+ * @default 'The method you called is not defined'
626
+ */
627
+ method: string;
628
+
629
+ /**
630
+ * @default 'There is no rule matching the one you specified'
631
+ */
632
+ noRule: string;
633
+
634
+ /**
635
+ * @default 'Starting in 2.0 forms now only take a single settings object. Validation settings converted to new syntax automatically.'
636
+ */
637
+ oldSyntax: string;
638
+
639
+ /**
640
+ * @default 'Field identifier {identifier} not found'
641
+ */
642
+ noField: string;
643
+
644
+ /**
645
+ * @default 'This module requires ui {element}'
646
+ */
647
+ noElement: string;
648
+ }
649
+ }
650
+ }
651
+ }