playbook_ui 14.12.0 → 14.13.0.pre.rc.0

Sign up to get free protection for your applications and to get access to all the features.
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};