{"version":3,"sources":["./node_modules/@angular/localize/fesm2015/init.js","./node_modules/moment/locale sync ^\\.\\/.*$","./src/app/app.component.html","./src/app/pages/not-found/not-found.component.html","./src/app/pages/pages.component.html","./src/app/shared/banners/banners.component.html","./src/app/shared/billing-form/billing-form.component.html","./src/app/shared/booking/booking.component.html","./src/app/shared/brands-carousel/brands-carousel.component.html","./src/app/shared/cart-summary/cart-summary.component.html","./src/app/shared/cart-widget/cart-widget.component.html","./src/app/shared/confirmation/confirmation.component.html","./src/app/shared/dialog/dialog.component.html","./src/app/shared/main-carousel/main-carousel.component.html","./src/app/shared/places-autocomplete/places-autocomplete.component.html","./src/app/shared/products-carousel/product-dialog/product-dialog.component.html","./src/app/shared/products-carousel/products-carousel.component.html","./src/app/shared/rating/rating.component.html","./src/app/theme/components/breadcrumb/breadcrumb.component.html","./src/app/theme/components/footer/footer.component.html","./src/app/theme/components/menu/menu.component.html","./src/app/theme/components/sidenav-menu/sidenav-menu.component.html","./src/app/theme/components/top-menu/top-menu.component.html","./src/$_lazy_route_resource lazy namespace object","./src/app/app-config.service.ts","./src/app/app.component.scss","./src/app/app.component.ts","./src/app/app.models.ts","./src/app/app.module.ts","./src/app/app.routing.ts","./src/app/app.service.ts","./src/app/app.settings.ts","./src/app/cartservice/booking.service.ts","./src/app/cartservice/calculate.service.ts","./src/app/cartservice/cart.service.ts","./src/app/cartservice/order.service.ts","./src/app/cartservice/total.service.ts","./src/app/content/content-menu.service.ts","./src/app/content/content-package.service.ts","./src/app/content/content.service.ts","./src/app/core/auth.service.ts","./src/app/core/exception-service.service.ts","./src/app/core/global-error-handler.ts","./src/app/core/hascommon.service.ts","./src/app/core/local-storage.service.ts","./src/app/core/locale.service.ts","./src/app/core/logging.service.ts","./src/app/core/notification.service.ts","./src/app/data/data-api.service.ts","./src/app/pages/not-found/not-found.component.scss","./src/app/pages/not-found/not-found.component.ts","./src/app/pages/pages.component.scss","./src/app/pages/pages.component.ts","./src/app/services/payment.service.ts","./src/app/shared/banners/banners.component.scss","./src/app/shared/banners/banners.component.ts","./src/app/shared/billing-form/billing-form.component.css","./src/app/shared/billing-form/billing-form.component.ts","./src/app/shared/booking/booking.component.scss","./src/app/shared/booking/booking.component.ts","./src/app/shared/brands-carousel/brands-carousel.component.scss","./src/app/shared/brands-carousel/brands-carousel.component.ts","./src/app/shared/cart-summary/cart-summary.component.scss","./src/app/shared/cart-summary/cart-summary.component.ts","./src/app/shared/cart-widget/cart-widget.component.css","./src/app/shared/cart-widget/cart-widget.component.ts","./src/app/shared/confirmation/confirmation.component.ts","./src/app/shared/dialog/dialog.component.scss","./src/app/shared/dialog/dialog.component.ts","./src/app/shared/main-carousel/main-carousel.component.scss","./src/app/shared/main-carousel/main-carousel.component.ts","./src/app/shared/places-autocomplete/places-autocomplete.component.css","./src/app/shared/places-autocomplete/places-autocomplete.component.ts","./src/app/shared/products-carousel/product-dialog/product-dialog.component.scss","./src/app/shared/products-carousel/product-dialog/product-dialog.component.ts","./src/app/shared/products-carousel/products-carousel.component.scss","./src/app/shared/products-carousel/products-carousel.component.ts","./src/app/shared/rating/rating.component.scss","./src/app/shared/rating/rating.component.ts","./src/app/shared/shared.module.ts","./src/app/theme/components/breadcrumb/breadcrumb.component.scss","./src/app/theme/components/breadcrumb/breadcrumb.component.ts","./src/app/theme/components/footer/footer.component.scss","./src/app/theme/components/footer/footer.component.ts","./src/app/theme/components/menu/menu.component.scss","./src/app/theme/components/menu/menu.component.ts","./src/app/theme/components/sidenav-menu/sidenav-menu.component.scss","./src/app/theme/components/sidenav-menu/sidenav-menu.component.ts","./src/app/theme/components/sidenav-menu/sidenav-menu.model.ts","./src/app/theme/components/sidenav-menu/sidenav-menu.service.ts","./src/app/theme/components/sidenav-menu/sidenav-menu.ts","./src/app/theme/components/top-menu/top-menu.component.ts","./src/app/theme/pipes/filter-by-category.pipe.ts","./src/app/theme/pipes/filter-by-package.pipe.ts","./src/app/theme/pipes/filter-by-product.pipe.ts","./src/app/theme/pipes/filter-option-by-product.pipe.ts","./src/app/theme/pipes/has-currency.pipe.ts","./src/app/theme/pipes/has-date.pipe.ts","./src/app/theme/pipes/has-number.pipe.ts","./src/app/theme/pipes/pipes.module.ts","./src/app/theme/pipes/sort-by.pipe.ts","./src/app/theme/utils/app-interceptor.ts","./src/app/theme/utils/custom-overlay-container.ts","./src/app/theme/utils/scroll-strategy.ts","./src/environments/environment.ts","./src/main.ts"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA,mCAAmC;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,KAAK,cAAc,aAAa;AACnD;AACA;AACA,0CAA0C,IAAI,aAAa,MAAM;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,aAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,MAAM,YAAY;AAClC;AACA,gBAAgB,MAAM,MAAM;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,6BAA6B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,IAAI;AACrE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACrMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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","file":"main-es2015.js","sourcesContent":["/**\n * @license Angular v10.2.5\n * (c) 2010-2020 Google LLC. https://angular.io/\n * License: MIT\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst __globalThis = typeof globalThis !== 'undefined' && globalThis;\nconst __window = typeof window !== 'undefined' && window;\nconst __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&\n self instanceof WorkerGlobalScope && self;\nconst __global = typeof global !== 'undefined' && global;\n// Always use __globalThis if available; this is the spec-defined global variable across all\n// environments.\n// Then fallback to __global first; in Node tests both __global and __window may be defined.\nconst _global = __globalThis || __global || __window || __self;\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Tag a template literal string for localization.\n *\n * For example:\n *\n * ```ts\n * $localize `some string to localize`\n * ```\n *\n * **Providing meaning, description and id**\n *\n * You can optionally specify one or more of `meaning`, `description` and `id` for a localized\n * string by pre-pending it with a colon delimited block of the form:\n *\n * ```ts\n * $localize`:meaning|description@@id:source message text`;\n *\n * $localize`:meaning|:source message text`;\n * $localize`:description:source message text`;\n * $localize`:@@id:source message text`;\n * ```\n *\n * This format is the same as that used for `i18n` markers in Angular templates. See the\n * [Angular 18n guide](guide/i18n#template-translations).\n *\n * **Naming placeholders**\n *\n * If the template literal string contains expressions, then the expressions will be automatically\n * associated with placeholder names for you.\n *\n * For example:\n *\n * ```ts\n * $localize `Hi ${name}! There are ${items.length} items.`;\n * ```\n *\n * will generate a message-source of `Hi {$PH}! There are {$PH_1} items`.\n *\n * The recommended practice is to name the placeholder associated with each expression though.\n *\n * Do this by providing the placeholder name wrapped in `:` characters directly after the\n * expression. These placeholder names are stripped out of the rendered localized string.\n *\n * For example, to name the `items.length` expression placeholder `itemCount` you write:\n *\n * ```ts\n * $localize `There are ${items.length}:itemCount: items`;\n * ```\n *\n * **Escaping colon markers**\n *\n * If you need to use a `:` character directly at the start of a tagged string that has no\n * metadata block, or directly after a substitution expression that has no name you must escape\n * the `:` by preceding it with a backslash:\n *\n * For example:\n *\n * ```ts\n * // message has a metadata block so no need to escape colon\n * $localize `:some description::this message starts with a colon (:)`;\n * // no metadata block so the colon must be escaped\n * $localize `\\:this message starts with a colon (:)`;\n * ```\n *\n * ```ts\n * // named substitution so no need to escape colon\n * $localize `${label}:label:: ${}`\n * // anonymous substitution so colon must be escaped\n * $localize `${label}\\: ${}`\n * ```\n *\n * **Processing localized strings:**\n *\n * There are three scenarios:\n *\n * * **compile-time inlining**: the `$localize` tag is transformed at compile time by a\n * transpiler, removing the tag and replacing the template literal string with a translated\n * literal string from a collection of translations provided to the transpilation tool.\n *\n * * **run-time evaluation**: the `$localize` tag is a run-time function that replaces and\n * reorders the parts (static strings and expressions) of the template literal string with strings\n * from a collection of translations loaded at run-time.\n *\n * * **pass-through evaluation**: the `$localize` tag is a run-time function that simply evaluates\n * the original template literal string without applying any translations to the parts. This\n * version is used during development or where there is no need to translate the localized\n * template literals.\n * @param messageParts a collection of the static parts of the template string.\n * @param expressions a collection of the values of each placeholder in the template string.\n * @returns the translated string, with the `messageParts` and `expressions` interleaved together.\n */\nconst $localize = function (messageParts, ...expressions) {\n if ($localize.translate) {\n // Don't use array expansion here to avoid the compiler adding `__read()` helper unnecessarily.\n const translation = $localize.translate(messageParts, expressions);\n messageParts = translation[0];\n expressions = translation[1];\n }\n let message = stripBlock(messageParts[0], messageParts.raw[0]);\n for (let i = 1; i < messageParts.length; i++) {\n message += expressions[i - 1] + stripBlock(messageParts[i], messageParts.raw[i]);\n }\n return message;\n};\nconst BLOCK_MARKER = ':';\n/**\n * Strip a delimited \"block\" from the start of the `messagePart`, if it is found.\n *\n * If a marker character (:) actually appears in the content at the start of a tagged string or\n * after a substitution expression, where a block has not been provided the character must be\n * escaped with a backslash, `\\:`. This function checks for this by looking at the `raw`\n * messagePart, which should still contain the backslash.\n *\n * @param messagePart The cooked message part to process.\n * @param rawMessagePart The raw message part to check.\n * @returns the message part with the placeholder name stripped, if found.\n * @throws an error if the block is unterminated\n */\nfunction stripBlock(messagePart, rawMessagePart) {\n return rawMessagePart.charAt(0) === BLOCK_MARKER ?\n messagePart.substring(findEndOfBlock(messagePart, rawMessagePart) + 1) :\n messagePart;\n}\n/**\n * Find the end of a \"marked block\" indicated by the first non-escaped colon.\n *\n * @param cooked The cooked string (where escaped chars have been processed)\n * @param raw The raw string (where escape sequences are still in place)\n *\n * @returns the index of the end of block marker\n * @throws an error if the block is unterminated\n */\nfunction findEndOfBlock(cooked, raw) {\n /***********************************************************************************************\n * This function is repeated in `src/utils/messages.ts` and the two should be kept in sync.\n * The reason is that this file is marked as having side-effects, and if we import `messages.ts`\n * into it, the whole of `src/utils` will be included in this bundle and none of the functions\n * will be tree shaken.\n ***********************************************************************************************/\n for (let cookedIndex = 1, rawIndex = 1; cookedIndex < cooked.length; cookedIndex++, rawIndex++) {\n if (raw[rawIndex] === '\\\\') {\n rawIndex++;\n }\n else if (cooked[cookedIndex] === BLOCK_MARKER) {\n return cookedIndex;\n }\n }\n throw new Error(`Unterminated $localize metadata block in \"${raw}\".`);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Attach $localize to the global context, as a side-effect of this module.\n_global.$localize = $localize;\n//# sourceMappingURL=init.js.map\n","var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ps\": \"./node_modules/moment/locale/ar-ps.js\",\n\t\"./ar-ps.js\": \"./node_modules/moment/locale/ar-ps.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn-bd\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn-bd.js\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-in\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-in.js\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-sg\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./en-sg.js\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-mx\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-mx.js\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fil\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fil.js\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-deva\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-deva.js\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ku-kmr\": \"./node_modules/moment/locale/ku-kmr.js\",\n\t\"./ku-kmr.js\": \"./node_modules/moment/locale/ku-kmr.js\",\n\t\"./ku.js\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./oc-lnc\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./oc-lnc.js\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tk\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tk.js\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-mo\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-mo.js\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","export default \"
\\r\\n \\r\\n \\r\\n
\\r\\n\";","export default \"
\\r\\n
\\r\\n \\r\\n
\\r\\n error\\r\\n

404

\\r\\n
\\r\\n \\r\\n \\r\\n

Opps, it seems that this page does not exist.

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n arrow_upward\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\";","export default \"
0\\\">\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{getBanner(0).title}}

\\r\\n

{{getBanner(0).subtitle}}

\\r\\n {{banners[0].calltoAction}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{getBanner(0).title}}

\\r\\n

{{getBanner(0).subtitle}}

\\r\\n {{banners[0].calltoAction}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Name\\r\\n \\r\\n Name is required\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Company\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Vat reg\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Phone\\r\\n \\r\\n Phone is required\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Address\\r\\n \\r\\n Address is required\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Notes for our admin/ delivery team\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Name:

\\r\\n

{{cart.Data.name}}

\\r\\n
\\r\\n
\\r\\n

Phone:

\\r\\n

{{cart.Data.phone}}

\\r\\n
\\r\\n
\\r\\n

Address:

\\r\\n

{{cart.Data.billing}}

\\r\\n
\\r\\n
\\r\\n

Notes:

\\r\\n

{{cart.Data.notes}}

\\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n clear\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n clear\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{needsEndDate()?'Unselect for no end date or enter end date':'I have an end date'}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Package\\r\\n \\r\\n \\r\\n {{packag.name}}{{getPackageMsg(packag, cart.Data,id)}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n Options\\r\\n \\r\\n \\r\\n \\r\\n {{getOptionName(option)}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Please note, this item cannot be payed for online\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n
\\r\\n
Item
\\r\\n
Qty
\\r\\n
Name
\\r\\n
Description
\\r\\n
Start
\\r\\n
Frequency
\\r\\n
Description
\\r\\n
Duration
\\r\\n
Price
\\r\\n
Ex {{content.taxName}}
\\r\\n
{{content.taxName}}
\\r\\n
Total
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
30\\\" [src]=\\\"item.picture\\\">
\\r\\n \\r\\n
{{item.csQty}}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{qty}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
{{item.name}}
\\r\\n
{{item.chargeDesc}}
\\r\\n
\\r\\n {{cart.Data.start | hasDate}}\\r\\n
\\r\\n
{{item.csFreqQty}}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{csFreqQty}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
{{('per ' + item.freqDescr).toLowerCase()}}
\\r\\n
\\r\\n {{item.csDurationQty}} {{item.csDurationDesc}}\\r\\n
\\r\\n
{{item.price|hasCurrency}}
\\r\\n
{{total.getLineTotal(item) | hasCurrency}}
\\r\\n
{{total.getLineVat(total.getLineTotal(item),item.vatRate)| hasCurrency}}
\\r\\n
{{total.getLineTotalWithVat(item) | hasCurrency}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\";","export default \"
0\\\" class=\\\"cart-dropdown-footer\\\">\\r\\n
\\r\\n
\\r\\n Deliver to:\\r\\n {{cart.Data.address}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n

{{item.name}}

\\r\\n

\\r\\n {{total.getLineTotal(item) | hasCurrency}}\\r\\n

\\r\\n 30\\\" [src]=\\\"item.picture\\\" style=\\\"max-height:50px\\\">\\r\\n \\r\\n
\\r\\n
\\r\\n
0\\\" class=\\\"cart-dropdown-footer\\\">\\r\\n
\\r\\n
\\r\\n Total ex vat:\\r\\n {{total.getTotalExVat(cart.Data.cartList) | hasCurrency}}\\r\\n
\\r\\n
\\r\\n
\\r\\n Vat:\\r\\n {{total.getTotalVat(cart.Data.cartList) | hasCurrency}}\\r\\n
\\r\\n
\\r\\n
\\r\\n TOTAL:\\r\\n {{total.getTotalWithVat(cart.Data.cartList) | hasCurrency}}\\r\\n
\\r\\n\\r\\n
\\r\\n\";","export default \"
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n

Congratulations! Your request is being processed

\\r\\n

A company representative will contact you shortly to confirm your booking.

\\r\\n
\\r\\n
\\r\\n Return to Shop\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n

Payment cancelled.

\\r\\n
\\r\\n
\\r\\n Return to Shop\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\";","export default \"

{{ title }}

\\r\\n

{{ subTitle }}

\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\";","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{slide.title}}

\\r\\n

{{slide.subtitle}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\";","export default \"\\r\\n {{label||'Address'}}\\r\\n \\r\\n Address not found within web ordering delivery area.\\r\\n Contact us for a quote\\r\\n\\r\\n\\r\\n\";","export default \"
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

{{product.name}}

\\r\\n
\\r\\n

Category:

\\r\\n

Availibility: {{ (product.availibilityCount > 0) ? 'In stock':'Unavailable'}}

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n

{{product.description}}

\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n

${{product.newPrice}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n

Browse by {{caption}}

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{product.name}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\";","export default \"
\\r\\n
\\r\\n {{star}}\\r\\n
\\r\\n

{{ratingsCount}} ratings

\\r\\n
\";","export default \"
\\r\\n
\\r\\n \\r\\n \\r\\n home\\r\\n Homepage\\r\\n \\r\\n
\\r\\n {{breadcrumb.name}} \\r\\n {{breadcrumb.name}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\";","export default \"\\r\\n\";","export default \"\\r\\n
\\r\\n {{item.caption}}\\r\\n {{item.caption}}arrow_drop_down\\r\\n \\r\\n {{subitem.caption}}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\";","export default \"
\\r\\n \\r\\n {{item.caption}}\\r\\n \\r\\n \\r\\n \\r\\n {{item.caption}}\\r\\n arrow_drop_down\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n \\r\\n \\r\\n place\\r\\n {{cart.Data.address?.substr(0,9)}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{cart.Data.branch.name}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Login/Register\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n person Welcome {{getName(currentUser.userName)}}!\\r\\n arrow_drop_down\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n settings\\r\\n Account\\r\\n \\r\\n
\\r\\n \\r\\n power_settings_new\\r\\n Sign Out\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n shopping_cart\\r\\n \\r\\n arrow_drop_down\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n VIEW CART\\r\\n
\\r\\n
\\r\\n
You have no items in your shopping cart.
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n check\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\";","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";","import { Injectable } from '@angular/core';\r\nimport { DataApiService } from './data/data-api.service';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AppConfigService {\r\n\r\n public tenants;\r\n\r\n constructor(private dataApi: DataApiService, private http: HttpClient) { }\r\n\r\n load(): Promise {\r\n const url = this.dataApi.getUrl('getAll', 'Tenants');\r\n const promise = this.http.get(url)\r\n .toPromise()\r\n .then(data => {\r\n this.tenants= data;\r\n return data;\r\n });\r\n\r\n return promise;\r\n }\r\n \r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuc2NzcyJ9 */\";","import { Component} from '@angular/core';\r\nimport { Router, NavigationEnd, RouterEvent, NavigationStart } from '@angular/router';\r\nimport { Settings, AppSettings } from './app.settings';\r\nimport { filter } from 'rxjs/internal/operators/filter';\r\nimport { ContentService } from './content/content.service';\r\nimport { DataApiService } from './data/data-api.service';\r\nimport { BookingService } from './cartservice/booking.service';\r\nimport { AppConfigService } from './app-config.service';\r\n\r\n// helpers\r\nconst addPath = (urlAndQuery: string[]) => urlAndQuery[0] ? '/' + urlAndQuery[0] : '';\r\nconst addQuery = (urlAndQuery: string[]) => urlAndQuery[1] ? '?' + urlAndQuery[1] : '';\r\n\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent {\r\n //loading: boolean = false;\r\n public settings: Settings;\r\n // store current tenant\r\n private activeTenant: string;\r\n private currentTenant: string;\r\n\r\n constructor(public appSettings: AppSettings, public router: Router,\r\n public content: ContentService,\r\n public book: BookingService,\r\n public dataApi: DataApiService,\r\n public config: AppConfigService) {\r\n this.settings = this.appSettings.settings;\r\n }\r\n\r\n ngOnInit() {\r\n // this.router.navigate(['']); //redirect other pages to homepage on browser refresh\r\n const tenants = this.config.tenants;\r\n const defaultTenant = 'Shreddoc0';\r\n this.router.events\r\n // filter for NavigationStart events only\r\n .pipe(filter((event: RouterEvent) => event instanceof NavigationStart))\r\n .subscribe((event: NavigationStart) => {\r\n const url = event.url === '/' ? '' : event.url;\r\n const urlAndQuery = url.split('?');\r\n const pathMap = urlAndQuery[0].split('/');\r\n // first element is an empty string, second element of the path segments is the tenant\r\n const firstPathPart = pathMap[1];\r\n const firstPathPartLC = firstPathPart ? firstPathPart.toLowerCase() : firstPathPart;\r\n\r\n // a known tenant is in the url path (in case of a direct page load)\r\n if (tenants.map((a) => { return a.toLowerCase() }).includes(firstPathPartLC)\r\n || firstPathPartLC === defaultTenant.toLowerCase()) {\r\n\r\n // if tenant has changed, store it\r\n if (!this.activeTenant || firstPathPartLC !== this.activeTenant.toLowerCase()) {\r\n this.activeTenant = firstPathPart;\r\n }\r\n\r\n } else {\r\n // no tenant in the path, so add the stored activeTenant or default\r\n let prefix;\r\n if (this.activeTenant) {\r\n prefix = this.activeTenant;\r\n } else {\r\n prefix = defaultTenant;\r\n }\r\n\r\n // finally build url of tenant prefix, path and query params \r\n const redirectUrl = '/' + prefix + addPath(urlAndQuery) + addQuery(urlAndQuery);\r\n this.router.navigate([redirectUrl]);\r\n }\r\n if (this.currentTenant !== this.activeTenant) {\r\n this.currentTenant = this.activeTenant \r\n if (this.currentTenant) {\r\n this.dataApi.tenantName = this.currentTenant;\r\n this.content.contentLoaded.subscribe(c => {\r\n if (c) {\r\n this.book.storageGetAll();\r\n }\r\n });\r\n this.content.getAllContent();\r\n }\r\n }\r\n\r\n\r\n });\r\n }\r\n\r\n ngAfterViewInit(){\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationEnd) {\r\n window.scrollTo(0,0);\r\n }\r\n }) \r\n }\r\n}\r\n","export class Category {\r\n constructor(public id: number, \r\n public name:string, \r\n public hasSubCategory: boolean,\r\n public parentId: number){ }\r\n}\r\n\r\nexport class Product {\r\n constructor(public id: number,\r\n public name: string,\r\n public images: Array,\r\n public pics: Array,\r\n public oldPrice: number,\r\n public newPrice: number,\r\n public discount: number,\r\n public ratingsCount: number,\r\n public ratingsValue: number,\r\n public description: string,\r\n public availibilityCount: number,\r\n public cartCount: number,\r\n public color: Array,\r\n public size: Array,\r\n public weight: number,\r\n public categoryId: number,\r\n public level: string,\r\n public descriptionDetail:string\r\n ) { }\r\n}\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule, LOCALE_ID, DEFAULT_CURRENCY_CODE, APP_INITIALIZER, ErrorHandler } from '@angular/core';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { NgxSpinnerModule } from 'ngx-spinner';\r\nimport { AgmCoreModule } from '@agm/core';\r\n\r\nimport { OverlayContainer, Overlay } from '@angular/cdk/overlay';\r\nimport { MAT_MENU_SCROLL_STRATEGY } from '@angular/material/menu';\r\nimport { CustomOverlayContainer } from './theme/utils/custom-overlay-container';\r\nimport { menuScrollStrategy } from './theme/utils/scroll-strategy';\r\n\r\nimport { SharedModule } from './shared/shared.module';\r\nimport { routing } from './app.routing';\r\nimport { AppComponent } from './app.component';\r\nimport { PagesComponent } from './pages/pages.component';\r\nimport { NotFoundComponent } from './pages/not-found/not-found.component';\r\nimport { TopMenuComponent } from './theme/components/top-menu/top-menu.component';\r\nimport { MenuComponent } from './theme/components/menu/menu.component';\r\nimport { SidenavMenuComponent } from './theme/components/sidenav-menu/sidenav-menu.component';\r\nimport { BreadcrumbComponent } from './theme/components/breadcrumb/breadcrumb.component';\r\n\r\nimport { AppSettings } from './app.settings';\r\nimport { AppService } from './app.service';\r\nimport { AppInterceptor } from './theme/utils/app-interceptor';\r\nimport { FooterComponent } from './theme/components/footer/footer.component';\r\n\r\nimport { getLocaleCurrencyCode } from '@angular/common';\r\nimport { LocaleService } from './core/locale.service';\r\nimport { AppConfigService } from './app-config.service';\r\nimport { GlobalErrorHandler } from './core/global-error-handler';\r\n\r\nexport function _getDefaultCurrencyCode(localeId: string): string {\r\n return getLocaleCurrencyCode(localeId) || 'USD';\r\n}\r\n\r\nexport function appInit(appConfigService: AppConfigService) {\r\n return () => appConfigService.load();\r\n}\r\n\r\n@NgModule({\r\n imports: [\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n HttpClientModule,\r\n NgxSpinnerModule,\r\n AgmCoreModule.forRoot({\r\n apiKey: 'AIzaSyCe0eHIr5JMsNj06KDaumu8-CGruBAB2n4',\r\n libraries: ['places','geometry']\r\n }),\r\n SharedModule,\r\n routing\r\n ],\r\n declarations: [\r\n AppComponent,\r\n PagesComponent,\r\n NotFoundComponent,\r\n TopMenuComponent,\r\n MenuComponent,\r\n SidenavMenuComponent,\r\n BreadcrumbComponent,\r\n FooterComponent\r\n ], \r\n providers: [\r\n AppSettings,\r\n AppService,\r\n { provide: ErrorHandler, useClass: GlobalErrorHandler },\r\n { provide: OverlayContainer, useClass: CustomOverlayContainer },\r\n { provide: MAT_MENU_SCROLL_STRATEGY, useFactory: menuScrollStrategy, deps: [Overlay] },\r\n { provide: HTTP_INTERCEPTORS, useClass: AppInterceptor, multi: true },\r\n {\r\n provide: LOCALE_ID,\r\n deps: [LocaleService],\r\n useFactory: (LocaleService: { locale: string; }) => LocaleService.locale\r\n }, {\r\n provide: APP_INITIALIZER,\r\n useFactory: appInit,\r\n multi: true,\r\n deps: [AppConfigService]\r\n }\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","import { Routes, RouterModule, PreloadAllModules } from '@angular/router';\r\nimport { ModuleWithProviders } from '@angular/core';\r\n\r\nimport { PagesComponent } from './pages/pages.component';\r\nimport { NotFoundComponent } from './pages/not-found/not-found.component';\r\n\r\nexport const routes: Routes = [\r\n {\r\n path: ':tenant',\r\n children: [{ \r\n path: '', \r\n component: PagesComponent, children: [\r\n { path: '', loadChildren: () => import('./pages/home/home.module').then(m => m.HomeModule) },\r\n { path: 'account', loadChildren: () => import('./pages/account/account.module').then(m => m.AccountModule), data: { breadcrumb: 'Account Settings' } },\r\n { path: 'cart', loadChildren: () => import('./pages/cart/cart.module').then(m => m.CartModule), data: { breadcrumb: 'Cart' } },\r\n { path: 'checkout', loadChildren: () => import('./pages/checkout/checkout.module').then(m => m.CheckoutModule), data: { breadcrumb: 'Checkout' } },\r\n { path: 'contact', loadChildren: () => import('./pages/contact/contact.module').then(m => m.ContactModule), data: { breadcrumb: 'Contact' } },\r\n { path: 'login', loadChildren: () => import('./pages/sign-in/sign-in.module').then(m => m.SignInModule), data: { breadcrumb: 'Login ' } },\r\n { path: 'products', loadChildren: () => import('./pages/products/products.module').then(m => m.ProductsModule), data: { breadcrumb: 'All Products' } }\r\n ]\r\n },\r\n { path: '**', component: NotFoundComponent }]\r\n }\r\n];\r\n\r\nexport const routing: ModuleWithProviders = RouterModule.forRoot(routes, {\r\n preloadingStrategy: PreloadAllModules, // <- comment this line for activate lazy load\r\n // useHash: true\r\n});\r\n\r\n","import { Injectable} from '@angular/core';\r\n\r\n\r\n\r\n\r\n@Injectable()\r\nexport class AppService {\r\n \r\n public url = \"assets/data/\";\r\n\r\n constructor() { }\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n\r\n \r\n\r\n\r\n\r\n \r\n\r\n} \r\n","import { Injectable } from '@angular/core';\r\n\r\nexport class Settings {\r\n constructor(public name: string,\r\n public theme: string,\r\n public rtl: boolean) { }\r\n}\r\n\r\n@Injectable()\r\nexport class AppSettings {\r\n public settings = new Settings(\r\n 'Bookhas', // theme name\r\n 'grey', // green, blue, red, pink, purple, grey\r\n false // true = rtl, false = ltr\r\n )\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CommonService } from '../core/hascommon.service';\r\nimport { CartService } from './cart.service';\r\nimport { ContentService } from '../content/content.service';\r\nimport { SharedData } from '../data/models/shared-data';\r\nimport { DataApiService } from '../data/data-api.service';\r\nimport { LocalTenantStorageService } from '../core/local-storage.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BookingService {\r\n\r\n constructor(public common: CommonService,\r\n public dataApi: DataApiService,\r\n public content: ContentService,\r\n private cart: CartService,\r\n private tenantStorage: LocalTenantStorageService) { }\r\n\r\n storageGetAll() { \r\n this.cart.loadStorage();\r\n this.cart.storageSet(this.cart.Data);\r\n }\r\n\r\n public addBookingFormDetails(data: SharedData, address: string, gps: string, areaID: number) {\r\n data.address = address;\r\n data.areaID = areaID;\r\n data.gps = gps;\r\n this.updateBranch(data, areaID)\r\n }\r\n\r\n\r\n updateBranch(data: SharedData, areaID) {\r\n if (!areaID) { return null; }\r\n const area = this.common.arrayGetFirstMatchingObject(this.content.areaGroups, [{ prop: 'areaID', filterId: areaID }]);\r\n const branch = this.common.arrayGetFirstMatchingObject(this.content.branches, [{ prop: 'branchID', filterId: area.branchID }]);\r\n data.branch = branch;\r\n }\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { SharedData, WebsitePackage } from '../data/models';\r\nimport { CommonService } from '../core/hascommon.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CalculateService {\r\n\r\n constructor(private common: CommonService) { }\r\n\r\n\r\n calcQuanties(data: SharedData, details: WebsitePackage[]) {\r\n details.forEach(d => {\r\n d = this.calcQty(data, d);\r\n d = this.calcFreqQty(data, d);\r\n d = this.calcPeriodQty(data, d);\r\n d = this.calcDuration(data, d);\r\n })\r\n return details;\r\n }\r\n\r\n calcQty(data: SharedData, d: WebsitePackage) {\r\n d.csQty = d.qty;\r\n return d;\r\n }\r\n\r\n calcFreqQty(data: SharedData, d: WebsitePackage) {\r\n d.csFreqQty = d.freqQty\r\n return d;\r\n }\r\n\r\n calcPeriodQty(data: SharedData, d: WebsitePackage) {\r\n d.csDurationQty = d.periodQty\r\n return d;\r\n }\r\n\r\n calcDuration(data: SharedData, d: WebsitePackage) {\r\n if (!data.end || ['Trip', 'Service'].indexOf(d.chargeType) > -1) {\r\n return d;\r\n }\r\n const quotedEnd = this.common.dateAdd(data.start, d.periodQty, d.freqDescr);\r\n if (this.common.dateIsAfter(data.end, quotedEnd)) {\r\n const quotedDays = this.common.dateDif(quotedEnd, data.start);\r\n const actualDays = this.common.dateDif(data.end, data.start);\r\n const newPeriod = this.common.round(d.periodQty * actualDays / quotedDays);\r\n if (d.freqMethod === 'pro rata') {\r\n d.periodQty = newPeriod;\r\n } else {\r\n d.periodQty = Math.ceil(newPeriod);\r\n }\r\n\r\n }\r\n return d;\r\n }\r\n\r\n calcAvailable(available: number) {\r\n const totalAvailable = [];\r\n for (let i = 0; i < available; i++) {\r\n totalAvailable.push(i + 1);\r\n }\r\n return totalAvailable;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CommonService } from '../core/hascommon.service';\r\nimport { ContentService } from '../content/content.service';\r\n\r\nimport { OptionDetail, SharedData, WebsitePackage, ProductHireStock, Package } from '../data/models';\r\nimport { DataApiService } from '../data/data-api.service';\r\nimport { TotalService } from './total.service';\r\nimport { CalculateService } from './calculate.service';\r\nimport { NotificationService } from '../core/notification.service';\r\nimport { LocalTenantStorageService } from '../core/local-storage.service';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CartService {\r\n public Data: SharedData = {\r\n areaID: null,//areaID\r\n branch: null,//branch\r\n address: null,//placeresult\r\n gps: null,//co-ords\r\n start: null,//start\r\n end: null,//end\r\n cartList: [], // websitepackage[]\r\n cartSelections: [],//optiondetail []\r\n billing: null,//placeresult,\r\n name: null,\r\n phone: null,\r\n notes: null,\r\n vatReg: null,\r\n company: null\r\n };\r\n public hireStock: ProductHireStock[];\r\n\r\n constructor(public notification: NotificationService,\r\n private common: CommonService,\r\n private content: ContentService,\r\n private dataApi: DataApiService,\r\n private total: TotalService,\r\n private calculate: CalculateService,\r\n private tenantStorage: LocalTenantStorageService\r\n ) { }\r\n\r\n addItemToSelections(data: SharedData, item: OptionDetail) {\r\n data.cartSelections.push(item);\r\n //get Package\r\n const message = item.name + ' has been added to cart.';\r\n this.notification.showSuccess(message);\r\n }\r\n\r\n\r\n\r\n\r\n availableStock(cs?: OptionDetail, id?: number) {\r\n if (this.isProduct(cs,id)) {\r\n id = cs ? cs.typeId : id;\r\n return this.common.arrayGetFirstMatchingProperty(this.hireStock, [{ filterId: id, prop: 'productGroupID' }], 'available');\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n\r\n canDeleteSelection(item: WebsitePackage) {\r\n return (item.optionIsOptional && !item.hireQuoteDetailsID) || item.detailIsOptional ||item.level==='package';\r\n }\r\n\r\n\r\n changeCartSelections(data: SharedData, items: OptionDetail[]) {\r\n items.forEach(i => {\r\n if (this.indexInSelections(data, i) < 0) {\r\n this.addItemToSelections(data, i);\r\n }\r\n })\r\n let inValidSelections=[];\r\n data.cartSelections.forEach(s => {\r\n if (!items || !items.length || !items.filter((i) => { return i.id === s.id }).length) {\r\n inValidSelections.push(s);\r\n }\r\n });\r\n if (inValidSelections.length) {\r\n this.removeItemsFromSelections(data, inValidSelections);\r\n }\r\n this.reviseCart(data);\r\n }\r\n\r\n clearCartSelections(data: SharedData) {\r\n data.cartList = [];\r\n data.cartSelections = [];\r\n this.storageSet(this.Data);\r\n }\r\n\r\n\r\n changeAddress(data: SharedData) {\r\n return data;\r\n }\r\n\r\n changeDate(data: SharedData) {\r\n let msg;\r\n if (data.cartList.length && data.cartSelections.length) {\r\n data.cartSelections.forEach(cs => {\r\n if (cs.type === 'product') {\r\n const i: WebsitePackage = this.common.arrayFilter(data.cartList, [{ filterId: cs.id, prop: 'id' }]);\r\n const available = this.availableStock(cs);\r\n if (available < i.csQty) {\r\n i.csQty = available > 0 ? 0 : available;\r\n msg = msg ? cs.name : ',' + cs.name;\r\n }\r\n }\r\n });\r\n }\r\n if(msg){\r\n msg = msg + ' reduced or no stock for these dates, check cart.';\r\n this.notification.showWarning(msg);\r\n }\r\n \r\n return;\r\n }\r\n\r\n existsInCart(data: SharedData, id: number, level: string, d?: WebsitePackage) {\r\n if (level === 'option') {\r\n return this.common.arrayGetFirstMatchingObject(data.cartList, [{ prop: 'optionID', filterId: d.optionID }]);\r\n } else if (level === 'detail') {\r\n return this.common.arrayGetFirstMatchingObject(data.cartList, [{ prop: 'quoteDetailsID', filterId: d.quoteDetailsID }]);\r\n }\r\n }\r\n\r\n getAllPackageDetails(item: OptionDetail) {\r\n //get all the details\r\n const details = this.content.websitePackages.filter(d=>{\r\n return d.packageID === item.packageID &&\r\n d.quoteDetailsID !==null &&\r\n //filter out optional options\r\n (d.optionID === item.optionID ||\r\n d.optionIsOptional!==true)\r\n })\r\n return details;\r\n }\r\n hasStock(cs?: OptionDetail, id?: number) {\r\n return this.availableStock(cs,id)>0\r\n }\r\n\r\n productHasInvalidDates(p?: Package, data?: SharedData, id?: string){\r\n if(!id || !p || !p.options){\r\n return false;\r\n }\r\n let hasInvalidDates = false;\r\n p.options.forEach(o=>{\r\n if(o.typeId === parseInt(id)){\r\n const invalidDates = this.hasInvalidDates(o, data);\r\n if(invalidDates){\r\n hasInvalidDates=invalidDates;\r\n }\r\n }\r\n })\r\n return hasInvalidDates;\r\n }\r\n\r\n hasInvalidDates(cs?: OptionDetail, data?: SharedData) {\r\n let isValid = null;\r\n if(cs.dayID){\r\n const strt = data.start;\r\n const end = this.common.dateAdd(strt, cs.maxInt, null, cs.maxPeriodID,true);\r\n const dow = this.common.dateDOW(end);\r\n isValid = cs.dayID!==7?cs.dayID===dow:dow===0;\r\n if (cs.dayID) {\r\n const strt = data.start;\r\n const end = this.common.dateAdd(strt, cs.maxInt, null, cs.maxPeriodID, true);\r\n const dow = this.common.dateDOW(end);\r\n isValid = cs.dayID !== 7 ? cs.dayID === dow : dow === 0;\r\n if (isValid) {\r\n return null;\r\n } else {\r\n const validStartDay = cs.dayID-cs.maxInt<0?cs.dayID-cs.maxInt+8:cs.dayID-cs.maxInt;\r\n const validStartDayName = this.common.dateDOWName(validStartDay);\r\n return validStartDayName;\r\n }\r\n }\r\n }\r\n return isValid;\r\n }\r\n \r\n getHireStock(data: SharedData) {\r\n if (data.start && data.branch && data.branch.branchID) {\r\n this.dataApi.getAll('ProductHireStock', data.start, data.end, null, data.branch.branchID).subscribe(\r\n hireStock => {\r\n this.hireStock = hireStock;\r\n if (data.cartList.length) {\r\n this.removeInvalidSelections(data);\r\n }\r\n }\r\n );\r\n }\r\n\r\n }\r\n\r\n indexInSelections(data: SharedData, item: OptionDetail) {\r\n const index: number = data.cartSelections.indexOf(item);\r\n return index;\r\n }\r\n\r\n isInvalidSelection(cs: OptionDetail) {\r\n return !this.hasStock(cs) || this.hasInvalidDates(cs,this.Data);;\r\n }\r\n\r\n\r\n isProduct(cs?: OptionDetail,id?: number, cl?: WebsitePackage) {\r\n return id || (cs && cs.level === 'product') || (cl && cl.quoteProductID && cl.detailIsOptional);\r\n }\r\n\r\n removeInvalidSelections(data: SharedData) {\r\n const invalidSelections: OptionDetail[]=[];\r\n data.cartSelections.forEach(s => {\r\n if (this.isInvalidSelection(s)) {\r\n invalidSelections.push(s);\r\n }\r\n })\r\n if (invalidSelections.length) {\r\n this.removeItemsFromSelections(data, invalidSelections, ' due to insufficient stock or invalid dates.');\r\n this.reviseCart(data);\r\n }\r\n }\r\n removeItemsFromCart(data: SharedData, items: WebsitePackage[]) {\r\n items.forEach(i => {\r\n data.cartSelections = data.cartSelections.filter(s => { return s.id !== i.id; })\r\n });\r\n this.reviseCart(data);\r\n }\r\n\r\n \r\nremoveItemsFromSelections(data: SharedData, items: OptionDetail[], reason='') {\r\n //get Package\r\n let msg;\r\n items.forEach(i => {\r\n const index = this.indexInSelections(data, i);\r\n if (index !== -1) {\r\n data.cartSelections.splice(index, 1);\r\n }\r\n msg = msg ? msg + ' ,' + i.name : i.name;\r\n });\r\n msg = msg + ' has been removed from cart' + reason + '.';\r\n this.notification.showWarning(msg);\r\n return true;\r\n }\r\n\r\n\r\n reviseCart(data: SharedData) {\r\n const savedList = data.cartList.map(cl => ({ id: cl.id, csFreqQty: cl.csFreqQty, csQty: cl.csQty }));\r\n data.cartList = [];\r\n this.storageRemove();\r\n data.cartSelections.forEach(i => {\r\n const selectedItems = this.reviseGetAllItemsforOption(data, i);\r\n data.cartList = data.cartList.concat(selectedItems);\r\n })\r\n data.cartList.forEach(cl=>{\r\n const sl = this.common.arrayGetFirstMatchingObject(savedList,[{filterId:cl.id,prop:'id'}]);\r\n if(sl){\r\n cl.csQty = sl.csQty?sl.csQty:cl.csQty;\r\n cl.csFreqQty = sl.csFreqQty ? sl.csFreqQty : cl.csFreqQty;\r\n }\r\n })\r\n data.cartList = this.total.getTransportPriceAndQuantity(data.cartList, data);\r\n this.storageSet(data);\r\n }\r\n\r\n\r\n\r\n \r\n\r\n reviseGetAllItemsforOption(data: SharedData, item: OptionDetail) {\r\n let details: WebsitePackage[];\r\n details = this.getAllPackageDetails(item);\r\n if (item.level !== 'package') {\r\n //return details on the package where detail is not optional or are selected\r\n details = details.filter(d => { return !d.detailIsOptional || d.id === item.id; })\r\n }\r\n //return details on the package where option is not optional or is selected\r\n details = details.filter(d => { return !d.optionIsOptional || d.optionID === item.optionID; })\r\n //remove duplicates already in cart\r\n const itemsInCart = data.cartList.map(c => { return c.id; })\r\n details = details.filter(d => { return itemsInCart.indexOf(d.id) < 0; })\r\n details = this.calculate.calcQuanties(data, details)\r\n return details;\r\n }\r\n\r\n allowOnlinePayment(): boolean {\r\n return !this.Data.cartList.find((wp: WebsitePackage) => !wp.canPayLive);\r\n }\r\n\r\n //storage\r\n\r\n loadStorage() {\r\n const selections = JSON.parse(this.tenantStorage.getItem('selections'));\r\n\r\n if (selections) {\r\n \r\n // convert strings of dates back to Date.\r\n ['start', 'end'].forEach((k) => selections[k] = selections[k] ? new Date(selections[k]) : undefined);\r\n\r\n this.Data = selections;\r\n console.log('Cart restored');\r\n }\r\n }\r\n\r\n storageRemoveSelections(){\r\n this.tenantStorage.removeItem('selections');\r\n }\r\n\r\n storageRemove() {\r\n localStorage.removeItem('tenant');\r\n this.tenantStorage.removeItem('selections');\r\n }\r\n\r\n storageSet(data) {\r\n localStorage.setItem('tenant', this.dataApi.getTenant());\r\n this.tenantStorage.setItem('selections', JSON.stringify(data));\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { SharedData, OrderDetail, Order } from '../data/models';\r\nimport { TotalService } from './total.service';\r\nimport { CommonService } from '../core/hascommon.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class OrderService {\r\n\r\n constructor(private total: TotalService, private common: CommonService) { }\r\n\r\n processOrder(cart: SharedData, billing:any,email) {\r\n\r\n if (typeof cart.start === 'string') { \r\n }\r\n const orderDetails: OrderDetail[] = [];\r\n cart.cartList.forEach(d => {\r\n const lineTotal = this.total.getLineTotal(d);\r\n const orderDetail: OrderDetail = {\r\n packageID: d.packageID,\r\n quoteNo: d.quoteNo,\r\n optionID: d.optionID,\r\n quoteDetailsID: d.quoteDetailsID,\r\n quoteDetailProductID: d.quoteDetailProductID,\r\n quoteProductID: d.quoteProductID,\r\n productGroupID: d.productGroupID,\r\n serviceTypeID: d.serviceTypeID,\r\n descID: d.descID,\r\n packageName: d.name, //name from order-detail.ts not package name\r\n optionText: d.optionText,\r\n chargeDesc: d.chargeDesc,\r\n freqQty: d.csFreqQty,\r\n freqDescr: d.freqDescr,\r\n freqMethod: d.freqMethod,\r\n chargeType: d.chargeType,\r\n excludePublicHolidays: d.excludeHolidays,\r\n excludeCreditDays: d.excludeCreditDays,\r\n excludeSaturday: d.excludeSaturday,\r\n excludeSunday: d.excludeSunday,\r\n qty: d.csQty, //Product qty\r\n productDescr: d.productDescr,\r\n price: d.price,\r\n inclInHire: d.inclInHire,\r\n periodQty: d.csDurationQty, //duration qty\r\n durationDesc: d.csDurationDesc,\r\n optionIsOptional: d.optionIsOptional,\r\n detailIsOptional: d.detailIsOptional,\r\n selectByProduct: d.selectByProduct,\r\n canChangeFreq: d.canChangeFreq,\r\n canChangeDuration: d.canChangeDuration,\r\n endDateInt: d.endDateInt,\r\n endDateDesc: d.endDateDesc,\r\n vatRate: d.vatRate,\r\n discount: d.discount,\r\n lineTotal: lineTotal,\r\n lineVat: this.total.getLineVat(lineTotal, d.vatRate),\r\n lineTotalWithVat: this.total.getLineTotalWithVat(d)\r\n }\r\n orderDetails.push(orderDetail);\r\n })\r\n const order: Order = {\r\n orderDate: this.common.dateWithTime(),\r\n areaID: cart.areaID,\r\n branchID: cart.branch.branchID,\r\n address: cart.address,\r\n gps: cart.gps,\r\n start: cart.start? this.common.dateAdjusterRemoveOffset(cart.start):cart.start,\r\n end: cart.end?this.common.dateAdjusterRemoveOffset(cart.end):cart.end,\r\n storeOrderDetails: orderDetails,\r\n billing: billing.address,\r\n name:billing.name,\r\n company: billing.company,\r\n phone: billing.phone,\r\n notes: billing.notes,\r\n vatReg: billing.vatReg,\r\n total: this.total.getTotalExVat(cart.cartList),\r\n totalWithVat: this.total.getTotalWithVat(cart.cartList),\r\n vat: this.total.getTotalVat(cart.cartList),\r\n email: email\r\n }\r\n return order;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { WebsitePackage, SharedData } from '../data/models';\r\nimport { CommonService } from '../core/hascommon.service';\r\nimport { ContentService } from '../content/content.service';\r\n\r\n@Injectable({\r\nprovidedIn: 'root'\r\n})\r\nexport class TotalService {\r\n\r\nconstructor(private common: CommonService, private content: ContentService) { }\r\n\r\n//totals\r\ngetLineTotal(i: WebsitePackage): number {\r\n const total = this.common.round(i.csQty * i.csFreqQty * i.csDurationQty * i.price);\r\n return total;\r\n}\r\n\r\ngetLineVat(lineTotal: number, vatRate: number) {\r\n const total = this.common.round(lineTotal * vatRate / 100);\r\n return total;\r\n}\r\n\r\ngetLineTotalWithVat(i: WebsitePackage) {\r\n const linetotal = this.getLineTotal(i);\r\n const vat = this.getLineVat(linetotal, i.vatRate);\r\n return linetotal + vat;\r\n}\r\n\r\ngetTotalExVat(items: WebsitePackage[]) {\r\n if (!items || !items.length) { return 0; }\r\n let total = 0;\r\n items.forEach(id => {\r\n const linetotal = this.getLineTotal(id);\r\n total = total + linetotal;\r\n });\r\n return total;\r\n}\r\n\r\ngetTotalVat(items: WebsitePackage[]) {\r\n if (!items || !items.length) { return 0; }\r\n let total = 0;\r\n items.forEach(id => {\r\n const linetotal = this.getLineTotal(id);\r\n total = total + this.getLineVat(linetotal, id.vatRate);\r\n });\r\n return total;\r\n}\r\n\r\ngetTotalWithVat(items: WebsitePackage[]) {\r\n if (!items || !items.length) { return 0; }\r\n const invoiceTotal = this.common.round(this.getTotalExVat(items) * 100);\r\n const vat = this.common.round(this.getTotalVat(items) * 100);\r\n return (invoiceTotal + vat) / 100;\r\n}\r\n\r\npublic getTransportPriceAndQuantity(cartList: WebsitePackage[], data: SharedData) {\r\n \r\n const value = this.common.arrayGetFirstMatchingProperty(this.content.areaGroups,\r\n [{ filterId: data.areaID, prop: 'areaID' }], 'transportPrice')\r\n const options = this.common.arrayOfObjectsGetUniqueProperties(cartList,'optionID');\r\n options.forEach(o=>{\r\n let qty = 0\r\n cartList.forEach(i => {\r\n if (i.vehicleCapacity && i.optionID===o) {\r\n qty = qty + ((i.csQty / i.vehicleCapacity) * 1000);\r\n }\r\n })\r\n qty = Math.ceil(qty / 1000) || 1;\r\n cartList.forEach(i => {\r\n if (i.chargeType === 'Trip' && i.optionID===o) {\r\n i.csQty = qty;\r\n if (!i.price) {\r\n i.price = value;\r\n }\r\n if(i.scaleTransport!==1){\r\n i.price = Math.round(i.price*i.scaleTransport*100)/100\r\n }\r\n }\r\n })\r\n })\r\n\r\n return cartList;\r\n}\r\n\r\npublic grandTotal(data) {\r\n let total;\r\n data.cartList.forEach(c => {\r\n data.total[c.id] = this.getLineTotal(c);\r\n total += data.total[c.id];\r\n })\r\n return total;\r\n}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MenuItem, BrowseCategory, BrowseItem, WebsitePicture } from '../data/models';\r\nimport { CommonService } from '../core/hascommon.service';\r\nimport { ProductCategory } from '../data/models/product-category';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ContentMenuService {\r\n \r\n public menuItems: MenuItem[] = [{ caption: 'Home', link: ['/'],id:0, parentId:0 }];\r\n public pictures: WebsitePicture[];\r\n constructor(private common: CommonService) { }\r\n\r\n buildMenu(texts) {\r\n this.menuItems = [{ caption: 'Home', link: ['/'],id:0, parentId:0 }];\r\n const common = this.common;\r\n const menuItems = this.menuItems;\r\n //website texts with textType Menu to get all main menu\r\n const menus = common.arrayFilter(texts, [{ prop: 'textType', filterId: 'Menu' }],'textOrder');\r\n //add links\r\n const uniqueMenus = common.arrayOfObjectsGetUniqueProperties(menus, 'sectionName');\r\n uniqueMenus.forEach((m) => {\r\n //check whether it has a dropdown\r\n //get all websitetexts for this sectionName (menu)\r\n let items = this.getCategoryItems(texts, m);\r\n if (!items || !items.length) {\r\n items = common.arrayFilter(menus, [{ prop: 'sectionName', filterId: m }]);\r\n }\r\n const hasDropdown = items.length > 1;\r\n const item: MenuItem = {\r\n caption: items[0].sectionName,\r\n link: hasDropdown ? this.getProductsLink(items) : this.getProductLink(items[0]),\r\n id: items[0].textID,\r\n parentId:0\r\n };\r\n if (hasDropdown) {\r\n const dropdowns = [];\r\n items.forEach((i) => {\r\n const dropdownItem = {\r\n caption: i.textName,\r\n link: this.getProductLink(i),\r\n id: 100 + items[0].textID,\r\n parentId:item.id\r\n }\r\n dropdowns.push(dropdownItem);\r\n })\r\n item.dropdown = dropdowns;\r\n }\r\n menuItems.push(item);\r\n });\r\n menuItems.push({ caption: 'Contact', link: ['/contact'],id:-1,parentId:0 })\r\n return menuItems;\r\n }\r\n\r\n buildBrowseCategories(texts,pictures) {\r\n const common = this.common;\r\n this.pictures = pictures;\r\n //website texts with textType browse to get all browse cats\r\n const browseCategoryData = common.arrayFilter(texts, [{ prop: 'textType', filterId: 'Browse' }]); \r\n const browseCats: BrowseCategory[] = [];\r\n const uniqueCats = common.arrayOfObjectsGetUniqueProperties(browseCategoryData, 'sectionName');\r\n //website texts with textType Browse (unique sectionName=Browse Category)\r\n uniqueCats.forEach((c) => {\r\n const browseCat: BrowseCategory = {\r\n caption: c.toString(),\r\n browseItems: []\r\n }\r\n //get all websitetexts for this sectionName (browse category)\r\n let categoryItems = this.getCategoryItems(texts, c);\r\n if (!categoryItems || !categoryItems.length) {\r\n categoryItems = common.arrayFilter(browseCategoryData, [{ prop: 'sectionName', filterId: c }]);\r\n }\r\n //get link to detail item based on product/service/package/desc id\r\n categoryItems = this.addLinks(categoryItems);\r\n categoryItems.forEach((ci) => {\r\n const picture = this.getPicture(ci);//get picture for brosw cat based on product/service/package/desc id\r\n if (picture) {\r\n const browseItem: BrowseItem = {\r\n name: ci['textName'],///textName = brosw cat desc\r\n link: ci['link'][0],\r\n picture: picture,\r\n order: ci.textOrder\r\n }\r\n browseCat.browseItems.push(browseItem)\r\n }\r\n });\r\n browseCats.push(browseCat);\r\n });\r\n return browseCats;\r\n }\r\n\r\n buildCategories(texts) {\r\n const categories: ProductCategory[]=[];\r\n const filters = [{ filterId: 'Category', prop: 'textType' },\r\n { filterId: null, prop: 'productGroupID' },\r\n { filterId: null, prop: 'serviceTypeID' },\r\n { filterId: null, prop: 'descID' },\r\n { filterId: null, prop: 'packageID' }]\r\n const cats = this.common.arrayFilter(texts, filters);\r\n cats.forEach(c => {\r\n const cat = {\r\n name: c.sectionName,\r\n description:c.textName,\r\n products: [],\r\n picture: this.getPicture(c)\r\n }\r\n let products = texts.filter(t => {\r\n return t.sectionName===c.sectionName && (t.productGroupID || t.serviceTypeID || t.descID || t.packageID);\r\n });\r\n if (products && products.length) {\r\n products.forEach(p => {\r\n const product: BrowseItem = {\r\n name: p.textName,//get browse item description\r\n link: this.getProductLink(p),//get link to detail item based on product/service/package/desc id\r\n picture: this.getPicture(p),//get picture for brosw cat based on product/service/package/desc id\r\n order:p.textOrder\r\n }\r\n cat.products.push(product);\r\n })\r\n } else {\r\n //no products look for subcategories\r\n const subCats = texts.filter(t => {\r\n return t.sectionName === c.textName && (!t.productGroupID && !t.serviceTypeID && !t.descID && !t.packageID);\r\n });\r\n subCats.forEach(sc => {\r\n //get first product for pic\r\n products = texts.filter(t => {\r\n return t.sectionName === c.textName && (t.productGroupID || t.serviceTypeID || t.descID || t.packageID);\r\n });\r\n products = this.common.arraySort(products, 'textOrder');\r\n const picture = products && products[0] ? this.getPicture(products[0]) : null;\r\n const subCat: BrowseItem = {\r\n name: sc.sectionName,//get browse item description\r\n link: this.getProductLink(sc,true),//get link to detail item based on product/service/package/desc id\r\n picture: picture,\r\n order: sc.textOrder\r\n }\r\n cat.products.push(subCat);\r\n })\r\n }\r\n \r\n categories.push(cat);\r\n })\r\n return categories;\r\n }\r\n\r\n addLinks(item: any) {\r\n item.forEach((i) => {\r\n const link = this.getProductLink(i);\r\n i.link = [link];\r\n });\r\n return item;\r\n }\r\n\r\n getCategoryItems(texts, sectionName) {\r\n if (!texts || !texts.length || !sectionName) {\r\n return [];\r\n }\r\n return texts.filter(t => {\r\n return t.textType === 'Category' &&\r\n t.sectionName === sectionName &&\r\n (t.productGroupID || t.serviceTypeID || t.descID || t.packageID)\r\n });\r\n }\r\n\r\n getPicture(i) {\r\n let prop: string;\r\n let filterId: number;\r\n if (i.productGroupID) {\r\n prop = 'productGroupID'\r\n filterId = i.productGroupID;\r\n } else if (i.packageID) {\r\n prop = 'packageID'\r\n filterId = i.packageID;\r\n } else if (i.serviceID) {\r\n prop = 'serviceID'\r\n filterId = i.serviceID;\r\n } else if (i.descID) {\r\n prop = 'descID'\r\n filterId = i.descID;\r\n }\r\n let websitePicture = this.common.arrayGetFirstMatchingObject(this.pictures, [\r\n { prop: 'textID', filterId: i.textID }],'pictureOrder');\r\n if (!websitePicture) {\r\n websitePicture = this.common.arrayGetFirstMatchingObject(this.pictures,\r\n [{ prop: prop, filterId: filterId }], 'pictureOrder');\r\n }\r\n if (!websitePicture) {\r\n return null;\r\n }\r\n return this.common.base + websitePicture.pictureName;\r\n }\r\n\r\n \r\n\r\n getProductsLink(items) {\r\n let link = '/products/';\r\n const name = items[0].sectionName;\r\n link = name ? link + name.replace(/\\s+/g, '-') : link;\r\n return [link]\r\n }\r\n\r\n getProductLink(m,isSubCat?) {\r\n let link ='/products/';\r\n if (m.productGroupID) {\r\n link = link +'product/' + m.productGroupID;\r\n } else if (m.packageID) {\r\n link = link +'package/' + m.packageID;\r\n } else if (m.serviceTypeID) {\r\n link = link +'service/' + m.serviceTypeID;\r\n } else if (m.descID) {\r\n link = link +'consumable/' + m.descID;\r\n }\r\n const name = isSubCat ? m.sectionName: m.textName || m.sectionName;\r\n link = name ? link + '/' + name.replace(/\\s+/g, '-') : link;\r\n return [link];\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CommonService } from '../core/hascommon.service';\r\nimport { Package, OptionDetail, WebsitePackage, WebsitePicture } from '../data/models';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ContentPackageService {\r\n\r\n constructor(private common: CommonService) { }\r\n\r\n addPicturesToPackages(websitePackage: WebsitePackage[], websitePictures: WebsitePicture[]) {\r\n let prop: string;\r\n let filterId: number;\r\n websitePackage.forEach(pd => {\r\n if (pd.level === 'package') {\r\n prop = 'packageID';\r\n filterId = pd.packageID;\r\n }\r\n else if (pd.productGroupID) {\r\n prop= 'productGroupID';\r\n filterId= pd.productGroupID;\r\n }\r\n else if (pd.descID) {\r\n prop = 'descID';\r\n filterId = pd.descID;\r\n }\r\n else if (pd.serviceTypeID) {\r\n prop = 'serviceTypeID';\r\n filterId = pd.serviceTypeID;\r\n }\r\n pd.picture = this.common.base + this.common.arrayGetFirstMatchingProperty(websitePictures,\r\n [{ prop: prop, filterId: filterId }],\r\n 'pictureName')\r\n })\r\n return websitePackage;\r\n }\r\n\r\n buildPackages(websitePackage) {\r\n const common = this.common;\r\n const uniquePackages = common.arrayOfObjectsGetUniqueProperties(websitePackage, 'packageID');\r\n const packages: Package[] = [];\r\n uniquePackages.forEach((p) => {\r\n const pd = common.arrayGetFirstMatchingObject(websitePackage, [{ prop: 'packageID', filterId: p }]);\r\n const pckg = this.buildByPackage(pd, websitePackage);\r\n packages.push(pckg);\r\n });\r\n \r\n return packages;\r\n }\r\n\r\n buildByPackage(pd, websitePackage) {\r\n const pckg: Package = {\r\n id: pd.id,\r\n packageID: pd.packageID,\r\n quoteNo: pd.quoteNo,\r\n name: pd.packageName,\r\n options: this.buildPackageOption(websitePackage, pd.packageID)\r\n }\r\n return pckg;\r\n }\r\n\r\n \r\n \r\n\r\n buildPackageOption(websitePackage,id) {\r\n const options: OptionDetail[] = [];\r\n const common = this.common;\r\n //get all options for this package\r\n const pdOptions = this.common.arrayFilter(websitePackage, [{ filterId: id, prop: 'packageID' }]);\r\n //get unique options for this package\r\n const uniqueOptions = common.arrayOfObjectsGetUniqueProperties(pdOptions, 'optionID');\r\n let filters=[];\r\n ///unique options to this package\r\n uniqueOptions.forEach((uo) => {\r\n //check if option is optional\r\n filters = [{ filterId: uo, prop: 'optionID' },\r\n { prop: 'optionIsOptional', filterId: true },\r\n { prop: 'hireQuoteDetailsID', filterId: null },\r\n { prop: 'detailIsOptional', filterId: true, unequal:true }];\r\n const o = this.common.arrayGetFirstMatchingObject(pdOptions, filters);\r\n if (o) {\r\n o.level = 'option';\r\n o.type = this.getType(o);\r\n o.name = o.optionText;\r\n const opt: OptionDetail = this.getOption(o);\r\n options.push(opt);\r\n }\r\n //get optional details for this package\r\n filters = [{ filterId: uo, prop: 'optionID' },\r\n { prop: 'detailIsOptional', filterId: true}];\r\n const details = common.arrayFilter(pdOptions, filters);\r\n details.forEach((d) => {\r\n d.level = d.productGroupID ? 'product' : 'detail';\r\n d.type = this.getType(d);\r\n d.name = d.productDescr;\r\n const opt: OptionDetail = this.getOption(d);\r\n options.push(opt);\r\n })\r\n })\r\n //if no optional options and no optional details add the package\r\n if (!options.length) {\r\n //get first matching package\r\n const d = pdOptions[0];\r\n d.level = 'package';\r\n d.type = this.getType(d);\r\n d.name = d.packageName;\r\n const opt: OptionDetail = this.getOption(d);\r\n options.push(opt);\r\n }\r\n return options;\r\n }\r\n\r\n getOption(d: WebsitePackage) {\r\n const opt: OptionDetail = {\r\n id: d.id,//package-data id\r\n packageID: d.packageID,\r\n optionID:d.optionID,\r\n name: d.name,\r\n level: d.level,\r\n type: d.type,\r\n typeId: this.getTypeId(d),\r\n dayID:d.dayID,\r\n maxInt:d.maxInt,\r\n maxPeriodID:d.maxPeriodID\r\n }\r\n return opt;\r\n }\r\n\r\n getType(d) {\r\n return d.productGroupID && d.chargeType === 'Fixed' ? 'product' : (d.serviceTypeID ? 'service' : (d.descID ? 'consumable' : 'package'));\r\n }\r\n\r\n getTypeId(d) {\r\n return d.productGroupID && d.chargeType === 'Fixed' ? d.productGroupID : d.serviceTypeID || d.descID || d.packageID;\r\n }\r\n\r\n \r\n}\r\n","import { Injectable} from '@angular/core';\r\nimport { DataApiService } from '../data/data-api.service';\r\nimport { WebsiteColour, WebsitePicture, WebsiteText, Package, WebsitePackage, Default, MenuItem, AreaGroup, Branch, SharedData, ProductHireStock, BrowseItem} from '../data/models';\r\nimport { forkJoin, Observable, BehaviorSubject } from 'rxjs';\r\nimport { CommonService } from '../core/hascommon.service';\r\nimport { ContentPackageService } from './content-package.service';\r\nimport { ContentMenuService } from './content-menu.service';\r\n\r\nimport { ProductCategory } from '../data/models/product-category';\r\nimport { LocaleService } from '../core/locale.service';\r\n\r\nclass BrowseCategory {\r\n browseItems: BrowseItem[];\r\n constructor() { }\r\n}\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class ContentService {\r\n\r\n public loading = false;\r\n public showContent = false;\r\n public tenant: string;\r\n public areaGroups: AreaGroup[];\r\n public brands: any[] = [];\r\n public branches: Branch[];\r\n public browseCategories: BrowseCategory[];\r\n public categories:ProductCategory[];\r\n public colours: WebsiteColour[];\r\n public locale: string;\r\n public defaults: Default[];\r\n public pictures: WebsitePicture[];\r\n public entityKeys = {\r\n packages: 'packageID',\r\n products: 'productGroupID',\r\n consumables: 'descID',\r\n services: 'serviceTypeID'\r\n }\r\n public menuItems: MenuItem[];\r\n public websitePackages: WebsitePackage[];\r\n public packages: Package[];\r\n public textLists = {};\r\n public texts: WebsiteText[];\r\n public taxName: string;\r\n public data: SharedData;\r\n\r\n //components\r\n //colours\r\n public callToActionColour: string;\r\n public orderFormColour: string;\r\n public headerColour: string;\r\n public linkTextColour: string;//TODO:used in top-menu but appears to be unassigned\r\n //pics\r\n public mainPicture: string;\r\n public logoPicture: string;\r\n //text\r\n public firstHeadingText: string;\r\n public calltoActionText: string;\r\n public subHeadingText: string;\r\n public hireStock?: ProductHireStock[];\r\n\r\n private contentLoadedSubject: BehaviorSubject;\r\n public contentLoaded: Observable;\r\n\r\n \r\n\r\n constructor(private dataApi: DataApiService,\r\n private common: CommonService,\r\n private packageService: ContentPackageService,\r\n private menuService: ContentMenuService,\r\n private session: LocaleService) {\r\n this.contentLoadedSubject = new BehaviorSubject(false);\r\n this.contentLoaded = this.contentLoadedSubject.asObservable();\r\n }\r\n\r\n public get contentLoadedValue(): boolean {\r\n return this.contentLoadedSubject.value;\r\n }\r\n\r\n \r\n\r\n async getAllContent() {\r\n this.loading = true;\r\n this.showContent = false;\r\n\r\n const results = [];\r\n\r\n const requests = [\r\n this.dataApi.getAll('WebsiteColour'),\r\n this.dataApi.getAll('WebsitePicture'),\r\n this.dataApi.getAll('WebsiteText'),\r\n this.dataApi.getAll('WebsitePackage'),\r\n this.dataApi.getAll('Default'),\r\n this.dataApi.getAll('Area'),\r\n this.dataApi.getAll('Bound'),\r\n this.dataApi.getAll('Branch'),\r\n this.dataApi.getAll('Frmt')\r\n ];\r\n \r\n for (const request of requests) {\r\n const result = await request.toPromise(); // Convert observable to promise\r\n results.push(result);\r\n }\r\n \r\n const [colours, pictures, texts, packages, defaults, areaGroups, bounds, branches, frmts] = results;\r\n \r\n // Process results\r\n this.colours = colours;\r\n this.pictures = pictures;\r\n this.texts = texts;\r\n this.websitePackages = packages;\r\n this.defaults = defaults;\r\n this.areaGroups = this.buildAreaGroups(areaGroups, bounds);\r\n this.branches = branches;\r\n \r\n this.getFormats(frmts);\r\n setTimeout(() => {\r\n this.session.registerCulture(this.locale);\r\n }, 1000);\r\n \r\n this.showContent = this.loading = this.getContent();\r\n this.contentLoadedSubject.next(true);\r\n }\r\n\r\n addSectionName(texts) {\r\n texts.forEach(t => {\r\n t.sectionName = t.websiteSection.sectionName\r\n });\r\n return texts;\r\n } \r\n \r\n \r\n\r\n getContent() {\r\n this.texts = this.addSectionName(this.texts);\r\n this.getContentDetail('pictures', 'sectionName', 'pictureName', 'Picture', this.common.base);\r\n this.getContentDetail('colours', 'sectionName', 'colourName', 'Colour', '');\r\n this.getContentDetail('texts', 'sectionName', 'textName', 'Text', '');\r\n \r\n this.menuItems = this.menuService.buildMenu(this.texts);\r\n this.browseCategories = this.menuService.buildBrowseCategories(this.texts, this.pictures);\r\n this.categories = this.menuService.buildCategories(this.texts);\r\n if (this.brands.length < 8) {\r\n this.brands = this.brands.concat(this.brands);\r\n }\r\n this.packages = this.packageService.buildPackages(this.websitePackages);\r\n this.showContent = true;\r\n this.websitePackages = this.packageService.addPicturesToPackages(this.websitePackages, this.pictures);\r\n return true;\r\n }\r\n\r\n\r\n getContentDetail(arrayName: string, sectionName: string, fieldName: string, varName:string, base:string) {\r\n const content = this;\r\n const common = this.common;\r\n const array = this[arrayName];\r\n if (array) {\r\n array.forEach((c) => {\r\n const name = common.uncapitalizeFirstLetter(c[sectionName]) + varName;\r\n const section = c[sectionName].toLowerCase();\r\n //group brands\r\n if (arrayName === 'pictures' && section === 'brands') {\r\n this.brands.push({\r\n name: '',\r\n image: base + c[fieldName]\r\n })\r\n }\r\n //group non category pic and text by section\r\n else if (arrayName !== 'texts' || c.textType === 'Component') {\r\n \r\n if (name === 'logoPicture') {\r\n this.common.imageCompress(base + c[fieldName], 'tiny',true).then(compressed => {\r\n content[name] = compressed.toString();\r\n })\r\n } else {\r\n content[name] = base + c[fieldName];\r\n }\r\n } else {\r\n //group text lists by category (e.g benefits/ faqs)\r\n if (c.textType !== 'Menu' && c.textType !== 'Browse') {\r\n if (!content.textLists[c[sectionName]]) {\r\n content.textLists[c[sectionName]] = [];\r\n }\r\n content.textLists[c[sectionName]].push({\r\n type: c.textType,\r\n order: c.textOrder,\r\n name: c.textName\r\n });\r\n }\r\n\r\n }\r\n });\r\n \r\n\r\n\r\n }\r\n }\r\n\r\n getFormats(frmts) {\r\n this.locale = this.common.arrayGetFirstMatchingProperty(frmts, [{ filterId: 'Locale', prop: 'desc' }], 'format');\r\n this.taxName = this.common.arrayGetFirstMatchingProperty(frmts, [{ filterId: 'TaxName', prop: 'desc' }], 'format');\r\n }\r\n\r\n public getTenant() {\r\n return this.dataApi.getTenant();\r\n }\r\n\r\n \r\n\r\n\r\n buildAreaGroups(areaGroups, bounds) {\r\n const ags: AreaGroup[]=[];\r\n areaGroups.forEach((ag) => {\r\n if (ag.canBookOnline) {\r\n const agBounds = this.common.arrayFilter(bounds, [{ prop: 'areaID', filterId: ag.areaID }])\r\n ag.bounds = agBounds;\r\n ags.push(ag);\r\n }\r\n });\r\n return ags;\r\n }\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, BehaviorSubject, of } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { Router } from '@angular/router';\r\nimport { User } from '../data/models';\r\nimport { DataApiService } from '../data/data-api.service';\r\nimport { LocalTenantStorageService } from './local-storage.service';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthService {\r\n public redirect: string;\r\n\r\n private currentUserSubject: BehaviorSubject;\r\n public currentUser: Observable;\r\n\r\n constructor(private http: HttpClient,\r\n private api: DataApiService,\r\n private router: Router,\r\n private tenantStorage: LocalTenantStorageService) {\r\n this.detectTenantChange();\r\n this.currentUserSubject = new BehaviorSubject(JSON.parse(localStorage.getItem('currentUser')));\r\n this.currentUser = this.currentUserSubject.asObservable();\r\n }\r\n\r\n\r\n public get currentUserValue(): User {\r\n return this.currentUserSubject.value;\r\n }\r\n\r\n detectTenantChange(): void {\r\n let currentTenant;\r\n const pathNamesArr = location.pathname.split('/');\r\n currentTenant = pathNamesArr[pathNamesArr.length -1];\r\n // get the correct tenant when returning from payfast\r\n if (currentTenant === 'checkout') {\r\n currentTenant = pathNamesArr[pathNamesArr.length -2];\r\n }\r\n if (currentTenant) {\r\n //fetch tenant name in storage\r\n const cachedTenant = localStorage.getItem('tenant');\r\n if (cachedTenant) {\r\n // compare to current tenant name\r\n const tenantChanged = cachedTenant !== currentTenant;\r\n if (tenantChanged) {\r\n // remove old tenant\r\n localStorage.removeItem('tenant');\r\n\r\n // log user out\r\n // localStorage.removeItem('currentUser');\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n auth(model,method): Observable {\r\n const url = this.api.getUrlAuth(method);\r\n return this.http.post(url, model).pipe(\r\n map(user => this.setUser(user,method))\r\n );\r\n //catchError(this.api.exceptionService.catchBadResponse)\r\n }\r\n\r\n\r\n\r\n\r\n logout() {\r\n // remove user from local storage to log user out\r\n localStorage.removeItem('currentUser');\r\n this.currentUserSubject.next(null);\r\n this.router.navigate(['/']);\r\n }\r\n\r\n\r\n\r\n setUser(user, method) {\r\n if (['forgotPassword', 'changePassword'].indexOf(method)>-1) {\r\n return of(true);\r\n }\r\n // store user details and jwt token in local storage to keep user logged in between page refreshes\r\n localStorage.setItem('currentUser', JSON.stringify(user));\r\n this.currentUserSubject.next(user);\r\n return of(true);\r\n }\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { NotificationService } from './notification.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ExceptionService {\r\n constructor(private notification: NotificationService) { }\r\n\r\n getClientMessage(error: Error): string {\r\n if (!navigator.onLine) {\r\n return 'No Internet Connection';\r\n }\r\n return error.message ? error.message : error.toString();\r\n }\r\n\r\n getClientStack(error: Error): string {\r\n return error.stack;\r\n }\r\n\r\n getServerMessage(error: HttpErrorResponse): string {\r\n return error.message;\r\n }\r\n\r\n getServerStack(error: HttpErrorResponse): string {\r\n // handle stack trace\r\n return 'stack';\r\n }\r\n\r\n catchBadResponse: (errorResponse: any) => Observable = (\r\n errorResponse: any\r\n ) => {\r\n let res = errorResponse;\r\n let err = res;\r\n let emsg = err\r\n ? err.error\r\n ? err.error\r\n : JSON.stringify(err)\r\n : res.statusText || 'unknown error';\r\n const msg = `Error - Bad Response - ${emsg}`;\r\n \r\n this.notification.showError(msg);\r\n return of(false);\r\n };\r\n}\r\n","import { ErrorHandler, Injectable, Injector } from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { LoggingService } from './logging.service';\r\nimport { NotificationService } from './notification.service';\r\nimport { ExceptionService } from './exception-service.service';\r\nimport { Router } from '@angular/router';\r\nimport { User } from '../data/models';\r\nimport { AuthService } from './auth.service';\r\nimport { DataApiService } from '../data/data-api.service';\r\n\r\n//class HASError extends HttpErrorResponse {\r\n// errors?: any[]\r\n//}\r\n\r\n@Injectable()\r\nexport class GlobalErrorHandler implements ErrorHandler {\r\n currentUser: User;\r\n user: User;\r\n public sub:any;\r\n\r\n // Error handling is important and needs to be loaded first.\r\n // Because of this we should manually inject the services with Injector.\r\n constructor(private injector: Injector, public router: Router,\r\n public auth: AuthService, public dataApi: DataApiService) {\r\n this.auth.currentUser.subscribe(x => this.currentUser = x);\r\n this.user = this.auth.currentUserValue;}\r\n\r\n handleError(error: Error | HttpErrorResponse ) {\r\n\r\n const errorService = this.injector.get(ExceptionService);\r\n const logger = this.injector.get(LoggingService);\r\n const notifier = this.injector.get(NotificationService);\r\n const notifyServerError = function (error){\r\n message = errorService.getServerMessage(error);\r\n stackTrace = errorService.getServerStack(error);\r\n notifier.showError(message);\r\n }\r\n\r\n\r\n let message;\r\n let stackTrace;\r\n\r\n\r\n if (error instanceof HttpErrorResponse) {\r\n // Server Error\r\n if (error.status !== 401) {\r\n if ((error.error === 'Invalid login attempt.') ||\r\n (error.error === 'This address is already linked to an existing account. Please log in')) {\r\n notifier.showError(error.error);\r\n } else if(error.status == 400 && error.error && error.error.errors){\r\n let msg = '';\r\n error.error.errors.forEach(e=>{\r\n msg = msg.length == 0? e.code: msg + ';' + e.code;\r\n })\r\n if(msg.length == 0){\r\n notifyServerError(error);\r\n }else{\r\n notifier.showError(msg);\r\n }\r\n } else {\r\n notifyServerError(error);\r\n }\r\n }\r\n } else {\r\n // Client Error\r\n message = errorService.getClientMessage(error);\r\n stackTrace = errorService.getClientStack(error);\r\n notifier.showError(message);\r\n }\r\n\r\n\r\n const errorReport = {\r\n userName: this.user?this.user.userName:'',\r\n company: this.dataApi.tenantName,\r\n description: 'Error',\r\n route: this.router.url,\r\n stack: stackTrace,\r\n message: message\r\n };\r\n this.sub = this.dataApi.reportError(errorReport).subscribe(data => {\r\n const message = 'Error Message Submitted';\r\n console.log(message);\r\n\r\n });\r\n\r\n // Always log errors\r\n logger.logError(message,stackTrace);\r\n\r\n console.log(error);\r\n\r\n\r\n\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { MapsAPILoader } from '@agm/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport * as moment from 'moment';\r\nimport { ArrayFilter } from '../data/models/array-filter';\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CommonService {\r\n\r\n public base = 'data:image/png;base64,';\r\n public timePeriodNames = {\r\n Day: 'day',\r\n Week: 'week',\r\n Month: 'month',\r\n Year: 'year',\r\n Fortnight: 'fornight',\r\n Hour: 'hour',\r\n Minute: 'minute'\r\n }\r\n\r\n constructor(@Inject(DOCUMENT) private document: Document) { }\r\n\r\n //Arrays\r\n arrayFilter(array: any, arrayFilters: ArrayFilter[], orderBy?: string) {\r\n if (orderBy) { array = this.arraySort(array, orderBy); }\r\n if (!array || !array.length) {\r\n return [];\r\n }\r\n if (!arrayFilters || !arrayFilters.length) {\r\n return array;\r\n }\r\n const filteredArray = array.filter(function (i) {\r\n let isMatch = true;\r\n arrayFilters.forEach(function (af) {\r\n if (!af.unequal && i[af.prop] !== af.filterId) {\r\n isMatch = false;\r\n } else if (af.unequal && i[af.prop] === af.filterId) {\r\n isMatch = false;\r\n }\r\n });\r\n return isMatch;\r\n })\r\n return filteredArray;\r\n }\r\n\r\n arrayGetFirstMatchingObject(array: any, arrayFilters: ArrayFilter[], orderBy?: string) {\r\n if (orderBy) { array = this.arraySort(array, orderBy); }\r\n array = this.arrayFilter(array, arrayFilters);\r\n return array.length ? array[0] : null;\r\n }\r\n arrayGetFirstMatchingProperty(array: any, arrayFilters: ArrayFilter[], prop) {\r\n const object = this.arrayGetFirstMatchingObject(array, arrayFilters);\r\n return object ? object[prop] : null;\r\n }\r\n\r\n arrayOfObjectsGetUniqueProperties(data: any, prop: string, canBeNull?: boolean) {\r\n let unique = [...new Set(data.map(item => item[prop]))];\r\n if (!canBeNull) {\r\n unique = unique.filter(x => x);\r\n }\r\n return unique;\r\n }\r\n\r\n arrayHasObjects(array: any, arrayFilters: ArrayFilter[]) {\r\n const filteredArray = this.arrayFilter(array, arrayFilters)\r\n return filteredArray && filteredArray.length;\r\n }\r\n\r\n arrayMapAndFlatten(array, prop) {\r\n const arrays = array.map(i => { return i[prop]; })\r\n return [].concat.apply([], arrays);\r\n }\r\n\r\n arraySort(array, prop, reverse?) {\r\n return array.sort(this.arrayDynamicSort(prop, reverse));\r\n }\r\n\r\n arrayDynamicSort(property, reverse) {\r\n let sortOrder = 1;\r\n if (reverse) {\r\n sortOrder = -1;\r\n }\r\n return (a, b) => {\r\n let result;\r\n let valuea = property.split('.').reduce(this.dotNotation, a);\r\n let valueb = property.split('.').reduce(this.dotNotation, b);\r\n if (this.dateIsDate(valuea)) {\r\n const datedif = this.dateDif(valuea, valueb, 'seconds');\r\n result = (datedif < 0) ? -1 : (datedif > 0) ? 1 : 0;\r\n } else {\r\n valuea = valuea && valuea.toLowerCase ? valuea.toLowerCase() : valuea;\r\n valueb = valueb && valueb.toLowerCase ? valueb.toLowerCase() : valueb;\r\n result = (valuea < valueb) ? -1 : (valuea > valueb) ? 1 : 0;\r\n }\r\n return result * sortOrder;\r\n };\r\n }\r\n\r\n dotNotation(obj, i) { return obj ? obj[i] : null; }\r\n\r\n dateAdd(date: Date, int: number, dbDesc?: string, dbInt?: number, addPeriod?: boolean) {\r\n if (!dbDesc && !dbInt) { dbDesc = 'Day'; }\r\n let desc = dbDesc? this.timePeriodNames[dbDesc]: this.dateGetTimePeriod(dbInt);\r\n if (desc === 'fornight') {\r\n int = int * 2;\r\n desc = 'week';\r\n }\r\n let newDate;\r\n if (desc === 'month' && this.dateIsStartOfMonth(date)) {\r\n //if start of month use end of month\r\n newDate = moment(date).endOf('month').toDate();\r\n } else {\r\n newDate = moment(date).add(int, desc).toDate();\r\n if (addPeriod) {\r\n //remove inc days in period\r\n newDate = moment(newDate).subtract(1, \"days\").toDate();\r\n }\r\n }\r\n return newDate;\r\n }\r\n\r\n\r\n dateGetTimePeriod(id: number) {\r\n switch (id) {\r\n case 1:\r\n return 'days';\r\n case 2: case 6:\r\n return 'weeks';\r\n case 3:\r\n return 'months';\r\n case 4:\r\n return 'years';\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n dateDOW(date?) {\r\n if (!date) { return; };\r\n return moment(date).day();\r\n }\r\n\r\n dateDOWName(dayNumber) {\r\n if (!dayNumber) { return; };\r\n return moment().day(dayNumber).format(\"dddd\");\r\n }\r\n\r\n dateWithTime(date?) {\r\n date = this.dateCurrentDate(date);\r\n date = this.dateAdjusterRemoveOffset(date);\r\n return date;\r\n }\r\n\r\n dateTodayDateTime(date) {\r\n date = moment(date);\r\n return date._d;//or use .toDate();\r\n }\r\n\r\n dateTomorrowDate(date?) {\r\n date = this.dateCurrentDate(date);\r\n return this.dateAdd(date, 1);//or use .toDate();\r\n }\r\n\r\n dateCurrentDate(date?) {\r\n return date ? date : new Date();\r\n }\r\n\r\n dateWithOutTime(date?) {\r\n date = this.dateCurrentDate(date);\r\n date = moment().startOf('day');\r\n return date._d;//or use .toDate();\r\n }\r\n\r\n\r\n dateIsEndOfMonth(date: Date) {\r\n const nextDay = moment(date).add(1, 'day').toDate();\r\n return moment(nextDay, 'YYYY/MM/DD').format('D') === '1';\r\n }\r\n\r\n dateIsStartOfMonth(date: Date) {\r\n return moment(date, 'YYYY/MM/DD').format('D') === '1';\r\n }\r\n\r\n dateIsAfter(thisDate: Date, isAfter: Date, equal?: boolean) {\r\n const datedif = this.dateDif(thisDate, isAfter, 'seconds');\r\n if (equal && datedif === 0) {\r\n return true;\r\n }\r\n return datedif > 0;\r\n }\r\n\r\n dateIsDate(date) {\r\n //id instanceof Date\r\n return Object.prototype.toString.call(date) === '[object Date]';\r\n }\r\n\r\n dateDif(date1: Date, date2: Date, desc?, showFractions?: boolean) {\r\n if (!desc) { desc = 'days'; }\r\n return moment(date1).diff(date2, desc, showFractions);\r\n }\r\n\r\n\r\n dateToString(d) {\r\n if (!d || (!(d instanceof Date) && !moment.isMoment(d))) { return ''; }\r\n return d.toISOString();\r\n }\r\n\r\n dateStringtoDate(s) {\r\n const b = s.split(/\\D+/);\r\n return new Date(Date.UTC(b[0], --b[1], b[2], b[3], b[4], b[5], b[6]));\r\n }\r\n\r\n dateAdjusterRemoveOffset(date) {\r\n if(date && moment.isMoment(date)){\r\n date = moment(date).toDate();\r\n }\r\n return new Date(date.getTime() - (date.getTimezoneOffset() * 60000));\r\n }\r\n\r\n dateAdjusterAddOffset(date) {\r\n let newDate;\r\n if (date) {\r\n newDate = new Date(date.getTime() + (date.getTimezoneOffset() * 60000));\r\n } else {\r\n newDate = null;\r\n }\r\n return newDate;\r\n }\r\n\r\n\r\n //images\r\n imageCompress(src, size?, isLogo?) {\r\n if (!src) { return; }\r\n const dims = size === 'medium' ? { w: 480, h: 360 } :\r\n (size === 'big' ? { w: 960, h: 720 } : (size === 'tiny' ? { w: 200, h: 150 } : { w: 180, h: 135 }));\r\n return new Promise((res, rej) => {\r\n const img = new Image();\r\n img.src = src;\r\n img.onload = () => {\r\n const canvas = document.createElement('canvas');\r\n const context = canvas.getContext('2d');\r\n context.drawImage(img, 0, 0);\r\n const oldWidth = img.width;\r\n const oldHeight = img.height;\r\n let newWidth = dims.w;\r\n let newHeight = Math.floor(oldHeight / oldWidth * newWidth);//isLogo ? Math.floor(oldHeight / oldWidth * newWidth) : dims.h;\r\n if (newHeight > dims.h) {\r\n newHeight = dims.h;\r\n newWidth = Math.floor(oldWidth / oldHeight * newHeight);\r\n }\r\n canvas.width = newWidth;\r\n canvas.height = newHeight;\r\n context.drawImage(img, 0, 0, newWidth, newHeight);\r\n const data = canvas.toDataURL('img/png', 0.5);\r\n res(data);\r\n }\r\n img.onerror = error => rej(error);\r\n })\r\n }\r\n\r\n //maps\r\n mapsParseCoords(gps) {\r\n if (gps) {\r\n var comma = gps.indexOf(',');\r\n return {\r\n latitude: parseFloat(gps.substr(0, comma - 1)),\r\n longitude: parseFloat(gps.substr(comma + 1, gps.length))\r\n };\r\n } else {\r\n return {\r\n latitude: -34.2,\r\n longitude: 18.0\r\n };\r\n }\r\n }\r\n\r\n mapGetDirections(coords) {\r\n const mapCoords = coords.lat + ',' + coords.lng;\r\n window.open('https://www.google.com/maps/dir//' + mapCoords + '/', \"_blank\");\r\n }\r\n\r\n mapParseCoords(gps) {\r\n if (gps) {\r\n const comma = gps.indexOf(',');\r\n return {\r\n lat: parseFloat(gps.substr(0, comma - 1)),\r\n lng: parseFloat(gps.substr(comma + 1, gps.length))\r\n };\r\n }\r\n return {};\r\n }\r\n\r\n\r\n\r\n //objects\r\n hasProperty(object, key) {\r\n return object ? Object.prototype.hasOwnProperty.call(object, key) : false;\r\n }\r\n\r\n //decimal\r\n round(num: number) {\r\n /*jshint -W016 */\r\n return Math.round(num * 100 + Math.sign(num) * Math.pow(0.1, (17 - 2 - (Math.round(num * 100) / 100).toString().length))) / 100;\r\n }\r\n\r\n //string\r\n uncapitalizeFirstLetter(string: string) {\r\n return string.charAt(0).toLowerCase() + string.slice(1);\r\n }\r\n\r\n removeDashes(string: string) {\r\n return string ? string.replace(/-/g, ' ') : '';\r\n }\r\n\r\n //notused\r\n titleCase(string) {\r\n var sentence = string.toLowerCase().split(\" \");\r\n for (var i = 0; i < sentence.length; i++) {\r\n sentence[i] = sentence[i][0].toUpperCase() + sentence[i].slice(1);\r\n }\r\n document.write(sentence.join(\" \"));\r\n return sentence;\r\n }\r\n\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { DataApiService } from '../data/data-api.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LocalTenantStorageService {\r\n\r\n constructor(\r\n private dataApi: DataApiService,\r\n ) {}\r\n\r\n setItem(key: string, value: string | any, tenant?: string) {\r\n const k = this.modifyKey(key, tenant);\r\n let v = value;\r\n\r\n if (typeof value !== 'string') {\r\n v = JSON.stringify(value);\r\n }\r\n localStorage.setItem(k, v);\r\n }\r\n\r\n getItem(key: string, tenant?: string): string {\r\n return localStorage.getItem(this.modifyKey(key, tenant));\r\n }\r\n\r\n removeItem(key: string, tenant?: string) {\r\n localStorage.removeItem(this.modifyKey(key, tenant));\r\n }\r\n\r\n getAll(tenant?: string): { [key: string]: string } | null {\r\n const t = tenant ? tenant : this.dataApi.getTenant();\r\n const result: { [key: string]: string } = {};\r\n\r\n for (const key of Object.keys(localStorage)) {\r\n if (key.startsWith(t)) {\r\n result[key] = localStorage.getItem(key);\r\n }\r\n }\r\n return Object.keys(result).length > 0 ? result : null;\r\n }\r\n\r\n private modifyKey(key, tenant?: string): string {\r\n const t = tenant ? tenant : this.dataApi.getTenant();\r\n return `${t}--${key}`;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { registerLocaleData } from '@angular/common';\r\nimport localeEnglish from '@angular/common/locales/en';\r\nimport localeSouthAfrica from '@angular/common/locales/en-ZA';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class LocaleService {\r\n\r\n private _locale: string;\r\n\r\n set locale(value: string) {\r\n this._locale = value;\r\n }\r\n get locale(): string {\r\n return this._locale || 'en';\r\n }\r\n\r\n registerCulture(culture: string) {\r\n if (!culture) {\r\n return;\r\n }\r\n this.locale = culture;\r\n\r\n switch (culture) {\r\n case 'en': {\r\n registerLocaleData(localeEnglish);\r\n break;\r\n }\r\n case 'en-ZA': {\r\n registerLocaleData(localeSouthAfrica);\r\n break;\r\n }\r\n }\r\n \r\n }\r\n\r\n \r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoggingService {\r\n\r\n logError(message: string, stack: string) {\r\n // Send errors to be saved here\r\n // The console.log is only for testing this example.\r\n console.log('LoggingService: ' + message);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NotificationService {\r\n\r\n public msgWarning: MatSnackBarConfig = { panelClass: 'warning',verticalPosition: 'top', duration: 3000 };\r\n public msgSuccess: MatSnackBarConfig = { panelClass: 'success', verticalPosition: 'top', duration: 3000 };\r\n\r\n constructor(public snackBar: MatSnackBar) { }\r\n\r\n showSuccess(message: string): void {\r\n this.snackBar.open(message, 'X', this.msgSuccess);\r\n }\r\n\r\n showError(message: string): void {\r\n // The second parameter is the text in the button. \r\n // In the third, we send in the css class for the snack bar.\r\n this.snackBar.open(message, 'X', { panelClass: ['error'],\r\n duration: 3000,\r\n });\r\n }\r\n\r\n showWarning(message: string): void {\r\n // The second parameter is the text in the button. \r\n // In the third, we send in the css class for the snack bar.\r\n this.snackBar.open(message, 'X', this.msgWarning);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map, take, tap } from 'rxjs/operators';\r\nimport { CommonService } from '../core/hascommon.service';\r\nimport { Order } from './models';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DataApiService {\r\n\r\n public apiBaseUrl: string;\r\n public tenantName: string;\r\n activatedRoute: any;\r\n currentUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') private baseUrl: string,\r\n private route: ActivatedRoute,\r\n private common: CommonService) {\r\n this.apiBaseUrl = baseUrl;\r\n }\r\n\r\n\r\n getTenant() {\r\n return this.route && this.route.firstChild ? this.route.firstChild.snapshot.params['tenant'] : this.tenantName;\r\n }\r\n\r\n getUrlBase() {\r\n const tenantName = this.getTenant() || 'Shreddoc0';\r\n return this.apiBaseUrl + tenantName + '/api/';\r\n }\r\n\r\n\r\n getUrlAuth(procName: string) {\r\n return this.getUrlBase() + 'account/' + procName;\r\n }\r\n\r\n getUrlStore(procName: string, entityName?: string) {\r\n return this.getUrlBase() + 'store/' + procName + (entityName ? '?entityName=' + entityName : '');\r\n }\r\n\r\n\r\n getUrl(procName: string, entityName?: string, start?: Date, end?: Date, id?: number, id2?: number) {\r\n const tenantName = this.getTenant();\r\n if (!tenantName && entityName !== 'Tenants') {\r\n return;\r\n }\r\n let url = this.getUrlBase() + 'bookhas/' + procName + (entityName ? '?entityName=' + entityName : '');\r\n if (start) {\r\n url = url + '&start=' + this.common.dateToString(start);\r\n }\r\n if (end) {\r\n url = url + '&end=' + this.common.dateToString(end);\r\n }\r\n if (id) {\r\n url = url + '&id=' + id;\r\n }\r\n if (id2) {\r\n url = url + '&id2=' + id2;\r\n }\r\n return url;\r\n }\r\n\r\n getAll(entityName: string, start?: Date, end?: Date, id?: number, id2?: number): Observable {\r\n const url = this.getUrl('getAll', entityName, start, end, id, id2);\r\n if (!url) {\r\n this.handleError('get' + entityName, [])\r\n }\r\n return this.http.get(url)\r\n .pipe(\r\n tap(_ => this.log('fetched ' + entityName))\r\n );\r\n }\r\n\r\n\r\n\r\n getOne(entityName: string, id?: number): Observable {\r\n //const url = `${this.getUrl(entityName) + entityName}/${id}`;\r\n const url = this.getUrl('GetOne', entityName, null, null, id);\r\n if (!url) {\r\n this.handleError('get' + entityName, [])\r\n }\r\n return this.http.get(url).pipe(\r\n tap(_ => this.log('fetched ' + entityName + ' id=${id}'))\r\n );\r\n }\r\n\r\n contactUs(contact: any): Observable {\r\n return this.http.post(this.getUrl('ContactUs'), contact).pipe(\r\n tap(_ => this.log('sent message'))\r\n );\r\n }\r\n\r\n reportError(error: any): Observable {\r\n return this.http.post(this.getUrl('ReportError'), error).pipe(\r\n tap(_ => this.log('sent message'))\r\n );\r\n }\r\n\r\n\r\n\r\n getAllStore(entityName: string): Observable {\r\n const url = this.getUrlStore('getAll', entityName);\r\n if (!url) {\r\n this.handleError('get' + entityName, [])\r\n }\r\n return this.http.get(url)\r\n .pipe(\r\n tap(_ => this.log('fetched ' + entityName))\r\n );\r\n }\r\n\r\n getFromStore(entityName): Observable {\r\n const url = this.getUrlStore('get' + entityName);\r\n if (!url) {\r\n this.handleError('get' + entityName, [])\r\n }\r\n return this.http.get(url)\r\n .pipe(\r\n tap(_ => this.log('fetched ' + entityName))\r\n );\r\n }\r\n\r\n async processOrder(order: Order): Promise {\r\n const url = this.getUrlStore('processOrder');\r\n if (!url) {\r\n this.handleError('Order process failed', [])\r\n }\r\n return this.http.post(url, order).pipe(take(1)).toPromise();\r\n // return this.http.post(url, order)\r\n // .pipe(\r\n // tap(_ => {\r\n // this.log('Order processed');\r\n // })\r\n // );\r\n }\r\n\r\n GetServiceHistory(): Observable {\r\n const url = this.getUrlStore('getServiceHistory');\r\n if (!url) {\r\n this.handleError('getServiceHistory', [])\r\n }\r\n return this.http.get(url)\r\n .pipe(\r\n tap(_ => this.log('fetched service history'))\r\n );\r\n }\r\n\r\n fileGet(id, folder, fileName?): Observable {\r\n //retrieve file from file server\r\n let url = this.getUrlStore('FileGetApi?');\r\n url = id ? url + 'Id=' + id : url;\r\n url = folder ? url + '&folder=' + folder : url;\r\n url = fileName ? url + '&fullName=' + fileName : url;\r\n //const url2 = this.getUrlStore('getServiceHistory');\r\n //return this.http.get(url)\r\n // .pipe(\r\n // tap(_ => this.log('fetched service history'))\r\n // );\r\n return this.http.get(url, { responseType: 'blob' }).pipe(map(res => {\r\n let result = { data: res }\r\n var reportName = id ? id.toString() : fileName;\r\n this.clickDownloadSavedReport({ report: reportName }, result);\r\n const msg = 'Report retrieved';\r\n return msg;\r\n }));\r\n }\r\n\r\n clickDownloadSavedReport = (params: any, response: any) => {\r\n let file = new Blob([response.data], { type: 'application/pdf' });\r\n if (this.currentUrl) { window.URL.revokeObjectURL(this.currentUrl); }\r\n this.currentUrl = params.url = URL.createObjectURL(file);\r\n let element = document.createElement('a');\r\n let reportName = params.report || params.monthendreport;\r\n element.href = params.url;\r\n element.setAttribute('download', reportName);\r\n document.body.appendChild(element);\r\n element.click();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n public handleError(operation = 'operation', result?: T) {\r\n return (error: any): Observable => {\r\n\r\n // TODO: send the error to remote logging infrastructure\r\n console.error(error); // log to console instead\r\n\r\n // TODO: better job of transforming error for user consumption\r\n this.log(`${operation} failed: ${error.message}`);\r\n\r\n // Let the app keep running by returning an empty result.\r\n return of(result as T);\r\n };\r\n }\r\n\r\n private log(message: string) {\r\n //this.messageService.add(`HeroService: ${message}`);\r\n console.log(message);\r\n }\r\n\r\n\r\n\r\n\r\n\r\n}\r\n\r\n\r\n\r\n","export default \".box {\\n border-radius: 0;\\n}\\n\\n.box .box-header {\\n height: 180px;\\n}\\n\\n.box .box-header .error {\\n font-size: 48px;\\n margin-bottom: 12px;\\n}\\n\\n.box .box-content {\\n position: relative;\\n height: 180px;\\n}\\n\\n.box .box-content .box-content-inner {\\n position: absolute;\\n top: -34px;\\n left: 34px;\\n right: 34px;\\n height: 180px;\\n}\\n\\n.box .box-content .box-content-header {\\n font-size: 16px;\\n text-transform: uppercase;\\n font-weight: 500;\\n}\\n\\n.box .box-content .box-content-header.server-error {\\n margin-bottom: 36px;\\n}\\n\\n.box .box-content .box-text {\\n margin-bottom: 10px;\\n text-align: center;\\n}\\n\\n.box .box-content .box-text::last-child {\\n margin-bottom: 15px;\\n}\\n\\n.box .box-content .box-footer {\\n position: relative;\\n bottom: 16px;\\n}\\n\\n.box .box-content .box-footer button {\\n min-width: 70px;\\n margin: 0 2px;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvbm90LWZvdW5kL25vdC1mb3VuZC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGdCQUFnQjtBQUNwQjs7QUFGQTtFQUdRLGFBQWE7QUFHckI7O0FBTkE7RUFLWSxlQUFlO0VBQ2YsbUJBQW1CO0FBSy9COztBQVhBO0VBVVEsa0JBQWtCO0VBQ2xCLGFBQWE7QUFLckI7O0FBaEJBO0VBYVksa0JBQWtCO0VBQ2xCLFVBQVU7RUFDVixVQUFVO0VBQ1YsV0FBVztFQUNYLGFBQWE7QUFPekI7O0FBeEJBO0VBb0JZLGVBQWU7RUFDZix5QkFBeUI7RUFDekIsZ0JBQWU7QUFRM0I7O0FBOUJBO0VBd0JnQixtQkFBbUI7QUFVbkM7O0FBbENBO0VBNEJZLG1CQUFtQjtFQUNuQixrQkFBa0I7QUFVOUI7O0FBdkNBO0VBK0JnQixtQkFBbUI7QUFZbkM7O0FBM0NBO0VBbUNZLGtCQUFrQjtFQUNsQixZQUFZO0FBWXhCOztBQWhEQTtFQXNDZ0IsZUFBZTtFQUNmLGFBQWE7QUFjN0IiLCJmaWxlIjoic3JjL2FwcC9wYWdlcy9ub3QtZm91bmQvbm90LWZvdW5kLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmJveHtcclxuICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgICAuYm94LWhlYWRlcntcclxuICAgICAgICBoZWlnaHQ6IDE4MHB4O1xyXG4gICAgICAgIC5lcnJvcntcclxuICAgICAgICAgICAgZm9udC1zaXplOiA0OHB4O1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5ib3gtY29udGVudHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgaGVpZ2h0OiAxODBweDsgICAgIFxyXG4gICAgICAgIC5ib3gtY29udGVudC1pbm5lcntcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICB0b3A6IC0zNHB4O1xyXG4gICAgICAgICAgICBsZWZ0OiAzNHB4O1xyXG4gICAgICAgICAgICByaWdodDogMzRweDtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxODBweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmJveC1jb250ZW50LWhlYWRlcntcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4OyBcclxuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6NTAwO1xyXG4gICAgICAgICAgICAmLnNlcnZlci1lcnJvcntcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDM2cHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmJveC10ZXh0e1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICY6Omxhc3QtY2hpbGR7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5ib3gtZm9vdGVye1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIGJvdHRvbTogMTZweDtcclxuICAgICAgICAgICAgYnV0dG9ue1xyXG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA3MHB4O1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDJweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ== */\";","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-not-found',\r\n templateUrl: './not-found.component.html',\r\n styleUrls: ['./not-found.component.scss']\r\n})\r\nexport class NotFoundComponent implements OnInit {\r\n\r\n constructor(public router:Router) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n public goHome(): void {\r\n this.router.navigate(['/']);\r\n }\r\n\r\n}\r\n","export default \".main {\\n min-height: 400px;\\n min-height: calc(100vh - 288px);\\n padding: 16px;\\n}\\n\\n.sidenav {\\n width: 250px;\\n padding: 8px 16px;\\n position: fixed;\\n}\\n\\n.sidenav .close {\\n margin-left: 178px;\\n}\\n\\n.sidenav .divider {\\n margin: 8px 0;\\n}\\n\\n.cart-items-count {\\n position: absolute;\\n top: -3px;\\n left: 26px;\\n background: #f44336;\\n height: 18px;\\n width: 18px;\\n line-height: 18px;\\n border-radius: 50%;\\n font-size: 11px;\\n}\\n\\n/*SPOS limit size for main toolbar*/\\n\\n.mat-toolbar-multiple-rows {\\n min-height: 50px;\\n}\\n\\n/*SPOS padding for logo*/\\n\\nmat-toolbar-row, .mat-toolbar-single-row {\\n padding-top: 10px;\\n}\\n\\n/*SPOS limit size for main toolbar*/\\n\\n.logo-toolbar {\\n max-height: 50px;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvcGFnZXMuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxpQkFBaUI7RUFDakIsK0JBQStCO0VBQy9CLGFBQWE7QUFDakI7O0FBQ0E7RUFDSSxZQUFZO0VBQ1osaUJBQWlCO0VBQ2pCLGVBQWU7QUFFbkI7O0FBTEE7RUFLUSxrQkFBa0I7QUFJMUI7O0FBVEE7RUFRUSxhQUFhO0FBS3JCOztBQUZBO0VBQ0ksa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxVQUFVO0VBQ1YsbUJBQW1CO0VBQ25CLFlBQVk7RUFDWixXQUFXO0VBQ1gsaUJBQWlCO0VBQ2pCLGtCQUFrQjtFQUNsQixlQUFlO0FBS25COztBQUhBLG1DQUFBOztBQUNBO0VBQ0UsZ0JBQWdCO0FBTWxCOztBQUpBLHdCQUFBOztBQUNBO0VBQ0ksaUJBQ0o7QUFNQTs7QUFMQSxtQ0FBQTs7QUFDQTtFQUNFLGdCQUFnQjtBQVFsQiIsImZpbGUiOiJzcmMvYXBwL3BhZ2VzL3BhZ2VzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1haW57XHJcbiAgICBtaW4taGVpZ2h0OiA0MDBweDtcclxuICAgIG1pbi1oZWlnaHQ6IGNhbGMoMTAwdmggLSAyODhweCk7XHJcbiAgICBwYWRkaW5nOiAxNnB4O1xyXG59XHJcbi5zaWRlbmF2e1xyXG4gICAgd2lkdGg6IDI1MHB4O1xyXG4gICAgcGFkZGluZzogOHB4IDE2cHg7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICAuY2xvc2V7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDE3OHB4O1xyXG4gICAgfVxyXG4gICAgLmRpdmlkZXJ7XHJcbiAgICAgICAgbWFyZ2luOiA4cHggMDtcclxuICAgIH1cclxufVxyXG4uY2FydC1pdGVtcy1jb3VudHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogLTNweDtcclxuICAgIGxlZnQ6IDI2cHg7XHJcbiAgICBiYWNrZ3JvdW5kOiAjZjQ0MzM2O1xyXG4gICAgaGVpZ2h0OiAxOHB4O1xyXG4gICAgd2lkdGg6IDE4cHg7XHJcbiAgICBsaW5lLWhlaWdodDogMThweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIGZvbnQtc2l6ZTogMTFweDtcclxufVxyXG4vKlNQT1MgbGltaXQgc2l6ZSBmb3IgbWFpbiB0b29sYmFyKi9cclxuLm1hdC10b29sYmFyLW11bHRpcGxlLXJvd3Mge1xyXG4gIG1pbi1oZWlnaHQ6IDUwcHg7XHJcbn1cclxuLypTUE9TIHBhZGRpbmcgZm9yIGxvZ28qL1xyXG5tYXQtdG9vbGJhci1yb3csIC5tYXQtdG9vbGJhci1zaW5nbGUtcm93e1xyXG4gICAgcGFkZGluZy10b3A6MTBweFxyXG59XHJcbi8qU1BPUyBsaW1pdCBzaXplIGZvciBtYWluIHRvb2xiYXIqL1xyXG4ubG9nby10b29sYmFyIHtcclxuICBtYXgtaGVpZ2h0OiA1MHB4O1xyXG59XHJcblxyXG5cclxuXHJcbiJdfQ== */\";","import { Component, OnInit, HostListener, ViewChild } from '@angular/core'; \r\nimport { Router, NavigationEnd} from '@angular/router';\r\nimport { Settings, AppSettings } from '../app.settings';\r\nimport { Category } from '../app.models';\r\nimport { SidenavMenuService } from '../theme/components/sidenav-menu/sidenav-menu.service';\r\nimport { ContentService } from '../content/content.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-pages',\r\n templateUrl: './pages.component.html',\r\n styleUrls: ['./pages.component.scss'],\r\n providers: [ SidenavMenuService ]\r\n})\r\nexport class PagesComponent implements OnInit {\r\n public showBackToTop: boolean = false; \r\n public categories: Category[];\r\n public category: Category;\r\n public sidenavMenuItems: Array;\r\n\r\n @ViewChild('sidenav', { static: true }) sidenav:any;\r\n\r\n public settings: Settings;\r\n constructor(public appSettings: AppSettings, \r\n public content: ContentService, \r\n public sidenavMenuService:SidenavMenuService,\r\n public router: Router,\r\n private spinner: NgxSpinnerService) { \r\n this.settings = this.appSettings.settings; \r\n }\r\n\r\n ngOnInit() {\r\n this.sidenavMenuItems = this.sidenavMenuService.getSidenavMenuItems();\r\n this.spinner.show();\r\n } \r\n\r\n \r\n ngDoCheck() {\r\n if (this.content.showContent) {\r\n this.spinner.hide();\r\n }\r\n }\r\n\r\n \r\n\r\n public changeTheme(theme){\r\n this.settings.theme = theme; \r\n }\r\n\r\n public stopClickPropagate(event: any){\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n\r\n public search(){}\r\n\r\n \r\n public scrollToTop(){\r\n var scrollDuration = 200;\r\n var scrollStep = -window.pageYOffset / (scrollDuration / 20);\r\n var scrollInterval = setInterval(()=>{\r\n if(window.pageYOffset != 0){\r\n window.scrollBy(0, scrollStep);\r\n }\r\n else{\r\n clearInterval(scrollInterval); \r\n }\r\n },10);\r\n if(window.innerWidth <= 768){\r\n setTimeout(() => { window.scrollTo(0,0) });\r\n }\r\n }\r\n @HostListener('window:scroll', ['$event'])\r\n onWindowScroll($event) {\r\n ($event.target.documentElement.scrollTop > 300) ? this.showBackToTop = true : this.showBackToTop = false; \r\n }\r\n\r\n ngAfterViewInit(){\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationEnd) { \r\n this.sidenav?.close(); \r\n } \r\n });\r\n this.sidenavMenuService.expandActiveSubMenu(this.sidenavMenuService.getSidenavMenuItems());\r\n }\r\n\r\n public closeSubMenus(){\r\n if(window.innerWidth < 960){\r\n this.sidenavMenuService.closeAllSubMenus();\r\n } \r\n }\r\n\r\n \r\n\r\n \r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { DataApiService } from '../data/data-api.service';\r\n\r\nexport interface PaymentData {\r\n paymentUrl: string;\r\n data: { [key: string]: string };\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PaymentService {\r\n\r\n constructor(private http: HttpClient,\r\n private api: DataApiService) {\r\n }\r\n\r\n \r\n\r\n // make a Pay Fast payment\r\n //public makePayment = ():Observable => {\r\n // const params = {\r\n // merchant_id: '10000100',\r\n // merchant_key: '46f0cd694581a',\r\n // amount: '100.00',\r\n // item_name: 'Boxes',\r\n // };\r\n // // const params = {\r\n // // merchant_id: '10029641',\r\n // // merchant_key: '0mwczxj3umrhq',\r\n // // item_name: 'Boxes',\r\n // // amount: '560'\r\n // // };\r\n // // create a parameter string\r\n // const paramString = this.createParamString(params);\r\n // // append the parameter string to the payfast url\r\n // this.url = `${this.pfBaseUrl}?${paramString}`;\r\n // // make a post request to the payfast url\r\n // return this.http.post(this.apiUrl, { url: this.url });\r\n //};\r\n\r\n // create a parameter string\r\n //private createParamString = (params: any): string => {\r\n // let paramString = '';\r\n // for (const key in params) {\r\n // if (params.hasOwnProperty(key)) {\r\n // paramString += `${key}=${params[key]}&`;\r\n // }\r\n // }\r\n // return paramString.slice(0, -1);\r\n //};\r\n\r\n public makeApiRequest = (params): Promise => {\r\n // send payment details to backend\r\n const url = this.api.getUrlBase() + 'create-payment';\r\n // FIXME: Need to lock down the page till return. Maybe a big spinner\r\n return this.http.post(url, params).toPromise() as Promise;\r\n }\r\n};\r\n","export default \".banners-container {\\n margin: 20px 10px 0px 10px;\\n /*margin: 22px -8px;*/\\n}\\n\\n.banners-container .banner {\\n position: relative;\\n margin: 0;\\n padding: 0;\\n background-repeat: no-repeat;\\n background-size: cover;\\n background-position: center;\\n overflow: hidden;\\n transition: 0.15s ease-in;\\n}\\n\\n.banners-container .banner .info {\\n height: 100%;\\n width: 100%;\\n color: #fff;\\n padding: 90px 0;\\n transition: 0.15s ease-in;\\n}\\n\\n.banners-container .banner .info h1 {\\n font-size: 36px;\\n}\\n\\n.banners-container .banner .info .title {\\n font-weight: 500;\\n text-align: center;\\n}\\n\\n.banners-container .banner .info .subtitle {\\n font-weight: normal;\\n font-style: italic;\\n text-align: center;\\n}\\n\\n.banners-container .banner:hover .info {\\n background: rgba(0, 0, 0, 0.7);\\n}\\n\\n@media (max-width: 959px) {\\n .banners-container .banner .info {\\n padding: 30px 0px;\\n }\\n .banners-container .banner .info h1 {\\n font-size: 24px;\\n }\\n .banners-container .banner .info h2 {\\n font-size: 16px;\\n }\\n .banners-container .banner .info h3 {\\n font-size: 14px;\\n }\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2Jhbm5lcnMvYmFubmVycy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLDBCQUEwQjtFQUMxQixxQkFBQTtBQUNGOztBQUhBO0VBSUksa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxVQUFVO0VBQ1YsNEJBQTRCO0VBQzVCLHNCQUFzQjtFQUN0QiwyQkFBMkI7RUFDM0IsZ0JBQWdCO0VBQ2hCLHlCQUF5QjtBQUc3Qjs7QUFkQTtFQWNNLFlBQVk7RUFDWixXQUFXO0VBRVgsV0FBVztFQUNYLGVBQWU7RUFDZix5QkFBeUI7QUFHL0I7O0FBdEJBO0VBc0JRLGVBQWU7QUFJdkI7O0FBMUJBO0VBMEJRLGdCQUFnQjtFQUNoQixrQkFBa0I7QUFJMUI7O0FBL0JBO0VBK0JRLG1CQUFtQjtFQUNuQixrQkFBa0I7RUFDbEIsa0JBQWtCO0FBSTFCOztBQXJDQTtFQXVDUSw4QkFBOEI7QUFFdEM7O0FBT0E7RUFDSTtJQUdZLGlCQUFpQjtFQU4vQjtFQUdFO0lBS2dCLGVBQWU7RUFMakM7RUFBRTtJQVFnQixlQUFlO0VBTGpDO0VBSEU7SUFXZ0IsZUFBZTtFQUxqQztBQUNGIiwiZmlsZSI6InNyYy9hcHAvc2hhcmVkL2Jhbm5lcnMvYmFubmVycy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5iYW5uZXJzLWNvbnRhaW5lciB7XHJcbiAgbWFyZ2luOiAyMHB4IDEwcHggMHB4IDEwcHg7XHJcbiAgLyptYXJnaW46IDIycHggLThweDsqL1xyXG4gIC5iYW5uZXIge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbWFyZ2luOiAwOy8vOHB4O1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHRyYW5zaXRpb246IDAuMTVzIGVhc2UtaW47XHJcblxyXG4gICAgLmluZm8ge1xyXG4gICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAvL2JhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC40KTtcclxuICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgIHBhZGRpbmc6IDkwcHggMDtcclxuICAgICAgdHJhbnNpdGlvbjogMC4xNXMgZWFzZS1pbjtcclxuXHJcbiAgICAgIGgxIHtcclxuICAgICAgICBmb250LXNpemU6IDM2cHg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC50aXRsZSB7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5zdWJ0aXRsZSB7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIC5pbmZvIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG5cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA5NTlweCkgeyBcclxuICAgIC5iYW5uZXJzLWNvbnRhaW5lcntcclxuICAgICAgICAuYmFubmVye1xyXG4gICAgICAgICAgICAuaW5mb3tcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDMwcHggMHB4O1xyXG4gICAgICAgICAgICAgICAgaDF7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaDJ7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaDN7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ== */\";","import { Component, OnInit, Input } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { Content } from '@angular/compiler/src/render3/r3_ast';\r\nimport { ContentService } from '../../content/content.service';\r\n\r\n@Component({\r\n selector: 'app-banners',\r\n templateUrl: './banners.component.html',\r\n styleUrls: ['./banners.component.scss']\r\n})\r\nexport class BannersComponent implements OnInit {\r\n public banners: any[];\r\n\r\n constructor(private _sanitizer: DomSanitizer,private content: ContentService) { }\r\n\r\n ngOnInit() {\r\n this.banners = [\r\n {\r\n title: this.content.firstHeadingText,\r\n subtitle: this.content.subHeadingText,\r\n image: this.content.mainPicture,\r\n colour: this.content.headerColour,\r\n backgroundColor: this.content.headerColour,\r\n buttonColour: this.content.callToActionColour,\r\n calltoAction: this.content.calltoActionText\r\n }\r\n ];\r\n }\r\n\r\n \r\n\r\n public getBanner(index){\r\n return this.banners[index];\r\n }\r\n\r\n getBackground(image) {\r\n return this._sanitizer.bypassSecurityTrustStyle(`linear-gradient(rgba(29, 29, 29, 0), rgba(16, 16, 23, 0.5)), url(${image})`);\r\n }\r\n\r\n public getBgImage(index){\r\n let bgImage = {\r\n 'background-image': index != null ?\r\n \"url(\" + this.banners[index].image + \")\" :\r\n \"url(https://via.placeholder.com/600x400/ff0000/fff/)\"\r\n };\r\n return bgImage;\r\n } \r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9iaWxsaW5nLWZvcm0vYmlsbGluZy1mb3JtLmNvbXBvbmVudC5jc3MifQ== */\";","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AuthService } from '../../core/auth.service';\r\nimport { CartService } from '../../cartservice/cart.service';\r\nimport { DataApiService } from '../../data/data-api.service';\r\nimport { Order, SharedData, User, WebsitePackage } from '../../data/models';\r\nimport { OrderService } from '../../cartservice/order.service';\r\nimport { TotalService } from 'src/app/cartservice/total.service';\r\nimport { PaymentData, PaymentService } from 'src/app/services/payment.service';\r\nimport { LocalTenantStorageService } from 'src/app/core/local-storage.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { DialogComponent, DialogOptions } from '../dialog/dialog.component';\r\nimport { take } from 'rxjs/operators';\r\n\r\ninterface PaymentParams {\r\n amount: number;\r\n name: string;\r\n email: string;\r\n orderID: string;\r\n tenant: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-billing-form',\r\n templateUrl: './billing-form.component.html',\r\n styleUrls: ['./billing-form.component.css']\r\n})\r\nexport class BillingFormComponent implements OnInit {\r\n // private sub: any;\r\n billingForm: FormGroup;\r\n @Input() isSummary: string;\r\n @Input() paymentData: any;\r\n @Input() allowOnlinePayment: boolean;\r\n @Output() uploaded = new EventEmitter();\r\n currentUser: User;\r\n paymentParams: PaymentParams;\r\n\r\n constructor(public formBuilder: FormBuilder,\r\n private auth: AuthService,\r\n private cart: CartService,\r\n private dataApi: DataApiService,\r\n private order: OrderService,\r\n private total: TotalService,\r\n private tenantStorage: LocalTenantStorageService,\r\n private payFastService: PaymentService,\r\n private dialog: MatDialog,\r\n ) {\r\n this.auth.currentUser.subscribe(x => this.currentUser = x);\r\n }\r\n\r\n ngOnInit(): void {\r\n // TODO: NB Uncomment for testing\r\n // this.allowOnlinePayment = true;\r\n \r\n // TODO: This should be moved to auth. Once the user is reloaded so is the cart. This will keep the cart always\r\n // loaded.\r\n this.cart.loadStorage();\r\n this.setUpForm();\r\n this.getBillingDetails();\r\n }\r\n\r\n getBillingDetails() {\r\n this.billingForm.patchValue({\r\n name: this.paymentData?.name || '',\r\n address: this.paymentData?.billing || this.cart.Data.address || '',\r\n company: this.paymentData?.company || '',\r\n vatReg: this.paymentData?.vatReg || '',\r\n notes: this.paymentData?.notes || '',\r\n phone: this.paymentData?.phone || ''\r\n })\r\n }\r\n\r\n setUpForm() {\r\n let restored = JSON.parse(this.tenantStorage.getItem('billing-address'));\r\n restored = restored ? restored : {};\r\n\r\n for (const key of ['name', 'address', 'company', 'phone', 'notes', 'vatReg']) {\r\n if (!restored[key]) {\r\n restored[key] = '';\r\n }\r\n }\r\n\r\n if (restored.email === '') { restored.email = this.cart.Data.address; }\r\n\r\n this.billingForm = this.formBuilder.group({\r\n name: [restored.name, Validators.required],\r\n address: [restored.address, Validators.required],\r\n company: restored.company,\r\n phone: [restored.phone, Validators.required],\r\n notes: restored.notes,\r\n vatReg: restored.vatReg\r\n });\r\n }\r\n\r\n public async onFormSubmit(values: Object) {\r\n if (!this.billingForm.valid) {\r\n return;\r\n }\r\n this.tenantStorage.setItem('billing-address', this.billingForm.value);\r\n const email = this.currentUser.userName;\r\n\r\n const order: Order = this.order.processOrder(this.cart.Data, this.billingForm.value,email);\r\n\r\n // We want it straight to order and straight to payment\r\n // const process = await this.confirmationDialog();\r\n\r\n // if (!process) {\r\n // return;\r\n // }\r\n\r\n const orderID = await this.dataApi.processOrder(order);\r\n\r\n // should go to payfast from here if payOnline is true\r\n // Check if online payment allowed\r\n if (this.allowOnlinePayment) {\r\n this.getPaymentParams(orderID);\r\n const pd = await this.payFastService.makeApiRequest(this.paymentParams);\r\n // this.paymentDialog(pp);\r\n window.location.href = pd.paymentUrl;\r\n // this.uploaded.emit({nextStep: 'paynow', billingForm: this.billingForm});//Online payment step\r\n } else {\r\n this.uploaded.emit('complete');//OrderConfirmation\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n \r\n }\r\n\r\n getAddress(param) {\r\n this.cart.Data.billing = param.place['formatted_address'];\r\n }\r\n\r\n getPaymentParams(orderID: string) {\r\n const cartTotal = this.total.getTotalWithVat(this.cart.Data.cartList);\r\n this.paymentParams = {\r\n amount: cartTotal,\r\n name: this.billingForm.value.name,\r\n email: this.currentUser.userName,\r\n orderID: orderID,\r\n tenant: this.dataApi.getTenant()\r\n }\r\n }\r\n\r\n private async confirmationDialog() {\r\n let body: string;\r\n\r\n if (this.allowOnlinePayment) {\r\n body = null;\r\n } else {\r\n body = 'You will be sent payment instructions once your order has been recived.'\r\n }\r\n\r\n const data: DialogOptions = {\r\n title: 'Placing Order',\r\n subTitle: 'Would you like to place your order?',\r\n body,\r\n buttons: [\r\n {\r\n label: 'Cancel',\r\n role: 'n'\r\n },\r\n {\r\n label: 'Plcae order',\r\n role: 'y'\r\n }\r\n ]\r\n };\r\n const dRef = this.dialog.open(\r\n DialogComponent,\r\n {disableClose: true, data}\r\n );\r\n const result = await dRef.afterClosed().pipe(take(1)).toPromise();\r\n return result.role === 'y';\r\n }\r\n\r\n private async paymentDialog(pp: PaymentData) {\r\n const data: DialogOptions = {\r\n title: 'Order Placed',\r\n subTitle: 'Thank you for your buisness',\r\n body: 'Would you like to pay now with payfast?
If not we can send you an email to make payment later.',\r\n buttons: [\r\n {\r\n label: 'Not now',\r\n role: 'n'\r\n },\r\n {\r\n label: 'Pay now',\r\n role: 'y'\r\n }\r\n ]\r\n };\r\n const dRef = this.dialog.open(\r\n DialogComponent,\r\n {disableClose: false, data}\r\n );\r\n const result = await dRef.afterClosed().pipe(take(1)).toPromise();\r\n \r\n if (result.role === 'y') {\r\n window.location.href = pp.paymentUrl;\r\n } else {\r\n alert('Do email?');\r\n }\r\n }\r\n}\r\n","export default \"mat-datepicker-toggle {\\n display: inline-block;\\n}\\n\\n.button-top-margin {\\n margin-top: 10px;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2Jvb2tpbmcvYm9va2luZy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLHFCQUNKO0FBQUE7O0FBQ0E7RUFDQyxnQkFDRDtBQUNBIiwiZmlsZSI6InNyYy9hcHAvc2hhcmVkL2Jvb2tpbmcvYm9va2luZy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIm1hdC1kYXRlcGlja2VyLXRvZ2dsZXtcclxuICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrXHJcbn1cclxuLmJ1dHRvbi10b3AtbWFyZ2luIHtcclxuIG1hcmdpbi10b3A6MTBweFxyXG59XHJcblxyXG5cclxuXHJcbiJdfQ== */\";","import { Component, OnInit, Input} from '@angular/core';\r\nimport { Package, OptionDetail, WebsitePackage } from '../../data/models';\r\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\r\nimport { Router } from '@angular/router';\r\nimport { SharedData } from '../../data/models/shared-data';\r\nimport { CommonService } from '../../core/hascommon.service';\r\nimport { CartService } from '../../cartservice/cart.service';\r\nimport { BookingService } from '../../cartservice/booking.service';\r\nimport { ContentService } from '../../content/content.service';\r\nimport { ArrayFilter } from '../../data/models/array-filter';\r\nimport { NotificationService } from '../../core/notification.service';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-booking',\r\n templateUrl: './booking.component.html',\r\n styleUrls: ['./booking.component.scss']\r\n})\r\nexport class BookingComponent implements OnInit {\r\n @Input() type: string;\r\n @Input() id: string;\r\n //address\r\n public displayAreaNotFound: boolean;\r\n //package\r\n public available=0;\r\n public packageValue: [];\r\n public ongoing = true;\r\n public selectedPackages: Package[];\r\n public selectedOptions: OptionDetail[];\r\n public minDate: Date;\r\n\r\n private canBookLive: boolean;\r\n private canPayLive: boolean;\r\n\r\n constructor(public content: ContentService,\r\n public book: BookingService,\r\n public cart: CartService,\r\n private router: Router,\r\n private common: CommonService,\r\n private notification: NotificationService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.minDate = this.common.dateTomorrowDate();\r\n //get already selected options and packages\r\n this.selectedOptions = this.cart.Data.cartSelections;\r\n //const calqty = this.cart.calcAvailable;\r\n const cartPackages = this.common.arrayOfObjectsGetUniqueProperties(this.cart.Data.cartSelections, 'packageID')\r\n\r\n if (cartPackages && cartPackages.length) {\r\n this.selectedPackages = this.content.packages.filter(p => { return cartPackages.indexOf(p.packageID) > -1; });\r\n const webPackages = this.selectedPackages.map((p: Package) =>\r\n this.content.websitePackages.find((wp: WebsitePackage) =>\r\n (p.packageID === wp.packageID))).filter((wp: WebsitePackage) => !!wp);\r\n \r\n this.canBookLive = !webPackages.find((wp: WebsitePackage) => !wp.canBookLive);\r\n this.canPayLive = !webPackages.find((wp: WebsitePackage) => !wp.canPayLive);\r\n }\r\n if (this.id && this.type === 'product') {\r\n this.available = this.cart.availableStock(null,this.getId());\r\n }\r\n }\r\n\r\n get inStock(): boolean { return this.available > 0; }\r\n\r\n get canBookOnline(): boolean { return this.canBookLive; }\r\n get canPayOnline(): boolean { return this.canPayLive; }\r\n \r\n get canBookImediatly(): boolean { return this.canBookOnline && this.inStock; }\r\n \r\n compareItems(o1: any, o2: any) {\r\n if (o1 && o2 && o1.id === o2.id)\r\n return true;\r\n else return false\r\n }\r\n\r\n changedDate(type: string, event: MatDatepickerInputEvent) {\r\n if (this.common.dateIsAfter(this.minDate, this.cart.Data.start)) {\r\n this.cart.Data.start = this.minDate;\r\n }\r\n this.cart.getHireStock(this.cart.Data);\r\n }\r\n\r\n changedPackageSelection(values) {\r\n const selectedIds = values.map(p => { return p.packageID});\r\n this.selectedOptions = selectedIds.filter(o => {\r\n return this.selectedOptions.indexOf(o.packageID) > -1\r\n })\r\n this.cart.changeCartSelections(this.cart.Data, this.selectedOptions);\r\n }\r\n\r\n changedOptionSelection(values) {\r\n if (this.type && this.id) {\r\n const otherProductSelections = this.cart.Data.cartSelections.filter(o => {\r\n if ((this.type === 'package' && o.packageID === this.getId()) ||\r\n (o.type === this.type && o.typeId === this.getId() && !this.id)) {\r\n return false;\r\n } else {\r\n return o;\r\n }\r\n })\r\n values = otherProductSelections.concat(values);\r\n }\r\n this.cart.changeCartSelections(this.cart.Data, values);\r\n }\r\n\r\n \r\n \r\n\r\n clearDates() {\r\n this.cart.Data.start = null;\r\n this.cart.Data.end = null;\r\n }\r\n\r\n dateFilter = (date: Date) => this.common.dateDOW(date) < 6 &&\r\n this.common.dateDOW(date) !== 0;\r\n\r\n \r\n getId() {\r\n return parseInt(this.id);\r\n }\r\n\r\n getOption() {\r\n const packageValues = this.selectedPackages;\r\n if(!packageValues || packageValues.length === 0){\r\n return;\r\n }\r\n if (!this.type || !this.id || !packageValues || !packageValues[0]) { return; }\r\n const filter: ArrayFilter = {\r\n prop: 'typeId',\r\n filterId: this.getId()\r\n }\r\n return this.common.arrayGetFirstMatchingObject(packageValues[0].options, [filter]);\r\n }\r\n\r\n addToCart() {\r\n const selectedOption = this.getOption();\r\n if(!selectedOption){\r\n const msg = 'First select package';\r\n this.notification.showWarning(msg);\r\n }else{\r\n let selectedOptions;\r\n if (this.type && this.id) {\r\n //get currently selected options\r\n selectedOptions = this.cart.Data.cartSelections.filter(o => {\r\n if ((this.type === 'package' && o.packageID === this.getId()) ||\r\n (o.type === this.type && o.typeId === this.getId() && !this.id)) {\r\n return false;\r\n } else {\r\n return o;\r\n }\r\n })\r\n selectedOptions = selectedOptions.concat(selectedOption);\r\n }\r\n this.cart.changeCartSelections(this.cart.Data, selectedOptions);\r\n }\r\n }\r\n\r\n hasNoDatesOrAddress(data: SharedData) {\r\n return !data.start || !data.address || this.needsEndDate();\r\n }\r\n\r\n\r\n getPackageMsg(p?: Package, data?: SharedData, id?: string){\r\n if(!id){return;}\r\n const msg = this.cart.productHasInvalidDates(p, data,id);\r\n return msg? 'Only valid for ' + msg + ' delivery':'';\r\n }\r\n\r\n \r\n showGoToCart() {\r\n return this.cart.Data.cartSelections.length;\r\n }\r\n\r\n \r\n\r\n //autoSelectOption(packages) {\r\n // if (!this.type && !this.available) {\r\n // return;\r\n // }\r\n // //auto selects option detail for product page\r\n // const filterPipe = new FilterByProductPipe();\r\n // const filteredPackages = filterPipe.transform(this.content.packages,this.type,this.id);\r\n // const optionsToRemove: OptionDetail[] = [];\r\n // //remove unselected\r\n // this.cart.Data.cartSelections.forEach(o => {\r\n // const inFilteredPackages = this.common.arrayFilter(filteredPackages, [{ filterId: o.packageID, prop: 'packageID' }])||[];\r\n // if (inFilteredPackages.length && o.type === this.type && o.typeId ===parseInt(this.id)) {\r\n // optionsToRemove.push(o);\r\n // }\r\n // });\r\n // optionsToRemove.forEach(o => {\r\n // this.cart.Data.cartSelections = this.common.arrayFilter(this.cart.Data.cartSelections, [{ filterId: o.id, prop: 'id' }]) || [];\r\n // })\r\n // //select selected\r\n // let id;\r\n // packages.forEach(p => {\r\n // p.options.forEach(o => {\r\n // if (o.type === this.type && o.typeId === parseInt(this.id) && !id) {\r\n // this.cart.Data.cartSelections.push(o);\r\n // id = o.id;\r\n // }\r\n // })\r\n // })\r\n\r\n //}\r\n\r\n \r\n\r\n getAddress(param) {\r\n if (!param||!param.place) {\r\n this.book.addBookingFormDetails(this.cart.Data, null,null, null);\r\n } else {\r\n const lat = param.place['geometry'].location.lat();\r\n const lng = param.place['geometry'].location.lng();\r\n this.book.addBookingFormDetails(this.cart.Data, param.place['formatted_address'], lat + ',' + lng, param.areaID);\r\n }\r\n this.cart.changeAddress(this.cart.Data);\r\n }\r\n\r\n \r\n\r\n getOptionName(o) {\r\n const desc = o.name;\r\n if (!this.cart.Data.branch || !this.cart.Data.branch.branchID) {\r\n return desc + '- Enter valid address'\r\n }\r\n if (!this.cart.hasStock(o)) {\r\n return desc + (this.cart.Data.start ? ' (no stock for hire dates)' : ' - Enter hire date(/s)');\r\n }\r\n const validStart = this.cart.hasInvalidDates(o,this.cart.Data);\r\n if (validStart) {\r\n return desc + (this.cart.Data.start ? ' (Valid for '+ validStart +' delivery date)' : ' - Enter hire date(/s)');\r\n }\r\n return o.name;\r\n }\r\n\r\n goToCart() {\r\n this.router.navigateByUrl('/cart');\r\n }\r\n\r\n \r\n needsEndDate() {\r\n return !this.ongoing && this.cart.Data.start && !this.cart.Data.end;\r\n }\r\n \r\n\r\n toggleOngoing() {\r\n this.ongoing = !this.ongoing;\r\n this.clearDates();\r\n }\r\n\r\n showOption() {\r\n return !this.type || this.type === 'package';\r\n }\r\n\r\n\r\n\r\n \r\n}\r\n","export default \".brands-carousel {\\n position: relative;\\n padding: 8px 0;\\n margin-top: 10px;\\n margin-bottom: 20px;\\n}\\n\\n.brands-carousel .swiper-container {\\n padding: 8px 2px;\\n margin: 0 14px;\\n}\\n\\n.brands-carousel .swiper-container .brand-item {\\n height: 80px;\\n padding: 16px;\\n display: flex;\\n align-items: center;\\n}\\n\\n.brands-carousel .swiper-container .brand-item img {\\n max-width: 100%;\\n max-height: 100%;\\n margin: 0 auto;\\n}\\n\\n.brands-carousel .swiper-button-prev {\\n left: -10px;\\n}\\n\\n.brands-carousel .swiper-button-next {\\n right: -10px;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2JyYW5kcy1jYXJvdXNlbC9icmFuZHMtY2Fyb3VzZWwuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFFSSxrQkFBa0I7RUFDbEIsY0FBYztFQUNkLGdCQUFnQjtFQUNoQixtQkFBbUI7QUFBdkI7O0FBTEE7RUFPUSxnQkFBZ0I7RUFDaEIsY0FBYztBQUV0Qjs7QUFWQTtFQVVZLFlBQVk7RUFDWixhQUFhO0VBQ2IsYUFBYTtFQUNiLG1CQUFtQjtBQUkvQjs7QUFqQkE7RUFlZ0IsZUFBZTtFQUNmLGdCQUFnQjtFQUNoQixjQUFjO0FBTTlCOztBQXZCQTtFQXNCUSxXQUFXO0FBS25COztBQTNCQTtFQXlCUSxZQUFZO0FBTXBCIiwiZmlsZSI6InNyYy9hcHAvc2hhcmVkL2JyYW5kcy1jYXJvdXNlbC9icmFuZHMtY2Fyb3VzZWwuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYnJhbmRzLWNhcm91c2Vse1xyXG4gICAgLy9iYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMDMpO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgcGFkZGluZzogOHB4IDA7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4Oy8vMzBweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICAuc3dpcGVyLWNvbnRhaW5lcntcclxuICAgICAgICBwYWRkaW5nOiA4cHggMnB4O1xyXG4gICAgICAgIG1hcmdpbjogMCAxNHB4O1xyXG4gICAgICAgIC5icmFuZC1pdGVte1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDgwcHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDE2cHg7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGltZ3tcclxuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gICAgICAgIFxyXG4gICAgfVxyXG4gICAgLnN3aXBlci1idXR0b24tcHJldntcclxuICAgICAgICBsZWZ0OiAtMTBweDtcclxuICAgIH1cclxuICAgIC5zd2lwZXItYnV0dG9uLW5leHR7XHJcbiAgICAgICAgcmlnaHQ6IC0xMHB4O1xyXG4gICAgfVxyXG59XHJcbiJdfQ== */\";","import { Component, Input } from '@angular/core';\r\nimport { SwiperConfigInterface } from 'ngx-swiper-wrapper';\r\n\r\n@Component({\r\n selector: 'app-brands-carousel',\r\n templateUrl: './brands-carousel.component.html',\r\n styleUrls: ['./brands-carousel.component.scss']\r\n})\r\nexport class BrandsCarouselComponent {\r\n\r\n @Input('brands') brands: Array = [];\r\n\r\n public config: SwiperConfigInterface = { };\r\n \r\n constructor() { }\r\n\r\n ngAfterViewInit(){\r\n this.config = {\r\n slidesPerView: 7,\r\n spaceBetween: 16, \r\n keyboard: true,\r\n navigation: true,\r\n pagination: false,\r\n grabCursor: true, \r\n loop: true,\r\n preloadImages: false,\r\n lazy: true, \r\n autoplay: {\r\n delay: 6000,\r\n disableOnInteraction: false\r\n },\r\n speed: 500,\r\n effect: \"slide\",\r\n breakpoints: {\r\n 320: {\r\n slidesPerView: 1\r\n },\r\n 480: {\r\n slidesPerView: 2\r\n },\r\n 600: {\r\n slidesPerView: 3,\r\n },\r\n 960: {\r\n slidesPerView: 4,\r\n },\r\n 1280: {\r\n slidesPerView: 5,\r\n },\r\n 1500: {\r\n slidesPerView: 6,\r\n }\r\n }\r\n }\r\n \r\n }\r\n\r\n}\r\n","export default \".mytable .mat-row, .mytable .mat-header-row {\\n display: flex;\\n border-bottom-width: 1px;\\n border-bottom-style: solid;\\n align-items: center;\\n min-height: 48px;\\n padding: 0 24px;\\n min-width: 870px;\\n}\\n\\n.mytable .mat-row {\\n min-height: 100px;\\n}\\n\\n.mytable .mat-cell, .mytable .mat-header-cell {\\n flex: 1;\\n margin-right: 4px;\\n margin-left: 4px;\\n overflow: hidden;\\n word-wrap: break-word;\\n}\\n\\n.mytable .mat-header-cell {\\n font-size: 14px;\\n}\\n\\n.mytable .mat-cell img {\\n width: 100px;\\n}\\n\\n.mytable .mat-cell .product-name {\\n color: inherit;\\n text-decoration: none;\\n font-weight: 500;\\n}\\n\\n.mytable .mat-cell .grand-total {\\n font-weight: 500;\\n}\\n\\n.mytable .mat-cell .grand-total span:nth-child(3) {\\n font-size: 16px;\\n}\\n\\n.mytable .mat-select {\\n width: 90%;\\n}\\n\\n.mytable .text-right {\\n display: flex;\\n justify-content: flex-end;\\n padding: 5ex 0 5ex 0;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2NhcnQtc3VtbWFyeS9jYXJ0LXN1bW1hcnkuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFHSSxhQUFhO0VBQ2Isd0JBQXdCO0VBQ3hCLDBCQUEwQjtFQUMxQixtQkFBbUI7RUFDbkIsZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZixnQkFBZ0I7QUFEcEI7O0FBUkE7RUFhSSxpQkFBaUI7QUFEckI7O0FBWkE7RUFpQkksT0FBTztFQUNQLGlCQUFpQjtFQUNqQixnQkFBZ0I7RUFDaEIsZ0JBQWdCO0VBQ2hCLHFCQUFxQjtBQUR6Qjs7QUFwQkE7RUF5QkksZUFBZTtBQURuQjs7QUF4QkE7RUE4Qk0sWUFBWTtBQUZsQjs7QUE1QkE7RUFrQ00sY0FBYztFQUNkLHFCQUFxQjtFQUNyQixnQkFBZ0I7QUFGdEI7O0FBbENBO0VBd0NNLGdCQUFnQjtBQUZ0Qjs7QUF0Q0E7RUEyQ1EsZUFBZTtBQUR2Qjs7QUExQ0E7RUFpREksVUFBVTtBQUhkOztBQTlDQTtFQXFESSxhQUFhO0VBQ2IseUJBQXlCO0VBQ3pCLG9CQUFvQjtBQUh4QiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9jYXJ0LXN1bW1hcnkvY2FydC1zdW1tYXJ5LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm15dGFibGUge1xyXG5cclxuICAubWF0LXJvdywgLm1hdC1oZWFkZXItcm93IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XHJcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBtaW4taGVpZ2h0OiA0OHB4O1xyXG4gICAgcGFkZGluZzogMCAyNHB4O1xyXG4gICAgbWluLXdpZHRoOiA4NzBweDtcclxuICB9XHJcblxyXG4gIC5tYXQtcm93IHtcclxuICAgIG1pbi1oZWlnaHQ6IDEwMHB4O1xyXG4gIH1cclxuXHJcbiAgLm1hdC1jZWxsLCAubWF0LWhlYWRlci1jZWxsIHtcclxuICAgIGZsZXg6IDE7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDRweDtcclxuICAgIG1hcmdpbi1sZWZ0OiA0cHg7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xyXG4gIH1cclxuXHJcbiAgLm1hdC1oZWFkZXItY2VsbCB7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgfVxyXG5cclxuICAubWF0LWNlbGwge1xyXG4gICAgaW1nIHtcclxuICAgICAgd2lkdGg6IDEwMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5wcm9kdWN0LW5hbWUge1xyXG4gICAgICBjb2xvcjogaW5oZXJpdDtcclxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgfVxyXG5cclxuICAgIC5ncmFuZC10b3RhbCB7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcblxyXG4gICAgICBzcGFuOm50aC1jaGlsZCgzKSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubWF0LXNlbGVjdCB7XHJcbiAgICB3aWR0aDogOTAlO1xyXG4gIH1cclxuXHJcbiAgLnRleHQtcmlnaHQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgICBwYWRkaW5nOiA1ZXggMCA1ZXggMDtcclxuICB9XHJcbn1cclxuIl19 */\";","import { Component } from '@angular/core';\r\nimport { CartService } from '../../cartservice/cart.service';\r\nimport { ContentService } from '../../content/content.service';\r\nimport { WebsitePackage, AreaGroup } from '../../data/models';\r\nimport { TotalService } from '../../cartservice/total.service';\r\nimport { CalculateService } from '../../cartservice/calculate.service';\r\nimport { CommonService } from '../../core/hascommon.service';\r\n\r\n@Component({\r\n selector: 'app-cart-summary',\r\n templateUrl: './cart-summary.component.html',\r\n styleUrls: ['./cart-summary.component.scss']\r\n})\r\nexport class CartSummaryComponent {\r\n\r\n \r\n constructor(public cart: CartService, public content: ContentService,\r\n private common: CommonService,\r\n private total: TotalService,\r\n private calculate: CalculateService) { }\r\n\r\n public totalAvailable(d: WebsitePackage) {\r\n return this.calculate.calcAvailable(this.cart.availableStock(null,d.productGroupID));\r\n }\r\n\r\n public maxServiceFrequency(qty) {\r\n const area: AreaGroup = this.common.arrayGetFirstMatchingObject(this.content.areaGroups, [{ filterId: this.cart.Data.areaID, prop: 'areaID' }]);\r\n return this.calculate.calcAvailable(area.maxServFrequency||qty);\r\n }\r\n\r\n public onChangeQty() {\r\n this.cart.Data.cartList = this.total.getTransportPriceAndQuantity(this.cart.Data.cartList, this.cart.Data);\r\n }\r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9jYXJ0LXdpZGdldC9jYXJ0LXdpZGdldC5jb21wb25lbnQuY3NzIn0= */\";","import { Component, OnInit } from '@angular/core';\r\nimport { CartService } from '../../cartservice/cart.service';\r\nimport { TotalService } from '../../cartservice/total.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-cart-widget',\r\n templateUrl: './cart-widget.component.html',\r\n styleUrls: ['./cart-widget.component.css']\r\n})\r\nexport class CartWidgetComponent implements OnInit {\r\n\r\n constructor(public cart: CartService, public total: TotalService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: 'app-confirmation',\r\n templateUrl: './confirmation.component.html'\r\n})\r\nexport class ConfirmationComponent implements OnInit {\r\n @Input() paymentStatus: string | null;\r\n\r\n success: boolean = true;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n // check whether to display success or fail\r\n if (this.paymentStatus) {\r\n this.success = this.paymentStatus === \"success\";\r\n }\r\n console.log('Order Complete!');\r\n }\r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9kaWFsb2cvZGlhbG9nLmNvbXBvbmVudC5zY3NzIn0= */\";","import { Component, Inject, Injector, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\r\n\r\nexport interface DialogButton {\r\n label: string;\r\n role?: string;\r\n colour?: string;\r\n action?: () => void;\r\n dontClose?: boolean;\r\n}\r\n\r\nexport interface DialogOptions {\r\n title: string;\r\n subTitle?: string;\r\n body?: string;\r\n buttons: DialogButton[];\r\n}\r\n\r\n@Component({\r\n selector: 'app-dialog',\r\n templateUrl: './dialog.component.html',\r\n styleUrls: ['./dialog.component.scss']\r\n})\r\nexport class DialogComponent implements OnInit {\r\n title: string;\r\n subTitle: string;\r\n body: string;\r\n buttons: DialogButton[];\r\n\r\n private readonly dialogRef;\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) private data: DialogOptions, private injector: Injector) {\r\n this.title = this.data.title;\r\n this.subTitle = this.data.subTitle;\r\n this.body = this.data.body;\r\n this.buttons = this.data.buttons;\r\n this.dialogRef = injector.get(MatDialogRef);\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n buttonClick(b: DialogButton) {\r\n if (b.action) {\r\n b.action();\r\n }\r\n\r\n if (!b.dontClose) {\r\n this.dialogRef.close({role: b.role});\r\n }\r\n }\r\n}\r\n","export default \".main-slider {\\n height: 360px;\\n /*margin-top: 14px;*/\\n padding-left: 20px;\\n padding-right: 20px;\\n}\\n\\n.main-slider .slide-item {\\n height: 100%;\\n background-size: cover;\\n background-position: center;\\n}\\n\\n.main-slider .slide-item .content {\\n height: 100%;\\n position: relative;\\n z-index: 9;\\n}\\n\\n.main-slider .slide-item .content h1 {\\n font-size: 48px;\\n text-align: center;\\n color: #fff;\\n text-transform: uppercase;\\n letter-spacing: 3px;\\n}\\n\\n.main-slider .slide-item .content h3 {\\n font-size: 36px;\\n text-align: center;\\n color: #fff;\\n margin-bottom: 30px;\\n font-weight: 300;\\n letter-spacing: 2px;\\n}\\n\\n.main-slider .slide-item .mask {\\n opacity: 0.6;\\n width: 100%;\\n height: 100%;\\n position: absolute;\\n overflow: hidden;\\n z-index: 0;\\n background-color: rgba(0, 0, 0, 0.8);\\n}\\n\\n.main-slider .swiper-lazy-preloader {\\n top: 18%;\\n}\\n\\n@media (max-width: 575px) {\\n .main-slider {\\n height: 280px;\\n }\\n .main-slider .slide-item .content h1 {\\n font-size: 24px;\\n letter-spacing: 3px;\\n }\\n .main-slider .slide-item .content h3 {\\n font-size: 18px;\\n margin-bottom: 10px;\\n letter-spacing: 2px;\\n }\\n}\\n\\n@media (min-width: 576px) and (max-width: 767px) {\\n .main-slider {\\n height: 320px;\\n }\\n .main-slider .slide-item .content h1 {\\n font-size: 36px;\\n letter-spacing: 3px;\\n }\\n .main-slider .slide-item .content h3 {\\n font-size: 24px;\\n margin-bottom: 20px;\\n letter-spacing: 2px;\\n }\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL21haW4tY2Fyb3VzZWwvbWFpbi1jYXJvdXNlbC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGFBQWE7RUFDYixvQkFBQTtFQUNBLGtCQUFrQjtFQUNsQixtQkFBbUI7QUFDckI7O0FBTEE7RUFNSSxZQUFZO0VBQ1osc0JBQXNCO0VBQ3RCLDJCQUEyQjtBQUcvQjs7QUFYQTtFQVdNLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIsVUFBVTtBQUloQjs7QUFqQkE7RUFnQlEsZUFBZTtFQUNmLGtCQUFrQjtFQUNsQixXQUFXO0VBQ1gseUJBQXlCO0VBQ3pCLG1CQUFtQjtBQUszQjs7QUF6QkE7RUF3QlEsZUFBZTtFQUNmLGtCQUFrQjtFQUNsQixXQUFXO0VBQ1gsbUJBQW1CO0VBQ25CLGdCQUFnQjtFQUNoQixtQkFBbUI7QUFLM0I7O0FBbENBO0VBa0NNLFlBQVk7RUFDWixXQUFXO0VBQ1gsWUFBWTtFQUNaLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsVUFBVTtFQUNWLG9DQUFpQztBQUl2Qzs7QUE1Q0E7RUE2Q0ksUUFBUTtBQUdaOztBQUNBO0VBQ0k7SUFDSSxhQUFhO0VBRW5CO0VBSEU7SUFJWSxlQUFlO0lBQ2YsbUJBQW1CO0VBRWpDO0VBUEU7SUFRWSxlQUFlO0lBQ2YsbUJBQW1CO0lBQ25CLG1CQUFtQjtFQUVqQztBQUNGOztBQUVBO0VBQ0k7SUFDSSxhQUFhO0VBQ25CO0VBRkU7SUFJWSxlQUFlO0lBQ2YsbUJBQW1CO0VBQ2pDO0VBTkU7SUFRWSxlQUFlO0lBQ2YsbUJBQW1CO0lBQ25CLG1CQUFtQjtFQUNqQztBQUNGIiwiZmlsZSI6InNyYy9hcHAvc2hhcmVkL21haW4tY2Fyb3VzZWwvbWFpbi1jYXJvdXNlbC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tYWluLXNsaWRlciB7XHJcbiAgaGVpZ2h0OiAzNjBweDtcclxuICAvKm1hcmdpbi10b3A6IDE0cHg7Ki9cclxuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XHJcbiAgcGFkZGluZy1yaWdodDogMjBweDtcclxuICAuc2xpZGUtaXRlbSB7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG5cclxuICAgIC5jb250ZW50IHtcclxuICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIHotaW5kZXg6IDk7XHJcblxyXG4gICAgICBoMSB7XHJcbiAgICAgICAgZm9udC1zaXplOiA0OHB4O1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAzcHg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGgzIHtcclxuICAgICAgICBmb250LXNpemU6IDM2cHg7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLm1hc2sge1xyXG4gICAgICBvcGFjaXR5OiAwLjY7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgei1pbmRleDogMDtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwLjgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnN3aXBlci1sYXp5LXByZWxvYWRlciB7XHJcbiAgICB0b3A6IDE4JTtcclxuICB9XHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCkgeyBcclxuICAgIC5tYWluLXNsaWRlcnsgXHJcbiAgICAgICAgaGVpZ2h0OiAyODBweDtcclxuICAgICAgICAuc2xpZGUtaXRlbSAuY29udGVudCB7XHJcbiAgICAgICAgICAgIGgxe1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDNweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBoM3tcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBcclxuICAgIH1cclxufVxyXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xyXG4gICAgLm1haW4tc2xpZGVyeyBcclxuICAgICAgICBoZWlnaHQ6IDMyMHB4O1xyXG4gICAgICAgIC5zbGlkZS1pdGVtIC5jb250ZW50IHtcclxuICAgICAgICAgICAgaDF7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDM2cHg7XHJcbiAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogM3B4OyBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBoM3tcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBcclxuICAgIH1cclxufVxyXG4iXX0= */\";","import { Component, OnInit, Input } from '@angular/core';\r\nimport { SwiperConfigInterface, SwiperPaginationInterface } from 'ngx-swiper-wrapper';\r\n\r\n@Component({\r\n selector: 'app-main-carousel',\r\n templateUrl: './main-carousel.component.html',\r\n styleUrls: ['./main-carousel.component.scss']\r\n})\r\nexport class MainCarouselComponent implements OnInit {\r\n @Input('slides') slides: Array = [];\r\n \r\n public config: SwiperConfigInterface = {};\r\n\r\n private pagination: SwiperPaginationInterface = {\r\n el: '.swiper-pagination',\r\n clickable: true\r\n };\r\n \r\n constructor() { }\r\n\r\n ngOnInit() { }\r\n\r\n ngAfterViewInit(){\r\n this.config = {\r\n slidesPerView: 1,\r\n spaceBetween: 0, \r\n keyboard: true,\r\n navigation: true,\r\n pagination: this.pagination,\r\n grabCursor: true, \r\n loop: false,\r\n preloadImages: false,\r\n lazy: true, \r\n autoplay: {\r\n delay: 6000,\r\n disableOnInteraction: false\r\n },\r\n speed: 500,\r\n effect: \"slide\"\r\n }\r\n }\r\n\r\n}","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9wbGFjZXMtYXV0b2NvbXBsZXRlL3BsYWNlcy1hdXRvY29tcGxldGUuY29tcG9uZW50LmNzcyJ9 */\";","import { Component, Input, Output, ViewChild, EventEmitter, NgZone, AfterViewInit } from '@angular/core';\r\nimport { MapsAPILoader} from '@agm/core';\r\nimport { CommonService } from '../../core/hascommon.service';\r\nimport { ContentService } from '../../content/content.service';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-places-autocomplete',\r\n templateUrl: './places-autocomplete.component.html',\r\n styleUrls: ['./places-autocomplete.component.css']\r\n})\r\nexport class PlacesAutocompleteComponent implements AfterViewInit {\r\n\r\n @Input() adressType: string;\r\n @Input() label: string;\r\n @Input() autocompleteInput: string;\r\n @Input() invalidAddress: boolean;\r\n @Output() setAddress: EventEmitter = new EventEmitter();\r\n @ViewChild('addresstext') addresstext: any;\r\n place: string;\r\n queryWait: boolean;\r\n searchElementRef: any;\r\n\r\n constructor(private mapsAPILoader: MapsAPILoader, private common: CommonService,\r\n public content: ContentService, private ngZone: NgZone) {\r\n }\r\n\r\n \r\n\r\n ngAfterViewInit() {\r\n this.mapsAPILoader.load().then(() => {\r\n //this.setCurrentLocation();\r\n //this.geoCoder = new google.maps.Geocoder;\r\n this.getPlaceAutocomplete();\r\n });\r\n }\r\n\r\n private getPlaceAutocomplete() {\r\n const autocomplete = new google.maps.places.Autocomplete(this.addresstext.nativeElement,\r\n {\r\n componentRestrictions: { country: 'ZA' },\r\n types: [this.adressType] // 'establishment' / 'address' / 'geocode'\r\n });\r\n google.maps.event.addListener(autocomplete, 'place_changed', () => {\r\n this.ngZone.run(() => {\r\n //get the place result\r\n const place: google.maps.places.PlaceResult = autocomplete.getPlace();\r\n this.invokeEvent(place);\r\n });\r\n });\r\n }\r\n\r\n invokeEvent(place: Object) {\r\n if (place) {\r\n this.checkAddress(place);\r\n }\r\n }\r\n\r\n checkAddress(place: object) {\r\n if (!place) {\r\n this.setAddress.emit(null);\r\n } else {\r\n const lat = place['geometry'].location.lat();\r\n const lng = place['geometry'].location.lng();\r\n const areaID = this.mapsGetAreaGroup(lat + ',' + lng,this.content.areaGroups);\r\n if (!areaID) {\r\n this.invalidAddress = true;\r\n this.autocompleteInput = null;\r\n this.setAddress.emit(null);\r\n } else {\r\n this.invalidAddress = false;\r\n this.setAddress.emit({ place, areaID});\r\n }\r\n }\r\n \r\n\r\n }\r\n\r\n mapsGetAreaGroup(location, areaGroups) {\r\n let areaID: number;\r\n areaGroups.forEach((ag) => {\r\n if (this.mapsContainsLocation(this.common.mapsParseCoords(location), ag.bounds)) {\r\n areaID = ag.areaID;\r\n }\r\n });\r\n return areaID;\r\n }\r\n\r\n mapsContainsLocation(location, bounds) {\r\n const paths = [];\r\n bounds.forEach((b) => {\r\n const boundLocation = this.common.mapsParseCoords(b.gps);\r\n paths.push(new google.maps.LatLng(boundLocation.latitude, boundLocation.longitude));\r\n });\r\n const area = new google.maps.Polygon({\r\n paths: paths\r\n });\r\n return google.maps.geometry.poly.containsLocation(new google.maps.LatLng(location.latitude, location.longitude), area);\r\n }\r\n\r\n \r\n\r\n checkValid(invalid) {\r\n return invalid;\r\n }\r\n\r\n \r\n\r\n\r\n\r\n}\r\n","export default \".product-dialog .mat-dialog-container {\\n overflow: visible !important;\\n}\\n\\n.product-dialog .mat-dialog-container .close-btn-outer {\\n position: relative;\\n}\\n\\n.product-dialog .mat-dialog-container .close-btn-outer button {\\n position: absolute;\\n right: -44px;\\n top: -44px;\\n}\\n\\n.product-dialog .mat-dialog-container .swiper-slide {\\n text-align: center;\\n}\\n\\n.product-dialog .mat-dialog-container .swiper-slide img {\\n max-width: 100%;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL3Byb2R1Y3RzLWNhcm91c2VsL3Byb2R1Y3QtZGlhbG9nL3Byb2R1Y3QtZGlhbG9nLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBRVEsNEJBQTRCO0FBQXBDOztBQUZBO0VBSVksa0JBQWtCO0FBRTlCOztBQU5BO0VBTWdCLGtCQUFrQjtFQUNsQixZQUFZO0VBQ1osVUFBVTtBQUkxQjs7QUFaQTtFQVlZLGtCQUFrQjtBQUk5Qjs7QUFoQkE7RUFjZ0IsZUFBZTtBQU0vQiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9wcm9kdWN0cy1jYXJvdXNlbC9wcm9kdWN0LWRpYWxvZy9wcm9kdWN0LWRpYWxvZy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5wcm9kdWN0LWRpYWxvZ3tcclxuICAgIC5tYXQtZGlhbG9nLWNvbnRhaW5lcntcclxuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xyXG4gICAgICAgIC5jbG9zZS1idG4tb3V0ZXJ7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgYnV0dG9ue1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgcmlnaHQ6IC00NHB4O1xyXG4gICAgICAgICAgICAgICAgdG9wOiAtNDRweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuc3dpcGVyLXNsaWRle1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGltZ3tcclxuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gICAgICAgIFxyXG4gICAgfVxyXG59Il19 */\";","import { Component, ViewEncapsulation, OnInit, Inject} from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { SwiperConfigInterface } from 'ngx-swiper-wrapper';\r\nimport {AppService } from '../../../app.service';\r\nimport { Product } from '../../../app.models';\r\n\r\n@Component({\r\n selector: 'app-product-dialog',\r\n templateUrl: './product-dialog.component.html',\r\n styleUrls: ['./product-dialog.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ProductDialogComponent implements OnInit {\r\n public config: SwiperConfigInterface = {};\r\n constructor(public appService:AppService, \r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public product: Product) { }\r\n\r\n ngOnInit() { }\r\n\r\n ngAfterViewInit(){\r\n this.config = {\r\n slidesPerView: 1,\r\n spaceBetween: 0, \r\n keyboard: true,\r\n navigation: true,\r\n pagination: false,\r\n grabCursor: true, \r\n loop: false,\r\n preloadImages: false,\r\n lazy: true, \r\n effect: \"fade\",\r\n fadeEffect: {\r\n crossFade: true\r\n }\r\n }\r\n }\r\n\r\n public close(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","export default \".swiper-container {\\n padding: 16px 2px 2px 2px;\\n}\\n\\n.swiper-container .swiper-slide {\\n text-align: center;\\n}\\n\\n.swiper-button-next.swiper-button-disabled,\\n.swiper-button-prev.swiper-button-disabled {\\n pointer-events: auto;\\n}\\n\\n.small-img {\\n height: 135px;\\n width: 180px;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL3Byb2R1Y3RzLWNhcm91c2VsL3Byb2R1Y3RzLWNhcm91c2VsLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0kseUJBQXlCO0FBQzdCOztBQUZBO0VBR1Esa0JBQWtCO0FBRzFCOztBQUFBOztFQUVJLG9CQUFvQjtBQUd4Qjs7QUFBQTtFQUNJLGFBQVk7RUFDWixZQUFXO0FBR2YiLCJmaWxlIjoic3JjL2FwcC9zaGFyZWQvcHJvZHVjdHMtY2Fyb3VzZWwvcHJvZHVjdHMtY2Fyb3VzZWwuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuc3dpcGVyLWNvbnRhaW5lcntcclxuICAgIHBhZGRpbmc6IDE2cHggMnB4IDJweCAycHg7XHJcbiAgICAuc3dpcGVyLXNsaWRle1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxufVxyXG4uc3dpcGVyLWJ1dHRvbi1uZXh0LnN3aXBlci1idXR0b24tZGlzYWJsZWQsIFxyXG4uc3dpcGVyLWJ1dHRvbi1wcmV2LnN3aXBlci1idXR0b24tZGlzYWJsZWR7XHJcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcclxufVxyXG5cclxuLnNtYWxsLWltZyB7XHJcbiAgICBoZWlnaHQ6MTM1cHg7XHJcbiAgICB3aWR0aDoxODBweDtcclxufVxyXG4iXX0= */\";","import { Component, OnInit, Input, NgZone } from '@angular/core';\r\nimport { SwiperConfigInterface } from 'ngx-swiper-wrapper';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { AppService } from '../../app.service';\r\nimport { Settings, AppSettings } from 'src/app/app.settings';\r\nimport { BrowseItem } from '../../data/models';\r\nimport { CommonService } from '../../core/hascommon.service';\r\n\r\n@Component({\r\n selector: 'app-products-carousel',\r\n templateUrl: './products-carousel.component.html',\r\n styleUrls: ['./products-carousel.component.scss']\r\n})\r\nexport class ProductsCarouselComponent implements OnInit {\r\n\r\n @Input('products') products: Array = [];\r\n @Input('caption') caption: string;\r\n public config: SwiperConfigInterface = {};\r\n public settings: Settings;\r\n public browseProducts: BrowseItem[] = [];\r\n public index = 0;\r\n\r\n\r\n constructor(public appSettings: AppSettings, public appService: AppService,\r\n public dialog: MatDialog, private common: CommonService, private ngZone: NgZone) {\r\n this.settings = this.appSettings.settings;\r\n }\r\n\r\n ngOnInit() {\r\n this.products.sort(a => a.order);\r\n this.browseProducts = this.products;\r\n for (let i = 0; i < this.products.length; i++) {\r\n this.processImage(this.products, i, 'tiny', this.products[i].picture);\r\n }\r\n }\r\n\r\n processImage(products, id, size, img) {\r\n this.common.imageCompress(img, size).then(compressed => {\r\n this.browseProducts[id].smallPicture = compressed.toString();\r\n })\r\n \r\n }\r\n\r\n ngAfterViewInit() {\r\n this.config = {\r\n //observer: true,\r\n\r\n slidesPerView: 1,\r\n spaceBetween: 16,\r\n keyboard: true,\r\n navigation: true,\r\n pagination: false,\r\n grabCursor: true,\r\n loop: false,\r\n preloadImages: false,\r\n lazy: true,\r\n breakpoints: {\r\n 480: {\r\n slidesPerView: 1\r\n },\r\n 740: {\r\n slidesPerView: 2,\r\n },\r\n 960: {\r\n slidesPerView: 3,\r\n },\r\n 1280: {\r\n slidesPerView: 4,\r\n },\r\n 1500: {\r\n slidesPerView: 5,\r\n }\r\n }\r\n }\r\n }\r\n\r\n onIndexChange(index: number) {\r\n console.log('Swiper index: ', index);\r\n }\r\n\r\n\r\n\r\n}\r\n","export default \".ratings {\\n color: #fbc02d;\\n}\\n\\n.ratings-count {\\n margin-left: 12px;\\n font-weight: 500;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL3JhdGluZy9yYXRpbmcuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxjQUFhO0FBQ2pCOztBQUNBO0VBQ0ksaUJBQWlCO0VBQ2pCLGdCQUFnQjtBQUVwQiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9yYXRpbmcvcmF0aW5nLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJhdGluZ3N7XHJcbiAgICBjb2xvcjojZmJjMDJkO1xyXG59XHJcbi5yYXRpbmdzLWNvdW50e1xyXG4gICAgbWFyZ2luLWxlZnQ6IDEycHg7XHJcbiAgICBmb250LXdlaWdodDogNTAwO1xyXG59Il19 */\";","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-rating',\r\n templateUrl: './rating.component.html',\r\n styleUrls: ['./rating.component.scss']\r\n})\r\nexport class RatingComponent {\r\n @Input() ratingsCount:number;\r\n @Input() ratingsValue:number;\r\n @Input() direction:string;\r\n avg:number;\r\n stars:Array;\r\n constructor() { }\r\n\r\n ngDoCheck() {\r\n if(this.ratingsCount && this.ratingsValue && !this.avg) {\r\n this.calculateAvgValue(); \r\n }\r\n }\r\n\r\n rate(value){\r\n // value = (value + 1)*20;\r\n // this.ratingsCount++;\r\n // this.ratingsValue = this.ratingsValue + value;\r\n // this.calculateAvgValue();\r\n }\r\n\r\n calculateAvgValue(){\r\n this.avg = this.ratingsValue / this.ratingsCount;\r\n switch (true) {\r\n case this.avg > 0 && this.avg < 20 : {\r\n this.stars = ['star_half', 'star_border', 'star_border', 'star_border', 'star_border'];\r\n break;\r\n } \r\n case this.avg == 20 : {\r\n this.stars = ['star', 'star_border', 'star_border', 'star_border', 'star_border'];\r\n break;\r\n } \r\n case this.avg > 20 && this.avg < 40 : {\r\n this.stars = ['star', 'star_half', 'star_border', 'star_border', 'star_border'];\r\n break;\r\n } \r\n case this.avg == 40 : {\r\n this.stars = ['star', 'star', 'star_border', 'star_border', 'star_border'];\r\n break;\r\n } \r\n case this.avg > 40 && this.avg < 60 : {\r\n this.stars = ['star', 'star', 'star_half', 'star_border', 'star_border'];\r\n break;\r\n }\r\n case this.avg == 60 : {\r\n this.stars = ['star', 'star', 'star', 'star_border', 'star_border'];\r\n break;\r\n }\r\n case this.avg > 60 && this.avg < 80 : {\r\n this.stars = ['star', 'star', 'star', 'star_half', 'star_border'];\r\n break;\r\n }\r\n case this.avg == 80 : {\r\n this.stars = ['star', 'star', 'star', 'star', 'star_border'];\r\n break;\r\n } \r\n case this.avg > 80 && this.avg < 100 : {\r\n this.stars = ['star', 'star', 'star', 'star', 'star_half'];\r\n break;\r\n } \r\n case this.avg >= 100 : {\r\n this.stars = ['star', 'star', 'star', 'star', 'star'];\r\n break;\r\n } \r\n default: {\r\n this.stars = ['star_border', 'star_border', 'star_border', 'star_border', 'star_border'];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\nimport { SwiperModule } from 'ngx-swiper-wrapper';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatRippleModule, MAT_DATE_FORMATS, DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\n\r\nimport { PerfectScrollbarModule } from 'ngx-perfect-scrollbar';\r\nimport { PERFECT_SCROLLBAR_CONFIG } from 'ngx-perfect-scrollbar';\r\nimport { PerfectScrollbarConfigInterface } from 'ngx-perfect-scrollbar';\r\nconst DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = {\r\n wheelPropagation: true,\r\n suppressScrollX: true\r\n};\r\n\r\n//datepicker\r\nimport { MAT_MOMENT_DATE_FORMATS, MomentDateAdapter, MatMomentDateModule, MAT_MOMENT_DATE_ADAPTER_OPTIONS } from '@angular/material-moment-adapter'\r\nimport { PipesModule } from '../theme/pipes/pipes.module';\r\nimport { RatingComponent } from './rating/rating.component';\r\nimport { MainCarouselComponent } from './main-carousel/main-carousel.component';\r\nimport { BrandsCarouselComponent } from './brands-carousel/brands-carousel.component';\r\nimport { ProductsCarouselComponent } from './products-carousel/products-carousel.component';\r\nimport { ProductDialogComponent } from './products-carousel/product-dialog/product-dialog.component';\r\nimport { BannersComponent } from './banners/banners.component';\r\nimport { BookingComponent } from './booking/booking.component';\r\nimport { PlacesAutocompleteComponent } from './places-autocomplete/places-autocomplete.component';\r\nimport { LocaleService } from '../core/locale.service';\r\nimport { CartSummaryComponent } from './cart-summary/cart-summary.component';\r\nimport { CartWidgetComponent } from './cart-widget/cart-widget.component';\r\nimport { BillingFormComponent } from './billing-form/billing-form.component';\r\nimport { ConfirmationComponent } from './confirmation/confirmation.component';\r\nimport { DialogComponent } from './dialog/dialog.component';\r\n\r\n\r\nexport const MY_FORMATS = {// https://momentjs.com/docs/#/displaying/format/\r\n parse: {\r\n dateInput: 'LL',\r\n },\r\n display: {\r\n dateInput: 'LL',\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY',\r\n },\r\n};\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n SwiperModule,\r\n FlexLayoutModule,\r\n MatAutocompleteModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatMomentDateModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatStepperModule,\r\n PerfectScrollbarModule,\r\n PipesModule\r\n ],\r\n exports: [\r\n RouterModule,\r\n SwiperModule,\r\n FormsModule,\r\n FlexLayoutModule,\r\n MatAutocompleteModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatStepperModule,\r\n PerfectScrollbarModule,\r\n PipesModule,\r\n RatingComponent,\r\n MainCarouselComponent,\r\n BrandsCarouselComponent,\r\n ProductsCarouselComponent,\r\n ProductDialogComponent,\r\n BannersComponent,\r\n BookingComponent,\r\n BillingFormComponent,\r\n CartSummaryComponent,\r\n CartWidgetComponent,\r\n ConfirmationComponent\r\n ],\r\n declarations: [\r\n RatingComponent,\r\n MainCarouselComponent,\r\n BrandsCarouselComponent,\r\n ProductsCarouselComponent,\r\n ProductDialogComponent,\r\n BannersComponent,\r\n BookingComponent,\r\n BillingFormComponent,\r\n PlacesAutocompleteComponent,\r\n CartSummaryComponent,\r\n CartWidgetComponent,\r\n ConfirmationComponent,\r\n DialogComponent\r\n\r\n ],\r\n entryComponents:[\r\n ProductDialogComponent\r\n ],\r\n providers:[\r\n { provide: PERFECT_SCROLLBAR_CONFIG, useValue: DEFAULT_PERFECT_SCROLLBAR_CONFIG },\r\n //datepicker\r\n {\r\n provide: MAT_DATE_LOCALE,\r\n deps: [LocaleService],\r\n useFactory: (LocaleService: { locale: string; }) => LocaleService.locale//get locale\r\n },\r\n { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },//provide locale to adapter\r\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },//display\r\n { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } }//parse\r\n ]\r\n})\r\nexport class SharedModule { }\r\n","export default \"@charset \\\"UTF-8\\\";\\n.breadcrumb {\\n padding: 8px 0;\\n box-shadow: none;\\n margin-bottom: 16px;\\n}\\n.breadcrumb a, .breadcrumb span {\\n font-size: 13px;\\n text-decoration: none;\\n color: inherit;\\n}\\n.breadcrumb .mat-icon {\\n font-size: 20px;\\n height: 20px;\\n width: 20px;\\n padding: 0 6px;\\n opacity: 0.7;\\n}\\n.breadcrumb .breadcrumb-title.active {\\n text-transform: uppercase;\\n}\\n.breadcrumb .breadcrumb-item + .breadcrumb-item:before {\\n display: inline-block;\\n padding-right: .5rem;\\n padding-left: .5rem;\\n content: \\\"ยป\\\";\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdGhlbWUvY29tcG9uZW50cy9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FBQWhCO0VBQ0ksY0FBYztFQUNkLGdCQUFnQjtFQUNoQixtQkFBbUI7QUFFdkI7QUFMQTtFQUtRLGVBQWU7RUFDZixxQkFBcUI7RUFDckIsY0FBYztBQUl0QjtBQVhBO0VBVVEsZUFBZTtFQUNmLFlBQVk7RUFDWixXQUFXO0VBQ1gsY0FBYztFQUNkLFlBQVk7QUFLcEI7QUFuQkE7RUFpQlEseUJBQXlCO0FBTWpDO0FBdkJBO0VBb0JRLHFCQUFxQjtFQUNyQixvQkFBb0I7RUFDcEIsbUJBQW1CO0VBQ25CLFlBQVk7QUFPcEIiLCJmaWxlIjoic3JjL2FwcC90aGVtZS9jb21wb25lbnRzL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbi5icmVhZGNydW1iIHtcbiAgcGFkZGluZzogOHB4IDA7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XG59XG5cbi5icmVhZGNydW1iIGEsIC5icmVhZGNydW1iIHNwYW4ge1xuICBmb250LXNpemU6IDEzcHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi5icmVhZGNydW1iIC5tYXQtaWNvbiB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICB3aWR0aDogMjBweDtcbiAgcGFkZGluZzogMCA2cHg7XG4gIG9wYWNpdHk6IDAuNztcbn1cblxuLmJyZWFkY3J1bWIgLmJyZWFkY3J1bWItdGl0bGUuYWN0aXZlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLmJyZWFkY3J1bWIgLmJyZWFkY3J1bWItaXRlbSArIC5icmVhZGNydW1iLWl0ZW06YmVmb3JlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nLXJpZ2h0OiAuNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAuNXJlbTtcbiAgY29udGVudDogXCLCu1wiO1xufVxuIl19 */\";","import { Component } from '@angular/core';\r\nimport { ActivatedRoute, Router, ActivatedRouteSnapshot, UrlSegment, NavigationEnd } from \"@angular/router\"; \r\nimport { Title } from '@angular/platform-browser';\r\nimport { Settings, AppSettings } from '../../../app.settings';\r\nimport { SidenavMenuService } from '../../../theme/components/sidenav-menu/sidenav-menu.service';\r\n\r\n@Component({\r\n selector: 'app-breadcrumb',\r\n templateUrl: './breadcrumb.component.html',\r\n styleUrls: ['./breadcrumb.component.scss'],\r\n providers: [ SidenavMenuService ]\r\n})\r\nexport class BreadcrumbComponent {\r\n\r\n public pageTitle:string;\r\n public breadcrumbs: {\r\n name: string;\r\n url: string\r\n }[] = [];\r\n\r\n public settings: Settings;\r\n constructor(public appSettings:AppSettings,\r\n public router: Router, \r\n public activatedRoute: ActivatedRoute, \r\n public title:Title,\r\n public sidenavMenuService: SidenavMenuService) {\r\n this.settings = this.appSettings.settings; \r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationEnd) {\r\n this.breadcrumbs = []; \r\n this.parseRoute(this.router.routerState.snapshot.root); \r\n this.pageTitle = \"\";\r\n this.breadcrumbs.forEach(breadcrumb => {\r\n this.pageTitle += ' > ' + breadcrumb.name;\r\n }) \r\n this.title.setTitle(this.settings.name + this.pageTitle);\r\n }\r\n }) \r\n }\r\n\r\n private parseRoute(node: ActivatedRouteSnapshot) { \r\n if (node.data['breadcrumb']) {\r\n if(node.url.length){\r\n let urlSegments: UrlSegment[] = [];\r\n node.pathFromRoot.forEach(routerState => {\r\n urlSegments = urlSegments.concat(routerState.url);\r\n });\r\n let url = urlSegments.map(urlSegment => {\r\n return urlSegment.path;\r\n }).join('/');\r\n\r\n if(node.params.name){\r\n this.breadcrumbs.push({\r\n name: node.params.name,\r\n url: '/' + url\r\n }) \r\n }else{ \r\n this.breadcrumbs.push({\r\n name: node.data['breadcrumb'],\r\n url: '/' + url\r\n }) \r\n }\r\n } \r\n }\r\n if (node.firstChild) {\r\n this.parseRoute(node.firstChild);\r\n }\r\n }\r\n\r\n public closeSubMenus(){\r\n if(window.innerWidth < 960){\r\n this.sidenavMenuService.closeAllSubMenus();\r\n } \r\n }\r\n\r\n}\r\n","export default \".footer {\\n min-height: 50px;\\n padding: 16px 16px 0;\\n}\\n\\n.footer .copyright {\\n font-size: 13px;\\n font-weight: 300;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdGhlbWUvY29tcG9uZW50cy9mb290ZXIvZm9vdGVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksZ0JBQWdCO0VBQ2hCLG9CQUFvQjtBQUN4Qjs7QUFIQTtFQUlRLGVBQWU7RUFDZixnQkFBZ0I7QUFHeEIiLCJmaWxlIjoic3JjL2FwcC90aGVtZS9jb21wb25lbnRzL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZm9vdGVye1xyXG4gICAgbWluLWhlaWdodDogNTBweDtcclxuICAgIHBhZGRpbmc6IDE2cHggMTZweCAwO1xyXG4gICAgLmNvcHlyaWdodHtcclxuICAgICAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICAgIH1cclxufVxyXG5cclxuXHJcblxyXG4iXX0= */\";","import { Component, OnInit } from '@angular/core';\r\nimport { ContentService } from '../../../content/content.service';\r\n\r\n@Component({\r\n selector: 'app-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.scss']\r\n})\r\nexport class FooterComponent implements OnInit {\r\n \r\n constructor(public content: ContentService) { }\r\n\r\n ngOnInit() { }\r\n\r\n subscribe(){ }\r\n\r\n}\r\n","export default \".top-navbar.mat-toolbar a {\\n text-transform: capitalize;\\n}\\n\\n.top-navbar.mat-toolbar {\\n height: 40px;\\n}\\n\\n.mat-toolbar {\\n padding-left: 10px;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdGhlbWUvY29tcG9uZW50cy9tZW51L21lbnUuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSwwQkFBMEI7QUFDNUI7O0FBQ0E7RUFDRSxZQUFXO0FBRWI7O0FBQUE7RUFDSSxrQkFBaUI7QUFHckIiLCJmaWxlIjoic3JjL2FwcC90aGVtZS9jb21wb25lbnRzL21lbnUvbWVudS5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi50b3AtbmF2YmFyLm1hdC10b29sYmFyIGEge1xyXG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xyXG59XHJcbi50b3AtbmF2YmFyLm1hdC10b29sYmFye1xyXG4gIGhlaWdodDo0MHB4O1xyXG59XHJcbi5tYXQtdG9vbGJhcntcclxuICAgIHBhZGRpbmctbGVmdDoxMHB4O1xyXG59XHJcbiJdfQ== */\";","import { Component, OnInit, Input } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ContentService } from '../../../content/content.service';\r\nclass MenuItem {\r\n constructor(public caption: string, public link?: any[], public dropdown?: any[]) { }\r\n}\r\n\r\n@Component({\r\n selector: 'app-menu',\r\n templateUrl: './menu.component.html',\r\n styleUrls: ['./menu.component.scss']\r\n})\r\nexport class MenuComponent implements OnInit {\r\n menuItems: MenuItem[];\r\n constructor(private activeRoute: ActivatedRoute, public content: ContentService) { }\r\n\r\n ngOnInit() {\r\n this.activeRoute.params.subscribe(routeParams => {\r\n this.setupMenu();\r\n });\r\n }\r\n\r\n setupMenu() {\r\n this.menuItems = this.content.menuItems;\r\n }\r\n\r\n}\r\n","export default \".menu-expand-icon {\\n position: absolute;\\n right: 10px;\\n top: 10px;\\n}\\n\\n.menu-item .mat-button {\\n width: 100%;\\n font-weight: 400;\\n text-transform: uppercase;\\n}\\n\\n.menu-item .mat-button.expanded .menu-expand-icon {\\n transform: rotate(180deg);\\n}\\n\\n.menu-item .mat-button-wrapper {\\n padding-left: 16px;\\n}\\n\\n.sub-menu {\\n max-height: 0;\\n overflow: hidden;\\n transition: max-height 0.25s ease-out;\\n}\\n\\n.sub-menu .sub-menu .mat-button {\\n padding-left: 56px;\\n}\\n\\n.sub-menu .sub-menu .sub-menu .mat-button {\\n padding-left: 76px;\\n}\\n\\n.sub-menu .sub-menu .sub-menu .sub-menu .mat-button {\\n padding-left: 96px;\\n}\\n\\n.sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .mat-button {\\n padding-left: 116px;\\n}\\n\\n.sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .mat-button {\\n padding-left: 136px;\\n}\\n\\n.sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .mat-button {\\n padding-left: 156px;\\n}\\n\\n.sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .mat-button {\\n padding-left: 176px;\\n}\\n\\n.sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .mat-button {\\n padding-left: 196px;\\n}\\n\\n.sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .mat-button {\\n padding-left: 216px;\\n}\\n\\n.sub-menu .mat-button {\\n padding-left: 36px;\\n}\\n\\n.sub-menu.show {\\n max-height: 500px;\\n transition: max-height 0.25s ease-in;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdGhlbWUvY29tcG9uZW50cy9zaWRlbmF2LW1lbnUvc2lkZW5hdi1tZW51LmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC90aGVtZS9zdHlsZXMvX21peGlucy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0VBQ0ksa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxTQUFTO0FBRGI7O0FBSUE7RUFFUSxXQUFXO0VBQ1gsZ0JBQWdCO0VBQ2hCLHlCQUF5QjtBQUZqQzs7QUFGQTtFQVNnQix5QkFBeUI7QUFEekM7O0FBUkE7RUFjUSxrQkFBa0I7QUFGMUI7O0FBTUE7RUFFSSxhQUFhO0VBQ2IsZ0JBQWdCO0VBR2hCLHFDQUFxQztBQUp6Qzs7QUFGQTtFQ3JCWSxrQkFBZ0M7QUQyQjVDOztBQU5BO0VDckJZLGtCQUFnQztBRCtCNUM7O0FBVkE7RUNyQlksa0JBQWdDO0FEbUM1Qzs7QUFkQTtFQ3JCWSxtQkFBZ0M7QUR1QzVDOztBQWxCQTtFQ3JCWSxtQkFBZ0M7QUQyQzVDOztBQXRCQTtFQ3JCWSxtQkFBZ0M7QUQrQzVDOztBQTFCQTtFQ3JCWSxtQkFBZ0M7QURtRDVDOztBQTlCQTtFQ3JCWSxtQkFBZ0M7QUR1RDVDOztBQWxDQTtFQ3JCWSxtQkFBZ0M7QUQyRDVDOztBQXRDQTtFQVFRLGtCQUFrQjtBQWtDMUI7O0FBMUNBO0VBV1EsaUJBQWlCO0VBR2pCLG9DQUFvQztBQW1DNUMiLCJmaWxlIjoic3JjL2FwcC90aGVtZS9jb21wb25lbnRzL3NpZGVuYXYtbWVudS9zaWRlbmF2LW1lbnUuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0IFwiLi4vLi4vc3R5bGVzL21peGluc1wiO1xyXG5cclxuLm1lbnUtZXhwYW5kLWljb257XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICByaWdodDogMTBweDtcclxuICAgIHRvcDogMTBweDtcclxufVxyXG5cclxuLm1lbnUtaXRlbXtcclxuICAgIC5tYXQtYnV0dG9ue1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAmLmV4cGFuZGVke1xyXG4gICAgICAgICAgICAubWVudS1leHBhbmQtaWNvbntcclxuICAgICAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcclxuICAgICAgICAgICAgICAgIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcclxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAubWF0LWJ1dHRvbi13cmFwcGVye1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMTZweDtcclxuICAgIH0gICAgXHJcbn1cclxuXHJcbi5zdWItbWVudXtcclxuICAgIEBpbmNsdWRlIG1lbnUtbGV2ZWwtcGFkZGluZygpO1xyXG4gICAgbWF4LWhlaWdodDogMDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IG1heC1oZWlnaHQgMC4yNXMgZWFzZS1vdXQ7ICBcclxuICAgIC1tb3otdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjI1cyBlYXNlLW91dDsgIFxyXG4gICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjI1cyBlYXNlLW91dDsgICAgXHJcbiAgICAubWF0LWJ1dHRvbntcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDM2cHg7ICAgICAgXHJcbiAgICB9IFxyXG4gICAgJi5zaG93e1xyXG4gICAgICAgIG1heC1oZWlnaHQ6IDUwMHB4O1xyXG4gICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjI1cyBlYXNlLWluO1xyXG4gICAgICAgIC1tb3otdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjI1cyBlYXNlLWluO1xyXG4gICAgICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMC4yNXMgZWFzZS1pbjtcclxuICAgIH0gICAgXHJcbn0iLCJAbWl4aW4gbWVudS1sZXZlbC1wYWRkaW5nKCl7XHJcbiAgICAkZWxlbTogJyc7XHJcbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoIDEwIHtcclxuICAgICAgICAkZWxlbTogaWYoJGkgPT0gMiwgXCIuc3ViLW1lbnVcIiwgc2VsZWN0b3ItbmVzdCgkZWxlbSwgXCIuc3ViLW1lbnVcIikpOyAgICAgIFxyXG4gICAgICAgICN7JGVsZW0gKyAnIC5tYXQtYnV0dG9uJ30geyBcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxNnB4ICsgKDIwcHggKiAkaSk7IFxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ== */\";","import { Component, OnInit, Input } from '@angular/core';\r\nimport { SidenavMenuService } from './sidenav-menu.service';\r\n\r\n@Component({\r\n selector: 'app-sidenav-menu',\r\n templateUrl: './sidenav-menu.component.html',\r\n styleUrls: ['./sidenav-menu.component.scss'],\r\n providers: [ SidenavMenuService ]\r\n})\r\nexport class SidenavMenuComponent implements OnInit {\r\n @Input('menuItems') menuItems;\r\n @Input('menuParentId') menuParentId;\r\n parentMenu:Array;\r\n\r\n constructor(private sidenavMenuService:SidenavMenuService ) { }\r\n\r\n ngOnInit() {\r\n this.parentMenu = this.menuItems.filter(item => item.parentId == this.menuParentId);\r\n }\r\n\r\n onClick(menuId){\r\n this.sidenavMenuService.toggleMenuItem(menuId);\r\n this.sidenavMenuService.closeOtherSubMenus(this.menuItems, menuId); \r\n }\r\n\r\n}\r\n","export class SidenavMenu {\r\n constructor(public id: number,\r\n public title: string,\r\n public routerLink: string,\r\n public href: string,\r\n public target: string,\r\n public hasSubMenu: boolean,\r\n public parentId: number) { }\r\n} ","import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Location } from '@angular/common';\r\n\r\nimport { SidenavMenu } from './sidenav-menu.model';\r\nimport { sidenavMenuItems } from './sidenav-menu';\r\n\r\n@Injectable()\r\nexport class SidenavMenuService {\r\n\r\n constructor(private location:Location, private router:Router){ } \r\n \r\n public getSidenavMenuItems():Array {\r\n return sidenavMenuItems;\r\n }\r\n\r\n \r\n public expandActiveSubMenu(menu:Array){\r\n let url = this.location.path();\r\n let routerLink = decodeURIComponent(url);\r\n let activeMenuItem = menu.filter(item => item.routerLink === routerLink);\r\n if(activeMenuItem[0]){\r\n let menuItem = activeMenuItem[0];\r\n while (menuItem.parentId != 0){ \r\n let parentMenuItem = menu.filter(item => item.id == menuItem.parentId)[0];\r\n menuItem = parentMenuItem;\r\n this.toggleMenuItem(menuItem.id);\r\n }\r\n }\r\n }\r\n\r\n public toggleMenuItem(menuId){\r\n let menuItem = document.getElementById('menu-item-'+menuId);\r\n let subMenu = document.getElementById('sub-menu-'+menuId); \r\n if(subMenu){\r\n if(subMenu.classList.contains('show')){\r\n subMenu.classList.remove('show');\r\n menuItem.classList.remove('expanded');\r\n }\r\n else{\r\n subMenu.classList.add('show');\r\n menuItem.classList.add('expanded');\r\n } \r\n }\r\n }\r\n\r\n public closeOtherSubMenus(menu:Array, menuId){\r\n let currentMenuItem = menu.filter(item => item.id == menuId)[0];\r\n menu.forEach(item => {\r\n if((item.id != menuId && item.parentId == currentMenuItem.parentId) || (currentMenuItem.parentId == 0 && item.id != menuId) ){\r\n let subMenu = document.getElementById('sub-menu-'+item.id);\r\n let menuItem = document.getElementById('menu-item-'+item.id);\r\n if(subMenu){\r\n if(subMenu.classList.contains('show')){\r\n subMenu.classList.remove('show');\r\n menuItem.classList.remove('expanded');\r\n } \r\n } \r\n }\r\n });\r\n }\r\n\r\n public closeAllSubMenus(){ \r\n sidenavMenuItems.forEach(item => {\r\n let subMenu = document.getElementById('sub-menu-'+item.id);\r\n let menuItem = document.getElementById('menu-item-'+item.id);\r\n if(subMenu){\r\n if(subMenu.classList.contains('show')){\r\n subMenu.classList.remove('show');\r\n menuItem.classList.remove('expanded');\r\n } \r\n } \r\n }); \r\n }\r\n\r\n}\r\n","import { SidenavMenu } from './sidenav-menu.model';\r\n\r\nexport const sidenavMenuItems = [ \r\n new SidenavMenu (1, 'Home', '/', null, null, false, 0),\r\n //new SidenavMenu (2, 'Fashion', null, null, null, true, 0), \r\n //new SidenavMenu (10, 'Women', null, null, null, true, 2), \r\n //new SidenavMenu (11, 'Dresses & Skirts', '/products/dresses & skirts', null, null, false, 10),\r\n //new SidenavMenu (12, 'Jackets', '/products/jackets', null, null, false, 10),\r\n //new SidenavMenu (13, 'Tops & Blouses', '/products/tops & blouses', null, null, false, 10), \r\n //new SidenavMenu (14, 'Shoes & Boots', '/products/shoes & boots', null, null, false, 10), \r\n //new SidenavMenu (15, 'Knitwear', '/products/knitwear', null, null, false, 10), \r\n //new SidenavMenu (20, 'Men', null, null, null, true, 2), \r\n //new SidenavMenu (21, 'T-shirts & Polos', '/products/t-shirts & polos', null, null, false, 20),\r\n //new SidenavMenu (22, 'Shoe & Boots', '/products/shoe & boots', null, null, false, 20),\r\n //new SidenavMenu (23, 'Jeans', '/products/jeans', null, null, false, 20),\r\n //new SidenavMenu (24, 'Coats', '/products/coats', null, null, false, 20),\r\n //new SidenavMenu (30, 'Kids', null, null, null, true, 2), \r\n //new SidenavMenu (31, 'Top', '/products/top', null, null, false, 30),\r\n //new SidenavMenu (32, 'Pants & Shorts', '/products/pants & shorts', null, null, false, 30),\r\n //new SidenavMenu (33, 'Dresses', '/products/dresses', null, null, false, 30),\r\n //new SidenavMenu (34, 'Skirts', '/products/skirts', null, null, false, 30),\r\n //new SidenavMenu (35, 'Set & Body', '/products/set & body', null, null, false, 30),\r\n //new SidenavMenu (40, 'Accessories', null, null, null, true, 2), \r\n //new SidenavMenu (41, 'Watches', '/products/watches', null, null, false, 40),\r\n //new SidenavMenu (42, 'Bags & Wallet', '/products/bags & wallet', null, null, false, 40),\r\n //new SidenavMenu (43, 'Sunglasses', '/products/sunglasses', null, null, false, 40),\r\n //new SidenavMenu (44, 'Belts & Hats', '/products/belts & hats', null, null, false, 40),\r\n //new SidenavMenu (50, 'Jewellery', '/products/jewellery', null, null, false, 0), \r\n //new SidenavMenu (51, 'Electronics', '/products/electronics', null, null, false, 0), \r\n //new SidenavMenu (52, 'Sports', '/products/sports', null, null, false, 0),\r\n //new SidenavMenu (52, 'Motors', '/products/motors', null, null, false, 0),\r\n //new SidenavMenu (60, 'Pages', null, null, null, true, 0), \r\n //new SidenavMenu (61, 'All products', '/products', null, null, false, 60), \r\n //new SidenavMenu (62, 'Product detail', '/products/2/PC All-in-One', null, null, false, 60), \r\n //new SidenavMenu (63, 'Sign in', '/sign-in', null, null, false, 60), \r\n //new SidenavMenu (64, '404 Error', '/404', null, null, false, 60), \r\n //new SidenavMenu (80, 'Contact', '/contact', null, null, false, 0), \r\n //new SidenavMenu (140, 'Level 1', null, null, null, true, 0),\r\n //new SidenavMenu (141, 'Level 2', null, null, null, true, 140),\r\n //new SidenavMenu (142, 'Level 3', null, null, null, true, 141),\r\n //new SidenavMenu (143, 'Level 4', null, null, null, true, 142),\r\n //new SidenavMenu (144, 'Level 5', null, 'http://themeseason.com', null, false, 143),\r\n //new SidenavMenu (200, 'External Link', null, 'http://themeseason.com', '_blank', false, 0)\r\n]\r\n","import { Component, Input} from '@angular/core';\r\nimport { Settings, AppSettings } from '../../../app.settings';\r\nimport { User } from '../../../data/models';\r\nimport { AuthService } from '../../../core/auth.service';\r\nimport { CartService } from '../../../cartservice/cart.service';\r\nimport { ContentService } from '../../../content/content.service';\r\n\r\n@Component({\r\n selector: 'app-top-menu',\r\n templateUrl: './top-menu.component.html'\r\n})\r\nexport class TopMenuComponent {\r\n @Input() stopClickPropagate: Function;\r\n public settings: Settings;\r\n currentUser: User;\r\n user: User;\r\n\r\n constructor(public appSettings: AppSettings,\r\n public content: ContentService,\r\n public cart: CartService,\r\n public auth: AuthService) {\r\n this.settings = this.appSettings.settings;\r\n this.auth.currentUser.subscribe(x => this.currentUser = x);\r\n this.user = this.auth.currentUserValue;\r\n }\r\n\r\n getName(email) {\r\n return email ? email.substring(0, email.indexOf('@')) : '';\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { ProductCategory } from '../../data/models/product-category';\r\nimport { CommonService } from '../../core/hascommon.service';\r\n\r\n\r\n@Pipe({\r\n name: 'filterByCategory'\r\n})\r\nexport class FilterByCategoryPipe implements PipeTransform {\r\n constructor(private common: CommonService) { }\r\n\r\n transform(categories: ProductCategory[], name: string): ProductCategory[] {\r\n const searchName = this.common.removeDashes(name);\r\n return categories.filter(c => {\r\n return c.name === searchName;\r\n });\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Package, OptionDetail } from '../../data/models';\r\nimport { CommonService } from '../../core/hascommon.service';\r\n\r\n\r\n@Pipe({\r\n name: 'filterByPackage'\r\n})\r\nexport class FilterByPackagePipe implements PipeTransform {\r\n constructor(private common: CommonService) { }\r\n\r\n transform(packages: Package[], selectedPackages: Package[]): Package[] {\r\n return packages.filter(o => {\r\n const isInSelectedPackages = this.common.arrayGetFirstMatchingObject(selectedPackages, [{ filterId: o.packageID, prop: 'packageID' }]);\r\n return isInSelectedPackages; \r\n });\r\n }\r\n\r\n //if(isInSelectedPackages) {\r\n // if (!type || type === 'package') {\r\n // return o;\r\n // } else {\r\n // return o.type === type && o.typeId === parseInt(id);\r\n // }\r\n\r\n //}\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Package } from '../../data/models';\r\nimport { FilterOptionByProductPipe } from './filter-option-by-product.pipe';\r\n\r\n@Pipe({\r\n name: 'filterByProduct'\r\n})\r\nexport class FilterByProductPipe implements PipeTransform {\r\n\r\n transform(packages: Package[], type: string, id: string) {\r\n if (!type||!packages) {\r\n return packages;\r\n }\r\n return packages.filter(p => {\r\n if (type === 'package') {\r\n return parseInt(id) === p.packageID;\r\n } else {\r\n const filterPipe = new FilterOptionByProductPipe();\r\n const filteredOptions = filterPipe.transform(p.options, type, id);\r\n return filteredOptions.length;\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { OptionDetail } from '../../data/models';\r\n\r\n@Pipe({\r\n name: 'filterOptionByProduct'\r\n})\r\nexport class FilterOptionByProductPipe implements PipeTransform{\r\n\r\n transform(options: OptionDetail[], type: string, id: string): OptionDetail[] {\r\n if (!type || !id) {\r\n return options;\r\n }\r\n return options.filter(o => {\r\n if ((type === 'package' && o.packageID === parseInt(id)) ||\r\n (o.type === type && o.typeId === parseInt(id))) {\r\n return o;\r\n }\r\n })\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { formatCurrency, getCurrencySymbol, getLocaleCurrencyCode } from '@angular/common';\r\nimport { ContentService } from '../../content/content.service';\r\n\r\n\r\n\r\n\r\n@Pipe({\r\n name: 'hasCurrency'\r\n})\r\nexport class HasCurrencyPipe implements PipeTransform {\r\n constructor(private content: ContentService) { }\r\n transform(\r\n value: number,\r\n currencyCode: string = getLocaleCurrencyCode(this.content.locale),\r\n display:\r\n | 'code'\r\n | 'symbol'\r\n | 'symbol-narrow'\r\n | string\r\n | boolean = 'symbol',\r\n digitsInfo: string = '1.2-2',\r\n locale: string = this.content.locale,\r\n ): string | null {\r\n return formatCurrency(\r\n value,\r\n locale,\r\n getCurrencySymbol(currencyCode, 'wide'),\r\n currencyCode,\r\n digitsInfo,\r\n );\r\n }\r\n\r\n}\r\n\r\n\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { formatDate } from '@angular/common';\r\nimport { ContentService } from '../../content/content.service';\r\n\r\n@Pipe({\r\n name: 'hasDate'\r\n})\r\nexport class HasDatePipe implements PipeTransform {\r\n constructor(private content: ContentService) { }\r\n transform(value: any, format: string) {\r\n\r\n if (!value) { return ''; }\r\n if (!format) { format = 'shortDate'; }\r\n\r\n return formatDate(value, format, this.content.locale);\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { formatNumber } from '@angular/common';\r\nimport { ContentService } from '../../content/content.service';\r\n\r\n@Pipe({\r\n name: 'hasNumber'\r\n})\r\nexport class HasNumberPipe implements PipeTransform {\r\n constructor(private content: ContentService) { }\r\n transform(value: any, format: string) {\r\n if (value == null) { return ''; } // !value would also react to zeros.\r\n if (!format) { format = '.2-2'; }\r\n\r\n return formatNumber(value, this.content.locale, format);\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { HasCurrencyPipe } from './has-currency.pipe';\r\nimport { FilterByProductPipe } from './filter-by-product.pipe';\r\nimport { FilterByPackagePipe } from './filter-by-package.pipe';\r\nimport { FilterByCategoryPipe } from './filter-by-category.pipe';\r\nimport { FilterOptionByProductPipe } from './filter-option-by-product.pipe';\r\nimport { SortByPipe } from './sort-by.pipe';\r\nimport { HasDatePipe } from './has-date.pipe';\r\nimport { HasNumberPipe } from './has-number.pipe';\r\n\r\n\r\n@NgModule({\r\n imports: [ \r\n CommonModule \r\n ],\r\n declarations: [\r\n HasCurrencyPipe,\r\n HasDatePipe,\r\n HasNumberPipe,\r\n FilterByProductPipe,\r\n FilterByPackagePipe,\r\n FilterByCategoryPipe,\r\n FilterOptionByProductPipe,\r\n SortByPipe,\r\n HasDatePipe,\r\n HasNumberPipe\r\n ],\r\n exports: [\r\n HasCurrencyPipe,\r\n HasDatePipe,\r\n HasNumberPipe,\r\n FilterByProductPipe,\r\n FilterByPackagePipe,\r\n FilterOptionByProductPipe,\r\n SortByPipe\r\n ]\r\n})\r\nexport class PipesModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { orderBy } from 'lodash';\r\n\r\n/*\r\n *ngFor=\"let c of oneDimArray | sortBy:['asc']\"\r\n *ngFor=\"let c of arrayOfObjects | sortBy:['asc']:['propertyName']\"\r\n *ngFor=\"let c of arrayOfObjects | sortBy:['asc','desc']:['propertyName','propertyName2']\"\r\n*/\r\n\r\n@Pipe({\r\n name: 'sortBy'\r\n})\r\nexport class SortByPipe implements PipeTransform {\r\n\r\n transform(value: any[], order = [''], column = ['']): any[] {\r\n if (!value || order === [''] || !order) { return value; } // no array\r\n if (value.length <= 1) { return value; } // array with only one item\r\n if (!column || column === ['']) {\r\n if (order === ['asc']) { return value.sort() }\r\n else { return value.sort().reverse(); }\r\n } // sort 1d array\r\n //_.orderBy(collection, ['fieldA', 'fieldB'], ['asc', 'desc']);\r\n return orderBy(value, column, order);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HttpResponse, HttpErrorResponse } from '@angular/common/http';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { AuthService } from '../../core/auth.service';\r\nimport { Router } from '@angular/router';\r\nimport { ContentService } from '../../content/content.service';\r\n\r\n\r\n\r\n\r\n@Injectable()\r\nexport class AppInterceptor implements HttpInterceptor {\r\n private totalRequests = 0;\r\n constructor(public auth: AuthService,\r\n public content: ContentService,\r\n private spinner: NgxSpinnerService, private router: Router) { }\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n this.totalRequests++;\r\n if (this.content.showContent) { this.spinner.show(); }\r\n let currentUser = this.auth.currentUserValue;\r\n if (currentUser && currentUser.token) {\r\n req = req.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${currentUser.token}`\r\n }\r\n });\r\n }\r\n return next.handle(req).pipe(map((event: HttpEvent) => {\r\n if (event instanceof HttpResponse) {\r\n this.totalRequests--;\r\n if (this.totalRequests === 0) {\r\n if (this.content.showContent) { this.spinner.hide(); }\r\n }\r\n }\r\n return event;\r\n }),\r\n catchError((error: HttpErrorResponse) => {\r\n const started = Date.now();\r\n const elapsed = Date.now() - started;\r\n console.log(`Request for ${req.urlWithParams} failed after ${elapsed} ms.`);\r\n // debugger;\r\n this.spinner.hide();\r\n if (error.status === 401) {\r\n this.router.navigate(['login']);\r\n // refresh token\r\n return throwError(error);\r\n\r\n } else {\r\n return throwError(error);\r\n }\r\n\r\n })\r\n );\r\n\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { OverlayContainer } from '@angular/cdk/overlay';\r\n\r\n@Injectable() \r\nexport class CustomOverlayContainer extends OverlayContainer {\r\n _createContainer(): void {\r\n let container = document.createElement('div');\r\n container.classList.add('cdk-overlay-container');\r\n document.getElementById('app').appendChild(container);\r\n this._containerElement = container;\r\n }\r\n}","import { MAT_MENU_SCROLL_STRATEGY } from '@angular/material/menu';\r\nimport { Overlay, BlockScrollStrategy } from '@angular/cdk/overlay';\r\n\r\nexport function menuScrollStrategy(overlay: Overlay): () => BlockScrollStrategy {\r\n return () => overlay.scrollStrategies.block();\r\n}","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false\r\n};\r\n\r\n/*\r\n * In development mode, to ignore zone related error stack frames such as\r\n * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can\r\n * import the following file, but please comment it out in production mode\r\n * because it will have performance impact when throw error\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","/***************************************************************************************************\r\n * Load `$localize` onto the global scope - used if i18n tags appear in Angular templates.\r\n */\r\nimport '@angular/localize/init';\r\nimport { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nexport function getBaseUrl() {\r\n const isLocalDevelopment = window.location.hostname.includes('localhost');\r\n return isLocalDevelopment ? 'http://localhost:8685/' : document.getElementsByTagName('base')[0].href;\r\n}\r\n\r\n\r\n\r\nconst providers = [\r\n { provide: 'BASE_URL', useFactory: getBaseUrl, deps: [] }\r\n];\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic(providers).bootstrapModule(AppModule)\r\n .catch(err => console.log(err));\r\n"],"sourceRoot":"webpack:///"}