diff --git a/modules/examples/e2e_test/routing/routing_spec.dart b/modules/examples/e2e_test/routing/routing_spec.dart new file mode 100644 index 0000000000..a5e5988946 --- /dev/null +++ b/modules/examples/e2e_test/routing/routing_spec.dart @@ -0,0 +1,5 @@ +library examples.e2e_test.routing.routing_spec; + +main() { + +} diff --git a/modules/examples/e2e_test/routing/routing_spec.ts b/modules/examples/e2e_test/routing/routing_spec.ts new file mode 100644 index 0000000000..34d8116b51 --- /dev/null +++ b/modules/examples/e2e_test/routing/routing_spec.ts @@ -0,0 +1,77 @@ +import {verifyNoBrowserErrors} from 'angular2/src/test_lib/e2e_util'; + +function waitForElement(selector) { + var EC = (protractor).ExpectedConditions; + // Waits for the element with id 'abc' to be present on the dom. + browser.wait(EC.presenceOf($(selector)), 10000); +} + +describe('routing inbox-app', function() { + + afterEach(verifyNoBrowserErrors); + + describe('index view', function() { + var URL = 'examples/src/routing/'; + + it('should list out the current collection of items', function() { + browser.get(URL); + waitForElement('.inbox-item-record'); + expect(element.all(by.css('.inbox-item-record')).count()).toEqual(200); + }); + + it('should build a link which points to the detail page', function() { + browser.get(URL); + waitForElement('#item-15'); + expect(element(by.css('#item-15')).getAttribute('href')).toMatch(/\/detail\/15$/); + element(by.css('#item-15')).click(); + waitForElement('#record-id'); + expect(browser.getCurrentUrl()).toMatch(/\/detail\/15$/); + }); + }); + + + describe('drafts view', function() { + var URL = 'examples/src/routing/#/drafts'; + + it('should navigate to the drafts view when the drafts link is clicked', function() { + browser.get(URL); + waitForElement('.inbox-item-record'); + element(by.linkText('Drafts')).click(); + waitForElement('.page-title'); + expect(element(by.css('.page-title')).getText()).toEqual('Drafts'); + }); + + it('should navigate to email details', function() { + browser.get(URL); + element(by.linkText('Drafts')).click(); + waitForElement('.inbox-item-record'); + expect(element.all(by.css('.inbox-item-record')).count()).toEqual(2); + expect(element(by.css('#item-201')).getAttribute('href')).toMatch(/\/detail\/201$/); + element(by.css('#item-201')).click(); + waitForElement('#record-id'); + expect(browser.getCurrentUrl()).toMatch(/\/detail\/201$/); + }); + }); + + + describe('detail view', function() { + var URL = 'examples/src/routing/'; + + it('should navigate to the detail view when an email is clicked', function() { + browser.get(URL); + waitForElement('#item-10'); + element(by.css('#item-10')).click(); + waitForElement('#record-id'); + expect(element(by.css('#record-id')).getText()).toEqual('ID: 10'); + }); + + it('should navigate back to the email inbox page when the back button is clicked', function() { + browser.get(URL); + waitForElement('#item-10'); + element(by.css('#item-10')).click(); + waitForElement('.back-button'); + element(by.css('.back-button')).click(); + expect(browser.getCurrentUrl()).toMatch('/#'); + }); + }) +}); diff --git a/modules/examples/src/routing/css/app.css b/modules/examples/src/routing/css/app.css new file mode 100644 index 0000000000..42945f32a4 --- /dev/null +++ b/modules/examples/src/routing/css/app.css @@ -0,0 +1,57 @@ +body { + background:#eee; + color:black; +} + +.inbox-list, +.inbox-list li { + list-style:none; + padding:0; + margin:0; +} + +.inbox-list a { + padding:5px; + display:block; +} + +inbox, drafts, inbox-side-menu { + display:block; +} + +inbox-side-menu .link { + display:block; + text-align:center; + padding:1em; +} + +inbox-side-menu .link.active { + background:white; +} + +inbox-side-menu .link:hover { + background:#eee; +} + +inbox-side-menu { + position:fixed; + left:0; + top:0; + bottom:0; + width:200px; + background:#ddd; +} + +inbox-side-menu a { + display: block; +} + +inbox, drafts, inbox-detail { + padding:1em; + margin-left:200px; +} + +inbox-detail { + display:block; + margin-left:200px; +} diff --git a/modules/examples/src/routing/db.json b/modules/examples/src/routing/db.json new file mode 100644 index 0000000000..54339f1db0 --- /dev/null +++ b/modules/examples/src/routing/db.json @@ -0,0 +1,1819 @@ +[ + {"id":"1", + "first-name":"Montana", + "last-name":"Prosacco", + "email":"jairo.bergnaum@bergnaum.org", + "date":"1991-10-12 15:12:46 -0700", + "content":"Et quisquam veniam voluptatem enim temporibus itaque. Ipsam voluptatem et. Occaecati rerum animi.", + "subject":"Quidem quo ipsam architecto soluta numquam et" + }, + + {"id":"2", + "first-name":"Frances", + "last-name":"Schaden", + "email":"pierre_tromp@adams.com", + "date":"2001-05-06 08:22:33 -0700", + "content":"Porro ea tempore numquam deserunt voluptas qui. Est quis suscipit.", + "subject":"Voluptatibus dolore porro animi" + }, + + {"id":"3", + "first-name":"Jayne", + "last-name":"Kreiger", + "email":"breanne@howell.net", + "date":"2001-05-22 14:28:41 -0700", + "content":"Voluptas et est laborum non ullam.", + "subject":"Ratione ut illum fuga non" + }, + + {"id":"4", + "first-name":"Hester", + "last-name":"Wyman", + "email":"fausto@steuber.com", + "date":"1996-07-20 02:13:12 -0700", + "content":"Iusto enim laborum. Autem sed quas laborum deserunt quibusdam dolorem. Laboriosam nesciunt debitis possimus ut aut quae.", + "subject":"Ea quas et quia beatae dolores" + }, + + {"id":"5", + "first-name":"Alexandre", + "last-name":"Dietrich", + "email":"carmella_mante@moendibbert.biz", + "date":"2006-03-20 23:44:38 -0800", + "content":"Voluptates voluptatem dolorem non quod dolores.", + "subject":"Nostrum ad modi non consequatur repellendus et harum" + }, + + {"id":"6", + "first-name":"Ena", + "last-name":"Green", + "email":"jan_koepp@glover.name", + "date":"1988-03-21 02:00:36 -0800", + "content":"Nam inventore voluptatum eaque ratione nisi nesciunt. Qui ex qui omnis aliquid. Dolorem ipsum expedita.", + "subject":"Qui sint vero accusamus quam id vitae quis quia" + }, + + {"id":"7", + "first-name":"Rebecca", + "last-name":"Walsh", + "email":"marta@mueller.biz", + "date":"1974-05-09 02:40:20 -0700", + "content":"Voluptas vel ut. Rerum vero repellat accusantium earum. Ea atque exercitationem expedita id dolores dolorem.", + "subject":"Suscipit et inventore exercitationem ut voluptatum esse vero" + }, + + {"id":"8", + "first-name":"Jed", + "last-name":"Rogahn", + "email":"talia_crist@mertzfadel.info", + "date":"2006-10-17 01:28:46 -0700", + "content":"Cupiditate nam blanditiis.", + "subject":"Dolore nulla qui sequi ut enim sed" + }, + + {"id":"9", + "first-name":"Fabiola", + "last-name":"Olson", + "email":"henderson@casper.org", + "date":"2008-02-29 11:46:44 -0800", + "content":"Similique nesciunt omnis beatae omnis pariatur quas. Voluptatem eum consequatur id impedit fugit dignissimos ut.", + "subject":"Sit quasi accusamus aut et eum" + }, + + {"id":"10", + "first-name":"Alex", + "last-name":"Turcotte", + "email":"mya@stokes.org", + "date":"1974-03-29 12:02:53 -0700", + "content":"Ut pariatur porro maiores. Saepe soluta aspernatur est sed suscipit. Excepturi incidunt aut atque nostrum cum non.", + "subject":"Rerum dolore sunt veniam provident" + }, + + {"id":"11", + "first-name":"Jerome", + "last-name":"Greenholt", + "email":"jazmyne.dibbert@abshire.org", + "date":"1997-01-12 02:48:08 -0800", + "content":"Natus error id.", + "subject":"Rerum nemo aperiam veritatis veniam" + }, + + {"id":"12", + "first-name":"Antwan", + "last-name":"Kreiger", + "email":"delilah@dibbert.name", + "date":"1971-05-08 10:45:01 -0700", + "content":"Perspiciatis sed quo. Eum dignissimos quia expedita dolorem illum minima enim. Fugiat ducimus nostrum quia reiciendis autem nisi placeat.", + "subject":"Esse ipsum pariatur voluptatum rerum labore id odit" + }, + + {"id":"13", + "first-name":"Kyleigh", + "last-name":"Rogahn", + "email":"ralph_ledner@bartolettifay.info", + "date":"2013-11-28 16:10:15 -0800", + "content":"Molestias repudiandae dicta vel.", + "subject":"Facilis occaecati pariatur qui incidunt reprehenderit sunt" + }, + + {"id":"14", + "first-name":"Henriette", + "last-name":"Gottlieb", + "email":"adeline.rowe@lubowitz.net", + "date":"1983-02-11 06:45:49 -0800", + "content":"Eveniet ut voluptas eos ut rerum voluptatum.", + "subject":"Natus voluptas voluptatem alias" + }, + + {"id":"15", + "first-name":"Jacklyn", + "last-name":"White", + "email":"milton_keebler@braun.biz", + "date":"1992-01-07 12:27:59 -0800", + "content":"Reiciendis et aperiam. Doloremque totam repudiandae velit fuga fugiat.", + "subject":"Nulla est magnam ducimus porro commodi" + }, + + {"id":"16", + "first-name":"Charlotte", + "last-name":"Ziemann", + "email":"brett@purdymills.com", + "date":"1972-06-06 02:42:50 -0700", + "content":"Voluptatem corporis tempore. Consectetur fugit perspiciatis libero dolore consequatur asperiores. Voluptates ea accusamus.", + "subject":"Ea adipisci reiciendis excepturi suscipit necessitatibus ut sed" + }, + + {"id":"17", + "first-name":"Giovanny", + "last-name":"Runolfsdottir", + "email":"dustin.sanford@rippin.com", + "date":"1987-04-14 19:29:11 -0700", + "content":"Dolor consequuntur sed aspernatur qui. Sit cumque id animi ut sed id. Asperiores voluptatem similique voluptas.", + "subject":"Id ut voluptatum culpa molestiae quo" + }, + + {"id":"18", + "first-name":"Savion", + "last-name":"McCullough", + "email":"don@gorczanysimonis.name", + "date":"1974-01-18 14:40:40 -0700", + "content":"Autem voluptatem dignissimos vel debitis ipsum voluptatem consequuntur. Voluptatum et saepe.", + "subject":"Ipsa similique quo nostrum" + }, + + {"id":"19", + "first-name":"Robbie", + "last-name":"Kohler", + "email":"haley@waters.biz", + "date":"2002-09-28 08:35:10 -0700", + "content":"Quo ut accusantium similique necessitatibus. Sunt impedit commodi ut et odit voluptatibus error.", + "subject":"Voluptate eum quo error" + }, + + {"id":"20", + "first-name":"Eulalia", + "last-name":"Effertz", + "email":"rodrigo_parisian@bergecartwright.net", + "date":"2006-07-29 21:47:56 -0700", + "content":"Eum repudiandae rem aliquid dolorum suscipit vel. Autem vel voluptas et iure magni.", + "subject":"Est dolorum modi et error consequuntur qui" + }, + + {"id":"21", + "first-name":"Gregoria", + "last-name":"Boehm", + "email":"miles@jerde.org", + "date":"1997-04-11 19:49:38 -0700", + "content":"Qui necessitatibus veniam. Maiores impedit in natus aspernatur adipisci. Ad sapiente iste.", + "subject":"Doloribus ipsum a eius voluptatem nulla" + }, + + {"id":"22", + "first-name":"Berry", + "last-name":"Collier", + "email":"larry_rath@rathbernier.info", + "date":"1981-06-26 05:26:47 -0700", + "content":"Numquam rerum quia similique enim sequi eos inventore. Numquam inventore aliquam commodi neque maiores. Hic et vel aut velit corrupti.", + "subject":"Optio ab delectus pariatur vel tempore" + }, + + {"id":"23", + "first-name":"Crawford", + "last-name":"Ryan", + "email":"cindy_ziemann@harvey.org", + "date":"1997-06-12 07:56:32 -0700", + "content":"Odio ea nostrum molestiae. Doloribus ducimus occaecati facilis pariatur ut est.", + "subject":"Quo fugit at totam voluptate est" + }, + + {"id":"24", + "first-name":"Kelsie", + "last-name":"Stokes", + "email":"jackson_ferry@connelly.name", + "date":"1986-07-30 21:39:50 -0700", + "content":"Amet voluptatem ea nesciunt sunt. Quidem pariatur sit. Minus aliquam itaque laudantium in quibusdam laboriosam.", + "subject":"Labore voluptas dolor repellendus accusantium tempora" + }, + + {"id":"25", + "first-name":"Josefa", + "last-name":"Predovic", + "email":"moises@sauer.info", + "date":"1976-04-09 22:38:31 -0800", + "content":"Aliquam consectetur et non soluta. Quia dolore molestiae facilis eos nihil vel. Quidem eos et.", + "subject":"Qui architecto inventore alias non aut dolorum porro" + }, + + {"id":"26", + "first-name":"Toby", + "last-name":"Wehner", + "email":"janet@mohr.org", + "date":"2003-05-08 07:44:26 -0700", + "content":"Suscipit cumque alias debitis necessitatibus et qui.", + "subject":"Possimus laudantium exercitationem ut deleniti similique" + }, + + {"id":"27", + "first-name":"Keira", + "last-name":"Stamm", + "email":"karlie@witting.info", + "date":"2010-11-11 16:17:29 -0800", + "content":"Rerum cum at autem repellat quod nihil. Quasi voluptates minus autem accusantium debitis cumque qui.", + "subject":"Nostrum repudiandae voluptatum adipisci ut error sunt et sint" + }, + + {"id":"28", + "first-name":"Clark", + "last-name":"Predovic", + "email":"palma@ankundingbednar.biz", + "date":"1978-02-10 16:55:54 -0800", + "content":"Non ex aperiam porro. At harum vitae ut exercitationem qui qui. Quae sed sapiente sed debitis officiis quis unde.", + "subject":"Eos eligendi voluptatum consequatur reprehenderit" + }, + + {"id":"29", + "first-name":"Colby", + "last-name":"Jacobson", + "email":"rozella@spencer.com", + "date":"1978-01-04 00:18:51 -0800", + "content":"Molestiae laudantium voluptas ipsa est laborum vel. Dolorem et est nihil distinctio numquam.", + "subject":"Aut et sint deleniti mollitia debitis" + }, + + {"id":"30", + "first-name":"Kayley", + "last-name":"Connelly", + "email":"rowland.thiel@gutmannorn.info", + "date":"2012-12-10 09:59:08 -0800", + "content":"Eligendi quia repellat distinctio eum voluptas debitis. Totam a alias qui voluptates dolor.", + "subject":"Ipsum consequatur culpa repellat quae mollitia quia unde" + }, + + {"id":"31", + "first-name":"Kay", + "last-name":"Reynolds", + "email":"lexie.frami@beattyschoen.info", + "date":"1991-05-27 22:37:41 -0700", + "content":"Laborum quod iusto in voluptas et adipisci dolor. Totam et voluptatibus id tempora. Asperiores magnam dolorem quo iste sapiente.", + "subject":"Tempora et eligendi quia dolorem alias ullam maiores doloremque" + }, + + {"id":"32", + "first-name":"Ellsworth", + "last-name":"Veum", + "email":"estefania_hermann@murray.biz", + "date":"1974-12-07 03:43:52 -0800", + "content":"Et commodi molestiae hic distinctio et iusto. Quod illo natus unde est aut. Laborum rem rerum totam.", + "subject":"Expedita nostrum consectetur sint velit modi maxime quisquam" + }, + + {"id":"33", + "first-name":"Adeline", + "last-name":"Altenwerth", + "email":"francesco@weberstroman.com", + "date":"1988-03-25 22:52:39 -0800", + "content":"Quod deserunt eum dignissimos eius et veniam. Non exercitationem omnis molestiae corrupti aliquid commodi repudiandae.", + "subject":"Dolor incidunt debitis possimus temporibus rerum quibusdam eaque" + }, + + {"id":"34", + "first-name":"River", + "last-name":"Roob", + "email":"lester.hodkiewicz@hoppemcglynn.name", + "date":"1981-01-03 06:04:53 -0800", + "content":"Sed dolorem et laborum voluptate perspiciatis doloremque aliquam. Recusandae et odit. Sit esse consequatur occaecati fuga sed.", + "subject":"Dolorem ut quia repudiandae accusamus reprehenderit dignissimos iste cupiditate" + }, + + {"id":"35", + "first-name":"Chaya", + "last-name":"Stokes", + "email":"rebekah.baumbach@toy.org", + "date":"1979-09-03 07:52:52 -0700", + "content":"Ea voluptas minus hic omnis.", + "subject":"Ab repellendus quia eos eius" + }, + + {"id":"36", + "first-name":"Cara", + "last-name":"Brown", + "email":"natasha_gibson@bins.name", + "date":"1985-12-19 03:29:37 -0800", + "content":"Numquam nobis consectetur modi eligendi. Facere adipisci aut velit quis dolor quidem totam. Consequatur qui placeat aut molestiae dignissimos.", + "subject":"Est quia reiciendis enim et totam temporibus" + }, + + {"id":"37", + "first-name":"Laron", + "last-name":"Wunsch", + "email":"erna@heathcote.com", + "date":"2004-06-28 16:53:07 -0700", + "content":"Quisquam maxime nostrum explicabo corrupti ut. Et accusantium culpa occaecati officiis quo.", + "subject":"Et et nulla aspernatur quas distinctio" + }, + + {"id":"38", + "first-name":"Lessie", + "last-name":"Roob", + "email":"ona_olson@dicki.biz", + "date":"1980-02-10 00:18:48 -0800", + "content":"Facere veritatis aut quam praesentium ut. Consectetur praesentium explicabo consequuntur quia vel rem.", + "subject":"Tenetur ducimus mollitia consequatur dicta" + }, + + {"id":"39", + "first-name":"Felton", + "last-name":"Labadie", + "email":"stone.kihn@vonruedenbartoletti.biz", + "date":"2002-04-04 17:29:31 -0800", + "content":"Iure ad nesciunt. Excepturi impedit eum suscipit dignissimos est. Corrupti accusamus sapiente ratione eaque iure aut mollitia.", + "subject":"Sunt et eius et iusto accusamus voluptas eum" + }, + + {"id":"40", + "first-name":"Verna", + "last-name":"Hoppe", + "email":"arthur_schiller@daniel.org", + "date":"2013-05-15 16:04:25 -0700", + "content":"Veniam quia omnis at sapiente. Est est fugit eum. Impedit suscipit hic similique eum quibusdam.", + "subject":"Voluptatum ipsum libero et vitae odio dolore tenetur perspiciatis" + }, + + {"id":"41", + "first-name":"Velda", + "last-name":"Veum", + "email":"christy@feil.org", + "date":"1988-10-24 12:42:25 -0700", + "content":"Rem inventore necessitatibus iste et quia vero laudantium.", + "subject":"Suscipit similique provident officia est explicabo sed" + }, + + {"id":"42", + "first-name":"Mackenzie", + "last-name":"Schroeder", + "email":"miles.dietrich@stehrkuhic.org", + "date":"1990-01-07 22:38:09 -0800", + "content":"Non autem delectus. Architecto recusandae unde quia rerum inventore repudiandae.", + "subject":"Molestiae odio et repudiandae ut" + }, + + {"id":"43", + "first-name":"Natalie", + "last-name":"Hoeger", + "email":"gregorio_mosciski@schneiderframi.net", + "date":"1976-04-06 06:23:07 -0800", + "content":"Iste id illo cupiditate enim aut quo. Vel ut eos qui. Aut at in eum maiores voluptatem quidem.", + "subject":"Quia officiis sit sint aliquid ad quibusdam et" + }, + + {"id":"44", + "first-name":"Joan", + "last-name":"Mosciski", + "email":"thad@dickivolkman.info", + "date":"1990-12-26 15:04:40 -0800", + "content":"Culpa est officia veritatis esse.", + "subject":"Est eum ullam quo" + }, + + {"id":"45", + "first-name":"Emmitt", + "last-name":"Keeling", + "email":"cali@ferry.info", + "date":"2009-04-10 10:14:57 -0700", + "content":"Numquam velit sunt sed et ut. Laudantium qui laboriosam quibusdam qui. Odio non maxime soluta vero qui.", + "subject":"Accusantium saepe id totam aut reiciendis at esse magnam" + }, + + {"id":"46", + "first-name":"Guy", + "last-name":"Renner", + "email":"naomie_klein@streich.name", + "date":"1970-12-18 13:09:51 -0800", + "content":"Iure quia at excepturi sit consequatur.", + "subject":"Commodi aut ipsa accusantium dolor repudiandae in" + }, + + {"id":"47", + "first-name":"Eric", + "last-name":"Kihn", + "email":"dock.schmeler@langworth.biz", + "date":"1993-12-17 11:17:07 -0800", + "content":"Facere voluptate omnis qui officia dicta.", + "subject":"Incidunt a libero ab asperiores fuga ut quo illum" + }, + + {"id":"48", + "first-name":"Kraig", + "last-name":"Keeling", + "email":"alejandrin@streichwiegand.org", + "date":"1977-12-09 14:54:22 -0800", + "content":"Asperiores expedita incidunt in cum ex vel hic.", + "subject":"In illum quisquam ut est eligendi aut" + }, + + {"id":"49", + "first-name":"Justice", + "last-name":"Leuschke", + "email":"florencio@conn.info", + "date":"1991-12-14 09:38:08 -0800", + "content":"Aspernatur nesciunt voluptas sit. Cum architecto enim et blanditiis soluta dolor. Recusandae numquam occaecati esse animi et aut.", + "subject":"Quaerat voluptatibus eum sapiente iure deserunt" + }, + + {"id":"50", + "first-name":"Jodie", + "last-name":"O'Hara", + "email":"rick@stehrboehm.info", + "date":"2000-07-21 05:34:03 -0700", + "content":"Labore repudiandae dolor nostrum quo tempora eos. Natus ea fugit voluptas doloremque distinctio quaerat unde. Ut aut nostrum.", + "subject":"Tempore in quam id aliquam fuga eos dolor" + }, + + {"id":"51", + "first-name":"Dannie", + "last-name":"Vandervort", + "email":"mariana@abbottruecker.biz", + "date":"2001-09-15 19:00:54 -0700", + "content":"Consectetur dolore voluptas.", + "subject":"Tenetur possimus et fuga mollitia perferendis omnis corporis" + }, + + {"id":"52", + "first-name":"Delaney", + "last-name":"Champlin", + "email":"kyler_welch@krisrowe.biz", + "date":"2014-07-22 07:09:07 -0700", + "content":"Voluptates qui aut.", + "subject":"Quam eos laborum nisi delectus" + }, + + {"id":"53", + "first-name":"Barbara", + "last-name":"Kihn", + "email":"tyrese.casper@keebler.net", + "date":"1996-02-29 20:04:40 -0800", + "content":"Totam labore voluptatem eos qui temporibus velit.", + "subject":"Eum neque sed aut sunt" + }, + + {"id":"54", + "first-name":"Jarred", + "last-name":"Shanahan", + "email":"coralie@weinat.net", + "date":"1977-06-08 01:46:22 -0700", + "content":"Sed et voluptatum ut est quo et aut.", + "subject":"Aut eligendi voluptas mollitia et accusamus sint nemo" + }, + + {"id":"55", + "first-name":"Llewellyn", + "last-name":"Bechtelar", + "email":"kaci@jast.com", + "date":"1998-12-01 21:14:32 -0800", + "content":"Architecto eligendi et ut occaecati temporibus voluptas quia.", + "subject":"Sint quis vitae voluptatem dolor aut quo maiores quas" + }, + + {"id":"56", + "first-name":"Albertha", + "last-name":"Upton", + "email":"august@bradtkemiller.net", + "date":"2006-11-16 14:38:45 -0800", + "content":"Voluptas perspiciatis recusandae et. Sequi eum eius dicta dolorem. Alias reprehenderit explicabo doloribus exercitationem sint.", + "subject":"Quo nihil fuga dolores cumque rerum eos asperiores" + }, + + {"id":"57", + "first-name":"Christy", + "last-name":"Considine", + "email":"eliseo@veum.com", + "date":"1997-05-17 13:54:41 -0700", + "content":"Consequatur rerum laudantium distinctio magni. Iusto ullam et suscipit nemo ex velit voluptatem.", + "subject":"Ut ea quisquam libero qui repudiandae aut officia" + }, + + {"id":"58", + "first-name":"Jessica", + "last-name":"Simonis", + "email":"rickey@mertz.info", + "date":"2012-10-04 00:32:34 -0700", + "content":"Neque tenetur sunt sunt ratione. Rerum dolorem illo ab blanditiis quisquam architecto. Quidem ea exercitationem enim eos.", + "subject":"Atque quo nemo explicabo voluptas blanditiis accusantium et" + }, + + {"id":"59", + "first-name":"Justen", + "last-name":"Davis", + "email":"karen@jaskolskigleason.org", + "date":"1994-08-10 02:33:43 -0700", + "content":"Eius tenetur mollitia ad alias ab.", + "subject":"Ut accusantium sunt qui nostrum eligendi" + }, + + {"id":"60", + "first-name":"Elwin", + "last-name":"Daugherty", + "email":"milo@ko.net", + "date":"1976-06-30 05:16:38 -0700", + "content":"Sit necessitatibus minus.", + "subject":"A molestiae voluptates ducimus id est recusandae" + }, + + {"id":"61", + "first-name":"Clair", + "last-name":"Raynor", + "email":"zella.hermiston@batz.org", + "date":"1985-12-18 14:30:18 -0800", + "content":"Aut aliquid est sit pariatur voluptatem dolorum.", + "subject":"Consectetur reprehenderit temporibus vel voluptatem voluptatem et rem fuga" + }, + + {"id":"62", + "first-name":"Hilario", + "last-name":"Klein", + "email":"adrain@stark.biz", + "date":"1980-09-08 18:06:43 -0700", + "content":"Eum dolore optio quos animi.", + "subject":"Illum nihil vitae molestiae laboriosam beatae modi" + }, + + {"id":"63", + "first-name":"Greta", + "last-name":"Murray", + "email":"ethelyn@fritsch.org", + "date":"1970-05-23 02:27:54 -0700", + "content":"Quisquam animi et recusandae rem modi eos ipsa. Eaque et expedita qui animi veritatis temporibus.", + "subject":"Repellendus fuga sint nemo" + }, + + {"id":"64", + "first-name":"Anissa", + "last-name":"Adams", + "email":"edward@armstrong.com", + "date":"1997-01-26 22:21:57 -0800", + "content":"Laudantium culpa rem voluptas tempore. Sit modi dolor est sunt rem.", + "subject":"Autem unde minima quia beatae totam" + }, + + {"id":"65", + "first-name":"Kaylah", + "last-name":"Conroy", + "email":"brian.cormier@hyatt.org", + "date":"2015-02-02 07:44:37 -0800", + "content":"Voluptates vitae nulla expedita. Possimus et quo aut eum.", + "subject":"Molestiae minus enim adipisci et" + }, + + {"id":"66", + "first-name":"Jamey", + "last-name":"Ebert", + "email":"seth@pfannerstillrodriguez.name", + "date":"1987-09-29 09:40:59 -0700", + "content":"Voluptatem est quae.", + "subject":"Similique nemo placeat id tempore dolorum" + }, + + {"id":"67", + "first-name":"Johnson", + "last-name":"Mosciski", + "email":"morton@littel.net", + "date":"1989-02-14 11:15:10 -0800", + "content":"Molestias expedita exercitationem et praesentium et vel delectus. Qui fuga molestias porro.", + "subject":"Aut rerum quidem est iste in blanditiis sit" + }, + + {"id":"68", + "first-name":"Ellis", + "last-name":"O'Keefe", + "email":"taurean@ullrich.biz", + "date":"1987-03-09 11:29:05 -0800", + "content":"Facere sint doloribus qui illo autem consequatur culpa. Est quisquam enim accusantium praesentium.", + "subject":"Quis beatae quia velit deserunt est sit odit quisquam" + }, + + {"id":"69", + "first-name":"Marlen", + "last-name":"Ritchie", + "email":"rodger_schamberger@thiel.net", + "date":"1989-07-23 03:03:52 -0700", + "content":"Doloribus porro hic quis explicabo fuga veritatis vero.", + "subject":"Et doloribus est consequatur unde" + }, + + {"id":"70", + "first-name":"Maddison", + "last-name":"Kuhic", + "email":"rosetta@von.biz", + "date":"1975-06-22 10:34:58 -0700", + "content":"Sit ut eos libero error sapiente veritatis. Est dolore qui impedit recusandae quas animi rerum.", + "subject":"Quos culpa assumenda enim eius aliquid dolorum" + }, + + {"id":"71", + "first-name":"Whitney", + "last-name":"Parisian", + "email":"everardo@langworth.name", + "date":"1970-11-04 01:17:28 -0800", + "content":"Quam dolores pariatur ut possimus. Alias tenetur ex accusantium quasi. Nihil dolorem mollitia quidem.", + "subject":"Officia totam excepturi sed illum et tempore commodi sit" + }, + + {"id":"72", + "first-name":"Madyson", + "last-name":"Streich", + "email":"imani@murray.biz", + "date":"1983-07-16 11:27:34 -0700", + "content":"Veritatis molestiae id placeat dolorem consectetur a est. Est enim aut. Magnam aut distinctio quo sapiente ea est accusantium.", + "subject":"Aut sunt esse eligendi et qui ut sed" + }, + + {"id":"73", + "first-name":"Laurie", + "last-name":"Purdy", + "email":"jarrell@paucek.biz", + "date":"1992-10-18 12:48:31 -0700", + "content":"Saepe facilis est repellendus praesentium autem. Qui soluta voluptas ullam sequi. Molestias aut quibusdam.", + "subject":"Quo ullam totam sit dolores" + }, + + {"id":"74", + "first-name":"Ollie", + "last-name":"Lowe", + "email":"corene@kris.info", + "date":"1976-08-24 16:28:46 -0700", + "content":"Nostrum qui eaque aperiam possimus libero non. Quae aut enim non.", + "subject":"Optio minus aut officiis voluptates reiciendis sit dicta" + }, + + {"id":"75", + "first-name":"Ian", + "last-name":"Murray", + "email":"adelia_bernhard@maggio.com", + "date":"1982-04-08 00:25:22 -0800", + "content":"Quod dolores quibusdam nihil aut vel. Sit ab vitae necessitatibus eum.", + "subject":"Quia praesentium nam debitis nulla repellendus quos" + }, + + {"id":"76", + "first-name":"Bernard", + "last-name":"Zieme", + "email":"kaelyn.johnson@markswalsh.net", + "date":"2014-01-17 03:47:35 -0800", + "content":"Repellendus qui reiciendis quibusdam voluptatum voluptate omnis.", + "subject":"Mollitia ut omnis tempore aut debitis ratione alias illum" + }, + + {"id":"77", + "first-name":"Megane", + "last-name":"Kuvalis", + "email":"otis@donnellypouros.name", + "date":"1987-09-29 22:10:00 -0700", + "content":"Explicabo repellat qui placeat inventore velit. Tempora accusamus minima facilis dicta architecto unde. Excepturi enim eos.", + "subject":"Quam molestias amet officiis" + }, + + {"id":"78", + "first-name":"Freeman", + "last-name":"Nader", + "email":"samara_hoppe@dachcorkery.info", + "date":"2009-02-02 12:08:30 -0800", + "content":"Perferendis aut minus in.", + "subject":"Voluptates odio neque laudantium accusamus ipsa accusantium" + }, + + {"id":"79", + "first-name":"Margarita", + "last-name":"Heller", + "email":"heloise@rogahn.name", + "date":"1984-01-04 10:41:32 -0800", + "content":"Officiis voluptas omnis. Nihil consectetur id reiciendis qui nemo est.", + "subject":"Velit in molestias quo repudiandae accusamus et excepturi et" + }, + + {"id":"80", + "first-name":"Lonny", + "last-name":"Goodwin", + "email":"darian@kundebernier.info", + "date":"1999-02-08 07:00:38 -0800", + "content":"Earum provident et minima aliquam iusto sint. Sed numquam ducimus voluptatem quos enim.", + "subject":"Commodi beatae vitae aut quos dolor consequatur" + }, + + {"id":"81", + "first-name":"Jazlyn", + "last-name":"Bayer", + "email":"harvey@rempel.org", + "date":"2009-09-28 16:50:32 -0700", + "content":"Ipsum voluptas perferendis aperiam dolor.", + "subject":"Omnis inventore nobis cupiditate quas quis tenetur" + }, + + {"id":"82", + "first-name":"Jakob", + "last-name":"Conn", + "email":"rylee@vandervort.net", + "date":"2008-11-12 17:22:34 -0800", + "content":"Aut temporibus perferendis neque nulla et. Totam ab neque inventore et facere eligendi.", + "subject":"A optio ut molestiae iste et nam" + }, + + {"id":"83", + "first-name":"Mikayla", + "last-name":"Romaguera", + "email":"rebecca_moriette@stracke.net", + "date":"1986-08-09 12:39:31 -0700", + "content":"Dicta et reiciendis corrupti.", + "subject":"Neque odio voluptates aut quam" + }, + + {"id":"84", + "first-name":"Brianne", + "last-name":"West", + "email":"sheila@terry.com", + "date":"1972-04-25 22:32:20 -0800", + "content":"Nulla sit mollitia qui odit sit corrupti repudiandae. Voluptas consequuntur voluptatibus molestiae. Illo quidem nostrum odio et.", + "subject":"Deserunt voluptas et accusamus" + }, + + {"id":"85", + "first-name":"Destiny", + "last-name":"Mohr", + "email":"ernestine.waters@connellypfannerstill.com", + "date":"2012-10-30 15:02:35 -0700", + "content":"Eveniet voluptatem molestias dolores aut voluptates. Quisquam nemo ipsam dicta numquam aut temporibus.", + "subject":"Pariatur nisi facilis tempora" + }, + + {"id":"86", + "first-name":"Brooks", + "last-name":"Herman", + "email":"brendan_smith@treutel.info", + "date":"1972-04-01 17:10:07 -0800", + "content":"Qui sunt dolore molestiae minima. Suscipit ea quia a aut sunt et.", + "subject":"Magni quia perferendis possimus ipsam" + }, + + {"id":"87", + "first-name":"Celestino", + "last-name":"Dickens", + "email":"cruz.mcdermott@ziemann.org", + "date":"2007-08-14 14:55:17 -0700", + "content":"Saepe libero tenetur.", + "subject":"Molestiae nulla aut laborum placeat perferendis aliquam" + }, + + {"id":"88", + "first-name":"Angel", + "last-name":"Tillman", + "email":"shayna_baumbach@durgan.biz", + "date":"1978-08-31 01:02:14 -0700", + "content":"Libero sequi ea dolore. Numquam quia temporibus voluptatum rerum. Deserunt tenetur nesciunt veritatis debitis.", + "subject":"Occaecati quo omnis adipisci sit perspiciatis aut modi cum" + }, + + {"id":"89", + "first-name":"Verlie", + "last-name":"Tillman", + "email":"aurelia@gorczany.name", + "date":"1995-07-27 01:25:55 -0700", + "content":"Iure est veritatis qui et. Sit tempore ducimus repellat cupiditate.", + "subject":"Dolorum similique expedita praesentium quisquam quasi dolorem eligendi" + }, + + {"id":"90", + "first-name":"Cornell", + "last-name":"Padberg", + "email":"rhianna@thiel.name", + "date":"2009-12-14 14:21:13 -0800", + "content":"Ea modi consequatur. Necessitatibus sit qui voluptatem et accusantium. Cumque rerum omnis.", + "subject":"Molestiae nostrum aut officiis porro tempore" + }, + + {"id":"91", + "first-name":"Carmelo", + "last-name":"Kunde", + "email":"beulah@rolfsonschaefer.info", + "date":"2010-08-14 23:10:58 -0700", + "content":"Ut molestiae dolorem fuga in aliquam est provident.", + "subject":"Atque occaecati temporibus et autem est" + }, + + {"id":"92", + "first-name":"Jess", + "last-name":"Corwin", + "email":"korey.barrows@reillyankunding.com", + "date":"1976-11-13 05:09:16 -0800", + "content":"Commodi eveniet aspernatur earum nisi aut sit dolor. Odio vero facilis reprehenderit dolore. Provident voluptatibus atque qui assumenda quaerat.", + "subject":"Commodi laboriosam accusamus quis dolores tempora eos" + }, + + {"id":"93", + "first-name":"Hugh", + "last-name":"Hirthe", + "email":"verla.dickens@keeling.name", + "date":"1971-03-17 23:51:15 -0800", + "content":"Voluptatibus saepe dolor voluptas sed cupiditate incidunt. Magni velit ut beatae minus. Consequatur recusandae voluptas ad ex dolores modi quos.", + "subject":"Ut pariatur odit mollitia soluta eaque magnam" + }, + + {"id":"94", + "first-name":"Elsa", + "last-name":"Morissette", + "email":"otto@ohara.org", + "date":"2006-11-27 01:10:16 -0800", + "content":"Et architecto ipsam asperiores vitae quo. Fugiat error quidem facilis. Eaque officiis est veniam.", + "subject":"Autem rerum consequatur suscipit veritatis" + }, + + {"id":"95", + "first-name":"Gianni", + "last-name":"Nitzsche", + "email":"maxine.carter@schimmelfritsch.com", + "date":"2006-02-22 21:52:15 -0800", + "content":"Nam aut at esse. Adipisci tenetur in voluptas. Dolore quia nobis voluptatibus iure sit eaque fugit.", + "subject":"Et est rerum non aut eum" + }, + + {"id":"96", + "first-name":"Reed", + "last-name":"Kirlin", + "email":"keaton@gutmann.net", + "date":"2001-08-15 19:41:38 -0700", + "content":"Mollitia hic numquam dicta.", + "subject":"Est accusantium et nam dolores aliquam" + }, + + {"id":"97", + "first-name":"Thelma", + "last-name":"Labadie", + "email":"leonor@bahringer.biz", + "date":"1993-01-04 20:38:12 -0800", + "content":"Porro rerum ea similique. Vel qui est. Temporibus a distinctio dolor doloremque eos beatae.", + "subject":"Aut et quasi aut" + }, + + {"id":"98", + "first-name":"Neva", + "last-name":"Stehr", + "email":"clifton.turner@beeroconnell.name", + "date":"1983-03-21 03:23:41 -0800", + "content":"Voluptatem impedit sed minus. Incidunt ad est consequatur rerum mollitia.", + "subject":"Eum sapiente quis placeat" + }, + + {"id":"99", + "first-name":"Jovan", + "last-name":"Kunze", + "email":"grady_keler@casper.net", + "date":"1985-11-17 01:24:57 -0800", + "content":"Molestiae laboriosam quia adipisci delectus praesentium nam. Dolorum repudiandae delectus esse quis voluptatem similique. Illum tempore vitae quia minus.", + "subject":"Nihil qui repellendus animi nostrum voluptas quisquam aut minima" + }, + + {"id":"100", + "first-name":"Agustin", + "last-name":"Rowe", + "email":"roderick@cartermckenzie.name", + "date":"2013-08-15 06:42:43 -0700", + "content":"Quo eaque non laboriosam sunt. Ad aliquid laudantium quia. Aut nisi magnam.", + "subject":"Aut hic iste maiores sit" + }, + + {"id":"101", + "first-name":"Lennie", + "last-name":"Pacocha", + "email":"valentine@goldnerryan.com", + "date":"1995-11-23 15:07:48 -0800", + "content":"Provident sit voluptate odio qui. Est consequatur nobis. Quibusdam exercitationem ducimus aspernatur.", + "subject":"Perferendis adipisci necessitatibus qui similique" + }, + + {"id":"102", + "first-name":"Brionna", + "last-name":"Brown", + "email":"jesus@gusikowski.info", + "date":"2007-12-21 20:22:44 -0800", + "content":"Qui deleniti quaerat ratione doloremque ea quod consequatur. Illo consequatur nisi eos molestiae quos ullam. Enim neque rerum perspiciatis inventore consectetur.", + "subject":"Perferendis ratione voluptatem quae non magnam" + }, + + {"id":"103", + "first-name":"Ceasar", + "last-name":"Becker", + "email":"barney@conn.biz", + "date":"1991-03-31 18:06:07 -0800", + "content":"Cupiditate ipsa minus. Recusandae consequatur aperiam ab ut sint expedita.", + "subject":"Dolore voluptatum maiores repudiandae ipsam qui consectetur veniam et" + }, + + {"id":"104", + "first-name":"Jadon", + "last-name":"Walker", + "email":"alexie@brownspencer.biz", + "date":"2014-05-05 03:04:04 -0700", + "content":"Ipsam ut molestias necessitatibus consequatur eligendi adipisci nihil. Nemo voluptatem dolores iure enim fuga.", + "subject":"Sunt officia voluptas porro et voluptatum exercitationem aut id" + }, + + {"id":"105", + "first-name":"Harvey", + "last-name":"Little", + "email":"dell_reichel@mayert.name", + "date":"1997-05-17 16:09:39 -0700", + "content":"Saepe et voluptate enim facere. Nihil est et sint odit aut quae. Deserunt molestiae explicabo impedit iure quod ratione.", + "subject":"Veniam ipsum est eum dolorem neque aut" + }, + + {"id":"106", + "first-name":"Kailey", + "last-name":"Doyle", + "email":"golda@hayesdavis.name", + "date":"1992-07-01 10:53:52 -0700", + "content":"Necessitatibus aspernatur nesciunt rerum nam. Qui quaerat modi. Et voluptatem ut quod perspiciatis quo eligendi.", + "subject":"Exercitationem voluptatem sunt hic debitis" + }, + + {"id":"107", + "first-name":"Emily", + "last-name":"Gutmann", + "email":"mazie@bashirian.biz", + "date":"1999-12-26 09:22:07 -0800", + "content":"Rem debitis qui quia. Nihil quis quia omnis et ea aliquid. Quam praesentium commodi itaque.", + "subject":"Maiores ea alias fuga" + }, + + {"id":"108", + "first-name":"Jack", + "last-name":"O'Keefe", + "email":"carlos@wilkinson.biz", + "date":"1988-04-28 18:31:09 -0700", + "content":"Ab aspernatur vel et. Architecto occaecati qui. Adipisci ut sequi culpa.", + "subject":"Qui fuga rerum quo" + }, + + {"id":"109", + "first-name":"Mylene", + "last-name":"Barton", + "email":"sherman.kunde@block.info", + "date":"1996-04-16 20:06:02 -0700", + "content":"Nostrum iste laboriosam corporis omnis.", + "subject":"Nihil et minima odit iste et beatae" + }, + + {"id":"110", + "first-name":"Cristopher", + "last-name":"Krajcik", + "email":"levi@oconnell.com", + "date":"1989-11-08 03:06:37 -0800", + "content":"Assumenda qui et accusamus magnam deserunt ut nobis.", + "subject":"Aut numquam saepe placeat facilis at" + }, + + {"id":"111", + "first-name":"Amya", + "last-name":"Anderson", + "email":"travis@waelchigottlieb.biz", + "date":"1986-12-25 15:27:02 -0800", + "content":"Iure numquam ea omnis nemo illo.", + "subject":"Labore sit aut ea in nemo et deleniti" + }, + + {"id":"112", + "first-name":"Alphonso", + "last-name":"Buckridge", + "email":"duncan@barton.name", + "date":"1991-02-27 01:09:28 -0800", + "content":"Sint ducimus sed temporibus quo. Voluptas possimus eaque earum aut.", + "subject":"Quidem aliquid blanditiis quasi" + }, + + {"id":"113", + "first-name":"Jovani", + "last-name":"Thompson", + "email":"lewis.greenfelder@stark.biz", + "date":"1970-10-29 18:08:36 -0800", + "content":"Modi aut ut amet ut qui.", + "subject":"Deserunt est autem sed dicta qui" + }, + + {"id":"114", + "first-name":"Roosevelt", + "last-name":"Blick", + "email":"sophie_kaulke@kunze.biz", + "date":"2001-11-11 17:45:44 -0800", + "content":"Debitis non exercitationem vero nostrum dignissimos. Et voluptates ad nulla.", + "subject":"Quasi est ipsam accusantium sint" + }, + + {"id":"115", + "first-name":"Darren", + "last-name":"Brown", + "email":"jammie@hickle.net", + "date":"2007-10-05 11:14:49 -0700", + "content":"Quas ut odio blanditiis corrupti quia dolor. Id enim in veniam voluptatem. Laborum delectus quidem voluptatem beatae facilis ut.", + "subject":"Fugiat totam dolores harum soluta iusto et" + }, + + {"id":"116", + "first-name":"Dexter", + "last-name":"Schroeder", + "email":"efrain.corwin@hane.name", + "date":"1973-09-30 19:52:23 -0700", + "content":"Debitis assumenda fugit. Sunt omnis in quod aut quibusdam qui.", + "subject":"Aut iure molestias suscipit laboriosam dolores" + }, + + {"id":"117", + "first-name":"Mellie", + "last-name":"Hilpert", + "email":"amiya_haley@douglasbins.org", + "date":"1992-05-14 20:52:23 -0700", + "content":"Vero aut perferendis commodi. Quod dolorem distinctio sint. Error nostrum reprehenderit aut quaerat officiis eaque.", + "subject":"Omnis aliquid rerum fuga vero molestiae quidem eveniet" + }, + + {"id":"118", + "first-name":"Laura", + "last-name":"Koepp", + "email":"gus@hagenes.biz", + "date":"2007-08-04 22:19:10 -0700", + "content":"Quibusdam fugiat quasi consequatur. Ipsam corporis nesciunt quae ipsa aliquid hic eius.", + "subject":"Asperiores quisquam voluptatem aut quam dolores" + }, + + {"id":"119", + "first-name":"Amara", + "last-name":"Jerde", + "email":"estelle@marksdonnelly.info", + "date":"1989-08-19 01:24:43 -0700", + "content":"Architecto voluptatum quas pariatur expedita exercitationem quo. Sint eum perferendis a. Et similique est amet dolores.", + "subject":"Id consequuntur nesciunt tenetur impedit sit voluptas" + }, + + {"id":"120", + "first-name":"Jacquelyn", + "last-name":"Barton", + "email":"antwon_mayer@kshleringibson.info", + "date":"1989-08-19 13:07:02 -0700", + "content":"Quos enim repellendus praesentium sit rerum deserunt.", + "subject":"Et omnis hic autem ipsa tempora impedit perspiciatis" + }, + + {"id":"121", + "first-name":"Micaela", + "last-name":"Runte", + "email":"vivianne.graham@vonrueden.org", + "date":"1986-09-27 01:16:29 -0700", + "content":"Et neque rem.", + "subject":"Enim facere corrupti accusamus quam consequatur beatae aspernatur vero" + }, + + {"id":"122", + "first-name":"Millie", + "last-name":"Flatley", + "email":"gino@kihn.biz", + "date":"1980-02-09 01:35:05 -0800", + "content":"Rerum sint quis esse minus. Aut at asperiores. Amet magni beatae atque.", + "subject":"Illo vitae blanditiis et impedit in dolor" + }, + + {"id":"123", + "first-name":"Sincere", + "last-name":"Rohan", + "email":"zora@beattyerdman.org", + "date":"2002-11-11 22:02:22 -0800", + "content":"Ut error voluptatem aut ratione molestiae. Omnis qui rem delectus.", + "subject":"Unde sed voluptas assumenda non animi quo" + }, + + {"id":"124", + "first-name":"Vicky", + "last-name":"Kautzer", + "email":"mustafa.lueilwitz@tremblay.name", + "date":"2014-08-15 11:18:05 -0700", + "content":"Nostrum quis et et molestiae molestiae. Corporis corrupti deleniti qui fugiat eos. Porro qui quis mollitia.", + "subject":"Quisquam ex esse dolore" + }, + + {"id":"125", + "first-name":"Lavon", + "last-name":"Padberg", + "email":"destin_sanford@reynolds.net", + "date":"2005-07-11 21:24:34 -0700", + "content":"Officia dolorem autem beatae soluta numquam aperiam et.", + "subject":"Ad labore aut corporis" + }, + + {"id":"126", + "first-name":"Shaina", + "last-name":"Dare", + "email":"carrie_sawayn@buckridge.net", + "date":"2001-10-12 08:02:09 -0700", + "content":"Ex doloremque dolor deleniti.", + "subject":"Asperiores recusandae reprehenderit quia tempore qui ipsam sit" + }, + + {"id":"127", + "first-name":"Sigrid", + "last-name":"Farrell", + "email":"soledad_abshire@miller.net", + "date":"2003-03-24 17:55:50 -0800", + "content":"Debitis ea soluta eos ut omnis. Ut et laboriosam. Quaerat sit velit impedit.", + "subject":"Eum et nesciunt quidem quo repudiandae rerum doloremque beatae" + }, + + {"id":"128", + "first-name":"Viola", + "last-name":"Dooley", + "email":"myrtice_grant@zemlakbashirian.com", + "date":"2006-06-01 21:17:02 -0700", + "content":"Sit doloremque est aut voluptatem.", + "subject":"Aut accusamus consectetur nihil iusto" + }, + + {"id":"129", + "first-name":"Davion", + "last-name":"Conn", + "email":"travis@bins.biz", + "date":"1993-11-26 09:03:37 -0800", + "content":"Voluptatibus ipsum mollitia fugit aspernatur enim sint. Laudantium exercitationem sed voluptas consequatur quis.", + "subject":"Illum aspernatur tempora amet itaque ipsam distinctio aliquid" + }, + + {"id":"130", + "first-name":"Hobart", + "last-name":"Oberbrunner", + "email":"eric@wisozk.net", + "date":"2000-02-11 07:40:02 -0800", + "content":"Quis aut sint officia sunt.", + "subject":"Ut pariatur explicabo consequatur libero distinctio nulla consequatur placeat" + }, + + {"id":"131", + "first-name":"Raleigh", + "last-name":"Hegmann", + "email":"jasen.koepp@hickle.name", + "date":"1993-03-01 22:48:23 -0800", + "content":"Delectus aut quod maxime incidunt et consequatur. Nihil eos et eveniet quo iure. Alias facilis earum dicta nulla quo sed.", + "subject":"Aliquam eos aliquid dolor" + }, + + {"id":"132", + "first-name":"Hector", + "last-name":"Denesik", + "email":"bernice@leuschke.biz", + "date":"2013-08-03 14:45:55 -0700", + "content":"Et ut dicta. Qui sunt vel et voluptas hic suscipit.", + "subject":"Ipsum quo est consequatur" + }, + + {"id":"133", + "first-name":"Nikko", + "last-name":"Rolfson", + "email":"crystel@upton.net", + "date":"1977-02-19 16:22:15 -0800", + "content":"Velit quo repellendus consequatur.", + "subject":"Exercitationem omnis aut id deserunt nihil et inventore" + }, + + {"id":"134", + "first-name":"Jovany", + "last-name":"Nienow", + "email":"neil.muller@lakin.info", + "date":"2004-09-28 21:55:43 -0700", + "content":"Voluptatibus numquam blanditiis quibusdam. Illum suscipit dolorum. Sunt amet est sint.", + "subject":"Esse nihil est voluptas rerum ea" + }, + + {"id":"135", + "first-name":"Ellis", + "last-name":"Kohler", + "email":"cordie_bartoletti@barrows.net", + "date":"1989-09-19 13:57:30 -0700", + "content":"Eum corporis nobis laborum fugiat amet alias. Voluptatum quasi ducimus fuga corrupti. Mollitia modi laborum.", + "subject":"Ipsum modi nulla et" + }, + + {"id":"136", + "first-name":"Marley", + "last-name":"Runolfsson", + "email":"kian_vonrueden@collier.info", + "date":"2003-01-17 06:33:04 -0800", + "content":"Et rerum explicabo iusto ipsa ipsum. Quia ipsa ab sed perspiciatis.", + "subject":"Voluptas esse iure quia hic dolor eligendi velit maiores" + }, + + {"id":"137", + "first-name":"Grant", + "last-name":"Jenkins", + "email":"hayden.altenwerth@corkeryankunding.net", + "date":"1970-03-24 13:04:46 -0800", + "content":"Tenetur odit ratione voluptatum dolore qui.", + "subject":"Tempore est molestiae id" + }, + + {"id":"138", + "first-name":"Deangelo", + "last-name":"Koss", + "email":"reba.skiles@bruen.com", + "date":"1999-10-16 20:28:42 -0700", + "content":"Sit vero sint ut beatae iure. Minima harum tempora sit rerum aut.", + "subject":"Aspernatur cumque non consequatur blanditiis enim quas quam" + }, + + {"id":"139", + "first-name":"Mariana", + "last-name":"Jakubowski", + "email":"brett@swift.biz", + "date":"1970-07-04 08:54:29 -0700", + "content":"Beatae expedita praesentium ea corrupti. Aut sint ad et sunt.", + "subject":"Dolore distinctio consequatur aut laudantium officiis aliquid soluta" + }, + + {"id":"140", + "first-name":"Leonard", + "last-name":"Kovacek", + "email":"jermain@dachbruen.biz", + "date":"1981-10-15 00:39:10 -0700", + "content":"Deserunt cupiditate modi. Eius consequatur aut dolor nostrum porro dignissimos. Labore consequatur quod est et distinctio possimus ducimus.", + "subject":"Et rerum id voluptates et iure eligendi rerum" + }, + + {"id":"141", + "first-name":"Etha", + "last-name":"Ondricka", + "email":"noemy@okuneva.org", + "date":"1994-04-29 12:19:51 -0700", + "content":"Velit fuga quasi pariatur consectetur est nihil. Dolore nisi dolores quia qui voluptatem inventore provident.", + "subject":"Enim est commodi nisi autem asperiores molestiae minima" + }, + + {"id":"142", + "first-name":"Nannie", + "last-name":"Fadel", + "email":"frida.streich@prosacco.org", + "date":"2012-12-15 16:56:24 -0800", + "content":"Rerum id quo. Recusandae aut optio voluptate perspiciatis tempore sed nemo.", + "subject":"Pariatur soluta praesentium enim quo quam alias consequuntur in" + }, + + {"id":"143", + "first-name":"Shyanne", + "last-name":"Kunze", + "email":"annabel@littel.net", + "date":"1992-12-09 23:41:23 -0800", + "content":"Dolores iure iste unde. Illo esse autem harum perspiciatis.", + "subject":"Atque illum et qui" + }, + + {"id":"144", + "first-name":"Eloy", + "last-name":"Barton", + "email":"leonie_gulgowski@skiles.com", + "date":"2013-01-12 20:05:57 -0800", + "content":"Cumque id sapiente explicabo. Voluptas pariatur quibusdam dolores et.", + "subject":"Ut dolore velit qui omnis" + }, + + {"id":"145", + "first-name":"Rosalinda", + "last-name":"Pfeffer", + "email":"anabelle@langworth.com", + "date":"2001-05-17 05:43:52 -0700", + "content":"Et voluptatem quasi voluptatum.", + "subject":"Voluptatum quia incidunt ut repudiandae blanditiis" + }, + + {"id":"146", + "first-name":"William", + "last-name":"Bogisich", + "email":"bertha@gibsonrohan.info", + "date":"2009-11-01 04:28:13 -0800", + "content":"Quaerat dolorem odio et dolor saepe quia odit. Corporis molestiae ab ipsa occaecati autem fuga dicta. Voluptate ratione sunt.", + "subject":"Ipsam quidem mollitia blanditiis magnam ut et" + }, + + {"id":"147", + "first-name":"Laurianne", + "last-name":"Bergstrom", + "email":"brisa_howe@dare.net", + "date":"2003-03-23 21:58:11 -0800", + "content":"Et porro recusandae aut. Tenetur voluptas aperiam ut vitae.", + "subject":"Molestias autem qui nisi mollitia nulla dolorum repudiandae hic" + }, + + {"id":"148", + "first-name":"Carroll", + "last-name":"Hickle", + "email":"noemi.grady@grimesritchie.com", + "date":"1996-07-15 02:55:52 -0700", + "content":"Quia voluptas assumenda. Numquam inventore facilis dicta qui ipsa reiciendis.", + "subject":"Perferendis rerum vel incidunt molestias recusandae" + }, + + {"id":"149", + "first-name":"Jasen", + "last-name":"Romaguera", + "email":"jayce@berge.name", + "date":"1984-04-12 11:56:39 -0800", + "content":"Consectetur molestias perspiciatis ut omnis aliquid.", + "subject":"Hic optio accusamus qui adipisci repellendus ipsa in" + }, + + {"id":"150", + "first-name":"Heaven", + "last-name":"Fay", + "email":"enola@sanfordsteuber.net", + "date":"2000-11-23 00:18:07 -0800", + "content":"Quia itaque temporibus. Provident ducimus quidem consectetur qui voluptatum. Sunt cum quis dolorum hic.", + "subject":"Ad excepturi illum doloremque ducimus corporis ut qui omnis" + }, + + {"id":"151", + "first-name":"Wilburn", + "last-name":"Cartwright", + "email":"jaida_erdman@nitzsche.com", + "date":"2011-09-19 01:58:53 -0700", + "content":"Autem iure magni ut odio amet et.", + "subject":"Fuga quis quidem sint laborum et delectus iste" + }, + + {"id":"152", + "first-name":"Concepcion", + "last-name":"McLaughlin", + "email":"bernardo_langworth@jakubowski.org", + "date":"1992-08-20 13:35:09 -0700", + "content":"Rerum laboriosam omnis nobis eaque odit sequi dicta.", + "subject":"Sint accusantium ab quis sed ipsa" + }, + + {"id":"153", + "first-name":"Vita", + "last-name":"Fisher", + "email":"chanelle_gulgowski@roob.info", + "date":"2005-09-21 12:09:45 -0700", + "content":"Sunt quibusdam adipisci accusantium laborum distinctio voluptate autem. Quis pariatur culpa ut et. Fuga similique dignissimos culpa dolorum neque reiciendis.", + "subject":"Nulla enim et fugiat eveniet ducimus delectus" + }, + + {"id":"154", + "first-name":"Elliott", + "last-name":"Champlin", + "email":"kamille@kulascain.biz", + "date":"2003-05-20 15:42:54 -0700", + "content":"Eos quisquam et voluptates rerum vel. Consectetur veniam voluptatem minus totam numquam in.", + "subject":"Deleniti ipsum et odio" + }, + + {"id":"155", + "first-name":"Heidi", + "last-name":"Macejkovic", + "email":"stefanie@barrowshagenes.info", + "date":"1983-06-02 17:59:14 -0700", + "content":"Ut officiis animi exercitationem delectus suscipit qui voluptatibus.", + "subject":"Eveniet ipsam asperiores qui aut consectetur vel provident" + }, + + {"id":"156", + "first-name":"Janae", + "last-name":"Pollich", + "email":"brianne.sauer@marquardtsteuber.com", + "date":"2000-05-14 07:13:30 -0700", + "content":"Facilis sit ut odit.", + "subject":"Sapiente explicabo sequi molestias illo saepe" + }, + + {"id":"157", + "first-name":"Kaylin", + "last-name":"Lindgren", + "email":"urban.franecki@wilkinsonwilderman.org", + "date":"2014-09-09 00:48:38 -0700", + "content":"Eaque ad repellendus est nihil iste vero.", + "subject":"Deserunt qui dolor rerum ut beatae aut" + }, + + {"id":"158", + "first-name":"Garland", + "last-name":"Nienow", + "email":"ellen.schultz@kihn.org", + "date":"2013-10-27 00:18:14 -0700", + "content":"Quam voluptatem nam est.", + "subject":"Et occaecati quisquam impedit dolore quod" + }, + + {"id":"159", + "first-name":"Lilly", + "last-name":"Hills", + "email":"macey@labadie.biz", + "date":"1981-02-23 03:46:55 -0800", + "content":"Quia perferendis est consequuntur voluptates cumque commodi. Laboriosam expedita sit excepturi.", + "subject":"Eos doloribus repellendus provident" + }, + + {"id":"160", + "first-name":"Lilla", + "last-name":"Abshire", + "email":"roselyn@rippin.org", + "date":"1998-05-16 00:55:49 -0700", + "content":"Ratione deserunt ut ut beatae praesentium qui. Nulla ut ipsam tempore.", + "subject":"Autem nostrum tempora iure laborum" + }, + + {"id":"161", + "first-name":"Alessandro", + "last-name":"Hayes", + "email":"gia_bradtke@schimmelwalsh.biz", + "date":"2001-11-28 23:52:57 -0800", + "content":"Quasi perspiciatis tenetur dolorum. Quae cupiditate fuga molestiae et tempore soluta.", + "subject":"Non ipsam quis soluta" + }, + + {"id":"162", + "first-name":"Sharon", + "last-name":"Goodwin", + "email":"ulices.schimmel@oreillyabshire.name", + "date":"2010-03-12 00:46:00 -0800", + "content":"Neque omnis in. Qui ad sint. Velit voluptatibus repellat esse at.", + "subject":"Magni exercitationem quas consectetur qui quia id" + }, + + {"id":"163", + "first-name":"Claude", + "last-name":"Gleason", + "email":"ken.gulgowski@labadie.net", + "date":"2003-05-30 14:58:54 -0700", + "content":"Et sit non harum quo sunt. Odio beatae voluptatem ad. Nemo in hic nulla.", + "subject":"Nobis consequatur non sunt sequi ex nihil" + }, + + {"id":"164", + "first-name":"Maximilian", + "last-name":"Mann", + "email":"samir@stehr.biz", + "date":"1993-08-21 15:54:18 -0700", + "content":"Minus quae voluptatem sequi. Distinctio voluptatem amet iusto velit et praesentium. Distinctio ipsum voluptas voluptas.", + "subject":"Facere voluptatem laudantium laboriosam omnis" + }, + + {"id":"165", + "first-name":"Jennyfer", + "last-name":"Satterfield", + "email":"janiya_senger@olson.info", + "date":"2006-09-21 00:36:50 -0700", + "content":"Doloribus praesentium excepturi omnis.", + "subject":"Non fuga unde incidunt ad exercitationem maxime laboriosam qui" + }, + + {"id":"166", + "first-name":"Robin", + "last-name":"Murray", + "email":"alycia@cruickshank.name", + "date":"1985-10-04 03:44:39 -0700", + "content":"Repudiandae dolorem ut. Possimus earum dignissimos temporibus amet vel eum.", + "subject":"Vel culpa debitis quam" + }, + + {"id":"167", + "first-name":"Albina", + "last-name":"Reinger", + "email":"guie.gleason@gorczany.info", + "date":"1985-10-02 08:07:53 -0700", + "content":"Natus rerum repellat voluptas. Distinctio dolor est in dolores.", + "subject":"Modi perspiciatis iure odio hic et dignissimos rem qui" + }, + + {"id":"168", + "first-name":"Eloisa", + "last-name":"Wolf", + "email":"leopold@jenkins.info", + "date":"2007-02-19 09:25:29 -0800", + "content":"Corporis ut dolorem ullam quidem ratione. Nam eveniet dicta autem eum.", + "subject":"Facilis voluptas vel repellat et aut amet est" + }, + + {"id":"169", + "first-name":"Caden", + "last-name":"Cartwright", + "email":"mohammad_lockman@okoncrooks.net", + "date":"1974-11-14 03:12:44 -0800", + "content":"Sunt nobis voluptate quasi sapiente magni a officia. Laudantium perspiciatis quod quis quidem voluptatum pariatur. Sit ut optio tempora.", + "subject":"Nihil maxime officia et repellat" + }, + + {"id":"170", + "first-name":"Raul", + "last-name":"Sipes", + "email":"danial.miller@kulas.info", + "date":"1996-12-11 14:14:16 -0800", + "content":"Ea rerum quo id omnis. Hic est voluptate voluptatem ut. Rerum eos ipsa laboriosam et ut expedita.", + "subject":"Aliquam reiciendis quam expedita sed ad neque voluptas" + }, + + {"id":"171", + "first-name":"Allie", + "last-name":"Runolfsson", + "email":"skye@marvin.com", + "date":"2011-07-31 19:37:22 -0700", + "content":"Perspiciatis mollitia fugit sunt et.", + "subject":"Nihil expedita neque reprehenderit" + }, + + {"id":"172", + "first-name":"Belle", + "last-name":"Nader", + "email":"eugenia@mante.info", + "date":"1995-09-06 05:30:08 -0700", + "content":"Expedita delectus quis ipsa dolore voluptatum.", + "subject":"Recusandae quasi ullam consequatur assumenda aliquid unde" + }, + + {"id":"173", + "first-name":"Clemens", + "last-name":"Tromp", + "email":"geovanny@kilback.org", + "date":"1980-11-28 08:48:35 -0800", + "content":"Sint eos ea quidem tempora.", + "subject":"Velit aperiam consequatur ut et aliquam at" + }, + + {"id":"174", + "first-name":"Bettie", + "last-name":"Mueller", + "email":"edgardo@little.net", + "date":"1983-06-26 14:10:56 -0700", + "content":"Dolore tempore accusamus.", + "subject":"Autem tempore et ut" + }, + + {"id":"175", + "first-name":"Guy", + "last-name":"King", + "email":"macie@schmeler.info", + "date":"1999-03-28 22:34:59 -0800", + "content":"Recusandae laborum ut et eaque eum.", + "subject":"Dolor ullam totam consequatur eos fuga" + }, + + {"id":"176", + "first-name":"Cydney", + "last-name":"Cronin", + "email":"camren@thompson.org", + "date":"1993-10-23 02:50:41 -0700", + "content":"Exercitationem modi eos sint vero. Iste possimus quis. Non est voluptas.", + "subject":"Tempora ipsum soluta ut corrupti omnis in" + }, + + {"id":"177", + "first-name":"Ludwig", + "last-name":"Hoeger", + "email":"javon@torpolson.info", + "date":"2007-12-20 19:09:13 -0800", + "content":"Architecto ut optio tempore pariatur itaque saepe.", + "subject":"Earum unde quis officiis doloremque et animi qui" + }, + + {"id":"178", + "first-name":"Travon", + "last-name":"Jacobi", + "email":"jameson_streich@hansen.org", + "date":"2013-02-03 09:53:51 -0800", + "content":"Autem dolorem totam atque id sit. Consectetur dolor maiores.", + "subject":"Quia autem deleniti ullam neque odio" + }, + + {"id":"179", + "first-name":"Brennan", + "last-name":"Jaskolski", + "email":"harold_thompson@schaefer.info", + "date":"2004-01-13 10:53:47 -0800", + "content":"Libero et dolorem nihil. Omnis consequuntur possimus ut.", + "subject":"Eum labore omnis ipsa doloremque consequuntur soluta esse fuga" + }, + + {"id":"180", + "first-name":"Clifton", + "last-name":"Boyer", + "email":"justine@skiles.biz", + "date":"2000-01-28 22:33:14 -0800", + "content":"Nobis recusandae fugiat quibusdam doloribus. Aut praesentium corrupti tenetur ullam quia.", + "subject":"Ea dolorem voluptas aut cumque inventore delectus non molestiae" + }, + + {"id":"181", + "first-name":"Walker", + "last-name":"Rogahn", + "email":"stanton@rempel.net", + "date":"2012-04-02 20:05:38 -0700", + "content":"Consectetur et soluta. Minus voluptatem quod aut vitae praesentium.", + "subject":"Tenetur architecto reprehenderit corporis fuga et rerum vel" + }, + + {"id":"182", + "first-name":"Jennings", + "last-name":"Hills", + "email":"kenton@murrayharvey.biz", + "date":"2007-09-24 22:09:51 -0700", + "content":"Velit porro quidem nostrum. Perspiciatis consequatur consectetur reiciendis sunt cupiditate quae. Vitae et ut autem iure.", + "subject":"Cupiditate quis maiores omnis" + }, + + {"id":"183", + "first-name":"Julianne", + "last-name":"O'Kon", + "email":"helene@abshire.com", + "date":"1987-02-09 22:56:12 -0800", + "content":"Voluptas voluptatem veniam porro dolorem maxime. Itaque eveniet laborum optio sed aspernatur omnis. Veritatis enim itaque sint illo ipsam eius.", + "subject":"Corporis et laboriosam aspernatur aut" + }, + + {"id":"184", + "first-name":"Raymond", + "last-name":"Orn", + "email":"cloyd@rempel.biz", + "date":"2014-02-04 04:33:02 -0800", + "content":"Eum voluptatibus accusantium rem. Deleniti harum eum. Illo est facere illum saepe voluptas.", + "subject":"Eveniet est architecto id ut rerum nam quidem" + }, + + {"id":"185", + "first-name":"Johan", + "last-name":"Legros", + "email":"rosie_ernser@wolf.com", + "date":"1989-03-02 11:17:10 -0800", + "content":"Architecto explicabo praesentium amet eaque quibusdam.", + "subject":"Consectetur fugiat iusto omnis aspernatur ut" + }, + + {"id":"186", + "first-name":"Daryl", + "last-name":"Labadie", + "email":"ashly_thompson@casper.net", + "date":"2003-01-28 00:02:56 -0800", + "content":"Et est doloribus. Fuga hic sed voluptatibus ullam officia aspernatur.", + "subject":"A sunt eum quas accusamus" + }, + + {"id":"187", + "first-name":"Gavin", + "last-name":"Moore", + "email":"dahlia@leffleroberbrunner.biz", + "date":"1970-10-15 07:36:57 -0700", + "content":"Sapiente ipsum magni dolore est dolor.", + "subject":"Est maxime consequatur esse qui dicta aut quaerat" + }, + + {"id":"188", + "first-name":"Coby", + "last-name":"Swaniawski", + "email":"millie.labadie@wuckert.name", + "date":"2012-09-14 00:25:46 -0700", + "content":"Magni qui molestias debitis reprehenderit vel quo est. Blanditiis debitis autem neque non illo.", + "subject":"Rerum accusantium magni dolorem in reprehenderit et voluptas" + }, + + {"id":"189", + "first-name":"Luis", + "last-name":"Stracke", + "email":"merle@mrazswaniawski.biz", + "date":"2007-11-11 05:28:46 -0800", + "content":"Neque magnam sint porro reprehenderit quo. In et reiciendis non velit et eum quos.", + "subject":"Sit voluptates nulla perspiciatis debitis dolor eaque a" + }, + + {"id":"190", + "first-name":"Leone", + "last-name":"Huel", + "email":"emil@botsford.biz", + "date":"2004-03-16 23:46:45 -0800", + "content":"Vitae amet et quae ullam.", + "subject":"Rerum enim voluptate qui" + }, + + {"id":"191", + "first-name":"Aylin", + "last-name":"Kling", + "email":"anderson_jast@kozeyparisian.com", + "date":"1979-06-17 04:05:50 -0700", + "content":"Quam eligendi numquam sint. Non ipsa et qui error dolor velit.", + "subject":"Culpa iste rerum facere praesentium deleniti sequi" + }, + + {"id":"192", + "first-name":"Junior", + "last-name":"Bartoletti", + "email":"te@kuvalis.net", + "date":"1994-12-09 11:00:34 -0800", + "content":"Velit eos et nemo dolore eum necessitatibus. Ea inventore adipisci.", + "subject":"Velit dolorem cumque ipsa" + }, + + {"id":"193", + "first-name":"Nathanael", + "last-name":"Hermiston", + "email":"macy.cole@wittingcasper.info", + "date":"2002-01-06 17:45:52 -0800", + "content":"Corporis occaecati quidem quia repudiandae repellendus beatae similique. Inventore quo ullam.", + "subject":"Quidem expedita quia inventore dolores ratione totam et dignissimos" + }, + + {"id":"194", + "first-name":"Hal", + "last-name":"Bruen", + "email":"nathen.ziemann@gerlachko.name", + "date":"1996-03-01 01:35:30 -0800", + "content":"Qui eius aspernatur et aut et vel in. Adipisci aliquid consequatur dolores et ut. Est aut temporibus.", + "subject":"Voluptas placeat eveniet non quas assumenda quam minus" + }, + + {"id":"195", + "first-name":"Freddie", + "last-name":"Thompson", + "email":"elia@aufderharbrown.org", + "date":"2005-03-20 05:07:30 -0800", + "content":"Dolor nemo sed molestiae quae quia.", + "subject":"Quam sint et voluptatem et fuga sint ut saepe" + }, + + {"id":"196", + "first-name":"Aida", + "last-name":"Gorczany", + "email":"olga.labadie@abshire.name", + "date":"1989-07-26 04:26:19 -0700", + "content":"Sit qui voluptatem facere. Similique alias quia sit ipsum. Ut corrupti tempore molestiae.", + "subject":"Qui veniam blanditiis nesciunt beatae tempore aut fugiat maiores" + }, + + {"id":"197", + "first-name":"Isabelle", + "last-name":"Collier", + "email":"christiana_gottlieb@borer.biz", + "date":"1978-05-15 13:13:34 -0700", + "content":"Aliquam earum velit ut.", + "subject":"Neque et voluptate ratione totam voluptas est nulla ipsum" + }, + + {"id":"198", + "first-name":"Ida", + "last-name":"Reichert", + "email":"mervin@keeling.com", + "date":"1991-02-06 05:02:15 -0800", + "content":"Velit in at et dicta tenetur. Doloremque cupiditate est. Excepturi non minus aspernatur dolores qui quaerat architecto.", + "subject":"Ut voluptas qui ad minus" + }, + + {"id":"199", + "first-name":"Angelina", + "last-name":"Mueller", + "email":"leonel@purdyschroeder.org", + "date":"2008-06-17 01:01:57 -0700", + "content":"Recusandae eius non necessitatibus. Quisquam qui quo. Voluptas dolorem dolorem sit repellat laudantium ducimus qui.", + "subject":"Dolorem atque impedit qui soluta" + }, + + {"id":"200", + "first-name":"Marcelle", + "last-name":"Connelly", + "email":"heath@leuschke.net", + "date":"1983-10-02 18:32:18 -0700", + "content":"Debitis quasi voluptates et voluptatibus rerum. Et explicabo quia qui qui voluptate dolor.", + "subject":"Rem molestiae nobis consequatur eligendi ut" + }, + {"id":"201", + "first-name":"Bob", + "last-name":"Brown", + "email":"bob@brown.net", + "date":"1983-10-02 18:32:18 -0700", + "content":"Debitis quasi voluptates et voluptatibus rerum. Et explicabo quia qui qui voluptate dolor.", + "subject":"Urgent question about whipped cream", + "draft": true + }, + {"id":"202", + "first-name":"Mary", + "last-name":"Jones", + "email":"mary@jones.net", + "date":"1983-10-02 18:32:18 -0700", + "content":"Debitis quasi voluptates et voluptatibus rerum. Et explicabo quia qui qui voluptate dolor.", + "subject":"Fwd: wedding photos", + "draft": true + } +] diff --git a/modules/examples/src/routing/drafts.html b/modules/examples/src/routing/drafts.html new file mode 100644 index 0000000000..b3ed617a62 --- /dev/null +++ b/modules/examples/src/routing/drafts.html @@ -0,0 +1,11 @@ +
+

Drafts

+ +
    +
  1. + + {{ item.subject }} +
  2. +
+
diff --git a/modules/examples/src/routing/inbox-app.html b/modules/examples/src/routing/inbox-app.html new file mode 100644 index 0000000000..9a37dc4938 --- /dev/null +++ b/modules/examples/src/routing/inbox-app.html @@ -0,0 +1,5 @@ + + Inbox + Drafts + + diff --git a/modules/examples/src/routing/inbox-app.ts b/modules/examples/src/routing/inbox-app.ts new file mode 100644 index 0000000000..58dce2183a --- /dev/null +++ b/modules/examples/src/routing/inbox-app.ts @@ -0,0 +1,152 @@ +import {NgIf, NgFor, EventEmitter, Component, View, Inject, Injectable} from 'angular2/angular2'; +import { + RouterLink, + RouteConfig, + Router, + Route, + RouterOutlet, + Location, + RouteParams +} from 'angular2/router'; +import {Http} from 'angular2/http'; +import {ObservableWrapper, PromiseWrapper} from 'angular2/src/facade/async'; +import {ListWrapper} from 'angular2/src/facade/collection'; +import {isPresent} from 'angular2/src/facade/lang'; + +class InboxRecord { + id: string = ''; + subject: string = ''; + content: string = ''; + email: string = ''; + firstName: string = ''; + lastName: string = ''; + date: string = ''; + draft: boolean = false; + + constructor(data: { + id: string, + subject: string, + content: string, + email: string, + firstName: string, + lastName: string, + date: string, draft?: boolean + } = null) { + if (isPresent(data)) { + this.setData(data); + } + } + + setData(record: { + id: string, + subject: string, + content: string, + email: string, + firstName: string, + lastName: string, + date: string, draft?: boolean + }) { + this.id = record['id']; + this.subject = record['subject']; + this.content = record['content']; + this.email = record['email']; + this.firstName = record['first-name']; + this.lastName = record['last-name']; + this.date = record['date']; + this.draft = record['draft'] == true ? true : false; + } +} + +@Injectable() +class DbService { + constructor(public http: Http) {} + + getData() { + var p = PromiseWrapper.completer(); + ObservableWrapper.subscribe(this.http.get('./db.json'), (resp) => { p.resolve(resp.json()); }); + return p.promise; + } + + drafts() { + return PromiseWrapper.then(this.getData(), (data) => { + return ListWrapper.filter(data, + (record => isPresent(record['draft']) && record['draft'] == true)); + }); + } + + emails() { + return PromiseWrapper.then(this.getData(), (data) => { + return ListWrapper.filter(data, (record => !isPresent(record['draft']))); + }); + } + + email(id) { + return PromiseWrapper.then(this.getData(), (data) => { + for (var i = 0; i < data.length; i++) { + var entry = data[i]; + if (entry['id'] == id) { + return entry; + } + } + }); + } +} + +@Component({selector: 'inbox-detail'}) +@View({templateUrl: "inbox-detail.html", directives: [NgFor, RouterLink]}) +class InboxDetailCmp { + record: InboxRecord = new InboxRecord(); + ready: boolean = false; + + constructor(db: DbService, params: RouteParams) { + var id = params.get('id'); + PromiseWrapper.then(db.email(id), (data) => { this.record.setData(data); }); + } +} + +@Component({selector: 'inbox'}) +@View({templateUrl: "inbox.html", directives: [NgFor, RouterLink]}) +class InboxCmp { + items: List = []; + ready: boolean = false; + + constructor(public router: Router, db: DbService) { + PromiseWrapper.then(db.emails(), (emails) => { + this.ready = true; + this.items = ListWrapper.map(emails, (email) => { return new InboxRecord(email); }); + }); + } +} + + +@Component({selector: 'drafts'}) +@View({templateUrl: "drafts.html", directives: [NgFor, RouterLink]}) +class DraftsCmp { + items: List = []; + ready: boolean = false; + + constructor(public router: Router, db: DbService) { + PromiseWrapper.then(db.drafts(), (drafts) => { + this.ready = true; + this.items = ListWrapper.map(drafts, (email) => { return new InboxRecord(email); }); + }); + } +} + +@Component({selector: 'inbox-app', viewInjector: [DbService]}) +@View({templateUrl: "inbox-app.html", directives: [RouterOutlet, RouterLink]}) +@RouteConfig([ + new Route({path: '/', component: InboxCmp, as: 'inbox'}), + new Route({path: '/drafts', component: DraftsCmp, as: 'drafts'}), + new Route({path: '/detail/:id', component: InboxDetailCmp, as: 'detailPage'}) +]) +export class InboxApp { + router: Router; + location: Location; + constructor(router: Router, location: Location) { + this.router = router; + this.location = location; + } + inboxPageActive() { return this.location.path() == ''; } + draftsPageActive() { return this.location.path() == '/drafts'; } +} diff --git a/modules/examples/src/routing/inbox-detail.html b/modules/examples/src/routing/inbox-detail.html new file mode 100644 index 0000000000..8e11ccae51 --- /dev/null +++ b/modules/examples/src/routing/inbox-detail.html @@ -0,0 +1,18 @@ +
+

{{ record.subject }}

+ +
    +
  • ID: {{ record.id }}
  • +
  • Name: {{ record.firstName }} {{ record.lastName }}
  • +
  • Email: {{ record.email }}
  • +
  • Date: {{ record.date }}
  • +
+ +

+ {{ record.content }} +

+ + + Back + +
diff --git a/modules/examples/src/routing/inbox.html b/modules/examples/src/routing/inbox.html new file mode 100644 index 0000000000..1c01863eb8 --- /dev/null +++ b/modules/examples/src/routing/inbox.html @@ -0,0 +1,10 @@ +
+

Inbox

+ +
    +
  1. + {{ item.subject }} +
  2. +
+
diff --git a/modules/examples/src/routing/index.html b/modules/examples/src/routing/index.html new file mode 100644 index 0000000000..4e2f0a71de --- /dev/null +++ b/modules/examples/src/routing/index.html @@ -0,0 +1,14 @@ + + + Routing Example + + + + + + Loading... + + + $SCRIPTS$ + + diff --git a/modules/examples/src/routing/index.ts b/modules/examples/src/routing/index.ts new file mode 100644 index 0000000000..e6a5fffd6d --- /dev/null +++ b/modules/examples/src/routing/index.ts @@ -0,0 +1,15 @@ +import {InboxApp} from './inbox-app'; +import {bind} from 'angular2/angular2'; +import {bootstrap} from 'angular2/bootstrap'; +import {routerInjectables, HashLocationStrategy, LocationStrategy} from 'angular2/router'; +import {httpInjectables} from 'angular2/http'; + +import {reflector} from 'angular2/src/reflection/reflection'; +import {ReflectionCapabilities} from 'angular2/src/reflection/reflection_capabilities'; + +export function main() { + reflector.reflectionCapabilities = new ReflectionCapabilities(); + bootstrap( + InboxApp, + [routerInjectables, httpInjectables, bind(LocationStrategy).toClass(HashLocationStrategy)]); +} diff --git a/tools/broccoli/trees/browser_tree.ts b/tools/broccoli/trees/browser_tree.ts index 5faabc55da..5b662cd464 100644 --- a/tools/broccoli/trees/browser_tree.ts +++ b/tools/broccoli/trees/browser_tree.ts @@ -50,6 +50,7 @@ const kServedPaths = [ 'examples/src/http', 'examples/src/jsonp', 'examples/src/key_events', + 'examples/src/routing', 'examples/src/sourcemap', 'examples/src/todo', 'examples/src/zippy_component',