├── .gitignore ├── README.md ├── mocha-webpack.opts ├── package.json ├── public ├── index-bundle.js ├── index.html ├── index.js └── superAwesomeComponent │ ├── componentStylez.sass │ ├── componentTemplate.html │ ├── fancyJsModule.js │ ├── theComponent.js │ ├── theComponent.spec.js │ └── theComponentController.js ├── webpack.config.base.js ├── webpack.config.js └── webpack.config.test.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/* 2 | .tmp/* 3 | jsdoc_output/* 4 | *-bundle.js -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # modern-angularjs-starter 2 | A base for modernized Angular 1.5+ web frontends 3 | -------------------------------------------------------------------------------- /mocha-webpack.opts: -------------------------------------------------------------------------------- 1 | --webpack-config webpack.config.test.js -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "modern-angularjs-starter", 3 | "version": "0.0.1", 4 | "description": "Base project", 5 | "main": "index.js", 6 | "scripts": { 7 | "dev": "concurrently --kill-others \"webpack-dev-server --host 0.0.0.0\" \"npm run docs\"", 8 | "docs_gen": "jsdoc -r -d jsdoc_output/ public/", 9 | "docs_watch": "watch \"npm run docs_gen\" public", 10 | "docs_serve": "echo Docs are being served on port 8082! && live-server -q --port=8082 --no-browser jsdoc_output/", 11 | "docs": "concurrently --kill-others \"npm run docs_serve\" \"npm run docs_watch\"", 12 | "postinstall": "bower install", 13 | "webpack": "webpack", 14 | "test": "mocha-webpack public/**/*.spec.js" 15 | }, 16 | "repository": { 17 | "type": "git", 18 | "url": "git+https://github.com/narthur157/modern-angularjs-starter.git" 19 | }, 20 | "keywords": [ 21 | "angularjs", 22 | "webpack", 23 | "sass", 24 | "es6", 25 | "es7", 26 | "components" 27 | ], 28 | "author": "Nick Arthur", 29 | "license": "ISC", 30 | "bugs": { 31 | "url": "https://github.com/narthur157/modern-angularjs-starter/issues" 32 | }, 33 | "homepage": "https://github.com/narthur157/modern-angularjs-starter#readme", 34 | "devDependencies": { 35 | "angular": "^1.6.4", 36 | "babel-cli": "^6.24.1", 37 | "babel-loader": "^6.4.1", 38 | "babel-plugin-add-module-exports": "^0.2.1", 39 | "babel-preset-es2015": "^6.24.1", 40 | "chai": "^3.5.0", 41 | "concurrently": "^3.4.0", 42 | "css-loader": "^0.28.0", 43 | "inject-loader": "^3.0.0", 44 | "live-server": "^1.2.0", 45 | "mocha": "^3.2.0", 46 | "mocha-webpack": "^0.7.0", 47 | "node-sass": "^4.5.2", 48 | "raw-loader": "^0.5.1", 49 | "sass-loader": "^6.0.3", 50 | "sinon": "^2.1.0", 51 | "style-loader": "^0.16.1", 52 | "watch": "^1.0.2", 53 | "webpack": "^2.3.3", 54 | "webpack-dev-server": "^2.4.2" 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /public/index-bundle.js: -------------------------------------------------------------------------------- 1 | /******/ (function(modules) { // webpackBootstrap 2 | /******/ function hotDisposeChunk(chunkId) { 3 | /******/ delete installedChunks[chunkId]; 4 | /******/ } 5 | /******/ var parentHotUpdateCallback = this["webpackHotUpdate"]; 6 | /******/ this["webpackHotUpdate"] = 7 | /******/ function webpackHotUpdateCallback(chunkId, moreModules) { // eslint-disable-line no-unused-vars 8 | /******/ hotAddUpdateChunk(chunkId, moreModules); 9 | /******/ if(parentHotUpdateCallback) parentHotUpdateCallback(chunkId, moreModules); 10 | /******/ } ; 11 | /******/ 12 | /******/ function hotDownloadUpdateChunk(chunkId) { // eslint-disable-line no-unused-vars 13 | /******/ var head = document.getElementsByTagName("head")[0]; 14 | /******/ var script = document.createElement("script"); 15 | /******/ script.type = "text/javascript"; 16 | /******/ script.charset = "utf-8"; 17 | /******/ script.src = __webpack_require__.p + "" + chunkId + "." + hotCurrentHash + ".hot-update.js"; 18 | /******/ head.appendChild(script); 19 | /******/ } 20 | /******/ 21 | /******/ function hotDownloadManifest() { // eslint-disable-line no-unused-vars 22 | /******/ return new Promise(function(resolve, reject) { 23 | /******/ if(typeof XMLHttpRequest === "undefined") 24 | /******/ return reject(new Error("No browser support")); 25 | /******/ try { 26 | /******/ var request = new XMLHttpRequest(); 27 | /******/ var requestPath = __webpack_require__.p + "" + hotCurrentHash + ".hot-update.json"; 28 | /******/ request.open("GET", requestPath, true); 29 | /******/ request.timeout = 10000; 30 | /******/ request.send(null); 31 | /******/ } catch(err) { 32 | /******/ return reject(err); 33 | /******/ } 34 | /******/ request.onreadystatechange = function() { 35 | /******/ if(request.readyState !== 4) return; 36 | /******/ if(request.status === 0) { 37 | /******/ // timeout 38 | /******/ reject(new Error("Manifest request to " + requestPath + " timed out.")); 39 | /******/ } else if(request.status === 404) { 40 | /******/ // no update available 41 | /******/ resolve(); 42 | /******/ } else if(request.status !== 200 && request.status !== 304) { 43 | /******/ // other failure 44 | /******/ reject(new Error("Manifest request to " + requestPath + " failed.")); 45 | /******/ } else { 46 | /******/ // success 47 | /******/ try { 48 | /******/ var update = JSON.parse(request.responseText); 49 | /******/ } catch(e) { 50 | /******/ reject(e); 51 | /******/ return; 52 | /******/ } 53 | /******/ resolve(update); 54 | /******/ } 55 | /******/ }; 56 | /******/ }); 57 | /******/ } 58 | /******/ 59 | /******/ 60 | /******/ 61 | /******/ var hotApplyOnUpdate = true; 62 | /******/ var hotCurrentHash = "c53bd67063ca698fea96"; // eslint-disable-line no-unused-vars 63 | /******/ var hotCurrentModuleData = {}; 64 | /******/ var hotMainModule = true; // eslint-disable-line no-unused-vars 65 | /******/ var hotCurrentParents = []; // eslint-disable-line no-unused-vars 66 | /******/ var hotCurrentParentsTemp = []; // eslint-disable-line no-unused-vars 67 | /******/ 68 | /******/ function hotCreateRequire(moduleId) { // eslint-disable-line no-unused-vars 69 | /******/ var me = installedModules[moduleId]; 70 | /******/ if(!me) return __webpack_require__; 71 | /******/ var fn = function(request) { 72 | /******/ if(me.hot.active) { 73 | /******/ if(installedModules[request]) { 74 | /******/ if(installedModules[request].parents.indexOf(moduleId) < 0) 75 | /******/ installedModules[request].parents.push(moduleId); 76 | /******/ } else hotCurrentParents = [moduleId]; 77 | /******/ if(me.children.indexOf(request) < 0) 78 | /******/ me.children.push(request); 79 | /******/ } else { 80 | /******/ console.warn("[HMR] unexpected require(" + request + ") from disposed module " + moduleId); 81 | /******/ hotCurrentParents = []; 82 | /******/ } 83 | /******/ hotMainModule = false; 84 | /******/ return __webpack_require__(request); 85 | /******/ }; 86 | /******/ var ObjectFactory = function ObjectFactory(name) { 87 | /******/ return { 88 | /******/ configurable: true, 89 | /******/ enumerable: true, 90 | /******/ get: function() { 91 | /******/ return __webpack_require__[name]; 92 | /******/ }, 93 | /******/ set: function(value) { 94 | /******/ __webpack_require__[name] = value; 95 | /******/ } 96 | /******/ }; 97 | /******/ }; 98 | /******/ for(var name in __webpack_require__) { 99 | /******/ if(Object.prototype.hasOwnProperty.call(__webpack_require__, name)) { 100 | /******/ Object.defineProperty(fn, name, ObjectFactory(name)); 101 | /******/ } 102 | /******/ } 103 | /******/ Object.defineProperty(fn, "e", { 104 | /******/ enumerable: true, 105 | /******/ value: function(chunkId) { 106 | /******/ if(hotStatus === "ready") 107 | /******/ hotSetStatus("prepare"); 108 | /******/ hotChunksLoading++; 109 | /******/ return __webpack_require__.e(chunkId).then(finishChunkLoading, function(err) { 110 | /******/ finishChunkLoading(); 111 | /******/ throw err; 112 | /******/ }); 113 | /******/ 114 | /******/ function finishChunkLoading() { 115 | /******/ hotChunksLoading--; 116 | /******/ if(hotStatus === "prepare") { 117 | /******/ if(!hotWaitingFilesMap[chunkId]) { 118 | /******/ hotEnsureUpdateChunk(chunkId); 119 | /******/ } 120 | /******/ if(hotChunksLoading === 0 && hotWaitingFiles === 0) { 121 | /******/ hotUpdateDownloaded(); 122 | /******/ } 123 | /******/ } 124 | /******/ } 125 | /******/ } 126 | /******/ }); 127 | /******/ return fn; 128 | /******/ } 129 | /******/ 130 | /******/ function hotCreateModule(moduleId) { // eslint-disable-line no-unused-vars 131 | /******/ var hot = { 132 | /******/ // private stuff 133 | /******/ _acceptedDependencies: {}, 134 | /******/ _declinedDependencies: {}, 135 | /******/ _selfAccepted: false, 136 | /******/ _selfDeclined: false, 137 | /******/ _disposeHandlers: [], 138 | /******/ _main: hotMainModule, 139 | /******/ 140 | /******/ // Module API 141 | /******/ active: true, 142 | /******/ accept: function(dep, callback) { 143 | /******/ if(typeof dep === "undefined") 144 | /******/ hot._selfAccepted = true; 145 | /******/ else if(typeof dep === "function") 146 | /******/ hot._selfAccepted = dep; 147 | /******/ else if(typeof dep === "object") 148 | /******/ for(var i = 0; i < dep.length; i++) 149 | /******/ hot._acceptedDependencies[dep[i]] = callback || function() {}; 150 | /******/ else 151 | /******/ hot._acceptedDependencies[dep] = callback || function() {}; 152 | /******/ }, 153 | /******/ decline: function(dep) { 154 | /******/ if(typeof dep === "undefined") 155 | /******/ hot._selfDeclined = true; 156 | /******/ else if(typeof dep === "object") 157 | /******/ for(var i = 0; i < dep.length; i++) 158 | /******/ hot._declinedDependencies[dep[i]] = true; 159 | /******/ else 160 | /******/ hot._declinedDependencies[dep] = true; 161 | /******/ }, 162 | /******/ dispose: function(callback) { 163 | /******/ hot._disposeHandlers.push(callback); 164 | /******/ }, 165 | /******/ addDisposeHandler: function(callback) { 166 | /******/ hot._disposeHandlers.push(callback); 167 | /******/ }, 168 | /******/ removeDisposeHandler: function(callback) { 169 | /******/ var idx = hot._disposeHandlers.indexOf(callback); 170 | /******/ if(idx >= 0) hot._disposeHandlers.splice(idx, 1); 171 | /******/ }, 172 | /******/ 173 | /******/ // Management API 174 | /******/ check: hotCheck, 175 | /******/ apply: hotApply, 176 | /******/ status: function(l) { 177 | /******/ if(!l) return hotStatus; 178 | /******/ hotStatusHandlers.push(l); 179 | /******/ }, 180 | /******/ addStatusHandler: function(l) { 181 | /******/ hotStatusHandlers.push(l); 182 | /******/ }, 183 | /******/ removeStatusHandler: function(l) { 184 | /******/ var idx = hotStatusHandlers.indexOf(l); 185 | /******/ if(idx >= 0) hotStatusHandlers.splice(idx, 1); 186 | /******/ }, 187 | /******/ 188 | /******/ //inherit from previous dispose call 189 | /******/ data: hotCurrentModuleData[moduleId] 190 | /******/ }; 191 | /******/ hotMainModule = true; 192 | /******/ return hot; 193 | /******/ } 194 | /******/ 195 | /******/ var hotStatusHandlers = []; 196 | /******/ var hotStatus = "idle"; 197 | /******/ 198 | /******/ function hotSetStatus(newStatus) { 199 | /******/ hotStatus = newStatus; 200 | /******/ for(var i = 0; i < hotStatusHandlers.length; i++) 201 | /******/ hotStatusHandlers[i].call(null, newStatus); 202 | /******/ } 203 | /******/ 204 | /******/ // while downloading 205 | /******/ var hotWaitingFiles = 0; 206 | /******/ var hotChunksLoading = 0; 207 | /******/ var hotWaitingFilesMap = {}; 208 | /******/ var hotRequestedFilesMap = {}; 209 | /******/ var hotAvailableFilesMap = {}; 210 | /******/ var hotDeferred; 211 | /******/ 212 | /******/ // The update info 213 | /******/ var hotUpdate, hotUpdateNewHash; 214 | /******/ 215 | /******/ function toModuleId(id) { 216 | /******/ var isNumber = (+id) + "" === id; 217 | /******/ return isNumber ? +id : id; 218 | /******/ } 219 | /******/ 220 | /******/ function hotCheck(apply) { 221 | /******/ if(hotStatus !== "idle") throw new Error("check() is only allowed in idle status"); 222 | /******/ hotApplyOnUpdate = apply; 223 | /******/ hotSetStatus("check"); 224 | /******/ return hotDownloadManifest().then(function(update) { 225 | /******/ if(!update) { 226 | /******/ hotSetStatus("idle"); 227 | /******/ return null; 228 | /******/ } 229 | /******/ 230 | /******/ hotRequestedFilesMap = {}; 231 | /******/ hotWaitingFilesMap = {}; 232 | /******/ hotAvailableFilesMap = update.c; 233 | /******/ hotUpdateNewHash = update.h; 234 | /******/ 235 | /******/ hotSetStatus("prepare"); 236 | /******/ var promise = new Promise(function(resolve, reject) { 237 | /******/ hotDeferred = { 238 | /******/ resolve: resolve, 239 | /******/ reject: reject 240 | /******/ }; 241 | /******/ }); 242 | /******/ hotUpdate = {}; 243 | /******/ var chunkId = 0; 244 | /******/ { // eslint-disable-line no-lone-blocks 245 | /******/ /*globals chunkId */ 246 | /******/ hotEnsureUpdateChunk(chunkId); 247 | /******/ } 248 | /******/ if(hotStatus === "prepare" && hotChunksLoading === 0 && hotWaitingFiles === 0) { 249 | /******/ hotUpdateDownloaded(); 250 | /******/ } 251 | /******/ return promise; 252 | /******/ }); 253 | /******/ } 254 | /******/ 255 | /******/ function hotAddUpdateChunk(chunkId, moreModules) { // eslint-disable-line no-unused-vars 256 | /******/ if(!hotAvailableFilesMap[chunkId] || !hotRequestedFilesMap[chunkId]) 257 | /******/ return; 258 | /******/ hotRequestedFilesMap[chunkId] = false; 259 | /******/ for(var moduleId in moreModules) { 260 | /******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) { 261 | /******/ hotUpdate[moduleId] = moreModules[moduleId]; 262 | /******/ } 263 | /******/ } 264 | /******/ if(--hotWaitingFiles === 0 && hotChunksLoading === 0) { 265 | /******/ hotUpdateDownloaded(); 266 | /******/ } 267 | /******/ } 268 | /******/ 269 | /******/ function hotEnsureUpdateChunk(chunkId) { 270 | /******/ if(!hotAvailableFilesMap[chunkId]) { 271 | /******/ hotWaitingFilesMap[chunkId] = true; 272 | /******/ } else { 273 | /******/ hotRequestedFilesMap[chunkId] = true; 274 | /******/ hotWaitingFiles++; 275 | /******/ hotDownloadUpdateChunk(chunkId); 276 | /******/ } 277 | /******/ } 278 | /******/ 279 | /******/ function hotUpdateDownloaded() { 280 | /******/ hotSetStatus("ready"); 281 | /******/ var deferred = hotDeferred; 282 | /******/ hotDeferred = null; 283 | /******/ if(!deferred) return; 284 | /******/ if(hotApplyOnUpdate) { 285 | /******/ hotApply(hotApplyOnUpdate).then(function(result) { 286 | /******/ deferred.resolve(result); 287 | /******/ }, function(err) { 288 | /******/ deferred.reject(err); 289 | /******/ }); 290 | /******/ } else { 291 | /******/ var outdatedModules = []; 292 | /******/ for(var id in hotUpdate) { 293 | /******/ if(Object.prototype.hasOwnProperty.call(hotUpdate, id)) { 294 | /******/ outdatedModules.push(toModuleId(id)); 295 | /******/ } 296 | /******/ } 297 | /******/ deferred.resolve(outdatedModules); 298 | /******/ } 299 | /******/ } 300 | /******/ 301 | /******/ function hotApply(options) { 302 | /******/ if(hotStatus !== "ready") throw new Error("apply() is only allowed in ready status"); 303 | /******/ options = options || {}; 304 | /******/ 305 | /******/ var cb; 306 | /******/ var i; 307 | /******/ var j; 308 | /******/ var module; 309 | /******/ var moduleId; 310 | /******/ 311 | /******/ function getAffectedStuff(updateModuleId) { 312 | /******/ var outdatedModules = [updateModuleId]; 313 | /******/ var outdatedDependencies = {}; 314 | /******/ 315 | /******/ var queue = outdatedModules.slice().map(function(id) { 316 | /******/ return { 317 | /******/ chain: [id], 318 | /******/ id: id 319 | /******/ }; 320 | /******/ }); 321 | /******/ while(queue.length > 0) { 322 | /******/ var queueItem = queue.pop(); 323 | /******/ var moduleId = queueItem.id; 324 | /******/ var chain = queueItem.chain; 325 | /******/ module = installedModules[moduleId]; 326 | /******/ if(!module || module.hot._selfAccepted) 327 | /******/ continue; 328 | /******/ if(module.hot._selfDeclined) { 329 | /******/ return { 330 | /******/ type: "self-declined", 331 | /******/ chain: chain, 332 | /******/ moduleId: moduleId 333 | /******/ }; 334 | /******/ } 335 | /******/ if(module.hot._main) { 336 | /******/ return { 337 | /******/ type: "unaccepted", 338 | /******/ chain: chain, 339 | /******/ moduleId: moduleId 340 | /******/ }; 341 | /******/ } 342 | /******/ for(var i = 0; i < module.parents.length; i++) { 343 | /******/ var parentId = module.parents[i]; 344 | /******/ var parent = installedModules[parentId]; 345 | /******/ if(!parent) continue; 346 | /******/ if(parent.hot._declinedDependencies[moduleId]) { 347 | /******/ return { 348 | /******/ type: "declined", 349 | /******/ chain: chain.concat([parentId]), 350 | /******/ moduleId: moduleId, 351 | /******/ parentId: parentId 352 | /******/ }; 353 | /******/ } 354 | /******/ if(outdatedModules.indexOf(parentId) >= 0) continue; 355 | /******/ if(parent.hot._acceptedDependencies[moduleId]) { 356 | /******/ if(!outdatedDependencies[parentId]) 357 | /******/ outdatedDependencies[parentId] = []; 358 | /******/ addAllToSet(outdatedDependencies[parentId], [moduleId]); 359 | /******/ continue; 360 | /******/ } 361 | /******/ delete outdatedDependencies[parentId]; 362 | /******/ outdatedModules.push(parentId); 363 | /******/ queue.push({ 364 | /******/ chain: chain.concat([parentId]), 365 | /******/ id: parentId 366 | /******/ }); 367 | /******/ } 368 | /******/ } 369 | /******/ 370 | /******/ return { 371 | /******/ type: "accepted", 372 | /******/ moduleId: updateModuleId, 373 | /******/ outdatedModules: outdatedModules, 374 | /******/ outdatedDependencies: outdatedDependencies 375 | /******/ }; 376 | /******/ } 377 | /******/ 378 | /******/ function addAllToSet(a, b) { 379 | /******/ for(var i = 0; i < b.length; i++) { 380 | /******/ var item = b[i]; 381 | /******/ if(a.indexOf(item) < 0) 382 | /******/ a.push(item); 383 | /******/ } 384 | /******/ } 385 | /******/ 386 | /******/ // at begin all updates modules are outdated 387 | /******/ // the "outdated" status can propagate to parents if they don't accept the children 388 | /******/ var outdatedDependencies = {}; 389 | /******/ var outdatedModules = []; 390 | /******/ var appliedUpdate = {}; 391 | /******/ 392 | /******/ var warnUnexpectedRequire = function warnUnexpectedRequire() { 393 | /******/ console.warn("[HMR] unexpected require(" + result.moduleId + ") to disposed module"); 394 | /******/ }; 395 | /******/ 396 | /******/ for(var id in hotUpdate) { 397 | /******/ if(Object.prototype.hasOwnProperty.call(hotUpdate, id)) { 398 | /******/ moduleId = toModuleId(id); 399 | /******/ var result; 400 | /******/ if(hotUpdate[id]) { 401 | /******/ result = getAffectedStuff(moduleId); 402 | /******/ } else { 403 | /******/ result = { 404 | /******/ type: "disposed", 405 | /******/ moduleId: id 406 | /******/ }; 407 | /******/ } 408 | /******/ var abortError = false; 409 | /******/ var doApply = false; 410 | /******/ var doDispose = false; 411 | /******/ var chainInfo = ""; 412 | /******/ if(result.chain) { 413 | /******/ chainInfo = "\nUpdate propagation: " + result.chain.join(" -> "); 414 | /******/ } 415 | /******/ switch(result.type) { 416 | /******/ case "self-declined": 417 | /******/ if(options.onDeclined) 418 | /******/ options.onDeclined(result); 419 | /******/ if(!options.ignoreDeclined) 420 | /******/ abortError = new Error("Aborted because of self decline: " + result.moduleId + chainInfo); 421 | /******/ break; 422 | /******/ case "declined": 423 | /******/ if(options.onDeclined) 424 | /******/ options.onDeclined(result); 425 | /******/ if(!options.ignoreDeclined) 426 | /******/ abortError = new Error("Aborted because of declined dependency: " + result.moduleId + " in " + result.parentId + chainInfo); 427 | /******/ break; 428 | /******/ case "unaccepted": 429 | /******/ if(options.onUnaccepted) 430 | /******/ options.onUnaccepted(result); 431 | /******/ if(!options.ignoreUnaccepted) 432 | /******/ abortError = new Error("Aborted because " + moduleId + " is not accepted" + chainInfo); 433 | /******/ break; 434 | /******/ case "accepted": 435 | /******/ if(options.onAccepted) 436 | /******/ options.onAccepted(result); 437 | /******/ doApply = true; 438 | /******/ break; 439 | /******/ case "disposed": 440 | /******/ if(options.onDisposed) 441 | /******/ options.onDisposed(result); 442 | /******/ doDispose = true; 443 | /******/ break; 444 | /******/ default: 445 | /******/ throw new Error("Unexception type " + result.type); 446 | /******/ } 447 | /******/ if(abortError) { 448 | /******/ hotSetStatus("abort"); 449 | /******/ return Promise.reject(abortError); 450 | /******/ } 451 | /******/ if(doApply) { 452 | /******/ appliedUpdate[moduleId] = hotUpdate[moduleId]; 453 | /******/ addAllToSet(outdatedModules, result.outdatedModules); 454 | /******/ for(moduleId in result.outdatedDependencies) { 455 | /******/ if(Object.prototype.hasOwnProperty.call(result.outdatedDependencies, moduleId)) { 456 | /******/ if(!outdatedDependencies[moduleId]) 457 | /******/ outdatedDependencies[moduleId] = []; 458 | /******/ addAllToSet(outdatedDependencies[moduleId], result.outdatedDependencies[moduleId]); 459 | /******/ } 460 | /******/ } 461 | /******/ } 462 | /******/ if(doDispose) { 463 | /******/ addAllToSet(outdatedModules, [result.moduleId]); 464 | /******/ appliedUpdate[moduleId] = warnUnexpectedRequire; 465 | /******/ } 466 | /******/ } 467 | /******/ } 468 | /******/ 469 | /******/ // Store self accepted outdated modules to require them later by the module system 470 | /******/ var outdatedSelfAcceptedModules = []; 471 | /******/ for(i = 0; i < outdatedModules.length; i++) { 472 | /******/ moduleId = outdatedModules[i]; 473 | /******/ if(installedModules[moduleId] && installedModules[moduleId].hot._selfAccepted) 474 | /******/ outdatedSelfAcceptedModules.push({ 475 | /******/ module: moduleId, 476 | /******/ errorHandler: installedModules[moduleId].hot._selfAccepted 477 | /******/ }); 478 | /******/ } 479 | /******/ 480 | /******/ // Now in "dispose" phase 481 | /******/ hotSetStatus("dispose"); 482 | /******/ Object.keys(hotAvailableFilesMap).forEach(function(chunkId) { 483 | /******/ if(hotAvailableFilesMap[chunkId] === false) { 484 | /******/ hotDisposeChunk(chunkId); 485 | /******/ } 486 | /******/ }); 487 | /******/ 488 | /******/ var idx; 489 | /******/ var queue = outdatedModules.slice(); 490 | /******/ while(queue.length > 0) { 491 | /******/ moduleId = queue.pop(); 492 | /******/ module = installedModules[moduleId]; 493 | /******/ if(!module) continue; 494 | /******/ 495 | /******/ var data = {}; 496 | /******/ 497 | /******/ // Call dispose handlers 498 | /******/ var disposeHandlers = module.hot._disposeHandlers; 499 | /******/ for(j = 0; j < disposeHandlers.length; j++) { 500 | /******/ cb = disposeHandlers[j]; 501 | /******/ cb(data); 502 | /******/ } 503 | /******/ hotCurrentModuleData[moduleId] = data; 504 | /******/ 505 | /******/ // disable module (this disables requires from this module) 506 | /******/ module.hot.active = false; 507 | /******/ 508 | /******/ // remove module from cache 509 | /******/ delete installedModules[moduleId]; 510 | /******/ 511 | /******/ // remove "parents" references from all children 512 | /******/ for(j = 0; j < module.children.length; j++) { 513 | /******/ var child = installedModules[module.children[j]]; 514 | /******/ if(!child) continue; 515 | /******/ idx = child.parents.indexOf(moduleId); 516 | /******/ if(idx >= 0) { 517 | /******/ child.parents.splice(idx, 1); 518 | /******/ } 519 | /******/ } 520 | /******/ } 521 | /******/ 522 | /******/ // remove outdated dependency from module children 523 | /******/ var dependency; 524 | /******/ var moduleOutdatedDependencies; 525 | /******/ for(moduleId in outdatedDependencies) { 526 | /******/ if(Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)) { 527 | /******/ module = installedModules[moduleId]; 528 | /******/ if(module) { 529 | /******/ moduleOutdatedDependencies = outdatedDependencies[moduleId]; 530 | /******/ for(j = 0; j < moduleOutdatedDependencies.length; j++) { 531 | /******/ dependency = moduleOutdatedDependencies[j]; 532 | /******/ idx = module.children.indexOf(dependency); 533 | /******/ if(idx >= 0) module.children.splice(idx, 1); 534 | /******/ } 535 | /******/ } 536 | /******/ } 537 | /******/ } 538 | /******/ 539 | /******/ // Not in "apply" phase 540 | /******/ hotSetStatus("apply"); 541 | /******/ 542 | /******/ hotCurrentHash = hotUpdateNewHash; 543 | /******/ 544 | /******/ // insert new code 545 | /******/ for(moduleId in appliedUpdate) { 546 | /******/ if(Object.prototype.hasOwnProperty.call(appliedUpdate, moduleId)) { 547 | /******/ modules[moduleId] = appliedUpdate[moduleId]; 548 | /******/ } 549 | /******/ } 550 | /******/ 551 | /******/ // call accept handlers 552 | /******/ var error = null; 553 | /******/ for(moduleId in outdatedDependencies) { 554 | /******/ if(Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)) { 555 | /******/ module = installedModules[moduleId]; 556 | /******/ moduleOutdatedDependencies = outdatedDependencies[moduleId]; 557 | /******/ var callbacks = []; 558 | /******/ for(i = 0; i < moduleOutdatedDependencies.length; i++) { 559 | /******/ dependency = moduleOutdatedDependencies[i]; 560 | /******/ cb = module.hot._acceptedDependencies[dependency]; 561 | /******/ if(callbacks.indexOf(cb) >= 0) continue; 562 | /******/ callbacks.push(cb); 563 | /******/ } 564 | /******/ for(i = 0; i < callbacks.length; i++) { 565 | /******/ cb = callbacks[i]; 566 | /******/ try { 567 | /******/ cb(moduleOutdatedDependencies); 568 | /******/ } catch(err) { 569 | /******/ if(options.onErrored) { 570 | /******/ options.onErrored({ 571 | /******/ type: "accept-errored", 572 | /******/ moduleId: moduleId, 573 | /******/ dependencyId: moduleOutdatedDependencies[i], 574 | /******/ error: err 575 | /******/ }); 576 | /******/ } 577 | /******/ if(!options.ignoreErrored) { 578 | /******/ if(!error) 579 | /******/ error = err; 580 | /******/ } 581 | /******/ } 582 | /******/ } 583 | /******/ } 584 | /******/ } 585 | /******/ 586 | /******/ // Load self accepted modules 587 | /******/ for(i = 0; i < outdatedSelfAcceptedModules.length; i++) { 588 | /******/ var item = outdatedSelfAcceptedModules[i]; 589 | /******/ moduleId = item.module; 590 | /******/ hotCurrentParents = [moduleId]; 591 | /******/ try { 592 | /******/ __webpack_require__(moduleId); 593 | /******/ } catch(err) { 594 | /******/ if(typeof item.errorHandler === "function") { 595 | /******/ try { 596 | /******/ item.errorHandler(err); 597 | /******/ } catch(err2) { 598 | /******/ if(options.onErrored) { 599 | /******/ options.onErrored({ 600 | /******/ type: "self-accept-error-handler-errored", 601 | /******/ moduleId: moduleId, 602 | /******/ error: err2, 603 | /******/ orginalError: err 604 | /******/ }); 605 | /******/ } 606 | /******/ if(!options.ignoreErrored) { 607 | /******/ if(!error) 608 | /******/ error = err2; 609 | /******/ } 610 | /******/ if(!error) 611 | /******/ error = err; 612 | /******/ } 613 | /******/ } else { 614 | /******/ if(options.onErrored) { 615 | /******/ options.onErrored({ 616 | /******/ type: "self-accept-errored", 617 | /******/ moduleId: moduleId, 618 | /******/ error: err 619 | /******/ }); 620 | /******/ } 621 | /******/ if(!options.ignoreErrored) { 622 | /******/ if(!error) 623 | /******/ error = err; 624 | /******/ } 625 | /******/ } 626 | /******/ } 627 | /******/ } 628 | /******/ 629 | /******/ // handle errors in accept handlers and self accepted module load 630 | /******/ if(error) { 631 | /******/ hotSetStatus("fail"); 632 | /******/ return Promise.reject(error); 633 | /******/ } 634 | /******/ 635 | /******/ hotSetStatus("idle"); 636 | /******/ return Promise.resolve(outdatedModules); 637 | /******/ } 638 | /******/ 639 | /******/ // The module cache 640 | /******/ var installedModules = {}; 641 | /******/ 642 | /******/ // The require function 643 | /******/ function __webpack_require__(moduleId) { 644 | /******/ 645 | /******/ // Check if module is in cache 646 | /******/ if(installedModules[moduleId]) 647 | /******/ return installedModules[moduleId].exports; 648 | /******/ 649 | /******/ // Create a new module (and put it into the cache) 650 | /******/ var module = installedModules[moduleId] = { 651 | /******/ i: moduleId, 652 | /******/ l: false, 653 | /******/ exports: {}, 654 | /******/ hot: hotCreateModule(moduleId), 655 | /******/ parents: (hotCurrentParentsTemp = hotCurrentParents, hotCurrentParents = [], hotCurrentParentsTemp), 656 | /******/ children: [] 657 | /******/ }; 658 | /******/ 659 | /******/ // Execute the module function 660 | /******/ modules[moduleId].call(module.exports, module, module.exports, hotCreateRequire(moduleId)); 661 | /******/ 662 | /******/ // Flag the module as loaded 663 | /******/ module.l = true; 664 | /******/ 665 | /******/ // Return the exports of the module 666 | /******/ return module.exports; 667 | /******/ } 668 | /******/ 669 | /******/ 670 | /******/ // expose the modules object (__webpack_modules__) 671 | /******/ __webpack_require__.m = modules; 672 | /******/ 673 | /******/ // expose the module cache 674 | /******/ __webpack_require__.c = installedModules; 675 | /******/ 676 | /******/ // identity function for calling harmony imports with the correct context 677 | /******/ __webpack_require__.i = function(value) { return value; }; 678 | /******/ 679 | /******/ // define getter function for harmony exports 680 | /******/ __webpack_require__.d = function(exports, name, getter) { 681 | /******/ if(!__webpack_require__.o(exports, name)) { 682 | /******/ Object.defineProperty(exports, name, { 683 | /******/ configurable: false, 684 | /******/ enumerable: true, 685 | /******/ get: getter 686 | /******/ }); 687 | /******/ } 688 | /******/ }; 689 | /******/ 690 | /******/ // getDefaultExport function for compatibility with non-harmony modules 691 | /******/ __webpack_require__.n = function(module) { 692 | /******/ var getter = module && module.__esModule ? 693 | /******/ function getDefault() { return module['default']; } : 694 | /******/ function getModuleExports() { return module; }; 695 | /******/ __webpack_require__.d(getter, 'a', getter); 696 | /******/ return getter; 697 | /******/ }; 698 | /******/ 699 | /******/ // Object.prototype.hasOwnProperty.call 700 | /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; 701 | /******/ 702 | /******/ // __webpack_public_path__ 703 | /******/ __webpack_require__.p = "C:\\Users\\fractal\\modern-angularjs-starter\\src\\main\\webapp\\"; 704 | /******/ 705 | /******/ // __webpack_hash__ 706 | /******/ __webpack_require__.h = function() { return hotCurrentHash; }; 707 | /******/ 708 | /******/ // Load entry module and return exports 709 | /******/ return hotCreateRequire(0)(__webpack_require__.s = 0); 710 | /******/ }) 711 | /************************************************************************/ 712 | /******/ ([ 713 | /* 0 */ 714 | /* unknown exports provided */ 715 | /* all exports used */ 716 | /*!*************************!*\ 717 | !*** ./public/index.js ***! 718 | \*************************/ 719 | /***/ (function(module, exports) { 720 | 721 | eval("\n\n//////////////////\n// WEBPACK FOOTER\n// ./public/index.js\n// module id = 0\n// module chunks = 0\n\n//# sourceURL=webpack:///./public/index.js?"); 722 | 723 | /***/ }) 724 | /******/ ]); -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |A variable on the controller above the components: {{IndexCtrl.fancyValue}}
6 | 7 |