@gogocat/data-bind 1.11.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (274) hide show
  1. package/.editorconfig +14 -14
  2. package/.vscode/launch.json +12 -12
  3. package/CONFIGURATION.md +294 -0
  4. package/REACTIVE_MODE.md +553 -0
  5. package/README.md +266 -829
  6. package/babel.config.json +30 -0
  7. package/dist/js/_escape.d.ts +14 -0
  8. package/dist/js/_escape.d.ts.map +1 -0
  9. package/dist/js/applyBinding.d.ts +11 -0
  10. package/dist/js/applyBinding.d.ts.map +1 -0
  11. package/dist/js/attrBinding.d.ts +12 -0
  12. package/dist/js/attrBinding.d.ts.map +1 -0
  13. package/dist/js/binder.d.ts +67 -0
  14. package/dist/js/binder.d.ts.map +1 -0
  15. package/dist/js/changeBinding.d.ts +19 -0
  16. package/dist/js/changeBinding.d.ts.map +1 -0
  17. package/dist/js/commentWrapper.d.ts +39 -0
  18. package/dist/js/commentWrapper.d.ts.map +1 -0
  19. package/dist/js/config.d.ts +55 -0
  20. package/dist/js/config.d.ts.map +1 -0
  21. package/dist/js/createBindingOption.d.ts +32 -0
  22. package/dist/js/createBindingOption.d.ts.map +1 -0
  23. package/dist/js/createEventBinding.d.ts +10 -0
  24. package/dist/js/createEventBinding.d.ts.map +1 -0
  25. package/dist/js/cssBinding.d.ts +15 -0
  26. package/dist/js/cssBinding.d.ts.map +1 -0
  27. package/dist/js/dataBind.js +2772 -2519
  28. package/dist/js/dataBind.min.js +8 -1
  29. package/dist/js/dataBind.min.js.map +1 -1
  30. package/dist/js/domWalker.d.ts +9 -0
  31. package/dist/js/domWalker.d.ts.map +1 -0
  32. package/dist/js/forOfBinding.d.ts +12 -0
  33. package/dist/js/forOfBinding.d.ts.map +1 -0
  34. package/dist/js/hoverBinding.d.ts +13 -0
  35. package/dist/js/hoverBinding.d.ts.map +1 -0
  36. package/dist/js/ifBinding.d.ts +12 -0
  37. package/dist/js/ifBinding.d.ts.map +1 -0
  38. package/dist/js/index.d.ts +10 -0
  39. package/dist/js/index.d.ts.map +1 -0
  40. package/dist/js/modelBinding.d.ts +12 -0
  41. package/dist/js/modelBinding.d.ts.map +1 -0
  42. package/dist/js/postProcess.d.ts +3 -0
  43. package/dist/js/postProcess.d.ts.map +1 -0
  44. package/dist/js/pubSub.d.ts +11 -0
  45. package/dist/js/pubSub.d.ts.map +1 -0
  46. package/dist/js/reactiveProxy.d.ts +28 -0
  47. package/dist/js/reactiveProxy.d.ts.map +1 -0
  48. package/dist/js/renderForOfBinding.d.ts +8 -0
  49. package/dist/js/renderForOfBinding.d.ts.map +1 -0
  50. package/dist/js/renderIfBinding.d.ts +22 -0
  51. package/dist/js/renderIfBinding.d.ts.map +1 -0
  52. package/dist/js/renderIteration.d.ts +16 -0
  53. package/dist/js/renderIteration.d.ts.map +1 -0
  54. package/dist/js/renderTemplate.d.ts +14 -0
  55. package/dist/js/renderTemplate.d.ts.map +1 -0
  56. package/dist/js/renderTemplatesBinding.d.ts +19 -0
  57. package/dist/js/renderTemplatesBinding.d.ts.map +1 -0
  58. package/dist/js/showBinding.d.ts +13 -0
  59. package/dist/js/showBinding.d.ts.map +1 -0
  60. package/dist/js/switchBinding.d.ts +13 -0
  61. package/dist/js/switchBinding.d.ts.map +1 -0
  62. package/dist/js/textBinding.d.ts +13 -0
  63. package/dist/js/textBinding.d.ts.map +1 -0
  64. package/dist/js/types/_escape.d.ts +14 -0
  65. package/dist/js/types/_escape.d.ts.map +1 -0
  66. package/dist/js/types/applyBinding.d.ts +11 -0
  67. package/dist/js/types/applyBinding.d.ts.map +1 -0
  68. package/dist/js/types/attrBinding.d.ts +12 -0
  69. package/dist/js/types/attrBinding.d.ts.map +1 -0
  70. package/dist/js/types/binder.d.ts +67 -0
  71. package/dist/js/types/binder.d.ts.map +1 -0
  72. package/dist/js/types/changeBinding.d.ts +19 -0
  73. package/dist/js/types/changeBinding.d.ts.map +1 -0
  74. package/dist/js/types/commentWrapper.d.ts +39 -0
  75. package/dist/js/types/commentWrapper.d.ts.map +1 -0
  76. package/dist/js/types/config.d.ts +55 -0
  77. package/dist/js/types/config.d.ts.map +1 -0
  78. package/dist/js/types/createBindingOption.d.ts +32 -0
  79. package/dist/js/types/createBindingOption.d.ts.map +1 -0
  80. package/dist/js/types/createEventBinding.d.ts +10 -0
  81. package/dist/js/types/createEventBinding.d.ts.map +1 -0
  82. package/dist/js/types/cssBinding.d.ts +15 -0
  83. package/dist/js/types/cssBinding.d.ts.map +1 -0
  84. package/dist/js/types/domWalker.d.ts +9 -0
  85. package/dist/js/types/domWalker.d.ts.map +1 -0
  86. package/dist/js/types/forOfBinding.d.ts +12 -0
  87. package/dist/js/types/forOfBinding.d.ts.map +1 -0
  88. package/dist/js/types/hoverBinding.d.ts +13 -0
  89. package/dist/js/types/hoverBinding.d.ts.map +1 -0
  90. package/dist/js/types/ifBinding.d.ts +12 -0
  91. package/dist/js/types/ifBinding.d.ts.map +1 -0
  92. package/dist/js/types/index.d.ts +10 -0
  93. package/dist/js/types/index.d.ts.map +1 -0
  94. package/dist/js/types/modelBinding.d.ts +12 -0
  95. package/dist/js/types/modelBinding.d.ts.map +1 -0
  96. package/dist/js/types/postProcess.d.ts +3 -0
  97. package/dist/js/types/postProcess.d.ts.map +1 -0
  98. package/dist/js/types/pubSub.d.ts +11 -0
  99. package/dist/js/types/pubSub.d.ts.map +1 -0
  100. package/dist/js/types/reactiveProxy.d.ts +28 -0
  101. package/dist/js/types/reactiveProxy.d.ts.map +1 -0
  102. package/dist/js/types/renderForOfBinding.d.ts +8 -0
  103. package/dist/js/types/renderForOfBinding.d.ts.map +1 -0
  104. package/dist/js/types/renderIfBinding.d.ts +22 -0
  105. package/dist/js/types/renderIfBinding.d.ts.map +1 -0
  106. package/dist/js/types/renderIteration.d.ts +16 -0
  107. package/dist/js/types/renderIteration.d.ts.map +1 -0
  108. package/dist/js/types/renderTemplate.d.ts +14 -0
  109. package/dist/js/types/renderTemplate.d.ts.map +1 -0
  110. package/dist/js/types/renderTemplatesBinding.d.ts +19 -0
  111. package/dist/js/types/renderTemplatesBinding.d.ts.map +1 -0
  112. package/dist/js/types/showBinding.d.ts +13 -0
  113. package/dist/js/types/showBinding.d.ts.map +1 -0
  114. package/dist/js/types/switchBinding.d.ts +13 -0
  115. package/dist/js/types/switchBinding.d.ts.map +1 -0
  116. package/dist/js/types/textBinding.d.ts +13 -0
  117. package/dist/js/types/textBinding.d.ts.map +1 -0
  118. package/dist/js/types/types.d.ts +111 -0
  119. package/dist/js/types/types.d.ts.map +1 -0
  120. package/dist/js/types/util.d.ts +119 -0
  121. package/dist/js/types/util.d.ts.map +1 -0
  122. package/dist/js/types.d.ts +111 -0
  123. package/dist/js/types.d.ts.map +1 -0
  124. package/dist/js/util.d.ts +119 -0
  125. package/dist/js/util.d.ts.map +1 -0
  126. package/eslint.config.js +124 -0
  127. package/examples/DBMONSTER_COMPARISON.md +123 -0
  128. package/examples/afterRenderDemo.html +119 -0
  129. package/examples/bootstrap/css/animate.css +1579 -1579
  130. package/examples/bootstrap/css/bootstrap.min.css +6 -6
  131. package/examples/bootstrap/css/homeservices.css +378 -390
  132. package/examples/bootstrap/css/open-iconic.css +511 -511
  133. package/examples/bootstrap/fonts/open-iconic.svg +543 -543
  134. package/examples/bootstrap/js/compMessageDialog.js +20 -19
  135. package/examples/bootstrap/js/compSearchBar.js +12 -19
  136. package/examples/bootstrap/js/compSearchResults.js +50 -46
  137. package/examples/bootstrap/js/featureAdsResult.json +65 -65
  138. package/examples/bootstrap/js/searchResult.json +57 -57
  139. package/examples/bootstrap.html +343 -332
  140. package/examples/css/baseTodo.css +141 -141
  141. package/examples/css/dbMonsterStyles.css +27 -27
  142. package/examples/css/indexTodo.css +374 -374
  143. package/examples/dbmonsterForOfReactive.html +40 -0
  144. package/examples/dbmonsterReact.html +19 -0
  145. package/examples/forOfBindingSimpleDebug.html +45 -0
  146. package/examples/form.html +20 -4
  147. package/examples/globalConfig.html +131 -0
  148. package/examples/js/afterRenderDemo.js +190 -0
  149. package/examples/js/appTodo.js +46 -46
  150. package/examples/js/attrBindingDemo.js +2 -2
  151. package/examples/js/dbMonApp.js +24 -26
  152. package/examples/js/dbMonAppReact.jsx +79 -0
  153. package/examples/js/dbMonAppReactive.js +28 -0
  154. package/examples/js/fiberDemo.js +4 -4
  155. package/examples/js/filtersDemo.js +8 -8
  156. package/examples/js/forOfDemo.js +7 -9
  157. package/examples/js/forOfDemoComplex.js +44 -17
  158. package/examples/js/form.js +44 -12
  159. package/examples/js/globalConfig.js +117 -0
  160. package/examples/js/ifBindingDemo.js +16 -16
  161. package/examples/js/reactiveDemo.js +119 -0
  162. package/examples/js/switchBindingDemo.js +8 -8
  163. package/examples/react-dbmonster/dist/bundle.js +43 -0
  164. package/examples/react-dbmonster/package-lock.json +537 -0
  165. package/examples/react-dbmonster/package.json +16 -0
  166. package/examples/react-dbmonster/src/index.jsx +80 -0
  167. package/examples/reactiveDemo.html +127 -0
  168. package/examples/refreshRateTest.html +75 -75
  169. package/index.html +841 -0
  170. package/package.json +31 -34
  171. package/rollup.config.js +79 -36
  172. package/src/{_escape.js → _escape.ts} +19 -17
  173. package/src/applyBinding.ts +179 -0
  174. package/src/{attrBinding.js → attrBinding.ts} +14 -13
  175. package/src/binder.ts +289 -0
  176. package/src/changeBinding.ts +93 -0
  177. package/src/{commentWrapper.js → commentWrapper.ts} +33 -30
  178. package/src/config.ts +107 -0
  179. package/src/createBindingOption.ts +91 -0
  180. package/src/createEventBinding.ts +88 -0
  181. package/src/{cssBinding.js → cssBinding.ts} +13 -11
  182. package/src/{domWalker.js → domWalker.ts} +44 -30
  183. package/src/{forOfBinding.js → forOfBinding.ts} +4 -3
  184. package/src/hoverBinding.ts +84 -0
  185. package/src/{ifBinding.js → ifBinding.ts} +14 -12
  186. package/src/index.ts +53 -0
  187. package/src/{modelBinding.js → modelBinding.ts} +11 -9
  188. package/src/postProcess.ts +22 -0
  189. package/src/{pubSub.js → pubSub.ts} +24 -15
  190. package/src/reactiveProxy.ts +285 -0
  191. package/src/{renderForOfBinding.js → renderForOfBinding.ts} +55 -33
  192. package/src/{renderIfBinding.js → renderIfBinding.ts} +45 -20
  193. package/src/renderIteration.ts +53 -0
  194. package/src/renderTemplate.ts +165 -0
  195. package/src/renderTemplatesBinding.ts +73 -0
  196. package/src/{showBinding.js → showBinding.ts} +4 -3
  197. package/src/{switchBinding.js → switchBinding.ts} +18 -15
  198. package/src/{textBinding.js → textBinding.ts} +5 -4
  199. package/src/types.ts +124 -0
  200. package/src/util.ts +810 -0
  201. package/test/css/reporter.css +9 -9
  202. package/test/fixtures/dataBindBootstrap.html +2 -2
  203. package/test/fixtures/formBindings.html +9 -1
  204. package/test/globals.d.ts +19 -0
  205. package/test/helpers/testHelper.js +46 -11
  206. package/test/mocks/featureAdsResult.json +65 -65
  207. package/test/mocks/searchResult.json +57 -57
  208. package/test/specs/{attrBinding.spec.js → attrBinding.spec.ts} +103 -106
  209. package/test/specs/{binder.spec.js → binder.spec.ts} +29 -27
  210. package/test/specs/blurBinding.spec.ts +60 -0
  211. package/test/specs/chainableUse.spec.ts +125 -0
  212. package/test/specs/clickBinding.spec.ts +194 -0
  213. package/test/specs/{cssBinding.spec.js → cssBinding.spec.ts} +72 -79
  214. package/test/specs/{dataBindBootstrap.spec.js → dataBindBootstrap.spec.ts} +332 -313
  215. package/test/specs/{filter.spec.js → filter.spec.ts} +75 -76
  216. package/test/specs/{forOfBinding.spec.js → forOfBinding.spec.ts} +208 -219
  217. package/test/specs/formBinding.spec.ts +272 -0
  218. package/test/specs/ifBinding.spec.ts +165 -0
  219. package/test/specs/{nestedComponent.spec.js → nestedComponent.spec.ts} +88 -88
  220. package/test/specs/reactiveProxy.spec.ts +465 -0
  221. package/test/specs/{showBinding.spec.js → showBinding.spec.ts} +148 -149
  222. package/test/specs/{switchBinding.spec.js → switchBinding.spec.ts} +172 -173
  223. package/test/specs/templateBinding.spec.ts +273 -0
  224. package/test/specs/{textBinding.spec.js → textBinding.spec.ts} +47 -48
  225. package/test/tsconfig.json +31 -0
  226. package/test-output.txt +200 -0
  227. package/test-reactive.html +224 -0
  228. package/tsconfig.json +28 -0
  229. package/vendors/lodash.custom.js +4577 -4577
  230. package/vendors/lodash.custom.min.js +45 -45
  231. package/vitest.config.js +27 -0
  232. package/.eslintrc.js +0 -1
  233. package/.grunt/grunt-contrib-jasmine/boot.js +0 -161
  234. package/.grunt/grunt-contrib-jasmine/dist/js/dataBind.js +0 -9
  235. package/.grunt/grunt-contrib-jasmine/grunt-template-jasmine-istanbul/reporter.js +0 -23
  236. package/.grunt/grunt-contrib-jasmine/jasmine-html.js +0 -853
  237. package/.grunt/grunt-contrib-jasmine/jasmine.css +0 -271
  238. package/.grunt/grunt-contrib-jasmine/jasmine.js +0 -9761
  239. package/.grunt/grunt-contrib-jasmine/jasmine_favicon.png +0 -0
  240. package/.grunt/grunt-contrib-jasmine/json2.js +0 -489
  241. package/.grunt/grunt-contrib-jasmine/reporter.js +0 -107
  242. package/coverage/coverage.json +0 -1
  243. package/coverage/lcov/lcov-report/base.css +0 -213
  244. package/coverage/lcov/lcov-report/index.html +0 -93
  245. package/coverage/lcov/lcov-report/js/dataBind.js.html +0 -6596
  246. package/coverage/lcov/lcov-report/js/index.html +0 -93
  247. package/coverage/lcov/lcov-report/prettify.css +0 -1
  248. package/coverage/lcov/lcov-report/prettify.js +0 -1
  249. package/coverage/lcov/lcov-report/sort-arrow-sprite.png +0 -0
  250. package/coverage/lcov/lcov-report/sorter.js +0 -158
  251. package/coverage/lcov/lcov.info +0 -1991
  252. package/eslintrc.json +0 -40
  253. package/examples/bootstrap/js/bootstrap.min.js +0 -6
  254. package/examples/bootstrap/js/popper.min.js +0 -5
  255. package/examples/bootstrap/js/searchSuggestion.js +0 -58
  256. package/examples/bootstrap/js/typeahead.jquery.js +0 -1538
  257. package/gruntfile.js +0 -92
  258. package/gulpfile.js +0 -32
  259. package/src/binder.js +0 -422
  260. package/src/changeBinding.js +0 -57
  261. package/src/config.js +0 -65
  262. package/src/createBindingOption.js +0 -66
  263. package/src/createEventBinding.js +0 -46
  264. package/src/eventSystem.js +0 -46
  265. package/src/hoverBinding.js +0 -57
  266. package/src/index.js +0 -26
  267. package/src/renderTemplate.js +0 -128
  268. package/src/util.js +0 -648
  269. package/test/specs/blurBinding.spec.js +0 -57
  270. package/test/specs/formBinding.spec.js +0 -292
  271. package/test/specs/ifBinding.spec.js +0 -169
  272. package/test/specs/templateBinding.spec.js +0 -117
  273. package/vendors/jasmine-jquery.js +0 -841
  274. package/vendors/jquery-3.2.1.min.js +0 -4
@@ -1,390 +1,378 @@
1
- /* Sticky footer styles
2
- -------------------------------------------------- */
3
-
4
- html {
5
- position: relative;
6
- min-height: 100%;
7
- }
8
-
9
- body {
10
- /* Margin bottom by footer height */
11
- margin-bottom: 60px;
12
- }
13
-
14
- button {
15
- cursor: pointer;
16
- }
17
-
18
- .footer {
19
- position: absolute;
20
- bottom: 0;
21
- width: 100%;
22
- /* Set the fixed height of the footer here */
23
- height: 60px;
24
- line-height: 60px;
25
- }
26
- /* page styles
27
- -------------------------------------------------- */
28
-
29
- body {
30
- padding-top: 3.5rem;
31
- background-color: #f4f4f4;
32
- margin-bottom: 60px;
33
- }
34
-
35
- .footer {
36
- background-color: #2c2134;
37
- color: rgba(255, 255, 255, 0.7);
38
- }
39
-
40
- .bg-dark {
41
- background-color: #2c2134 !important;
42
- }
43
-
44
- .jumbotron {
45
- margin-bottom: 0;
46
- }
47
-
48
- .hero {
49
- background-color: #bfb9a5;
50
- color: #fff;
51
- border-radius: 0;
52
- }
53
-
54
- .section-title {
55
- text-align: center;
56
- padding: 2em 0;
57
- margin: 0;
58
- }
59
- /* search bar component styles
60
- -------------------------------------------------- */
61
-
62
- .search-bar {
63
- padding: 4em 0;
64
- background-color: #fff;
65
- }
66
-
67
- .search-bar .form-control {
68
- border: none;
69
- border-radius: 0;
70
- font-size: 1.5rem;
71
- line-height: 1.5;
72
- background-color: transparent;
73
- border-bottom: 1px solid #ccc;
74
- color: #222;
75
- transition: all 0.5s ease-in-out;
76
- }
77
-
78
- .search-bar .form-control:invalid ~ .search-bar__label,
79
- .search-bar .search-bar__label {
80
- position: absolute;
81
- top: 0;
82
- color: #666;
83
- line-height: 1.5;
84
- padding-left: 12px;
85
- transform: translate3d(0, 0, 0);
86
- transition: all 0.2s ease-in-out;
87
- }
88
-
89
- .search-bar .search-bar__label {
90
- font-size: 1.5rem;
91
- }
92
-
93
- .search-bar .search-bar__label--large {
94
- font-size: 2rem;
95
- }
96
-
97
- .search-bar .form-control:valid ~ .search-bar__label,
98
- .search-bar .form-control:focus ~ .search-bar__label {
99
- font-size: 0.8rem;
100
- line-height: normal;
101
- opacity: 0.5;
102
- transform: translate3d(0, -10px, 0);
103
- }
104
-
105
- .search-bar .search-bar__focus-bar {
106
- display: block;
107
- position: absolute;
108
- bottom: 0;
109
- left: 50%;
110
- height: 1px;
111
- width: 0;
112
- background-color: rgba(255, 255, 255, 0);
113
- transition: all 0.5s ease-in-out;
114
- z-index: 4;
115
- }
116
-
117
- .search-bar .form-control:focus ~ .search-bar__focus-bar {
118
- width: 100%;
119
- left: 0;
120
- background-color: #28a745;
121
- }
122
-
123
- .search-bar .search-bar__map-marker {
124
- align-self: center;
125
- margin-top: 10px;
126
- }
127
-
128
- .search-bar .search-bar__btn {
129
- width: 100%;
130
- height: 100%;
131
- font-size: 1.5rem;
132
- cursor: pointer;
133
- }
134
-
135
- .twitter-typeahead {
136
- display: block !important;
137
- }
138
-
139
- #scrollable-dropdown-menu .tt-dropdown-menu {
140
- max-height: 150px;
141
- overflow-y: auto;
142
- }
143
-
144
- .tt-menu {
145
- width: 100%;
146
- background-color: #fff;
147
- padding: 0.5rem 0.75rem;
148
- color: #999;
149
- box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
150
- transition: all 0.2s ease;
151
- }
152
-
153
- .tt-suggestion {
154
- padding: 0.2em 0;
155
- }
156
-
157
- .tt-suggestion:hover,
158
- .tt-cursor {
159
- color: #28a745;
160
- text-decoration: underline;
161
- }
162
- /* search result component styles
163
- -------------------------------------------------- */
164
-
165
- .search-result {
166
- padding-bottom: 4em;
167
- }
168
-
169
- .result-item {
170
- border-radius: 0;
171
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
172
- transition: all 0.2s ease;
173
- margin-top: 5px;
174
- }
175
-
176
- .result-item:hover {
177
- box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
178
- /*transform: translate(0, -5px);*/
179
- }
180
-
181
- .result-item--highlight {
182
- background-color: #1662b5;
183
- color: #fff;
184
- }
185
-
186
- .result-item__img {
187
- border-radius: 0;
188
- max-height: 150px;
189
- width: 100%;
190
- height: auto;
191
- object-fit: cover;
192
- }
193
-
194
- .result-item__footer {
195
- background-color: transparent;
196
- }
197
-
198
- .result-item__icon {
199
- display: inline-block;
200
- margin: 0 1em 0 0;
201
- opacity: 0.4;
202
- cursor: pointer;
203
- }
204
-
205
- .result-item__icon.active,
206
- .result-item__icon:hover,
207
- .result-item__icon-checkbox-label:hover {
208
- opacity: 1;
209
- color: #28a745;
210
- }
211
-
212
- .result-item__icon:last-child {
213
- margin-right: 0;
214
- }
215
-
216
- .result-item__icon-checkbox-wrap {
217
- display: inline-block;
218
- position: relative;
219
- }
220
-
221
- .result-item__icon-checkbox-label {
222
- display: inline-block;
223
- position: absolute;
224
- top: 0;
225
- left: 0;
226
- opacity: 0.4;
227
- cursor: pointer;
228
- }
229
-
230
- .result-item__icon-checkbox {
231
- visibility: hidden;
232
- }
233
-
234
- .result-item__icon-checkbox:checked ~ .result-item__icon-checkbox-label {
235
- color: #28a745;
236
- opacity: 1;
237
- }
238
-
239
- .result-item--highlight .result-item__icon.active,
240
- .result-item--highlight .result-item__icon:hover,
241
- .result-item--highlight .result-item__icon-checkbox-label:hover,
242
- .result-item--highlight
243
- .result-item__icon-checkbox:checked
244
- ~ .result-item__icon-checkbox-label {
245
- color: #fff;
246
- }
247
-
248
- .search-result__btn-more {
249
- display: none;
250
- width: 100%;
251
- margin: 2em 0;
252
- min-height: 40px;
253
- }
254
-
255
- .mass-message__trigger-wrap {
256
- position: fixed;
257
- right: 5%;
258
- opacity: 0;
259
- bottom: 0;
260
- cursor: pointer;
261
- transition: all 0.2s ease-in-out;
262
- }
263
-
264
- .mass-message__trigger-wrap.show {
265
- bottom: 100px;
266
- opacity: 1;
267
- }
268
-
269
- .mass-message__trigger {
270
- display: flex;
271
- justify-content: center;
272
- border-radius: 50%;
273
- background-color: #28a745;
274
- width: 50px;
275
- height: 50px;
276
- position: relative;
277
- transition: all 0.2s ease-in-out;
278
- }
279
-
280
- .mass-message__trigger:hover {
281
- background-color: #218838;
282
- }
283
-
284
- .mass-message__trigger-icon {
285
- align-self: center;
286
- color: #fff;
287
- font-size: 1.5rem;
288
- }
289
-
290
- .message-modal {
291
- display: flex;
292
- height: 100%;
293
- width: 100%;
294
- margin: 0 auto;
295
- }
296
-
297
- .message-modal__content {
298
- align-self: center;
299
- width: 100%;
300
- height: 100%;
301
- border-radius: 0;
302
- border: none;
303
- }
304
-
305
- .message-modal__content-success {
306
- text-align: center;
307
- }
308
-
309
- .message-modal__icon-success {
310
- font-size: 50px;
311
- color: green;
312
- }
313
-
314
- @keyframes spin {
315
- to {
316
- transform: rotate(360deg);
317
- }
318
- }
319
-
320
- .spinner {
321
- display: inline-block;
322
- position: relative;
323
- width: 30px;
324
- height: 30px;
325
- margin: 0 auto;
326
- }
327
-
328
- .spinner:before {
329
- content: "";
330
- box-sizing: border-box;
331
- position: absolute;
332
- top: 50%;
333
- left: 50%;
334
- width: 30px;
335
- height: 30px;
336
- margin-top: -15px;
337
- margin-left: -15px;
338
- border-radius: 50%;
339
- border: 1px solid transparent;
340
- border-top-color: #218838;
341
- animation: spin 0.6s linear infinite;
342
- }
343
-
344
- .spinner--search {
345
- display: none;
346
- }
347
-
348
- .spinner--search:before {
349
- border: 2px solid transparent;
350
- border-top-color: #fff;
351
- }
352
-
353
- @media (min-width: 576px) {
354
- .container {
355
- max-width: 100%;
356
- }
357
- .card-columns {
358
- -webkit-column-count: 3;
359
- column-count: 3;
360
- -webkit-column-gap: 1.25rem;
361
- column-gap: 1.25rem;
362
- }
363
- .message-modal__content {
364
- align-self: center;
365
- width: 100%;
366
- height: auto;
367
- }
368
- }
369
-
370
- @media (min-width: 1200px) {
371
- .container {
372
- max-width: 1140px;
373
- }
374
- }
375
-
376
- @media (min-width: 992px) {
377
- .card-columns {
378
- -webkit-column-count: 4;
379
- column-count: 4;
380
- }
381
- }
382
-
383
- @media (min-width: 1200px) {
384
- }
385
-
386
- @media (min-width: 1800px) {
387
- .mass-message__trigger-wrap {
388
- right: 18%;
389
- }
390
- }
1
+ /* Sticky footer styles
2
+ -------------------------------------------------- */
3
+
4
+ html {
5
+ position: relative;
6
+ min-height: 100%;
7
+ }
8
+
9
+ body {
10
+ /* Margin bottom by footer height */
11
+ margin-bottom: 60px;
12
+ }
13
+
14
+ button {
15
+ cursor: pointer;
16
+ }
17
+
18
+ .footer {
19
+ position: absolute;
20
+ bottom: 0;
21
+ width: 100%;
22
+ /* Set the fixed height of the footer here */
23
+ height: 60px;
24
+ line-height: 60px;
25
+ }
26
+ /* page styles
27
+ -------------------------------------------------- */
28
+
29
+ body {
30
+ padding-top: 3.5rem;
31
+ background-color: #f4f4f4;
32
+ margin-bottom: 60px;
33
+ }
34
+
35
+ .footer {
36
+ background-color: #2c2134;
37
+ color: rgba(255, 255, 255, 0.7);
38
+ }
39
+
40
+ .bg-dark {
41
+ background-color: #2c2134 !important;
42
+ }
43
+
44
+ .jumbotron {
45
+ margin-bottom: 0;
46
+ }
47
+
48
+ .hero {
49
+ background-color: #bfb9a5;
50
+ color: #fff;
51
+ border-radius: 0;
52
+ padding: 1rem 0;
53
+ }
54
+
55
+ .section-title {
56
+ text-align: center;
57
+ padding: 2em 0;
58
+ margin: 0;
59
+ }
60
+ /* search bar component styles
61
+ -------------------------------------------------- */
62
+
63
+ .search-bar {
64
+ padding: 4em 0;
65
+ background-color: #fff;
66
+ }
67
+
68
+ .search-bar .form-control {
69
+ border: none;
70
+ border-radius: 0;
71
+ font-size: 1.5rem;
72
+ line-height: 1.5;
73
+ background-color: transparent;
74
+ border-bottom: 1px solid #ccc;
75
+ color: #222;
76
+ transition: all 0.5s ease-in-out;
77
+ }
78
+
79
+ .search-bar .form-control:invalid ~ .search-bar__label,
80
+ .search-bar .search-bar__label {
81
+ position: absolute;
82
+ top: 0;
83
+ color: #666;
84
+ line-height: 1.5;
85
+ padding-left: 12px;
86
+ transform: translate3d(0, 0, 0);
87
+ transition: all 0.2s ease-in-out;
88
+ }
89
+
90
+ .search-bar .search-bar__label {
91
+ font-size: 1.5rem;
92
+ }
93
+
94
+ .search-bar .search-bar__label--large {
95
+ font-size: 2rem;
96
+ }
97
+
98
+ .search-bar .form-control:valid ~ .search-bar__label,
99
+ .search-bar .form-control:focus ~ .search-bar__label {
100
+ font-size: 0.8rem;
101
+ line-height: normal;
102
+ opacity: 0.5;
103
+ transform: translate3d(0, -10px, 0);
104
+ }
105
+
106
+ .search-bar .search-bar__focus-bar {
107
+ display: block;
108
+ position: absolute;
109
+ bottom: 0;
110
+ left: 50%;
111
+ height: 1px;
112
+ width: 0;
113
+ background-color: rgba(255, 255, 255, 0);
114
+ transition: all 0.5s ease-in-out;
115
+ z-index: 4;
116
+ }
117
+
118
+ .search-bar .form-control:focus ~ .search-bar__focus-bar {
119
+ width: 100%;
120
+ left: 0;
121
+ background-color: #28a745;
122
+ }
123
+
124
+ .search-bar .search-bar__map-marker {
125
+ align-self: center;
126
+ margin-top: 10px;
127
+ }
128
+
129
+ .search-bar .search-bar__btn {
130
+ width: 100%;
131
+ height: 100%;
132
+ font-size: 1.5rem;
133
+ cursor: pointer;
134
+ }
135
+
136
+ .twitter-typeahead {
137
+ display: block !important;
138
+ }
139
+
140
+ #scrollable-dropdown-menu .tt-dropdown-menu {
141
+ max-height: 150px;
142
+ overflow-y: auto;
143
+ }
144
+
145
+ .tt-menu {
146
+ width: 100%;
147
+ background-color: #fff;
148
+ padding: 0.5rem 0.75rem;
149
+ color: #999;
150
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
151
+ transition: all 0.2s ease;
152
+ }
153
+
154
+ .tt-suggestion {
155
+ padding: 0.2em 0;
156
+ }
157
+
158
+ .tt-suggestion:hover,
159
+ .tt-cursor {
160
+ color: #28a745;
161
+ text-decoration: underline;
162
+ }
163
+ /* search result component styles
164
+ -------------------------------------------------- */
165
+
166
+ .search-result {
167
+ padding-bottom: 4em;
168
+ }
169
+
170
+ .result-item {
171
+ border-radius: 0;
172
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
173
+ transition: all 0.2s ease;
174
+ margin-top: 5px;
175
+ }
176
+
177
+ .result-item:hover {
178
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
179
+ /*transform: translate(0, -5px);*/
180
+ }
181
+
182
+ .result-item--highlight {
183
+ background-color: #1662b5;
184
+ color: #fff;
185
+ }
186
+
187
+ .result-item__img {
188
+ border-radius: 0;
189
+ max-height: 150px;
190
+ width: 100%;
191
+ height: auto;
192
+ object-fit: cover;
193
+ }
194
+
195
+ .result-item__footer {
196
+ background-color: transparent;
197
+ }
198
+
199
+ .result-item__icon {
200
+ display: inline-block;
201
+ margin: 0 1em 0 0;
202
+ opacity: 0.4;
203
+ cursor: pointer;
204
+ }
205
+
206
+ .result-item__icon.active,
207
+ .result-item__icon:hover,
208
+ .result-item__icon-checkbox-label:hover {
209
+ opacity: 1;
210
+ color: #28a745;
211
+ }
212
+
213
+ .result-item__icon:last-child {
214
+ margin-right: 0;
215
+ }
216
+
217
+ .result-item__icon-checkbox-wrap {
218
+ display: inline-block;
219
+ position: relative;
220
+ }
221
+
222
+ .result-item__icon-checkbox-label {
223
+ display: inline-block;
224
+ position: absolute;
225
+ top: 0;
226
+ left: 0;
227
+ opacity: 0.4;
228
+ cursor: pointer;
229
+ }
230
+
231
+ .result-item__icon-checkbox {
232
+ visibility: hidden;
233
+ }
234
+
235
+ .result-item__icon-checkbox:checked ~ .result-item__icon-checkbox-label {
236
+ color: #28a745;
237
+ opacity: 1;
238
+ }
239
+
240
+ .result-item--highlight .result-item__icon.active,
241
+ .result-item--highlight .result-item__icon:hover,
242
+ .result-item--highlight .result-item__icon-checkbox-label:hover,
243
+ .result-item--highlight
244
+ .result-item__icon-checkbox:checked
245
+ ~ .result-item__icon-checkbox-label {
246
+ color: #fff;
247
+ }
248
+
249
+ .search-result__btn-more {
250
+ display: none;
251
+ width: 100%;
252
+ margin: 2em 0;
253
+ min-height: 40px;
254
+ }
255
+
256
+ .mass-message__trigger-wrap {
257
+ position: fixed;
258
+ right: 5%;
259
+ opacity: 0;
260
+ bottom: 0;
261
+ cursor: pointer;
262
+ transition: all 0.2s ease-in-out;
263
+ }
264
+
265
+ .mass-message__trigger-wrap.show {
266
+ bottom: 100px;
267
+ opacity: 1;
268
+ }
269
+
270
+ .mass-message__trigger {
271
+ display: flex;
272
+ justify-content: center;
273
+ border-radius: 50%;
274
+ background-color: #28a745;
275
+ width: 50px;
276
+ height: 50px;
277
+ position: relative;
278
+ transition: all 0.2s ease-in-out;
279
+ }
280
+
281
+ .mass-message__trigger:hover {
282
+ background-color: #218838;
283
+ }
284
+
285
+ .mass-message__trigger-icon {
286
+ align-self: center;
287
+ color: #fff;
288
+ font-size: 1.5rem;
289
+ }
290
+
291
+ .message-modal {
292
+ display: flex;
293
+ height: 100%;
294
+ width: 100%;
295
+ margin: 0 auto;
296
+ }
297
+
298
+ .message-modal__content {
299
+ align-self: center;
300
+ width: 100%;
301
+ height: 100%;
302
+ border-radius: 0;
303
+ border: none;
304
+ }
305
+
306
+ .message-modal__content-success {
307
+ text-align: center;
308
+ }
309
+
310
+ .message-modal__icon-success {
311
+ font-size: 50px;
312
+ color: green;
313
+ }
314
+
315
+ @keyframes spin {
316
+ to {
317
+ transform: rotate(360deg);
318
+ }
319
+ }
320
+
321
+ .spinner {
322
+ display: inline-block;
323
+ position: relative;
324
+ width: 30px;
325
+ height: 30px;
326
+ margin: 0 auto;
327
+ }
328
+
329
+ .spinner:before {
330
+ content: "";
331
+ box-sizing: border-box;
332
+ position: absolute;
333
+ top: 50%;
334
+ left: 50%;
335
+ width: 30px;
336
+ height: 30px;
337
+ margin-top: -15px;
338
+ margin-left: -15px;
339
+ border-radius: 50%;
340
+ border: 1px solid transparent;
341
+ border-top-color: #218838;
342
+ animation: spin 0.6s linear infinite;
343
+ }
344
+
345
+ .spinner--search {
346
+ display: none;
347
+ }
348
+
349
+ .spinner--search:before {
350
+ border: 2px solid transparent;
351
+ border-top-color: #fff;
352
+ }
353
+
354
+ @media (min-width: 576px) {
355
+ .container {
356
+ max-width: 100%;
357
+ }
358
+ .message-modal__content {
359
+ align-self: center;
360
+ width: 100%;
361
+ height: auto;
362
+ }
363
+ }
364
+
365
+ @media (min-width: 1200px) {
366
+ .container {
367
+ max-width: 1140px;
368
+ }
369
+ }
370
+
371
+ @media (min-width: 1200px) {
372
+ }
373
+
374
+ @media (min-width: 1800px) {
375
+ .mass-message__trigger-wrap {
376
+ right: 18%;
377
+ }
378
+ }