lesli_babel 0.4.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/lesli_babel/application.js +1 -3726
  3. data/app/assets/stylesheets/lesli_babel/application.css +1 -0
  4. data/app/controllers/lesli_babel/clones_controller.rb +1 -1
  5. data/app/controllers/lesli_babel/relevants_controller.rb +1 -1
  6. data/app/models/lesli_babel/clone.rb +1 -1
  7. data/app/views/lesli_babel/partials/_engine-navigation.html.erb +2 -2
  8. data/lib/lesli_babel/version.rb +2 -2
  9. data/{app/assets/stylesheets/lesli_babel → lib/scss}/application.scss +10 -5
  10. data/{app/assets/stylesheets/lesli_babel → lib/scss}/dashboards.scss +2 -2
  11. data/{app/assets/stylesheets/lesli_babel → lib/scss}/modules.scss +2 -1
  12. data/{app/assets/stylesheets/lesli_babel → lib/scss}/translations.scss +2 -1
  13. data/lib/vue/application.js +7 -7
  14. data/lib/vue/apps/dashboards/show.vue +10 -12
  15. data/lib/vue/apps/modules/show.vue +5 -5
  16. data/lib/vue/apps/relevants/index.vue +2 -2
  17. data/lib/vue/apps/translations/index.vue +4 -4
  18. data/lib/vue/components/actions.vue +5 -5
  19. data/lib/vue/components/form-label-editor.vue +3 -3
  20. data/lib/vue/components/form-string-new.vue +2 -2
  21. metadata +7 -18
  22. data/app/assets/javascripts/lesli_babel/application.js.LICENSE.txt +0 -282
  23. data/app/models/lesli_babel/string/activity.rb +0 -5
  24. data/app/models/lesli_babel/string/discussion.rb +0 -68
  25. data/app/services/lesli_babel/old/translations_android_service.rb +0 -82
  26. data/app/services/lesli_babel/old/translations_clone_service.rb +0 -161
  27. data/app/services/lesli_babel/old/translations_flutter_service.rb +0 -102
  28. data/app/services/lesli_babel/old/translations_ios_service.rb +0 -119
  29. data/app/services/lesli_babel/old/translations_js_service.rb +0 -114
  30. data/app/services/lesli_babel/old/translations_middleman_service.rb +0 -77
  31. data/app/services/lesli_babel/old/translations_rails_service.rb +0 -119
  32. data/app/services/lesli_babel/old/translations_service.rb +0 -97
  33. data/app/services/lesli_babel/old/translations_synchronization_service.rb +0 -215
@@ -0,0 +1 @@
1
+ body.lesli-babel :root,body.lesli-babel-dashboard :root{--lesli-color-primary: var(--lesli-theme-color-primary, #193d8d);--lesli-color-background: var(--lesli-theme-color-background, #f6f8fb);--lesli-header-color: var(--lesli-theme-header-color, white);--lesli-header-height: var(--lesli-theme-header-height, 70px);--lesli-navbar-color: var(--lesli-theme-header-color, white);--lesli-footer-color: var(--lesli-theme-footer-color, white);--lesli-footer-height: var(--lesli-theme-footer-height, 84px);--lesli-sidebar-color: var(--lesli-theme-sidebar-color, white);--lesli-sidebar-width: var(--lesli-theme-sidebar-width, 50px);--lesli-logo-color: var(--lesli-theme-logo-color, white);--lesli-font-size: var(--lesli-theme-font-size, 16px);--lesli-font-color: var(--lesli-theme-font-color, #333333)}@media only screen and (max-width: 768px){body.lesli-babel :root,body.lesli-babel-dashboard :root{--lesli-sidebar-width: 50px}}@media only screen and (min-width: 769px){body.lesli-babel :root,body.lesli-babel-dashboard :root{--lesli-sidebar-width: 100px}}@media only screen and (min-width: 1024px){body.lesli-babel :root,body.lesli-babel-dashboard :root{--lesli-sidebar-width: 200px}}@media only screen and (min-width: 1216px){body.lesli-babel :root,body.lesli-babel-dashboard :root{--lesli-sidebar-width: 225px}}@media only screen and (min-width: 1408px){body.lesli-babel :root,body.lesli-babel-dashboard :root{--lesli-sidebar-width: 328px}}body.lesli-babel body.layout-expanded :root,body.lesli-babel-dashboard body.layout-expanded :root{--lesli-sidebar-width: 100px}body.lesli-babel aside.lesli-application-sidebar,body.lesli-babel-dashboard aside.lesli-application-sidebar{display:none !important}body.lesli-babel .locales,body.lesli-babel-dashboard .locales{display:flex;flex-wrap:wrap;justify-content:space-around;justify-content:center}body.lesli-babel .locales>*,body.lesli-babel-dashboard .locales>*{flex-basis:200px;max-width:200px}body.lesli-babel .locales .card,body.lesli-babel-dashboard .locales .card{padding:1.8rem 1rem;text-align:center;box-shadow:rgba(9,30,66,.25) 0px 4px 8px -2px,rgba(9,30,66,.08) 0px 0px 0px 1px;background-color:#fff;border-radius:4px}body.lesli-babel .locales .card .flag-icon,body.lesli-babel-dashboard .locales .card .flag-icon{border-radius:4px;box-shadow:rgba(9,30,66,.25) 0px 4px 8px -2px,rgba(9,30,66,.08) 0px 0px 0px 1px}body.cloud_babel-modules :root,body.cloud_babel-relevants :root,body.cloud_babel-translations :root{--lesli-color-primary: var(--lesli-theme-color-primary, #193d8d);--lesli-color-background: var(--lesli-theme-color-background, #f6f8fb);--lesli-header-color: var(--lesli-theme-header-color, white);--lesli-header-height: var(--lesli-theme-header-height, 70px);--lesli-navbar-color: var(--lesli-theme-header-color, white);--lesli-footer-color: var(--lesli-theme-footer-color, white);--lesli-footer-height: var(--lesli-theme-footer-height, 84px);--lesli-sidebar-color: var(--lesli-theme-sidebar-color, white);--lesli-sidebar-width: var(--lesli-theme-sidebar-width, 50px);--lesli-logo-color: var(--lesli-theme-logo-color, white);--lesli-font-size: var(--lesli-theme-font-size, 16px);--lesli-font-color: var(--lesli-theme-font-color, #333333)}@media only screen and (max-width: 768px){body.cloud_babel-modules :root,body.cloud_babel-relevants :root,body.cloud_babel-translations :root{--lesli-sidebar-width: 50px}}@media only screen and (min-width: 769px){body.cloud_babel-modules :root,body.cloud_babel-relevants :root,body.cloud_babel-translations :root{--lesli-sidebar-width: 100px}}@media only screen and (min-width: 1024px){body.cloud_babel-modules :root,body.cloud_babel-relevants :root,body.cloud_babel-translations :root{--lesli-sidebar-width: 200px}}@media only screen and (min-width: 1216px){body.cloud_babel-modules :root,body.cloud_babel-relevants :root,body.cloud_babel-translations :root{--lesli-sidebar-width: 225px}}@media only screen and (min-width: 1408px){body.cloud_babel-modules :root,body.cloud_babel-relevants :root,body.cloud_babel-translations :root{--lesli-sidebar-width: 328px}}body.cloud_babel-modules body.layout-expanded :root,body.cloud_babel-relevants body.layout-expanded :root,body.cloud_babel-translations body.layout-expanded :root{--lesli-sidebar-width: 100px}body.cloud_babel-modules #babel-translations tbody td,body.cloud_babel-relevants #babel-translations tbody td,body.cloud_babel-translations #babel-translations tbody td{padding:0rem 1rem;height:60px}body.cloud_babel-modules #babel-translations tbody td input.input,body.cloud_babel-relevants #babel-translations tbody td input.input,body.cloud_babel-translations #babel-translations tbody td input.input{height:60px;border:none;box-shadow:none;border-radius:3px;background-color:rgba(0,0,0,0)}body.cloud_babel-modules #babel-translations tbody td input.input::placeholder,body.cloud_babel-relevants #babel-translations tbody td input.input::placeholder,body.cloud_babel-translations #babel-translations tbody td input.input::placeholder{color:#555761}body.cloud_babel-modules #babel-translations tbody td.detail-row,body.cloud_babel-relevants #babel-translations tbody td.detail-row,body.cloud_babel-translations #babel-translations tbody td.detail-row{padding-left:1rem !important}body.cloud_babel-modules #babel-translations .copied:after,body.cloud_babel-relevants #babel-translations .copied:after,body.cloud_babel-translations #babel-translations .copied:after{display:inline;position:absolute;content:"Label copied to clipboard!";animation:1s ease-in-out 0s 1 normal forwards running copyit;font-size:.8em}@keyframes copyit{0%{bottom:2em;opacity:1}100%{bottom:4em;opacity:0}}
@@ -16,7 +16,7 @@ For more information read the license file including with this software.
16
16
  // ·
17
17
 
18
18
  =end
19
- require_dependency "cloud_babel/application_controller"
19
+ require_dependency "lesli_babel/application_controller"
20
20
 
21
21
  module LesliBabel
22
22
  class ClonesController < ApplicationController
@@ -15,7 +15,7 @@ For more information read the license file including with this software.
15
15
  // ·
16
16
 
17
17
  =end
18
- require_dependency "cloud_babel/application_controller"
18
+ require_dependency "lesli_babel/application_controller"
19
19
 
20
20
  module LesliBabel
21
21
  class RelevantsController < ApplicationController
@@ -18,7 +18,7 @@ For more information read the license file including with this software.
18
18
  =end
19
19
 
20
20
  module LesliBabel
21
- class Clone < ApplicationLesliRecord
21
+ class Clone < ApplicationRecord
22
22
 
23
23
  end
24
24
  end
@@ -18,7 +18,7 @@ GNU General Public License for more details.
18
18
  You should have received a copy of the GNU General Public License
19
19
  along with this program. If not, see http://www.gnu.org/licenses/.
20
20
 
21
- Lesli · Ruby on Rails SaaS development platform.
21
+ Lesli · Ruby on Rails SaaS Development Framework.
22
22
 
23
23
  Made with ♥ by https://www.lesli.tech
24
24
  Building a better future, one line of code at a time.
@@ -34,4 +34,4 @@ Building a better future, one line of code at a time.
34
34
 
35
35
  <%= navigation_item(lesli_babel.dashboard_path, "Dashboard", "ri-dashboard-3-line"); %>
36
36
  <%= navigation_item(lesli_babel.translations_path, "Translations", "ri-earth-line") %>
37
- <%= navigation_item(lesli_babel.dashboard_path, "Relevant", "ri-send-plane-line") %>
37
+ <%#= navigation_item(lesli_babel.dashboard_path, "Relevant", "ri-send-plane-line") %>
@@ -1,4 +1,4 @@
1
1
  module LesliBabel
2
- VERSION = "0.4.0"
3
- BUILD = "1697000148"
2
+ VERSION = "0.6.0"
3
+ BUILD = "1709502821"
4
4
  end
@@ -31,12 +31,17 @@ Building a better future, one line of code at a time.
31
31
  */
32
32
 
33
33
 
34
+
34
35
  // ·
35
36
  body.lesli-babel,
36
- body.lesli-babel-dashboard { @import "./dashboards"; }
37
+ body.lesli-babel-dashboard {
38
+ @import "./dashboards";
39
+ }
37
40
 
38
41
 
39
- // // ·
40
- // body.cloud_babel-modules,
41
- // body.cloud_babel-relevants,
42
- // body.cloud_babel-translations { @import "./translations"; }
42
+ // ·
43
+ body.cloud_babel-modules,
44
+ body.cloud_babel-relevants,
45
+ body.cloud_babel-translations {
46
+ @import "./translations";
47
+ }
@@ -32,7 +32,7 @@ Building a better future, one line of code at a time.
32
32
 
33
33
 
34
34
  // ·
35
- @import "lesli/templates/dashboards";
35
+ @import "Lesli/scss/templates/dashboards";
36
36
  //@import "flag-icons";
37
37
 
38
38
 
@@ -48,7 +48,7 @@ Building a better future, one line of code at a time.
48
48
  background-color: white;
49
49
  border-radius: 4px;
50
50
 
51
- span.flag-icon {
51
+ .flag-icon {
52
52
  border-radius: 4px;
53
53
  box-shadow: $lesli-box-shadow;
54
54
  }
@@ -17,7 +17,7 @@ For more information read the license file including with this software.
17
17
 
18
18
  */
19
19
 
20
-
20
+ /*
21
21
  // ·
22
22
  @import "templates/component";
23
23
 
@@ -31,3 +31,4 @@ For more information read the license file including with this software.
31
31
  .pagination-link {
32
32
  justify-content: center;
33
33
  }
34
+ */
@@ -17,8 +17,9 @@ For more information read the license file including with this software.
17
17
  */
18
18
 
19
19
 
20
+
20
21
  // ·
21
- @import "templates/component";
22
+ @import "Lesli/scss/templates/component";
22
23
 
23
24
 
24
25
  // ·
@@ -31,19 +31,19 @@ Building a better future, one line of code at a time.
31
31
 
32
32
 
33
33
  // · Import Lesli builders
34
- import application from "Lesli/application"
35
- import translation from "Lesli/translation"
34
+ import application from "Lesli/vue/application"
35
+ import translation from "Lesli/vue/translation"
36
36
 
37
37
 
38
38
  // · Import engine translations
39
- import translations from "LesliBabel/stores/translations.json"
39
+ import translations from "LesliBabel/vue/stores/translations.json"
40
40
 
41
41
 
42
42
  // ·
43
- import appDashboardShow from "LesliBabel/apps/dashboards/show.vue"
44
- import appRelevantsIndex from "LesliBabel/apps/relevants/index.vue"
45
- import appTranslationsIndex from "LesliBabel/apps/translations/index.vue"
46
- import appModulesShow from "LesliBabel/apps/modules/show.vue"
43
+ import appDashboardShow from "LesliBabel/vue/apps/dashboards/show.vue"
44
+ import appRelevantsIndex from "LesliBabel/vue/apps/relevants/index.vue"
45
+ import appTranslationsIndex from "LesliBabel/vue/apps/translations/index.vue"
46
+ import appModulesShow from "LesliBabel/vue/apps/modules/show.vue"
47
47
 
48
48
 
49
49
  // · Buil Lesli translations
@@ -23,7 +23,7 @@ import { useRouter, useRoute } from 'vue-router'
23
23
 
24
24
 
25
25
  // · Import components
26
- import componentActions from "LesliBabel/components/actions.vue"
26
+ import componentActions from "LesliBabel/vue/components/actions.vue"
27
27
 
28
28
 
29
29
  // · initialize/inject plugins
@@ -33,8 +33,8 @@ const url = inject("url")
33
33
 
34
34
 
35
35
  // · import lesli stores
36
- import { useStatistics } from "LesliBabel/stores/statistics"
37
- import { useStrings } from "LesliBabel/stores/strings"
36
+ import { useStatistics } from "LesliBabel/vue/stores/statistics"
37
+ import { useStrings } from "LesliBabel/vue/stores/strings"
38
38
 
39
39
 
40
40
  // · implement stores
@@ -67,18 +67,16 @@ function search(string) {
67
67
  <component-actions></component-actions>
68
68
  </lesli-header>
69
69
  <lesli-toolbar @search="search"></lesli-toolbar>
70
- <div class="locales mt-2">
70
+ <div class="locales mt-5">
71
71
  <router-link class="card mr-5 mb-5"
72
72
  v-for="locale in storeStatistics.languages"
73
73
  :key="locale.code"
74
- :to="url.babel('translations', { locale: locale.code }).s" >
75
- <span :class="['mb-2', 'is-size-2','flag-icon', flag(locale.code)]"></span>
76
- <p class="is-size-5">
77
- {{ locale.name }}: {{ locale.total }}
78
- </p>
79
- <small>
80
- missing: {{ storeStatistics.totalStrings - locale.total }} translations
81
- </small>
74
+ :to="url.babel('translations', { locale: locale.code }).toString()" >
75
+ <svg class="flag-icon mb-2" width="64px" height="48px">
76
+ <use v-bind:xlink:href="'#locale-'+locale.code"></use>
77
+ </svg>
78
+ <p class="is-size-5">{{ locale.name }}: {{ locale.total }}</p>
79
+ <small>missing: {{ storeStatistics.totalStrings - locale.total }} translations</small>
82
80
  </router-link>
83
81
  </div>
84
82
  </lesli-application-container>
@@ -37,14 +37,14 @@ import { useRouter, useRoute } from 'vue-router'
37
37
 
38
38
 
39
39
  // · import components
40
- import formStringNew from "LesliBabel/components/form-string-new.vue"
41
- import formLabelEditor from "LesliBabel/components/form-label-editor.vue"
42
- import componentActions from "LesliBabel/components/actions.vue"
40
+ import formStringNew from "LesliBabel/vue/components/form-string-new.vue"
41
+ import formLabelEditor from "LesliBabel/vue/components/form-label-editor.vue"
42
+ import componentActions from "LesliBabel/vue/components/actions.vue"
43
43
 
44
44
 
45
45
  // · import lesli stores
46
- import { useModule } from "LesliBabel/stores/module"
47
- import { useStrings } from "LesliBabel/stores/strings"
46
+ import { useModule } from "LesliBabel/vue/stores/module"
47
+ import { useStrings } from "LesliBabel/vue/stores/strings"
48
48
 
49
49
 
50
50
  // · implement stores
@@ -30,8 +30,8 @@ const url = inject("url")
30
30
 
31
31
 
32
32
  // · import components
33
- import componentLabelEditor from "LesliBabel/components/form-label-editor.vue"
34
- import componentActions from "LesliBabel/components/actions.vue"
33
+ import componentLabelEditor from "LesliBabel/vue/components/form-label-editor.vue"
34
+ import componentActions from "LesliBabel/vue/components/actions.vue"
35
35
 
36
36
 
37
37
  </script>
@@ -30,13 +30,13 @@ const url = inject("url")
30
30
 
31
31
 
32
32
  // · import components
33
- import componentLabelEditor from "LesliBabel/components/form-label-editor.vue"
34
- import componentActions from "LesliBabel/components/actions.vue"
33
+ import componentLabelEditor from "LesliBabel/vue/components/form-label-editor.vue"
34
+ import componentActions from "LesliBabel/vue/components/actions.vue"
35
35
 
36
36
 
37
37
  // · import lesli stores
38
- import { useStrings } from "LesliBabel/stores/strings"
39
- import { useTranslations } from "LesliBabel/stores/translations"
38
+ import { useStrings } from "LesliBabel/vue/stores/strings"
39
+ import { useTranslations } from "LesliBabel/vue/stores/translations"
40
40
 
41
41
 
42
42
  // · implement stores
@@ -1,7 +1,7 @@
1
1
  <script setup>
2
2
 
3
3
  // · import lesli stores
4
- import { useTranslations } from "LesliBabel/stores/translations"
4
+ import { useTranslations } from "LesliBabel/vue/stores/translations"
5
5
 
6
6
 
7
7
  // · implement stores
@@ -9,16 +9,16 @@ const storeTranslations = useTranslations()
9
9
 
10
10
  </script>
11
11
  <template>
12
- <lesli-button icon="download" @click="storeTranslations.postRenovate()">
13
- update
14
- </lesli-button>
15
12
  <lesli-button icon="rocket_launch" @click="storeTranslations.postDeploy()">
16
13
  deploy
17
14
  </lesli-button>
15
+ <!--
16
+ <lesli-button icon="download">
17
+ update
18
+ </lesli-button>
18
19
  <lesli-button icon="sync" @click="storeTranslations.postSync()">
19
20
  sync
20
21
  </lesli-button>
21
- <!--
22
22
  <lesli-button icon="code">
23
23
  javascript
24
24
  </lesli-button>
@@ -24,9 +24,9 @@ import { useRouter, useRoute } from 'vue-router'
24
24
 
25
25
  // · import lesli stores
26
26
  const route = useRoute()
27
- import { useStrings } from "LesliBabel/stores/strings"
28
- import { useTranslations } from "LesliBabel/stores/translations"
29
- import { useServiceTranslator } from "Lesli/stores/services/translator"
27
+ import { useStrings } from "LesliBabel/vue/stores/strings"
28
+ import { useTranslations } from "LesliBabel/vue/stores/translations"
29
+ import { useServiceTranslator } from "Lesli/vue/shared/services/translator"
30
30
 
31
31
 
32
32
  // · implement stores
@@ -37,8 +37,8 @@ import { ref, reactive, onMounted, watch, computed, onUnmounted } from "vue"
37
37
 
38
38
 
39
39
  // ·
40
- import { useString } from "LesliBabel/stores/string"
41
- import { useModule } from "LesliBabel/stores/module"
40
+ import { useString } from "LesliBabel/vue/stores/string"
41
+ import { useModule } from "LesliBabel/vue/stores/module"
42
42
 
43
43
 
44
44
  // · implement stores
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lesli_babel
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Lesli Development Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-02-11 00:00:00.000000000 Z
11
+ date: 2024-03-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -49,11 +49,7 @@ files:
49
49
  - app/assets/config/lesli_babel_manifest.js
50
50
  - app/assets/images/lesli_babel/babel-logo.svg
51
51
  - app/assets/javascripts/lesli_babel/application.js
52
- - app/assets/javascripts/lesli_babel/application.js.LICENSE.txt
53
- - app/assets/stylesheets/lesli_babel/application.scss
54
- - app/assets/stylesheets/lesli_babel/dashboards.scss
55
- - app/assets/stylesheets/lesli_babel/modules.scss
56
- - app/assets/stylesheets/lesli_babel/translations.scss
52
+ - app/assets/stylesheets/lesli_babel/application.css
57
53
  - app/controllers/lesli_babel/application_controller.rb
58
54
  - app/controllers/lesli_babel/buckets_controller.rb
59
55
  - app/controllers/lesli_babel/clones_controller.rb
@@ -71,20 +67,9 @@ files:
71
67
  - app/models/lesli_babel/module.rb
72
68
  - app/models/lesli_babel/relevant.rb
73
69
  - app/models/lesli_babel/string.rb
74
- - app/models/lesli_babel/string/activity.rb
75
- - app/models/lesli_babel/string/discussion.rb
76
70
  - app/models/lesli_babel/translation.rb
77
71
  - app/services/lesli_babel/deploy_rails_service.rb
78
72
  - app/services/lesli_babel/module_service.rb
79
- - app/services/lesli_babel/old/translations_android_service.rb
80
- - app/services/lesli_babel/old/translations_clone_service.rb
81
- - app/services/lesli_babel/old/translations_flutter_service.rb
82
- - app/services/lesli_babel/old/translations_ios_service.rb
83
- - app/services/lesli_babel/old/translations_js_service.rb
84
- - app/services/lesli_babel/old/translations_middleman_service.rb
85
- - app/services/lesli_babel/old/translations_rails_service.rb
86
- - app/services/lesli_babel/old/translations_service.rb
87
- - app/services/lesli_babel/old/translations_synchronization_service.rb
88
73
  - app/services/lesli_babel/string_service.rb
89
74
  - app/views/lesli_babel/buckets/_form.html.erb
90
75
  - app/views/lesli_babel/buckets/edit.html.erb
@@ -138,6 +123,10 @@ files:
138
123
  - lib/lesli_babel.rb
139
124
  - lib/lesli_babel/engine.rb
140
125
  - lib/lesli_babel/version.rb
126
+ - lib/scss/application.scss
127
+ - lib/scss/dashboards.scss
128
+ - lib/scss/modules.scss
129
+ - lib/scss/translations.scss
141
130
  - lib/tasks/lesli_babel_tasks.rake
142
131
  - lib/vue/application.js
143
132
  - lib/vue/apps/dashboards/show.vue
@@ -1,282 +0,0 @@
1
- /*
2
-
3
- Lesli
4
-
5
- Copyright (c) 2023, Lesli Technologies, S. A.
6
-
7
- This program is free software: you can redistribute it and/or modify
8
- it under the terms of the GNU General Public License as published by
9
- the Free Software Foundation, either version 3 of the License, or
10
- (at your option) any later version.
11
-
12
- This program is distributed in the hope that it will be useful,
13
- but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
- GNU General Public License for more details.
16
-
17
- You should have received a copy of the GNU General Public License
18
- along with this program. If not, see http://www.gnu.org/licenses/.
19
-
20
- Lesli · Ruby on Rails SaaS Development Framework.
21
-
22
- Made with ♥ by https://www.lesli.tech
23
- Building a better future, one line of code at a time.
24
-
25
- @contact hello@lesli.tech
26
- @website https://www.lesli.tech
27
- @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
28
-
29
- // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
30
- // ·
31
- */
32
-
33
- /*
34
-
35
- Lesli
36
-
37
- Copyright (c) 2023, Lesli Technologies, S. A.
38
-
39
- This program is free software: you can redistribute it and/or modify
40
- it under the terms of the GNU General Public License as published by
41
- the Free Software Foundation, either version 3 of the License, or
42
- (at your option) any later version.
43
-
44
- This program is distributed in the hope that it will be useful,
45
- but WITHOUT ANY WARRANTY; without even the implied warranty of
46
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
47
- GNU General Public License for more details.
48
-
49
- You should have received a copy of the GNU General Public License
50
- along with this program. If not, see http://www.gnu.org/licenses/.
51
-
52
- Lesli · Your Smart Business Assistant.
53
-
54
- Made with ♥ by https://www.lesli.tech
55
- Building a better future, one line of code at a time.
56
-
57
- @contact hello@lesli.tech
58
- @website https://lesli.tech
59
- @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
60
-
61
- // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
62
- // ·
63
-
64
- */
65
-
66
- /*
67
-
68
- Lesli
69
-
70
- Copyright (c) 2023, Lesli Technologies, S. A.
71
-
72
- This program is free software: you can redistribute it and/or modify
73
- it under the terms of the GNU General Public License as published by
74
- the Free Software Foundation, either version 3 of the License, or
75
- (at your option) any later version.
76
-
77
- This program is distributed in the hope that it will be useful,
78
- but WITHOUT ANY WARRANTY; without even the implied warranty of
79
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
80
- GNU General Public License for more details.
81
-
82
- You should have received a copy of the GNU General Public License
83
- along with this program. If not, see http://www.gnu.org/licenses/.
84
-
85
- Lesli · Your Smart Business Assistant.
86
-
87
- Made with ♥ by https://www.lesli.tech
88
- Building a better future, one line of code at a time.
89
-
90
- @contact hello@lesli.tech
91
- @website https://lesli.tech
92
- @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
93
-
94
- // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
95
- // ·
96
- */
97
-
98
- /*
99
- Lesli
100
-
101
- Copyright (c) 2023, Lesli Technologies, S. A.
102
-
103
- This program is free software: you can redistribute it and/or modify
104
- it under the terms of the GNU General Public License as published by
105
- the Free Software Foundation, either version 3 of the License, or
106
- (at your option) any later version.
107
-
108
- This program is distributed in the hope that it will be useful,
109
- but WITHOUT ANY WARRANTY; without even the implied warranty of
110
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
111
- GNU General Public License for more details.
112
-
113
- You should have received a copy of the GNU General Public License
114
- along with this program. If not, see http://www.gnu.org/licenses/.
115
-
116
- Lesli · Ruby on Rails SaaS Development Framework.
117
-
118
- Made with ♥ by https://www.lesli.tech
119
- Building a better future, one line of code at a time.
120
-
121
- @contact hello@lesli.tech
122
- @website https://www.lesli.dev
123
- @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
124
-
125
- // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
126
- // ·
127
- */
128
-
129
- /*
130
- Lesli
131
-
132
- Copyright (c) 2023, Lesli Technologies, S. A.
133
-
134
- This program is free software: you can redistribute it and/or modify
135
- it under the terms of the GNU General Public License as published by
136
- the Free Software Foundation, either version 3 of the License, or
137
- (at your option) any later version.
138
-
139
- This program is distributed in the hope that it will be useful,
140
- but WITHOUT ANY WARRANTY; without even the implied warranty of
141
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
142
- GNU General Public License for more details.
143
-
144
- You should have received a copy of the GNU General Public License
145
- along with this program. If not, see http://www.gnu.org/licenses/.
146
-
147
- Lesli · Ruby on Rails SaaS development platform.
148
-
149
- Made with ♥ by https://www.lesli.tech
150
- Building a better future, one line of code at a time.
151
-
152
- @contact hello@lesli.tech
153
- @website https://www.lesli.tech
154
- @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
155
-
156
- // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
157
- // ·
158
- */
159
-
160
- /*
161
- Lesli
162
-
163
- Copyright (c) 2020, Lesli Technologies, S. A.
164
-
165
- This program is free software: you can redistribute it and/or modify
166
- it under the terms of the GNU General Public License as published by
167
- the Free Software Foundation, either version 3 of the License, or
168
- (at your option) any later version.
169
-
170
- This program is distributed in the hope that it will be useful,
171
- but WITHOUT ANY WARRANTY; without even the implied warranty of
172
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
173
- GNU General Public License for more details.
174
-
175
- You should have received a copy of the GNU General Public License
176
- along with this program. If not, see <http://www.gnu.org/licenses/>.
177
-
178
- Lesli JS - JavaScript utilities for JavaScript applications
179
-
180
- Powered by LesliTech
181
- Building a better future, one line of code at a time.
182
-
183
- @contact <hello@lesli.tech>
184
- @website <https://lesli.tech>
185
- @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
186
-
187
- // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
188
- // ·
189
- */
190
-
191
- /*
192
- Lesli
193
-
194
- Copyright (c) 2021, Lesli Technologies, S. A.
195
-
196
- This program is free software: you can redistribute it and/or modify
197
- it under the terms of the GNU General Public License as published by
198
- the Free Software Foundation, either version 3 of the License, or
199
- (at your option) any later version.
200
-
201
- This program is distributed in the hope that it will be useful,
202
- but WITHOUT ANY WARRANTY; without even the implied warranty of
203
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
204
- GNU General Public License for more details.
205
-
206
- You should have received a copy of the GNU General Public License
207
- along with this program. If not, see <http://www.gnu.org/licenses/>.
208
-
209
- Lesli JS - JavaScript utilities for JavaScript applications
210
-
211
- Powered by LesliTech
212
- Building a better future, one line of code at a time.
213
-
214
- @contact <hello@lesli.tech>
215
- @website <https://lesli.tech>
216
- @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
217
-
218
- // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
219
- // ·
220
- */
221
-
222
- /*
223
- Lesli
224
-
225
- Copyright (c) 2023, Lesli Technologies, S. A.
226
-
227
- This program is free software: you can redistribute it and/or modify
228
- it under the terms of the GNU General Public License as published by
229
- the Free Software Foundation, either version 3 of the License, or
230
- (at your option) any later version.
231
-
232
- This program is distributed in the hope that it will be useful,
233
- but WITHOUT ANY WARRANTY; without even the implied warranty of
234
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
235
- GNU General Public License for more details.
236
-
237
- You should have received a copy of the GNU General Public License
238
- along with this program. If not, see http://www.gnu.org/licenses/.
239
-
240
- Lesli · Ruby on Rails SaaS Development Framework.
241
-
242
- Made with ♥ by https://www.lesli.tech
243
- Building a better future, one line of code at a time.
244
-
245
- @contact hello@lesli.tech
246
- @website https://www.lesli.dev
247
- @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
248
-
249
- // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
250
- // ·
251
- */
252
-
253
- /*
254
- Lesli
255
-
256
- Copyright (c) 2023, Lesli Technologies, S. A.
257
-
258
- This program is free software: you can redistribute it and/or modify
259
- it under the terms of the GNU General Public License as published by
260
- the Free Software Foundation, either version 3 of the License, or
261
- (at your option) any later version.
262
-
263
- This program is distributed in the hope that it will be useful,
264
- but WITHOUT ANY WARRANTY; without even the implied warranty of
265
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
266
- GNU General Public License for more details.
267
-
268
- You should have received a copy of the GNU General Public License
269
- along with this program. If not, see http://www.gnu.org/licenses/.
270
-
271
- Lesli · Ruby on Rails SaaS Development Framework.
272
-
273
- Made with ♥ by https://www.lesli.tech
274
- Building a better future, one line of code at a time.
275
-
276
- @contact hello@lesli.tech
277
- @website https://www.lesli.tech
278
- @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
279
-
280
- // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
281
- // ·
282
- */