playbook_ui 14.12.0 → 14.13.0.pre.rc.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 (41) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.html.erb +3 -3
  3. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.rb +3 -1
  4. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +1 -1
  5. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_loading.html.erb +33 -0
  6. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_loading_rails.md +1 -0
  7. data/app/pb_kits/playbook/pb_advanced_table/docs/{_advanced_table_loading.md → _advanced_table_loading_react.md} +2 -2
  8. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_responsive.html.erb +38 -0
  9. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +2 -0
  10. data/app/pb_kits/playbook/pb_advanced_table/table_body.rb +17 -3
  11. data/app/pb_kits/playbook/pb_advanced_table/table_header.html.erb +15 -11
  12. data/app/pb_kits/playbook/pb_advanced_table/table_header.rb +14 -3
  13. data/app/pb_kits/playbook/pb_advanced_table/table_row.html.erb +2 -2
  14. data/app/pb_kits/playbook/pb_advanced_table/table_row.rb +9 -1
  15. data/app/pb_kits/playbook/pb_advanced_table/table_subrow_header.html.erb +1 -1
  16. data/app/pb_kits/playbook/pb_advanced_table/table_subrow_header.rb +9 -0
  17. data/app/pb_kits/playbook/pb_avatar/_avatar.scss +5 -0
  18. data/app/pb_kits/playbook/pb_card/card.html.erb +21 -2
  19. data/app/pb_kits/playbook/pb_card/card.rb +7 -0
  20. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_cards_rails.html.erb +1 -3
  21. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_cards_rails.md +7 -0
  22. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_content.jsx +12 -8
  23. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_content_rails.html.erb +52 -0
  24. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_content_rails.md +0 -0
  25. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_rows_rails.html.erb +52 -0
  26. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_rows_rails.md +3 -0
  27. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_table_rails.html.erb +80 -0
  28. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_table_rails.md +1 -0
  29. data/app/pb_kits/playbook/pb_table/docs/example.yml +3 -0
  30. data/app/pb_kits/playbook/pb_table/table_row.rb +1 -1
  31. data/dist/chunks/{_weekday_stacked-DE8qVYG2.js → _weekday_stacked-zyBCd1s8.js} +1 -1
  32. data/dist/chunks/lazysizes-B7xYodB-.js +1 -0
  33. data/dist/chunks/vendor.js +1 -1
  34. data/dist/playbook-doc.js +1 -1
  35. data/dist/playbook-rails.js +1 -1
  36. data/dist/playbook.css +1 -1
  37. data/lib/playbook/pb_forms_global_props_helper.rb +136 -0
  38. data/lib/playbook/pb_forms_helper.rb +13 -4
  39. data/lib/playbook/version.rb +2 -2
  40. metadata +15 -5
  41. data/dist/chunks/lazysizes-DHz07jlL.js +0 -1
@@ -0,0 +1,136 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Playbook
4
+ module PbFormsGlobalPropsHelper
5
+ private
6
+
7
+ def generate_prop_classes(props)
8
+ classes = []
9
+
10
+ props.each do |prop, value|
11
+ next if value.nil?
12
+
13
+ classes << case prop
14
+ when :padding
15
+ "p_#{value}"
16
+ when :padding_top
17
+ "pt_#{value}"
18
+ when :padding_bottom
19
+ "pb_#{value}"
20
+ when :padding_left
21
+ "pl_#{value}"
22
+ when :padding_right
23
+ "pr_#{value}"
24
+ when :padding_x
25
+ "px_#{value}"
26
+ when :padding_y
27
+ "py_#{value}"
28
+ when :margin
29
+ "m_#{value}"
30
+ when :margin_top
31
+ "mt_#{value}"
32
+ when :margin_bottom
33
+ "mb_#{value}"
34
+ when :margin_left
35
+ "ml_#{value}"
36
+ when :margin_right
37
+ "mr_#{value}"
38
+ when :margin_x
39
+ "mx_#{value}"
40
+ when :margin_y
41
+ "my_#{value}"
42
+ when :shadow
43
+ "shadow_#{value}"
44
+ when :width
45
+ value.to_s.end_with?("%") ? "width_#{value.to_i}_percent" : "width_#{value.downcase}"
46
+ when :min_width
47
+ value.to_s.end_with?("%") ? "min_width_#{value.to_i}_percent" : "min_width_#{value.downcase}"
48
+ when :max_width
49
+ value.to_s.end_with?("%") ? "max_width_#{value.to_i}_percent" : "max_width_#{value.downcase}"
50
+ when :height
51
+ "height_#{value.downcase}"
52
+ when :min_height
53
+ "min_height_#{value.downcase}"
54
+ when :max_height
55
+ "max_height_#{value.downcase}"
56
+ when :position
57
+ "position_#{value}"
58
+ when :vertical_alignment
59
+ "vertical_align_#{value}"
60
+ when :z_index
61
+ "z_index_#{value}"
62
+ when :line_height
63
+ "line_height_#{value}"
64
+ when :number_spacing
65
+ "ns_#{value}"
66
+ when :border_radius
67
+ "border_radius_#{value}"
68
+ when :text_size
69
+ "text_#{value}"
70
+ when :letter_spacing
71
+ "ls_#{value}"
72
+ when :display
73
+ "display_#{value}"
74
+ when :cursor
75
+ "cursor_#{value}"
76
+ when :hover
77
+ if value.is_a?(Hash)
78
+ value.map do |hover_prop, hover_value|
79
+ case hover_prop
80
+ when :shadow
81
+ "hover_shadow_#{hover_value}"
82
+ when :scale
83
+ "hover_scale_#{hover_value}"
84
+ when :underline
85
+ hover_value == true ? "hover_underline" : nil
86
+ when :color
87
+ "hover_color_#{hover_value}"
88
+ when :background
89
+ "hover_background_#{hover_value}"
90
+ end
91
+ end
92
+ else
93
+ "hover_#{value}"
94
+ end
95
+ when :text_align
96
+ "text_align_#{value}"
97
+ when :overflow
98
+ "overflow_#{value}"
99
+ when :overflow_x
100
+ "overflow_x_#{value}"
101
+ when :overflow_y
102
+ "overflow_y_#{value}"
103
+ when :truncate
104
+ "truncate_#{value}"
105
+ when :group_hover
106
+ value ? "group_hover" : nil
107
+ end
108
+ end
109
+
110
+ classes.flatten.compact
111
+ end
112
+
113
+ def extract_all_props(options)
114
+ global_props = %i[
115
+ padding padding_top padding_bottom padding_left padding_right padding_x padding_y
116
+ margin margin_top margin_bottom margin_left margin_right margin_x margin_y
117
+ shadow width min_width max_width height min_height max_height
118
+ position vertical_alignment z_index line_height number_spacing
119
+ border_radius text_size letter_spacing display cursor hover
120
+ text_align overflow overflow_x overflow_y truncate group_hover
121
+ ]
122
+
123
+ props = {}
124
+ form_opts = options.dup
125
+
126
+ global_props.each { |prop| props[prop] = form_opts.delete(prop) if form_opts.key?(prop) }
127
+
128
+ if form_opts[:props].is_a?(Hash)
129
+ nested_props = form_opts.delete(:props)
130
+ props.merge!(nested_props.slice(*global_props))
131
+ end
132
+
133
+ [props, form_opts]
134
+ end
135
+ end
136
+ end
@@ -1,7 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "pb_forms_global_props_helper"
4
+
3
5
  module Playbook
4
6
  module PbFormsHelper
7
+ include Playbook::PbFormsGlobalPropsHelper
5
8
  # Renders a pb form with ::Playbook::Forms::Builder, that can render
6
9
  # Playbook kits in the most railsie way.
7
10
  #
@@ -23,11 +26,17 @@ module Playbook
23
26
  # @param validate [Boolean] whether validation should be triggered or not
24
27
  # @see [#form_with] for other options
25
28
  def pb_form_with(data: {}, validate: false, loading: false, **kwargs, &block)
29
+ global_props, form_options = extract_all_props(kwargs)
30
+
31
+ classnames = ["pb-form"]
32
+ classnames << form_options[:class] if form_options[:class].present?
33
+ classnames << "pb_form_loading" if loading
34
+ classnames.concat(generate_prop_classes(global_props))
35
+
26
36
  data = data.merge("pb-form-validation" => validate)
27
- classname = ["pb-form", kwargs[:class]].join(" ")
28
- classname += " pb_form_loading" if loading
29
- options = kwargs.merge(
30
- class: classname,
37
+
38
+ options = form_options.merge(
39
+ class: classnames.compact.join(" "),
31
40
  data: data,
32
41
  builder: ::Playbook::Forms::Builder
33
42
  )
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Playbook
4
- PREVIOUS_VERSION = "14.11.1"
5
- VERSION = "14.12.0"
4
+ PREVIOUS_VERSION = "14.12.0"
5
+ VERSION = "14.13.0.pre.rc.0"
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: playbook_ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 14.12.0
4
+ version: 14.13.0.pre.rc.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Power UX
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2025-01-24 00:00:00.000000000 Z
12
+ date: 2025-01-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: actionpack
@@ -300,13 +300,16 @@ files:
300
300
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_expanded_control.md
301
301
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_inline_row_loading.jsx
302
302
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_inline_row_loading.md
303
+ - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_loading.html.erb
303
304
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_loading.jsx
304
- - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_loading.md
305
+ - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_loading_rails.md
306
+ - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_loading_react.md
305
307
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_no_subrows.jsx
306
308
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pagination.jsx
307
309
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pagination.md
308
310
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pagination_with_props.jsx
309
311
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pagination_with_props.md
312
+ - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_responsive.html.erb
310
313
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_responsive.jsx
311
314
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_responsive.md
312
315
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows.jsx
@@ -2720,10 +2723,16 @@ files:
2720
2723
  - app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_click.md
2721
2724
  - app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_content.jsx
2722
2725
  - app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_content.md
2726
+ - app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_content_rails.html.erb
2727
+ - app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_content_rails.md
2723
2728
  - app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_rows.jsx
2724
2729
  - app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_rows.md
2730
+ - app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_rows_rails.html.erb
2731
+ - app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_rows_rails.md
2725
2732
  - app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_table.jsx
2726
2733
  - app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_table.md
2734
+ - app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_table_rails.html.erb
2735
+ - app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_table_rails.md
2727
2736
  - app/pb_kits/playbook/pb_table/docs/_table_with_subcomponents.jsx
2728
2737
  - app/pb_kits/playbook/pb_table/docs/_table_with_subcomponents.md
2729
2738
  - app/pb_kits/playbook/pb_table/docs/_table_with_subcomponents_as_divs.html.erb
@@ -3293,8 +3302,8 @@ files:
3293
3302
  - app/pb_kits/playbook/utilities/text.ts
3294
3303
  - app/pb_kits/playbook/utilities/validEmojiChecker.ts
3295
3304
  - dist/chunks/_typeahead-BWwaAo_0.js
3296
- - dist/chunks/_weekday_stacked-DE8qVYG2.js
3297
- - dist/chunks/lazysizes-DHz07jlL.js
3305
+ - dist/chunks/_weekday_stacked-zyBCd1s8.js
3306
+ - dist/chunks/lazysizes-B7xYodB-.js
3298
3307
  - dist/chunks/lib-kMuhBuU7.js
3299
3308
  - dist/chunks/pb_form_validation-DBJ0wZuS.js
3300
3309
  - dist/chunks/vendor.js
@@ -3348,6 +3357,7 @@ files:
3348
3357
  - lib/playbook/overflow.rb
3349
3358
  - lib/playbook/pagination_renderer.rb
3350
3359
  - lib/playbook/pb_doc_helper.rb
3360
+ - lib/playbook/pb_forms_global_props_helper.rb
3351
3361
  - lib/playbook/pb_forms_helper.rb
3352
3362
  - lib/playbook/pb_kit_helper.rb
3353
3363
  - lib/playbook/position.rb
@@ -1 +0,0 @@
1
- var lazysizes={exports:{}};(function(module){(function(window2,factory){var lazySizes=factory(window2,window2.document,Date);window2.lazySizes=lazySizes;if(module.exports){module.exports=lazySizes}})(typeof window!="undefined"?window:{},(function l(window2,document,Date2){var lazysizes2,lazySizesCfg;(function(){var prop;var lazySizesDefaults={lazyClass:"lazyload",loadedClass:"lazyloaded",loadingClass:"lazyloading",preloadClass:"lazypreload",errorClass:"lazyerror",autosizesClass:"lazyautosizes",fastLoadedClass:"ls-is-cached",iframeLoadMode:0,srcAttr:"data-src",srcsetAttr:"data-srcset",sizesAttr:"data-sizes",minSize:40,customMedia:{},init:true,expFactor:1.5,hFac:.8,loadMode:2,loadHidden:true,ricTimeout:0,throttleDelay:125};lazySizesCfg=window2.lazySizesConfig||window2.lazysizesConfig||{};for(prop in lazySizesDefaults){if(!(prop in lazySizesCfg)){lazySizesCfg[prop]=lazySizesDefaults[prop]}}})();if(!document||!document.getElementsByClassName){return{init:function(){},cfg:lazySizesCfg,noSupport:true}}var docElem=document.documentElement;var supportPicture=window2.HTMLPictureElement;var _addEventListener="addEventListener";var _getAttribute="getAttribute";var addEventListener=window2[_addEventListener].bind(window2);var setTimeout=window2.setTimeout;var requestAnimationFrame=window2.requestAnimationFrame||setTimeout;var requestIdleCallback=window2.requestIdleCallback;var regPicture=/^picture$/i;var loadEvents=["load","error","lazyincluded","_lazyloaded"];var regClassCache={};var forEach=Array.prototype.forEach;var hasClass=function(ele,cls){if(!regClassCache[cls]){regClassCache[cls]=new RegExp("(\\s|^)"+cls+"(\\s|$)")}return regClassCache[cls].test(ele[_getAttribute]("class")||"")&&regClassCache[cls]};var addClass=function(ele,cls){if(!hasClass(ele,cls)){ele.setAttribute("class",(ele[_getAttribute]("class")||"").trim()+" "+cls)}};var removeClass=function(ele,cls){var reg;if(reg=hasClass(ele,cls)){ele.setAttribute("class",(ele[_getAttribute]("class")||"").replace(reg," "))}};var addRemoveLoadEvents=function(dom,fn,add){var action=add?_addEventListener:"removeEventListener";if(add){addRemoveLoadEvents(dom,fn)}loadEvents.forEach((function(evt){dom[action](evt,fn)}))};var triggerEvent=function(elem,name,detail,noBubbles,noCancelable){var event=document.createEvent("Event");if(!detail){detail={}}detail.instance=lazysizes2;event.initEvent(name,!noBubbles,!noCancelable);event.detail=detail;elem.dispatchEvent(event);return event};var updatePolyfill=function(el,full){var polyfill;if(!supportPicture&&(polyfill=window2.picturefill||lazySizesCfg.pf)){if(full&&full.src&&!el[_getAttribute]("srcset")){el.setAttribute("srcset",full.src)}polyfill({reevaluate:true,elements:[el]})}else if(full&&full.src){el.src=full.src}};var getCSS=function(elem,style){return(getComputedStyle(elem,null)||{})[style]};var getWidth=function(elem,parent,width){width=width||elem.offsetWidth;while(width<lazySizesCfg.minSize&&parent&&!elem._lazysizesWidth){width=parent.offsetWidth;parent=parent.parentNode}return width};var rAF=function(){var running,waiting;var firstFns=[];var secondFns=[];var fns=firstFns;var run=function(){var runFns=fns;fns=firstFns.length?secondFns:firstFns;running=true;waiting=false;while(runFns.length){runFns.shift()()}running=false};var rafBatch=function(fn,queue){if(running&&!queue){fn.apply(this,arguments)}else{fns.push(fn);if(!waiting){waiting=true;(document.hidden?setTimeout:requestAnimationFrame)(run)}}};rafBatch._lsFlush=run;return rafBatch}();var rAFIt=function(fn,simple){return simple?function(){rAF(fn)}:function(){var that=this;var args=arguments;rAF((function(){fn.apply(that,args)}))}};var throttle=function(fn){var running;var lastTime=0;var gDelay=lazySizesCfg.throttleDelay;var rICTimeout=lazySizesCfg.ricTimeout;var run=function(){running=false;lastTime=Date2.now();fn()};var idleCallback=requestIdleCallback&&rICTimeout>49?function(){requestIdleCallback(run,{timeout:rICTimeout});if(rICTimeout!==lazySizesCfg.ricTimeout){rICTimeout=lazySizesCfg.ricTimeout}}:rAFIt((function(){setTimeout(run)}),true);return function(isPriority){var delay;if(isPriority=isPriority===true){rICTimeout=33}if(running){return}running=true;delay=gDelay-(Date2.now()-lastTime);if(delay<0){delay=0}if(isPriority||delay<9){idleCallback()}else{setTimeout(idleCallback,delay)}}};var debounce=function(func){var timeout,timestamp;var wait=99;var run=function(){timeout=null;func()};var later=function(){var last=Date2.now()-timestamp;if(last<wait){setTimeout(later,wait-last)}else{(requestIdleCallback||run)(run)}};return function(){timestamp=Date2.now();if(!timeout){timeout=setTimeout(later,wait)}}};var loader=function(){var preloadElems,isCompleted,resetPreloadingTimer,loadMode,started;var eLvW,elvH,eLtop,eLleft,eLright,eLbottom,isBodyHidden;var regImg=/^img$/i;var regIframe=/^iframe$/i;var supportScroll="onscroll"in window2&&!/(gle|ing)bot/.test(navigator.userAgent);var shrinkExpand=0;var currentExpand=0;var isLoading=0;var lowRuns=-1;var resetPreloading=function(e){isLoading--;if(!e||isLoading<0||!e.target){isLoading=0}};var isVisible=function(elem){if(isBodyHidden==null){isBodyHidden=getCSS(document.body,"visibility")=="hidden"}return isBodyHidden||!(getCSS(elem.parentNode,"visibility")=="hidden"&&getCSS(elem,"visibility")=="hidden")};var isNestedVisible=function(elem,elemExpand){var outerRect;var parent=elem;var visible=isVisible(elem);eLtop-=elemExpand;eLbottom+=elemExpand;eLleft-=elemExpand;eLright+=elemExpand;while(visible&&(parent=parent.offsetParent)&&parent!=document.body&&parent!=docElem){visible=(getCSS(parent,"opacity")||1)>0;if(visible&&getCSS(parent,"overflow")!="visible"){outerRect=parent.getBoundingClientRect();visible=eLright>outerRect.left&&eLleft<outerRect.right&&eLbottom>outerRect.top-1&&eLtop<outerRect.bottom+1}}return visible};var checkElements=function(){var eLlen,i,rect,autoLoadElem,loadedSomething,elemExpand,elemNegativeExpand,elemExpandVal,beforeExpandVal,defaultExpand,preloadExpand,hFac;var lazyloadElems=lazysizes2.elements;if((loadMode=lazySizesCfg.loadMode)&&isLoading<8&&(eLlen=lazyloadElems.length)){i=0;lowRuns++;for(;i<eLlen;i++){if(!lazyloadElems[i]||lazyloadElems[i]._lazyRace){continue}if(!supportScroll||lazysizes2.prematureUnveil&&lazysizes2.prematureUnveil(lazyloadElems[i])){unveilElement(lazyloadElems[i]);continue}if(!(elemExpandVal=lazyloadElems[i][_getAttribute]("data-expand"))||!(elemExpand=elemExpandVal*1)){elemExpand=currentExpand}if(!defaultExpand){defaultExpand=!lazySizesCfg.expand||lazySizesCfg.expand<1?docElem.clientHeight>500&&docElem.clientWidth>500?500:370:lazySizesCfg.expand;lazysizes2._defEx=defaultExpand;preloadExpand=defaultExpand*lazySizesCfg.expFactor;hFac=lazySizesCfg.hFac;isBodyHidden=null;if(currentExpand<preloadExpand&&isLoading<1&&lowRuns>2&&loadMode>2&&!document.hidden){currentExpand=preloadExpand;lowRuns=0}else if(loadMode>1&&lowRuns>1&&isLoading<6){currentExpand=defaultExpand}else{currentExpand=shrinkExpand}}if(beforeExpandVal!==elemExpand){eLvW=innerWidth+elemExpand*hFac;elvH=innerHeight+elemExpand;elemNegativeExpand=elemExpand*-1;beforeExpandVal=elemExpand}rect=lazyloadElems[i].getBoundingClientRect();if((eLbottom=rect.bottom)>=elemNegativeExpand&&(eLtop=rect.top)<=elvH&&(eLright=rect.right)>=elemNegativeExpand*hFac&&(eLleft=rect.left)<=eLvW&&(eLbottom||eLright||eLleft||eLtop)&&(lazySizesCfg.loadHidden||isVisible(lazyloadElems[i]))&&(isCompleted&&isLoading<3&&!elemExpandVal&&(loadMode<3||lowRuns<4)||isNestedVisible(lazyloadElems[i],elemExpand))){unveilElement(lazyloadElems[i]);loadedSomething=true;if(isLoading>9){break}}else if(!loadedSomething&&isCompleted&&!autoLoadElem&&isLoading<4&&lowRuns<4&&loadMode>2&&(preloadElems[0]||lazySizesCfg.preloadAfterLoad)&&(preloadElems[0]||!elemExpandVal&&(eLbottom||eLright||eLleft||eLtop||lazyloadElems[i][_getAttribute](lazySizesCfg.sizesAttr)!="auto"))){autoLoadElem=preloadElems[0]||lazyloadElems[i]}}if(autoLoadElem&&!loadedSomething){unveilElement(autoLoadElem)}}};var throttledCheckElements=throttle(checkElements);var switchLoadingClass=function(e){var elem=e.target;if(elem._lazyCache){delete elem._lazyCache;return}resetPreloading(e);addClass(elem,lazySizesCfg.loadedClass);removeClass(elem,lazySizesCfg.loadingClass);addRemoveLoadEvents(elem,rafSwitchLoadingClass);triggerEvent(elem,"lazyloaded")};var rafedSwitchLoadingClass=rAFIt(switchLoadingClass);var rafSwitchLoadingClass=function(e){rafedSwitchLoadingClass({target:e.target})};var changeIframeSrc=function(elem,src){var loadMode2=elem.getAttribute("data-load-mode")||lazySizesCfg.iframeLoadMode;if(loadMode2==0){elem.contentWindow.location.replace(src)}else if(loadMode2==1){elem.src=src}};var handleSources=function(source){var customMedia;var sourceSrcset=source[_getAttribute](lazySizesCfg.srcsetAttr);if(customMedia=lazySizesCfg.customMedia[source[_getAttribute]("data-media")||source[_getAttribute]("media")]){source.setAttribute("media",customMedia)}if(sourceSrcset){source.setAttribute("srcset",sourceSrcset)}};var lazyUnveil=rAFIt((function(elem,detail,isAuto,sizes,isImg){var src,srcset,parent,isPicture,event,firesLoad;if(!(event=triggerEvent(elem,"lazybeforeunveil",detail)).defaultPrevented){if(sizes){if(isAuto){addClass(elem,lazySizesCfg.autosizesClass)}else{elem.setAttribute("sizes",sizes)}}srcset=elem[_getAttribute](lazySizesCfg.srcsetAttr);src=elem[_getAttribute](lazySizesCfg.srcAttr);if(isImg){parent=elem.parentNode;isPicture=parent&&regPicture.test(parent.nodeName||"")}firesLoad=detail.firesLoad||"src"in elem&&(srcset||src||isPicture);event={target:elem};addClass(elem,lazySizesCfg.loadingClass);if(firesLoad){clearTimeout(resetPreloadingTimer);resetPreloadingTimer=setTimeout(resetPreloading,2500);addRemoveLoadEvents(elem,rafSwitchLoadingClass,true)}if(isPicture){forEach.call(parent.getElementsByTagName("source"),handleSources)}if(srcset){elem.setAttribute("srcset",srcset)}else if(src&&!isPicture){if(regIframe.test(elem.nodeName)){changeIframeSrc(elem,src)}else{elem.src=src}}if(isImg&&(srcset||isPicture)){updatePolyfill(elem,{src:src})}}if(elem._lazyRace){delete elem._lazyRace}removeClass(elem,lazySizesCfg.lazyClass);rAF((function(){var isLoaded=elem.complete&&elem.naturalWidth>1;if(!firesLoad||isLoaded){if(isLoaded){addClass(elem,lazySizesCfg.fastLoadedClass)}switchLoadingClass(event);elem._lazyCache=true;setTimeout((function(){if("_lazyCache"in elem){delete elem._lazyCache}}),9)}if(elem.loading=="lazy"){isLoading--}}),true)}));var unveilElement=function(elem){if(elem._lazyRace){return}var detail;var isImg=regImg.test(elem.nodeName);var sizes=isImg&&(elem[_getAttribute](lazySizesCfg.sizesAttr)||elem[_getAttribute]("sizes"));var isAuto=sizes=="auto";if((isAuto||!isCompleted)&&isImg&&(elem[_getAttribute]("src")||elem.srcset)&&!elem.complete&&!hasClass(elem,lazySizesCfg.errorClass)&&hasClass(elem,lazySizesCfg.lazyClass)){return}detail=triggerEvent(elem,"lazyunveilread").detail;if(isAuto){autoSizer.updateElem(elem,true,elem.offsetWidth)}elem._lazyRace=true;isLoading++;lazyUnveil(elem,detail,isAuto,sizes,isImg)};var afterScroll=debounce((function(){lazySizesCfg.loadMode=3;throttledCheckElements()}));var altLoadmodeScrollListner=function(){if(lazySizesCfg.loadMode==3){lazySizesCfg.loadMode=2}afterScroll()};var onload=function(){if(isCompleted){return}if(Date2.now()-started<999){setTimeout(onload,999);return}isCompleted=true;lazySizesCfg.loadMode=3;throttledCheckElements();addEventListener("scroll",altLoadmodeScrollListner,true)};return{_:function(){started=Date2.now();lazysizes2.elements=document.getElementsByClassName(lazySizesCfg.lazyClass);preloadElems=document.getElementsByClassName(lazySizesCfg.lazyClass+" "+lazySizesCfg.preloadClass);addEventListener("scroll",throttledCheckElements,true);addEventListener("resize",throttledCheckElements,true);addEventListener("pageshow",(function(e){if(e.persisted){var loadingElements=document.querySelectorAll("."+lazySizesCfg.loadingClass);if(loadingElements.length&&loadingElements.forEach){requestAnimationFrame((function(){loadingElements.forEach((function(img){if(img.complete){unveilElement(img)}}))}))}}}));if(window2.MutationObserver){new MutationObserver(throttledCheckElements).observe(docElem,{childList:true,subtree:true,attributes:true})}else{docElem[_addEventListener]("DOMNodeInserted",throttledCheckElements,true);docElem[_addEventListener]("DOMAttrModified",throttledCheckElements,true);setInterval(throttledCheckElements,999)}addEventListener("hashchange",throttledCheckElements,true);["focus","mouseover","click","load","transitionend","animationend"].forEach((function(name){document[_addEventListener](name,throttledCheckElements,true)}));if(/d$|^c/.test(document.readyState)){onload()}else{addEventListener("load",onload);document[_addEventListener]("DOMContentLoaded",throttledCheckElements);setTimeout(onload,2e4)}if(lazysizes2.elements.length){checkElements();rAF._lsFlush()}else{throttledCheckElements()}},checkElems:throttledCheckElements,unveil:unveilElement,_aLSL:altLoadmodeScrollListner}}();var autoSizer=function(){var autosizesElems;var sizeElement=rAFIt((function(elem,parent,event,width){var sources,i,len;elem._lazysizesWidth=width;width+="px";elem.setAttribute("sizes",width);if(regPicture.test(parent.nodeName||"")){sources=parent.getElementsByTagName("source");for(i=0,len=sources.length;i<len;i++){sources[i].setAttribute("sizes",width)}}if(!event.detail.dataAttr){updatePolyfill(elem,event.detail)}}));var getSizeElement=function(elem,dataAttr,width){var event;var parent=elem.parentNode;if(parent){width=getWidth(elem,parent,width);event=triggerEvent(elem,"lazybeforesizes",{width:width,dataAttr:!!dataAttr});if(!event.defaultPrevented){width=event.detail.width;if(width&&width!==elem._lazysizesWidth){sizeElement(elem,parent,event,width)}}}};var updateElementsSizes=function(){var i;var len=autosizesElems.length;if(len){i=0;for(;i<len;i++){getSizeElement(autosizesElems[i])}}};var debouncedUpdateElementsSizes=debounce(updateElementsSizes);return{_:function(){autosizesElems=document.getElementsByClassName(lazySizesCfg.autosizesClass);addEventListener("resize",debouncedUpdateElementsSizes)},checkElems:debouncedUpdateElementsSizes,updateElem:getSizeElement}}();var init=function(){if(!init.i&&document.getElementsByClassName){init.i=true;autoSizer._();loader._()}};setTimeout((function(){if(lazySizesCfg.init){init()}}));lazysizes2={cfg:lazySizesCfg,autoSizer:autoSizer,loader:loader,init:init,uP:updatePolyfill,aC:addClass,rC:removeClass,hC:hasClass,fire:triggerEvent,gW:getWidth,rAF:rAF};return lazysizes2}))})(lazysizes);var lazysizesExports=lazysizes.exports;export{lazysizesExports as l};