Compare commits
1 commit
dgn-2024-1
...
main
Author | SHA1 | Date | |
---|---|---|---|
|
f270f1cdd0 |
52
.eslintrc.js
Normal file
|
@ -0,0 +1,52 @@
|
|||
module.exports = {
|
||||
root: true,
|
||||
parser: '@typescript-eslint/parser',
|
||||
globals: {
|
||||
process: true,
|
||||
gon: true
|
||||
},
|
||||
plugins: ['prettier', 'react-hooks'],
|
||||
extends: [
|
||||
'eslint:recommended',
|
||||
'prettier',
|
||||
'plugin:react/recommended',
|
||||
'plugin:react-hooks/recommended'
|
||||
],
|
||||
env: {
|
||||
es6: true,
|
||||
browser: true
|
||||
},
|
||||
rules: {
|
||||
'prettier/prettier': 'error',
|
||||
'react-hooks/rules-of-hooks': 'error',
|
||||
'react-hooks/exhaustive-deps': 'error',
|
||||
'react/prop-types': 'off',
|
||||
'react/no-deprecated': 'off'
|
||||
},
|
||||
settings: {
|
||||
react: { version: 'detect' }
|
||||
},
|
||||
overrides: [
|
||||
{
|
||||
files: ['.eslintrc.js', 'vite.config.ts', 'postcss.config.js'],
|
||||
env: { node: true }
|
||||
},
|
||||
{
|
||||
files: ['**/*.ts', '**/*.tsx'],
|
||||
plugins: ['@typescript-eslint'],
|
||||
extends: [
|
||||
'eslint:recommended',
|
||||
'plugin:@typescript-eslint/recommended',
|
||||
'plugin:react-hooks/recommended',
|
||||
'prettier'
|
||||
],
|
||||
rules: {
|
||||
'prettier/prettier': 'error',
|
||||
'react-hooks/rules-of-hooks': 'error',
|
||||
'react-hooks/exhaustive-deps': 'error',
|
||||
'@typescript-eslint/no-explicit-any': 'error',
|
||||
'@typescript-eslint/no-unused-vars': 'error'
|
||||
}
|
||||
}
|
||||
]
|
||||
};
|
1
.gitattributes
vendored
|
@ -1 +0,0 @@
|
|||
*.lockb binary diff=lockb
|
33
.github/workflows/ci.yml
vendored
|
@ -10,7 +10,7 @@ on:
|
|||
jobs:
|
||||
linters:
|
||||
name: Linters
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-latest
|
||||
services:
|
||||
postgres:
|
||||
image: postgis/postgis:14-3.3
|
||||
|
@ -33,7 +33,7 @@ jobs:
|
|||
|
||||
js_tests:
|
||||
name: JavaScript tests
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
@ -51,15 +51,9 @@ jobs:
|
|||
run: |
|
||||
bun run test
|
||||
|
||||
- name: Upload coverage to Codecov
|
||||
uses: codecov/codecov-action@v4
|
||||
env:
|
||||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
||||
|
||||
unit_tests:
|
||||
name: Unit tests
|
||||
runs-on: ubuntu-22.04
|
||||
timeout-minutes: 20
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
RUBY_YJIT_ENABLE: "1"
|
||||
services:
|
||||
|
@ -81,8 +75,7 @@ jobs:
|
|||
- name: Install build dependancies
|
||||
# - fonts pickable by ImageMagick
|
||||
# - rust for YJIT support
|
||||
# - poppler-utils for pdf previews
|
||||
run: sudo apt-get update && sudo apt-get install -y gsfonts rustc redis-server poppler-utils
|
||||
run: sudo apt-get update && sudo apt-get install -y gsfonts rustc redis-server
|
||||
|
||||
- name: Setup the app runtime and dependencies
|
||||
uses: ./.github/actions/ci-setup-rails
|
||||
|
@ -107,15 +100,9 @@ jobs:
|
|||
name: rspec-results-${{ github.job }}-${{ strategy.job-index }}
|
||||
path: tmp/rspec_${{ github.job }}_${{ strategy.job-index }}.junit.xml
|
||||
|
||||
- name: Upload coverage to Codecov
|
||||
uses: codecov/codecov-action@v4
|
||||
env:
|
||||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
||||
|
||||
system_tests:
|
||||
name: System tests
|
||||
runs-on: ubuntu-22.04
|
||||
timeout-minutes: 20
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
RUBY_YJIT_ENABLE: "1"
|
||||
services:
|
||||
|
@ -137,9 +124,6 @@ jobs:
|
|||
- name: Setup the app runtime and dependencies
|
||||
uses: ./.github/actions/ci-setup-rails
|
||||
|
||||
- name: Setup playwright
|
||||
run: bunx playwright install chromium
|
||||
|
||||
- name: Pre-compile assets
|
||||
uses: ./.github/actions/ci-setup-assets
|
||||
|
||||
|
@ -160,15 +144,10 @@ jobs:
|
|||
name: rspec-results-${{ github.job }}-${{ strategy.job-index }}
|
||||
path: tmp/rspec_${{ github.job }}_${{ strategy.job-index }}.junit.xml
|
||||
|
||||
- name: Upload coverage to Codecov
|
||||
uses: codecov/codecov-action@v4
|
||||
env:
|
||||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
||||
|
||||
save_test_reports:
|
||||
name: Save test reports
|
||||
needs: [unit_tests, system_tests]
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
|
6
.gitignore
vendored
|
@ -18,23 +18,17 @@ public/downloads
|
|||
doc/*.svg
|
||||
uploads/*
|
||||
.byebug_history
|
||||
.DS_Store
|
||||
*.swp
|
||||
.envrc
|
||||
.env
|
||||
.tool-versions
|
||||
storage/
|
||||
/node_modules
|
||||
/yarn-error.log
|
||||
yarn-debug.log*
|
||||
.yarn-integrity
|
||||
/.vscode
|
||||
/.zed
|
||||
/.idea
|
||||
/public/assets
|
||||
/spec/support/spec_config.local.rb
|
||||
/config/initializers/config.local.rb
|
||||
/coverage
|
||||
|
||||
# Local Netlify folder
|
||||
.netlify
|
||||
|
|
4
.prettierrc.js
Normal file
|
@ -0,0 +1,4 @@
|
|||
module.exports = {
|
||||
singleQuote: true,
|
||||
trailingComma: 'none'
|
||||
};
|
|
@ -11,7 +11,7 @@ inherit_mode:
|
|||
- Include
|
||||
|
||||
AllCops:
|
||||
TargetRubyVersion: 3.3
|
||||
TargetRubyVersion: 3.2
|
||||
DisabledByDefault: true
|
||||
SuggestExtensions: false
|
||||
NewCops: enable
|
||||
|
@ -23,8 +23,6 @@ AllCops:
|
|||
- "bin/*"
|
||||
- "node_modules/**/*"
|
||||
- "vendor/**/*"
|
||||
- "storage/**/*"
|
||||
- "tmp/**/*"
|
||||
|
||||
DS/AddConcurrentIndex:
|
||||
Enabled: true
|
||||
|
@ -1177,7 +1175,7 @@ Style/FormatStringToken:
|
|||
EnforcedStyle: template
|
||||
|
||||
Style/FrozenStringLiteralComment:
|
||||
Enabled: true
|
||||
Enabled: false
|
||||
|
||||
Style/GlobalVars:
|
||||
Enabled: true
|
||||
|
@ -1497,7 +1495,8 @@ Style/WhileUntilModifier:
|
|||
Enabled: false
|
||||
|
||||
Style/WordArray:
|
||||
Enabled: false
|
||||
Enabled: true
|
||||
EnforcedStyle: brackets
|
||||
|
||||
Style/YodaCondition:
|
||||
Enabled: true
|
||||
|
|
|
@ -1 +1 @@
|
|||
3.3.2
|
||||
3.3.0
|
||||
|
|
264
.scss-lint.yml
Normal file
|
@ -0,0 +1,264 @@
|
|||
exclude:
|
||||
- 'app/assets/stylesheets/reset.scss'
|
||||
- 'app/assets/stylesheets/direct_uploads.scss'
|
||||
- 'app/assets/stylesheets/dsfr_override.scss'
|
||||
- 'app/assets/stylesheets/manager.scss'
|
||||
|
||||
linters:
|
||||
BangFormat:
|
||||
enabled: true
|
||||
space_before_bang: true
|
||||
space_after_bang: false
|
||||
|
||||
BemDepth:
|
||||
enabled: false
|
||||
max_elements: 1
|
||||
|
||||
BorderZero:
|
||||
enabled: true
|
||||
convention: none
|
||||
|
||||
# To enable later
|
||||
ChainedClasses:
|
||||
enabled: false
|
||||
|
||||
ColorKeyword:
|
||||
enabled: true
|
||||
|
||||
# To enable later
|
||||
ColorVariable:
|
||||
enabled: false
|
||||
|
||||
Comment:
|
||||
enabled: true
|
||||
style: silent
|
||||
|
||||
DebugStatement:
|
||||
enabled: true
|
||||
|
||||
DeclarationOrder:
|
||||
enabled: true
|
||||
|
||||
DisableLinterReason:
|
||||
enabled: false
|
||||
|
||||
DuplicateProperty:
|
||||
enabled: true
|
||||
|
||||
ElsePlacement:
|
||||
enabled: true
|
||||
style: same_line
|
||||
|
||||
EmptyLineBetweenBlocks:
|
||||
enabled: true
|
||||
ignore_single_line_blocks: false
|
||||
|
||||
EmptyRule:
|
||||
enabled: true
|
||||
|
||||
ExtendDirective:
|
||||
enabled: false
|
||||
|
||||
FinalNewline:
|
||||
enabled: true
|
||||
present: true
|
||||
|
||||
HexLength:
|
||||
enabled: true
|
||||
style: long
|
||||
|
||||
HexNotation:
|
||||
enabled: true
|
||||
style: uppercase
|
||||
|
||||
HexValidation:
|
||||
enabled: true
|
||||
|
||||
# To enable later
|
||||
IdSelector:
|
||||
enabled: false
|
||||
|
||||
# To enable later
|
||||
ImportantRule:
|
||||
enabled: false
|
||||
|
||||
ImportPath:
|
||||
enabled: false
|
||||
leading_underscore: false
|
||||
filename_extension: false
|
||||
|
||||
Indentation:
|
||||
enabled: true
|
||||
allow_non_nested_indentation: false
|
||||
character: space
|
||||
width: 2
|
||||
|
||||
LeadingZero:
|
||||
enabled: true
|
||||
style: include_zero
|
||||
|
||||
MergeableSelector:
|
||||
enabled: false
|
||||
force_nesting: true
|
||||
|
||||
NameFormat:
|
||||
enabled: true
|
||||
allow_leading_underscore: false
|
||||
convention: hyphenated_lowercase
|
||||
|
||||
# To enable later
|
||||
NestingDepth:
|
||||
enabled: false
|
||||
max_depth: 3
|
||||
ignore_parent_selectors: false
|
||||
|
||||
# To enable later
|
||||
PlaceholderInExtend:
|
||||
enabled: false
|
||||
|
||||
PrivateNamingConvention:
|
||||
enabled: false
|
||||
prefix: _
|
||||
|
||||
PropertyCount:
|
||||
enabled: false
|
||||
include_nested: false
|
||||
max_properties: 10
|
||||
|
||||
PropertySortOrder:
|
||||
enabled: false
|
||||
ignore_unspecified: false
|
||||
min_properties: 2
|
||||
separate_groups: false
|
||||
|
||||
PropertySpelling:
|
||||
enabled: true
|
||||
extra_properties:
|
||||
- scroll-padding
|
||||
disabled_properties: []
|
||||
|
||||
# To enable later
|
||||
PropertyUnits:
|
||||
enabled: false
|
||||
global: [
|
||||
'ch', 'em', 'ex', 'rem', # Font-relative lengths
|
||||
'cm', 'in', 'mm', 'pc', 'pt', 'px', 'q', # Absolute lengths
|
||||
'vh', 'vw', 'vmin', 'vmax', # Viewport-percentage lengths
|
||||
'deg', 'grad', 'rad', 'turn', # Angle
|
||||
'ms', 's', # Duration
|
||||
'Hz', 'kHz', # Frequency
|
||||
'dpi', 'dpcm', 'dppx', # Resolution
|
||||
'%'] # Other
|
||||
properties: {}
|
||||
|
||||
PseudoElement:
|
||||
enabled: false # otherwise rules on ::marker fails
|
||||
|
||||
# To enable later
|
||||
QualifyingElement:
|
||||
enabled: false
|
||||
allow_element_with_attribute: false
|
||||
allow_element_with_class: false
|
||||
allow_element_with_id: false
|
||||
|
||||
# To enable later
|
||||
SelectorDepth:
|
||||
enabled: false
|
||||
max_depth: 3
|
||||
|
||||
SelectorFormat:
|
||||
enabled: true
|
||||
# hyphenated_lowercase + any dsfr selector which are not hyphenated
|
||||
convention: ^(?:fr-[^A-Z]+|[^_A-Z]+)$
|
||||
|
||||
Shorthand:
|
||||
enabled: false
|
||||
allowed_shorthands: [1, 2, 3, 4]
|
||||
|
||||
SingleLinePerProperty:
|
||||
enabled: true
|
||||
allow_single_line_rule_sets: false
|
||||
|
||||
SingleLinePerSelector:
|
||||
enabled: true
|
||||
|
||||
SpaceAfterComma:
|
||||
enabled: true
|
||||
style: one_space
|
||||
|
||||
SpaceAfterComment:
|
||||
enabled: true
|
||||
style: one_space
|
||||
allow_empty_comments: true
|
||||
|
||||
SpaceAfterPropertyColon:
|
||||
enabled: true
|
||||
style: one_space
|
||||
|
||||
SpaceAfterPropertyName:
|
||||
enabled: true
|
||||
|
||||
SpaceAfterVariableColon:
|
||||
enabled: true
|
||||
style: one_space
|
||||
|
||||
SpaceAfterVariableName:
|
||||
enabled: true
|
||||
|
||||
SpaceAroundOperator:
|
||||
enabled: true
|
||||
style: one_space
|
||||
|
||||
SpaceBeforeBrace:
|
||||
enabled: true
|
||||
style: space
|
||||
allow_single_line_padding: false
|
||||
|
||||
SpaceBetweenParens:
|
||||
enabled: true
|
||||
spaces: 0
|
||||
|
||||
StringQuotes:
|
||||
enabled: true
|
||||
style: double_quotes
|
||||
|
||||
TrailingSemicolon:
|
||||
enabled: true
|
||||
|
||||
TrailingWhitespace:
|
||||
enabled: true
|
||||
|
||||
TrailingZero:
|
||||
enabled: true
|
||||
|
||||
# To enable later
|
||||
TransitionAll:
|
||||
enabled: false
|
||||
|
||||
UnnecessaryMantissa:
|
||||
enabled: true
|
||||
|
||||
UnnecessaryParentReference:
|
||||
enabled: true
|
||||
|
||||
UrlFormat:
|
||||
enabled: true
|
||||
|
||||
UrlQuotes:
|
||||
enabled: true
|
||||
|
||||
VariableForProperty:
|
||||
enabled: false
|
||||
properties: []
|
||||
|
||||
VendorPrefix:
|
||||
enabled: true
|
||||
identifier_list: base
|
||||
additional_identifiers: []
|
||||
excluded_identifiers: []
|
||||
|
||||
ZeroUnit:
|
||||
enabled: false
|
||||
|
||||
Compass::*:
|
||||
enabled: false
|
30
.simplecov
|
@ -1,30 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
SimpleCov.start "rails" do
|
||||
enable_coverage :branch
|
||||
|
||||
command_name "RSpec process #{Process.pid}"
|
||||
|
||||
if ENV["CI"] # codecov compatibility
|
||||
require 'simplecov-cobertura'
|
||||
formatter SimpleCov::Formatter::CoberturaFormatter
|
||||
else
|
||||
formatter SimpleCov::Formatter::MultiFormatter.new([
|
||||
SimpleCov::Formatter::SimpleFormatter,
|
||||
SimpleCov::Formatter::HTMLFormatter
|
||||
])
|
||||
end
|
||||
|
||||
add_filter "/channels/" # not used
|
||||
groups.delete("Channels")
|
||||
|
||||
add_filter "/lib/tasks/deployment/"
|
||||
|
||||
add_group "Components", "app/components"
|
||||
add_group "API", ["app/graphql", "app/serializers"]
|
||||
add_group "Manager", ["app/dashboards", "app/fields", "app/controllers/manager"]
|
||||
add_group "Models", ["app/models", "app/validators"]
|
||||
add_group "Policies", "app/policies"
|
||||
add_group "Services", "app/services"
|
||||
add_group "Tasks", ["app/tasks", "lib/tasks"]
|
||||
end
|
13
Gemfile
|
@ -1,5 +1,3 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
source 'https://rubygems.org'
|
||||
|
||||
gem 'rails', '~> 7.0.8' # allows update to security fixes at any time
|
||||
|
@ -19,7 +17,6 @@ gem 'anchored'
|
|||
gem 'bcrypt'
|
||||
gem 'bootsnap', '>= 1.4.4', require: false # Reduces boot times through caching; required in config/boot.rb
|
||||
gem 'browser'
|
||||
gem 'capybara-playwright-driver'
|
||||
gem 'charlock_holmes'
|
||||
gem 'chartkick'
|
||||
gem 'chunky_png'
|
||||
|
@ -29,7 +26,7 @@ gem 'deep_cloneable' # Enable deep clone of active record models
|
|||
gem 'delayed_cron_job', require: false # Cron jobs
|
||||
gem 'delayed_job_active_record'
|
||||
gem 'delayed_job_web'
|
||||
gem 'devise'
|
||||
gem 'devise', git: 'https://github.com/heartcombo/devise.git', ref: "edffc79bf05d7f1c58ba50ffeda645e2e4ae0cb1" # Gestion des comptes utilisateurs, drop ref on next release: 4.9.4
|
||||
gem 'devise-i18n'
|
||||
gem 'devise-two-factor'
|
||||
gem 'discard'
|
||||
|
@ -40,7 +37,6 @@ gem 'flipper'
|
|||
gem 'flipper-active_record'
|
||||
gem 'flipper-active_support_cache_store'
|
||||
gem 'flipper-ui'
|
||||
gem 'front_matter_parser'
|
||||
gem 'fugit'
|
||||
gem 'geocoder'
|
||||
gem 'geo_coord', require: "geo/coord"
|
||||
|
@ -98,7 +94,6 @@ gem 'sidekiq'
|
|||
gem 'sidekiq-cron'
|
||||
gem 'skylight'
|
||||
gem 'spreadsheet_architect'
|
||||
gem 'string-similarity'
|
||||
gem 'strong_migrations' # lint database migrations
|
||||
gem 'sys-proctable'
|
||||
gem 'turbo-rails'
|
||||
|
@ -111,7 +106,7 @@ gem 'webrick', require: false
|
|||
gem 'yabeda-prometheus'
|
||||
gem 'yabeda-sidekiq'
|
||||
gem 'zipline'
|
||||
gem 'zxcvbn'
|
||||
gem 'zxcvbn-ruby', require: 'zxcvbn'
|
||||
|
||||
group :test do
|
||||
gem 'axe-core-rspec' # accessibility rspec matchers
|
||||
|
@ -127,9 +122,6 @@ group :test do
|
|||
gem 'selenium-devtools'
|
||||
gem 'selenium-webdriver'
|
||||
gem 'shoulda-matchers', require: false
|
||||
gem 'simplecov', require: false
|
||||
gem 'simplecov-cobertura', require: false
|
||||
gem "test-prof"
|
||||
gem 'timecop'
|
||||
gem 'vcr'
|
||||
gem 'webmock'
|
||||
|
@ -147,6 +139,7 @@ group :development do
|
|||
gem 'rubocop-performance', require: false
|
||||
gem 'rubocop-rails', require: false
|
||||
gem 'rubocop-rspec', require: false
|
||||
gem 'scss_lint', require: false
|
||||
gem 'stackprof'
|
||||
gem 'web-console'
|
||||
end
|
||||
|
|
377
Gemfile.lock
|
@ -6,53 +6,65 @@ GIT
|
|||
json (>= 2.5)
|
||||
sidekiq (~> 7.0)
|
||||
|
||||
GIT
|
||||
remote: https://github.com/heartcombo/devise.git
|
||||
revision: edffc79bf05d7f1c58ba50ffeda645e2e4ae0cb1
|
||||
ref: edffc79bf05d7f1c58ba50ffeda645e2e4ae0cb1
|
||||
specs:
|
||||
devise (4.9.3)
|
||||
bcrypt (~> 3.0)
|
||||
orm_adapter (~> 0.1)
|
||||
railties (>= 4.1.0)
|
||||
responders
|
||||
warden (~> 1.2.3)
|
||||
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
aasm (5.5.0)
|
||||
concurrent-ruby (~> 1.0)
|
||||
acsv (0.0.1)
|
||||
actioncable (7.0.8.7)
|
||||
actionpack (= 7.0.8.7)
|
||||
activesupport (= 7.0.8.7)
|
||||
actioncable (7.0.8.1)
|
||||
actionpack (= 7.0.8.1)
|
||||
activesupport (= 7.0.8.1)
|
||||
nio4r (~> 2.0)
|
||||
websocket-driver (>= 0.6.1)
|
||||
actionmailbox (7.0.8.7)
|
||||
actionpack (= 7.0.8.7)
|
||||
activejob (= 7.0.8.7)
|
||||
activerecord (= 7.0.8.7)
|
||||
activestorage (= 7.0.8.7)
|
||||
activesupport (= 7.0.8.7)
|
||||
actionmailbox (7.0.8.1)
|
||||
actionpack (= 7.0.8.1)
|
||||
activejob (= 7.0.8.1)
|
||||
activerecord (= 7.0.8.1)
|
||||
activestorage (= 7.0.8.1)
|
||||
activesupport (= 7.0.8.1)
|
||||
mail (>= 2.7.1)
|
||||
net-imap
|
||||
net-pop
|
||||
net-smtp
|
||||
actionmailer (7.0.8.7)
|
||||
actionpack (= 7.0.8.7)
|
||||
actionview (= 7.0.8.7)
|
||||
activejob (= 7.0.8.7)
|
||||
activesupport (= 7.0.8.7)
|
||||
actionmailer (7.0.8.1)
|
||||
actionpack (= 7.0.8.1)
|
||||
actionview (= 7.0.8.1)
|
||||
activejob (= 7.0.8.1)
|
||||
activesupport (= 7.0.8.1)
|
||||
mail (~> 2.5, >= 2.5.4)
|
||||
net-imap
|
||||
net-pop
|
||||
net-smtp
|
||||
rails-dom-testing (~> 2.0)
|
||||
actionpack (7.0.8.7)
|
||||
actionview (= 7.0.8.7)
|
||||
activesupport (= 7.0.8.7)
|
||||
actionpack (7.0.8.1)
|
||||
actionview (= 7.0.8.1)
|
||||
activesupport (= 7.0.8.1)
|
||||
rack (~> 2.0, >= 2.2.4)
|
||||
rack-test (>= 0.6.3)
|
||||
rails-dom-testing (~> 2.0)
|
||||
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
||||
actiontext (7.0.8.7)
|
||||
actionpack (= 7.0.8.7)
|
||||
activerecord (= 7.0.8.7)
|
||||
activestorage (= 7.0.8.7)
|
||||
activesupport (= 7.0.8.7)
|
||||
actiontext (7.0.8.1)
|
||||
actionpack (= 7.0.8.1)
|
||||
activerecord (= 7.0.8.1)
|
||||
activestorage (= 7.0.8.1)
|
||||
activesupport (= 7.0.8.1)
|
||||
globalid (>= 0.6.0)
|
||||
nokogiri (>= 1.8.5)
|
||||
actionview (7.0.8.7)
|
||||
activesupport (= 7.0.8.7)
|
||||
actionview (7.0.8.1)
|
||||
activesupport (= 7.0.8.1)
|
||||
builder (~> 3.1)
|
||||
erubi (~> 1.4)
|
||||
rails-dom-testing (~> 2.0)
|
||||
|
@ -67,26 +79,26 @@ GEM
|
|||
activemodel (>= 5.2.0)
|
||||
activestorage (>= 5.2.0)
|
||||
activesupport (>= 5.2.0)
|
||||
activejob (7.0.8.7)
|
||||
activesupport (= 7.0.8.7)
|
||||
activejob (7.0.8.1)
|
||||
activesupport (= 7.0.8.1)
|
||||
globalid (>= 0.3.6)
|
||||
activemodel (7.0.8.7)
|
||||
activesupport (= 7.0.8.7)
|
||||
activerecord (7.0.8.7)
|
||||
activemodel (= 7.0.8.7)
|
||||
activesupport (= 7.0.8.7)
|
||||
activestorage (7.0.8.7)
|
||||
actionpack (= 7.0.8.7)
|
||||
activejob (= 7.0.8.7)
|
||||
activerecord (= 7.0.8.7)
|
||||
activesupport (= 7.0.8.7)
|
||||
activemodel (7.0.8.1)
|
||||
activesupport (= 7.0.8.1)
|
||||
activerecord (7.0.8.1)
|
||||
activemodel (= 7.0.8.1)
|
||||
activesupport (= 7.0.8.1)
|
||||
activestorage (7.0.8.1)
|
||||
actionpack (= 7.0.8.1)
|
||||
activejob (= 7.0.8.1)
|
||||
activerecord (= 7.0.8.1)
|
||||
activesupport (= 7.0.8.1)
|
||||
marcel (~> 1.0)
|
||||
mini_mime (>= 1.1.0)
|
||||
activestorage-openstack (1.6.0)
|
||||
fog-openstack (>= 1.0.9)
|
||||
marcel
|
||||
rails (>= 5.2.2)
|
||||
activesupport (7.0.8.7)
|
||||
activesupport (7.0.8.1)
|
||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||
i18n (>= 1.6, < 2)
|
||||
minitest (>= 5.1)
|
||||
|
@ -136,7 +148,7 @@ GEM
|
|||
erubi (~> 1.4)
|
||||
parser (>= 2.4)
|
||||
smart_properties
|
||||
bigdecimal (3.1.7)
|
||||
bigdecimal (3.1.6)
|
||||
bindata (2.5.0)
|
||||
bindex (0.8.1)
|
||||
bootsnap (1.18.3)
|
||||
|
@ -144,7 +156,7 @@ GEM
|
|||
brakeman (6.1.2)
|
||||
racc
|
||||
browser (5.3.1)
|
||||
builder (3.3.0)
|
||||
builder (3.2.4)
|
||||
capybara (3.40.0)
|
||||
addressable
|
||||
matrix
|
||||
|
@ -157,10 +169,6 @@ GEM
|
|||
capybara-email (3.0.2)
|
||||
capybara (>= 2.4, < 4.0)
|
||||
mail
|
||||
capybara-playwright-driver (0.5.2)
|
||||
addressable
|
||||
capybara
|
||||
playwright-ruby-client (>= 1.16.0)
|
||||
capybara-screenshot (1.0.26)
|
||||
capybara (>= 1.0, < 4)
|
||||
launchy
|
||||
|
@ -171,14 +179,14 @@ GEM
|
|||
marcel (~> 1.0)
|
||||
nokogiri (~> 1.10, >= 1.10.4)
|
||||
rubyzip (>= 1.3.0, < 3)
|
||||
charlock_holmes (0.7.9)
|
||||
chartkick (5.0.6)
|
||||
charlock_holmes (0.7.7)
|
||||
chartkick (5.0.5)
|
||||
choice (0.2.0)
|
||||
chunky_png (1.4.0)
|
||||
clamav-client (3.2.0)
|
||||
coercible (1.0.0)
|
||||
descendants_tracker (~> 0.0.1)
|
||||
concurrent-ruby (1.3.4)
|
||||
concurrent-ruby (1.2.3)
|
||||
connection_pool (2.4.1)
|
||||
content_disposition (1.0.0)
|
||||
crack (1.0.0)
|
||||
|
@ -187,7 +195,6 @@ GEM
|
|||
crass (1.0.6)
|
||||
css_parser (1.16.0)
|
||||
addressable
|
||||
csv (3.3.0)
|
||||
daemons (1.4.1)
|
||||
date (3.3.4)
|
||||
deep_cloneable (3.2.0)
|
||||
|
@ -206,15 +213,9 @@ GEM
|
|||
sinatra (>= 1.4.4)
|
||||
descendants_tracker (0.0.4)
|
||||
thread_safe (~> 0.3, >= 0.3.1)
|
||||
devise (4.9.4)
|
||||
bcrypt (~> 3.0)
|
||||
orm_adapter (~> 0.1)
|
||||
railties (>= 4.1.0)
|
||||
responders
|
||||
warden (~> 1.2.3)
|
||||
devise-i18n (1.12.0)
|
||||
devise (>= 4.9.0)
|
||||
devise-two-factor (6.0.0)
|
||||
devise-two-factor (5.0.0)
|
||||
activesupport (~> 7.0)
|
||||
devise (~> 4.0)
|
||||
railties (~> 7.0)
|
||||
|
@ -222,7 +223,6 @@ GEM
|
|||
diff-lcs (1.5.1)
|
||||
discard (1.3.0)
|
||||
activerecord (>= 4.2, < 8)
|
||||
docile (1.4.0)
|
||||
dotenv (2.8.1)
|
||||
dotenv-rails (2.8.1)
|
||||
dotenv (= 2.8.1)
|
||||
|
@ -239,8 +239,8 @@ GEM
|
|||
dumb_delegator (1.0.0)
|
||||
email_validator (2.2.4)
|
||||
activemodel
|
||||
erubi (1.13.0)
|
||||
et-orbi (1.2.11)
|
||||
erubi (1.12.0)
|
||||
et-orbi (1.2.7)
|
||||
tzinfo
|
||||
ethon (0.16.0)
|
||||
ffi (>= 1.15.0)
|
||||
|
@ -257,20 +257,19 @@ GEM
|
|||
faraday-net_http (3.1.0)
|
||||
net-http
|
||||
ffi (1.16.3)
|
||||
flipper (1.3.0)
|
||||
flipper (1.2.2)
|
||||
concurrent-ruby (< 2)
|
||||
flipper-active_record (1.3.0)
|
||||
flipper-active_record (1.2.2)
|
||||
activerecord (>= 4.2, < 8)
|
||||
flipper (~> 1.3.0)
|
||||
flipper-active_support_cache_store (1.3.0)
|
||||
flipper (~> 1.2.2)
|
||||
flipper-active_support_cache_store (1.2.2)
|
||||
activesupport (>= 4.2, < 8)
|
||||
flipper (~> 1.3.0)
|
||||
flipper-ui (1.3.0)
|
||||
flipper (~> 1.2.2)
|
||||
flipper-ui (1.2.2)
|
||||
erubi (>= 1.0.0, < 2.0.0)
|
||||
flipper (~> 1.3.0)
|
||||
flipper (~> 1.2.2)
|
||||
rack (>= 1.4, < 4)
|
||||
rack-protection (>= 1.5.3, < 5.0.0)
|
||||
rack-session (>= 1.0.2, < 3.0.0)
|
||||
rack-protection (>= 1.5.3, <= 4.0.0)
|
||||
sanitize (< 7)
|
||||
fog-core (2.4.0)
|
||||
builder
|
||||
|
@ -284,9 +283,8 @@ GEM
|
|||
fog-core (~> 2.1)
|
||||
fog-json (>= 1.0)
|
||||
formatador (1.1.0)
|
||||
front_matter_parser (1.0.1)
|
||||
fugit (1.11.1)
|
||||
et-orbi (~> 1, >= 1.2.11)
|
||||
fugit (1.9.0)
|
||||
et-orbi (~> 1, >= 1.2.7)
|
||||
raabro (~> 1.4)
|
||||
geo_coord (0.2.0)
|
||||
geocoder (1.8.2)
|
||||
|
@ -335,7 +333,7 @@ GEM
|
|||
highline (3.0.1)
|
||||
htmlentities (4.3.4)
|
||||
http_accept_language (2.1.1)
|
||||
i18n (1.14.6)
|
||||
i18n (1.14.4)
|
||||
concurrent-ruby (~> 1.0)
|
||||
i18n-tasks (1.0.13)
|
||||
activesupport (>= 4.0.2)
|
||||
|
@ -357,16 +355,16 @@ GEM
|
|||
invisible_captcha (2.2.0)
|
||||
rails (>= 5.2)
|
||||
io-console (0.7.2)
|
||||
irb (1.12.0)
|
||||
irb (1.11.2)
|
||||
rdoc
|
||||
reline (>= 0.4.2)
|
||||
job-iteration (1.7.0)
|
||||
job-iteration (1.4.1)
|
||||
activejob (>= 5.2)
|
||||
jquery-rails (4.6.0)
|
||||
rails-dom-testing (>= 1, < 3)
|
||||
railties (>= 4.2.0)
|
||||
thor (>= 0.14, < 2.0)
|
||||
json (2.8.2)
|
||||
json (2.7.1)
|
||||
json-jwt (1.16.6)
|
||||
activesupport (>= 4.2)
|
||||
aes_key_wrap
|
||||
|
@ -374,15 +372,12 @@ GEM
|
|||
bindata
|
||||
faraday (~> 2.0)
|
||||
faraday-follow_redirects
|
||||
json_schemer (2.2.1)
|
||||
base64
|
||||
bigdecimal
|
||||
json_schemer (2.1.1)
|
||||
hana (~> 1.3)
|
||||
regexp_parser (~> 2.0)
|
||||
simpleidn (~> 0.2)
|
||||
jsonapi-renderer (0.2.2)
|
||||
jwt (2.8.1)
|
||||
base64
|
||||
jwt (2.7.1)
|
||||
kaminari (1.2.2)
|
||||
activesupport (>= 4.1.0)
|
||||
kaminari-actionview (= 1.2.2)
|
||||
|
@ -409,17 +404,16 @@ GEM
|
|||
letter_opener (~> 1.7)
|
||||
railties (>= 5.2)
|
||||
rexml
|
||||
listen (3.9.0)
|
||||
listen (3.8.0)
|
||||
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||
rb-inotify (~> 0.9, >= 0.9.10)
|
||||
logger (1.6.0)
|
||||
lograge (0.14.0)
|
||||
actionpack (>= 4)
|
||||
activesupport (>= 4)
|
||||
railties (>= 4)
|
||||
request_store (~> 1.0)
|
||||
logstash-event (1.2.02)
|
||||
loofah (2.23.1)
|
||||
loofah (2.22.0)
|
||||
crass (~> 1.0.2)
|
||||
nokogiri (>= 1.12.0)
|
||||
mail (2.8.1)
|
||||
|
@ -427,18 +421,17 @@ GEM
|
|||
net-imap
|
||||
net-pop
|
||||
net-smtp
|
||||
maintenance_tasks (2.10.0)
|
||||
actionpack (>= 6.1)
|
||||
activejob (>= 6.1)
|
||||
activerecord (>= 6.1)
|
||||
csv
|
||||
maintenance_tasks (2.6.0)
|
||||
actionpack (>= 6.0)
|
||||
activejob (>= 6.0)
|
||||
activerecord (>= 6.0)
|
||||
job-iteration (>= 1.3.6)
|
||||
railties (>= 6.1)
|
||||
railties (>= 6.0)
|
||||
zeitwerk (>= 2.6.2)
|
||||
marcel (1.0.4)
|
||||
marcel (1.0.2)
|
||||
matrix (0.4.2)
|
||||
memory_profiler (1.0.1)
|
||||
method_source (1.1.0)
|
||||
method_source (1.0.0)
|
||||
mime-types (3.5.2)
|
||||
mime-types-data (~> 3.2015)
|
||||
mime-types-data (3.2024.0206)
|
||||
|
@ -446,25 +439,25 @@ GEM
|
|||
rake
|
||||
mini_magick (4.12.0)
|
||||
mini_mime (1.1.5)
|
||||
mini_portile2 (2.8.8)
|
||||
minitest (5.25.4)
|
||||
mini_portile2 (2.8.5)
|
||||
minitest (5.22.2)
|
||||
msgpack (1.7.2)
|
||||
multi_json (1.15.0)
|
||||
mustermann (3.0.0)
|
||||
ruby2_keywords (~> 0.0.1)
|
||||
net-http (0.4.1)
|
||||
uri
|
||||
net-imap (0.4.17)
|
||||
net-imap (0.4.10)
|
||||
date
|
||||
net-protocol
|
||||
net-pop (0.1.2)
|
||||
net-protocol
|
||||
net-protocol (0.2.2)
|
||||
timeout
|
||||
net-smtp (0.5.0)
|
||||
net-smtp (0.4.0.1)
|
||||
net-protocol
|
||||
nio4r (2.7.3)
|
||||
nokogiri (1.17.1)
|
||||
nio4r (2.7.0)
|
||||
nokogiri (1.16.2)
|
||||
mini_portile2 (~> 2.8.2)
|
||||
racc (~> 1.4)
|
||||
openid_connect (2.3.0)
|
||||
|
@ -481,17 +474,14 @@ GEM
|
|||
validate_url
|
||||
webfinger (~> 2.0)
|
||||
orm_adapter (0.5.0)
|
||||
parallel (1.26.3)
|
||||
parallel (1.24.0)
|
||||
parsby (1.1.1)
|
||||
parser (3.3.6.0)
|
||||
parser (3.3.0.5)
|
||||
ast (~> 2.4.1)
|
||||
racc
|
||||
pdf-core (0.9.0)
|
||||
pg (1.5.6)
|
||||
phonelib (0.8.8)
|
||||
playwright-ruby-client (1.46.0)
|
||||
concurrent-ruby (>= 1.1.6)
|
||||
mime-types (>= 3.0)
|
||||
pg (1.5.4)
|
||||
phonelib (0.8.7)
|
||||
prawn (2.4.0)
|
||||
pdf-core (~> 0.9.0)
|
||||
ttfunk (~> 1.7)
|
||||
|
@ -511,16 +501,16 @@ GEM
|
|||
premailer (~> 1.7, >= 1.7.9)
|
||||
prometheus-client (4.2.2)
|
||||
promise.rb (0.7.4)
|
||||
psych (5.2.0)
|
||||
psych (5.1.2)
|
||||
stringio
|
||||
public_suffix (5.0.5)
|
||||
puma (6.4.3)
|
||||
public_suffix (5.0.4)
|
||||
puma (6.4.2)
|
||||
nio4r (~> 2.0)
|
||||
pundit (2.3.1)
|
||||
activesupport (>= 3.0.0)
|
||||
raabro (1.4.0)
|
||||
racc (1.8.1)
|
||||
rack (2.2.10)
|
||||
racc (1.7.3)
|
||||
rack (2.2.8.1)
|
||||
rack-attack (6.7.0)
|
||||
rack (>= 1.0, < 4)
|
||||
rack-mini-profiler (3.3.1)
|
||||
|
@ -537,27 +527,25 @@ GEM
|
|||
rack (~> 2.2, >= 2.2.4)
|
||||
rack-proxy (0.7.7)
|
||||
rack
|
||||
rack-session (1.0.2)
|
||||
rack (< 3)
|
||||
rack-test (2.1.0)
|
||||
rack (>= 1.3)
|
||||
rack_session_access (0.2.0)
|
||||
builder (>= 2.0.0)
|
||||
rack (>= 1.0.0)
|
||||
rails (7.0.8.7)
|
||||
actioncable (= 7.0.8.7)
|
||||
actionmailbox (= 7.0.8.7)
|
||||
actionmailer (= 7.0.8.7)
|
||||
actionpack (= 7.0.8.7)
|
||||
actiontext (= 7.0.8.7)
|
||||
actionview (= 7.0.8.7)
|
||||
activejob (= 7.0.8.7)
|
||||
activemodel (= 7.0.8.7)
|
||||
activerecord (= 7.0.8.7)
|
||||
activestorage (= 7.0.8.7)
|
||||
activesupport (= 7.0.8.7)
|
||||
rails (7.0.8.1)
|
||||
actioncable (= 7.0.8.1)
|
||||
actionmailbox (= 7.0.8.1)
|
||||
actionmailer (= 7.0.8.1)
|
||||
actionpack (= 7.0.8.1)
|
||||
actiontext (= 7.0.8.1)
|
||||
actionview (= 7.0.8.1)
|
||||
activejob (= 7.0.8.1)
|
||||
activemodel (= 7.0.8.1)
|
||||
activerecord (= 7.0.8.1)
|
||||
activestorage (= 7.0.8.1)
|
||||
activesupport (= 7.0.8.1)
|
||||
bundler (>= 1.15.0)
|
||||
railties (= 7.0.8.7)
|
||||
railties (= 7.0.8.1)
|
||||
rails-controller-testing (1.0.5)
|
||||
actionpack (>= 5.0.1.rc1)
|
||||
actionview (>= 5.0.1.rc1)
|
||||
|
@ -571,24 +559,24 @@ GEM
|
|||
activesupport (>= 4.2)
|
||||
choice (~> 0.2.0)
|
||||
ruby-graphviz (~> 1.2)
|
||||
rails-html-sanitizer (1.6.1)
|
||||
rails-html-sanitizer (1.6.0)
|
||||
loofah (~> 2.21)
|
||||
nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
|
||||
rails-i18n (7.0.9)
|
||||
nokogiri (~> 1.14)
|
||||
rails-i18n (7.0.8)
|
||||
i18n (>= 0.7, < 2)
|
||||
railties (>= 6.0.0, < 8)
|
||||
rails-pg-extras (5.3.1)
|
||||
rails
|
||||
ruby-pg-extras (= 5.3.1)
|
||||
railties (7.0.8.7)
|
||||
actionpack (= 7.0.8.7)
|
||||
activesupport (= 7.0.8.7)
|
||||
railties (7.0.8.1)
|
||||
actionpack (= 7.0.8.1)
|
||||
activesupport (= 7.0.8.1)
|
||||
method_source
|
||||
rake (>= 12.2)
|
||||
thor (~> 1.0)
|
||||
zeitwerk (~> 2.5)
|
||||
rainbow (3.1.1)
|
||||
rake (13.2.1)
|
||||
rake (13.1.0)
|
||||
rake-progressbar (0.0.5)
|
||||
rb-fsevent (0.11.2)
|
||||
rb-inotify (0.10.1)
|
||||
|
@ -596,19 +584,19 @@ GEM
|
|||
rdoc (6.6.3.1)
|
||||
psych (>= 4.0.0)
|
||||
redcarpet (3.6.0)
|
||||
redis (5.2.0)
|
||||
redis-client (>= 0.22.0)
|
||||
redis-client (0.22.1)
|
||||
redis (5.1.0)
|
||||
redis-client (>= 0.17.0)
|
||||
redis-client (0.20.0)
|
||||
connection_pool
|
||||
regexp_parser (2.9.2)
|
||||
reline (0.5.3)
|
||||
regexp_parser (2.9.0)
|
||||
reline (0.4.2)
|
||||
io-console (~> 0.5)
|
||||
request_store (1.5.1)
|
||||
rack (>= 1.4)
|
||||
responders (3.1.1)
|
||||
actionpack (>= 5.2)
|
||||
railties (>= 5.2)
|
||||
rexml (3.3.9)
|
||||
rexml (3.2.6)
|
||||
rodf (1.2.0)
|
||||
builder (>= 3.0)
|
||||
rubyzip (>= 1.0)
|
||||
|
@ -626,50 +614,48 @@ GEM
|
|||
rspec-mocks (3.13.0)
|
||||
diff-lcs (>= 1.2.0, < 2.0)
|
||||
rspec-support (~> 3.13.0)
|
||||
rspec-rails (6.1.2)
|
||||
rspec-rails (6.1.1)
|
||||
actionpack (>= 6.1)
|
||||
activesupport (>= 6.1)
|
||||
railties (>= 6.1)
|
||||
rspec-core (~> 3.13)
|
||||
rspec-expectations (~> 3.13)
|
||||
rspec-mocks (~> 3.13)
|
||||
rspec-support (~> 3.13)
|
||||
rspec-core (~> 3.12)
|
||||
rspec-expectations (~> 3.12)
|
||||
rspec-mocks (~> 3.12)
|
||||
rspec-support (~> 3.12)
|
||||
rspec-retry (0.6.2)
|
||||
rspec-core (> 3.3)
|
||||
rspec-support (3.13.1)
|
||||
rspec-support (3.13.0)
|
||||
rspec_junit_formatter (0.6.0)
|
||||
rspec-core (>= 2, < 4, != 2.12.0)
|
||||
rubocop (1.69.0)
|
||||
rubocop (1.60.2)
|
||||
json (~> 2.3)
|
||||
language_server-protocol (>= 3.17.0)
|
||||
parallel (~> 1.10)
|
||||
parser (>= 3.3.0.2)
|
||||
rainbow (>= 2.2.2, < 4.0)
|
||||
regexp_parser (>= 2.4, < 3.0)
|
||||
rubocop-ast (>= 1.36.1, < 2.0)
|
||||
regexp_parser (>= 1.8, < 3.0)
|
||||
rexml (>= 3.2.5, < 4.0)
|
||||
rubocop-ast (>= 1.30.0, < 2.0)
|
||||
ruby-progressbar (~> 1.7)
|
||||
unicode-display_width (>= 2.4.0, < 4.0)
|
||||
rubocop-ast (1.36.1)
|
||||
parser (>= 3.3.1.0)
|
||||
unicode-display_width (>= 2.4.0, < 3.0)
|
||||
rubocop-ast (1.30.0)
|
||||
parser (>= 3.2.1.0)
|
||||
rubocop-capybara (2.20.0)
|
||||
rubocop (~> 1.41)
|
||||
rubocop-factory_bot (2.25.1)
|
||||
rubocop (~> 1.41)
|
||||
rubocop-performance (1.21.0)
|
||||
rubocop-performance (1.20.2)
|
||||
rubocop (>= 1.48.1, < 2.0)
|
||||
rubocop-ast (>= 1.31.1, < 2.0)
|
||||
rubocop-rails (2.24.1)
|
||||
rubocop-ast (>= 1.30.0, < 2.0)
|
||||
rubocop-rails (2.23.1)
|
||||
activesupport (>= 4.2.0)
|
||||
rack (>= 1.1)
|
||||
rubocop (>= 1.33.0, < 2.0)
|
||||
rubocop-ast (>= 1.31.1, < 2.0)
|
||||
rubocop-rspec (2.29.1)
|
||||
rubocop-ast (>= 1.30.0, < 2.0)
|
||||
rubocop-rspec (2.26.1)
|
||||
rubocop (~> 1.40)
|
||||
rubocop-capybara (~> 2.17)
|
||||
rubocop-factory_bot (~> 2.22)
|
||||
rubocop-rspec_rails (~> 2.28)
|
||||
rubocop-rspec_rails (2.28.3)
|
||||
rubocop (~> 1.40)
|
||||
ruby-graphviz (1.2.5)
|
||||
rexml
|
||||
ruby-next-core (1.0.2)
|
||||
|
@ -687,9 +673,14 @@ GEM
|
|||
nokogiri (>= 1.6.2)
|
||||
rexml
|
||||
xmlenc (>= 0.7.1)
|
||||
sanitize (6.1.2)
|
||||
sanitize (6.1.0)
|
||||
crass (~> 1.0.2)
|
||||
nokogiri (>= 1.12.0)
|
||||
sass (3.7.4)
|
||||
sass-listen (~> 4.0.0)
|
||||
sass-listen (4.0.0)
|
||||
rb-fsevent (~> 0.9, >= 0.9.4)
|
||||
rb-inotify (~> 0.9, >= 0.9.7)
|
||||
sassc (2.4.0)
|
||||
ffi (~> 1.9)
|
||||
sassc-rails (2.1.2)
|
||||
|
@ -698,34 +689,34 @@ GEM
|
|||
sprockets (> 3.0)
|
||||
sprockets-rails
|
||||
tilt
|
||||
scss_lint (0.60.0)
|
||||
sass (~> 3.5, >= 3.5.5)
|
||||
selectize-rails (0.12.6)
|
||||
selenium-devtools (0.126.0)
|
||||
selenium-devtools (0.121.0)
|
||||
selenium-webdriver (~> 4.2)
|
||||
selenium-webdriver (4.22.0)
|
||||
selenium-webdriver (4.17.0)
|
||||
base64 (~> 0.2)
|
||||
logger (~> 1.4)
|
||||
rexml (~> 3.2, >= 3.2.5)
|
||||
rubyzip (>= 1.2.2, < 3.0)
|
||||
websocket (~> 1.0)
|
||||
sentry-delayed_job (5.17.3)
|
||||
sentry-delayed_job (5.16.1)
|
||||
delayed_job (>= 4.0)
|
||||
sentry-ruby (~> 5.17.3)
|
||||
sentry-rails (5.17.3)
|
||||
sentry-ruby (~> 5.16.1)
|
||||
sentry-rails (5.16.1)
|
||||
railties (>= 5.0)
|
||||
sentry-ruby (~> 5.17.3)
|
||||
sentry-ruby (5.17.3)
|
||||
bigdecimal
|
||||
sentry-ruby (~> 5.16.1)
|
||||
sentry-ruby (5.16.1)
|
||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||
sentry-sidekiq (5.17.3)
|
||||
sentry-ruby (~> 5.17.3)
|
||||
sentry-sidekiq (5.16.1)
|
||||
sentry-ruby (~> 5.16.1)
|
||||
sidekiq (>= 3.0)
|
||||
shoulda-matchers (6.2.0)
|
||||
shoulda-matchers (6.1.0)
|
||||
activesupport (>= 5.2.0)
|
||||
sib-api-v3-sdk (9.1.0)
|
||||
addressable (~> 2.3, >= 2.3.0)
|
||||
json (~> 2.1, >= 2.1.0)
|
||||
typhoeus (~> 1.0, >= 1.0.1)
|
||||
sidekiq (7.2.4)
|
||||
sidekiq (7.2.1)
|
||||
concurrent-ruby (< 2)
|
||||
connection_pool (>= 2.3.0)
|
||||
rack (>= 2.2.4)
|
||||
|
@ -737,15 +728,6 @@ GEM
|
|||
simple_xlsx_reader (1.0.4)
|
||||
nokogiri
|
||||
rubyzip
|
||||
simplecov (0.22.0)
|
||||
docile (~> 1.1)
|
||||
simplecov-html (~> 0.11)
|
||||
simplecov_json_formatter (~> 0.1)
|
||||
simplecov-cobertura (2.1.0)
|
||||
rexml
|
||||
simplecov (~> 0.19)
|
||||
simplecov-html (0.12.3)
|
||||
simplecov_json_formatter (0.1.4)
|
||||
simpleidn (0.2.1)
|
||||
unf (~> 0.1.4)
|
||||
sinatra (3.2.0)
|
||||
|
@ -753,13 +735,13 @@ GEM
|
|||
rack (~> 2.2, >= 2.2.4)
|
||||
rack-protection (= 3.2.0)
|
||||
tilt (~> 2.0)
|
||||
skylight (6.0.4)
|
||||
skylight (6.0.3)
|
||||
activesupport (>= 5.2.0)
|
||||
smart_properties (1.17.0)
|
||||
spreadsheet_architect (5.0.0)
|
||||
caxlsx (>= 3.3.0, < 4)
|
||||
rodf (>= 1.0.0, < 2)
|
||||
spring (4.2.1)
|
||||
spring (4.1.3)
|
||||
spring-commands-rspec (1.0.4)
|
||||
spring (>= 0.9.1)
|
||||
sprockets (4.2.1)
|
||||
|
@ -770,9 +752,8 @@ GEM
|
|||
activesupport (>= 5.2)
|
||||
sprockets (>= 3.0.0)
|
||||
stackprof (0.2.26)
|
||||
string-similarity (2.1.0)
|
||||
stringio (3.1.2)
|
||||
strong_migrations (1.8.0)
|
||||
stringio (3.1.0)
|
||||
strong_migrations (1.7.0)
|
||||
activerecord (>= 5.2)
|
||||
swd (2.0.3)
|
||||
activesupport (>= 3)
|
||||
|
@ -785,14 +766,13 @@ GEM
|
|||
temple (0.8.2)
|
||||
terminal-table (3.0.2)
|
||||
unicode-display_width (>= 1.1.1, < 3)
|
||||
test-prof (1.3.3)
|
||||
thor (1.3.2)
|
||||
thor (1.3.0)
|
||||
thread_safe (0.3.6)
|
||||
tilt (2.3.0)
|
||||
timecop (0.9.8)
|
||||
timeout (0.4.1)
|
||||
ttfunk (1.7.0)
|
||||
turbo-rails (2.0.5)
|
||||
turbo-rails (2.0.2)
|
||||
actionpack (>= 6.0.0)
|
||||
activejob (>= 6.0.0)
|
||||
railties (>= 6.0.0)
|
||||
|
@ -804,13 +784,13 @@ GEM
|
|||
unf (0.1.4)
|
||||
unf_ext
|
||||
unf_ext (0.0.9.1)
|
||||
unicode-display_width (2.6.0)
|
||||
unicode-display_width (2.5.0)
|
||||
uri (0.13.0)
|
||||
validate_url (1.0.15)
|
||||
activemodel (>= 3.0.0)
|
||||
public_suffix
|
||||
vcr (6.2.0)
|
||||
view_component (3.12.1)
|
||||
view_component (3.10.0)
|
||||
activesupport (>= 5.2.0, < 8.0)
|
||||
concurrent-ruby (~> 1.0)
|
||||
method_source (~> 1.0)
|
||||
|
@ -836,11 +816,11 @@ GEM
|
|||
activesupport
|
||||
faraday (~> 2.0)
|
||||
faraday-follow_redirects
|
||||
webmock (3.23.0)
|
||||
webmock (3.20.0)
|
||||
addressable (>= 2.8.0)
|
||||
crack (>= 0.3.2)
|
||||
hashdiff (>= 0.4.0, < 2.0.0)
|
||||
webrick (1.8.2)
|
||||
webrick (1.8.1)
|
||||
websocket (1.2.10)
|
||||
websocket-driver (0.7.6)
|
||||
websocket-extensions (>= 0.1.0)
|
||||
|
@ -866,13 +846,13 @@ GEM
|
|||
anyway_config (>= 1.3, < 3)
|
||||
sidekiq
|
||||
yabeda (~> 0.6)
|
||||
zeitwerk (2.7.1)
|
||||
zeitwerk (2.6.13)
|
||||
zip_tricks (5.6.0)
|
||||
zipline (1.5.0)
|
||||
actionpack (>= 6.0, < 8.0)
|
||||
content_disposition (~> 1.0)
|
||||
zip_tricks (>= 4.2.1, < 6.0)
|
||||
zxcvbn (0.1.11)
|
||||
zxcvbn-ruby (1.2.0)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
@ -898,7 +878,6 @@ DEPENDENCIES
|
|||
browser
|
||||
capybara
|
||||
capybara-email
|
||||
capybara-playwright-driver
|
||||
capybara-screenshot
|
||||
charlock_holmes
|
||||
chartkick
|
||||
|
@ -909,7 +888,7 @@ DEPENDENCIES
|
|||
delayed_cron_job
|
||||
delayed_job_active_record
|
||||
delayed_job_web
|
||||
devise
|
||||
devise!
|
||||
devise-i18n
|
||||
devise-two-factor
|
||||
discard
|
||||
|
@ -921,7 +900,6 @@ DEPENDENCIES
|
|||
flipper-active_record
|
||||
flipper-active_support_cache_store
|
||||
flipper-ui
|
||||
front_matter_parser
|
||||
fugit
|
||||
geo_coord
|
||||
geocoder
|
||||
|
@ -989,6 +967,7 @@ DEPENDENCIES
|
|||
rubocop-rspec
|
||||
saml_idp
|
||||
sassc-rails
|
||||
scss_lint
|
||||
selenium-devtools
|
||||
selenium-webdriver
|
||||
sentry-delayed_job
|
||||
|
@ -1000,17 +979,13 @@ DEPENDENCIES
|
|||
sidekiq
|
||||
sidekiq-cron
|
||||
simple_xlsx_reader
|
||||
simplecov
|
||||
simplecov-cobertura
|
||||
skylight
|
||||
spreadsheet_architect
|
||||
spring
|
||||
spring-commands-rspec
|
||||
stackprof
|
||||
string-similarity
|
||||
strong_migrations
|
||||
sys-proctable
|
||||
test-prof
|
||||
timecop
|
||||
turbo-rails
|
||||
typhoeus
|
||||
|
@ -1025,7 +1000,7 @@ DEPENDENCIES
|
|||
yabeda-prometheus
|
||||
yabeda-sidekiq
|
||||
zipline
|
||||
zxcvbn
|
||||
zxcvbn-ruby
|
||||
|
||||
BUNDLED WITH
|
||||
2.5.23
|
||||
2.5.4
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
# A sample Guardfile
|
||||
# More info at https://github.com/guard/guard#readme
|
||||
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
web: bin/rails server -p 3000
|
||||
web: RAILS_QUEUE_ADAPTER=delayed_job bin/rails server -p 3000
|
||||
jobs: bin/rake jobs:work
|
||||
vite: bin/vite dev
|
||||
|
|
|
@ -38,8 +38,6 @@ Pour faire tourner sidekiq, vous aurez besoin de :
|
|||
|
||||
- redis
|
||||
|
||||
- lightgallery : une license a été souscrite pour soutenir le projet, mais elle n'est pas obligatoire si la librairie est utilisée dans le cadre d'une application open source.
|
||||
|
||||
#### Développement
|
||||
|
||||
- rbenv : voir https://github.com/rbenv/rbenv-installer#rbenv-installer--doctor-scripts
|
||||
|
@ -64,7 +62,7 @@ Selenium::WebDriver::Chrome.path = "/Applications/Brave Browser.app/Contents/Mac
|
|||
Webdrivers::Chromedriver.required_version = "103.0.5060.53"
|
||||
```
|
||||
|
||||
Il est également possible de faire une installation et mise à jour automatique lors de l'exécution de `bin/update` en définissant la variable d'environnement `UPDATE_WEBDRIVER`. Les binaires seront installés dans le repertoire `~/.local/bin/` qui doit être rajouté manuellement dans le path.
|
||||
Il est également possible de faire une installation et mise à jour automatique lors de l'exécution de `bin/update` en définissant la variable d'environnement `UPDATE_WEBDRIVER`. Les binaires seront installés dans le repertoire `~/.local/bin/` qui doit être rajouté manuellement dans le path.
|
||||
|
||||
### Création des rôles de la base de données
|
||||
|
||||
|
@ -144,7 +142,7 @@ Pour exécuter les tests de l'application, plusieurs possibilités :
|
|||
|
||||
- Afficher les logs js en error issus de la console du navigateur `console.error('coucou')`
|
||||
|
||||
JS_LOG=debug,log,error bin/rspec spec/system
|
||||
JS_LOG=error bin/rspec spec/system
|
||||
|
||||
- Augmenter la latence lors de tests end2end pour déceler des bugs récalcitrants
|
||||
|
||||
|
@ -194,5 +192,3 @@ La compatibilité est testée par Browserstack.<br>[<img src="app/assets/images/
|
|||
[![View performance data on Skylight](https://badges.skylight.io/status/zAvWTaqO0mu1.svg)](https://oss.skylight.io/app/applications/zAvWTaqO0mu1)
|
||||
|
||||
Nous utilisons Skylight pour suivre les performances de notre application.
|
||||
|
||||
Par ailleurs, nous utilisons [Yabeda](https://github.com/yabeda-rb/yabeda) pour exporter des métriques au format prometheus pour Sidekiq. L'activation se fait via la variable d'environnement `PROMETHEUS_EXPORTER_ENABLED` voir config/env.example.optional .
|
||||
|
|
2
Rakefile
|
@ -1,5 +1,3 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
# Add your own tasks in files placed in lib/tasks ending in .rake,
|
||||
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
|
||||
|
||||
|
|
Before Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 8.6 KiB |
Before Width: | Height: | Size: 62 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 7.1 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 8.7 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 75 KiB |
Before Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 8.1 KiB |
Before Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 41 KiB |
Before Width: | Height: | Size: 14 KiB |
1
app/assets/images/footer/logo-france-services.svg
Normal file
After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 3.5 KiB |
|
@ -1,4 +1,4 @@
|
|||
@import 'placeholders';
|
||||
@import "placeholders";
|
||||
|
||||
html,
|
||||
body {
|
||||
|
@ -6,21 +6,11 @@ body {
|
|||
scroll-behavior: smooth;
|
||||
}
|
||||
|
||||
// Forces line breaks to prevent buttons from overflowing their container
|
||||
input[type='submit'] {
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.page-wrapper {
|
||||
position: relative;
|
||||
min-height: 100%;
|
||||
}
|
||||
|
||||
// Wrap text in pre tag
|
||||
pre {
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
|
||||
// Mobile Safari doesn't bubble mouse events by default, unless:
|
||||
//
|
||||
// - the target element of the event is a link or a form field.
|
||||
|
@ -38,7 +28,3 @@ pre {
|
|||
.container {
|
||||
@extend %container;
|
||||
}
|
||||
|
||||
react-fragment {
|
||||
display: block;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
@import 'colors';
|
||||
@import 'constants';
|
||||
@import "colors";
|
||||
@import "constants";
|
||||
|
||||
// floats
|
||||
.pull-left {
|
||||
|
@ -37,7 +37,7 @@
|
|||
}
|
||||
|
||||
.text-right {
|
||||
text-align: right !important;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.text-sm {
|
||||
|
@ -142,6 +142,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
// who known
|
||||
.highlighted {
|
||||
background-color: var(
|
||||
|
@ -193,29 +194,13 @@
|
|||
// using $direction.key as css modifier, $direction.values to set css properties
|
||||
// scale it using $steps
|
||||
$directions: (
|
||||
't': (
|
||||
'margin-top'
|
||||
),
|
||||
'r': (
|
||||
'margin-right'
|
||||
),
|
||||
'b': (
|
||||
'margin-bottom'
|
||||
),
|
||||
'l': (
|
||||
'margin-left'
|
||||
),
|
||||
'x': (
|
||||
'margin-left',
|
||||
'margin-right'
|
||||
),
|
||||
'y': (
|
||||
'margin-top',
|
||||
'margin-bottom'
|
||||
),
|
||||
'': (
|
||||
'margin'
|
||||
)
|
||||
"t": ("margin-top"),
|
||||
"r": ("margin-right"),
|
||||
"b": ("margin-bottom"),
|
||||
"l": ("margin-left"),
|
||||
"x": ("margin-left", "margin-right"),
|
||||
"y": ("margin-top", "margin-bottom"),
|
||||
"": ("margin")
|
||||
);
|
||||
$steps: (0, 1, 2, 3, 4, 5, 6, 7, 8);
|
||||
|
||||
|
@ -230,29 +215,13 @@ $steps: (0, 1, 2, 3, 4, 5, 6, 7, 8);
|
|||
}
|
||||
|
||||
$directions: (
|
||||
't': (
|
||||
'padding-top'
|
||||
),
|
||||
'r': (
|
||||
'padding-right'
|
||||
),
|
||||
'b': (
|
||||
'padding-bottom'
|
||||
),
|
||||
'l': (
|
||||
'padding-left'
|
||||
),
|
||||
'x': (
|
||||
'padding-left',
|
||||
'padding-right'
|
||||
),
|
||||
'y': (
|
||||
'padding-top',
|
||||
'padding-bottom'
|
||||
),
|
||||
'': (
|
||||
'padding'
|
||||
)
|
||||
"t": ("padding-top"),
|
||||
"r": ("padding-right"),
|
||||
"b": ("padding-bottom"),
|
||||
"l": ("padding-left"),
|
||||
"x": ("padding-left", "padding-right"),
|
||||
"y": ("padding-top", "padding-bottom"),
|
||||
"": ("padding")
|
||||
);
|
||||
$steps: (0, 1, 2, 3, 4, 5, 6, 7, 8);
|
||||
|
||||
|
|
|
@ -1,26 +1,26 @@
|
|||
$light-blue: #1c7ec9;
|
||||
$lighter-blue: #c3d9ff;
|
||||
$light-blue: #1C7EC9;
|
||||
$lighter-blue: #C3D9FF;
|
||||
$black: #333333;
|
||||
$white: #ffffff;
|
||||
$white: #FFFFFF;
|
||||
$grey: #888888;
|
||||
$light-grey: #f8f8f8;
|
||||
$light-grey: #F8F8F8;
|
||||
$dark-grey: #666666;
|
||||
$border-grey: #cccccc;
|
||||
$dark-red: #a10005;
|
||||
$border-grey: #CCCCCC;
|
||||
$dark-red: #A10005;
|
||||
$medium-red: rgba(161, 0, 5, 0.9);
|
||||
$light-red: #ed1c24;
|
||||
$lighter-red: #f52a2a;
|
||||
$background-red: #ffdfdf;
|
||||
$light-red: #ED1C24;
|
||||
$lighter-red: #F52A2A;
|
||||
$background-red: #FFDFDF;
|
||||
$green: darken(#169862, 5%);
|
||||
$old-green: #15ad70;
|
||||
$old-green: #15AD70;
|
||||
$lighter-green: lighten($old-green, 30%);
|
||||
$light-green: lighten($old-green, 25%);
|
||||
$dark-green: darken($old-green, 20%);
|
||||
$orange: #f28900;
|
||||
$orange: #F28900;
|
||||
$orange-bg: lighten($orange, 35%);
|
||||
$yellow: #fef3b8;
|
||||
$light-yellow: #ffffde;
|
||||
$blue-france-700: #00006d;
|
||||
$yellow: #FEF3B8;
|
||||
$light-yellow: #FFFFDE;
|
||||
$blue-france-700: #00006D;
|
||||
$blue-france-500: #000091;
|
||||
$blue-france-400: #7f7fc8;
|
||||
$blue-france-400: #7F7FC8;
|
||||
$g700: #383838;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
@import 'constants';
|
||||
@import "constants";
|
||||
|
||||
@mixin horizontal-padding($value) {
|
||||
padding-left: $value;
|
||||
|
@ -22,3 +22,4 @@
|
|||
background-image: image-url($image-url);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
@import 'colors';
|
||||
@import 'mixins';
|
||||
@import 'constants';
|
||||
@import "colors";
|
||||
@import "mixins";
|
||||
@import "constants";
|
||||
|
||||
%horizontal-list {
|
||||
list-style-type: none;
|
||||
|
@ -27,8 +27,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
%container {
|
||||
// TODO: switch to new design with preview in two view not in two column https://github.com/betagouv/demarches-simplifiees.fr/issues/7882
|
||||
%container { // TODO: switch to new design with preview in two view not in two column https://github.com/betagouv/demarches-simplifiees.fr/issues/7882
|
||||
@include horizontal-padding($default-padding);
|
||||
max-width: $page-width + 2 * $default-padding;
|
||||
margin-left: auto;
|
||||
|
|
|
@ -11,9 +11,9 @@
|
|||
|
||||
trix-editor {
|
||||
min-height: 10em;
|
||||
background-color: #ffffff;
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
|
||||
[data-fr-theme='dark'] .trix-button-group button {
|
||||
[data-fr-theme="dark"] .trix-button-group button {
|
||||
background: var(--background-action-high-blue-france) !important;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
@import 'constants';
|
||||
@import 'colors';
|
||||
@import "constants";
|
||||
@import "colors";
|
||||
|
||||
.instructeur-wrapper {
|
||||
.select-instructeurs {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
@import 'colors';
|
||||
@import 'constants';
|
||||
@import "colors";
|
||||
@import "constants";
|
||||
|
||||
#agentconnect {
|
||||
.agent {
|
||||
|
@ -10,7 +10,7 @@
|
|||
}
|
||||
|
||||
.box {
|
||||
background-color: #f2f2f9;
|
||||
background-color: #F2F2F9;
|
||||
padding: $default-padding;
|
||||
|
||||
ul {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
@import 'placeholders';
|
||||
@import "placeholders";
|
||||
|
||||
@keyframes fade-in-down {
|
||||
0% {
|
||||
|
|
19
app/assets/stylesheets/archive.scss
Normal file
|
@ -0,0 +1,19 @@
|
|||
@import "constants";
|
||||
|
||||
table.archive-table {
|
||||
.text-right {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
td {
|
||||
padding: 3 * $default-spacer $default-spacer;
|
||||
}
|
||||
|
||||
a.button {
|
||||
background-image: none; // remove DSFR underline
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
@import 'colors';
|
||||
@import 'constants';
|
||||
@import "colors";
|
||||
@import "constants";
|
||||
|
||||
.attachment-error,
|
||||
.attachment-upload-error {
|
||||
|
@ -8,7 +8,7 @@
|
|||
&::before {
|
||||
box-shadow: inset 2px 0 0 0 var(--border-plain-error);
|
||||
height: 100%;
|
||||
content: '';
|
||||
content: "";
|
||||
left: -0.75rem;
|
||||
position: absolute;
|
||||
width: 2px;
|
||||
|
@ -26,7 +26,7 @@
|
|||
}
|
||||
|
||||
.attachment-multiple:not(.fr-downloads-group),
|
||||
.attachment-multiple.fr-downloads-group[data-controller='replace-attachment'] {
|
||||
.attachment-multiple.fr-downloads-group[data-controller=replace-attachment] {
|
||||
ul {
|
||||
list-style-type: none;
|
||||
padding-inline-start: 0;
|
||||
|
@ -49,8 +49,9 @@
|
|||
}
|
||||
}
|
||||
|
||||
.attachment-multiple.fr-downloads-group.destroyable ul,
|
||||
ul[data-file-input-reset-target='fileList'] {
|
||||
list-style-type: none;
|
||||
padding-inline-start: 0;
|
||||
.attachment-multiple.fr-downloads-group.destroyable {
|
||||
ul {
|
||||
list-style-type: none;
|
||||
padding-inline-start: 0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
@font-face {
|
||||
font-family: 'Marianne';
|
||||
src: url('marianne-regular.ttf');
|
||||
font-family: "Marianne";
|
||||
src: url("marianne-regular.ttf");
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Marianne';
|
||||
src: url('marianne-bold.ttf');
|
||||
font-family: "Marianne";
|
||||
src: url("marianne-bold.ttf");
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Marianne';
|
||||
src: url('marianne-thin.ttf');
|
||||
font-family: "Marianne";
|
||||
src: url("marianne-thin.ttf");
|
||||
font-weight: 100; // weasy print n"accepte pas lighter
|
||||
font-style: normal;
|
||||
}
|
||||
|
@ -25,9 +25,8 @@
|
|||
|
||||
@bottom-center {
|
||||
font-size: 8pt;
|
||||
content: counter(page) ' / ' counter(pages);
|
||||
content: counter(page) " / " counter(pages);
|
||||
margin-top: 17mm;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
@bottom-left {
|
||||
|
@ -42,12 +41,11 @@
|
|||
flex-direction: column;
|
||||
justify-content: space-between; // This will push the footer down
|
||||
max-width: 21cm;
|
||||
min-height: 29.7cm;
|
||||
height: 29.7cm;
|
||||
padding: 17mm;
|
||||
margin: 0 auto;
|
||||
background: #ffffff;
|
||||
background: #FFFFFF;
|
||||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); // Optional: for better visualization
|
||||
position: relative;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -142,11 +140,13 @@
|
|||
|
||||
h2 {
|
||||
margin: 0;
|
||||
line-height: 8pt;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 10pt; // same as text
|
||||
font-weight: bold;
|
||||
line-height: 4pt;
|
||||
}
|
||||
|
||||
li p {
|
||||
|
@ -167,31 +167,9 @@
|
|||
}
|
||||
}
|
||||
|
||||
footer {
|
||||
.footer {
|
||||
position: running(footer);
|
||||
font-size: 7pt;
|
||||
font-weight: 100;
|
||||
white-space: nowrap;
|
||||
|
||||
@media screen {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.tdc-repetition li {
|
||||
margin-bottom: 5mm;
|
||||
padding-left: 3mm;
|
||||
|
||||
dl {
|
||||
display: grid;
|
||||
grid-template-columns: auto 1fr;
|
||||
gap: 1mm 10mm;
|
||||
}
|
||||
|
||||
.invisible {
|
||||
visibility: hidden;
|
||||
height: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
@import 'constants';
|
||||
@import "constants";
|
||||
|
||||
#attestation-edit {
|
||||
.attestation-preview {
|
||||
|
@ -20,7 +20,7 @@
|
|||
min-height: 400px;
|
||||
}
|
||||
|
||||
.tiptap-editor {
|
||||
.editor {
|
||||
// Visual zones
|
||||
.header .flex-1,
|
||||
h1 {
|
||||
|
@ -63,6 +63,17 @@
|
|||
li p {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
// Tags
|
||||
.fr-menu__list {
|
||||
max-height: 500px;
|
||||
}
|
||||
|
||||
.fr-tag:not(.fr-menu .fr-tag) {
|
||||
// style span rendered by tiptap like a button/link tag
|
||||
color: var(--text-action-high-blue-france);
|
||||
background-color: var(--background-action-low-blue-france);
|
||||
}
|
||||
}
|
||||
|
||||
// scss-lint:disable SelectorFormat
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
@import 'colors';
|
||||
@import 'constants';
|
||||
@import "colors";
|
||||
@import "constants";
|
||||
|
||||
#attestation-template-edit {
|
||||
.text-active {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
@import 'colors';
|
||||
@import 'constants';
|
||||
@import 'placeholders';
|
||||
@import 'mixins';
|
||||
@import "colors";
|
||||
@import "constants";
|
||||
@import "placeholders";
|
||||
@import "mixins";
|
||||
|
||||
#auth,
|
||||
#agentconnect {
|
||||
|
@ -48,15 +48,15 @@
|
|||
}
|
||||
|
||||
.sign-in-form .form {
|
||||
input[type='email'] {
|
||||
input[type="email"] {
|
||||
margin-bottom: $default-spacer;
|
||||
}
|
||||
|
||||
input[type='password'] {
|
||||
input[type="password"] {
|
||||
margin-bottom: $default-spacer;
|
||||
}
|
||||
|
||||
input[type='checkbox'] {
|
||||
input[type="checkbox"] {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
@import 'colors';
|
||||
@import 'constants';
|
||||
@import "colors";
|
||||
@import "constants";
|
||||
|
||||
.autosave {
|
||||
position: relative;
|
||||
|
|
34
app/assets/stylesheets/badges.scss
Normal file
|
@ -0,0 +1,34 @@
|
|||
@import "colors";
|
||||
@import "constants";
|
||||
|
||||
.badge {
|
||||
padding: 0 5px;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
border-radius: 100px;
|
||||
background-color: rgba(0, 0, 0, 0.08);
|
||||
vertical-align: top;
|
||||
|
||||
&.baseline {
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
&.warning {
|
||||
background-color: $orange;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
}
|
||||
|
||||
.badge-group {
|
||||
display: flex;
|
||||
|
||||
.fr-badge {
|
||||
margin-right: $default-spacer;
|
||||
}
|
||||
|
||||
.fr-badge:last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
|
@ -6,8 +6,8 @@
|
|||
right: -35px;
|
||||
transform: rotate(45deg);
|
||||
width: 150px;
|
||||
background-color: #008cba;
|
||||
color: #ffffff;
|
||||
background-color: #008CBA;
|
||||
color: #FFFFFF;
|
||||
padding: 5px;
|
||||
font-size: 15px;
|
||||
font-weight: 700;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
@import 'colors';
|
||||
@import 'constants';
|
||||
@import 'placeholders';
|
||||
@import "colors";
|
||||
@import "constants";
|
||||
@import "placeholders";
|
||||
|
||||
.button {
|
||||
@extend %outline;
|
||||
|
@ -11,7 +11,7 @@
|
|||
border: 1px solid $border-grey;
|
||||
font-size: 14px;
|
||||
line-height: 20px;
|
||||
background-color: #ffffff;
|
||||
background-color: #FFFFFF;
|
||||
color: $black;
|
||||
text-align: center;
|
||||
-webkit-appearance: none;
|
||||
|
@ -29,7 +29,7 @@
|
|||
}
|
||||
|
||||
&.primary {
|
||||
color: #ffffff;
|
||||
color: #FFFFFF;
|
||||
border-color: $blue-france-700;
|
||||
background-color: $blue-france-700;
|
||||
|
||||
|
@ -41,10 +41,10 @@
|
|||
&.secondary {
|
||||
color: $blue-france-700;
|
||||
border-color: $blue-france-700;
|
||||
background-color: #ffffff;
|
||||
background-color: #FFFFFF;
|
||||
|
||||
&:hover:not(:disabled) {
|
||||
color: #ffffff;
|
||||
color: #FFFFFF;
|
||||
background: $blue-france-700;
|
||||
}
|
||||
}
|
||||
|
@ -52,10 +52,10 @@
|
|||
&.danger {
|
||||
color: $black;
|
||||
border-color: $border-grey;
|
||||
background-color: #ffffff;
|
||||
background-color: #FFFFFF;
|
||||
|
||||
&:hover:not(:disabled) {
|
||||
color: #ffffff;
|
||||
color: #FFFFFF;
|
||||
border-color: $medium-red;
|
||||
background-color: $medium-red;
|
||||
|
||||
|
@ -66,35 +66,35 @@
|
|||
}
|
||||
|
||||
&.accepted {
|
||||
color: #ffffff;
|
||||
color: #FFFFFF;
|
||||
border-color: $green;
|
||||
background-color: $green;
|
||||
|
||||
&:hover:not(:disabled) {
|
||||
color: $green;
|
||||
background-color: #ffffff;
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
}
|
||||
|
||||
&.without-continuation {
|
||||
color: #ffffff;
|
||||
color: #FFFFFF;
|
||||
border-color: $black;
|
||||
background-color: $black;
|
||||
|
||||
&:hover:not(:disabled) {
|
||||
color: $black;
|
||||
background-color: #ffffff;
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
}
|
||||
|
||||
&.refused {
|
||||
color: #ffffff;
|
||||
color: #FFFFFF;
|
||||
border-color: $dark-red;
|
||||
background-color: $dark-red;
|
||||
|
||||
&:hover:not(:disabled) {
|
||||
color: $dark-red;
|
||||
background-color: #ffffff;
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -151,8 +151,10 @@
|
|||
.dropdown-button {
|
||||
white-space: nowrap;
|
||||
|
||||
[aria-hidden='true'].fr-ml-2v::after {
|
||||
content: '▾';
|
||||
&::after {
|
||||
content: "▾";
|
||||
margin-left: $default-spacer;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
&.icon-only {
|
||||
|
@ -172,12 +174,13 @@
|
|||
}
|
||||
}
|
||||
|
||||
[data-fr-theme='dark'] .dropdown-content {
|
||||
|
||||
[data-fr-theme="dark"] .dropdown-content {
|
||||
border: none;
|
||||
background: var(--background-action-low-blue-france);
|
||||
}
|
||||
|
||||
[data-fr-theme='dark'] .dropdown-items {
|
||||
[data-fr-theme="dark"] .dropdown-items {
|
||||
li {
|
||||
&:not(.inactive) {
|
||||
&:hover,
|
||||
|
@ -194,7 +197,7 @@
|
|||
|
||||
.dropdown-content {
|
||||
border: 1px solid $border-grey;
|
||||
background: #ffffff;
|
||||
background: #FFFFFF;
|
||||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
|
||||
position: absolute;
|
||||
right: 0;
|
||||
|
@ -240,57 +243,6 @@ ul.dropdown-items {
|
|||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
// Apply custom styles to DSFR fr-translate component
|
||||
.fr-translate__btn.fr-btn.help-btn::before {
|
||||
content: none;
|
||||
}
|
||||
|
||||
.help-content.fr-menu ul.fr-menu__list {
|
||||
--text-decoration: underline;
|
||||
text-align: left;
|
||||
font-size: 1rem;
|
||||
|
||||
@media (min-width: 62em) {
|
||||
font-size: 0.875rem;
|
||||
padding: 0;
|
||||
width: 360px;
|
||||
}
|
||||
}
|
||||
|
||||
.help-content.fr-menu ul.fr-menu__list li {
|
||||
padding: 0.75rem 1rem;
|
||||
|
||||
@media (min-width: 62em) {
|
||||
padding-right: 1rem;
|
||||
padding-left: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
.help-content.fr-menu ul.fr-menu__list li:not(:last-child) {
|
||||
@media (min-width: 62em) {
|
||||
border-bottom: 1px solid $border-grey;
|
||||
}
|
||||
}
|
||||
|
||||
.help-content.fr-menu ul.fr-menu__list {
|
||||
h1,
|
||||
p {
|
||||
font-size: inherit;
|
||||
line-height: inherit;
|
||||
}
|
||||
|
||||
dd {
|
||||
word-break: break-word;
|
||||
}
|
||||
}
|
||||
|
||||
.help-content a[href]:hover,
|
||||
.help-content a[href]:active {
|
||||
@media (hover: hover) and (pointer: fine) {
|
||||
--text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
.dropdown-items {
|
||||
li {
|
||||
display: flex;
|
||||
|
@ -342,7 +294,7 @@ ul.dropdown-items {
|
|||
|
||||
// Make child links fill the whole clickable area
|
||||
> a,
|
||||
.dropdown-items-link {
|
||||
.dropdown-items-link {
|
||||
display: flex;
|
||||
flex-grow: 1;
|
||||
margin: -$default-padding;
|
||||
|
@ -365,7 +317,7 @@ ul.dropdown-items {
|
|||
}
|
||||
|
||||
p + h4,
|
||||
p + p {
|
||||
p + p, {
|
||||
margin-top: $default-spacer;
|
||||
}
|
||||
}
|
||||
|
@ -374,11 +326,7 @@ ul.dropdown-items {
|
|||
padding: 2 * $default-spacer;
|
||||
|
||||
&.large {
|
||||
width: 90vw;
|
||||
|
||||
@media (min-width: 62em) {
|
||||
width: 40vw;
|
||||
}
|
||||
width: 340px;
|
||||
}
|
||||
|
||||
ul {
|
||||
|
@ -397,7 +345,3 @@ ul.dropdown-items {
|
|||
content: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
.back-btn {
|
||||
line-height: 1.75rem;
|
||||
}
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
@import 'colors';
|
||||
@import 'constants';
|
||||
@import "colors";
|
||||
@import "constants";
|
||||
|
||||
[data-fr-theme='dark'] .card {
|
||||
|
||||
[data-fr-theme="dark"] .card {
|
||||
background: none;
|
||||
border: 1px solid var(--background-action-low-blue-france);
|
||||
}
|
||||
|
@ -10,7 +11,7 @@
|
|||
padding: ($default-spacer * 3) ($default-spacer * 2);
|
||||
border: 1px solid $border-grey;
|
||||
margin-bottom: $default-spacer * 4;
|
||||
background: #ffffff;
|
||||
background: #FFFFFF;
|
||||
|
||||
.card-title {
|
||||
font-weight: bold;
|
||||
|
@ -50,7 +51,6 @@
|
|||
&.no-list {
|
||||
ul {
|
||||
list-style: none !important;
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
@import 'colors';
|
||||
@import 'constants';
|
||||
@import "colors";
|
||||
@import "constants";
|
||||
|
||||
.fr-tile-subtitle {
|
||||
min-height: 7rem;
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
@import 'colors';
|
||||
@import "colors";
|
||||
@import "constants";
|
||||
|
||||
|
||||
.areas {
|
||||
margin-bottom: 10px;
|
||||
|
@ -8,49 +10,60 @@
|
|||
}
|
||||
}
|
||||
|
||||
.ds-ctrl button {
|
||||
color: $dark-grey;
|
||||
.form [data-react-component-value='MapEditor'] [data-reach-combobox-input] {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
&.on,
|
||||
&:hover {
|
||||
background-color: rgba(0, 0, 0, 0.05);
|
||||
.map-style-control {
|
||||
position: absolute;
|
||||
bottom: 4px;
|
||||
left: 10px;
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
button {
|
||||
padding: 0;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
|
||||
> div {
|
||||
position: absolute;
|
||||
bottom: 5px;
|
||||
left: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.map-style-panel {
|
||||
z-index: 1;
|
||||
padding: $default-spacer;
|
||||
margin-bottom: $default-spacer;
|
||||
|
||||
ul {
|
||||
list-style: none;
|
||||
padding: $default-spacer;
|
||||
padding-bottom: 0;
|
||||
margin-bottom: -$default-spacer;
|
||||
|
||||
label {
|
||||
font-size: 12px;
|
||||
font-weight: normal;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.react-aria-popover {
|
||||
&[data-placement='top'] {
|
||||
--origin: translateY(8px);
|
||||
}
|
||||
.cadastres-selection-control {
|
||||
z-index: 1;
|
||||
position: absolute;
|
||||
top: 135px;
|
||||
left: 10px;
|
||||
|
||||
&[data-placement='bottom'] {
|
||||
--origin: translateY(-8px);
|
||||
}
|
||||
|
||||
&[data-placement='right'] {
|
||||
--origin: translateX(-8px);
|
||||
}
|
||||
|
||||
&[data-placement='left'] {
|
||||
--origin: translateX(8px);
|
||||
}
|
||||
|
||||
&[data-entering] {
|
||||
animation: popover-slide 200ms;
|
||||
}
|
||||
|
||||
&[data-exiting] {
|
||||
animation: popover-slide 200ms reverse ease-in;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes popover-slide {
|
||||
from {
|
||||
transform: var(--origin);
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
to {
|
||||
transform: translateY(0);
|
||||
opacity: 1;
|
||||
button {
|
||||
&.on,
|
||||
&:hover {
|
||||
background-color: rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
@import 'constants';
|
||||
@import 'colors';
|
||||
@import "constants";
|
||||
@import "colors";
|
||||
|
||||
table.cnaf {
|
||||
margin: 2 * $default-padding 0 $default-padding $default-padding;
|
||||
|
@ -7,7 +7,7 @@ table.cnaf {
|
|||
|
||||
caption {
|
||||
font-weight: bold;
|
||||
margin-left: -$default-padding;
|
||||
margin-left: - $default-padding;
|
||||
margin-bottom: $default-spacer;
|
||||
text-align: left;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
@import 'colors';
|
||||
@import "colors";
|
||||
|
||||
.code-block {
|
||||
background-color: $black;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
@import 'constants';
|
||||
@import 'colors';
|
||||
@import "constants";
|
||||
@import "colors";
|
||||
|
||||
.code-example {
|
||||
background-color: var(--background-contrast-grey);
|
||||
|
@ -13,6 +13,7 @@
|
|||
margin-right: auto;
|
||||
padding: $default-padding;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
pre {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
@import 'constants';
|
||||
@import "constants";
|
||||
|
||||
.commencer {
|
||||
@media (max-width: 62em) {
|
||||
|
|