playbook_ui 14.15.0.pre.alpha.play1949lodashremoval3of36746 → 14.15.0.pre.alpha.play1949lodashremoval3of36815

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 (73) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_default.jsx +1 -0
  3. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_breakpoints.html.erb +3 -0
  4. data/app/pb_kits/playbook/pb_drawer/docs/example.yml +1 -0
  5. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.scss +2 -2
  6. data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +67 -0
  7. data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +67 -0
  8. data/app/pb_kits/playbook/pb_icon/_icon.scss +8 -1
  9. data/app/pb_kits/playbook/pb_icon/docs/_icon_color.html.erb +10 -4
  10. data/app/pb_kits/playbook/pb_icon/docs/_icon_color.jsx +49 -24
  11. data/app/pb_kits/playbook/pb_icon_button/_icon_button.tsx +4 -1
  12. data/app/pb_kits/playbook/pb_icon_button/docs/_icon_button_click.jsx +13 -0
  13. data/app/pb_kits/playbook/pb_icon_button/docs/example.yml +1 -0
  14. data/app/pb_kits/playbook/pb_icon_button/docs/index.js +1 -0
  15. data/app/pb_kits/playbook/pb_multi_level_select/_helper_functions.tsx +5 -1
  16. data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.scss +23 -0
  17. data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.tsx +42 -6
  18. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled.html.erb +1 -1
  19. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options.html.erb +76 -0
  20. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options.jsx +94 -0
  21. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options.md +1 -0
  22. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options_default.html.erb +75 -0
  23. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options_default.jsx +93 -0
  24. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options_default.md +3 -0
  25. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options_parent.html.erb +75 -0
  26. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options_parent.jsx +93 -0
  27. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options_parent.md +3 -0
  28. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options_parent_default.html.erb +74 -0
  29. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options_parent_default.jsx +92 -0
  30. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options_parent_default.md +3 -0
  31. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_error.html.erb +72 -0
  32. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_error.jsx +97 -0
  33. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_label.html.erb +71 -0
  34. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_label.jsx +91 -0
  35. data/app/pb_kits/playbook/pb_multi_level_select/docs/example.yml +14 -2
  36. data/app/pb_kits/playbook/pb_multi_level_select/docs/index.js +6 -0
  37. data/app/pb_kits/playbook/pb_multi_level_select/index.js +105 -0
  38. data/app/pb_kits/playbook/pb_multi_level_select/multi_level_select.rb +10 -0
  39. data/app/pb_kits/playbook/pb_multi_level_select/multi_level_select_options.tsx +1 -0
  40. data/app/pb_kits/playbook/pb_nav/_nav.scss +5 -0
  41. data/app/pb_kits/playbook/pb_typeahead/_typeahead.scss +4 -0
  42. data/app/pb_kits/playbook/pb_typeahead/_typeahead.tsx +3 -0
  43. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_disabled.html.erb +19 -0
  44. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_disabled.jsx +23 -0
  45. data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +2 -0
  46. data/app/pb_kits/playbook/pb_typeahead/docs/index.js +1 -0
  47. data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +3 -0
  48. data/app/pb_kits/playbook/pb_user/_user.tsx +78 -13
  49. data/app/pb_kits/playbook/pb_user/docs/_user_font_options.html.erb +22 -0
  50. data/app/pb_kits/playbook/pb_user/docs/_user_font_options.jsx +40 -0
  51. data/app/pb_kits/playbook/pb_user/docs/_user_font_options_rails.md +5 -0
  52. data/app/pb_kits/playbook/pb_user/docs/_user_font_options_react.md +5 -0
  53. data/app/pb_kits/playbook/pb_user/docs/example.yml +2 -0
  54. data/app/pb_kits/playbook/pb_user/docs/index.js +1 -0
  55. data/app/pb_kits/playbook/pb_user/user.html.erb +27 -6
  56. data/app/pb_kits/playbook/pb_user/user.rb +17 -1
  57. data/app/pb_kits/playbook/pb_user/user.test.js +182 -1
  58. data/app/pb_kits/playbook/tokens/_colors.scss +1 -4
  59. data/app/pb_kits/playbook/utilities/object.test.js +149 -1
  60. data/app/pb_kits/playbook/utilities/object.ts +16 -76
  61. data/dist/chunks/{_typeahead-C_orSAyx.js → _typeahead-DZNrDsCe.js} +3 -3
  62. data/dist/chunks/_weekday_stacked-BwM21XCO.js +45 -0
  63. data/dist/chunks/{lib-ChtLutkU.js → lib-DpO_YjaF.js} +1 -1
  64. data/dist/chunks/{pb_form_validation-CoiIaTHi.js → pb_form_validation-C3rQtNR-.js} +1 -1
  65. data/dist/chunks/vendor.js +1 -1
  66. data/dist/playbook-doc.js +1 -1
  67. data/dist/playbook-rails-react-bindings.js +1 -1
  68. data/dist/playbook-rails.js +1 -1
  69. data/dist/playbook.css +1 -1
  70. data/lib/playbook/forms/builder/multi_level_select_field.rb +2 -0
  71. data/lib/playbook/version.rb +1 -1
  72. metadata +30 -6
  73. data/dist/chunks/_weekday_stacked-D7pAcXO0.js +0 -45
@@ -178,82 +178,22 @@ export const map = <T, U>(
178
178
  return Object.keys(collection).map(key => fn(collection[key], key, collection))
179
179
  }
180
180
 
181
- export const debounce = <F extends (...args: any[]) => any>(
181
+ export function debounce<F extends (...args: any[]) => any>(
182
182
  func: F,
183
- wait = 0,
184
- options: { leading?: boolean; maxWait?: number; trailing?: boolean } = {}
185
- ): F & { cancel: () => void; flush: () => any } => {
186
- let timerId: ReturnType<typeof setTimeout> | null = null
187
- let lastArgs: any
188
- let lastThis: any
189
- let lastCallTime = 0
190
- let lastInvokeTime = 0
191
- let result: any
192
-
193
- const leading = !!options.leading
194
- const trailing = options.trailing === undefined ? true : !!options.trailing
195
- const maxWait = options.maxWait
196
-
197
- const invoke = (time: number) => {
198
- result = func.apply(lastThis, lastArgs)
199
- lastInvokeTime = time
200
- lastArgs = lastThis = null
201
- return result
202
- }
203
-
204
- const startTimer = (pendingFunc: () => void, delay: number) => setTimeout(pendingFunc, delay)
205
-
206
- const remainingWait = (time: number) => {
207
- const timeSinceLastCall = time - lastCallTime
208
- const timeSinceLastInvoke = time - lastInvokeTime
209
- const timeWaiting = wait - timeSinceLastCall
210
- return maxWait !== undefined ? Math.min(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting
211
- }
212
-
213
- const shouldInvoke = (time: number) => {
214
- const timeSinceLastCall = time - lastCallTime
215
- const timeSinceLastInvoke = time - lastInvokeTime
216
- return lastCallTime === 0 ||
217
- timeSinceLastCall >= wait ||
218
- timeSinceLastCall < 0 ||
219
- (maxWait !== undefined && timeSinceLastInvoke >= maxWait)
220
- }
221
-
222
- const debounced = (...args: any[]) => {
223
- const time = Date.now()
224
- lastArgs = args
225
- // 'this' is not lexically captured in arrow functions, so if needed, bind explicitly
226
- lastThis = this
227
- lastCallTime = time
228
-
229
- if (shouldInvoke(time)) {
230
- if (timerId === null) {
231
- timerId = startTimer(() => {
232
- timerId = null
233
- invoke(Date.now())
234
- }, remainingWait(time))
235
- }
183
+ wait: number,
184
+ immediate?: boolean
185
+ ): (...args: Parameters<F>) => void {
186
+ let timeout: ReturnType<typeof setTimeout> | null;
187
+ return function(this: any, ...args: any[]) {
188
+ if (timeout) clearTimeout(timeout);
189
+ if (immediate && !timeout) {
190
+ func.apply(this, args);
236
191
  }
237
- return result
238
- }
239
-
240
- debounced.cancel = () => {
241
- if (timerId !== null) {
242
- clearTimeout(timerId)
243
- }
244
- timerId = null
245
- lastArgs = lastThis = null
246
- lastCallTime = 0
247
- }
248
-
249
- debounced.flush = () => {
250
- if (timerId !== null) {
251
- clearTimeout(timerId)
252
- timerId = null
253
- return invoke(Date.now())
254
- }
255
- return result
256
- }
257
-
258
- return debounced as F & { cancel: () => void; flush: () => any }
192
+ timeout = setTimeout(() => {
193
+ timeout = null;
194
+ if (!immediate) {
195
+ func.apply(this, args);
196
+ }
197
+ }, wait);
198
+ };
259
199
  }