Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/bootstrap-rubygem.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGleb Mazovetskiy <glex.spb@gmail.com>2022-07-20 11:45:40 +0300
committerGleb Mazovetskiy <glex.spb@gmail.com>2022-07-20 11:45:40 +0300
commitbadd3aed1ad8e7659485865687412ad3a27ff6a3 (patch)
tree94a6cd881c59c537654ff94dc143d5f190f61af6
parent9892831e005bdb2da72f41aa42a6391baa6ad188 (diff)
Prepare for v5.2.0
Updater script: 1. Upstream uses relative paths for import. Support that. 2. Upstream no longer inlines any sources in js/dist/. Integration JS: 1. Popper is now referenced via `globalThis["@popperjs/core"]` (previously: `globalThis["Popper"]`). Dependencies: 1. Minimum Popper version bumped to 2.11.5
-rw-r--r--assets/javascripts/bootstrap-global-this-define.js2
-rw-r--r--bootstrap.gemspec2
-rw-r--r--tasks/updater/js.rb13
3 files changed, 11 insertions, 6 deletions
diff --git a/assets/javascripts/bootstrap-global-this-define.js b/assets/javascripts/bootstrap-global-this-define.js
index 82c26f5..f3a3cc1 100644
--- a/assets/javascripts/bootstrap-global-this-define.js
+++ b/assets/javascripts/bootstrap-global-this-define.js
@@ -1,6 +1,6 @@
// Set a `globalThis` so that bootstrap components are defined on window.bootstrap instead of window.
window['bootstrap'] = {
- Popper: window.Popper,
+ "@popperjs/core": window.Popper,
_originalGlobalThis: window['globalThis']
};
window['globalThis'] = window['bootstrap'];
diff --git a/bootstrap.gemspec b/bootstrap.gemspec
index 98d163b..00c057f 100644
--- a/bootstrap.gemspec
+++ b/bootstrap.gemspec
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
# SassC requires Ruby 2.3.3. Also specify here to make it obvious.
s.required_ruby_version = '>= 2.3.3'
- s.add_runtime_dependency 'popper_js', '>= 2.9.3', '< 3'
+ s.add_runtime_dependency 'popper_js', '>= 2.11.5', '< 3'
s.add_runtime_dependency 'sassc-rails', '>= 2.0.0'
s.add_runtime_dependency 'autoprefixer-rails', '>= 9.1.0'
diff --git a/tasks/updater/js.rb b/tasks/updater/js.rb
index 4d5b50a..9d64607 100644
--- a/tasks/updater/js.rb
+++ b/tasks/updater/js.rb
@@ -1,8 +1,9 @@
+require 'pathname'
require 'tsort'
class Updater
module Js
- INLINED_SRCS = %w[util/backdrop.js util/component-functions.js util/focustrap.js util/index.js util/sanitizer.js util/scrollbar.js].freeze
+ INLINED_SRCS = %w[].freeze
def update_javascript_assets
log_status 'Updating javascripts...'
@@ -49,7 +50,9 @@ class Updater
imports = Deps.new
# Get the imports from the ES6 files to order requires correctly.
read_files('js/src', src_files).each do |name, content|
- file_imports = content.scan(%r{import *(?:[a-zA-Z]*|\{[a-zA-Z ,]*\}) *from '\./([\w/-]+)}).flatten(1).map { |f| "#{f}.js" }.uniq
+ file_imports = content.scan(%r{import *(?:[a-zA-Z]*|\{[a-zA-Z ,]*\}) *from '([\w/.-]+)}).flatten(1).map do |f|
+ Pathname.new(name).dirname.join("#{f}.js").cleanpath.to_s
+ end.uniq
imports.add name, *(file_imports - INLINED_SRCS)
end
imports.tsort
@@ -68,13 +71,15 @@ class Updater
end
def add(from, *tos)
- (@imports[from] ||= []).push(*tos.sort)
+ imports = (@imports[from] ||= [])
+ imports.push(*tos)
+ imports.sort!
end
def tsort_each_child(node, &block)
node_imports = @imports[node]
if node_imports.nil?
- raise "No imports found for #{node.inspect}"
+ raise "No imports found for #{node.inspect}\nImports:\n#{@imports.inspect}"
end
node_imports.each(&block)
end