proscenium 0.15.0.beta.5-aarch64-linux → 0.15.0.beta.7-aarch64-linux

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1617ec045da7aeb75e675881fbf33d926cbac0fc9e8a859df65332439b0238e2
4
- data.tar.gz: 3bc2b29ffe41770149e14502c814291939c524f52254f793b2ea59486eaeee19
3
+ metadata.gz: 49f6fe693967cb2ffc379220ba1262b2790938bc5c7b38b6a315977fc2fe20e4
4
+ data.tar.gz: ca070482bcadc259b630205f90d821b8af3f3ba774903c666e7fdfdf7f5a076f
5
5
  SHA512:
6
- metadata.gz: df241bdca15174d8ede8d40af92929d62f3b2ac652b7bfa8582afec5533725407e987e99592b56438ae54c73b77021b845bd024428180cc682ab570437350dab
7
- data.tar.gz: c3888dc4ee531bc6a764aff7f750db398c2f3ec4c5f55557c1380d8c75ec2559348cd0929f85c9315e3f7a5f32abe96bfc2b3c51e3e4089e32ef2be96948d82c
6
+ metadata.gz: 9bb022f74de34eaee005f94c3603c125cbd9c717bcb879d31c1afcbfa7db45f9b89b3f2d84e3d26b3363276eed4c8648061f0f9c30c31bfe355c59024618efe7
7
+ data.tar.gz: 6a0fedfd8672d4205449601cf5a0fac5100bb66fb88aec5a9cc869b29c714b1021aeaf9511145f610b13ed838e80dcd82b78c7aee029ddf63f5ff080da1257a4
Binary file
@@ -61,19 +61,36 @@ module Proscenium
61
61
  #
62
62
  # @param filepath [Pathname] Absolute file system path of the Ruby file to sideload.
63
63
  def sideload(filepath, **options)
64
+ return if !Proscenium.config.side_load || (options[:js] == false && options[:css] == false)
65
+
66
+ sideload_js(filepath, **options) unless options[:js] == false
67
+ sideload_css(filepath, **options) unless options[:css] == false
68
+ end
69
+
70
+ def sideload_js(filepath, **options)
64
71
  return unless Proscenium.config.side_load
65
72
 
66
73
  filepath = Rails.root.join(filepath) unless filepath.is_a?(Pathname)
67
74
  filepath = filepath.sub_ext('')
68
75
 
69
- import_if_exists = lambda do |x|
76
+ JS_EXTENSIONS.find do |x|
70
77
  if (fp = filepath.sub_ext(x)).exist?
71
78
  import(Resolver.resolve(fp.to_s), sideloaded: true, **options)
72
79
  end
73
80
  end
81
+ end
74
82
 
75
- JS_EXTENSIONS.find(&import_if_exists) unless options[:js] == false
76
- CSS_EXTENSIONS.find(&import_if_exists) unless options[:css] == false
83
+ def sideload_css(filepath, **options)
84
+ return unless Proscenium.config.side_load
85
+
86
+ filepath = Rails.root.join(filepath) unless filepath.is_a?(Pathname)
87
+ filepath = filepath.sub_ext('')
88
+
89
+ CSS_EXTENSIONS.find do |x|
90
+ if (fp = filepath.sub_ext(x)).exist?
91
+ import(Resolver.resolve(fp.to_s), sideloaded: true, **options)
92
+ end
93
+ end
77
94
  end
78
95
 
79
96
  def each_stylesheet(delete: false)
@@ -1,16 +1,23 @@
1
1
  export default class DataConfirm {
2
- onSubmit = event => {
3
- if (!event.target.matches('[data-turbo=true]') && 'confirm' in event.submitter.dataset) {
4
- const v = event.submitter.dataset.confirm
2
+ onSubmit = (event) => {
3
+ if (
4
+ !event.target.matches("[data-turbo=true]") &&
5
+ event.submitter &&
6
+ "confirm" in event.submitter.dataset
7
+ ) {
8
+ const v = event.submitter.dataset.confirm;
5
9
 
6
- if (v !== 'false' && !confirm(v === 'true' || v === '' ? 'Are you sure?' : v)) {
7
- event.preventDefault()
8
- event.stopPropagation()
9
- event.stopImmediatePropagation()
10
- return false
10
+ if (
11
+ v !== "false" &&
12
+ !confirm(v === "true" || v === "" ? "Are you sure?" : v)
13
+ ) {
14
+ event.preventDefault();
15
+ event.stopPropagation();
16
+ event.stopImmediatePropagation();
17
+ return false;
11
18
  }
12
19
  }
13
20
 
14
- return true
15
- }
21
+ return true;
22
+ };
16
23
  }
@@ -127,16 +127,28 @@ module Proscenium
127
127
  options[k] = obj.instance_eval(&options[k]) if options[k].is_a?(Proc)
128
128
  end
129
129
 
130
+ css_imports = []
131
+
130
132
  klass = obj.class
131
133
  while klass.respond_to?(:source_path) && klass.source_path && !klass.abstract_class
132
134
  if klass.respond_to?(:sideload)
133
135
  klass.sideload options
134
- else
136
+ elsif options[:css] == false
135
137
  Importer.sideload klass.source_path, **options
138
+ else
139
+ Importer.sideload_js klass.source_path, **options
140
+ css_imports << klass.source_path
136
141
  end
137
142
 
138
143
  klass = klass.superclass
139
144
  end
145
+
146
+ # The reason why we sideload CSS after JS is because the order of CSS is important.
147
+ # Basically, the layout should be loaded before the view so that CSS cascading works i9n the
148
+ # right direction.
149
+ css_imports.reverse_each do |it|
150
+ Importer.sideload_css it, **options
151
+ end
140
152
  end
141
153
  end
142
154
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Proscenium
4
- VERSION = '0.15.0.beta.5'
4
+ VERSION = '0.15.0.beta.7'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: proscenium
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.0.beta.5
4
+ version: 0.15.0.beta.7
5
5
  platform: aarch64-linux
6
6
  authors:
7
7
  - Joel Moss
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-15 00:00:00.000000000 Z
11
+ date: 2024-07-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -64,14 +64,14 @@ dependencies:
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: 1.16.3
67
+ version: 1.17.0
68
68
  type: :runtime
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
- version: 1.16.3
74
+ version: 1.17.0
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: oj
77
77
  requirement: !ruby/object:Gem::Requirement
@@ -221,7 +221,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
221
221
  - !ruby/object:Gem::Version
222
222
  version: '0'
223
223
  requirements: []
224
- rubygems_version: 3.5.7
224
+ rubygems_version: 3.5.11
225
225
  signing_key:
226
226
  specification_version: 4
227
227
  summary: The engine powering your Rails frontend