(self)
| 1208 | ) |
| 1209 | |
| 1210 | def _generate_scripts_html(self) -> str: |
| 1211 | # Dash renderer has dependencies like React which need to be rendered |
| 1212 | # before every other script. However, the dash renderer bundle |
| 1213 | # itself needs to be rendered after all of the component's |
| 1214 | # scripts have rendered. |
| 1215 | # The rest of the scripts can just be loaded after React but before |
| 1216 | # dash renderer. |
| 1217 | # pylint: disable=protected-access |
| 1218 | |
| 1219 | mode = "dev" if self._dev_tools["props_check"] is True else "prod" |
| 1220 | |
| 1221 | deps = [ |
| 1222 | { |
| 1223 | key: value[mode] if isinstance(value, dict) else value |
| 1224 | for key, value in js_dist_dependency.items() |
| 1225 | } |
| 1226 | for js_dist_dependency in _dash_renderer._js_dist_dependencies |
| 1227 | ] |
| 1228 | dev = self._dev_tools.serve_dev_bundles |
| 1229 | srcs = ( |
| 1230 | self._collect_and_register_resources( |
| 1231 | self.scripts._resources._filter_resources(deps, dev_bundles=dev) # type: ignore[reportArgumentType] |
| 1232 | ) |
| 1233 | + self.config.external_scripts |
| 1234 | + self._collect_and_register_resources( |
| 1235 | self.scripts.get_all_scripts(dev_bundles=dev) |
| 1236 | + self.scripts._resources._filter_resources( |
| 1237 | _dash_renderer._js_dist, dev_bundles=dev |
| 1238 | ) |
| 1239 | + self.scripts._resources._filter_resources( |
| 1240 | dcc._js_dist, dev_bundles=dev |
| 1241 | ) |
| 1242 | + self.scripts._resources._filter_resources( |
| 1243 | html._js_dist, dev_bundles=dev |
| 1244 | ) |
| 1245 | + self.scripts._resources._filter_resources( |
| 1246 | dash_table._js_dist, dev_bundles=dev # type: ignore |
| 1247 | ) |
| 1248 | + self.scripts._resources._filter_resources( |
| 1249 | self._hooks.hooks._js_dist, dev_bundles=dev |
| 1250 | ) |
| 1251 | ) |
| 1252 | ) |
| 1253 | |
| 1254 | self._inline_scripts.extend(_callback.GLOBAL_INLINE_SCRIPTS) |
| 1255 | _callback.GLOBAL_INLINE_SCRIPTS.clear() |
| 1256 | |
| 1257 | return "\n".join( |
| 1258 | [ |
| 1259 | ( |
| 1260 | format_tag("script", src) |
| 1261 | if isinstance(src, dict) |
| 1262 | else f'<script src="{src}"></script>' |
| 1263 | ) |
| 1264 | for src in srcs |
| 1265 | ] |
| 1266 | + [f"<script>{src}</script>" for src in self._inline_scripts] |
| 1267 | ) |
no test coverage detected