n20-common-lib 1.2.39 → 1.2.42

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 (188) 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 +44 -44
  56. package/src/components/ApprovalRecord/flowDialog.vue +45 -45
  57. package/src/components/ApprovalRecord/index.vue +59 -59
  58. package/src/components/Button/button-group.vue +150 -150
  59. package/src/components/Button/icon-group-button.vue +61 -61
  60. package/src/components/Button/index.vue +56 -56
  61. package/src/components/CascaderArea/index.vue +103 -103
  62. package/src/components/ContentLoading/index.vue +41 -41
  63. package/src/components/ContentNull/index.vue +19 -19
  64. package/src/components/DatePicker/index.vue +27 -27
  65. package/src/components/DatePicker/por.vue +169 -169
  66. package/src/components/Dialog/index.vue +26 -26
  67. package/src/components/Dialog/indexO.vue +116 -116
  68. package/src/components/DragList/index.vue +75 -75
  69. package/src/components/Empty/img/abnormal.svg +108 -108
  70. package/src/components/Empty/img/dispose.svg +71 -71
  71. package/src/components/Empty/img/empty.svg +57 -57
  72. package/src/components/Empty/img/general.svg +58 -58
  73. package/src/components/Empty/img/lock.svg +57 -57
  74. package/src/components/Empty/img/network.svg +59 -59
  75. package/src/components/Empty/img/relevant.svg +68 -68
  76. package/src/components/Empty/img/search.svg +72 -72
  77. package/src/components/Empty/index.vue +92 -92
  78. package/src/components/Expandable/index.vue +49 -49
  79. package/src/components/Expandable/main.vue +52 -52
  80. package/src/components/FileExportAsync/index.vue +178 -178
  81. package/src/components/FileUploadTable/index.vue +484 -484
  82. package/src/components/Filters/index.vue +371 -371
  83. package/src/components/Filters/indexO.vue +104 -104
  84. package/src/components/FlowStep/index.vue +68 -68
  85. package/src/components/FooterBox/index.vue +21 -21
  86. package/src/components/GeneralCard/index.vue +15 -15
  87. package/src/components/InputNumber/index.vue +169 -169
  88. package/src/components/InputNumber/numberRange.vue +47 -47
  89. package/src/components/InputSearch/index.vue +75 -75
  90. package/src/components/Layout/AsideNav/index.vue +120 -119
  91. package/src/components/Layout/AsideNav/menuItem.vue +34 -34
  92. package/src/components/Layout/AsideNav/submenuTitle.vue +26 -26
  93. package/src/components/Layout/HeaderWrap/changePwd.vue +215 -215
  94. package/src/components/Layout/HeaderWrap/index.vue +371 -371
  95. package/src/components/Layout/HeaderWrap/noticePop.vue +316 -316
  96. package/src/components/Layout/SubContent/index.vue +127 -127
  97. package/src/components/Layout/TabsNav/index.vue +170 -170
  98. package/src/components/Layout/index.vue +518 -518
  99. package/src/components/Layout/utils.js +12 -12
  100. package/src/components/LoginTemporary/form.vue +570 -570
  101. package/src/components/LoginTemporary/index.vue +139 -139
  102. package/src/components/LoginTemporary/retrievePw.vue +372 -372
  103. package/src/components/MicroApp/index.js +67 -67
  104. package/src/components/MicroFrame/index.vue +95 -95
  105. package/src/components/MoreTab/index.vue +232 -232
  106. package/src/components/NavMenu/index.vue +60 -60
  107. package/src/components/PageLayout/page.vue +15 -15
  108. package/src/components/Pagination/index.vue +165 -165
  109. package/src/components/SecondaryTab/index.vue +58 -58
  110. package/src/components/SelectLazy/index.vue +75 -75
  111. package/src/components/SelectTree/SelectTreeLazy.vue +241 -241
  112. package/src/components/SelectTree/index.vue +205 -205
  113. package/src/components/ShowColumn/index.vue +213 -213
  114. package/src/components/Sifting/index.vue +99 -99
  115. package/src/components/Statis/index.vue +97 -97
  116. package/src/components/Statis/statisItem.vue +54 -54
  117. package/src/components/Statis/statisPopover.vue +55 -55
  118. package/src/components/Step/index.vue +38 -38
  119. package/src/components/Suspend/index.vue +72 -72
  120. package/src/components/Table/index.vue +209 -209
  121. package/src/components/Table/indexO.vue +149 -149
  122. package/src/components/Task/index.vue +26 -26
  123. package/src/components/TertiaryTab/index.vue +63 -63
  124. package/src/components/TimePicker/index.vue +28 -28
  125. package/src/components/Upload/index.vue +242 -242
  126. package/src/components/WornPagination/index.vue +73 -73
  127. package/src/directives/VClickOutside/index.js +19 -19
  128. package/src/directives/VHas/index.js +58 -58
  129. package/src/directives/VMove/index.js +42 -42
  130. package/src/directives/VTitle/index.js +69 -69
  131. package/src/directives/VTitle/tooltip.vue +21 -21
  132. package/src/index.js +232 -232
  133. package/src/plugins/CompatibleOld/index.js +57 -57
  134. package/src/plugins/Print/index.js +4 -4
  135. package/src/plugins/Print/print-js/.babelrc +12 -12
  136. package/src/plugins/Print/print-js/LICENSE +21 -21
  137. package/src/plugins/Print/print-js/README.md +98 -98
  138. package/src/plugins/Print/print-js/dist/print.css +96 -96
  139. package/src/plugins/Print/print-js/dist/print.js +990 -990
  140. package/src/plugins/Print/print-js/package.json +60 -60
  141. package/src/plugins/Print/print-js/src/index.d.ts +45 -45
  142. package/src/plugins/Print/print-js/src/index.js +10 -10
  143. package/src/plugins/Print/print-js/src/js/browser.js +33 -33
  144. package/src/plugins/Print/print-js/src/js/functions.js +103 -103
  145. package/src/plugins/Print/print-js/src/js/html.js +70 -70
  146. package/src/plugins/Print/print-js/src/js/image.js +48 -48
  147. package/src/plugins/Print/print-js/src/js/init.js +168 -168
  148. package/src/plugins/Print/print-js/src/js/json.js +109 -109
  149. package/src/plugins/Print/print-js/src/js/modal.js +62 -62
  150. package/src/plugins/Print/print-js/src/js/pdf.js +62 -62
  151. package/src/plugins/Print/print-js/src/js/print.js +102 -102
  152. package/src/plugins/Print/print-js/src/js/raw-html.js +15 -15
  153. package/src/plugins/Print/print-js/src/sass/index.scss +13 -13
  154. package/src/plugins/Print/print-js/src/sass/modules/_colors.scss +9 -9
  155. package/src/plugins/Print/print-js/src/sass/partials/_modal.scss +40 -40
  156. package/src/plugins/Print/print-js/src/sass/partials/_spinner.scss +45 -45
  157. package/src/plugins/Print/print.js +2 -2
  158. package/src/plugins/Print/print.scss +1 -1
  159. package/src/plugins/SetMenuTree/index.vue +41 -41
  160. package/src/plugins/SetMenuTree/logoIcon.vue +37 -37
  161. package/src/plugins/SetMenuTree/setmenutree.vue +427 -427
  162. package/src/plugins/SetMenuTree/utils.js +74 -74
  163. package/src/plugins/Sign/InfosecNetSignCNGAgent.min.js +2000 -2000
  164. package/src/plugins/Sign/index.js +65 -65
  165. package/src/plugins/Sign/sign.js +1 -1
  166. package/src/plugins/setTabsForSub.js +2 -2
  167. package/src/utils/auth.js +53 -53
  168. package/src/utils/axios.js +203 -203
  169. package/src/utils/downloadBlob.js +19 -19
  170. package/src/utils/forEachs.js +16 -16
  171. package/src/utils/getScrollContainer.js +43 -43
  172. package/src/utils/i18n/cn2hk.json +1270 -1270
  173. package/src/utils/i18n/index.js +50 -50
  174. package/src/utils/list2tree.js +36 -36
  175. package/src/utils/msgboxPor.js +26 -26
  176. package/src/utils/print.js +161 -161
  177. package/src/utils/relaNo.js +72 -72
  178. package/src/utils/repairElementUI.js +95 -66
  179. package/src/utils/urlToGo.js +82 -82
  180. package/style/css/normalize.scss +726 -0
  181. package/style/index.css +3 -3
  182. package/style/index.css.map +1 -1
  183. package/style/pageDemo/demo-1.vue +131 -0
  184. package/style/pageDemo/demo-2.vue +35 -0
  185. package/style/pageDemo/demo-3.vue +22 -0
  186. package/style/pageDemo/seeCode.js +20 -0
  187. package/style/server-config.jsonc +606 -0
  188. package/src/components/NstcG6Components/NstcDialog/NstcDialog.vue +0 -185
@@ -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
+ }