diff --git a/.eslintrc.js b/.eslintrc.js index cc589c7..4c82aca 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -30,6 +30,7 @@ module.exports = { 'error', { allowModules: [ + 'resolve', 'postcss-import', 'postcss-preset-env', 'postcss-each', diff --git a/addon/components/checkbox.hbs b/addon/components/checkbox.hbs index 92b180d..7c2c593 100644 --- a/addon/components/checkbox.hbs +++ b/addon/components/checkbox.hbs @@ -1,5 +1,5 @@ {{#if this.visible}} -
+
- +
{{#if (has-block)}} {{yield}} {{else}} @@ -9,5 +9,5 @@
{{@exampleText}}
{{/if}} {{/if}} - +
\ No newline at end of file diff --git a/addon/components/table/cell/checkbox.hbs b/addon/components/table/cell/checkbox.hbs index 98c5cd9..c0ee579 100644 --- a/addon/components/table/cell/checkbox.hbs +++ b/addon/components/table/cell/checkbox.hbs @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/addon/components/table/cell/checkbox.js b/addon/components/table/cell/checkbox.js index 3bbf454..01e23ee 100644 --- a/addon/components/table/cell/checkbox.js +++ b/addon/components/table/cell/checkbox.js @@ -26,6 +26,17 @@ export default class TableCellCheckboxComponent extends Component { */ @tracked checked = false; + /** + * Creates an instance of TableCellCheckboxComponent. + * @param {ApplicationInstance} owner + * @param {...Arguments} { value = false } + * @memberof TableCellCheckboxComponent + */ + constructor(owner, { value = false }) { + super(...arguments); + this.checked = value; + } + /** * Toggles the checkbox and sends up an action * @@ -52,4 +63,15 @@ export default class TableCellCheckboxComponent extends Component { onToggle(checked, row); } } + + /** + * Track when the value argument changes + * + * @param {HTMLElement} el + * @param {Array} [value = false] + * @memberof TableCellCheckboxComponent + */ + @action trackValue(el, [value = false]) { + this.checked = value; + } } diff --git a/addon/components/table/cell/vehicle-name.hbs b/addon/components/table/cell/vehicle-name.hbs index d4d29b2..088424c 100644 --- a/addon/components/table/cell/vehicle-name.hbs +++ b/addon/components/table/cell/vehicle-name.hbs @@ -4,7 +4,7 @@ @fallbackSrc={{config "defaultValues.vehicleAvatar"}} data-vehicle={{@row.id}} alt={{this.altText}} - class="w-6 h-6 rounded-md {{if @column.hasOnline 'mx-2' 'mr-2'}}" + class="w-5 h-5 rounded-md {{if @column.hasOnline 'mx-2' 'mr-2'}}" /> @@ -18,6 +18,6 @@ {{#if @column.showOnlineIndicator}} - + {{/if}}
\ No newline at end of file diff --git a/addon/utils/load-assets.js b/addon/utils/load-assets.js new file mode 100644 index 0000000..ce07383 --- /dev/null +++ b/addon/utils/load-assets.js @@ -0,0 +1,42 @@ +import { later } from '@ember/runloop'; + +export default function loadAssets(assets = { basePath: '', scripts: [], stylesheets: [], globalIndicatorKey: null }) { + // Set global indicator key if applicable + if (assets.globalIndicatorKey && typeof assets.globalIndicatorKey === 'string') { + window[assets.globalIndicatorKey] = false; + } + + // Prepare base path + const path = `/${assets.basePath ? assets.basePath + '/' : ''}`; + + // Define exports on window + const exportsScript = document.createElement('script'); + exportsScript.innerHTML = 'window.exports = window.exports || {};'; + document.body.appendChild(exportsScript); + + // Insert scripts + for (let i = 0; i < assets.scripts.length; i++) { + const script = document.createElement('script'); + script.src = path + assets.scripts[i]; + document.body.appendChild(script); + } + + // Insert stylesheets + for (let i = 0; i < assets.stylesheets.length; i++) { + const link = document.createElement('link'); + link.rel = 'stylesheet'; + link.href = path + assets.stylesheets[i]; + document.body.appendChild(link); + } + + // Update global indicator key + later( + this, + () => { + if (assets.globalIndicatorKey && typeof assets.globalIndicatorKey === 'string') { + window[assets.globalIndicatorKey] = true; + } + }, + 300 + ); +} diff --git a/addon/utils/load-leaflet-plugins.js b/addon/utils/load-leaflet-plugins.js new file mode 100644 index 0000000..87f087e --- /dev/null +++ b/addon/utils/load-leaflet-plugins.js @@ -0,0 +1,6 @@ +import loadAssets from './load-assets'; + +export default function loadLeafletPlugins(assets = { basePath: null, scripts: [], stylesheets: [], globalIndicatorKey: null }) { + const basePath = assets.basePath ?? 'engines-dist/leaflet'; + loadAssets({ basePath, ...assets }); +} diff --git a/app/utils/load-assets.js b/app/utils/load-assets.js new file mode 100644 index 0000000..b89168b --- /dev/null +++ b/app/utils/load-assets.js @@ -0,0 +1 @@ +export { default } from '@fleetbase/ember-ui/utils/load-assets'; diff --git a/app/utils/load-leaflet-plugins.js b/app/utils/load-leaflet-plugins.js new file mode 100644 index 0000000..a1d26d0 --- /dev/null +++ b/app/utils/load-leaflet-plugins.js @@ -0,0 +1 @@ +export { default } from '@fleetbase/ember-ui/utils/load-leaflet-plugins'; diff --git a/index.js b/index.js index cf72c25..88ed103 100644 --- a/index.js +++ b/index.js @@ -2,6 +2,7 @@ const { name } = require('./package'); const Funnel = require('broccoli-funnel'); const MergeTrees = require('broccoli-merge-trees'); +const resolve = require('resolve'); const path = require('path'); const postcssImport = require('postcss-import'); const postcssPresetEnv = require('postcss-preset-env'); @@ -60,12 +61,40 @@ module.exports = { this.import('node_modules/intl-tel-input/build/css/intlTelInput.min.css'); }, - treeForPublic: function () { - const publicTree = this._super.treeForPublic.apply(this, arguments); + treeForLeaflet: function () { + const trees = []; + const leafletImagesPath = path.join(this.pathBase('leaflet'), 'dist', 'images'); + const alwaysExclude = ['LICENSE', 'package.json', 'example.html']; + const leafletAddons = [{ package: 'leaflet', include: ['leaflet-src.js'], exclude: [...alwaysExclude], path: ['dist'] }]; + + for (let i = 0; i < leafletAddons.length; i++) { + const leafletAdddon = leafletAddons[i]; + const leafletAddonDist = path.join(this.pathBase(leafletAdddon.package), ...leafletAdddon.path); - // Use a Funnel to copy the `utils.js` file to `assets/libphonenumber` + trees.push( + new Funnel(leafletAddonDist, { + destDir: 'leaflet', + include: leafletAdddon.include, + exclude: leafletAdddon.exclude, + getDestinationPath: leafletAdddon.getDestinationPath, + }) + ); + } + + trees.push( + new Funnel(leafletImagesPath, { + srcDir: '/', + destDir: '/leaflet-images', + allowEmpty: true, + }) + ); + + return trees; + }, + + treeForIntlTelInput: function () { const intlTelInputPath = path.dirname(require.resolve('intl-tel-input')).replace(/build\/js$/, ''); - const addonTree = [ + const trees = [ new Funnel(`${intlTelInputPath}/build/js`, { include: ['utils.js'], destDir: 'assets/libphonenumber', @@ -82,10 +111,27 @@ module.exports = { }), ]; - // Merge the addon tree with the existing tree + return trees; + }, + + mergeWithPublicTree: function (publicTree) { + const intlTelInputTree = this.treeForIntlTelInput(); + const leafletTree = this.treeForLeaflet(); + const addonTree = [...intlTelInputTree, ...leafletTree]; + return publicTree ? new MergeTrees([publicTree, ...addonTree], { overwrite: true }) : new MergeTrees([...addonTree], { overwrite: true }); }, + treeForPublic: function () { + const publicTree = this._super.treeForPublic.apply(this, arguments); + + return this.mergeWithPublicTree(publicTree); + }, + + pathBase(packageName) { + return path.dirname(resolve.sync(packageName + '/package.json', { basedir: __dirname })); + }, + isDevelopingAddon: function () { return true; }, diff --git a/package.json b/package.json index f165afb..45ec9af 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@fleetbase/ember-ui", - "version": "0.2.26", + "version": "0.2.27", "description": "Fleetbase UI provides all the interface components, helpers, services and utilities for building a Fleetbase extension into the Console.", "keywords": [ "fleetbase-ui", @@ -91,6 +91,7 @@ "ember-get-config": "^2.1.1", "ember-gridstack": "^4.0.0", "ember-inflector": "^4.0.2", + "ember-leaflet": "^5.1.3", "ember-loading": "^2.0.0", "ember-math-helpers": "^4.0.0", "ember-modifier": "^4.1.0", @@ -106,6 +107,7 @@ "gridstack": "^7.3.0", "imask": "^6.4.3", "intl-tel-input": "^22.0.2", + "leaflet": "^1.9.4", "postcss-at-rules-variables": "^0.3.0", "postcss-conditionals-renewed": "^1.0.0", "postcss-each": "^1.1.0", @@ -152,6 +154,7 @@ "prettier": "^3.0.3", "qunit": "^2.20.0", "qunit-dom": "^2.0.0", + "resolve": "^1.22.8", "stylelint": "^15.11.0", "stylelint-config-standard": "^34.0.0", "stylelint-prettier": "^4.0.2", @@ -186,7 +189,8 @@ }, "pnpm": { "patchedDependencies": { - "ember-gridstack@4.0.0": "patches/ember-gridstack@4.0.0.patch" + "ember-gridstack@4.0.0": "patches/ember-gridstack@4.0.0.patch", + "ember-leaflet@5.1.3": "patches/ember-leaflet@5.1.3.patch" } } } diff --git a/patches/ember-leaflet@5.1.3.patch b/patches/ember-leaflet@5.1.3.patch new file mode 100644 index 0000000..069de38 --- /dev/null +++ b/patches/ember-leaflet@5.1.3.patch @@ -0,0 +1,111 @@ +diff --git a/index.js b/index.js +index 7361871adfe0b79c70a3699e38cc435f3741cb33..fe08a429d35283691de28f3dc73ef7ec8bec76cb 100644 +--- a/index.js ++++ b/index.js +@@ -1,36 +1,18 @@ +-'use strict'; +-const resolve = require('resolve'); +-const path = require('path'); +-const mergeTrees = require('broccoli-merge-trees'); +-const Funnel = require('broccoli-funnel'); +-const fastbootTransform = require('fastboot-transform'); ++'use strict' ++const resolve = require('resolve') ++const path = require('path') ++const mergeTrees = require('broccoli-merge-trees') ++const Funnel = require('broccoli-funnel') ++const fastbootTransform = require('fastboot-transform') + + module.exports = { + name: require('./package').name, + +- treeForVendor() { +- let dist = path.join(this.pathBase('leaflet'), 'dist'); +- +- let leafletJs = fastbootTransform( +- new Funnel(dist, { +- files: ['leaflet-src.js'], +- destDir: 'leaflet' +- }) +- ); +- +- let leafletFiles = new Funnel(dist, { +- exclude: ['leaflet.js', 'leaflet-src.js', '*.html'], +- destDir: 'leaflet' +- }); +- +- return mergeTrees([leafletJs, leafletFiles]); +- }, +- +- included(app) { +- this._super.included.apply(this, arguments); ++ included (app) { ++ this._super.included.apply(this, arguments) + + // Addon options from the apps ember-cli-build.js +- let options = app.options[this.name] || {}; ++ let options = app.options[this.name] || {} + + // If the addon has the _findHost() method (in ember-cli >= 2.7.0), we'll just + // use that. +@@ -42,46 +24,22 @@ module.exports = { + // method in ember-cli. + // Keep iterating upward until we don't have a grandparent. + // Has to do this grandparent check because at some point we hit the project. +- let current = this; ++ let current = this + do { +- if (current.lazyLoading === true || (current.lazyLoading && current.lazyLoading.enabled === true)) { +- app = current; +- break; ++ if ( ++ current.lazyLoading === true || ++ (current.lazyLoading && current.lazyLoading.enabled === true) ++ ) { ++ app = current ++ break + } +- app = current.app || app; +- } while (current.parent.parent && (current = current.parent)); +- +- if (!options.excludeJS) { +- app.import('vendor/leaflet/leaflet-src.js'); +- } +- +- // Import leaflet css +- if (!options.excludeCSS) { +- app.import('vendor/leaflet/leaflet.css'); +- } +- +- // Import leaflet images +- if (!options.excludeImages) { +- let imagesDestDir = '/assets/images'; +- app.import('vendor/leaflet/images/layers-2x.png', { +- destDir: imagesDestDir +- }); +- app.import('vendor/leaflet/images/layers.png', { +- destDir: imagesDestDir +- }); +- app.import('vendor/leaflet/images/marker-icon-2x.png', { +- destDir: imagesDestDir +- }); +- app.import('vendor/leaflet/images/marker-icon.png', { +- destDir: imagesDestDir +- }); +- app.import('vendor/leaflet/images/marker-shadow.png', { +- destDir: imagesDestDir +- }); +- } ++ app = current.app || app ++ } while (current.parent.parent && (current = current.parent)) + }, + +- pathBase(packageName) { +- return path.dirname(resolve.sync(packageName + '/package.json', { basedir: __dirname })); ++ pathBase (packageName) { ++ return path.dirname( ++ resolve.sync(packageName + '/package.json', { basedir: __dirname }) ++ ) + } +-}; ++} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6b37fa9..9fe7e03 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,6 +8,9 @@ patchedDependencies: ember-gridstack@4.0.0: hash: fwahdwiexnnbxgjkolq2q4epju path: patches/ember-gridstack@4.0.0.patch + ember-leaflet@5.1.3: + hash: dno6ajw7riooqcbiwdjuvkwfhu + path: patches/ember-leaflet@5.1.3.patch importers: @@ -184,6 +187,9 @@ importers: ember-inflector: specifier: ^4.0.2 version: 4.0.3(ember-source@5.4.1(@babel/core@7.25.2)(@glimmer/component@1.1.2(@babel/core@7.25.2))(rsvp@4.8.5)(webpack@5.94.0)) + ember-leaflet: + specifier: ^5.1.3 + version: 5.1.3(patch_hash=dno6ajw7riooqcbiwdjuvkwfhu)(@babel/core@7.25.2)(ember-source@5.4.1(@babel/core@7.25.2)(@glimmer/component@1.1.2(@babel/core@7.25.2))(rsvp@4.8.5)(webpack@5.94.0))(leaflet@1.9.4)(webpack@5.94.0) ember-loading: specifier: ^2.0.0 version: 2.0.0(@babel/core@7.25.2) @@ -229,6 +235,9 @@ importers: intl-tel-input: specifier: ^22.0.2 version: 22.0.2 + leaflet: + specifier: ^1.9.4 + version: 1.9.4 postcss-at-rules-variables: specifier: ^0.3.0 version: 0.3.0(postcss@8.4.45) @@ -362,6 +371,9 @@ importers: qunit-dom: specifier: ^2.0.0 version: 2.0.0 + resolve: + specifier: ^1.22.8 + version: 1.22.8 stylelint: specifier: ^15.11.0 version: 15.11.0 @@ -3734,6 +3746,12 @@ packages: resolution: {integrity: sha512-BtkjulweiXo9c3yVWrtexw2dTmBrvavD/xixNC6TKOBdrixUwU+6nuOO9dufDWsMxoid7MvtmDpzc9+mE8PdaA==} engines: {node: 10.* || >= 12.*} + ember-composability-tools@1.3.0: + resolution: {integrity: sha512-KRIybkRlPWrymQFfW2UiDrbI6GDpXiqJLK+fxKZyaqf2Pb/vJmHShm55Bch90U2tcbG20UB4Tf+w+IpZA8Gi3w==} + engines: {node: 16.* || >= 18} + peerDependencies: + ember-source: ^3.8 || ^4.0.0 || >= 5.0.0 + ember-composable-helpers@5.0.0: resolution: {integrity: sha512-gyUrjiSju4QwNrsCLbBpP0FL6VDFZaELNW7Kbcp60xXhjvNjncYgzm4zzYXhT+i1lLA6WEgRZ3lOGgyBORYD0w==} engines: {node: 12.* || 14.* || >= 16} @@ -3829,12 +3847,23 @@ packages: peerDependencies: ember-source: ^4.0.0 + ember-in-element-polyfill@1.0.1: + resolution: {integrity: sha512-eHs+7D7PuQr8a1DPqsJTsEyo3FZ1XuH6WEZaEBPDa9s0xLlwByCNKl8hi1EbXOgvgEZNHHi9Rh0vjxyfakrlgg==} + engines: {node: 10.* || >= 12} + ember-inflector@4.0.3: resolution: {integrity: sha512-E+NnmzybMRWn1JyEfDxY7arjOTJLIcGjcXnUxizgjD4TlvO1s3O65blZt+Xq2C2AFSPeqHLC6PXd6XHYM8BxdQ==} engines: {node: 14.* || 16.* || >= 18} peerDependencies: ember-source: ^3.16.0 || ^4.0.0 || ^5.0.0 + ember-leaflet@5.1.3: + resolution: {integrity: sha512-7rzZePUCjapMzkE1SXsgSDQ28nG1w/WIMt80wf72UG4LIMHOGHibenk3naFllu1Np9wApCHxLB6x4ig8clt2Aw==} + engines: {node: 14.* || 16.* || >= 18} + peerDependencies: + ember-source: ^4.0.0 || ^5.0.0 + leaflet: '>=0.7' + ember-load-initializers@2.1.2: resolution: {integrity: sha512-CYR+U/wRxLbrfYN3dh+0Tb6mFaxJKfdyz+wNql6cqTrA0BBi9k6J3AaKXj273TqvEpyyXegQFFkZEiuZdYtgJw==} engines: {node: 6.* || 8.* || >= 10.*} @@ -3898,6 +3927,10 @@ packages: resolution: {integrity: sha512-oEUU2mDtuYuMM039U9YEqrrOCVHH6rQfvbFOmh3WxOVEgubmLVyKEpGgU4P/6j0B/JxTqqTwM3ULTQyDto8dKg==} engines: {node: 10.* || >= 12} + ember-render-helpers@0.2.0: + resolution: {integrity: sha512-MnqGS8BnY3GJ+n5RZVVRqCwKjfXXMr5quKyqNu1vxft8oslOJuZ1f1dOesQouD+6LwD4Y9tWRVKNw+LOqM9ocw==} + engines: {node: 8.* || >= 10.*} + ember-resolver@11.0.1: resolution: {integrity: sha512-ucBk3oM+PR+AfYoSUXeQh8cDQS1sSiEKp4Pcgbew5cFMSqPxJfqd1zyZsfQKNTuyubeGmWxBOyMVSTvX2LeCyg==} engines: {node: 14.* || 16.* || >= 18} @@ -5337,6 +5370,9 @@ packages: resolution: {integrity: sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==} engines: {node: '>=8'} + leaflet@1.9.4: + resolution: {integrity: sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==} + levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -6740,6 +6776,9 @@ packages: resolution: {integrity: sha512-C9hAO4eoEsX+OXA4rla66pXZQ+TLQ8T9dttgQj18yuKlPMTVkIkdYXvlMC55IuUsIkV6DpmQYi10JKFLaU+l7w==} engines: {node: '>=8'} + remote-promises@1.0.0: + resolution: {integrity: sha512-+9LztCwsGzC8VXvm9UuA3qGhLIf4HvMbbev0+A+azLLUYHm3BK4C1BWxiZa45FPQ7JdfpHi4kVT7zT5F2E0iuQ==} + remove-trailing-separator@1.1.0: resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} @@ -12615,6 +12654,23 @@ snapshots: - '@babel/core' - supports-color + ember-composability-tools@1.3.0(ember-source@5.4.1(@babel/core@7.25.2)(@glimmer/component@1.1.2(@babel/core@7.25.2))(rsvp@4.8.5)(webpack@5.94.0))(webpack@5.94.0): + dependencies: + '@babel/core': 7.25.2 + '@ember/render-modifiers': 2.1.0(@babel/core@7.25.2)(ember-source@5.4.1(@babel/core@7.25.2)(@glimmer/component@1.1.2(@babel/core@7.25.2))(rsvp@4.8.5)(webpack@5.94.0)) + '@glimmer/component': 1.1.2(@babel/core@7.25.2) + ember-auto-import: 2.7.4(webpack@5.94.0) + ember-cli-babel: 8.2.0(@babel/core@7.25.2) + ember-cli-htmlbars: 6.3.0 + ember-element-helper: 0.8.6(ember-source@5.4.1(@babel/core@7.25.2)(@glimmer/component@1.1.2(@babel/core@7.25.2))(rsvp@4.8.5)(webpack@5.94.0)) + ember-source: 5.4.1(@babel/core@7.25.2)(@glimmer/component@1.1.2(@babel/core@7.25.2))(rsvp@4.8.5)(webpack@5.94.0) + remote-promises: 1.0.0 + transitivePeerDependencies: + - '@glint/environment-ember-loose' + - '@glint/template' + - supports-color + - webpack + ember-composable-helpers@5.0.0: dependencies: '@babel/core': 7.25.2 @@ -12782,6 +12838,15 @@ snapshots: - supports-color - webpack + ember-in-element-polyfill@1.0.1: + dependencies: + debug: 4.3.7 + ember-cli-babel: 7.26.11 + ember-cli-htmlbars: 5.7.2 + ember-cli-version-checker: 5.1.2 + transitivePeerDependencies: + - supports-color + ember-inflector@4.0.3(ember-source@5.4.1(@babel/core@7.25.2)(@glimmer/component@1.1.2(@babel/core@7.25.2))(rsvp@4.8.5)(webpack@5.94.0)): dependencies: ember-cli-babel: 7.26.11 @@ -12789,6 +12854,28 @@ snapshots: transitivePeerDependencies: - supports-color + ember-leaflet@5.1.3(patch_hash=dno6ajw7riooqcbiwdjuvkwfhu)(@babel/core@7.25.2)(ember-source@5.4.1(@babel/core@7.25.2)(@glimmer/component@1.1.2(@babel/core@7.25.2))(rsvp@4.8.5)(webpack@5.94.0))(leaflet@1.9.4)(webpack@5.94.0): + dependencies: + '@glimmer/component': 1.1.2(@babel/core@7.25.2) + '@glimmer/tracking': 1.1.2 + broccoli-funnel: 3.0.8 + broccoli-merge-trees: 4.2.0 + ember-cli-babel: 7.26.11 + ember-cli-htmlbars: 6.3.0 + ember-composability-tools: 1.3.0(ember-source@5.4.1(@babel/core@7.25.2)(@glimmer/component@1.1.2(@babel/core@7.25.2))(rsvp@4.8.5)(webpack@5.94.0))(webpack@5.94.0) + ember-in-element-polyfill: 1.0.1 + ember-render-helpers: 0.2.0 + ember-source: 5.4.1(@babel/core@7.25.2)(@glimmer/component@1.1.2(@babel/core@7.25.2))(rsvp@4.8.5)(webpack@5.94.0) + fastboot-transform: 0.1.3 + leaflet: 1.9.4 + resolve: 1.22.8 + transitivePeerDependencies: + - '@babel/core' + - '@glint/environment-ember-loose' + - '@glint/template' + - supports-color + - webpack + ember-load-initializers@2.1.2(@babel/core@7.25.2): dependencies: ember-cli-babel: 7.26.11 @@ -12933,6 +13020,13 @@ snapshots: - '@babel/core' - supports-color + ember-render-helpers@0.2.0: + dependencies: + ember-cli-babel: 7.26.11 + ember-cli-typescript: 4.2.1 + transitivePeerDependencies: + - supports-color + ember-resolver@11.0.1(ember-source@5.4.1(@babel/core@7.25.2)(@glimmer/component@1.1.2(@babel/core@7.25.2))(rsvp@4.8.5)(webpack@5.94.0)): dependencies: ember-cli-babel: 7.26.11 @@ -14806,6 +14900,8 @@ snapshots: dependencies: invert-kv: 3.0.1 + leaflet@1.9.4: {} + levn@0.4.1: dependencies: prelude-ls: 1.2.1 @@ -16363,6 +16459,8 @@ snapshots: remote-git-tags@3.0.0: {} + remote-promises@1.0.0: {} + remove-trailing-separator@1.1.0: {} remove-types@1.0.0: diff --git a/tests/unit/utils/load-assets-test.js b/tests/unit/utils/load-assets-test.js new file mode 100644 index 0000000..f485963 --- /dev/null +++ b/tests/unit/utils/load-assets-test.js @@ -0,0 +1,10 @@ +// import loadAssets from 'dummy/utils/load-assets'; +import { module, test } from 'qunit'; + +module('Unit | Utility | load-assets', function () { + // TODO: Replace this with your real tests. + test('it works', function (assert) { + // let result = loadAssets(); + assert.ok(true); + }); +}); diff --git a/tests/unit/utils/load-leaflet-plugins-test.js b/tests/unit/utils/load-leaflet-plugins-test.js new file mode 100644 index 0000000..2a8c6f2 --- /dev/null +++ b/tests/unit/utils/load-leaflet-plugins-test.js @@ -0,0 +1,10 @@ +// import loadLeafletPlugins from 'dummy/utils/load-leaflet-plugins'; +import { module, test } from 'qunit'; + +module('Unit | Utility | load-leaflet-plugins', function () { + // TODO: Replace this with your real tests. + test('it works', function (assert) { + // let result = loadLeafletPlugins(); + assert.ok(true); + }); +});