n20-common-lib 1.2.28 → 1.2.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/README.md +2 -2
  2. package/package.json +88 -88
  3. package/src/_qiankun/index.js +113 -113
  4. package/src/_qiankun/postMessage.js +48 -48
  5. package/src/assets/css/_coreLib.scss +35 -35
  6. package/src/assets/css/cl-anchor.scss +23 -23
  7. package/src/assets/css/cl-approve-card.scss +58 -58
  8. package/src/assets/css/cl-dialog.scss +99 -99
  9. package/src/assets/css/cl-drag-list.scss +22 -22
  10. package/src/assets/css/cl-empty.scss +10 -10
  11. package/src/assets/css/cl-expandable-pane.scss +26 -26
  12. package/src/assets/css/cl-expandable.scss +24 -24
  13. package/src/assets/css/cl-file-upload-table.scss +11 -11
  14. package/src/assets/css/cl-filter.scss +4 -4
  15. package/src/assets/css/cl-flow-step.scss +185 -185
  16. package/src/assets/css/cl-footer-box.scss +10 -10
  17. package/src/assets/css/cl-form-item.scss +612 -612
  18. package/src/assets/css/cl-general-card.scss +11 -11
  19. package/src/assets/css/cl-layout-aside.scss +92 -92
  20. package/src/assets/css/cl-layout-content.scss +16 -16
  21. package/src/assets/css/cl-layout-header.scss +73 -73
  22. package/src/assets/css/cl-layout-tabs.scss +87 -87
  23. package/src/assets/css/cl-layout.scss +97 -97
  24. package/src/assets/css/cl-login-temporary.scss +37 -37
  25. package/src/assets/css/cl-message.scss +75 -75
  26. package/src/assets/css/cl-more-tab.scss +98 -98
  27. package/src/assets/css/cl-nav-menu.scss +5 -5
  28. package/src/assets/css/cl-pagination.scss +128 -128
  29. package/src/assets/css/cl-secondary-tab.scss +53 -53
  30. package/src/assets/css/cl-showcolumn.scss +23 -23
  31. package/src/assets/css/cl-sifting.scss +51 -51
  32. package/src/assets/css/cl-statis.scss +42 -42
  33. package/src/assets/css/cl-step.scss +73 -73
  34. package/src/assets/css/cl-suspend.scss +19 -19
  35. package/src/assets/css/cl-tertiary-tab.scss +54 -54
  36. package/src/assets/css/cl-upload.scss +41 -41
  37. package/src/assets/css/cl-worn-pagination.scss +50 -50
  38. package/src/assets/css/el-button.scss +173 -173
  39. package/src/assets/css/el-table.scss +79 -79
  40. package/src/assets/css/element-variables.scss +1061 -1061
  41. package/src/assets/css/element.dev.scss +21 -21
  42. package/src/assets/css/font-icon.scss +27 -27
  43. package/src/assets/css/index.dev.scss +4 -4
  44. package/src/assets/css/index.scss +11 -11
  45. package/src/assets/css/normalize.scss +726 -726
  46. package/src/assets/css/rootvar.scss +139 -139
  47. package/src/assets/css/select.scss +25 -25
  48. package/src/assets/css/title-pop.scss +4 -4
  49. package/src/assets/getJsonc.js +50 -50
  50. package/src/assets/realUrl.js +12 -12
  51. package/src/components/Anchor/AnchorItem.vue +29 -29
  52. package/src/components/Anchor/index.vue +185 -185
  53. package/src/components/ApprovalButtons/index.vue +233 -233
  54. package/src/components/ApprovalCard/index.vue +128 -128
  55. package/src/components/ApprovalRecord/approvalImg.vue +39 -39
  56. package/src/components/ApprovalRecord/index.vue +59 -59
  57. package/src/components/Button/button-group.vue +150 -150
  58. package/src/components/Button/icon-group-button.vue +61 -61
  59. package/src/components/Button/index.vue +56 -56
  60. package/src/components/CascaderArea/index.vue +103 -103
  61. package/src/components/ContentLoading/index.vue +41 -41
  62. package/src/components/ContentNull/index.vue +19 -19
  63. package/src/components/DatePicker/index.vue +27 -27
  64. package/src/components/DatePicker/por.vue +169 -169
  65. package/src/components/Dialog/index.vue +26 -26
  66. package/src/components/Dialog/indexO.vue +116 -116
  67. package/src/components/DragList/index.vue +75 -75
  68. package/src/components/Empty/img/abnormal.svg +108 -108
  69. package/src/components/Empty/img/dispose.svg +71 -71
  70. package/src/components/Empty/img/empty.svg +57 -57
  71. package/src/components/Empty/img/general.svg +58 -58
  72. package/src/components/Empty/img/lock.svg +57 -57
  73. package/src/components/Empty/img/network.svg +59 -59
  74. package/src/components/Empty/img/relevant.svg +68 -68
  75. package/src/components/Empty/img/search.svg +72 -72
  76. package/src/components/Empty/index.vue +92 -92
  77. package/src/components/Expandable/index.vue +49 -49
  78. package/src/components/Expandable/main.vue +52 -52
  79. package/src/components/FileExportAsync/index.vue +178 -178
  80. package/src/components/FileUploadTable/index.vue +484 -484
  81. package/src/components/Filters/index.vue +371 -371
  82. package/src/components/Filters/indexO.vue +104 -104
  83. package/src/components/FlowStep/index.vue +68 -68
  84. package/src/components/FooterBox/index.vue +21 -21
  85. package/src/components/GeneralCard/index.vue +15 -15
  86. package/src/components/InputNumber/index.vue +169 -169
  87. package/src/components/InputNumber/numberRange.vue +47 -47
  88. package/src/components/InputSearch/index.vue +75 -75
  89. package/src/components/Layout/AsideNav/index.vue +119 -119
  90. package/src/components/Layout/AsideNav/menuItem.vue +34 -34
  91. package/src/components/Layout/AsideNav/submenuTitle.vue +26 -26
  92. package/src/components/Layout/HeaderWrap/changePwd.vue +215 -215
  93. package/src/components/Layout/HeaderWrap/index.vue +373 -373
  94. package/src/components/Layout/HeaderWrap/noticePop.vue +300 -300
  95. package/src/components/Layout/SubContent/index.vue +131 -131
  96. package/src/components/Layout/TabsNav/index.vue +170 -170
  97. package/src/components/Layout/index.vue +529 -529
  98. package/src/components/Layout/utils.js +12 -12
  99. package/src/components/LoginTemporary/form.vue +561 -563
  100. package/src/components/LoginTemporary/index.vue +139 -146
  101. package/src/components/LoginTemporary/qrcode.vue +90 -90
  102. package/src/components/LoginTemporary/retrievePw.vue +372 -374
  103. package/src/components/LoginTemporary/utils.js +73 -73
  104. package/src/components/MicroApp/index.js +67 -67
  105. package/src/components/MicroFrame/index.vue +95 -95
  106. package/src/components/MoreTab/index.vue +232 -232
  107. package/src/components/NavMenu/index.vue +60 -60
  108. package/src/components/NstcG6Components/NstcDialog/NstcDialog.vue +184 -184
  109. package/src/components/PageLayout/page.vue +15 -15
  110. package/src/components/Pagination/index.vue +165 -165
  111. package/src/components/SecondaryTab/index.vue +58 -58
  112. package/src/components/SelectLazy/index.vue +75 -75
  113. package/src/components/SelectTree/SelectTreeLazy.vue +241 -241
  114. package/src/components/SelectTree/index.vue +205 -205
  115. package/src/components/ShowColumn/index.vue +213 -208
  116. package/src/components/Sifting/index.vue +99 -99
  117. package/src/components/Statis/index.vue +97 -97
  118. package/src/components/Statis/statisItem.vue +54 -54
  119. package/src/components/Statis/statisPopover.vue +55 -55
  120. package/src/components/Step/index.vue +38 -38
  121. package/src/components/Suspend/index.vue +72 -72
  122. package/src/components/Table/index.vue +209 -209
  123. package/src/components/Table/indexO.vue +149 -149
  124. package/src/components/Task/index.vue +26 -26
  125. package/src/components/TertiaryTab/index.vue +63 -63
  126. package/src/components/TimePicker/index.vue +28 -28
  127. package/src/components/Upload/index.vue +242 -242
  128. package/src/components/WornPagination/index.vue +73 -73
  129. package/src/directives/VClickOutside/index.js +19 -19
  130. package/src/directives/VHas/index.js +58 -58
  131. package/src/directives/VMove/index.js +42 -42
  132. package/src/directives/VTitle/index.js +69 -69
  133. package/src/directives/VTitle/tooltip.vue +21 -21
  134. package/src/index.js +229 -229
  135. package/src/plugins/CompatibleOld/index.js +57 -57
  136. package/src/plugins/Print/index.js +4 -4
  137. package/src/plugins/Print/print-js/.babelrc +12 -12
  138. package/src/plugins/Print/print-js/LICENSE +21 -21
  139. package/src/plugins/Print/print-js/README.md +98 -98
  140. package/src/plugins/Print/print-js/dist/print.css +96 -96
  141. package/src/plugins/Print/print-js/dist/print.js +990 -990
  142. package/src/plugins/Print/print-js/package.json +60 -60
  143. package/src/plugins/Print/print-js/src/index.d.ts +45 -45
  144. package/src/plugins/Print/print-js/src/index.js +10 -10
  145. package/src/plugins/Print/print-js/src/js/browser.js +33 -33
  146. package/src/plugins/Print/print-js/src/js/functions.js +103 -103
  147. package/src/plugins/Print/print-js/src/js/html.js +70 -70
  148. package/src/plugins/Print/print-js/src/js/image.js +48 -48
  149. package/src/plugins/Print/print-js/src/js/init.js +168 -168
  150. package/src/plugins/Print/print-js/src/js/json.js +109 -109
  151. package/src/plugins/Print/print-js/src/js/modal.js +62 -62
  152. package/src/plugins/Print/print-js/src/js/pdf.js +62 -62
  153. package/src/plugins/Print/print-js/src/js/print.js +102 -102
  154. package/src/plugins/Print/print-js/src/js/raw-html.js +15 -15
  155. package/src/plugins/Print/print-js/src/sass/index.scss +13 -13
  156. package/src/plugins/Print/print-js/src/sass/modules/_colors.scss +9 -9
  157. package/src/plugins/Print/print-js/src/sass/partials/_modal.scss +40 -40
  158. package/src/plugins/Print/print-js/src/sass/partials/_spinner.scss +45 -45
  159. package/src/plugins/Print/print.js +2 -2
  160. package/src/plugins/Print/print.scss +1 -1
  161. package/src/plugins/SetMenuTree/index.vue +41 -41
  162. package/src/plugins/SetMenuTree/logoIcon.vue +37 -37
  163. package/src/plugins/SetMenuTree/setmenutree.vue +427 -427
  164. package/src/plugins/SetMenuTree/utils.js +74 -74
  165. package/src/plugins/Sign/InfosecNetSignCNGAgent.min.js +2000 -2000
  166. package/src/plugins/Sign/index.js +65 -65
  167. package/src/plugins/Sign/sign.js +1 -1
  168. package/src/plugins/setTabsForSub.js +2 -2
  169. package/src/utils/auth.js +53 -53
  170. package/src/utils/axios.js +203 -203
  171. package/src/utils/downloadBlob.js +19 -19
  172. package/src/utils/forEachs.js +16 -16
  173. package/src/utils/getScrollContainer.js +43 -43
  174. package/src/utils/i18n/cn2hk.json +1270 -1270
  175. package/src/utils/i18n/index.js +50 -50
  176. package/src/utils/list2tree.js +36 -36
  177. package/src/utils/msgboxPor.js +26 -26
  178. package/src/utils/print.js +161 -161
  179. package/src/utils/relaNo.js +76 -76
  180. package/src/utils/repairElementUI.js +66 -66
  181. package/src/utils/urlToGo.js +82 -82
  182. package/style/css/normalize.scss +726 -726
  183. package/style/index.css +3 -3
  184. package/style/pageDemo/demo-1.vue +131 -131
  185. package/style/pageDemo/demo-2.vue +35 -35
  186. package/style/pageDemo/demo-3.vue +22 -22
  187. package/style/pageDemo/seeCode.js +20 -20
  188. package/style/server-config.jsonc +606 -606
  189. package/src/components/.DS_Store +0 -0
  190. package/src/components/Layout/.DS_Store +0 -0
  191. package/src/components/NstcG6Components/.DS_Store +0 -0
@@ -1,60 +1,60 @@
1
- {
2
- "name": "print-js",
3
- "homepage": "http://printjs.crabbly.com",
4
- "description": "A tiny javascript library to help printing from the web.",
5
- "version": "1.6.0",
6
- "main": "dist/print.js",
7
- "types": "src/index.d.ts",
8
- "repository": "https://github.com/crabbly/Print.js",
9
- "license": "MIT",
10
- "devDependencies": {
11
- "@babel/core": "7.11.6",
12
- "@babel/preset-env": "7.11.5",
13
- "babel-loader": "8.1.0",
14
- "coveralls": "3.1.0",
15
- "css-loader": "4.2.2",
16
- "istanbul-instrumenter-loader": "3.0.1",
17
- "jasmine-core": "3.6.0",
18
- "karma": "5.2.1",
19
- "karma-chrome-launcher": "3.1.0",
20
- "karma-coverage": "2.0.3",
21
- "karma-jasmine": "4.0.1",
22
- "karma-phantomjs-launcher": "1.0.4",
23
- "karma-sourcemap-loader": "0.3.8",
24
- "karma-webpack": "4.0.2",
25
- "mini-css-extract-plugin": "0.11.0",
26
- "node-sass": "4.14.1",
27
- "optimize-css-assets-webpack-plugin": "5.0.4",
28
- "sass-loader": "10.0.2",
29
- "standard": "14.3.4",
30
- "terser-webpack-plugin": "4.1.0",
31
- "webpack": "4.44.1",
32
- "webpack-cli": "3.3.12",
33
- "webpack-dev-server": "3.11.0"
34
- },
35
- "scripts": {
36
- "test": "standard && karma start",
37
- "dev": "webpack --mode development --progress --hide-modules --devtool source-map",
38
- "watch": "webpack --mode development --watch --progress --hide-modules",
39
- "production": "webpack --mode production --progress --hide-modules",
40
- "coverage": "open coverage/lcov-report/index.html",
41
- "coveralls": "cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js",
42
- "start": "webpack-dev-server --public http://localhost:8080/test/manual --open",
43
- "standard:fix": "standard --fix"
44
- },
45
- "author": "Rodrigo Vieira <rodrigo@crabbly.com>",
46
- "standard": {
47
- "ignore": [
48
- "/dist/print.js"
49
- ],
50
- "env": {
51
- "browser": true,
52
- "jasmine": true
53
- }
54
- },
55
- "keywords": [
56
- "printjs",
57
- "print.js",
58
- "print-js"
59
- ]
60
- }
1
+ {
2
+ "name": "print-js",
3
+ "homepage": "http://printjs.crabbly.com",
4
+ "description": "A tiny javascript library to help printing from the web.",
5
+ "version": "1.6.0",
6
+ "main": "dist/print.js",
7
+ "types": "src/index.d.ts",
8
+ "repository": "https://github.com/crabbly/Print.js",
9
+ "license": "MIT",
10
+ "devDependencies": {
11
+ "@babel/core": "7.11.6",
12
+ "@babel/preset-env": "7.11.5",
13
+ "babel-loader": "8.1.0",
14
+ "coveralls": "3.1.0",
15
+ "css-loader": "4.2.2",
16
+ "istanbul-instrumenter-loader": "3.0.1",
17
+ "jasmine-core": "3.6.0",
18
+ "karma": "5.2.1",
19
+ "karma-chrome-launcher": "3.1.0",
20
+ "karma-coverage": "2.0.3",
21
+ "karma-jasmine": "4.0.1",
22
+ "karma-phantomjs-launcher": "1.0.4",
23
+ "karma-sourcemap-loader": "0.3.8",
24
+ "karma-webpack": "4.0.2",
25
+ "mini-css-extract-plugin": "0.11.0",
26
+ "node-sass": "4.14.1",
27
+ "optimize-css-assets-webpack-plugin": "5.0.4",
28
+ "sass-loader": "10.0.2",
29
+ "standard": "14.3.4",
30
+ "terser-webpack-plugin": "4.1.0",
31
+ "webpack": "4.44.1",
32
+ "webpack-cli": "3.3.12",
33
+ "webpack-dev-server": "3.11.0"
34
+ },
35
+ "scripts": {
36
+ "test": "standard && karma start",
37
+ "dev": "webpack --mode development --progress --hide-modules --devtool source-map",
38
+ "watch": "webpack --mode development --watch --progress --hide-modules",
39
+ "production": "webpack --mode production --progress --hide-modules",
40
+ "coverage": "open coverage/lcov-report/index.html",
41
+ "coveralls": "cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js",
42
+ "start": "webpack-dev-server --public http://localhost:8080/test/manual --open",
43
+ "standard:fix": "standard --fix"
44
+ },
45
+ "author": "Rodrigo Vieira <rodrigo@crabbly.com>",
46
+ "standard": {
47
+ "ignore": [
48
+ "/dist/print.js"
49
+ ],
50
+ "env": {
51
+ "browser": true,
52
+ "jasmine": true
53
+ }
54
+ },
55
+ "keywords": [
56
+ "printjs",
57
+ "print.js",
58
+ "print-js"
59
+ ]
60
+ }
@@ -1,45 +1,45 @@
1
- declare function printJS(configuration: printJS.Configuration): void;
2
- declare function printJS(source: string, type?: printJS.PrintTypes): void;
3
-
4
- declare namespace printJS {
5
- type PrintTypes = 'pdf' | 'html' | 'image' | 'json' | 'raw-html';
6
-
7
- interface Configuration {
8
- printable: any;
9
- fallbackPrintable?: string;
10
- type?: PrintTypes;
11
- documentTitle?: string;
12
- header?: any;
13
- headerStyle?: string;
14
- maxWidth?: number;
15
- targetStyle?: string | string[];
16
- targetStyles?: string | string[];
17
- properties?: any;
18
- gridHeaderStyle?: string;
19
- gridStyle?: string;
20
- showModal?: boolean;
21
- onLoadingStart?: () => void;
22
- onLoadingEnd?: () => void;
23
- modalMessage?: string;
24
- frameId?: string;
25
- ignoreElements?: string | string[];
26
- repeatTableHeader?: boolean;
27
- css?: string | string[];
28
- style?: string;
29
- scanStyles?: boolean;
30
- onError?: (error: any, xmlHttpRequest?: XMLHttpRequest) => void;
31
- onPrintDialogClose?: () => void;
32
- onIncompatibleBrowser?: () => void;
33
- base64?: boolean;
34
-
35
- // Deprecated
36
- onPdfOpen?: () => void;
37
- font?: string;
38
- font_size?: string;
39
- honorMarginPadding?: boolean;
40
- honorColor?: boolean;
41
- imageStyle?: string;
42
- }
43
- }
44
-
45
- export = printJS;
1
+ declare function printJS(configuration: printJS.Configuration): void;
2
+ declare function printJS(source: string, type?: printJS.PrintTypes): void;
3
+
4
+ declare namespace printJS {
5
+ type PrintTypes = 'pdf' | 'html' | 'image' | 'json' | 'raw-html';
6
+
7
+ interface Configuration {
8
+ printable: any;
9
+ fallbackPrintable?: string;
10
+ type?: PrintTypes;
11
+ documentTitle?: string;
12
+ header?: any;
13
+ headerStyle?: string;
14
+ maxWidth?: number;
15
+ targetStyle?: string | string[];
16
+ targetStyles?: string | string[];
17
+ properties?: any;
18
+ gridHeaderStyle?: string;
19
+ gridStyle?: string;
20
+ showModal?: boolean;
21
+ onLoadingStart?: () => void;
22
+ onLoadingEnd?: () => void;
23
+ modalMessage?: string;
24
+ frameId?: string;
25
+ ignoreElements?: string | string[];
26
+ repeatTableHeader?: boolean;
27
+ css?: string | string[];
28
+ style?: string;
29
+ scanStyles?: boolean;
30
+ onError?: (error: any, xmlHttpRequest?: XMLHttpRequest) => void;
31
+ onPrintDialogClose?: () => void;
32
+ onIncompatibleBrowser?: () => void;
33
+ base64?: boolean;
34
+
35
+ // Deprecated
36
+ onPdfOpen?: () => void;
37
+ font?: string;
38
+ font_size?: string;
39
+ honorMarginPadding?: boolean;
40
+ honorColor?: boolean;
41
+ imageStyle?: string;
42
+ }
43
+ }
44
+
45
+ export = printJS;
@@ -1,10 +1,10 @@
1
- import './sass/index.scss'
2
- import print from './js/init'
3
-
4
- const printJS = print.init
5
-
6
- if (typeof window !== 'undefined') {
7
- window.printJS = printJS
8
- }
9
-
10
- export default printJS
1
+ import './sass/index.scss'
2
+ import print from './js/init'
3
+
4
+ const printJS = print.init
5
+
6
+ if (typeof window !== 'undefined') {
7
+ window.printJS = printJS
8
+ }
9
+
10
+ export default printJS
@@ -1,33 +1,33 @@
1
- const Browser = {
2
- // Firefox 1.0+
3
- isFirefox: () => {
4
- return typeof InstallTrigger !== 'undefined'
5
- },
6
- // Internet Explorer 6-11
7
- isIE: () => {
8
- return navigator.userAgent.indexOf('MSIE') !== -1 || !!document.documentMode
9
- },
10
- // Edge 20+
11
- isEdge: () => {
12
- return !Browser.isIE() && !!window.StyleMedia
13
- },
14
- // Chrome 1+
15
- isChrome: (context = window) => {
16
- return !!context.chrome
17
- },
18
- // At least Safari 3+: "[object HTMLElementConstructor]"
19
- isSafari: () => {
20
- return Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0 ||
21
- navigator.userAgent.toLowerCase().indexOf('safari') !== -1
22
- },
23
- // IOS Chrome
24
- isIOSChrome: () => {
25
- return navigator.userAgent.toLowerCase().indexOf('crios') !== -1
26
- },
27
- // QiCheng
28
- isNstc: () => {
29
- return navigator.userAgent.indexOf('NSTC-WebEntry') !== -1
30
- }
31
- }
32
-
33
- export default Browser
1
+ const Browser = {
2
+ // Firefox 1.0+
3
+ isFirefox: () => {
4
+ return typeof InstallTrigger !== 'undefined'
5
+ },
6
+ // Internet Explorer 6-11
7
+ isIE: () => {
8
+ return navigator.userAgent.indexOf('MSIE') !== -1 || !!document.documentMode
9
+ },
10
+ // Edge 20+
11
+ isEdge: () => {
12
+ return !Browser.isIE() && !!window.StyleMedia
13
+ },
14
+ // Chrome 1+
15
+ isChrome: (context = window) => {
16
+ return !!context.chrome
17
+ },
18
+ // At least Safari 3+: "[object HTMLElementConstructor]"
19
+ isSafari: () => {
20
+ return Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0 ||
21
+ navigator.userAgent.toLowerCase().indexOf('safari') !== -1
22
+ },
23
+ // IOS Chrome
24
+ isIOSChrome: () => {
25
+ return navigator.userAgent.toLowerCase().indexOf('crios') !== -1
26
+ },
27
+ // QiCheng
28
+ isNstc: () => {
29
+ return navigator.userAgent.indexOf('NSTC-WebEntry') !== -1
30
+ }
31
+ }
32
+
33
+ export default Browser
@@ -1,103 +1,103 @@
1
- import Modal from './modal'
2
- import Browser from './browser'
3
-
4
- export function addWrapper (htmlData, params) {
5
- const bodyStyle = 'font-family:' + params.font + ' !important; font-size: ' + params.font_size + ' !important; width:100%;'
6
- return '<div style="' + bodyStyle + '">' + htmlData + '</div>'
7
- }
8
-
9
- export function capitalizePrint (obj) {
10
- return obj.charAt(0).toUpperCase() + obj.slice(1)
11
- }
12
-
13
- export function collectStyles (element, params) {
14
- const win = document.defaultView || window
15
-
16
- // String variable to hold styling for each element
17
- let elementStyle = ''
18
-
19
- // Loop over computed styles
20
- const styles = win.getComputedStyle(element, '')
21
-
22
- for (let key = 0; key < styles.length; key++) {
23
- // Check if style should be processed
24
- if (params.targetStyles.indexOf('*') !== -1 || params.targetStyle.indexOf(styles[key]) !== -1 || targetStylesMatch(params.targetStyles, styles[key])) {
25
- if (styles.getPropertyValue(styles[key])) elementStyle += styles[key] + ':' + styles.getPropertyValue(styles[key]) + ';'
26
- }
27
- }
28
-
29
- // Print friendly defaults (deprecated)
30
- elementStyle += 'max-width: ' + params.maxWidth + 'px !important; font-size: ' + params.font_size + ' !important;'
31
-
32
- return elementStyle
33
- }
34
-
35
- function targetStylesMatch (styles, value) {
36
- for (let i = 0; i < styles.length; i++) {
37
- if (typeof value === 'object' && value.indexOf(styles[i]) !== -1) return true
38
- }
39
- return false
40
- }
41
-
42
- export function addHeader (printElement, params) {
43
- // Create the header container div
44
- const headerContainer = document.createElement('div')
45
-
46
- // Check if the header is text or raw html
47
- if (isRawHTML(params.header)) {
48
- headerContainer.innerHTML = params.header
49
- } else {
50
- // Create header element
51
- const headerElement = document.createElement('h1')
52
-
53
- // Create header text node
54
- const headerNode = document.createTextNode(params.header)
55
-
56
- // Build and style
57
- headerElement.appendChild(headerNode)
58
- headerElement.setAttribute('style', params.headerStyle)
59
- headerContainer.appendChild(headerElement)
60
- }
61
-
62
- printElement.insertBefore(headerContainer, printElement.childNodes[0])
63
- }
64
-
65
- export function cleanUp (params) {
66
- // If we are showing a feedback message to user, remove it
67
- if (params.showModal) Modal.close()
68
-
69
- // Check for a finished loading hook function
70
- if (params.onLoadingEnd) params.onLoadingEnd()
71
-
72
- // If preloading pdf files, clean blob url
73
- if (params.showModal || params.onLoadingStart) window.URL.revokeObjectURL(params.printable)
74
-
75
- // Run onPrintDialogClose callback
76
- let event = 'mouseover'
77
-
78
- if (Browser.isChrome() || Browser.isFirefox()) {
79
- // Ps.: Firefox will require an extra click in the document to fire the focus event.
80
- event = 'focus'
81
- }
82
-
83
- const handler = () => {
84
- // Make sure the event only happens once.
85
- window.removeEventListener(event, handler)
86
-
87
- params.onPrintDialogClose()
88
-
89
- // Remove iframe from the DOM
90
- const iframe = document.getElementById(params.frameId)
91
-
92
- if (iframe) {
93
- iframe.remove()
94
- }
95
- }
96
-
97
- window.addEventListener(event, handler)
98
- }
99
-
100
- export function isRawHTML (raw) {
101
- const regexHtml = new RegExp('<([A-Za-z][A-Za-z0-9]*)\\b[^>]*>(.*?)</\\1>')
102
- return regexHtml.test(raw)
103
- }
1
+ import Modal from './modal'
2
+ import Browser from './browser'
3
+
4
+ export function addWrapper (htmlData, params) {
5
+ const bodyStyle = 'font-family:' + params.font + ' !important; font-size: ' + params.font_size + ' !important; width:100%;'
6
+ return '<div style="' + bodyStyle + '">' + htmlData + '</div>'
7
+ }
8
+
9
+ export function capitalizePrint (obj) {
10
+ return obj.charAt(0).toUpperCase() + obj.slice(1)
11
+ }
12
+
13
+ export function collectStyles (element, params) {
14
+ const win = document.defaultView || window
15
+
16
+ // String variable to hold styling for each element
17
+ let elementStyle = ''
18
+
19
+ // Loop over computed styles
20
+ const styles = win.getComputedStyle(element, '')
21
+
22
+ for (let key = 0; key < styles.length; key++) {
23
+ // Check if style should be processed
24
+ if (params.targetStyles.indexOf('*') !== -1 || params.targetStyle.indexOf(styles[key]) !== -1 || targetStylesMatch(params.targetStyles, styles[key])) {
25
+ if (styles.getPropertyValue(styles[key])) elementStyle += styles[key] + ':' + styles.getPropertyValue(styles[key]) + ';'
26
+ }
27
+ }
28
+
29
+ // Print friendly defaults (deprecated)
30
+ elementStyle += 'max-width: ' + params.maxWidth + 'px !important; font-size: ' + params.font_size + ' !important;'
31
+
32
+ return elementStyle
33
+ }
34
+
35
+ function targetStylesMatch (styles, value) {
36
+ for (let i = 0; i < styles.length; i++) {
37
+ if (typeof value === 'object' && value.indexOf(styles[i]) !== -1) return true
38
+ }
39
+ return false
40
+ }
41
+
42
+ export function addHeader (printElement, params) {
43
+ // Create the header container div
44
+ const headerContainer = document.createElement('div')
45
+
46
+ // Check if the header is text or raw html
47
+ if (isRawHTML(params.header)) {
48
+ headerContainer.innerHTML = params.header
49
+ } else {
50
+ // Create header element
51
+ const headerElement = document.createElement('h1')
52
+
53
+ // Create header text node
54
+ const headerNode = document.createTextNode(params.header)
55
+
56
+ // Build and style
57
+ headerElement.appendChild(headerNode)
58
+ headerElement.setAttribute('style', params.headerStyle)
59
+ headerContainer.appendChild(headerElement)
60
+ }
61
+
62
+ printElement.insertBefore(headerContainer, printElement.childNodes[0])
63
+ }
64
+
65
+ export function cleanUp (params) {
66
+ // If we are showing a feedback message to user, remove it
67
+ if (params.showModal) Modal.close()
68
+
69
+ // Check for a finished loading hook function
70
+ if (params.onLoadingEnd) params.onLoadingEnd()
71
+
72
+ // If preloading pdf files, clean blob url
73
+ if (params.showModal || params.onLoadingStart) window.URL.revokeObjectURL(params.printable)
74
+
75
+ // Run onPrintDialogClose callback
76
+ let event = 'mouseover'
77
+
78
+ if (Browser.isChrome() || Browser.isFirefox()) {
79
+ // Ps.: Firefox will require an extra click in the document to fire the focus event.
80
+ event = 'focus'
81
+ }
82
+
83
+ const handler = () => {
84
+ // Make sure the event only happens once.
85
+ window.removeEventListener(event, handler)
86
+
87
+ params.onPrintDialogClose()
88
+
89
+ // Remove iframe from the DOM
90
+ const iframe = document.getElementById(params.frameId)
91
+
92
+ if (iframe) {
93
+ iframe.remove()
94
+ }
95
+ }
96
+
97
+ window.addEventListener(event, handler)
98
+ }
99
+
100
+ export function isRawHTML (raw) {
101
+ const regexHtml = new RegExp('<([A-Za-z][A-Za-z0-9]*)\\b[^>]*>(.*?)</\\1>')
102
+ return regexHtml.test(raw)
103
+ }
@@ -1,70 +1,70 @@
1
- import { collectStyles, addHeader } from './functions'
2
- import Print from './print'
3
-
4
- export default {
5
- print: (params, printFrame) => {
6
- // Get the DOM printable element
7
- const printElement = isHtmlElement(params.printable) ? params.printable : document.getElementById(params.printable)
8
-
9
- // Check if the element exists
10
- if (!printElement) {
11
- window.console.error('Invalid HTML element id: ' + params.printable)
12
- return
13
- }
14
-
15
- // Clone the target element including its children (if available)
16
- params.printableElement = cloneElement(printElement, params)
17
-
18
- // Add header
19
- if (params.header) {
20
- addHeader(params.printableElement, params)
21
- }
22
-
23
- // Print html element contents
24
- Print.send(params, printFrame)
25
- }
26
- }
27
-
28
- function cloneElement (element, params) {
29
- // Clone the main node (if not already inside the recursion process)
30
- const clone = element.cloneNode()
31
-
32
- // Loop over and process the children elements / nodes (including text nodes)
33
- const childNodesArray = Array.prototype.slice.call(element.childNodes)
34
- for (let i = 0; i < childNodesArray.length; i++) {
35
- // Check if we are skipping the current element
36
- if (params.ignoreElements.indexOf(childNodesArray[i].id) !== -1) {
37
- continue
38
- }
39
-
40
- // Clone the child element
41
- const clonedChild = cloneElement(childNodesArray[i], params)
42
-
43
- // Attach the cloned child to the cloned parent node
44
- clone.appendChild(clonedChild)
45
- }
46
-
47
- // Get all styling for print element (for nodes of type element only)
48
- if (params.scanStyles && element.nodeType === 1) {
49
- clone.setAttribute('style', collectStyles(element, params))
50
- }
51
-
52
- // Check if the element needs any state processing (copy user input data)
53
- switch (element.tagName) {
54
- case 'SELECT':
55
- // Copy the current selection value to its clone
56
- clone.value = element.value
57
- break
58
- case 'CANVAS':
59
- // Copy the canvas content to its clone
60
- clone.getContext('2d').drawImage(element, 0, 0)
61
- break
62
- }
63
-
64
- return clone
65
- }
66
-
67
- function isHtmlElement (printable) {
68
- // Check if element is instance of HTMLElement or has nodeType === 1 (for elements in iframe)
69
- return typeof printable === 'object' && printable && (printable instanceof HTMLElement || printable.nodeType === 1)
70
- }
1
+ import { collectStyles, addHeader } from './functions'
2
+ import Print from './print'
3
+
4
+ export default {
5
+ print: (params, printFrame) => {
6
+ // Get the DOM printable element
7
+ const printElement = isHtmlElement(params.printable) ? params.printable : document.getElementById(params.printable)
8
+
9
+ // Check if the element exists
10
+ if (!printElement) {
11
+ window.console.error('Invalid HTML element id: ' + params.printable)
12
+ return
13
+ }
14
+
15
+ // Clone the target element including its children (if available)
16
+ params.printableElement = cloneElement(printElement, params)
17
+
18
+ // Add header
19
+ if (params.header) {
20
+ addHeader(params.printableElement, params)
21
+ }
22
+
23
+ // Print html element contents
24
+ Print.send(params, printFrame)
25
+ }
26
+ }
27
+
28
+ function cloneElement (element, params) {
29
+ // Clone the main node (if not already inside the recursion process)
30
+ const clone = element.cloneNode()
31
+
32
+ // Loop over and process the children elements / nodes (including text nodes)
33
+ const childNodesArray = Array.prototype.slice.call(element.childNodes)
34
+ for (let i = 0; i < childNodesArray.length; i++) {
35
+ // Check if we are skipping the current element
36
+ if (params.ignoreElements.indexOf(childNodesArray[i].id) !== -1) {
37
+ continue
38
+ }
39
+
40
+ // Clone the child element
41
+ const clonedChild = cloneElement(childNodesArray[i], params)
42
+
43
+ // Attach the cloned child to the cloned parent node
44
+ clone.appendChild(clonedChild)
45
+ }
46
+
47
+ // Get all styling for print element (for nodes of type element only)
48
+ if (params.scanStyles && element.nodeType === 1) {
49
+ clone.setAttribute('style', collectStyles(element, params))
50
+ }
51
+
52
+ // Check if the element needs any state processing (copy user input data)
53
+ switch (element.tagName) {
54
+ case 'SELECT':
55
+ // Copy the current selection value to its clone
56
+ clone.value = element.value
57
+ break
58
+ case 'CANVAS':
59
+ // Copy the canvas content to its clone
60
+ clone.getContext('2d').drawImage(element, 0, 0)
61
+ break
62
+ }
63
+
64
+ return clone
65
+ }
66
+
67
+ function isHtmlElement (printable) {
68
+ // Check if element is instance of HTMLElement or has nodeType === 1 (for elements in iframe)
69
+ return typeof printable === 'object' && printable && (printable instanceof HTMLElement || printable.nodeType === 1)
70
+ }