{"version":3,"sources":["vendor/ember-cli/app-prefix.js","roseblack/app.js","roseblack/component-managers/glimmer.js","roseblack/components/welcome-page.js","roseblack/container-debug-adapter.js","roseblack/controllers/application.js","roseblack/data-adapter.js","roseblack/helpers/app-version.js","roseblack/helpers/page-title.js","roseblack/helpers/pluralize.js","roseblack/helpers/singularize.js","roseblack/initializers/app-version.js","roseblack/initializers/ember-data.js","roseblack/instance-initializers/application.js","roseblack/router.js","roseblack/routes/application.js","roseblack/routes/category.js","roseblack/routes/index.js","roseblack/routes/page.js","roseblack/routes/product.js","roseblack/services/data.js","roseblack/services/page-title.js","roseblack/services/store.js","roseblack/templates/application.js","roseblack/templates/category.js","roseblack/templates/index.js","roseblack/templates/page.js","roseblack/templates/product.js","roseblack/transforms/boolean.js","roseblack/transforms/date.js","roseblack/transforms/number.js","roseblack/transforms/string.js","vendor/ember-cli/app-suffix.js","vendor/ember-cli/app-config.js","vendor/ember-cli/app-boot.js"],"sourcesContent":["'use strict';\n\n\n","define(\"roseblack/app\", [\"exports\", \"@ember/application\", \"ember-resolver\", \"ember-load-initializers\", \"roseblack/config/environment\"], function (_exports, _application, _emberResolver, _emberLoadInitializers, _environment) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.default = void 0;\n 0; //eaimeta@70e063a35619d71f0,\"@ember/application\",0,\"ember-resolver\",0,\"ember-load-initializers\",0,\"roseblack/config/environment\"eaimeta@70e063a35619d71f\n function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\n function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n class App extends _application.default {\n constructor(...args) {\n super(...args);\n _defineProperty(this, \"modulePrefix\", _environment.default.modulePrefix);\n _defineProperty(this, \"podModulePrefix\", _environment.default.podModulePrefix);\n _defineProperty(this, \"Resolver\", _emberResolver.default);\n }\n }\n _exports.default = App;\n (0, _emberLoadInitializers.default)(App, _environment.default.modulePrefix);\n});","define(\"roseblack/component-managers/glimmer\", [\"exports\", \"@glimmer/component/-private/ember-component-manager\"], function (_exports, _emberComponentManager) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n Object.defineProperty(_exports, \"default\", {\n enumerable: true,\n get: function () {\n return _emberComponentManager.default;\n }\n });\n 0; //eaimeta@70e063a35619d71f0,\"@glimmer/component/-private/ember-component-manager\"eaimeta@70e063a35619d71f\n});","define(\"roseblack/components/welcome-page\", [\"exports\", \"ember-welcome-page/components/welcome-page\"], function (_exports, _welcomePage) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n Object.defineProperty(_exports, \"default\", {\n enumerable: true,\n get: function () {\n return _welcomePage.default;\n }\n });\n 0; //eaimeta@70e063a35619d71f0,\"ember-welcome-page/components/welcome-page\"eaimeta@70e063a35619d71f\n});","define(\"roseblack/container-debug-adapter\", [\"exports\", \"ember-resolver/container-debug-adapter\"], function (_exports, _containerDebugAdapter) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n Object.defineProperty(_exports, \"default\", {\n enumerable: true,\n get: function () {\n return _containerDebugAdapter.default;\n }\n });\n 0; //eaimeta@70e063a35619d71f0,\"ember-resolver/container-debug-adapter\"eaimeta@70e063a35619d71f\n});","define(\"roseblack/controllers/application\", [\"exports\", \"@ember/controller\"], function (_exports, _controller) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.default = void 0;\n 0; //eaimeta@70e063a35619d71f0,\"@ember/controller\"eaimeta@70e063a35619d71f\n class ApplicationController extends _controller.default {}\n _exports.default = ApplicationController;\n});","define(\"roseblack/data-adapter\", [\"exports\", \"@ember-data/debug\"], function (_exports, _debug) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n Object.defineProperty(_exports, \"default\", {\n enumerable: true,\n get: function () {\n return _debug.default;\n }\n });\n 0; //eaimeta@70e063a35619d71f0,\"@ember-data/debug\"eaimeta@70e063a35619d71f\n});","define(\"roseblack/helpers/app-version\", [\"exports\", \"@ember/component/helper\", \"roseblack/config/environment\", \"ember-cli-app-version/utils/regexp\"], function (_exports, _helper, _environment, _regexp) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.appVersion = appVersion;\n _exports.default = void 0;\n 0; //eaimeta@70e063a35619d71f0,\"@ember/component/helper\",0,\"roseblack/config/environment\",0,\"ember-cli-app-version/utils/regexp\"eaimeta@70e063a35619d71f\n function appVersion(_, hash = {}) {\n const version = _environment.default.APP.version;\n // e.g. 1.0.0-alpha.1+4jds75hf\n\n // Allow use of 'hideSha' and 'hideVersion' For backwards compatibility\n let versionOnly = hash.versionOnly || hash.hideSha;\n let shaOnly = hash.shaOnly || hash.hideVersion;\n let match = null;\n if (versionOnly) {\n if (hash.showExtended) {\n match = version.match(_regexp.versionExtendedRegExp); // 1.0.0-alpha.1\n }\n // Fallback to just version\n if (!match) {\n match = version.match(_regexp.versionRegExp); // 1.0.0\n }\n }\n if (shaOnly) {\n match = version.match(_regexp.shaRegExp); // 4jds75hf\n }\n return match ? match[0] : version;\n }\n var _default = _exports.default = (0, _helper.helper)(appVersion);\n});","define(\"roseblack/helpers/page-title\", [\"exports\", \"ember-page-title/helpers/page-title\"], function (_exports, _pageTitle) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n Object.defineProperty(_exports, \"default\", {\n enumerable: true,\n get: function () {\n return _pageTitle.default;\n }\n });\n 0; //eaimeta@70e063a35619d71f0,\"ember-page-title/helpers/page-title\"eaimeta@70e063a35619d71f\n});","define(\"roseblack/helpers/pluralize\", [\"exports\", \"ember-inflector/lib/helpers/pluralize\"], function (_exports, _pluralize) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.default = void 0;\n 0; //eaimeta@70e063a35619d71f0,\"ember-inflector/lib/helpers/pluralize\"eaimeta@70e063a35619d71f\n var _default = _exports.default = _pluralize.default;\n});","define(\"roseblack/helpers/singularize\", [\"exports\", \"ember-inflector/lib/helpers/singularize\"], function (_exports, _singularize) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.default = void 0;\n 0; //eaimeta@70e063a35619d71f0,\"ember-inflector/lib/helpers/singularize\"eaimeta@70e063a35619d71f\n var _default = _exports.default = _singularize.default;\n});","define(\"roseblack/initializers/app-version\", [\"exports\", \"ember-cli-app-version/initializer-factory\", \"roseblack/config/environment\"], function (_exports, _initializerFactory, _environment) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.default = void 0;\n 0; //eaimeta@70e063a35619d71f0,\"ember-cli-app-version/initializer-factory\",0,\"roseblack/config/environment\"eaimeta@70e063a35619d71f\n let name, version;\n if (_environment.default.APP) {\n name = _environment.default.APP.name;\n version = _environment.default.APP.version;\n }\n var _default = _exports.default = {\n name: 'App Version',\n initialize: (0, _initializerFactory.default)(name, version)\n };\n});","define(\"roseblack/initializers/ember-data\", [\"exports\"], function (_exports) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.default = void 0;\n 0; //eaimeta@70e063a35619d71feaimeta@70e063a35619d71f\n /*\n This code initializes EmberData in an Ember application.\n */\n var _default = _exports.default = {\n name: 'ember-data',\n initialize(application) {\n application.registerOptionsForType('serializer', {\n singleton: false\n });\n application.registerOptionsForType('adapter', {\n singleton: false\n });\n }\n };\n});","define(\"roseblack/instance-initializers/application\", [\"exports\"], function (_exports) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.default = void 0;\n _exports.initialize = initialize;\n 0; //eaimeta@70e063a35619d71feaimeta@70e063a35619d71f\n function initialize(owner) {\n let app = owner.lookup('controller:application');\n }\n var _default = _exports.default = {\n initialize\n };\n});","define(\"roseblack/router\", [\"exports\", \"@ember/routing/router\", \"roseblack/config/environment\"], function (_exports, _router, _environment) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.default = void 0;\n 0; //eaimeta@70e063a35619d71f0,\"@ember/routing/router\",0,\"roseblack/config/environment\"eaimeta@70e063a35619d71f\n function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\n function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n class Router extends _router.default {\n constructor(...args) {\n super(...args);\n _defineProperty(this, \"location\", _environment.default.locationType);\n _defineProperty(this, \"rootURL\", _environment.default.rootURL);\n }\n }\n _exports.default = Router;\n Router.map(function () {\n this.route('product', {\n path: '/product/:code'\n });\n this.route('page', {\n path: '/page/:code'\n });\n this.route('category', {\n path: '/category/:code'\n });\n });\n});","define(\"roseblack/routes/application\", [\"exports\", \"@ember/routing/route\", \"@ember/service\"], function (_exports, _route, _service) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.default = void 0;\n var _dec, _class, _descriptor;\n 0; //eaimeta@70e063a35619d71f0,\"@ember/routing/route\",0,\"@ember/service\"eaimeta@70e063a35619d71f\n function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\n function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n let ApplicationRoute = _exports.default = (_dec = (0, _service.service)('data'), (_class = class ApplicationRoute extends _route.default {\n constructor(...args) {\n super(...args);\n _initializerDefineProperty(this, \"dataService\", _descriptor, this);\n }\n model() {\n return this.dataService.menuGetAll();\n }\n }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"dataService\", [_dec], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n })), _class));\n});","define(\"roseblack/routes/category\", [\"exports\", \"@ember/routing/route\", \"@ember/service\"], function (_exports, _route, _service) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.default = void 0;\n var _class, _descriptor;\n 0; //eaimeta@70e063a35619d71f0,\"@ember/routing/route\",0,\"@ember/service\"eaimeta@70e063a35619d71f\n function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\n function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n let CategoryRoute = _exports.default = (_class = class CategoryRoute extends _route.default {\n constructor(...args) {\n super(...args);\n _initializerDefineProperty(this, \"data\", _descriptor, this);\n }\n model(params) {\n return this.data.categoryGet(params.code).then(c => new Promise(resolve => {\n this.data.productGetAll(c.code).then(p => {\n c.products = p;\n resolve(c);\n });\n }));\n }\n }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"data\", [_service.service], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n })), _class);\n});","define(\"roseblack/routes/index\", [\"exports\", \"@ember/routing/route\", \"@ember/service\"], function (_exports, _route, _service) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.default = void 0;\n var _class, _descriptor;\n 0; //eaimeta@70e063a35619d71f0,\"@ember/routing/route\",0,\"@ember/service\"eaimeta@70e063a35619d71f\n function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\n function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n let IndexRoute = _exports.default = (_class = class IndexRoute extends _route.default {\n constructor(...args) {\n super(...args);\n _initializerDefineProperty(this, \"data\", _descriptor, this);\n }\n model() {\n return this.data.pageGet(\"index\");\n }\n }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"data\", [_service.service], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n })), _class);\n});","define(\"roseblack/routes/page\", [\"exports\", \"@ember/routing/route\", \"@ember/service\"], function (_exports, _route, _service) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.default = void 0;\n var _class, _descriptor;\n 0; //eaimeta@70e063a35619d71f0,\"@ember/routing/route\",0,\"@ember/service\"eaimeta@70e063a35619d71f\n function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\n function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n let PageRoute = _exports.default = (_class = class PageRoute extends _route.default {\n constructor(...args) {\n super(...args);\n _initializerDefineProperty(this, \"data\", _descriptor, this);\n }\n model(params) {\n return this.data.pageGet(params.code);\n }\n }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"data\", [_service.service], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n })), _class);\n});","define(\"roseblack/routes/product\", [\"exports\", \"@ember/routing/route\", \"@ember/service\", \"@ember/object\"], function (_exports, _route, _service, _object) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.default = void 0;\n var _class, _descriptor, _descriptor2;\n 0; //eaimeta@70e063a35619d71f0,\"@ember/routing/route\",0,\"@ember/service\",0,\"@ember/object\"eaimeta@70e063a35619d71f\n function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\n function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n let ProductRoute = _exports.default = (_class = class ProductRoute extends _route.default {\n constructor(...args) {\n super(...args);\n _initializerDefineProperty(this, \"data\", _descriptor, this);\n _initializerDefineProperty(this, \"router\", _descriptor2, this);\n }\n model(params) {\n console.log(params.code);\n }\n }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"data\", [_service.service], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, \"router\", [_service.service], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n })), _class);\n});","define(\"roseblack/services/data\", [\"exports\", \"@ember/service\", \"@ember/template\"], function (_exports, _service, _template) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.default = void 0;\n 0; //eaimeta@70e063a35619d71f0,\"@ember/service\",0,\"@ember/template\"eaimeta@70e063a35619d71f\n function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\n function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n class DataService extends _service.default {\n constructor(...args) {\n super(...args);\n _defineProperty(this, \"categories\", [{\n id: 1,\n code: \"woman\",\n name: \"Woman\",\n parent: \"\",\n orderBy: 1\n }, {\n id: 2,\n code: \"woman-hair-bulk\",\n name: \"Hair Bulk\",\n parent: \"woman\",\n orderBy: 1\n }, {\n id: 3,\n code: \"woman-raw-hair-braids\",\n name: \"Raw Hair Braids\",\n parent: \"woman\",\n orderBy: 2\n }, {\n id: 4,\n code: \"woman-clip-in-hair\",\n name: \"Clip In Hair\",\n parent: \"woman\",\n orderBy: 3\n }, {\n id: 5,\n code: \"woman-hair-weft\",\n name: \"Hair Weft\",\n parent: \"woman\",\n orderBy: 4\n }, {\n id: 6,\n code: \"woman-tape-hair\",\n name: \"Tape Hair\",\n parent: \"woman\",\n orderBy: 5\n }, {\n id: 7,\n code: \"woman-micro-ring-and-keratin-hair\",\n name: \"Micro Ring & Keratin Hair\",\n parent: \"woman\",\n orderBy: 6\n }, {\n id: 8,\n code: \"woman-wig\",\n name: \"Wig\",\n parent: \"woman\",\n orderBy: 7\n }, {\n id: 9,\n code: \"woman-pony-tail\",\n name: \"Pony Tail\",\n parent: \"woman\",\n orderBy: 8\n }, {\n id: 10,\n code: \"woman-color-ring\",\n name: \"Color Ring\",\n parent: \"woman\",\n orderBy: 9\n }, {\n id: 11,\n code: \"man\",\n name: \"Man\",\n parent: \"\",\n orderBy: 2\n }, {\n id: 12,\n code: \"man-wig\",\n name: \"Wig\",\n parent: \"man\",\n orderBy: 1\n }, {\n id: 13,\n code: \"hair-extension-tools\",\n name: \"Hair Extension Tools\",\n parent: \"\",\n orderBy: 3\n }, {\n id: 14,\n code: \"hair-extension-tools-electronics\",\n name: \"Electronics\",\n parent: \"hair-extension-tools\",\n orderBy: 1\n }, {\n id: 15,\n code: \"hair-extension-tools-non-electronics\",\n name: \"Non-Electronics\",\n parent: \"hair-extension-tools\",\n orderBy: 2\n }]);\n _defineProperty(this, \"pages\", [{\n id: 1,\n code: \"index\",\n title: \"Rose & Black\",\n body: `Welcome to Rose & Black Web Site`\n }, {\n id: 2,\n code: \"about\",\n title: \"About Us\",\n body: `
Our Factory has been on the market production and sale And cooperation with many famous brands in the Market for over 30 years in china and is being continued in the second generation and New Showroom located in Turkey / Istanbul with a lot of innovation.
\n\n
We are specialists in wigs and Hair Extensions Hair Extensions Tools and offer you the most diverse range in all of Asia and Europe.
\n\n
We are at your service with our professional sales support system of 100 people more 50 engineers and 1000 production team to supply and deliver any product that a beauty salon or individual may request.
\n\n
Our Wig models and Hair Extensions are designed by our team of experts according to the current hair trends and manufactured for you using the latest technical findings - these represent the international trends in hair couture.
\n\n
New collections are constantly being developed for customers so that they can stand out on the market. A special, selected and particularly wide range of products makes it possible to work very specifically for target groups.
\n\n
Feel free to let Rose&Black inspire and advise you on the first-class variety of Wig models and Hair Extensions- we look forward to it!
`\n }, {\n id: 3,\n code: \"contact\",\n title: \"Contact Us\",\n body: `\n\n
Address | \nHan Plus İş Merkezi Kat:2 No:8 Esenyurt / İstanbul | \n
Whatsapp / Wechat | \n+86 137 2419 1954 (Sunny Yang) | \n
info@mesenas.com | \n|
mesenas_rose_black | \n|
Mesenas Hair | \n|
Linked In | \nMesenas / Rose & Black | \n
Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided.
\",\n category: \"woman-hair-bulk\",\n orderBy: 1,\n img: \"/images/products/woman-hair-bulk/hair-bulk.jpg\"\n }, {\n code: \"raw-hair-braids\",\n title: \"Raw Hair Braids\",\n description: \"Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided.
\",\n category: \"woman-raw-hair-braids\",\n orderBy: 2,\n img: \"/images/products/woman-raw-hair-braids/raw-hair-braids.jpg\"\n }, {\n code: \"regular-clip-in-hair\",\n title: \"Regular Clip In Hair\",\n description: \"Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided.
\",\n category: \"woman-clip-in-hair\",\n orderBy: 3,\n img: \"/images/products/woman-clip-in-hair/regular-clip-in-hair.jpg\"\n }, {\n code: \"lace-clip-in-hair\",\n title: \"Lace Clip In Hair\",\n description: \"Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided.
\",\n category: \"woman-clip-in-hair\",\n orderBy: 4,\n img: \"/images/products/woman-clip-in-hair/lace-clip-in-hair.jpg\"\n }, {\n code: \"pu-clip-in-hair\",\n title: \"PU Clip In Hair\",\n description: \"Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided.
\",\n category: \"woman-clip-in-hair\",\n orderBy: 5,\n img: \"/images/products/woman-clip-in-hair/pu-clip-in-hair.jpg\"\n }, {\n code: \"slim-pu-clip-in-hair\",\n title: \"Slim Pu Clip In Hair\",\n description: \"Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided.
\",\n category: \"woman-clip-in-hair\",\n orderBy: 6,\n img: \"/images/products/woman-clip-in-hair/slim-pu-clip-in-hair.jpg\"\n }, {\n code: \"halo-clip-in-hair\",\n title: \"Halo Clip In Hair\",\n description: \"Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided.
\",\n category: \"woman-clip-in-hair\",\n orderBy: 7,\n img: \"/images/products/woman-clip-in-hair/halo-clip-in-hair.jpg\"\n }, {\n code: \"seamless-injection-clip-in-hair\",\n title: \"Seamless Injection Clip In Hair\",\n description: \"Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided.
\",\n category: \"woman-clip-in-hair\",\n orderBy: 8,\n img: \"/images/products/woman-clip-in-hair/seamless-injection-clip-in-hair.jpg\"\n }, {\n code: \"machine-hair-weft\",\n title: \"Machine Hair Weft\",\n description: \"Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided.
\",\n category: \"woman-hair-weft\",\n orderBy: 9,\n img: \"/images/products/woman-hair-weft/machine-hair-weft.jpg\"\n }, {\n code: \"flat-weft\",\n title: \"Flat Weft\",\n description: \"Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided.
\",\n category: \"woman-hair-weft\",\n orderBy: 10,\n img: \"/images/products/woman-hair-weft/flat-weft.jpg\"\n }, {\n code: \"hole-pu-flat-weft\",\n title: \"Hole Pu Flat Weft\",\n description: \"Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided.
\",\n category: \"woman-hair-weft\",\n orderBy: 11,\n img: \"/images/products/woman-hair-weft/hole-pu-flat-weft.jpg\"\n }, {\n code: \"feather-hair-extension\",\n title: \"Feather Hair Extension\",\n description: \"Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided.
\",\n category: \"woman-hair-weft\",\n orderBy: 12,\n img: \"/images/products/woman-hair-weft/feather-hair-extension.webp\"\n }, {\n code: \"hand-tied-weft\",\n title: \"Hand-Tied Weft\",\n description: \"Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided.
\",\n category: \"woman-hair-weft\",\n orderBy: 13,\n img: \"/images/products/woman-hair-weft/hand-tied-weft.jpg\"\n }, {\n code: \"genius-weft\",\n title: \"Genius Weft\",\n description: \"Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided.
\",\n category: \"woman-hair-weft\",\n orderBy: 14,\n img: \"/images/products/woman-hair-weft/genius-weft.jpg\"\n }, {\n code: \"regular-tape-hair\",\n title: \"Regular Tape Hair\",\n description: \"Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided.
\",\n category: \"woman-tape-hair\",\n orderBy: 15,\n img: \"/images/products/woman-tape-hair/regular-tape-hair.jpg\"\n }, {\n code: \"slim-tape-hair\",\n title: \"Slim Tape Hair\",\n description: \"Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided.
\",\n category: \"woman-tape-hair\",\n orderBy: 16,\n img: \"/images/products/woman-tape-hair/slim-tape-hair.jpg\"\n }, {\n code: \"invisible-tape-hair\",\n title: \"Invisible Tape Hair\",\n description: \"Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided.
\",\n category: \"woman-tape-hair\",\n orderBy: 17,\n img: \"/images/products/woman-tape-hair/invisible-tape-hair.webp\"\n }, {\n code: \"sewing-tape-hair\",\n title: \"Sewing Tape Hair\",\n description: \"Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided.
\",\n category: \"woman-tape-hair\",\n orderBy: 18,\n img: \"/images/products/woman-tape-hair/sewing-tape-hair.webp\"\n }, {\n code: \"i-tip-hair\",\n title: \"I Tip Hair\",\n description: \"Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided.
\",\n category: \"woman-micro-ring-and-keratin-hair\",\n orderBy: 19,\n img: \"/images/products/woman-micro-ring-and-keratin-hair/i-tip-hair.jpg\"\n }, {\n code: \"u-tip-hair\",\n title: \"U Tip Hair\",\n description: \"Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided.
\",\n category: \"woman-micro-ring-and-keratin-hair\",\n orderBy: 20,\n img: \"/images/products/woman-micro-ring-and-keratin-hair/u-tip-hair.jpg\"\n }, {\n code: \"v-tip-hair\",\n title: \"V Tip Hair\",\n description: \"Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided.
\",\n category: \"woman-micro-ring-and-keratin-hair\",\n orderBy: 21,\n img: \"/images/products/woman-micro-ring-and-keratin-hair/v-tip-hair.jpg\"\n }, {\n code: \"flat-tip-hair\",\n title: \"Flat Tip Hair\",\n description: \"Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided.
\",\n category: \"woman-micro-ring-and-keratin-hair\",\n orderBy: 22,\n img: \"/images/products/woman-micro-ring-and-keratin-hair/flat-tip-hair.jpg\"\n }, {\n code: \"nano-tip-hair\",\n title: \"Nano Tip Hair\",\n description: \"Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided.
\",\n category: \"woman-micro-ring-and-keratin-hair\",\n orderBy: 23,\n img: \"/images/products/woman-micro-ring-and-keratin-hair/nano-tip-hair.jpg\"\n }, {\n code: \"micro-ring-loop-hair\",\n title: \"Micro Ring Loop Hair\",\n description: \"Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided.
\",\n category: \"woman-micro-ring-and-keratin-hair\",\n orderBy: 24,\n img: \"/images/products/woman-micro-ring-and-keratin-hair/micro-ring-loop-hair.jpg\"\n }, {\n code: \"mono-wig\",\n title: \"Mono Wig\",\n description: \"Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided.
\",\n category: \"woman-wig\",\n orderBy: 25,\n img: \"/images/products/woman-wig/mono-wig.jpg\"\n }, {\n code: \"toupee\",\n title: \"Toupee\",\n description: \"Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided.
\",\n category: \"woman-wig\",\n orderBy: 26,\n img: \"/images/products/woman-wig/toupee.jpg\"\n }, {\n code: \"topper\",\n title: \"Topper\",\n description: \"Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided.
\",\n category: \"woman-wig\",\n orderBy: 27,\n img: \"/images/products/woman-wig/topper.jpg\"\n }, {\n code: \"lace-wig\",\n title: \"Lace Wig\",\n description: \"Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided.
\",\n category: \"woman-wig\",\n orderBy: 28,\n img: \"/images/products/woman-wig/lace-wig.jpg\"\n }, {\n code: \"jewish-wig\",\n title: \"Jewish Wig\",\n description: \"Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided.
\",\n category: \"woman-wig\",\n orderBy: 29,\n img: \"/images/products/woman-wig/jewish-wig.jpg\"\n }, {\n code: \"pony-tail\",\n title: \"Pony Tail\",\n description: \"Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided.
\",\n category: \"woman-pony-tail\",\n orderBy: 30,\n img: \"/images/products/woman-pony-tail/pony-tail.jpg\"\n }, {\n code: \"color-ring\",\n title: \"Color Ring\",\n description: \"Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided. Detailed information about the product will be provided.
Detailed information about the product will be provided. Detailed information about the product will be provided.
\",\n category: \"woman-color-ring\",\n orderBy: 31,\n img: \"/images/products/woman-color-ring/color-ring.jpg\"\n }]);\n }\n pageGet(code) {\n let page = this.pages.filter(p => p.code == code);\n if (page.length == 1) {\n page[0].body = (0, _template.htmlSafe)(page[0].body);\n return Promise.resolve(page[0]);\n } else return Promise.reject(new Error(`Page not found! code:${code}`));\n }\n productGetAll(category) {\n if (category) return Promise.resolve(this.products.filter(p => p.category.startsWith(category)));\n return Promise.resolve(this.products);\n }\n categoryGetAll() {\n let categories = this.categories;\n categories.forEach(c => c.hasSubItems = categories.filter(f => f.parent == c.code).length > 0);\n return Promise.resolve(categories);\n }\n categoryGet(code) {\n let categories = this.categories.filter(c => c.code == code);\n if (categories.length == 1) return Promise.resolve(categories[0]);\n return Promise.reject(new Error(`Category not found! code:${code}`));\n }\n menuGetAll() {\n return this.categoryGetAll().then(c => {\n let menu = [];\n let index = 1;\n menu.push({\n id: index++,\n code: 'rose-and-black',\n name: 'Rose & Black',\n path: '/',\n parent: ''\n });\n c.forEach(category => menu.push({\n id: index++,\n code: category.code,\n name: category.name,\n path: category.hasSubItems ? null : `/category/${category.code}`,\n parent: category.parent\n }));\n menu.push({\n id: index++,\n code: 'instituonal',\n name: 'Instituonal',\n path: null,\n parent: ''\n });\n menu.push({\n id: index++,\n code: 'about',\n name: 'About Us',\n path: '/page/about',\n parent: 'instituonal'\n });\n menu.push({\n id: index++,\n code: 'contact',\n name: 'Contact Us',\n path: '/page/contact',\n parent: 'instituonal'\n });\n return menu;\n }).then(menu => {\n let newMenu = menu.filter(m => m.parent == '');\n newMenu.forEach(m => {\n m.items = menu.filter(x => x.parent == m.code);\n });\n return newMenu;\n });\n }\n }\n _exports.default = DataService;\n});","define(\"roseblack/services/page-title\", [\"exports\", \"ember-page-title/services/page-title\"], function (_exports, _pageTitle) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n Object.defineProperty(_exports, \"default\", {\n enumerable: true,\n get: function () {\n return _pageTitle.default;\n }\n });\n 0; //eaimeta@70e063a35619d71f0,\"ember-page-title/services/page-title\"eaimeta@70e063a35619d71f\n});","define(\"roseblack/services/store\", [\"exports\", \"@ember/debug\", \"ember-data/store\"], function (_exports, _debug, _store) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n Object.defineProperty(_exports, \"default\", {\n enumerable: true,\n get: function () {\n return _store.default;\n }\n });\n 0; //eaimeta@70e063a35619d71f0,\"@ember/debug\",0,\"ember-data/store\"eaimeta@70e063a35619d71f\n (true && !(false) && (0, _debug.deprecate)(\"You are relying on ember-data auto-magically installing the store service. Use `export { default } from 'ember-data/store';` in app/services/store.js instead\", false, {\n id: 'ember-data:deprecate-legacy-imports',\n for: 'ember-data',\n until: '6.0',\n since: {\n enabled: '5.2',\n available: '5.2'\n }\n }));\n});","define(\"roseblack/templates/application\", [\"exports\", \"@ember/template-factory\"], function (_exports, _templateFactory) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.default = void 0;\n 0; //eaimeta@70e063a35619d71f0,\"ember-cli-htmlbars\"eaimeta@70e063a35619d71f\n var _default = _exports.default = (0, _templateFactory.createTemplateFactory)(\n /*\n {{page-title \"Roseblack\"}}\n {{#if @model}}\n \n {{/if}}\n \n