proscenium 0.15.0.beta.5-arm64-darwin → 0.15.0.beta.7-arm64-darwin

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: ba987377abbaebbf4eb211dd824fead6dcb97676dcb7499c9edce7fc42eaafa9
4
- data.tar.gz: faaecb2565d83c961788235b906392386cfd6c423210f28752e6343fc97db035
3
+ metadata.gz: 22220a996970e7d68157de006512c184796c9716279bf5ab1aa37d7c5baaff2c
4
+ data.tar.gz: 88eb65f121070d784d8755ff99a4ff98c873627e85dbd88b7e970ccb55558b52
5
5
  SHA512:
6
- metadata.gz: 610dcbd471c985770f9a0b7a24701feb9ce098baf385b169e09929450f6d49799cc574c94ad35e5e72f1bda7a35876610820ce4d730f16889dfeb87435f29edf
7
- data.tar.gz: 9711ff219beb2ca42d60a482b2508b6c18f8a4dd49f6a68f8a2558f897e8cce9e660c3613ca505e37fee4feeb68e73a1ab57b1961a3fef0d82db59b54b3a36c6
6
+ metadata.gz: a839a7d81bc463f486b1453cdecd258e0268282de72a7faadd598e3cc953ba582381e43cf3d95cd21e30c179b190e544c87af20dec8f0ba204d82ffef7ef833f
7
+ data.tar.gz: dd142648607c8a846a51bcab4f65acf5d83f678ab98afd027a34f29fddd8271e2270308c47e2052351def2ecca7b9b090661b52c8fde45c24f2db4298e4ea131
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: arm64-darwin
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