{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./node_modules/moment/locale sync ^\\.\\/.*$","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/components/confirm/confirm.component.ts","./src/app/components/confirm/confirm.component.html","./src/app/components/global-loader/loader.component.ts","./src/app/components/show-audio/show-audio.component.ts","./src/app/components/show-audio/show-audio.component.html","./src/app/components/show-image/show-image.component.ts","./src/app/components/show-image/show-image.component.html","./src/app/components/show-pdf/show-pdf.component.ts","./src/app/components/show-pdf/show-pdf.component.html","./src/app/components/show-video/show-video.component.ts","./src/app/components/show-video/show-video.component.html","./src/app/directives/just-english.directive.ts","./src/app/directives/only-digits.directive.ts","./src/app/directives/set-value-object.directive.ts","./src/app/form-tools/break-line/break-line.component.ts","./src/app/form-tools/break-line/break-line.component.html","./src/app/form-tools/check-box/check-box.component.ts","./src/app/form-tools/check-box/check-box.component.html","./src/app/form-tools/date/date.component.ts","./src/app/form-tools/date/date.component.html","./src/app/form-tools/description/description.component.ts","./src/app/form-tools/description/description.component.html","./src/app/form-tools/email/email.component.ts","./src/app/form-tools/email/email.component.html","./src/app/form-tools/form-tool.component.ts","./src/app/form-tools/label/label.component.ts","./src/app/form-tools/label/label.component.html","./src/app/form-tools/matrix/matrix.component.ts","./src/app/form-tools/matrix/matrix.component.html","./src/app/form-tools/next-button/next-button.component.ts","./src/app/form-tools/next-button/next-button.component.html","./src/app/form-tools/number/number.component.ts","./src/app/form-tools/number/number.component.html","./src/app/form-tools/password/password.component.ts","./src/app/form-tools/password/password.component.html","./src/app/form-tools/prev-button/prev-button.component.ts","./src/app/form-tools/prev-button/prev-button.component.html","./src/app/form-tools/radio-button/radio-button.component.ts","./src/app/form-tools/radio-button/radio-button.component.html","./src/app/form-tools/range/range.component.ts","./src/app/form-tools/range/range.component.html","./src/app/form-tools/select-box/select-box.component.ts","./src/app/form-tools/select-box/select-box.component.html","./src/app/form-tools/star/star.component.ts","./src/app/form-tools/star/star.component.html","./src/app/form-tools/submit/submit.component.ts","./src/app/form-tools/submit/submit.component.html","./src/app/form-tools/text-box/text-box.component.ts","./src/app/form-tools/text-box/text-box.component.html","./src/app/form-tools/textarea/textarea.component.ts","./src/app/form-tools/textarea/textarea.component.html","./src/app/form-tools/time/time.component.ts","./src/app/form-tools/time/time.component.html","./src/app/form-tools/upload/upload.component.ts","./src/app/form-tools/upload/upload.component.html","./src/app/form-tools/url/url.component.ts","./src/app/form-tools/url/url.component.html","./src/app/models/form-class-name.enum.ts","./src/app/models/form.enum.ts","./src/app/pipes/new-array.pipe.ts","./src/app/pipes/sate-url.pipe.ts","./src/app/pipes/split-digit.pipe.ts","./src/app/services/app-service/content.service.ts","./src/app/services/app-service/site-logo.service.ts","./src/app/services/copy.service.ts","./src/app/services/error.service.ts","./src/app/services/file.service.ts","./src/app/services/form-service/form.service.ts","./src/app/services/gloabal-loader.service.ts","./src/app/services/http.service.ts","./src/app/services/show-file.service.ts","./src/app/services/survey-form-service/survey-form.service.ts","./src/app/services/template-service/active-admin-pages.service.ts","./src/app/services/template-service/active-auth-pages.service.ts","./src/app/services/template-service/active-user-pages.service.ts","./src/app/services/template-service/animations.ts","./src/app/services/template-service/background.service.ts","./src/app/services/template-service/chart.service.ts","./src/app/services/template-service/create-component.service.ts","./src/app/services/template-service/create-name-tool.service.ts","./src/app/services/template-service/date.service.ts","./src/app/services/template-service/drag-and-drop.service.ts","./src/app/services/template-service/error-message.service.ts","./src/app/services/template-service/form-submit.service.ts","./src/app/services/template-service/overlay.service.ts","./src/app/services/template-service/show-message.service.ts","./src/app/services/template-service/snackbar.service.ts","./src/app/services/template-service/time.service.ts","./src/app/services/token-intercepter.service.ts","./src/app/services/token.service.ts","./src/app/services/url.service.ts","./src/app/services/user.service.ts","./src/environments/environment.ts","./src/main.ts","zlib (ignored)","webpack:///fs (ignored)?3b3b","http (ignored)","https (ignored)","url (ignored)"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,wE;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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","file":"main-es2015.js","sourcesContent":["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 = \"./$$_lazy_route_resource lazy recursive\";","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-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.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-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.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 ^\\\\.\\\\/.*$\";","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule, PreloadAllModules } from '@angular/router';\nimport { ActiveUserPages } from './services/template-service/active-user-pages.service';\nimport { ActiveAuthPages } from './services/template-service/active-auth-pages.service';\n\nconst routes: Routes = [\n {\n path: 'pages',\n loadChildren: () => import('./pages/pages.module').then(m => m.PagesModule)\n },\n {\n path: 'form',\n loadChildren: () => import('./form-build/form-build.module').then(m => m.FormBuildModule)\n },\n {\n path: 'response',\n loadChildren: () => import('./response-pages/response-pages.module').then(m => m.ResponsePagesModule)\n },\n {\n path: 'survey-form',\n loadChildren: () => import('./survey-form-build/form-build.module').then(m => m.FormBuildModule)\n },\n {\n path: 'auth',\n canActivate: [ActiveAuthPages], loadChildren: () => import('./auth/auth.module').then(m => m.AuthModule)\n },\n {\n path: 'user-pages',\n canActivate: [ActiveUserPages],\n loadChildren: () => import('./user-pages/user-pages.module').then(m => m.UserPagesModule)\n },\n {\n path: '',\n redirectTo: 'pages',\n pathMatch: 'full'\n },\n {\n path: '**',\n redirectTo: 'response',\n pathMatch: 'full'\n },\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Router, NavigationEnd } from '@angular/router';\nimport { ContentService } from './services/app-service/content.service';\nimport { SiteLogoService } from './services/app-service/site-logo.service';\nimport { ErrorMessageService } from './services/template-service/error-message.service';\nimport { UserService } from './services/user.service';\n\nimport { trigger } from '@angular/animations';\nimport { getShowFade } from 'src/app/services/template-service/animations';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss'], \n animations: [\n trigger('showFade', getShowFade(200)),\n ]\n})\nexport class AppComponent implements OnInit {\n bodyElement = document.getElementById('body');\n\n constructor(\n private router: Router,\n private dialog: MatDialog,\n public userService: UserService,\n private contentService: ContentService,\n private siteLogoService: SiteLogoService,\n ) { }\n ngOnInit(): void {\n // get content sites\n this.contentService.getContentList();\n // check token and get user\n this.userService.getUser();\n // get footer logo\n this.siteLogoService.getList();\n\n // after change page to scroll top\n this.router.events.subscribe(event => {\n if (event instanceof NavigationEnd) {\n // window.scroll({ behavior: 'smooth', top: 0, left: 0 });\n window.scrollTo(0, 0);\n this.dialog.closeAll();\n this.bodyElement.removeAttribute('style');\n // add page to history\n // window.history.pushState(null, 'فرم ساز', window.location.href);\n }\n })\n }\n}\n","","import { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatDialogModule, MAT_DIALOG_SCROLL_STRATEGY, MAT_DIALOG_SCROLL_STRATEGY_PROVIDER } from '@angular/material/dialog';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { InjectionToken, NgModule } from '@angular/core';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\n\n// services\nimport { UrlService } from './services/url.service';\nimport { HttpService } from './services/http.service';\nimport { UserService } from './services/user.service';\nimport { FileService } from './services/file.service';\nimport { CopyService } from './services/copy.service';\nimport { TokenService } from './services/token.service';\nimport { ErrorService } from './services/error.service';\nimport { ShowFileService } from './services/show-file.service';\nimport { FormService } from './services/form-service/form.service';\nimport { TimeService } from './services/template-service/time.service';\nimport { DateService } from './services/template-service/date.service';\nimport { ChartService } from './services/template-service/chart.service';\nimport { OverlayService } from './services/template-service/overlay.service';\nimport { SnackBarService } from './services/template-service/snackbar.service';\nimport { TokenIntercepterService } from './services/token-intercepter.service';\nimport { FormSubmitService } from './services/template-service/form-submit.service';\nimport { SurveyFormService } from './services/survey-form-service/survey-form.service';\nimport { DragAndDropService } from './services/template-service/drag-and-drop.service';\nimport { ActiveUserPages } from './services/template-service/active-user-pages.service';\nimport { ActiveAuthPages } from './services/template-service/active-auth-pages.service';\nimport { ErrorMessageService } from './services/template-service/error-message.service';\nimport { CreateComponentService } from './services/template-service/create-component.service';\n\n// for error mat scroll\nimport { Overlay, BlockScrollStrategy, NoopScrollStrategy, ScrollStrategy } from '@angular/cdk/overlay';\nimport { ActiveAdminPages } from './services/template-service/active-admin-pages.service';\nimport { ShowMessageService } from './services/template-service/show-message.service';\nimport { BackgroundService } from './services/template-service/background.service';\nimport { MatMenuModule, MAT_MENU_SCROLL_STRATEGY } from '@angular/material/menu';\nimport { ContentService } from './services/app-service/content.service';\nimport { SiteLogoService } from './services/app-service/site-logo.service';\nimport { LayoutModule } from '@angular/cdk/layout';\nimport { GlobalLoaderComponent } from './components/global-loader/loader.component';\n\nexport function scrollFactory(overlay: Overlay): () => BlockScrollStrategy {\n return () => { return overlay.scrollStrategies.block(); }\n}\nexport function matDialogScrollStrategy(overlay: Overlay): () => NoopScrollStrategy {\n return () => { return overlay.scrollStrategies.noop(); }\n}\n\n@NgModule({\n declarations: [\n AppComponent,\n GlobalLoaderComponent,\n ],\n imports: [\n LayoutModule,\n MatMenuModule,\n BrowserModule,\n MatDialogModule,\n AppRoutingModule,\n HttpClientModule,\n MatSnackBarModule,\n BrowserAnimationsModule,\n ],\n providers: [\n // for mat menu scroll staregy\n { provide: MAT_MENU_SCROLL_STRATEGY, useFactory: scrollFactory, deps: [Overlay] },\n // for scrolling after open dialog\n { provide: MAT_DIALOG_SCROLL_STRATEGY_PROVIDER, useValue: matDialogScrollStrategy, deps: [Overlay] },\n\n // for add token to req\n {\n provide: HTTP_INTERCEPTORS,\n useClass: TokenIntercepterService,\n multi: true,\n },\n\n // themplate \n CreateComponentService,\n ErrorMessageService,\n DragAndDropService,\n ShowMessageService,\n SurveyFormService,\n FormSubmitService,\n ActiveAdminPages,\n SnackBarService,\n BackgroundService,\n ShowFileService,\n ContentService,\n SiteLogoService,\n OverlayService,\n ChartService,\n DateService,\n TimeService,\n CopyService,\n ErrorService,\n FormService,\n\n // backend\n TokenService,\n HttpService,\n UrlService,\n FileService,\n UserService,\n\n // active\n ActiveAuthPages,\n ActiveUserPages,\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-confirm',\n templateUrl: './confirm.component.html',\n styleUrls: ['./confirm.component.scss']\n})\nexport class ConfirmComponent implements OnInit {\n\n checkDownShow: boolean = false;\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: { iconPath: string, title: string, isMessage?: boolean, dontShowField?: string }\n ) {\n if (!this.data.iconPath) this.data.iconPath = 'assets/icons/close.png';\n }\n ngOnInit(): void {\n }\n close(confirm) {\n this.dialogRef.close(confirm);\n }\n dontShow() {\n if (this.checkDownShow) localStorage.setItem(this.data.dontShowField, 'true');\n else localStorage.removeItem(this.data.dontShowField);\n }\n}\n","
\n
\n
\n
\n \n \n \n
\n
\n \n دیگه نمایش نده\n \n \n
\n
","import { Component } from '@angular/core';\nimport { trigger } from \"@angular/animations\";\n\nimport { getShowFade } from \"src/app/services/template-service/animations\";\nimport { GloabalLoader } from '../../services/gloabal-loader.service';\n\n@Component({\n selector: 'app-global-loader',\n template: `\n
\n \n
\n `,\n styleUrls: ['../../styles/loader.scss'],\n animations: [\n trigger('showFade', getShowFade(100))\n ]\n})\nexport class GlobalLoaderComponent { loader = GloabalLoader }\n ","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-show-audio',\n templateUrl: './show-audio.component.html',\n styleUrls: ['../file-viewer.scss', './show-audio.component.scss']\n})\nexport class ShowAudioComponent implements OnInit {\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: { src: any },\n ) { }\n ngOnInit(): void {\n }\n close() {\n this.dialogRef.close();\n }\n}","
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-show-image',\n templateUrl: './show-image.component.html',\n styleUrls: ['../file-viewer.scss', './show-image.component.scss']\n})\nexport class ShowImageComponent implements OnInit {\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: { src: any },\n ) { }\n ngOnInit(): void {\n }\n close() {\n this.dialogRef.close();\n }\n}\n","
\n
\n \n \n
\n
\n
\n \n \n \n
\n
\n
","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-show-pdf',\n templateUrl: './show-pdf.component.html',\n styleUrls: ['../file-viewer.scss', './show-pdf.component.scss']\n})\nexport class ShowPdfComponent implements OnInit {\n zoom: number = 1;\n isCtrlPressed: boolean = false;\n\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: { src: any },\n ) { }\n ngOnInit(): void {\n }\n close() {\n this.dialogRef.close();\n }\n zoomIn() {\n if (this.zoom < 2) this.zoom += 0.25;\n }\n zoomOut() {\n if (this.zoom > 1) this.zoom -= 0.25;\n }\n}\n","
\n
\n \n \n
\n
\n \n \n \n
\n
","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-show-video',\n templateUrl: './show-video.component.html',\n styleUrls: ['../file-viewer.scss', './show-video.component.scss']\n})\nexport class ShowVideoComponent implements OnInit {\n fullscreen: boolean = false;\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: { src: any },\n ) { }\n ngOnInit(): void {\n }\n close() {\n this.dialogRef.close();\n }\n}\n","
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
","import { Directive, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[justEnglish]'\n})\nexport class JustEnglishDirective {\n\n englishRegExp = /^[a-zA-Z0-9!@#$%^&*://()_.?]+/;\n isControlKey(key: string): boolean {\n switch (key) {\n case 'Tab':\n case 'Alt':\n case 'Shift':\n case 'Enter':\n case 'Backspace':\n case 'ArrowUp':\n case 'ArrowLeft':\n case 'ArrowRight':\n case 'ArrowDown':\n case 'Delete':\n return true;\n default: return false;\n }\n }\n @HostListener('keydown', ['$event']) writteAllow(event: any) {\n if (this.isControlKey(event.key)) return;\n else if (!this.englishRegExp.test(event.key)) event.preventDefault();\n }\n}\n","import { Directive, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[onlyDigits]'\n})\nexport class OnlyDigitsDirective {\n @HostListener('keydown', ['$event']) writteAllow(event: any) {\n if ((/^[a-zA-Z%+=\\|\\\\~!@#$%^&*://(){}`\\[\\]_,.?]$/).test(event.key)) event.preventDefault();\n }\n}","import { Directive, Input, OnChanges, SimpleChanges, Output, EventEmitter, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[appSetInfo]',\n})\nexport class SetValueObjectDirective implements OnChanges {\n @Input() appSetStatus: any;\n @Output() changedStatus = new EventEmitter();\n\n constructor() { }\n ngOnChanges(changes: SimpleChanges) {\n if (changes.appSetStatus) {\n this.changedStatus.emit(changes.appSetStatus.currentValue);\n }\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { FormToolComponent } from '../form-tool.component';\n\n@Component({\n selector: 'app-break-line',\n templateUrl: './break-line.component.html',\n styleUrls: ['./break-line.component.scss']\n})\nexport class BreakLineComponent extends FormToolComponent implements OnInit {\n constructor() { super(); }\n ngOnInit(): void {\n }\n\n}\n","
","import { Component, OnInit } from '@angular/core';\nimport { mimeTypes } from 'mime-wrapper';\nimport { ShowFileService } from 'src/app/services/show-file.service';\nimport { UrlService } from 'src/app/services/url.service';\n\nimport { FormToolComponent } from '../form-tool.component';\n\n@Component({\n selector: 'app-check-box',\n templateUrl: './check-box.component.html',\n styleUrls: ['./check-box.component.scss'],\n})\nexport class CheckBoxComponent extends FormToolComponent implements OnInit {\n mimeTypes = mimeTypes;\n constructor(\n public showFileService: ShowFileService,\n public urlService: UrlService\n ) { super(); }\n ngOnInit(): void {\n this.form.setCheckboxInfo(this.config);\n }\n}\n","
\n
\n \n\n
\n
\n
\n \n \n
{{ item.title }}
\n
\n \n \n
\n
\n
\n\n
\n
","import { Component, OnInit, Input, Renderer2, ElementRef } from '@angular/core';\nimport { FormToolComponent } from '../form-tool.component';\nimport { DecimalPipe } from '@angular/common';\nimport moment from 'moment-jalaali';\n\nimport { DateService } from 'src/app/services/template-service/date.service';\nimport { slideToggleAuto } from 'src/app/services/template-service/animations';\nimport { trigger } from '@angular/animations';\nimport { EClassNameTheme } from 'src/app/models/form-class-name.enum';\n\n@Component({\n selector: 'app-date',\n templateUrl: './date.component.html',\n styleUrls: ['./date.component.scss'],\n providers: [\n DecimalPipe\n ],\n animations: [\n trigger('slideToggleAuto', slideToggleAuto)\n ]\n})\nexport class DateComponent extends FormToolComponent implements OnInit {\n // enums\n EClassNameTheme = EClassNameTheme;\n\n minDate: { year: number, month: number, day: number } = {\n year: 1300, month: 1, day: 1\n };\n maxDate: { year: number, month: number, day: number } = {\n year: 1500, month: 1, day: 1\n };\n\n maxMonth: number = 12;\n minMonth: number = 1;\n maxDay: number = 31;\n minDay: number = 1;\n\n // show and hide items\n closeMenu: boolean = false;\n showSelectedDate: boolean = false;\n\n selectedYear: number;\n selectedMonth: number;\n selectedDay: number;\n\n // selected date\n selectedDate: string = null;\n\n constructor(private decimalPipe: DecimalPipe) { super(); }\n ngOnInit(): void {\n this.setInfo();\n if (this.config.disableMode) return;\n\n // date now\n let now = new Date();\n let year = moment(now.getFullYear() + '/1/1', 'YYYY/M/D').jYear();\n\n // find min date and max date\n let splitMinDate = this.config.validation.minStringValue ? this.config.validation.minStringValue.split('/') : null;\n let splitMaxDate = this.config.validation.maxStringValue ? this.config.validation.maxStringValue.split('/') : null;\n\n if (splitMinDate) this.minDate = { year: Number(splitMinDate[0]), month: Number(splitMinDate[1]), day: Number(splitMinDate[2]) };\n else this.minDate = { year: (splitMaxDate ? Number(splitMaxDate[0]) - 100 : year - 50), month: 1, day: 1 };\n\n if (splitMaxDate) this.maxDate = { year: Number(splitMaxDate[0]), month: Number(splitMaxDate[1]), day: Number(splitMaxDate[2]) };\n else this.maxDate = {\n year: (splitMinDate ? Number(splitMinDate[0]) + 100 : year + 50), month: 12,\n day: DateService.getDayes((splitMinDate ? Number(splitMinDate[0]) + 100 : year + 50), 12),\n };\n\n this.init();\n }\n\n init() {\n if (this.form.userInputs[this.config.id].value) {\n let date = this.form.userInputs[this.config.id].value.split('/');\n this.selectedYear = Number(date[0]);\n this.selectedMonth = Number(date[1]);\n this.selectedDay = Number(date[2]);\n this.showSelectedDate = true;\n }\n else {\n this.selectedYear = this.minDate.year;\n this.selectedMonth = this.minDate.month;\n this.selectedDay = this.minDate.day;\n }\n this.setMonths();\n this.setDays();\n if (this.applyCondition && this.config.isLastComponent) { this.form.checkConditions(); }\n }\n\n // set methods\n setMonths() {\n // find min month\n if (this.selectedYear === this.minDate.year) this.minMonth = this.minDate.month;\n else this.minMonth = 1;\n // find max month\n if (this.selectedYear === this.maxDate.year) this.maxMonth = this.maxDate.month;\n else this.maxMonth = 12;\n // set selected month if is not contain range \n if (this.selectedMonth < this.minMonth) this.selectedMonth = this.minMonth;\n if (this.selectedMonth > this.maxMonth) this.selectedMonth = this.maxMonth;\n }\n setDays() {\n let days = DateService.getDayes(this.selectedYear, this.selectedMonth);\n // find min day\n if (this.selectedYear === this.minDate.year && this.selectedMonth === this.minDate.month)\n this.minDay = this.minDate.day;\n else this.minDay = 1;\n // find max day\n if (this.selectedYear === this.maxDate.year && this.selectedMonth === this.maxDate.month)\n this.maxDay = this.maxDate.day;\n else this.maxDay = days;\n // set selected year if is not contain range \n if (this.selectedDay < this.minDay) this.selectedDay = this.minDay;\n if (this.selectedDay > this.maxDay) this.selectedDay = this.maxDay;\n }\n\n // select items\n selectYear(year: number) {\n this.selectedYear = year;\n this.setMonths();\n this.setDays();\n }\n selectMonth(month: number) {\n this.selectedMonth = month;\n this.setDays();\n }\n selectDay(day: number) {\n this.selectedDay = day;\n }\n\n // get selected date\n getSelectedDate(): string {\n let date = '';\n date += this.selectedYear + '/';\n date += this.decimalPipe.transform(this.selectedMonth, '2.0-0') + '/';\n date += this.decimalPipe.transform(this.selectedDay, '2.0-0');\n return date;\n }\n\n // accept date\n acceptDate() {\n this.showSelectedDate = true;\n this.setValue();\n }\n onCloseMenu() {\n this.closeMenu = true;\n }\n setValue() {\n if (this.showSelectedDate) {\n this.selectedDate = this.getSelectedDate();\n this.form.userInputs[this.config.id].value = this.selectedDate;\n this.form.checkConditions();\n }\n }\n\n // disable mode \n perventOpenMenu(event) {\n if (this.config.disableMode) event.preventDefault();\n }\n\n // button up down\n goTop(element: any) {\n element.scroll({ top: element.scrollTop - 160, behavior: 'smooth' });\n }\n goDown(element: any) {\n element.scroll({ top: element.scrollTop + 160, behavior: 'smooth' });\n }\n}\n","
\n
\n \n\n
\n
\n
\n \n\n \n
\n
\n
\n {{ config?.title ? config.title : config?.placeholer }} را انتخاب کنید\n
\n
\n
\n\n \n \n
\n
\n \n
\n\n \n
\n
سال
\n \n
\n \n
\n \n
\n \n
\n
ماه
\n \n
\n \n
\n \n
\n \n
\n
روز
\n \n
\n \n
\n \n
\n\n
\n \n
\n \n
\n
\n
\n
\n
","import { Component, OnInit } from '@angular/core';\nimport { EClassNameFontSize } from 'src/app/models/form-class-name.enum';\nimport { FormToolComponent } from '../form-tool.component';\n\n@Component({\n selector: 'app-description',\n templateUrl: './description.component.html',\n styleUrls: ['./description.component.scss']\n})\nexport class DescriptionComponent extends FormToolComponent implements OnInit {\n EClassNameFontSize = EClassNameFontSize;\n constructor() { super(); }\n ngOnInit(): void {\n this.setInfo();\n }\n}\n","
\n
\n
\n {{ config?.title }}\n
\n
\n
","import { Component, OnInit } from '@angular/core';\nimport { FormToolComponent } from '../form-tool.component';\n\n@Component({\n selector: 'app-email',\n templateUrl: './email.component.html',\n styleUrls: ['./email.component.scss'],\n})\nexport class EmailComponent extends FormToolComponent implements OnInit {\n constructor() { super(); }\n ngOnInit(): void {\n this.setInfo();\n }\n}\n","
\n
\n \n\n
\n \n\n\n\n
\n
{{ config?.title ? config.title : config?.placeholer }} را وارد کنید
\n
{{ config?.title ? config.title : config?.placeholer }} وارد شده اشتباه است
\n
\n
\n
\n
","import { Component, OnInit, Input, Output, EventEmitter, ViewChild, ɵConsole, AfterViewInit } from '@angular/core';\nimport { FormControl, Validators, NgModel } from '@angular/forms';\n\nimport { IToolConfig } from 'src/app/models/form.interface';\nimport { EClassNameAlignment, EClassNameFontSize } from 'src/app/models/form-class-name.enum';\nimport { FormSubmitService } from '../services/template-service/form-submit.service';\n\n@Component({\n selector: 'app-form-tool',\n template: '',\n})\nexport class FormToolComponent implements OnInit {\n // enums\n EClassNameFontSize = EClassNameFontSize;\n EClassNameAlignment = EClassNameAlignment;\n\n @Output() change = new EventEmitter();\n\n @Input() isSurveyForm: boolean = false;\n @Input() form: FormSubmitService;\n @Input() applyCondition: boolean;\n @Input() config: IToolConfig;\n\n constructor() { }\n ngOnInit(): void {\n }\n // set info for user inputs\n setInfo() {\n this.form.setComponentInfo(this.config);\n }\n // check validations\n checkMinLength(input: NgModel) {\n // ;\n if (input.model && this.config.validation.minLen && input.model.length < this.config.validation.minLen) {\n input.control.setErrors({ minLength: true });\n }\n this.form.checkConditions();\n }\n}\n","import { MatDialog } from '@angular/material/dialog';\r\nimport { Component, OnInit, } from '@angular/core';\r\nimport { mimeTypes } from 'mime-wrapper';\r\n\r\nimport { UrlService } from 'src/app/services/url.service';\r\n\r\nimport { ShowImageComponent } from 'src/app/components/show-image/show-image.component';\r\nimport { ShowAudioComponent } from 'src/app/components/show-audio/show-audio.component';\r\nimport { ShowVideoComponent } from 'src/app/components/show-video/show-video.component';\r\nimport { ShowPdfComponent } from 'src/app/components/show-pdf/show-pdf.component';\r\nimport { FormToolComponent } from '../form-tool.component';\r\nimport { EClassNameFontSize } from 'src/app/models/form-class-name.enum';\r\n\r\n@Component({\r\n selector: 'app-label-tool',\r\n templateUrl: './label.component.html',\r\n styleUrls: ['./label.component.scss']\r\n})\r\nexport class LabelComponent extends FormToolComponent implements OnInit {\r\n mimeTypes = mimeTypes;\r\n EClassNameFontSize = EClassNameFontSize;\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n public urlService: UrlService,\r\n ) { super(); }\r\n ngOnInit(): void {\r\n }\r\n // for show file\r\n showFile(fileUrl: string) {\r\n switch (mimeTypes.getType(fileUrl).split('/')[0]) {\r\n case 'image': this.dialog.open(ShowImageComponent, { data: { src: this.urlService.getUrl('componentFile') + fileUrl } }); break;\r\n case 'audio': this.dialog.open(ShowAudioComponent, { data: { src: this.urlService.getUrl('componentFile') + fileUrl } }); break;\r\n case 'video': this.dialog.open(ShowVideoComponent, { data: { src: this.urlService.getUrl('componentFile') + fileUrl } }); break;\r\n case 'application': this.dialog.open(ShowPdfComponent, { data: { src: this.urlService.getUrl('componentFile') + fileUrl } }); break;\r\n default: break;\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
\r\n
\r\n
","import { math, number } from '@amcharts/amcharts4/core';\nimport { AfterViewInit, Component, ElementRef, OnDestroy, OnInit, QueryList, ViewChildren } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { FormToolComponent } from '../form-tool.component';\n\n@Component({\n selector: 'app-matrix',\n templateUrl: './matrix.component.html',\n styleUrls: ['./matrix.component.scss']\n})\nexport class MatrixComponent extends FormToolComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChildren('itemsTitle') itemsTitle: QueryList;\n\n _addMatrixItem: Subscription;\n minWidth: number = 0;\n touched: boolean = false;\n constructor() { super(); }\n ngOnInit(): void {\n this.form.setMatrixInfo(this.config);\n }\n ngAfterViewInit() {\n this.calculateWidth();\n this._addMatrixItem = this.form._matrixItemAdd.subscribe(id => {\n if (this.config.id == id) this.calculateWidth();\n })\n }\n ngOnDestroy() {\n if (this._addMatrixItem) this._addMatrixItem.unsubscribe();\n }\n\n // calculate\n calculateWidth() {\n let arrWidth: any[] = this.itemsTitle.toArray().map(item => item.nativeElement.offsetWidth);\n setTimeout(() => { this.minWidth = Math.max(...arrWidth) });\n }\n}\n","
\n
\n \n\n
\n
\n \n
{{item.title}}
\n \n \n\n \n {{ subValue.title }}\n \n\n \n
\n
\n سوال بالا را تکمیل کنید\n
\n
\n\n
\n
","import { Component, OnInit } from '@angular/core';\nimport { FormToolComponent } from '../form-tool.component';\n\n@Component({\n selector: 'app-next-button',\n templateUrl: './next-button.component.html',\n styleUrls: ['./next-button.component.scss']\n})\nexport class NextButtonComponent extends FormToolComponent implements OnInit {\n constructor() { super(); }\n ngOnInit(): void {\n }\n nextPage() {\n \n }\n}\n","","import { Component, OnInit } from '@angular/core';\nimport { FormToolComponent } from '../form-tool.component';\nimport { NgModel } from '@angular/forms';\n\n@Component({\n selector: 'app-number',\n templateUrl: './number.component.html',\n styleUrls: ['./number.component.scss']\n})\nexport class NumberComponent extends FormToolComponent implements OnInit {\n constructor() { super(); }\n ngOnInit(): void {\n this.setInfo();\n }\n checkMinMaxValue(input: NgModel, value: number) {\n if (value && this.config.validation.minNumValue && Number(value) < Number(this.config.validation.minNumValue)) {\n input.control.setErrors({ minValue: true });\n }\n if (value && this.config.validation.maxNumValue && Number(value) > Number(this.config.validation.maxNumValue)) {\n input.control.setErrors({ maxValue: true });\n }\n }\n}\n","
\n
\n \n\n
\n \n\n
\n
{{ config?.title ? config.title : config?.placeholer }} را وارد کنید
\n
\n\n
\n {{ config?.title ? config.title : config?.placeholer }} باید بین {{ config.validation.minNumValue }} و\n {{ config.validation.maxNumValue }} باشد\n
\n
\n {{ config?.title ? config.title : config?.placeholer }} باید بزرگتر از {{ config.validation.minNumValue }} باشد\n
\n
\n {{ config?.title ? config.title : config?.placeholer }} باید کوچکتر از {{ config.validation.maxNumValue }} باشد\n
\n
\n {{ config?.title ? config.title : config?.placeholer }} حداقل باید\n {{ config.validation.minLen }} کاراکتری باشد\n
\n\n
\n
\n
\n
\n
","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\n\n\nimport { IToolConfig } from 'src/app/models/form.interface';\nimport { EClassNameAlignment, EClassNameFontSize } from 'src/app/models/form-class-name.enum';\nimport { FormToolComponent } from '../form-tool.component';\n\n@Component({\n selector: 'app-password',\n templateUrl: './password.component.html',\n styleUrls: ['./password.component.scss'],\n})\nexport class PasswordComponent extends FormToolComponent implements OnInit {\n email = new FormControl(null, [Validators.email]);\n constructor() { super(); }\n ngOnInit(): void {\n this.setInfo();\n }\n}\n","
\n
\n \n\n
\n \n\n
\n
{{ config?.title ? config.title : config?.placeholer }} را وارد کنید
\n
\n {{ config?.title ? config.title : config?.placeholer }} حداقل باید\n {{ config.validation.minLen }} کاراکتری باشد\n
\n
\n
\n
\n
","import { Component, OnInit } from '@angular/core';\nimport { FormToolComponent } from '../form-tool.component';\n\n@Component({\n selector: 'app-prev-button',\n templateUrl: './prev-button.component.html',\n styleUrls: ['./prev-button.component.scss']\n})\nexport class PrevButtonComponent extends FormToolComponent implements OnInit {\n constructor() { super(); }\n ngOnInit(): void {\n }\n prevPage() {\n \n }\n}\n","","import { Component, OnInit } from '@angular/core';\nimport { mimeTypes } from 'mime-wrapper';\nimport { ShowFileService } from 'src/app/services/show-file.service';\nimport { UrlService } from 'src/app/services/url.service';\nimport { FormToolComponent } from '../form-tool.component';\n\n@Component({\n selector: 'app-radio-button',\n templateUrl: './radio-button.component.html',\n styleUrls: ['./radio-button.component.scss']\n})\nexport class RadioButtonComponent extends FormToolComponent implements OnInit {\n mimeTypes = mimeTypes;\n constructor(\n public showFileService: ShowFileService,\n public urlService: UrlService\n ) { super(); }\n ngOnInit(): void {\n this.setInfo();\n }\n}\n","
\n
\n \n\n
\n \n\n
\n \n \n {{ item.title }}\n \n \n \n
\n\n
\n\n
{{ config?.title ? config.title : config?.placeholer }} را وارد کنید
\n
\n
\n
","import { Component, OnInit, ViewChild, ElementRef, AfterViewInit, Renderer2 } from '@angular/core';\nimport { FormToolComponent } from '../form-tool.component';\nimport * as NoUislider from 'nouislider';\nimport * as wNumb from 'wnumb';\n\n@Component({\n selector: 'app-range',\n templateUrl: './range.component.html',\n styleUrls: ['./range.component.scss']\n})\nexport class RangeComponent extends FormToolComponent implements OnInit, AfterViewInit {\n\n initView: boolean = false;\n ragneCreated: boolean = false;\n startPoints: [number, number];\n allowCreateRange: boolean = false;\n range: { min: number, max: number }\n @ViewChild('rangeEl', { static: false }) rangeEl: ElementRef;\n\n constructor(private renderer: Renderer2) { super(); }\n ngOnInit(): void {\n this.setInfo();\n this.init();\n }\n init() {\n this.range = {\n min: (this.config.validation.minNumValue != undefined ? this.config.validation.minNumValue : 0),\n max: (this.config.validation.maxNumValue != undefined ? this.config.validation.maxNumValue : 100),\n }\n this.startPoints = [this.range.min, this.range.max];\n\n if (this.config.disableMode) {\n let values = this.form.userInputs[this.config.id].value.split('::');\n this.startPoints = [Number(values[0]), Number(values[1])];\n }\n else this.form.userInputs[this.config.id].value = this.range.min + '::' + this.range.max;\n if (this.applyCondition && this.config.isLastComponent) { this.form.checkConditions(); }\n this.allowCreateRange = true;\n this.createRange();\n }\n\n ngAfterViewInit() {\n this.initView = true;\n this.createRange();\n }\n createRange() {\n if (!this.initView || !this.allowCreateRange) return;\n NoUislider.create(this.rangeEl.nativeElement, {\n // behaviour: 'unconstrained-tap',\n start: this.startPoints,\n tooltips: [true, true],\n range: this.range,\n connect: true,\n // step: 1,\n format: wNumb({\n decimals: 0\n })\n });\n if (this.config.disableMode) this.renderer.setAttribute(this.rangeEl.nativeElement, 'disabled', 'true');\n this.rangeActions();\n }\n rangeActions() {\n if (this.config.disableMode) this.rangeEl.nativeElement.noUiSlider.disabled = true;\n else {\n this.rangeEl.nativeElement.noUiSlider.on('end', values => {\n this.form.userInputs[this.config.id].value = values[0] + '::' + values[1];\n this.form.checkConditions();\n });\n }\n }\n}\n","
\n
\n \n\n
\n
\n
\n
\n
","import { Component, OnInit } from '@angular/core';\nimport { EClassNameTheme } from 'src/app/models/form-class-name.enum';\nimport { FormToolComponent } from '../form-tool.component';\n\n@Component({\n selector: 'app-select-box',\n templateUrl: './select-box.component.html',\n styleUrls: ['./select-box.component.scss'],\n\n})\nexport class SelectBoxComponent extends FormToolComponent implements OnInit {\n // enum\n EClassNameTheme = EClassNameTheme;\n\n selectedValue: any;\n closeMenu: boolean = false;\n userSelectedValue: string = '';\n\n constructor() { super(); }\n ngOnInit(): void {\n this.setInfo();\n if (this.applyCondition && this.config.isLastComponent) { this.form.checkConditions(); }\n }\n f() {\n return 'cosmic-theme'\n }\n\n // select value and close \n selectValue(option: any) {\n this.selectedValue = option;\n this.form.userInputs[this.config.id].value = option.value;\n this.form.userInputs[this.config.id].priceValue = option.priceValue;\n this.form.setPriceComponent(this.config);\n this.form.checkConditions();\n }\n onCloseMenu() {\n this.closeMenu = true;\n }\n}\n","
\n
\n \n\n
\n
\n
\n \n\n \n
\n
\n
\n {{ config?.title ? config.title : config?.placeholer }} را انتخاب کنید\n
\n
\n\n
\n\n\n \n \n
\n
\n \n
\n
\n
\n\n
\n \n
\n\n
\n
\n
\n
\n
\n
\n
","import { trigger } from '@angular/animations';\nimport { Component, OnInit } from '@angular/core';\nimport { FormToolComponent } from '../form-tool.component';\nimport { rotateCreateAuto, rotateReverseCreateAuto } from '../../services/template-service/animations';\nimport { EClassNameIcons } from 'src/app/models/form-class-name.enum';\n\n@Component({\n selector: 'app-star',\n templateUrl: './star.component.html',\n styleUrls: ['./star.component.scss'],\n animations: [\n trigger('rotateCreateAuto', rotateCreateAuto),\n trigger('rotateReverseCreateAuto', rotateReverseCreateAuto),\n ]\n})\nexport class StarComponent extends FormToolComponent implements OnInit {\n totalIcon: any = {};\n filledIcon: number = 0;\n\n touched: boolean = false;\n EClassNameIcons = EClassNameIcons;\n\n constructor() { super(); }\n ngOnInit(): void {\n this.setInfo();\n this.totalIcon = this.config.validation;\n\n if (this.config.required) setTimeout(() => { this.form.userInputs[this.config.id].status = 'INVALID' });\n if (this.config.disableMode) this.filledIcon = Number(this.form.userInputs[this.config.id].value);\n else this.form.userInputs[this.config.id].value = '0';\n if (this.applyCondition && this.config.isLastComponent) { this.form.checkConditions(); }\n }\n\n // set icon number\n selectIcon(indexIcon: number) {\n\n if (this.config.disableMode) return;\n // for validation\n this.touched = true;\n // remove selected\n if (indexIcon === this.filledIcon) {\n this.filledIcon = 0;\n this.form.userInputs[this.config.id].value = '0';\n this.form.checkConditions();\n if (this.config.required) {\n setTimeout(() => { this.form.userInputs[this.config.id].status = 'INVALID' });\n }\n }\n // select icon\n else {\n this.filledIcon = indexIcon;\n this.form.userInputs[this.config.id].value = indexIcon.toString();\n this.form.checkConditions();\n if (this.form.userInputs[this.config.id].status === 'INVALID') {\n setTimeout(() => { this.form.userInputs[this.config.id].status = 'VALID' });\n }\n }\n }\n}\n","
\n
\n \n\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n \n
10? 10: totalIcon.maxLen) - filledIcon) | newArray; let index = index\"\n (click)=\"selectIcon(totalIcon.maxLen - (index))\">\n
\n
\n \n
\n
\n
\n
\n\n
\n
\n لطفا امتیاز خود را ثبت کنید\n
\n
\n\n
\n
","import { Component, OnInit } from '@angular/core';\nimport { FormService } from 'src/app/services/form-service/form.service';\nimport { FormToolComponent } from '../form-tool.component';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n selector: 'app-submit',\n templateUrl: './submit.component.html',\n styleUrls: ['./submit.component.scss']\n})\nexport class SubmitComponent extends FormToolComponent implements OnInit {\n\n constructor(private formService: FormService, private route: ActivatedRoute) { super(); }\n ngOnInit(): void {\n }\n submitForm() {\n return;\n\n // // send form\n // this.form.isSending = true;\n // this.formService.submit(formFilled).then(\n // res => {\n // console.log(res);\n // },\n // error => {\n // console.log(error);\n // },\n // ).finally(() => this.form.isSending = false);\n }\n}\n","","import { Component, OnInit, Input, Output, OnChanges, SimpleChanges } from '@angular/core';\nimport { CreateNameToolService } from 'src/app/services/template-service/create-name-tool.service';\nimport { IToolConfig } from 'src/app/models/form.interface';\nimport { FormToolComponent } from '../form-tool.component';\n\n@Component({\n selector: 'app-text-box',\n templateUrl: './text-box.component.html',\n styleUrls: ['./text-box.component.scss'],\n providers: [\n CreateNameToolService\n ]\n})\nexport class TextBoxComponent extends FormToolComponent implements OnInit {\n constructor() { super(); }\n ngOnInit(): void {\n this.setInfo();\n }\n}\n","
\n
\n \n\n
\n \n\n
\n
\n {{ config?.title ? config.title : config?.placeholer }} را وارد کنید\n
\n
\n {{ config?.title ? config.title : config?.placeholer }} حداقل باید\n {{ config.validation.minLen }} کاراکتری باشد\n
\n
\n
\n
\n
","import { Component, OnInit } from '@angular/core';\nimport { FormToolComponent } from '../form-tool.component';\nimport { NgModel } from '@angular/forms';\nimport { min } from 'rxjs/operators';\n\n@Component({\n selector: 'app-textarea',\n templateUrl: './textarea.component.html',\n styleUrls: ['./textarea.component.scss']\n})\nexport class TextareaComponent extends FormToolComponent implements OnInit {\n constructor() { super(); }\n ngOnInit(): void {\n this.setInfo();\n }\n}\n","
\n
\n \n\n
\n \n\n
\n
{{ config?.title ? config.title : config?.placeholer }} را وارد کنید
\n
\n {{ config?.title ? config.title : config?.placeholer }} حداقل باید\n {{ config.validation.minLen }} کاراکتری باشد\n
\n
\n
\n
\n
","import { Component, OnInit } from '@angular/core';\n\n\nimport { FormToolComponent } from '../form-tool.component';\nimport { DecimalPipe } from '@angular/common';\nimport { EClassNameTheme } from 'src/app/models/form-class-name.enum';\n\n@Component({\n selector: 'app-time',\n templateUrl: './time.component.html',\n styleUrls: ['./time.component.scss'],\n providers: [\n DecimalPipe,\n ]\n})\nexport class TimeComponent extends FormToolComponent implements OnInit {\n // enums \n EClassNameTheme = EClassNameTheme;\n\n minTime: { hour: number, minute: number } = { hour: 0, minute: 0 };\n maxTime: { hour: number, minute: number } = { hour: 23, minute: 59 };\n\n minMinute: number = 0;\n maxMinute: number = 59;\n\n closeMenu: boolean = false;\n showSelectedTime: boolean = false;\n\n selectedHour: number = 1;\n selectedMinute: number = 1;\n\n // for selected time \n selectedTime: string;\n\n constructor(private decimalPipe: DecimalPipe) { super(); }\n ngOnInit(): void {\n this.setInfo();\n if (this.config.disableMode) return;\n\n // find min date and max date\n let splitMinTime = this.config.validation.minStringValue ? this.config.validation.minStringValue.split(':') : null;\n let splitMaxTime = this.config.validation.maxStringValue ? this.config.validation.maxStringValue.split(':') : null;\n\n if (splitMinTime) this.minTime = { hour: Number(splitMinTime[0]), minute: Number(splitMinTime[1]) };\n else this.minTime = { hour: 0, minute: 0 };\n\n if (splitMaxTime) this.maxTime = { hour: Number(splitMaxTime[0]), minute: Number(splitMaxTime[1]) };\n else this.maxTime = { hour: 23, minute: 59 };\n\n this.init();\n }\n init() {\n if (this.form.userInputs[this.config.id].value) {\n let time = this.form.userInputs[this.config.id].value.split(':');\n this.selectedHour = Number(time[0]);\n this.selectedMinute = Number(time[1]);\n this.showSelectedTime = true;\n }\n else {\n this.selectedHour = this.minTime.hour;\n this.selectedMinute = this.minTime.minute;\n }\n this.setMinutes();\n if (this.applyCondition && this.config.isLastComponent) { this.form.checkConditions(); }\n }\n\n // set minute\n setMinutes() {\n // find min minute\n if (this.selectedHour === this.minTime.hour) this.minMinute = this.minTime.minute;\n else this.minMinute = 0;\n // find max minute\n if (this.selectedHour === this.maxTime.hour) this.maxMinute = this.maxTime.minute;\n else this.maxMinute = 59;\n // check range\n if (this.selectedMinute < this.minMinute) this.selectedMinute = this.minMinute;\n if (this.selectedMinute > this.maxMinute) this.selectedMinute = this.maxMinute;\n }\n\n // select items\n selectHour(hour: number) {\n this.selectedHour = hour;\n this.setMinutes();\n }\n selectMinute(minute: number) {\n this.selectedMinute = minute;\n }\n\n // get time format\n getSelectedTime(): string {\n let time = '';\n time += this.decimalPipe.transform(this.selectedHour, '2.0-0') + ':';\n time += this.decimalPipe.transform(this.selectedMinute, '2.0-0');\n return time;\n }\n\n // accept time\n acceptTime() {\n this.showSelectedTime = true;\n this.setValue();\n }\n onCloseMenu() {\n this.closeMenu = true;\n }\n setValue() {\n if (this.showSelectedTime) {\n this.selectedTime = this.getSelectedTime();\n this.form.userInputs[this.config.id].value = this.selectedTime;\n this.form.checkConditions();\n }\n }\n\n // button up down\n goTop(element: any) {\n element.scroll({ top: element.scrollTop - 160, behavior: 'smooth' });\n }\n goDown(element: any) {\n element.scroll({ top: element.scrollTop + 160, behavior: 'smooth' });\n }\n}\n","
\n
\n \n\n
\n
\n
\n \n\n \n
\n
\n
\n {{ config?.title ? config.title : config?.placeholer }} را انتخاب کنید\n
\n
\n\n
\n\n \n \n
\n
\n \n
\n \n
\n
ساعت
\n \n
\n \n
\n \n
\n \n
\n
دقیقه
\n \n
\n \n
\n \n
\n
\n \n
\n \n
\n
\n
\n
\n
","import { Component, OnInit } from '@angular/core';\r\nimport { FormToolComponent } from '../form-tool.component';\r\nimport { EClassNamePosition, EClassNameErrorPosition, EClassNameImageSize } from 'src/app/models/form-class-name.enum';\r\nimport { ShowImageComponent } from 'src/app/components/show-image/show-image.component';\r\nimport { ShowAudioComponent } from 'src/app/components/show-audio/show-audio.component';\r\nimport { ShowVideoComponent } from 'src/app/components/show-video/show-video.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { mimeTypes } from 'mime-wrapper';\r\nimport { FileService } from 'src/app/services/file.service';\r\nimport { base64ToFile } from 'ngx-image-cropper';\r\n\r\n@Component({\r\n selector: 'app-upload',\r\n templateUrl: './upload.component.html',\r\n styleUrls: ['./upload.component.scss']\r\n})\r\nexport class UploadComponent extends FormToolComponent implements OnInit {\r\n mimeTypes = mimeTypes;\r\n touched: boolean = false;\r\n listInvalidFiles: {file:File,type:string}[];\r\n EClassNamePosition = EClassNamePosition;\r\n EClassNameImageSize = EClassNameImageSize;\r\n EClassNameErrorPosition = EClassNameErrorPosition;\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private fileService: FileService,\r\n ) { super(); }\r\n ngOnInit(): void {\r\n this.setInfo();\r\n this.config.fileObject = { id: this.config.name, file: undefined, progressBar: 0 };\r\n if(this.config.required) { \r\n this.form.userInputs[this.config.id].status = 'INVALID';\r\n if(this.config.isLastComponent) this.form.checkConditions();\r\n }\r\n if(this.config.disableMode) {\r\n this.getFile();\r\n }\r\n }\r\n\r\n // for select file\r\n selectFile(file: File) {\r\n this.config.fileObject.file = file;\r\n this.config.fileObject.fileUrl = this.createUrl(file);\r\n this.form.userInputs[this.config.id].status = 'VALID';\r\n this.form.checkConditions();\r\n } \r\n createUrl(file: File) {\r\n return window.URL.createObjectURL(file);\r\n }\r\n // for show file\r\n showFile(type: string, fileUrl: string) {\r\n switch (type.split('/')[0]) {\r\n case 'image': this.dialog.open(ShowImageComponent, { data: { src: fileUrl } }); break;\r\n case 'audio': this.dialog.open(ShowAudioComponent, { data: { src: fileUrl } }); break;\r\n case 'video': this.dialog.open(ShowVideoComponent, { data: { src: fileUrl } }); break;\r\n default: break;\r\n }\r\n }\r\n\r\n // get submitted file\r\n getFile() {\r\n this.fileService.downloadFile(\r\n this.config.fileObject,\r\n 'ApplyFormSubmitComponent/downloadSubmitedtFile',\r\n 'GET',\r\n {},\r\n { componentID: this.config.id, submitID: this.form.submitId }\r\n ).then(\r\n res => {\r\n ;\r\n let mime = mimeTypes.getType(res.body.extension);\r\n this.config.fileObject.extension = res.body.extension;\r\n this.config.fileObject.fileName = this.config.title + '-' + this.config.id + '.' + this.config.fileObject.extension;\r\n // for create url file\r\n const blob: Blob = base64ToFile('data:' + mime + ';base64,' + res.body.base64);\r\n this.config.fileObject.fileUrl = window.URL.createObjectURL(blob);\r\n }, \r\n errorRes => {\r\n this.config.fileObject.errorMessage = errorRes.error.message;\r\n if(errorRes.status === 400) this.config.emptyFile = true;\r\n }\r\n );\r\n }\r\n // download file\r\n downloadFile() {\r\n let link = document.createElement('a');\r\n link.download = this.config.fileObject.fileName;\r\n link.target = '_blank';\r\n\r\n link.href = this.config.fileObject.fileUrl;\r\n link.click();\r\n link.remove();\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 {{ config.fileObject?.progressBar }} %\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
{{ config.fileObject.fileName }}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n برای {{ config.title }} فایلی فرستاده نشده\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
{{ config.fileObject.file['name'] }}
\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
config.validation?.maxLen * 1024\">\r\n حداکثر اندازه فایل باید {{ config.validation?.maxLen | splitDigit }} kb باشد.\r\n
\r\n
\r\n
\r\n\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\nimport { FormToolComponent } from '../form-tool.component';\n\n@Component({\n selector: 'app-url',\n templateUrl: './url.component.html',\n styleUrls: ['./url.component.scss']\n})\nexport class UrlComponent extends FormToolComponent implements OnInit {\n constructor() { super(); }\n ngOnInit(): void {\n this.setInfo();\n }\n}\n","
\n
\n \n\n
\n \n\n
\n
{{ config?.title ? config.title : config?.placeholer }} را وارد کنید
\n
{{ config?.title ? config.title : config?.placeholer }} وارد شده اشتباه است
\n
\n
\n
\n
","import { EAlignment, ETheme, EFontSize, EImageSize, EIcons } from './form.enum';\n\n// enums\nexport enum EClassNameTheme {\n 'default-theme' = ETheme.DEFAULT,\n 'light-theme' = ETheme.LIGHT,\n 'dark-theme' = ETheme.DARK,\n 'cosmic-theme' = ETheme.COSMIC,\n}\n// reuse for upload component\nexport enum EClassNamePosition {\n 'ml-auto' = EImageSize.SMALL,\n 'mx-auto' = EImageSize.MEDIUM,\n 'mr-auto' = EImageSize.LARGE,\n}\nexport enum EClassNameErrorPosition {\n 'error-right' = EImageSize.SMALL,\n 'error-center' = EImageSize.MEDIUM,\n 'error-left' = EImageSize.LARGE,\n}\nexport enum EClassNameAlignment {\n 'left-align' = EAlignment.LEFT,\n 'right-align' = EAlignment.RIGHT,\n 'center-align' = EAlignment.CENTER,\n}\nexport enum EClassNameImageSize {\n 'small-image' = EImageSize.SMALL,\n 'medium-image' = EImageSize.MEDIUM,\n 'large-image' = EImageSize.LARGE,\n}\nexport enum EClassNameFontSize {\n 'small-size' = EFontSize.SMALL,\n 'medium-size' = EFontSize.MEDIUM,\n 'large-size' = EFontSize.LARGE,\n}\nexport enum EClassNameIcons {\n 'fa-thumbs-up icon-blue' = EIcons.THUMBS_UP,\n 'fa-star icon-yellow' = EIcons.STAR,\n 'fa-heart icon-red' = EIcons.HEART,\n 'fa-smile-beam icon-green' = EIcons.SMILE_BEAM,\n 'fa-sad-tear icon-dark' = EIcons.SAD_TEAR,\n}\n","// all interface and enums\n\n// enums\nexport enum ETheme {\n DEFAULT = 1,\n LIGHT,\n DARK,\n COSMIC,\n}\nexport enum EAlignment {\n LEFT = 1,\n RIGHT,\n CENTER,\n}\nexport enum EStatusForm {\n ACTIVE = 1,\n TEMP = 2,\n EXPIRED = 4,\n DISABLED = 6,\n DISABLE_BY_ADMIN = 7\n}\nexport enum EImageSize {\n SMALL = 1,\n MEDIUM,\n LARGE,\n}\nexport enum EFontSize {\n SMALL = 1,\n MEDIUM,\n LARGE,\n}\nexport enum EOperation {\n EQUAL = 1,\n LESSER,\n BIGGER,\n BETWEEN,\n NOT,\n}\nexport enum EConditionAggregate {\n AND = 1,\n OR,\n}\nexport enum ETool {\n TEXT_BOX = 1,\n RADIO_BUTTON,\n CHECK_BOX,\n SELECT_BOX,\n TEXTAREA,\n INPUT_DATE,\n INPUT_TIME,\n SUBMIT_BUTTON,\n PREV_BUTTON,\n NEXT_BUTTON,\n DESCRIPTION,\n BREAKLINE,\n RANGE,\n PASSWORD,\n NUMBER,\n EMAIL,\n URL,\n UPLOAD,\n}\nexport enum ESurveyTool {\n TEXT_BOX = 1,\n RADIO_BUTTON,\n CHECK_BOX,\n SELECT_BOX,\n TEXTAREA,\n INPUT_DATE,\n INPUT_TIME,\n SUBMIT_BUTTON,\n PREV_BUTTON,\n NEXT_BUTTON,\n RANGE,\n NUMBER,\n EMAIL,\n URL,\n MATRIX,\n MULTI_INPUT_MATRIX,\n STAR,\n DESCRIPTION\n}\nexport enum ERow {\n ONE_COLUMN = 1,\n TWO_EQUAL_COLUM,\n TWO_RIGHT_COLUMN,\n TWO_LEFT_COLUMN,\n THREE_EQUAL_COLUMN,\n}\nexport enum EIcons {\n THUMBS_UP = 1,\n STAR,\n HEART,\n SMILE_BEAM,\n SAD_TEAR,\n}\nexport enum EChart {\n BAR = 1,\n PIE,\n AREA,\n LINE,\n VARIABLE_PIE,\n HORZONTAL_BAR,\n MULTI_BAR,\n MULTI_PIE,\n MULTI_LINE,\n HORZONTAL_MULTI_BAR,\n}\nexport enum EApplyFormType {\n REGISTERED = 1,\n PAYMENT\n}\nexport enum EBank {\n MELLI = 1,\n MELLAT,\n SEPAH,\n REFAH,\n SADERAT,\n TEJARAT,\n MASKAN,\n}\n\n// operation formula\nexport enum EOperationFormula {\n PLUS = 1,\n MINUS,\n MULTIPLY,\n DEVIDE,\n OPEN_BRACES,\n CLOSE_BRACES\n}\nexport enum ESignOperationFormula {\n ' + ' = EOperationFormula.PLUS,\n ' - ' = EOperationFormula.MINUS,\n ' * ' = EOperationFormula.MULTIPLY,\n ' / ' = EOperationFormula.DEVIDE,\n '(' = EOperationFormula.OPEN_BRACES,\n ')' = EOperationFormula.CLOSE_BRACES,\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'newArray'\n})\nexport class NewArrayPipe implements PipeTransform {\n transform(value: number, startIndex: number = 1): number[] {\n if (!value) return [];\n\n let arr = [];\n for (let i = startIndex; i < startIndex + value; i++) arr.push(i);\n return arr;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'safe'\n})\nexport class SafeUrlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) { }\n transform(url: string) {\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\n }\n}","import { truncateWithEllipsis } from '@amcharts/amcharts4/.internal/core/utils/Utils';\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'splitDigit'\n})\nexport class SplitDigitPipe implements PipeTransform {\n\n transform(value: any, count: number = 3): string {\n\n // for zero not return\n if (value == undefined) return '';\n\n let newDigit = '';\n let negative = false;\n value = value.toString();\n\n // check negative numbers\n if (value.indexOf('-') !== -1) {\n negative = true;\n value = value.replaceAll('-', '');\n }\n\n // find length\n let length = value.length;\n\n for (let i = length - 1, j = 1; i >= 0; i--, j++) {\n newDigit = value[i] + newDigit;\n if (i !== 0 && j % count === 0)\n newDigit = ',' + newDigit;\n }\n if (negative) newDigit = '-' + newDigit;\n return newDigit;\n }\n\n}\n","import { HttpService } from '../http.service';\nimport { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable()\nexport class ContentService {\n contents: any = {};\n contentList: any[] = [];\n _readyContent = new EventEmitter();\n\n constructor(private httpService: HttpService) { }\n\n // get city by province id \n getContentList() {\n this.httpService.get('StringContent/getList').subscribe(\n res => {\n // console.log(res);\n this.contentList = res;\n this.setContents();\n },\n errorRes => {\n\n }\n )\n }\n\n // set contentts\n setContents() {\n // home\n this.contents['headerHome'] = this.contentList.find(item => item.key.id === 1).contentText;\n this.contents['descHome'] = this.contentList.find(item => item.key.id === 2).contentText;\n this.contents['headerCreateFormHome'] = this.contentList.find(item => item.key.id === 3).contentText;\n this.contents['descCreateFormHome'] = this.contentList.find(item => item.key.id === 4).contentText;\n // footer\n this.contents['footerDesc'] = this.contentList.find(item => item.key.id === 5).contentText;\n this.contents['mobile'] = this.contentList.find(item => item.key.id === 6).contentText;\n this.contents['phone'] = this.contentList.find(item => item.key.id === 7).contentText;\n this.contents['email'] = this.contentList.find(item => item.key.id === 8).contentText;\n // tariff\n this.contents['headerTariff'] = this.contentList.find(item => item.key.id === 9).contentText;\n this.contents['descTariff'] = this.contentList.find(item => item.key.id === 10).contentText;\n // address insta\n this.contents['address'] = this.contentList.find(item => item.key.id === 11).contentText;\n this.contents['insta'] = this.contentList.find(item => item.key.id === 12).contentText;\n // about us\n this.contents['titleAboutUs'] = this.contentList.find(item => item.key.id === 13).contentText;\n this.contents['headerAboutUs'] = this.contentList.find(item => item.key.id === 14).contentText;\n this.contents['contextAboutUs'] = this.contentList.find(item => item.key.id === 15).contentText;\n // facility\n this.contents['headerFacility'] = this.contentList.find(item => item.key.id === 16).contentText;\n this.contents['telegram'] = this.contentList.find(item => item.key.id === 17).contentText;\n\n this._readyContent.emit();\n }\n}","import { HttpService } from '../http.service';\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class SiteLogoService {\n logos: any;\n constructor(private httpService: HttpService) { }\n\n getList() {\n this.httpService.get('SiteLogo/getList').subscribe(\n res => { this.logos = res; },\n );\n }\n}","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class CopyService {\n constructor() { }\n // copy array and object\n copyArray(arr: any[]): any {\n if (!arr.length) return;\n\n let newArr = [];\n arr.forEach(item => {\n if (Array.isArray(item)) newArr.push(this.copyArray(item));\n else if (typeof item === 'object') newArr.push(this.copyObject(item));\n else newArr.push(item);\n });\n\n return newArr;\n }\n copyObject(obj: any): any {\n if (!obj) return;\n\n let newObj = {};\n for (let item in obj) {\n if (Array.isArray(obj[item])) newObj[item] = this.copyArray(obj[item]);\n else if (typeof obj[item] === 'object') newObj[item] = this.copyObject(obj[item]);\n else newObj[item] = obj[item];\n }\n\n return newObj;\n }\n}","import { SnackBarService } from './template-service/snackbar.service';\nimport { Injectable } from '@angular/core';\n\nexport interface IErrorMessages {\n '0'?: string;\n '400'?: string;\n '401'?: string;\n '403'?: string;\n '500'?: string;\n}\n\n@Injectable()\nexport class ErrorService {\n\n constructor(private snackbar: SnackBarService) { }\n show(errorStatus: number, defaultMessage?: string, errorMessages: IErrorMessages = {}) {\n switch (errorStatus) {\n case 0:\n if (errorMessages['0']) this.snackbar.open(errorMessages['0'], 'بستن');\n else { let message = 'اتصال به اینترنت خود را بررسی کنید'; this.snackbar.open(message, 'بستن'); }\n return;\n case 400:\n if (defaultMessage || errorMessages['400'])\n this.snackbar.open(defaultMessage ? defaultMessage : errorMessages['400'], 'بستن');\n return;\n case 401:\n if (errorMessages['401']) this.snackbar.open(errorMessages['401'], 'بستن');\n return;\n case 403:\n if (defaultMessage || errorMessages['403'])\n this.snackbar.open(defaultMessage ? defaultMessage : errorMessages['403'], 'بستن');\n return;\n case 500:\n if (errorMessages['500']) this.snackbar.open(errorMessages['500'], 'بستن');\n else { let message = 'مشکلی پیش آمده'; this.snackbar.open(message, 'بستن'); }\n return;\n default:\n break;\n }\n }\n\n}","import { HttpEvent, HttpRequest, HttpClient, HttpEventType } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { finalize } from 'rxjs/operators';\n\n// service\nimport { UrlService } from 'src/app/services/url.service';\nimport { HttpService } from './http.service';\n\nexport interface IFileObject {\n id: string;\n file: Blob;\n fileUrl?: string;\n extension?: string;\n fileName?: string;\n progressBar?: number;\n errorMessage?: string;\n uploading?: boolean;\n downloading?: boolean;\n finished?: boolean;\n}\n\nexport const Extensions = [\n // images\n { title: '.png', mime: 'image/png' },\n { title: '.jpeg , .jpg', mime: 'image/jpeg' },\n { title: '.gif', mime: 'image/gif' },\n // video\n { title: '.avi', mime: 'video/x-msvideof' },\n { title: '.mpeg', mime: 'video/mpeg' },\n { title: '.ogv', mime: 'video/ogg' },\n { title: '.mp4', mime: 'video/mp4' },\n // voice\n { title: '.aac', mime: 'audio/aac' },\n { title: '.mp3', mime: 'audio/mpeg' },\n { title: '.oga', mime: 'audio/ogg' },\n { title: '.wav', mime: 'audio/wav' },\n { title: '.opus', mime: 'audio/opus' },\n // pdf\n { title: '.pdf', mime: 'application/pdf' },\n // office\n { title: '.xls', mime: 'application/vnd.ms-excel' },\n { title: '.xlsx', mime: 'officedocument.spreadsheetml.sheet' },\n { title: '.doc', mime: 'application/msword' },\n { title: '.docx', mime: 'officedocument.wordprocessingml.document' },\n // other\n { title: '.zip', mime: 'application/zip' },\n]\n\n@Injectable()\nexport class FileService {\n // for change page steel uploading show\n items: any[] = [];\n constructor(private http: HttpClient) { }\n\n // get and remove uploading array\n getItem(id: string) {\n return this.items.find(item => item.id === id);\n }\n removeItem(id: string) {\n let index = this.items.findIndex(item => item.id === id);\n this.items.splice(index, 1);\n }\n\n // upload and downlaod\n uploadFile(\n uploadItem: IFileObject,\n filePath: string,\n method: 'PUT' | 'POST' = 'POST',\n params = {},\n dir: string = 'api'\n ): Promise {\n return new Promise((resolve, reject) => {\n // add to upload item array\n uploadItem.uploading = true;\n this.items.push(uploadItem);\n\n // add file to body\n const formData = new FormData();\n formData.append(uploadItem.fileName ? uploadItem.fileName : 'file', uploadItem.file);\n\n // send request\n this.http.request(\n new HttpRequest(method, UrlService.URLS[dir] + filePath, formData, {\n reportProgress: true,\n params: HttpService.ExtractionParams(params)\n })\n ).pipe(finalize(() => {\n uploadItem.uploading = false;\n uploadItem.finished = true;\n this.removeItem(uploadItem.id);\n })).subscribe(\n\n res => {\n if (res.type === HttpEventType.UploadProgress) {\n uploadItem.progressBar = Math.round(res.loaded / res.total * 100);\n }\n else if (res.type === HttpEventType.Response) {\n uploadItem.progressBar = 100;\n uploadItem.finished = true;\n resolve(res);\n }\n },\n error => {\n reject(error);\n }\n );\n });\n }\n downloadFile(\n downloadItem: IFileObject,\n filePath: string,\n method: 'GET' | 'POST' | 'PUT' = 'GET',\n body = {},\n params = {},\n dir: string = 'api'\n ) {\n return new Promise((resolve, reject) => {\n\n // add to upload item array\n downloadItem.downloading = true;\n this.items.push(downloadItem);\n\n // send request\n this.http.request(\n new HttpRequest(method, UrlService.URLS[dir] + filePath, body, {\n reportProgress: true,\n params: HttpService.ExtractionParams(params)\n })\n ).pipe(finalize(() => {\n downloadItem.downloading = false;\n downloadItem.finished = true;\n this.removeItem(downloadItem.id);\n })).subscribe(\n\n res => {\n if (res.type === HttpEventType.DownloadProgress) {\n downloadItem.progressBar = Math.round(res.loaded / res.total * 100);\n }\n else if (res.type === HttpEventType.Response) {\n downloadItem.progressBar = 100;\n downloadItem.finished = true;\n resolve(res);\n }\n },\n error => {\n reject(error);\n }\n );\n });\n }\n\n // convert to blob base64 \n base64ToBlob(base64: string): Blob {\n // for create byte numbers\n const byteCharacters = atob(base64); \n const byteNumbers = new Array(byteCharacters.length);\n for (let i = 0; i < byteCharacters.length; i++) {\n byteNumbers[i] = byteCharacters.charCodeAt(i);\n }\n // create byte array\n const byteArray = new Uint8Array(byteNumbers);\n // create blob\n const blob = new Blob([byteArray]);\n return blob;\n }\n}","import { Injectable } from '@angular/core';\nimport { HttpService } from '../http.service';\nimport { EFontSize, EAlignment, ETheme, EConditionAggregate, EOperation, EApplyFormType } from 'src/app/models/form.enum';\nimport { FileService, IFileObject } from '../file.service';\n\n@Injectable()\nexport class FormService {\n\n constructor(private httpService: HttpService, private fileService: FileService) { }\n\n getAll(): Promise {\n return new Promise((resolve, reject) => {\n this.httpService.get('ApplyForm/getUserDashboardApplyForms').subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n )\n })\n }\n getById(params: { formID: number }) {\n return new Promise((resolve, reject) => {\n this.httpService.get('ApplyForm/viewFormByOwner', params).subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n )\n })\n }\n getByIdForRender(params: { formID: number }) {\n return new Promise((resolve, reject) => {\n this.httpService.get('ApplyForm/getFormToSubmit', params).subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n )\n })\n }\n checkPublishedForm(formId: number) {\n return new Promise((resolve, reject) => {\n this.httpService.get('ApplyForm/checkFormEditPermission/' + formId).subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n )\n });\n }\n\n // create\n create(body: {\n title: string,\n expireDate: string,\n description?: string\n }) {\n return new Promise((resolve, reject) => {\n this.httpService.post('ApplyForm/createNewForm', body).subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n )\n });\n }\n edit(body: {\n id: number,\n style: ETheme,\n bold: boolean,\n title: string,\n fontColor: string,\n showTitle: boolean,\n direction: boolean,\n expireDate: string,\n fontSize: EFontSize,\n description: string,\n lablePosition: boolean,\n titleAlignment: EAlignment,\n }) {\n return new Promise((resolve, reject) => {\n this.httpService.put('ApplyForm/edit', body).subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n )\n });\n }\n delete(id: number) {\n return new Promise((resolve, reject) => {\n this.httpService.delete('ApplyForm/delete/' + id).subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n )\n })\n }\n copy(formId: number) {\n return new Promise((resolve, reject) => {\n this.httpService.post('ApplyForm/copyByOwner/' + formId).subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n );\n });\n }\n\n\n // publish\n publish(id: number) {\n return new Promise((resolve, reject) => {\n this.httpService.put('ApplyForm/saveFormAndGenerateLink/' + id).subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n );\n });\n }\n\n // submit\n submit(body: {\n formID: number,\n components: {\n componentName: string,\n value: string\n }[]\n }) {\n return new Promise((resolve, reject) => {\n this.httpService.post('ApplyFormSubmit/sunmitForm', body).subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n );\n });\n }\n\n // for change form type\n changeFormType(formId: number, params: { formType: EApplyFormType }) {\n return new Promise((resolve, reject) => {\n this.httpService.put('ApplyForm/changeFormType/' + formId, null, params).subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n );\n });\n }\n\n // get submitted forms\n getSubmittedForms(params: { formID: number }, body: {\n conditionAggregateType: EConditionAggregate,\n members: {\n operation: EOperation,\n componentID: number,\n isTextValue: boolean,\n firstValue: string,\n secondValue: string\n }[]\n }[]) {\n return new Promise((resolve, reject) => {\n this.httpService.post('ApplyFormSubmit/getSubmittedForms', body, params).subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n );\n });\n }\n getSubmittedFormInfo(params: { applyFormSubmitID: number }) {\n return new Promise((resolve, reject) => {\n this.httpService.get('ApplyFormSubmit/getSubmittedForm', params).subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n );\n });\n }\n\n // for prepared form \n getPreparedForms() {\n return new Promise((resolve, reject) => {\n this.httpService.get('ApplyForm/getActiveTemplateList').subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n );\n });\n }\n selectPreparedForm(params: { templateFormID: number }) {\n return new Promise((resolve, reject) => {\n this.httpService.post('ApplyForm/useTemplateForm', null, params).subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n );\n });\n }\n\n // enable disable form \n disableForm(formId: number, params: { disable: boolean }) {\n return new Promise((resolve, reject) => {\n this.httpService.put('ApplyForm/disableByOwner/' + formId, null, params).subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n );\n });\n }\n\n // get exel submitted forms\n getExcelSubmittedForms(fileObject: IFileObject, body: { SubmitIDs: number[] }) {\n return this.fileService.downloadFile(\n fileObject,\n 'ApplyFormSubmit/getExcel',\n 'POST',\n body\n );\n }\n}","import { Injectable, Renderer2 } from \"@angular/core\";\nimport { BehaviorSubject } from \"rxjs\";\n\n@Injectable({ providedIn: 'root' })\nexport class GloabalLoader {\n private static _loading = new BehaviorSubject(true);\n\n // for component\n static get show() { return this._loading.asObservable(); }\n \n static set loading(show: boolean) {\n // for component\n this._loading.next(show);\n\n // for base loader\n if(show) {\n document.getElementById('base-loader').style.display = null;\n }\n else { \n setTimeout(() => {\n if (this._loading.value) return;\n document.getElementById('base-loader').style.display = 'none';\n }, 1000);\n }\n }\n}","import { HttpClient, HttpParams } from \"@angular/common/http\";\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { UrlService } from 'src/app/services/url.service';\n\n\nexport interface ParamsInterface {\n [index: string]: any;\n}\n\n@Injectable()\nexport class HttpService {\n // refersh token not use this base url\n constructor(private http: HttpClient) { }\n\n // for Extraction Params\n static ExtractionParams(params: ParamsInterface): HttpParams {\n var extractedParams: HttpParams = new HttpParams();\n Object.keys(params).forEach(\n key => { extractedParams = extractedParams.append(key, params[key].toString()); }\n );\n return extractedParams;\n }\n\n // get request\n get(url: string, params: ParamsInterface = {}, dir: string = 'api'): Observable {\n return this.http.get(UrlService.URLS[dir] + url, {\n params: HttpService.ExtractionParams(params),\n })\n }\n\n // get request\n post(url: string, body: any = {}, params: ParamsInterface = {}, dir: string = 'api'): Observable {\n return this.http.post(UrlService.URLS[dir] + url, body, {\n params: HttpService.ExtractionParams(params),\n })\n }\n\n // put request\n put(url: string, body: any = {}, params: ParamsInterface = {}, dir: string = 'api'): Observable {\n return this.http.put(UrlService.URLS[dir] + url, body, {\n params: HttpService.ExtractionParams(params),\n })\n }\n\n // delete request\n delete(url: string, params: ParamsInterface = {}, dir: string = 'api'): Observable {\n return this.http.delete(UrlService.URLS[dir] + url, {\n params: HttpService.ExtractionParams(params),\n })\n }\n}\n","import { MatDialog } from '@angular/material/dialog';\nimport { Injectable } from '@angular/core';\nimport { mimeTypes } from 'mime-wrapper';\n\n// service\nimport { UrlService } from 'src/app/services/url.service';\nimport { HttpService } from './http.service';\n\n// components\nimport { ShowImageComponent } from '../components/show-image/show-image.component';\nimport { ShowAudioComponent } from '../components/show-audio/show-audio.component';\nimport { ShowVideoComponent } from '../components/show-video/show-video.component';\nimport { ShowPdfComponent } from '../components/show-pdf/show-pdf.component';\n\n\n@Injectable()\nexport class ShowFileService {\n // for change page steel uploading show\n constructor(private dialog: MatDialog, private urlService: UrlService) { }\n // show file \n showFile(fileUrl: string, dir: string) {\n switch (mimeTypes.getType(fileUrl).split('/')[0]) {\n case 'image': this.dialog.open(ShowImageComponent, { data: { src: this.urlService.getUrl(dir) + fileUrl } }); break;\n case 'audio': this.dialog.open(ShowAudioComponent, { data: { src: this.urlService.getUrl(dir) + fileUrl } }); break;\n case 'video': this.dialog.open(ShowVideoComponent, { data: { src: this.urlService.getUrl(dir) + fileUrl } }); break;\n case 'application': this.dialog.open(ShowPdfComponent, { data: { src: this.urlService.getUrl(dir) + fileUrl } }); break;\n default: break;\n }\n }\n}","import { Injectable } from '@angular/core';\nimport { HttpService } from '../http.service';\nimport { EFontSize, EAlignment, ETheme, EConditionAggregate, EOperation } from 'src/app/models/form.enum';\n\n@Injectable()\nexport class SurveyFormService {\n\n constructor(private httpService: HttpService) { }\n\n getAll(): Promise {\n return new Promise((resolve, reject) => {\n this.httpService.get('SurveyForm/getUserDashboardApplyForms').subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n )\n })\n }\n getById(params: { formID: number }) {\n return new Promise((resolve, reject) => {\n this.httpService.get('SurveyForm/viewFormByOwner', params).subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n )\n })\n }\n getByIdForRender(params: { formID: number }) {\n return new Promise((resolve, reject) => {\n this.httpService.get('SurveyForm/getFormToSubmit', params).subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n )\n })\n }\n\n // for get categories form\n getCategories() {\n return new Promise((resolve, reject) => {\n this.httpService.get('SurveyCategory/getList').subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n )\n });\n }\n\n // check form before published\n checkPublishedForm(formId: number) {\n return new Promise((resolve, reject) => {\n this.httpService.get('SurveyForm/checkFormEditPermission/' + formId).subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n )\n });\n }\n\n // create\n create(body: {\n title: string,\n expireDate: string,\n categoryID?: number,\n description?: string,\n }) {\n return new Promise((resolve, reject) => {\n this.httpService.post('SurveyForm/createNewForm', body).subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n )\n });\n }\n edit(body: {\n id: number,\n style: ETheme,\n bold: boolean,\n title: string,\n fontColor: string,\n showTitle: boolean,\n direction: boolean,\n expireDate: string,\n fontSize: EFontSize,\n description: string,\n lablePosition: boolean,\n titleAlignment: EAlignment,\n }) {\n return new Promise((resolve, reject) => {\n this.httpService.put('SurveyForm/edit', body).subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n )\n });\n }\n delete(id: number) {\n return new Promise((resolve, reject) => {\n this.httpService.delete('SurveyForm/delete/' + id).subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n )\n })\n }\n copy(formId: number) {\n return new Promise((resolve, reject) => {\n this.httpService.post('SurveyForm/copyByOwner/' + formId).subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n );\n });\n }\n\n // publish\n publish(id: number) {\n return new Promise((resolve, reject) => {\n this.httpService.put('SurveyForm/saveFormAndGenerateLink/' + id).subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n );\n });\n }\n\n // form submit\n submit(body: {\n formID: number,\n submitTime?: number,\n components: {\n componentName: string,\n value: string\n }[]\n }) {\n return new Promise((resolve, reject) => {\n this.httpService.post('SurveyFormSubmit/sunmitForm', body).subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n );\n });\n }\n\n // get statistics data\n getGeneralStatistics(formId: number) {\n return new Promise((resolve, reject) => {\n this.httpService.get('SurveyFormSubmit/getGeneralStatistics/' + formId).subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n );\n });\n }\n getResponseStatistics(formId: number, body: {\n conditionAggregateType: EConditionAggregate,\n members: {\n operation: EOperation,\n componentID: number,\n isTextValue: boolean,\n firstValue: string,\n secondValue: string\n }[]\n }[]) {\n return new Promise((resolve, reject) => {\n this.httpService.post('SurveyFormSubmit/getQuestionStatisticsView/' + formId, body).subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n );\n });\n }\n\n // get submitted forms\n getSubmittedForms(formId: number, page: number, count: number, body: {\n conditionAggregateType: EConditionAggregate,\n members: {\n operation: EOperation,\n componentID: number,\n isTextValue: boolean,\n firstValue: string,\n secondValue: string\n }[]\n }[]) {\n return new Promise((resolve, reject) => {\n this.httpService.post('SurveyFormSubmit/getSubmittedFormList/' + formId, body).subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n );\n });\n }\n getSubmittedFormInfo(formId: number) {\n return new Promise((resolve, reject) => {\n this.httpService.get('SurveyFormSubmit/getSubmitedForm/' + formId).subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n );\n });\n }\n\n // mark form \n markSubmittedForm(answerId: number, params: { marked: boolean }) {\n return new Promise((resolve, reject) => {\n this.httpService.put('SurveyFormSubmit/setMarked/' + answerId, null, params).subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n );\n });\n }\n\n // for prepared form \n getPreparedForms() {\n return new Promise((resolve, reject) => {\n this.httpService.get('SurveyForm/getActiveTemplateList').subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n );\n });\n }\n selectPreparedForm(params: { templateFormID: number }) {\n return new Promise((resolve, reject) => {\n this.httpService.post('SurveyForm/useTemplateForm', null, params).subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n );\n });\n }\n\n // enable disable form \n disableForm(formId: number, params: { disable: boolean }) {\n return new Promise((resolve, reject) => {\n this.httpService.put('SurveyForm/disableByOwner/' + formId, null, params).subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n );\n });\n }\n}","import { ActivatedRoute, ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';\nimport { TokenService } from '../token.service';\nimport { UserService } from '../user.service';\nimport { Injectable } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { UrlService } from '../url.service';\n\nexport const ADMIN_PAGES = [\n '/form/create-prepared-form',\n '/form/display-prepared-form',\n '/survey-form/create-prepared-form',\n '/survey-form/display-prepared-form',\n]\n\n@Injectable()\nexport class ActiveAdminPages implements CanActivate {\n\n constructor(\n private tokenService: TokenService,\n private route: ActivatedRoute,\n private router: Router,\n ) { }\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise | boolean {\n return new Promise(resolve => {\n let queryParams = route.queryParams;\n ;\n // chack token admin\n if (queryParams.token) {\n this.tokenService.setAdminToken(queryParams.token);\n // remove token from url\n let newQueryParams = { ...queryParams };\n delete newQueryParams.token;\n // find string params\n let params = new URLSearchParams();\n for (const param in newQueryParams) {\n if (Object.prototype.hasOwnProperty.call(newQueryParams, param)) {\n params.set(param, newQueryParams[param]);\n }\n }\n // navigate to url without token\n let index = state.url.indexOf('?');\n this.router.navigate([state.url.slice(0, index !== -1 ? index : state.url.length)], { queryParams: newQueryParams });\n window.history.replaceState(null, 'فرم ساز', state.url.slice(0, index !== -1 ? index : state.url.length) + '?' + params.toString());\n \n // console.log(this.router, this.route, route);\n // window.location.href = state.url.slice(0, index !== -1 ? index : state.url.length) + '?' + params.toString();\n }\n else if (this.tokenService.getAdminToken()) {\n // window.history.replaceState(null, 'فرم ساز', window.location.href);\n this.tokenService.checkToken().then(res => resolve(true));\n }\n else {\n window.location.href = UrlService.PANEL_URLS.login;\n }\n });\n }\n}","import { Injectable } from '@angular/core';\nimport { CanActivate, Router } from '@angular/router';\nimport { TokenService } from '../token.service';\nimport { UserService } from '../user.service';\n\n@Injectable()\nexport class ActiveAuthPages implements CanActivate {\n constructor(\n private tokenService: TokenService,\n private userService: UserService,\n private router: Router,\n ) { }\n canActivate(): Promise {\n return new Promise(resolve => {\n // token check\n if (!this.tokenService.getToken()) { resolve(true); }\n // user check\n else if (this.userService.user) {\n this.router.navigate(['/pages/home']);\n resolve(false);\n }\n // wait for get user\n else {\n this.userService.getUser();\n let _readyUser = this.userService._readyUser.subscribe(\n () => {\n ;\n _readyUser.unsubscribe();\n this.router.navigate(['/pages/home']);\n resolve(false);\n },\n () => {\n ;\n _readyUser.unsubscribe();\n resolve(true);\n }\n );\n }\n });\n }\n}","import { Injectable } from '@angular/core';\nimport { CanActivate, Router } from '@angular/router';\nimport { TokenService } from '../token.service';\nimport { UserService } from '../user.service';\n\n@Injectable()\nexport class ActiveUserPages implements CanActivate {\n constructor(\n private tokenService: TokenService,\n private userService: UserService,\n private router: Router,\n ) { }\n canActivate(): Promise {\n return new Promise(resolve => {\n // token check\n if (!this.tokenService.getToken()) { this.redirectLogin(); resolve(false); }\n // user check\n else if (this.userService.user) { resolve(true); }\n // wait for get user\n else {\n this.userService.getUser();\n let _readyUser = this.userService._readyUser.subscribe(\n () => {\n _readyUser.unsubscribe();\n resolve(true);\n },\n () => {\n _readyUser.unsubscribe();\n this.redirectLogin();\n resolve(false);\n }\n );\n }\n });\n }\n redirectLogin() {\n this.router.navigate(['/auth/login-register']);\n }\n}","import { style, state, transition, animate } from '@angular/animations';\n\n// style toggle animatoin\nexport const slideToggle = [\n state('slideUp', style({\n 'height': '0',\n })),\n transition('slideDown <=> slideUp', animate(400)),\n];\nexport const slideToggleAuto = [\n state('void', style({\n 'height': '0',\n 'margin': '0',\n 'padding': '0',\n 'minHeight': '0',\n 'overflow': 'hidden',\n })),\n transition('void <=> *', animate(400))\n];\nexport const widthToggleAuto = [\n state('void', style({\n 'width': '0',\n 'margin': '0',\n 'padding': '0',\n 'minWidth': '0',\n 'overflow': 'hidden',\n })),\n transition('void <=> *', animate(400))\n];\n\nexport const slideToggleIcon = [\n state('slideDown', style({\n 'transform': 'translate(-50%, -50%) rotateZ(180deg)',\n })),\n transition('slideDown <=> slideUp', animate(400)),\n];\nexport const halfRotateSlideToggleIcon = [\n state('slideDown', style({\n 'transform': 'rotateZ(-90deg)',\n })),\n transition('slideDown <=> slideUp', animate(400)),\n];\n\n// functions\nexport const getSlideToggleAuto = function (speed: number = 400): any[] {\n return [\n state('void', style({\n 'height': '0',\n 'margin': '0',\n 'padding': '0',\n 'minHeight': '0',\n 'overflow': 'hidden',\n })),\n transition('void <=> *', animate(speed))\n ];\n}\nexport const getShowWidthAuto = function (speed: number = 400): any[] {\n return [\n state('void', style({\n 'margin': '0',\n 'width': '0',\n 'padding': '0',\n 'overflow': 'hidden',\n })),\n transition('* => void', animate(speed))\n ];\n}\nexport const getWidthToggleAuto = function (speed: number = 400): any[] {\n return [\n state('void', style({\n 'width': '0',\n 'margin': '0',\n 'padding': '0',\n 'minWidth': '0',\n 'overflow': 'hidden',\n })),\n transition('void <=> *', animate(speed))\n ];\n}\n\n\n// fade and show animations\nexport const showFade = [\n state('void', style({\n 'opacity': '0',\n })),\n transition('void <=> *', animate(400)),\n];\nexport const getShowFade = function (speed: number = 400): any[] {\n return [\n state('void', style({\n 'opacity': '0',\n })),\n transition('void <=> *', animate(speed)),\n ];\n}\n\n// rotate \nexport const rotateCreateAuto = [\n state('void', style({\n 'transform': 'scale(.6) rotateZ(180deg)',\n })),\n transition('void => *', animate(300))\n];\nexport const rotateReverseCreateAuto = [\n state('void', style({\n 'transform': 'scale(.6) rotateZ(-180deg)',\n })),\n transition('void => *', animate(300))\n];\nexport const rotateVoidAuto = [\n state('void', style({\n 'transform': 'scale(.6) rotateZ(180deg)'\n })),\n transition('* => void', animate(300))\n];","import { Injectable } from '@angular/core';\nimport { UrlService } from '../url.service';\n\n@Injectable()\nexport class BackgroundService {\n static setBackground(form: any, dir: string, isFullpage: boolean = true) {\n if (!form.backgroundImageUrl) form.backgroundImageStyle = {};\n else {\n form.backgroundImageStyle = {\n 'backgroundImage': 'url(\\'' + UrlService.URLS[dir] + form.backgroundImageUrl + '\\')',\n 'backgroundAttachment': form.fixedBackground ? isFullpage ? 'fixed' : 'scroll' : '',\n 'backgroundPosition': form.centeredBackground ? 'center ' : 'top',\n 'backgroundRepeat': form.repeatBackground ? 'repeat' : 'no-repeat',\n 'backgroundSize': form.coverBackground ? 'cover' : '',\n }\n }\n }\n}","import { ElementRef, Inject, Injectable, NgZone, PLATFORM_ID } from '@angular/core';\n\n// for chart\nimport * as am4core from \"@amcharts/amcharts4/core\";\nimport * as am4charts from \"@amcharts/amcharts4/charts\";\n// import am4themes_animated from \"@amcharts/amcharts4/themes/animated\";\n// import am4themes_material from \"@amcharts/amcharts4/themes/material\";\nimport am4themes_kelly from \"@amcharts/amcharts4/themes/kelly\";\nimport { element } from 'protractor';\n\n// interface for series\nexport interface ISeriesChart {\n title: string;\n dataField: string;\n}\n\n// interface for chart data\nexport interface IChartData {\n x: string | number;\n y: string | number;\n}\n\n// interface for multi items chart data\nexport interface IMultiItemChartData {\n category: string | number;\n [index: string]: string | number;\n}\n\n@Injectable()\nexport class ChartService {\n constructor(@Inject(PLATFORM_ID) private platformId, private zone: NgZone) { }\n // global setting chart \n setGlobalSetting(chart: any) {\n chart.logo.disabled = true;\n }\n // max width label equal to column\n findLabelWidth(ev) {\n let axis = ev.target;\n let cellWidth = axis.pixelWidth / (axis.endIndex - axis.startIndex);\n axis.renderer.labels.template.maxWidth = Math.floor(cellWidth * axis.zoomFactor);\n }\n\n // line charts\n createLineChart(\n config: { element: ElementRef; },\n data: IChartData[],\n postLabel: string = '',\n ) {\n // use theme\n am4core.useTheme(am4themes_kelly);\n\n // create chart and set global setting\n let chart = am4core.create(config.element.nativeElement, am4charts.XYChart);\n this.setGlobalSetting(chart);\n chart.rtl = true;\n\n // set data\n chart.data = data;\n\n // set xAxis\n let categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = 'x';\n categoryAxis.tooltip.disabled = true;\n // show grid location\n categoryAxis.renderer.grid.template.hidden = true;\n // start and end grid set\n // categoryAxis.startLocation = 0.2;\n // categoryAxis.endLocation = 0.8;\n\n // set yAxis\n let valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n valueAxis.tooltip.disabled = true;\n valueAxis.dataFields.data = 'y';\n\n // label\n let label = categoryAxis.renderer.labels.template;\n categoryAxis.events.on(\"sizechanged\", this.findLabelWidth);\n categoryAxis.events.on(\"endchanged\", this.findLabelWidth);\n categoryAxis.renderer.minGridDistance = 20;\n label.truncate = true;\n\n // create series for show data\n let series = chart.series.push(new am4charts.LineSeries());\n series.dataFields.categoryX = 'x';\n series.dataFields.valueY = 'y';\n series.strokeWidth = 3;\n // for curved\n series.tensionX = .8;\n // tooltip series\n series.tooltipHTML = '{categoryX} : ({valueY.percent}%) {valueY} ' + postLabel + ' ';\n\n // set bullet\n let bullet = series.bullets.push(new am4charts.CircleBullet());\n bullet.strokeWidth = 1;\n\n // cursor\n chart.cursor = new am4charts.XYCursor;\n\n // scrollabe\n chart.scrollbarX = new am4core.Scrollbar();\n chart.scrollbarX.marginBottom = 20;\n\n return chart;\n }\n\n // multi line charts\n createMultiLineChart(\n config: { element: ElementRef; },\n chartSeries: ISeriesChart[],\n data: IMultiItemChartData[],\n postLabel: string = '',\n ) {\n // use theme\n am4core.useTheme(am4themes_kelly);\n\n // create chart and set global setting\n let chart = am4core.create(config.element.nativeElement, am4charts.XYChart);\n this.setGlobalSetting(chart);\n // chart.colors.step = 3;\n chart.rtl = true;\n\n // set data\n chart.data = data;\n\n // set xAxis\n let categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = 'category';\n categoryAxis.tooltip.disabled = true;\n // show grid location\n categoryAxis.renderer.grid.template.hidden = true;\n\n // label\n let label = categoryAxis.renderer.labels.template;\n categoryAxis.events.on(\"sizechanged\", this.findLabelWidth);\n categoryAxis.events.on(\"endchanged\", this.findLabelWidth);\n categoryAxis.renderer.minGridDistance = 20;\n label.truncate = true;\n\n // set yAxis\n let valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n valueAxis.tooltip.disabled = true;\n\n // create series for show data\n if (chartSeries) {\n for (let seriesItem of chartSeries) {\n let series = chart.series.push(new am4charts.LineSeries());\n\n // set data\n series.dataFields.valueY = seriesItem.dataField;\n series.dataFields.categoryX = 'category';\n series.name = seriesItem.title;\n series.strokeWidth = 3;\n // for curved\n series.tensionX = .8;\n\n // for get percent\n series.calculatePercent = true;\n\n // tooltip series\n series.tooltipHTML = '{categoryX} - {name} : ({valueY.percent}%) {valueY} ' + postLabel + ' ';\n\n // set bullet\n let bullet = series.bullets.push(new am4charts.CircleBullet());\n bullet.strokeWidth = 1;\n }\n }\n\n // cursor\n chart.cursor = new am4charts.XYCursor;\n\n // scrollabe\n chart.scrollbarX = new am4core.Scrollbar();\n chart.scrollbarX.marginBottom = 20;\n\n return chart;\n }\n\n // bar chart\n createBarChart(\n config: { element: ElementRef; },\n data: IChartData[],\n postLabel: string = '',\n ) {\n // use theme\n am4core.useTheme(am4themes_kelly);\n \n // create chart and set global setting\n let chart = am4core.create(config.element.nativeElement, am4charts.XYChart);\n this.setGlobalSetting(chart);\n chart.rtl = true;\n\n // set data\n chart.data = data;\n\n // set xAxis\n let categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = 'x';\n categoryAxis.tooltip.disabled = true;\n // show grid location\n categoryAxis.renderer.grid.template.hidden = true;\n\n // label\n let label = categoryAxis.renderer.labels.template;\n categoryAxis.events.on(\"sizechanged\", this.findLabelWidth);\n categoryAxis.events.on(\"endchanged\", this.findLabelWidth);\n categoryAxis.renderer.minGridDistance = 20;\n label.truncate = true; \n\n // set yAxis\n let valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n valueAxis.tooltip.disabled = true;\n valueAxis.dataFields.data = 'y';\n\n // create series for show data\n let series = chart.series.push(new am4charts.ColumnSeries());\n series.dataFields.categoryX = 'x';\n series.dataFields.valueY = 'y';\n series.strokeWidth = 0;\n // set corner radius for columns\n series.columns.template.column.cornerRadiusTopLeft = 4;\n series.columns.template.column.cornerRadiusTopRight = 4;\n\n // for get percent\n series.calculatePercent = true;\n\n // tooltip series\n series.tooltipHTML = '{categoryX} : ({valueY.percent}%) {valueY} ' + postLabel + ' ';\n // for change each color column in series\n series.columns.template.adapter.add(\"fill\", function(fill, target) {\n return chart.colors.getIndex(target.dataItem.index);\n });\n\n // cursor\n chart.cursor = new am4charts.XYCursor;\n\n // scrollabe\n chart.scrollbarX = new am4core.Scrollbar();\n chart.scrollbarX.marginBottom = 20;\n\n return chart;\n }\n\n // multi bar chart\n createMultiBarChart(\n config: { element: ElementRef; },\n chartSeries: ISeriesChart[],\n data: IMultiItemChartData[],\n postLabel: string = '',\n ) {\n // use theme\n am4core.useTheme(am4themes_kelly);\n\n // create chart and set global setting\n let chart = am4core.create(config.element.nativeElement, am4charts.XYChart);\n this.setGlobalSetting(chart);\n // chart.colors.step = 3;\n chart.rtl = true;\n\n // set data\n chart.data = data;\n\n // set xAxis\n let categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = 'category';\n categoryAxis.tooltip.disabled = false;\n // show grid location for series\n categoryAxis.renderer.cellEndLocation = 0.9\n categoryAxis.renderer.cellStartLocation = 0.1\n categoryAxis.renderer.grid.template.location = 0;\n\n // label\n let label = categoryAxis.renderer.labels.template;\n categoryAxis.events.on(\"sizechanged\", this.findLabelWidth);\n categoryAxis.events.on(\"endchanged\", this.findLabelWidth);\n categoryAxis.renderer.minGridDistance = 20;\n label.truncate = true;\n\n // set yAxis\n let valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n valueAxis.tooltip.disabled = false;\n valueAxis.min = 0;\n\n // for center columns after show and hide\n let arrangeColumns = function () {\n // get first series\n let series = chart.series.getIndex(0);\n\n // find width between cells\n let w = 1 - categoryAxis.renderer.cellStartLocation - (1 - categoryAxis.renderer.cellEndLocation);\n if (series.dataItems.length > 1) {\n let x0 = categoryAxis.getX(series.dataItems.getIndex(0), \"categoryX\");\n let x1 = categoryAxis.getX(series.dataItems.getIndex(1), \"categoryX\");\n let delta = ((x1 - x0) / chart.series.length) * w;\n if (am4core.isNumber(delta)) {\n let middle = chart.series.length / 2;\n\n let newIndex = 0;\n chart.series.each(function (series) {\n if (!series.isHidden && !series.isHiding) {\n series.dummyData = newIndex;\n newIndex++;\n }\n else {\n series.dummyData = chart.series.indexOf(series);\n }\n })\n let visibleCount = newIndex;\n let newMiddle = visibleCount / 2;\n\n chart.series.each(function (series) {\n let trueIndex = chart.series.indexOf(series);\n let newIndex = series.dummyData;\n\n let dx = (newIndex - trueIndex + middle - newMiddle) * delta\n\n series.animate({ property: \"dx\", to: dx }, series.interpolationDuration, series.interpolationEasing);\n series.bulletsContainer.animate({ property: \"dx\", to: dx }, series.interpolationDuration, series.interpolationEasing);\n })\n }\n }\n }\n\n // create series and show data\n if (chartSeries) {\n for (let seriesItem of chartSeries) {\n let series = chart.series.push(new am4charts.ColumnSeries());\n\n // set data\n series.dataFields.valueY = seriesItem.dataField;\n series.dataFields.categoryX = 'category';\n series.name = seriesItem.title;\n // set radius\n series.columns.template.column.cornerRadiusTopLeft = 4;\n series.columns.template.column.cornerRadiusTopRight = 4;\n\n // for get percent\n series.calculatePercent = true;\n\n // after show and hide with legend set center columns\n series.events.on(\"hidden\", arrangeColumns);\n series.events.on(\"shown\", arrangeColumns);\n\n // set tooltip\n series.tooltipHTML = '{categoryX} - {name} : ({valueY.percent}%) {valueY} ' + postLabel + ' ';\n }\n }\n\n // cursor\n chart.cursor = new am4charts.XYCursor;\n\n // scrollabe\n chart.scrollbarX = new am4core.Scrollbar();\n chart.scrollbarX.marginBottom = 20;\n\n // leged \n chart.legend = new am4charts.Legend();\n\n return chart;\n }\n\n // horizontal bar chart\n createHorizontalBarChart(\n config: { element: ElementRef; },\n data: IChartData[],\n postLabel: string = '',\n ) {\n // use theme\n am4core.useTheme(am4themes_kelly);\n\n // create chart and set global setting\n let chart = am4core.create(config.element.nativeElement, am4charts.XYChart);\n this.setGlobalSetting(chart);\n chart.rtl = true;\n\n // set data\n chart.data = data;\n\n // set xAxis\n let categoryAxis = chart.yAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = 'x';\n categoryAxis.tooltip.disabled = true;\n // show grid location\n categoryAxis.renderer.grid.template.hidden = true;\n\n // label\n let label = categoryAxis.renderer.labels.template;\n categoryAxis.renderer.minGridDistance = 20;\n label.truncate = true;\n label.maxWidth = 120;\n\n // set yAxis\n let valueAxis = chart.xAxes.push(new am4charts.ValueAxis());\n valueAxis.tooltip.disabled = true;\n valueAxis.dataFields.data = 'y';\n\n // create series for show data\n let series = chart.series.push(new am4charts.ColumnSeries());\n series.dataFields.categoryY = 'x';\n series.dataFields.valueX = 'y';\n series.strokeWidth = 0;\n // set corner radius for columns\n series.columns.template.column.cornerRadiusBottomRight = 4;\n series.columns.template.column.cornerRadiusTopRight = 4;\n\n // for get percent\n series.calculatePercent = true;\n\n // tooltip series\n series.tooltipHTML = '{categoryY} : ({valueX.percent}%) {valueX} ' + postLabel + ' ';\n // for change each color column in series\n series.columns.template.adapter.add(\"fill\", function (fill, target) {\n return chart.colors.getIndex(target.dataItem.index);\n });\n\n // cursor\n chart.cursor = new am4charts.XYCursor;\n\n // scrollabe\n chart.scrollbarY = new am4core.Scrollbar();\n chart.scrollbarY.marginLeft = 20;\n\n return chart;\n }\n\n // horizontal multi bar chart\n createHorizontalMultiBarChart(\n config: { element: ElementRef; },\n chartSeries: ISeriesChart[],\n data: IMultiItemChartData[],\n postLabel: string = '',\n ) {\n // use theme\n am4core.useTheme(am4themes_kelly);\n\n // create chart and set global setting\n let chart = am4core.create(config.element.nativeElement, am4charts.XYChart);\n this.setGlobalSetting(chart);\n // chart.colors.step = 3;\n chart.rtl = true;\n\n // set data\n chart.data = data;\n\n // set xAxis\n let categoryAxis = chart.yAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = 'category';\n categoryAxis.tooltip.disabled = false;\n // show grid location for series\n categoryAxis.renderer.cellEndLocation = 0.9\n categoryAxis.renderer.cellStartLocation = 0.1\n categoryAxis.renderer.grid.template.location = 0;\n\n // label\n let label = categoryAxis.renderer.labels.template;\n categoryAxis.renderer.minGridDistance = 20;\n label.truncate = true;\n label.maxWidth = 120;\n\n // set yAxis\n let valueAxis = chart.xAxes.push(new am4charts.ValueAxis());\n valueAxis.tooltip.disabled = false;\n valueAxis.min = 0;\n // hide grid value axis\n // valueAxis.renderer.grid.template.hidden = true;\n\n let arrangeColumns = function () {\n let series = chart.series.getIndex(0);\n\n let w = 1 - categoryAxis.renderer.cellStartLocation - (1 - categoryAxis.renderer.cellEndLocation);\n if (series.dataItems.length > 1) {\n let x0 = categoryAxis.getY(series.dataItems.getIndex(0), \"categoryY\");\n let x1 = categoryAxis.getY(series.dataItems.getIndex(1), \"categoryY\");\n let delta = ((x1 - x0) / chart.series.length) * w;\n if (am4core.isNumber(delta)) {\n let middle = chart.series.length / 2;\n\n let newIndex = 0;\n chart.series.each(function (series) {\n if (!series.isHidden && !series.isHiding) {\n series.dummyData = newIndex;\n newIndex++;\n }\n else {\n series.dummyData = chart.series.indexOf(series);\n }\n })\n let visibleCount = newIndex;\n let newMiddle = visibleCount / 2;\n\n chart.series.each(function (series) {\n let trueIndex = chart.series.indexOf(series);\n let newIndex = series.dummyData;\n\n let dy = (newIndex - trueIndex + middle - newMiddle) * delta\n\n series.animate({ property: \"dy\", to: dy }, series.interpolationDuration, series.interpolationEasing);\n series.bulletsContainer.animate({ property: \"dy\", to: dy }, series.interpolationDuration, series.interpolationEasing);\n })\n }\n }\n }\n\n // create series and show data\n if (chartSeries) {\n for (let seriesItem of chartSeries) {\n let series = chart.series.push(new am4charts.ColumnSeries());\n\n // set data\n series.dataFields.valueX = seriesItem.dataField;\n series.dataFields.categoryY = 'category';\n series.name = seriesItem.title;\n // set radius\n series.columns.template.column.cornerRadiusBottomRight = 4;\n series.columns.template.column.cornerRadiusTopRight = 4;\n\n // for get percent\n series.calculatePercent = true;\n\n // after show and hide with legend set center columns\n series.events.on(\"hidden\", arrangeColumns);\n series.events.on(\"shown\", arrangeColumns);\n\n // set tooltip\n series.tooltipHTML = '{categoryY} - {name} : ({valueX.percent}%) {valueX} ' + postLabel + ' ';\n }\n }\n\n // cursor\n chart.cursor = new am4charts.XYCursor;\n\n // scrollabe\n chart.scrollbarY = new am4core.Scrollbar();\n chart.scrollbarY.marginLeft = 20;\n\n // leged \n chart.legend = new am4charts.Legend();\n\n return chart;\n }\n\n // create area chart\n createAreaChart(\n config: { element: ElementRef; },\n chartSeries: ISeriesChart[],\n data: IMultiItemChartData[],\n postLabel: string = '',\n ) {\n // use theme\n am4core.useTheme(am4themes_kelly);\n\n // create chart and set global setting\n let chart = am4core.create(config.element.nativeElement, am4charts.XYChart);\n this.setGlobalSetting(chart);\n // for series change color steps\n // chart.colors.step = 3;\n chart.rtl = true;\n\n // set data\n chart.data = data;\n\n // set xAxis\n let categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = 'category';\n categoryAxis.tooltip.disabled = true;\n // for set fullWidth area\n categoryAxis.renderer.grid.template.location = 0;\n categoryAxis.startLocation = 0.5;\n categoryAxis.endLocation = 0.5;\n\n // set yAxis\n let valueAxis = chart.yAxes.push(new am4charts.ValueAxis());\n valueAxis.tooltip.disabled = true;\n // set min and max and calculate form total values for get percent\n valueAxis.min = 0;\n valueAxis.max = 100;\n valueAxis.strictMinMax = true;\n valueAxis.calculateTotals = true;\n // set after label value axis percent\n valueAxis.renderer.labels.template.adapter.add(\"text\", function (text) {\n return text + \"%\";\n });\n\n // create series\n if (chartSeries) {\n for (let seriesItem of chartSeries) {\n let series = chart.series.push(new am4charts.LineSeries());\n\n\n // set data\n series.dataFields.valueY = seriesItem.dataField;\n series.dataFields.categoryX = 'category';\n series.name = seriesItem.title;\n series.strokeWidth = 3;\n // for total percent show in value y show in hover \n series.dataFields.valueYShow = 'totalPercent';\n\n // for get percent\n series.calculatePercent = true;\n\n // set stroke color for series\n series.stroke = am4core.color('#ffffff');\n\n // set series formatt\n // series.numberFormatter.numberFormat = '#,###.';\n\n // for border area and bullet\n let bullet = series.bullets.push(new am4charts.CircleBullet());\n bullet.stroke = am4core.color('#ffffff');\n bullet.strokeWidth = 2;\n\n // show all series in hover\n series.stacked = true;\n\n // set opacity for background area\n series.fillOpacity = .9;\n\n // set tooltip\n series.tooltipHTML = '{categoryX} - {name} : ({valueY.percent}%) {valueY} ' + postLabel + ' ';\n series.tooltip.background.fill = am4core.color('#ffffff');\n // set equal fill series and stroke and not equal background\n series.tooltip.getStrokeFromObject = true;\n series.tooltip.getFillFromObject = false;\n series.tooltip.strokeWidth = 3;\n }\n }\n\n // cursor\n chart.cursor = new am4charts.XYCursor;\n\n // scrollabe\n chart.scrollbarX = new am4core.Scrollbar();\n chart.scrollbarX.marginBottom = 20;\n\n // legend\n chart.legend = new am4charts.Legend();\n\n return chart;\n }\n\n // create pie chart\n createPieChart(\n config: { element: ElementRef; },\n data: IChartData[],\n postLabel: string = '',\n ) {\n // Themes begin\n am4core.useTheme(am4themes_kelly);\n // Themes end\n\n // Create chart instance\n let chart = am4core.create(config.element.nativeElement, am4charts.PieChart);\n this.setGlobalSetting(chart);\n chart.rtl = true;\n\n // Add data\n chart.data = data;\n\n // create series\n let pieSeries = chart.series.push(new am4charts.PieSeries());\n pieSeries.dataFields.category = 'x';\n pieSeries.dataFields.value = 'y';\n // for space slice color\n pieSeries.slices.template.stroke = am4core.color(\"#fff\");\n pieSeries.slices.template.strokeOpacity = .2;\n // hide static labels\n pieSeries.ticks.template.disabled = true;\n pieSeries.labels.template.disabled = true;\n\n // This creates initial animation\n pieSeries.hiddenState.properties.opacity = 1;\n pieSeries.hiddenState.properties.endAngle = -90;\n pieSeries.hiddenState.properties.startAngle = -90;\n\n chart.hiddenState.properties.radius = am4core.percent(0);\n\n // tooltip \n pieSeries.slices.template.tooltipHTML = '{category} : ({value.percent}%) {value} ' + postLabel + ' ';\n\n // for show legent\n pieSeries.legendSettings.labelText = ': {category}';\n pieSeries.legendSettings.valueText = '{value}';\n chart.legend = new am4charts.Legend();\n\n return chart;\n }\n \n // create pie chart\n createMultiPieChart(\n config: { element: ElementRef; },\n chartSeries: ISeriesChart[],\n data: IMultiItemChartData[],\n postLabel: string = '',\n ) {\n // Themes begin\n am4core.useTheme(am4themes_kelly);\n // Themes end\n\n // Create chart instance\n let chart = am4core.create(config.element.nativeElement, am4charts.PieChart);\n this.setGlobalSetting(chart);\n chart.rtl = true;\n\n let selected;\n let baseData = [];\n if (chartSeries) {\n // create for each series one slice\n chartSeries.forEach((series, index) => {\n let newData = {\n color: chart.colors.getIndex(index),\n category: series.title,\n subs: [],\n count: 0\n };\n // create form base categories for sub slices\n data.forEach(dataItem => {\n newData.count += Number(dataItem[series.dataField]);\n newData.subs.push({\n category: dataItem.category,\n count: dataItem[series.dataField]\n });\n });\n baseData.push(newData);\n })\n }\n\n // create series\n let pieSeries = chart.series.push(new am4charts.PieSeries());\n pieSeries.dataFields.category = 'category';\n pieSeries.dataFields.value = 'count';\n // for space slice color\n pieSeries.slices.template.stroke = am4core.color(\"#fff\");\n pieSeries.slices.template.strokeOpacity = .2;\n // hide static labels\n pieSeries.ticks.template.disabled = true;\n pieSeries.labels.template.disabled = true;\n\n // This creates initial animation\n pieSeries.hiddenState.properties.opacity = 1;\n pieSeries.hiddenState.properties.endAngle = -90;\n pieSeries.hiddenState.properties.startAngle = -90;\n\n // for set insede colors\n pieSeries.slices.template.propertyFields.fill = \"color\";\n // pieSeries.slices.template.propertyFields.visible = \"hidden\";\n pieSeries.slices.template.propertyFields.isActive = \"pulled\";\n\n chart.hiddenState.properties.radius = am4core.percent(0);\n\n pieSeries.slices.template.tooltipHTML = '{category} : ({value.percent}%) {value} ' + postLabel + ' ';\n\n // generate for selected data\n let generateChartData = function () {\n // console.log(chart.data);\n let chartData = [];\n for (var i = 0; i < baseData.length; i++) {\n if (i == selected) {\n for (var x = 0; x < baseData[i].subs.length; x++) {\n chartData.push({\n category: baseData[i].subs[x].category,\n count: baseData[i].subs[x].count,\n color: baseData[i].color,\n pulled: true\n });\n }\n } else {\n baseData[i]['id'] = i;\n let slice = {\n category: baseData[i].category,\n count: baseData[i].count,\n // hidden: baseData[i].hidden,\n color: baseData[i].color,\n id: i\n }\n chartData.push(slice);\n }\n }\n return chartData;\n }\n\n // for select slice show inside on\n pieSeries.slices.template.events.on(\"hit\", function (event) {\n if (event.target.dataItem.dataContext['id'] != undefined)\n selected = event.target.dataItem.dataContext['id'];\n else selected = undefined;\n chart.data = generateChartData();\n });\n\n // add data\n chart.data = generateChartData();\n\n // for show legent\n // pieSeries.legendSettings.labelText = ': {category}';\n // pieSeries.legendSettings.valueText = '{value}';\n // chart.legend = new am4charts.Legend();\n\n return chart;\n }\n\n // create variable pie chart\n createVariablePieChart(\n config: { element: ElementRef; },\n data: IChartData[],\n postLabel: string = '',\n ) {\n // Themes begin\n am4core.useTheme(am4themes_kelly);\n // Themes end\n\n // Create chart instance\n let chart = am4core.create(config.element.nativeElement, am4charts.PieChart);\n this.setGlobalSetting(chart);\n chart.rtl = true;\n\n // Add data\n chart.data = data;\n\n // create series\n let pieSeries = chart.series.push(new am4charts.PieSeries());\n pieSeries.dataFields.category = 'x';\n pieSeries.dataFields.value = 'y';\n // for space slice color\n pieSeries.slices.template.stroke = am4core.color(\"#fff\");\n pieSeries.slices.template.strokeOpacity = .2;\n // set empty center\n chart.innerRadius = am4core.percent(30);\n // set variable slices \n pieSeries.dataFields.radiusValue = 'y';\n // hide static labels\n pieSeries.ticks.template.disabled = true;\n pieSeries.labels.template.disabled = true;\n\n // This creates initial animation\n pieSeries.hiddenState.properties.opacity = 1;\n pieSeries.hiddenState.properties.endAngle = -90;\n pieSeries.hiddenState.properties.startAngle = -90;\n\n chart.hiddenState.properties.radius = am4core.percent(0);\n\n // tooltip \n pieSeries.slices.template.tooltipHTML = '{category} : ({value.percent}%) {value} ' + postLabel + ' ';\n\n // for show legent\n pieSeries.legendSettings.labelText = ': {category}';\n pieSeries.legendSettings.valueText = '{value}';\n chart.legend = new am4charts.Legend();\n\n return chart;\n }\n}","import { Injectable, ComponentFactoryResolver, ViewContainerRef, ChangeDetectorRef } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n// components\nimport { RadioButtonComponent } from 'src/app/form-tools/radio-button/radio-button.component';\nimport { DescriptionComponent } from 'src/app/form-tools/description/description.component';\nimport { PrevButtonComponent } from 'src/app/form-tools/prev-button/prev-button.component';\nimport { NextButtonComponent } from 'src/app/form-tools/next-button/next-button.component';\nimport { SelectBoxComponent } from 'src/app/form-tools/select-box/select-box.component';\nimport { BreakLineComponent } from 'src/app/form-tools/break-line/break-line.component';\nimport { CheckBoxComponent } from 'src/app/form-tools/check-box/check-box.component';\nimport { PasswordComponent } from 'src/app/form-tools/password/password.component';\nimport { TextareaComponent } from 'src/app/form-tools/textarea/textarea.component';\nimport { TextBoxComponent } from 'src/app/form-tools/text-box/text-box.component';\nimport { SubmitComponent } from 'src/app/form-tools/submit/submit.component';\nimport { NumberComponent } from 'src/app/form-tools/number/number.component';\nimport { RangeComponent } from 'src/app/form-tools/range/range.component';\nimport { EmailComponent } from 'src/app/form-tools/email/email.component';\nimport { DateComponent } from 'src/app/form-tools/date/date.component';\nimport { TimeComponent } from 'src/app/form-tools/time/time.component';\nimport { UrlComponent } from 'src/app/form-tools/url/url.component';\nimport { ESurveyTool, ETool } from 'src/app/models/form.enum';\nimport { FormSubmitService } from './form-submit.service';\nimport { StarComponent } from 'src/app/form-tools/star/star.component';\nimport { MatrixComponent } from 'src/app/form-tools/matrix/matrix.component';\nimport { UploadComponent } from 'src/app/form-tools/upload/upload.component';\n\n@Injectable()\nexport class CreateComponentService {\n constructor(private CFResolver: ComponentFactoryResolver) { }\n // create component\n create(\n component: any,\n containerRef: ViewContainerRef,\n formForSubmit: FormSubmitService,\n applyCondition = false,\n isSurveyForm: boolean = false,\n ) {\n // find compoennt name\n let componentName;\n if(isSurveyForm) componentName = this.getSurveyComponentName(component.componentType);\n else componentName = this.getComponentName(component.componentType);\n\n // create\n let newComponent = this.CFResolver.resolveComponentFactory(componentName);\n\n // add to themplate \n containerRef.clear();\n const createdComponent = containerRef.createComponent(newComponent);\n\n // send inputs\n createdComponent.instance['config'] = component;\n\n // for render component\n createdComponent.instance['form'] = formForSubmit;\n createdComponent.instance['isSurveyForm'] = isSurveyForm;\n createdComponent.instance['applyCondition'] = applyCondition;\n\n // for bind outputs component\n return Observable.create(observe => {\n createdComponent.instance['change'].subscribe(\n config => observe.next(config)\n );\n });\n }\n // get enum tool and return componnet name\n getComponentName(tool: ETool) {\n switch (tool) {\n case ETool.RADIO_BUTTON: return RadioButtonComponent;\n case ETool.DESCRIPTION: return DescriptionComponent;\n case ETool.PREV_BUTTON: return PrevButtonComponent;\n case ETool.NEXT_BUTTON: return NextButtonComponent;\n case ETool.SUBMIT_BUTTON: return SubmitComponent;\n case ETool.SELECT_BOX: return SelectBoxComponent;\n case ETool.BREAKLINE: return BreakLineComponent;\n case ETool.CHECK_BOX: return CheckBoxComponent;\n case ETool.PASSWORD: return PasswordComponent;\n case ETool.TEXTAREA: return TextareaComponent;\n case ETool.TEXT_BOX: return TextBoxComponent;\n case ETool.INPUT_TIME: return TimeComponent;\n case ETool.INPUT_DATE: return DateComponent;\n case ETool.NUMBER: return NumberComponent;\n case ETool.UPLOAD: return UploadComponent;\n case ETool.RANGE: return RangeComponent;\n case ETool.EMAIL: return EmailComponent;\n case ETool.URL: return UrlComponent;\n\n default: return null;\n }\n }\n // for survey forms\n getSurveyComponentName(tool: ESurveyTool) {\n switch (tool) {\n // case ESurveyTool.MULTI_INPUT_MATRIX: return .;\n case ESurveyTool.RADIO_BUTTON: return RadioButtonComponent;\n case ESurveyTool.DESCRIPTION: return DescriptionComponent;\n case ESurveyTool.PREV_BUTTON: return PrevButtonComponent;\n case ESurveyTool.NEXT_BUTTON: return NextButtonComponent;\n case ESurveyTool.SUBMIT_BUTTON: return SubmitComponent;\n case ESurveyTool.SELECT_BOX: return SelectBoxComponent;\n case ESurveyTool.CHECK_BOX: return CheckBoxComponent;\n case ESurveyTool.TEXTAREA: return TextareaComponent;\n case ESurveyTool.TEXT_BOX: return TextBoxComponent;\n case ESurveyTool.INPUT_TIME: return TimeComponent;\n case ESurveyTool.INPUT_DATE: return DateComponent;\n case ESurveyTool.NUMBER: return NumberComponent;\n case ESurveyTool.MATRIX: return MatrixComponent;\n case ESurveyTool.RANGE: return RangeComponent;\n case ESurveyTool.EMAIL: return EmailComponent;\n case ESurveyTool.STAR: return StarComponent;\n case ESurveyTool.URL: return UrlComponent;\n\n default: return null;\n }\n }\n}","import { Injectable, Inject } from '@angular/core';\n\n@Injectable()\nexport class CreateNameToolService {\n\n private currentNameIndex: number = 0;\n private registerNames: string[] = [];\n\n constructor(@Inject(String) private defaultNamePrefix: string) { }\n existName(name: string) {\n return this.registerNames.findIndex(item => item === name) !== -1;\n }\n createName() {\n return this.defaultNamePrefix + ++this.currentNameIndex;\n }\n setName(name: string) {\n if (name) this.registerNames.push(name);\n }\n}","import { Injectable } from '@angular/core';\nimport moment from 'moment-jalaali';\n\n@Injectable()\nexport class DateService {\n // 0 equal\n // -1 if first lesser than second\n // 1 if first grater than second\n // -2 one item empty send\n static compare(firstDate: string, secondDate: string) {\n if (!firstDate || !secondDate) return -2;\n let date1 = moment(firstDate, 'jYYYY/jM/jD')['_d'].getTime();\n let date2 = moment(secondDate, 'jYYYY/jM/jD')['_d'].getTime();\n\n if (date1 < date2) return -1;\n else if (date1 > date2) return 1;\n else return 0;\n }\n static valid(date: string) {\n return moment(date, 'jYYYY/jM/jD').isValid();\n }\n\n // get days with month and months\n static getDayes(year: number, month: number): number {\n if (month <= 6) return 31;\n else if (month < 12) return 30;\n else if (month == 12) return moment.jIsLeapYear(year) ? 29 : 30;\n else console.error('month not correct!');\n }\n}","import { Injectable } from \"@angular/core\";\nimport { Subject } from 'rxjs';\n\nimport { OverlayService } from './overlay.service';\nimport { ITool } from 'src/app/form-build/create-form/tools/tools.component';\n\n@Injectable()\nexport class DragAndDropService {\n\n // drag events\n draging: boolean = false;\n _dragStart = new Subject();\n\n // selected tool\n tool: ITool;\n\n constructor(private overlayService: OverlayService) { }\n\n dragStart(event: MouseEvent, tool: ITool, width: number) {\n this.tool = tool;\n this.tool.width = width;\n\n this.draging = true;\n this.overlayService.show();\n setTimeout(() => this._dragStart.next(event));\n }\n drop(): any {\n let componentType = this.tool.component;\n delete this.tool;\n\n this.draging = false;\n this.overlayService.hide();\n \n return componentType;\n }\n}","import { Injectable } from \"@angular/core\";\n\n@Injectable()\nexport class ErrorMessageService {\n static message: string = '';\n static previousUrl: any;\n static navigateUrl: {\n url: string;\n fragment?: string;\n queryParams?: string;\n } = { url: '' };\n}","import { ChangeDetectorRef, EventEmitter, Injectable } from '@angular/core';\n\nimport { EApplyFormType, EOperation, ESurveyTool, ETool } from 'src/app/models/form.enum';\nimport { IToolConfig } from 'src/app/models/form.interface';\nimport { DateService } from './date.service';\nimport { TimeService } from './time.service';\n\n\n@Injectable()\nexport class FormSubmitService {\n userInputs: {\n [index: string]: {\n readonly componentName: string;\n status: 'INVALID' | 'VALID' | string;\n config: IToolConfig,\n priceValue?: number;\n pageId: number;\n value: string;\n show: boolean;\n // for check box\n options: {\n [index: string]: {\n status?: 'INVALID' | 'VALID' | string;\n checked?: boolean;\n priceValue?: number;\n value: string;\n }\n };\n }\n } = {};\n pagesInfo: {\n [index: string]: {\n id: number,\n valid: boolean,\n componentsId: any[],\n }\n } = {};\n submitId: number;\n formData: any = {};\n\n price: number;\n valid: boolean = false;\n isSending: boolean = false;\n\n _matrixItemAdd = new EventEmitter();\n _ConditionsApplied = new EventEmitter();\n\n constructor(private cdRef: ChangeDetectorRef) { }\n\n // check condition\n checkCondition(config: IToolConfig) {\n if (!config.conditions || !config.conditions.length) {\n this.userInputs[config.id].show = true;\n }\n let mergedCondition = '';\n let len = config.conditions.length - 1;\n\n config.conditions.forEach((condition, index) => {\n mergedCondition += condition.conditionText;\n if (index !== len)\n mergedCondition += ' || ';\n });\n this.userInputs[config.id].show = !eval(mergedCondition);\n }\n checkConditions() {\n for (const key in this.userInputs) {\n if (Object.prototype.hasOwnProperty.call(this.userInputs, key)) {\n this.checkCondition(this.userInputs[key].config);\n }\n }\n this._ConditionsApplied.emit();\n // for changed applied\n this.cdRef.detectChanges();\n this.isFormValid();\n // ;\n if (this.formData.applyFormType === EApplyFormType.PAYMENT && this.formData.formulaString) this.setPrice();\n this.setQuestionNumbers();\n }\n setQuestionNumbers() {\n let questionIndex = 0;\n for (const key in this.userInputs) {\n if (this.userInputs.hasOwnProperty(key)) {\n if (this.userInputs[key].show && !this.userInputs[key].config.isDescription) {\n questionIndex++;\n this.userInputs[key].config.questionIndex = questionIndex;\n }\n }\n }\n }\n compareDate(firstDate: string, secondDate: string) {\n return DateService.compare(firstDate, secondDate);\n }\n compareTime(firstTime: string, secondTime: string) {\n return TimeService.compare(firstTime, secondTime);\n }\n compareRange(currentValue: string, firstValue: string, secondValue: string) {\n if (!currentValue) return false;\n let value = currentValue.split('::');\n if (firstValue && secondValue && Number(firstValue) < Number(value[0]) && Number(secondValue) > Number(value[1])) return true;\n else return false;\n }\n checkMatrixValue(componentId: string, valueId: string, operation: EOperation, conditionValue: string) {\n if (operation == EOperation.EQUAL) {\n if (!componentId || !valueId) return false;\n return this.userInputs[componentId].options[valueId].value == conditionValue;\n }\n else if (operation == EOperation.NOT) {\n if (!componentId || !valueId) return true;\n return this.userInputs[componentId].options[valueId].value != conditionValue;\n }\n }\n checkOptionCondition(config: any, operation: EOperation, firstValue: string) {\n if (operation === EOperation.EQUAL) {\n if (!config.value) return false;\n return config.value == firstValue;\n }\n else if (operation === EOperation.NOT) {\n if (!config.value) return true;\n return config.value != firstValue;\n }\n }\n\n // add information\n setPagesInfo(id: number) {\n this.pagesInfo[id] = {\n componentsId: [],\n valid: false,\n id: id,\n }\n }\n setComponentInfo(config: IToolConfig) {\n let optionsObj = null;\n if (config.values && config.values.length) {\n optionsObj = {}\n config.values.forEach(option => {\n optionsObj[option.value] = {\n value: option.value,\n checked: option.selected ? option.selected : false,\n priceValue: option.priceValue ? option.priceValue : 0\n }\n });\n }\n this.userInputs[config.id] = {\n componentName: config.name,\n pageId: config.pageInfo.id,\n options: optionsObj,\n config: config,\n priceValue: 0,\n status: null,\n value: null,\n show: true,\n }\n this.pagesInfo[config.pageInfo.id].componentsId.push(config.id);\n if (config.disableMode) {\n let item: any;\n // normal form\n if (this.formData.applyFormType) {\n switch (config.componentType) {\n case ETool.SELECT_BOX:\n item = config.values.find(value => value.selected);\n if (item) {\n this.userInputs[config.id].value = item.title; break;\n }\n case ETool.RADIO_BUTTON:\n item = config.values.find(value => value.selected);\n if (item) {\n this.userInputs[config.id].value = item.value; break;\n }\n default:\n this.userInputs[config.id].value = config.values[0].title;\n }\n }\n // survey forms\n else {\n switch (config.componentType) {\n case ESurveyTool.SELECT_BOX:\n item = config.values.find(value => value.selected);\n if (item) {\n this.userInputs[config.id].value = item.title; break;\n }\n case ESurveyTool.RADIO_BUTTON:\n item = config.values.find(value => value.selected);\n if (item) {\n this.userInputs[config.id].value = item.value; break;\n }\n default:\n this.userInputs[config.id].value = config.values[0].title;\n }\n }\n\n }\n // if is last component\n if (config.isLastComponent) this.checkConditions();\n }\n setCheckboxInfo(config: IToolConfig) {\n // check null values\n if (!config.values) config.values = [];\n // find options\n let optionsObj = {};\n config.values.forEach(option => {\n optionsObj[option.value] = {\n value: option.value,\n checked: option.selected ? option.selected : false,\n priceValue: option.priceValue ? option.priceValue : 0\n }\n });\n\n this.userInputs[config.id] = {\n componentName: config.name,\n pageId: config.pageInfo.id,\n options: optionsObj,\n status: 'VALID',\n config: config,\n value: null,\n show: true,\n }\n // if is last component\n if (config.isLastComponent) this.checkConditions();\n }\n setCheckboxOptionInfo(config: IToolConfig, option: any) {\n this.userInputs[config.id].options[option.value] = {\n priceValue: option.priceValue ? option.priceValue : 0,\n value: option.value,\n checked: false,\n }\n }\n setMatrixInfo(config: IToolConfig) {\n // find options\n let optionsObj = {};\n if (!config.values) config.values = [];\n config.values.forEach(option => {\n // set value component\n optionsObj[option.value] = {\n value: null,\n checked: true,\n }\n });\n\n this.userInputs[config.id] = {\n componentName: config.name,\n pageId: config.pageInfo.id,\n options: optionsObj,\n status: 'VALID',\n config: config,\n value: null,\n show: true,\n }\n this.pagesInfo[config.pageInfo.id].componentsId.push(config.id);\n // for disabled mode\n if (config.disableMode) {\n let item: any;\n // survey forms\n config.values.forEach(option => {\n item = option.subValues.find(value => value.selected);\n if (item) {\n this.userInputs[config.id].options[option.id].value = item.value;\n }\n });\n }\n // if is last component\n if (config.isLastComponent) this.checkConditions();\n }\n setMatrixItemInfo(config: IToolConfig, option: any) {\n this.userInputs[config.id].options[option.value] = {\n value: null,\n checked: true,\n }\n this._matrixItemAdd.emit(config.id);\n }\n setPriceComponent(config: IToolConfig) {\n let component = this.userInputs[config.id];\n if (component.options[component.value]) component.priceValue = component.options[component.value].priceValue;\n else component.priceValue = 0;\n }\n\n // check validation\n setValidation(config: IToolConfig, status: 'INVALID' | 'VALID' | string) {\n this.userInputs[config.id].status = status;\n this.cdRef.detectChanges();\n this.isFormValid();\n }\n setMatrixValidation(config: IToolConfig, option: any, status: 'INVALID' | 'VALID' | string) {\n this.userInputs[config.id].options[option.value].status = status;\n this.cdRef.detectChanges();\n if (status === 'INVALID') {\n this.userInputs[config.id].status = 'INVALID';\n this.isFormValid();\n return;\n }\n // set component status\n for (const optionId in this.userInputs[config.id].options) {\n if (this.userInputs[config.id].options.hasOwnProperty(optionId)) {\n // get current page\n let option = this.userInputs[config.id].options[optionId];\n // components page\n if (option.status === 'INVALID') {\n this.userInputs[config.id].status = 'INVALID';\n this.isFormValid();\n return;\n }\n }\n }\n this.userInputs[config.id].status = 'VALID';\n this.isFormValid();\n }\n\n // check formm validation\n isFormValid() {\n // console.log(this.userInputs)\n for (const pageId in this.pagesInfo) {\n if (this.pagesInfo.hasOwnProperty(pageId)) {\n // get current page\n let page = this.pagesInfo[pageId];\n // components page\n for (const id of page.componentsId) {\n if (this.userInputs[id].status === 'INVALID' && this.userInputs[id].show) {\n setTimeout(() => {\n this.valid = false;\n page.valid = false;\n });\n return;\n }\n }\n setTimeout(() => { page.valid = true; });\n }\n }\n setTimeout(() => { this.valid = true; });\n }\n\n // get object filled form for submit\n getFilledForm(): { formID: number, submitTime?: number, components: any[] } {\n let formFilled = {\n formID: this.formData.id,\n components: []\n }\n // create form filled\n for (const key in this.userInputs) {\n if (this.userInputs.hasOwnProperty(key)) {\n\n // for check box \n if (\n this.userInputs[key].options &&\n this.userInputs[key].config.componentType == ETool.CHECK_BOX\n ) {\n\n for (const [optionKey, optionObj] of Object.entries(this.userInputs[key].options)) {\n if (optionObj.checked && optionObj.value) {\n\n formFilled.components.push({\n componentName: this.userInputs[key].componentName,\n value: optionObj.value,\n });\n\n }\n }\n\n }\n else {\n if (this.userInputs[key].value) {\n formFilled.components.push({\n componentName: this.userInputs[key].componentName,\n value: this.userInputs[key].value,\n });\n }\n }\n\n }\n }\n return formFilled;\n }\n getFilledSurveyForm(): { formID: number, submitTime?: number, components: any[] } {\n ;\n let formFilled = {\n formID: this.formData.id,\n components: []\n }\n // create form filled\n for (const key in this.userInputs) {\n if (this.userInputs.hasOwnProperty(key)) {\n\n // for check box \n if (\n this.userInputs[key].options &&\n (this.userInputs[key].config.componentType == ESurveyTool.CHECK_BOX ||\n this.userInputs[key].config.componentType == ESurveyTool.MATRIX)\n ) {\n\n for (const [optionKey, optionObj] of Object.entries(this.userInputs[key].options)) {\n if (optionObj.checked && optionObj.value) {\n\n formFilled.components.push({\n componentName: this.userInputs[key].componentName,\n value: optionObj.value,\n });\n\n }\n }\n\n }\n else {\n if (this.userInputs[key].value) {\n formFilled.components.push({\n componentName: this.userInputs[key].componentName,\n value: this.userInputs[key].value,\n });\n }\n }\n\n }\n }\n return formFilled;\n }\n\n // formula\n setPrice() {\n this.price = eval(this.formData.formulaString);\n }\n getPriceComponentValue(componentId: any, optionId: number) {\n if (this.userInputs[componentId] && this.userInputs[componentId].options[optionId]) {\n let option = this.userInputs[componentId].options[optionId];\n if (option.checked && option.priceValue) return option.priceValue\n }\n return 0;\n }\n getPriceComponent(componentId: number) {\n if (this.userInputs[componentId]) {\n\n let component = this.userInputs[componentId];\n if (component.config.componentType === ETool.NUMBER) return component.value ? component.value : 0;\n else return component.priceValue ? component.priceValue : 0;\n\n }\n }\n}","import { Injectable } from \"@angular/core\";\n\n@Injectable() \nexport class OverlayService {\n display: boolean = false;\n \n constructor() { }\n show() {\n this.display = true;\n }\n hide() {\n this.display = false;\n }\n}","import { Injectable } from \"@angular/core\";\nimport { MatDialog } from '@angular/material/dialog';\nimport { ConfirmComponent } from 'src/app/components/confirm/confirm.component';\n\n@Injectable()\nexport class ShowMessageService {\n constructor(private dialog: MatDialog) { }\n proMessage() {\n if (!localStorage.getItem('pro-message')) {\n this.dialog.open(ConfirmComponent, {\n data: {\n title: 'قابلیت های مشخص شده با \"pro\" د شما میتوانید فعلا از این قابلیت ها استفاده کنید ولی در نهایت برای پابلیش کردن باید تعرفه ای که شامل این قابلیت هاست خریداری کنید',\n dontShowField: 'pro-message',\n isMessage: true,\n }\n })\n }\n }\n}","import { Injectable } from '@angular/core';\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition, MatSnackBarConfig } from '@angular/material/snack-bar';\n\n@Injectable()\nexport class SnackBarService {\n\n constructor(private _snackbar: MatSnackBar) { }\n open(message: string, action: string = 'بستن', config?: MatSnackBarConfig) {\n // set default config\n let snakbarConfig: MatSnackBarConfig = {\n horizontalPosition: 'right',\n verticalPosition: 'top',\n panelClass: 'red',\n direction: 'rtl',\n duration: 6000,\n\n ...config\n }\n this._snackbar.open(message, action, snakbarConfig);\n }\n openSuccess(message: string, config?: MatSnackBarConfig, action: string = 'بستن') {\n // set default config\n let snakbarConfig: MatSnackBarConfig = {\n horizontalPosition: 'right',\n verticalPosition: 'top',\n panelClass: 'green',\n direction: 'rtl',\n duration: 6000,\n\n ...config\n }\n this._snackbar.open(message, action, snakbarConfig);\n }\n}","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class TimeService {\n // 0 equal\n // -1 if first lesser than second\n // 1 if first grater than second\n static compare(firstTime: string, secondTime: string) {\n if (!firstTime || !secondTime) return;\n let time1 = firstTime.split(':');\n let time2 = secondTime.split(':');\n\n if (time1[0] < time2[0] || (time1[0] === time1[0] && time1[1] < time2[1])) return -1;\n else if (time1[0] > time2[0] || (time1[0] === time1[0] && time1[1] > time2[1])) return 1;\n else return 0;\n }\n}","import { HttpInterceptor, HttpRequest, HttpHandler, HttpBackend, HttpClient, HttpHeaders } from '@angular/common/http';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { catchError } from 'rxjs/operators';\nimport { Injectable } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { throwError } from 'rxjs';\n\nimport { ADMIN_PAGES } from './template-service/active-admin-pages.service';\nimport { SnackBarService } from './template-service/snackbar.service';\nimport { TokenService } from './token.service';\nimport { UserService } from './user.service';\nimport { UrlService } from './url.service';\n\n// service\n// import { UrlService } from './url.service';\n\n@Injectable()\nexport class TokenIntercepterService implements HttpInterceptor {\n constructor(\n private router: Router,\n private location: Location,\n private userService: UserService,\n private snackbar: SnackBarService,\n private tokenService: TokenService,\n ) { }\n // add token all request and redirect in error\n intercept(req: HttpRequest, next: HttpHandler) {\n let pathname = this.location['_platformLocation'].location.pathname;\n let isAdmin: boolean = false;\n let token: string;\n \n // find token\n if (ADMIN_PAGES.find(item => item === pathname)) {\n token = this.tokenService.getAdminToken();\n isAdmin = true;\n }\n else {\n token = this.tokenService.getToken();\n }\n // add token to request\n if (token) req = req.clone({ headers: req.headers.append('Authorization', 'Bearer ' + token) });\n\n return next.handle(req).pipe(\n catchError(error => {\n if (error.status === 401) {\n if(isAdmin) {\n // this.tokenService.removeAdminToken();\n window.location.href = UrlService.PANEL_URLS.login;\n }\n else {\n this.userService.logout();\n this.router.navigate(['/auth/login-register']);\n }\n }\n else if (error.status === 0) {\n let message = 'خطا در برقراری ارتباط';\n this.snackbar.open(message, 'بستن');\n }\n return throwError(error);\n })\n );\n }\n}","import { HttpInterceptor, HttpRequest, HttpHandler, HttpBackend, HttpClient, HttpHeaders } from '@angular/common/http';\nimport { catchError } from 'rxjs/operators';\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { throwError } from 'rxjs';\nimport { UserService } from './user.service';\nimport { HttpService } from './http.service';\n\n// service\n// import { UrlService } from './url.service';\n\n@Injectable()\nexport class TokenService {\n\n private static token: string;\n private static adminToken: string;\n constructor(\n private httpService: HttpService,\n ) {\n TokenService.adminToken = sessionStorage.getItem('admin-token');\n TokenService.token = localStorage.getItem('token');\n }\n\n // for get token\n getToken(): string {\n return TokenService.token;\n }\n // check token \n checkToken() {\n return new Promise((resolve, reject) => {\n this.httpService.get('User/checkToken').subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n );\n });\n }\n // add token to request if Exist Token\n setToken(token: string) {\n TokenService.token = token;\n localStorage.setItem('token', token);\n }\n // remove token\n removeToken() {\n TokenService.token = '';\n localStorage.removeItem('token');\n }\n\n // for admin ----------------------------\n // get token\n getAdminToken(): string {\n return TokenService.adminToken;\n }\n // add token to request if Exist Token\n setAdminToken(token: string) {\n TokenService.adminToken = token;\n sessionStorage.setItem('admin-token', token);\n }\n // remove token\n removeAdminToken() {\n TokenService.adminToken = '';\n sessionStorage.removeItem('admin-token');\n }\n}","import { Injectable } from \"@angular/core\";\n\nexport interface URLSInterface {\n readonly homePageSlideImage: string;\n readonly homePageVideo: string;\n readonly profile: string;\n readonly uploads: string;\n readonly empty: string;\n readonly api: string;\n\n // apply\n readonly backgroundApply: string;\n\n // survey\n readonly componentValueFile: string;\n readonly backgroundSurvey: string;\n readonly formFooterLogo: string;\n readonly formHeaderLogo: string;\n readonly componentFile: string;\n\n // site info \n readonly siteLogos: string;\n readonly facility: string;\n readonly customer: string; \n readonly siteUsage: string;\n readonly customerIdea: string; \n}\n\n@Injectable()\nexport class UrlService {\n\n // base url\n // static readonly PANEL_URL = 'http://94.183.26.106:9092/';\n // static readonly BASE_URL = 'http://94.183.26.106:8081/';\n \n static readonly PANEL_URL = 'http://porseshkon.ir:8080/';\n static readonly BASE_URL = 'http://porseshkon.ir:9092/';\n static readonly BASE_URL_UPLOAD = UrlService.BASE_URL + 'uploads/';\n\n static PANEL_URLS = {\n login: UrlService.PANEL_URL + 'auth/login',\n redirect: UrlService.PANEL_URL + 'pages/manage-forms/default-forms'\n }\n\n\n static URLS: URLSInterface = {\n homePageSlideImage: UrlService.BASE_URL_UPLOAD + 'siteInfo/firsPageSlider/',\n homePageVideo: UrlService.BASE_URL_UPLOAD + 'siteInfo/firsPageVideo/',\n profile: UrlService.BASE_URL_UPLOAD + 'user/profile/',\n uploads: UrlService.BASE_URL_UPLOAD,\n api: UrlService.BASE_URL + 'api/',\n empty: UrlService.BASE_URL,\n \n\n // apply\n backgroundApply: UrlService.BASE_URL_UPLOAD + '/apply/background/',\n\n // survey\n componentValueFile: UrlService.BASE_URL_UPLOAD + 'survey/componentValueFile/',\n backgroundSurvey: UrlService.BASE_URL_UPLOAD + 'survey/background/',\n formFooterLogo: UrlService.BASE_URL_UPLOAD + 'survey/formFooterLogo/',\n formHeaderLogo: UrlService.BASE_URL_UPLOAD + 'survey/formHeaderLogo/',\n componentFile: UrlService.BASE_URL_UPLOAD + 'survey/componentFile/',\n\n // site info \n siteLogos: UrlService.BASE_URL_UPLOAD + 'siteinfo/sitelogo/',\n siteUsage: UrlService.BASE_URL_UPLOAD + 'siteinfo/siteusage/',\n facility: UrlService.BASE_URL_UPLOAD + 'siteInfo/sitePossiblity/',\n customer: UrlService.BASE_URL_UPLOAD + 'siteInfo/SampleCustomer/',\n customerIdea: UrlService.BASE_URL_UPLOAD + 'siteInfo/feedbackComment/',\n }\n\n getUrl(key: string) {\n return UrlService.URLS[key];\n }\n}\n","import { Injectable, EventEmitter } from '@angular/core';\nimport { TokenService } from './token.service';\nimport { HttpService } from './http.service';\nimport { GloabalLoader } from './gloabal-loader.service';\n\n@Injectable()\nexport class UserService {\n\n user: any;\n _readyUser = new EventEmitter();\n\n // in constructor check user sign in.\n constructor(\n private tokenService: TokenService,\n private httpService: HttpService,\n ) { }\n\n // get user types\n getUserTypes() {\n return new Promise((resolve, reject) => {\n this.httpService.get('UserType/getList').subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n );\n });\n }\n\n // get user with token\n getUser() {\n if (this.tokenService.getToken()) {\n this.tokenService.checkToken().then(\n () => {\n this.user = JSON.parse(localStorage.getItem('user'));\n // console.log(this.user);\n this._readyUser.next();\n },\n error => {\n this._readyUser.error(new Error());\n if (error.status === 401) this.removeUser();\n }\n ).finally(() => { GloabalLoader.loading = false; });\n }\n else {\n this.removeUser();\n this._readyUser.error(new Error());\n GloabalLoader.loading = false;\n }\n }\n getUserAccess() {\n return new Promise((resolve, reject) => {\n this.httpService.get('User/getUsermembershipStatus').subscribe(\n res => {\n delete this.user.membership;\n this.user.membership = res;\n localStorage.setItem('user', JSON.stringify(this.user));\n this._readyUser.next();\n resolve(res);\n },\n error => { reject(error); }\n );\n });\n }\n setUser(user: any) {\n localStorage.setItem('user', JSON.stringify(user));\n this.tokenService.setToken(user.token);\n delete this.user;\n this.user = user;\n this._readyUser.next();\n }\n removeUser() {\n localStorage.removeItem('user');\n this.tokenService.removeToken();\n this._readyUser.error(new Error());\n delete this.user;\n this.user = undefined;\n }\n\n // get user info\n getUserInfo() {\n return new Promise((resolve, reject) => {\n this.httpService.get('User/getUserProfile').subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n );\n });\n }\n\n // login functions\n login(params: { userName: string, password: string }): Promise {\n return new Promise((resolve, reject) => {\n this.httpService.get('User/siteLogin', params).subscribe(\n res => {\n this.setUser(res);\n this.getUserAccess();\n resolve(res.name + ' ' + res.lastName);\n },\n error => { reject(error); }\n );\n });\n }\n logout() {\n this.removeUser();\n }\n\n // resend Password functions\n sendPassword(params: { usernaeOrMobile: string }) {\n return new Promise((resolve, reject) => {\n this.httpService.put('User', null, params).subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n );\n });\n }\n\n // register functions\n getCode(params: { mobile: string; }): Promise {\n return new Promise((resolve, reject) => {\n this.httpService.post('User/signUpMobile', null, params).subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n );\n });\n }\n verifyCode(params: { activationID: number, activationCode: string }) {\n return new Promise((resolve, reject) => {\n this.httpService.get('User/validateActivationForSignUp', params).subscribe(\n res => { resolve(res); this.tokenService.setToken(res); },\n error => { reject(error); }\n );\n });\n }\n register(body: {\n name: string,\n lastName: string,\n username: string,\n password: string,\n cityID: number\n }) {\n return new Promise((resolve, reject) => {\n this.httpService.post('User/signUpSiteUser', body).subscribe(\n res => {\n this.setUser(res);\n resolve(res);\n },\n error => { reject(error); }\n );\n });\n }\n\n // edit user\n edit(body: {\n name: string,\n cityID: number,\n lastName: string,\n username: string,\n }) {\n return new Promise((resolve, reject) => {\n let newBody = {\n oldPassword: '',\n newpassword: '',\n ...body\n }\n this.httpService.put('User/editPanelUserAsync', newBody).subscribe(\n res => {\n this.user = {\n ...this.user,\n ...res,\n }\n this.setUser(this.user);\n resolve(res);\n },\n error => { reject(error); }\n );\n });\n }\n\n // change passwrod\n changePassword(params: { oldPassword: string, newPassword: string }) {\n return new Promise((resolve, reject) => {\n this.httpService.put('User/changeSiteUserPasswordAsync', null, params).subscribe(\n res => { resolve(res); },\n error => { reject(error); }\n );\n });\n }\n}","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false,\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */"],"sourceRoot":"webpack:///"}