@delon/theme 12.4.2 → 13.1.0

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 (219) hide show
  1. package/compact.css +1278 -750
  2. package/compact.min.css +1 -1
  3. package/dark.css +1325 -797
  4. package/dark.min.css +1 -1
  5. package/default.css +1286 -758
  6. package/default.min.css +1 -1
  7. package/{esm2015/layout-blank/layout-blank.js → esm2020/layout-blank/layout-blank.mjs} +0 -0
  8. package/{esm2015/layout-blank/public_api.js → esm2020/layout-blank/public_api.mjs} +0 -0
  9. package/{esm2015/layout-default/layout-default.js → esm2020/layout-default/layout-default.mjs} +0 -0
  10. package/esm2020/layout-default/layout-header-item-trigger.directive.mjs +16 -0
  11. package/esm2020/layout-default/layout-header-item.component.mjs +33 -0
  12. package/esm2020/layout-default/layout-header.component.mjs +123 -0
  13. package/esm2020/layout-default/layout-nav.component.mjs +307 -0
  14. package/esm2020/layout-default/layout.component.mjs +132 -0
  15. package/esm2020/layout-default/layout.module.mjs +69 -0
  16. package/{esm2015/layout-default/public_api.js → esm2020/layout-default/public_api.mjs} +0 -0
  17. package/{esm2015/layout-default/types.js → esm2020/layout-default/types.mjs} +0 -0
  18. package/esm2020/public_api.mjs +25 -0
  19. package/{esm2015/setting-drawer/public_api.js → esm2020/setting-drawer/public_api.mjs} +0 -0
  20. package/esm2020/setting-drawer/setting-drawer-item.component.mjs +35 -0
  21. package/esm2020/setting-drawer/setting-drawer.component.mjs +192 -0
  22. package/{esm2015/setting-drawer/setting-drawer.js → esm2020/setting-drawer/setting-drawer.mjs} +0 -0
  23. package/esm2020/setting-drawer/setting-drawer.module.mjs +68 -0
  24. package/{esm2015/setting-drawer/setting-drawer.types.js → esm2020/setting-drawer/setting-drawer.types.mjs} +0 -0
  25. package/{esm2015/src/config.js → esm2020/src/config.mjs} +0 -0
  26. package/{esm2015/src/locale/index.js → esm2020/src/locale/index.mjs} +0 -0
  27. package/{esm2015/src/locale/languages/el-GR.js → esm2020/src/locale/languages/el-GR.mjs} +0 -0
  28. package/{esm2015/src/locale/languages/en-US.js → esm2020/src/locale/languages/en-US.mjs} +0 -0
  29. package/{esm2015/src/locale/languages/es-ES.js → esm2020/src/locale/languages/es-ES.mjs} +0 -0
  30. package/{esm2015/src/locale/languages/fr-FR.js → esm2020/src/locale/languages/fr-FR.mjs} +0 -0
  31. package/{esm2015/src/locale/languages/hr-HR.js → esm2020/src/locale/languages/hr-HR.mjs} +0 -0
  32. package/{esm2015/src/locale/languages/it-IT.js → esm2020/src/locale/languages/it-IT.mjs} +0 -0
  33. package/{esm2015/src/locale/languages/ja-JP.js → esm2020/src/locale/languages/ja-JP.mjs} +0 -0
  34. package/{esm2015/src/locale/languages/ko-KR.js → esm2020/src/locale/languages/ko-KR.mjs} +0 -0
  35. package/{esm2015/src/locale/languages/pl-PL.js → esm2020/src/locale/languages/pl-PL.mjs} +0 -0
  36. package/{esm2015/src/locale/languages/sl-SI.js → esm2020/src/locale/languages/sl-SI.mjs} +0 -0
  37. package/{esm2015/src/locale/languages/tr-TR.js → esm2020/src/locale/languages/tr-TR.mjs} +0 -0
  38. package/{esm2015/src/locale/languages/zh-CN.js → esm2020/src/locale/languages/zh-CN.mjs} +0 -0
  39. package/{esm2015/src/locale/languages/zh-TW.js → esm2020/src/locale/languages/zh-TW.mjs} +0 -0
  40. package/esm2020/src/locale/locale.module.mjs +17 -0
  41. package/esm2020/src/locale/locale.service.mjs +45 -0
  42. package/{esm2015/src/locale/locale.tokens.js → esm2020/src/locale/locale.tokens.mjs} +0 -0
  43. package/{esm2015/src/locale/locale.types.js → esm2020/src/locale/locale.types.mjs} +0 -0
  44. package/{esm2015/src/locale/public_api.js → esm2020/src/locale/public_api.mjs} +0 -0
  45. package/esm2020/src/pipes/date/date.pipe.mjs +24 -0
  46. package/esm2020/src/pipes/keys/keys.pipe.mjs +21 -0
  47. package/esm2020/src/pipes/safe/html.pipe.mjs +18 -0
  48. package/esm2020/src/pipes/safe/url.pipe.mjs +18 -0
  49. package/esm2020/src/pipes/yn/yn.pipe.mjs +38 -0
  50. package/esm2020/src/router/optional-preloader.mjs +22 -0
  51. package/esm2020/src/services/drawer/drawer.helper.mjs +91 -0
  52. package/esm2020/src/services/http/http.client.mjs +154 -0
  53. package/esm2020/src/services/http/http.decorator.mjs +215 -0
  54. package/esm2020/src/services/i18n/i18n.mjs +97 -0
  55. package/esm2020/src/services/i18n/i18n.pipe.mjs +21 -0
  56. package/{esm2015/src/services/menu/interface.js → esm2020/src/services/menu/interface.mjs} +0 -0
  57. package/esm2020/src/services/menu/menu.service.mjs +252 -0
  58. package/esm2020/src/services/modal/modal.helper.mjs +106 -0
  59. package/{esm2015/src/services/preloader/preloader.js → esm2020/src/services/preloader/preloader.mjs} +0 -0
  60. package/esm2020/src/services/responsive/responsive.mjs +46 -0
  61. package/esm2020/src/services/rtl/rtl.service.mjs +101 -0
  62. package/esm2020/src/services/settings/settings.service.mjs +100 -0
  63. package/{esm2015/src/services/settings/types.js → esm2020/src/services/settings/types.mjs} +0 -0
  64. package/esm2020/src/services/title/title.service.mjs +124 -0
  65. package/esm2020/src/theme.module.mjs +76 -0
  66. package/{esm2015/src/version.js → esm2020/src/version.mjs} +1 -1
  67. package/{esm2015/theme-btn/public_api.js → esm2020/theme-btn/public_api.mjs} +0 -0
  68. package/esm2020/theme-btn/theme-btn.component.mjs +106 -0
  69. package/esm2020/theme-btn/theme-btn.mjs +5 -0
  70. package/esm2020/theme-btn/theme-btn.module.mjs +32 -0
  71. package/esm2020/theme.mjs +5 -0
  72. package/fesm2015/{layout-blank.js → layout-blank.mjs} +1 -1
  73. package/fesm2015/layout-blank.mjs.map +1 -0
  74. package/fesm2015/layout-default.mjs +654 -0
  75. package/fesm2015/layout-default.mjs.map +1 -0
  76. package/fesm2015/setting-drawer.mjs +487 -0
  77. package/fesm2015/setting-drawer.mjs.map +1 -0
  78. package/fesm2015/theme-btn.mjs +144 -0
  79. package/fesm2015/theme-btn.mjs.map +1 -0
  80. package/fesm2015/{theme.js → theme.mjs} +226 -188
  81. package/fesm2015/theme.mjs.map +1 -0
  82. package/fesm2020/layout-blank.mjs +7 -0
  83. package/fesm2020/layout-blank.mjs.map +1 -0
  84. package/fesm2020/layout-default.mjs +654 -0
  85. package/fesm2020/layout-default.mjs.map +1 -0
  86. package/fesm2020/setting-drawer.mjs +482 -0
  87. package/fesm2020/setting-drawer.mjs.map +1 -0
  88. package/fesm2020/theme-btn.mjs +141 -0
  89. package/fesm2020/theme-btn.mjs.map +1 -0
  90. package/fesm2020/theme.mjs +2575 -0
  91. package/fesm2020/theme.mjs.map +1 -0
  92. package/layout-blank/layout-blank.d.ts +1 -0
  93. package/layout-blank/package.json +5 -6
  94. package/layout-default/layout-default.d.ts +1 -0
  95. package/layout-default/layout-header-item-trigger.directive.d.ts +3 -0
  96. package/layout-default/layout-header-item.component.d.ts +3 -0
  97. package/layout-default/layout-header.component.d.ts +8 -5
  98. package/layout-default/layout-nav.component.d.ts +4 -1
  99. package/layout-default/layout.component.d.ts +6 -3
  100. package/layout-default/layout.module.d.ts +17 -0
  101. package/layout-default/package.json +5 -6
  102. package/layout-default/style/_aside.less +7 -10
  103. package/layout-default/style/_fixed.less +2 -0
  104. package/layout-default/style/_header.less +21 -0
  105. package/layout-default/style/_layout.less +7 -0
  106. package/layout-default/style/_progress-bar.less +6 -0
  107. package/layout-default/style/fix/_full-content.less +4 -0
  108. package/layout-default/style/widgets/_app-icons.less +3 -0
  109. package/layout-default/style/widgets/_user.less +5 -0
  110. package/package.json +55 -11
  111. package/public_api.d.ts +1 -0
  112. package/setting-drawer/package.json +5 -6
  113. package/setting-drawer/setting-drawer-item.component.d.ts +3 -0
  114. package/setting-drawer/setting-drawer.component.d.ts +3 -0
  115. package/setting-drawer/setting-drawer.d.ts +1 -0
  116. package/setting-drawer/setting-drawer.module.d.ts +18 -0
  117. package/setting-drawer/style/index.less +9 -0
  118. package/setting-drawer/style/rtl.less +1 -0
  119. package/src/locale/locale.module.d.ts +4 -0
  120. package/src/locale/locale.service.d.ts +3 -0
  121. package/src/pipes/date/date.pipe.d.ts +3 -0
  122. package/src/pipes/keys/keys.pipe.d.ts +3 -0
  123. package/src/pipes/safe/html.pipe.d.ts +3 -0
  124. package/src/pipes/safe/url.pipe.d.ts +3 -0
  125. package/src/pipes/yn/style/index.less +3 -0
  126. package/src/pipes/yn/yn.pipe.d.ts +3 -0
  127. package/src/services/drawer/drawer.helper.d.ts +3 -0
  128. package/src/services/http/http.client.d.ts +3 -0
  129. package/src/services/http/http.decorator.d.ts +3 -0
  130. package/src/services/i18n/i18n.d.ts +5 -0
  131. package/src/services/i18n/i18n.pipe.d.ts +3 -0
  132. package/src/services/menu/menu.service.d.ts +5 -0
  133. package/src/services/modal/modal.helper.d.ts +3 -0
  134. package/src/services/responsive/responsive.d.ts +3 -0
  135. package/src/services/rtl/rtl.service.d.ts +3 -0
  136. package/src/services/settings/settings.service.d.ts +9 -0
  137. package/src/services/title/title.service.d.ts +3 -0
  138. package/src/theme.module.d.ts +15 -0
  139. package/system/_preloader.less +10 -0
  140. package/system/_type.less +5 -0
  141. package/system/antd/_modal.less +5 -0
  142. package/system/antd/_table.less +7 -0
  143. package/system/index.less +3 -3
  144. package/system/mixins/_freak.less +2 -2
  145. package/system/mixins/_text-truncate.less +2 -0
  146. package/system/ng/_form.less +1 -0
  147. package/system/theme-default.less +3 -1
  148. package/system/utils/_display.less +9 -0
  149. package/system/utils/_other.less +2 -0
  150. package/system/utils/_scrollbar.less +3 -0
  151. package/system/widgets/_abs.less +3 -0
  152. package/system/widgets/_half-float.less +2 -0
  153. package/system/widgets/_masonry-grid.less +2 -0
  154. package/theme-btn/package.json +6 -7
  155. package/theme-btn/style/index.less +1 -0
  156. package/theme-btn/theme-btn.component.d.ts +3 -0
  157. package/theme-btn/{layout-theme-btn.d.ts → theme-btn.d.ts} +1 -0
  158. package/theme-btn/theme-btn.module.d.ts +8 -0
  159. package/theme-compact.less +1 -1
  160. package/theme-dark.less +1 -1
  161. package/theme-default.less +1 -1
  162. package/theme.d.ts +1 -1
  163. package/bundles/layout-blank.umd.js +0 -19
  164. package/bundles/layout-blank.umd.js.map +0 -1
  165. package/bundles/layout-default.umd.js +0 -876
  166. package/bundles/layout-default.umd.js.map +0 -1
  167. package/bundles/layout-theme-btn.umd.js +0 -141
  168. package/bundles/layout-theme-btn.umd.js.map +0 -1
  169. package/bundles/setting-drawer.umd.js +0 -789
  170. package/bundles/setting-drawer.umd.js.map +0 -1
  171. package/bundles/theme.umd.js +0 -3075
  172. package/bundles/theme.umd.js.map +0 -1
  173. package/esm2015/layout-default/layout-header-item-trigger.directive.js +0 -12
  174. package/esm2015/layout-default/layout-header-item.component.js +0 -23
  175. package/esm2015/layout-default/layout-header.component.js +0 -94
  176. package/esm2015/layout-default/layout-nav.component.js +0 -306
  177. package/esm2015/layout-default/layout.component.js +0 -102
  178. package/esm2015/layout-default/layout.module.js +0 -40
  179. package/esm2015/public_api.js +0 -24
  180. package/esm2015/setting-drawer/setting-drawer-item.component.js +0 -30
  181. package/esm2015/setting-drawer/setting-drawer.component.js +0 -185
  182. package/esm2015/setting-drawer/setting-drawer.module.js +0 -39
  183. package/esm2015/src/locale/locale.module.js +0 -14
  184. package/esm2015/src/locale/locale.service.js +0 -42
  185. package/esm2015/src/pipes/date/date.pipe.js +0 -23
  186. package/esm2015/src/pipes/keys/keys.pipe.js +0 -17
  187. package/esm2015/src/pipes/safe/html.pipe.js +0 -17
  188. package/esm2015/src/pipes/safe/url.pipe.js +0 -17
  189. package/esm2015/src/pipes/yn/yn.pipe.js +0 -37
  190. package/esm2015/src/router/optional-preloader.js +0 -23
  191. package/esm2015/src/services/drawer/drawer.helper.js +0 -90
  192. package/esm2015/src/services/http/http.client.js +0 -138
  193. package/esm2015/src/services/http/http.decorator.js +0 -207
  194. package/esm2015/src/services/i18n/i18n.js +0 -96
  195. package/esm2015/src/services/i18n/i18n.pipe.js +0 -17
  196. package/esm2015/src/services/menu/menu.service.js +0 -252
  197. package/esm2015/src/services/modal/modal.helper.js +0 -105
  198. package/esm2015/src/services/responsive/responsive.js +0 -48
  199. package/esm2015/src/services/rtl/rtl.service.js +0 -110
  200. package/esm2015/src/services/settings/settings.service.js +0 -82
  201. package/esm2015/src/services/title/title.service.js +0 -125
  202. package/esm2015/src/theme.module.js +0 -67
  203. package/esm2015/theme-btn/layout-theme-btn.js +0 -5
  204. package/esm2015/theme-btn/theme-btn.component.js +0 -103
  205. package/esm2015/theme-btn/theme-btn.module.js +0 -22
  206. package/esm2015/theme.js +0 -6
  207. package/fesm2015/layout-blank.js.map +0 -1
  208. package/fesm2015/layout-default.js +0 -561
  209. package/fesm2015/layout-default.js.map +0 -1
  210. package/fesm2015/layout-theme-btn.js +0 -129
  211. package/fesm2015/layout-theme-btn.js.map +0 -1
  212. package/fesm2015/setting-drawer.js +0 -448
  213. package/fesm2015/setting-drawer.js.map +0 -1
  214. package/fesm2015/theme.js.map +0 -1
  215. package/layout-blank/layout-blank.metadata.json +0 -1
  216. package/layout-default/layout-default.metadata.json +0 -1
  217. package/setting-drawer/setting-drawer.metadata.json +0 -1
  218. package/theme-btn/layout-theme-btn.metadata.json +0 -1
  219. package/theme.metadata.json +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setting-drawer.mjs","sources":["../../../../packages/theme/setting-drawer/setting-drawer-item.component.ts","../../../../packages/theme/setting-drawer/setting-drawer-item.component.html","../../../../packages/theme/setting-drawer/setting-drawer.types.ts","../../../../packages/theme/setting-drawer/setting-drawer.component.ts","../../../../packages/theme/setting-drawer/setting-drawer.component.html","../../../../packages/theme/setting-drawer/setting-drawer.module.ts","../../../../packages/theme/setting-drawer/setting-drawer.ts"],"sourcesContent":["import { Component, Input } from '@angular/core';\n\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\n@Component({\n selector: 'setting-drawer-item',\n templateUrl: './setting-drawer-item.component.html',\n host: {\n '[class.setting-drawer__body-item]': 'true'\n }\n})\nexport class SettingDrawerItemComponent {\n i: NzSafeAny = {};\n\n @Input()\n set data(val: NzSafeAny) {\n this.i = val;\n if (val.type === 'px') {\n this.pxVal = +val.value.replace('px', '');\n }\n }\n\n pxVal = 0;\n\n pxChange(val: number): void {\n this.i.value = `${val}px`;\n }\n\n format = (value: number): string => `${value} px`;\n}\n","<span>\n {{ i.label }}\n <span class=\"pl-sm text-grey\">{{ i.tip }}</span>\n</span>\n<div [ngSwitch]=\"i.type\">\n <ng-container *ngSwitchCase=\"'color'\">\n <input\n nz-input\n type=\"color\"\n style=\"min-width: 88px\"\n [(ngModel)]=\"i.value\"\n [ngModelOptions]=\"{ standalone: true }\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'input'\">\n <input nz-input style=\"min-width: 88px\" [(ngModel)]=\"i.value\" [ngModelOptions]=\"{ standalone: true }\" />\n </ng-container>\n <ng-container *ngSwitchCase=\"'px'\">\n <nz-input-number\n [(ngModel)]=\"pxVal\"\n (ngModelChange)=\"pxChange($event)\"\n [nzMin]=\"i.min\"\n [nzMax]=\"i.max\"\n [nzStep]=\"i.step || 2\"\n [nzFormatter]=\"format\"\n ></nz-input-number>\n </ng-container>\n <ng-container *ngSwitchCase=\"'switch'\">\n <nz-switch nzSize=\"small\" [(ngModel)]=\"i.value\" [ngModelOptions]=\"{ standalone: true }\"></nz-switch>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ng-template nzDrawerContent></ng-template>\n </ng-container>\n</div>\n","import type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nexport const ALAINDEFAULTVAR = 'alain-default-vars';\nexport const DEFAULT_COLORS = [\n {\n key: 'dust',\n color: '#F5222D'\n },\n {\n key: 'volcano',\n color: '#FA541C'\n },\n {\n key: 'sunset',\n color: '#FAAD14'\n },\n {\n key: 'cyan',\n color: '#13C2C2'\n },\n {\n key: 'green',\n color: '#52C41A'\n },\n {\n key: 'daybreak',\n color: '#1890ff'\n },\n {\n key: 'geekblue',\n color: '#2F54EB'\n },\n {\n key: 'purple',\n color: '#722ED1'\n },\n {\n key: 'black',\n color: '#001529'\n }\n];\nexport const DEFAULT_VARS: { [key: string]: NzSafeAny } = {\n 'primary-color': { label: '主颜色', type: 'color', default: '#1890ff' },\n 'alain-default-header-hg': {\n label: '高',\n type: 'px',\n default: '64px',\n max: 300,\n min: 24\n },\n 'alain-default-header-bg': {\n label: '背景色',\n type: 'color',\n default: '@primary-color',\n tip: '默认同主色系'\n },\n 'alain-default-header-padding': {\n label: '顶部左右内边距',\n type: 'px',\n default: '16px'\n },\n // 侧边栏\n 'alain-default-aside-wd': { label: '宽度', type: 'px', default: '200px' },\n 'alain-default-aside-bg': {\n label: '背景',\n type: 'color',\n default: '#ffffff'\n },\n 'alain-default-aside-collapsed-wd': {\n label: '收缩宽度',\n type: 'px',\n default: '64px'\n },\n 'alain-default-aside-nav-padding-top-bottom': {\n label: '项上下内边距',\n type: 'px',\n default: '8px',\n step: 8\n },\n // 主菜单\n 'alain-default-aside-nav-fs': {\n label: '菜单字号',\n type: 'px',\n default: '14px',\n min: 14,\n max: 30\n },\n 'alain-default-aside-collapsed-nav-fs': {\n label: '收缩菜单字号',\n type: 'px',\n default: '24px',\n min: 24,\n max: 32\n },\n 'alain-default-aside-nav-item-height': {\n label: '菜单项高度',\n type: 'px',\n default: '38px',\n min: 24,\n max: 64\n },\n 'alain-default-aside-nav-text-color': {\n label: '菜单文本颜色',\n type: 'color',\n default: 'rgba(0, 0, 0, 0.65)',\n rgba: true\n },\n 'alain-default-aside-nav-text-hover-color': {\n label: '菜单文本悬停颜色',\n type: 'color',\n default: '@primary-color',\n tip: '默认同主色系'\n },\n 'alain-default-aside-nav-group-text-color': {\n label: '菜单分组文本颜色',\n type: 'color',\n default: 'rgba(0, 0, 0, 0.43)',\n rgba: true\n },\n 'alain-default-aside-nav-selected-text-color': {\n label: '菜单激活时文本颜色',\n type: 'color',\n default: '@primary-color',\n tip: '默认同主色系'\n },\n 'alain-default-aside-nav-selected-bg': {\n label: '菜单激活时背景颜色',\n type: 'color',\n default: '#fcfcfc'\n },\n // 内容\n 'alain-default-content-bg': {\n label: '背景色',\n type: 'color',\n default: '#f5f7fa'\n },\n 'alain-default-content-heading-bg': {\n label: '标题背景色',\n type: 'color',\n default: '#fafbfc'\n },\n 'alain-default-content-heading-border': {\n label: '标题底部边框色',\n type: 'color',\n default: '#efe3e5'\n },\n 'alain-default-content-padding': {\n label: '内边距',\n type: 'px',\n default: '24px',\n min: 0,\n max: 128,\n step: 8\n },\n // zorro组件修正\n 'form-state-visual-feedback-enabled': {\n label: '开启表单元素的视觉反馈',\n type: 'switch',\n default: true\n },\n 'preserve-white-spaces-enabled': {\n label: '开启 preserveWhitespaces',\n type: 'switch',\n default: true\n },\n 'nz-table-img-radius': {\n label: '表格中:图片圆角',\n type: 'px',\n default: '4px',\n min: 0,\n max: 128\n },\n 'nz-table-img-margin-right': {\n label: '表格中:图片右外边距',\n type: 'px',\n default: '4px',\n min: 0,\n max: 128\n },\n 'nz-table-img-max-width': {\n label: '表格中:图片最大宽度',\n type: 'px',\n default: '32px',\n min: 8,\n max: 128\n },\n 'nz-table-img-max-height': {\n label: '表格中:图片最大高度',\n type: 'px',\n default: '32px',\n min: 8,\n max: 128\n }\n};\n","import { Direction, Directionality } from '@angular/cdk/bidi';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n Input,\n isDevMode,\n NgZone,\n OnDestroy,\n OnInit,\n Optional\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { Layout, SettingsService } from '@delon/theme';\nimport { copy } from '@delon/util/browser';\nimport { InputBoolean, ZoneOutside } from '@delon/util/decorator';\nimport { deepCopy, LazyService } from '@delon/util/other';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { NzMessageService } from 'ng-zorro-antd/message';\n\nimport { ALAINDEFAULTVAR, DEFAULT_COLORS, DEFAULT_VARS } from './setting-drawer.types';\n\n@Component({\n selector: 'setting-drawer',\n templateUrl: './setting-drawer.component.html',\n host: {\n '[class.setting-drawer]': 'true',\n '[class.setting-drawer-rtl]': `dir === 'rtl'`\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SettingDrawerComponent implements OnInit, OnDestroy {\n @Input() @InputBoolean() autoApplyColor = true;\n @Input() compilingText = 'Compiling...';\n @Input() devTips = `When the color can't be switched, you need to run it once: npm run color-less`;\n\n private loadedLess = false;\n private destroy$ = new Subject<void>();\n dir: Direction = 'ltr';\n isDev = isDevMode();\n collapse = false;\n get layout(): Layout {\n return this.settingSrv.layout;\n }\n data: NzSafeAny = {};\n color: string;\n colors = DEFAULT_COLORS;\n\n constructor(\n private cdr: ChangeDetectorRef,\n private msg: NzMessageService,\n private settingSrv: SettingsService,\n private lazy: LazyService,\n private ngZone: NgZone,\n @Inject(DOCUMENT) private doc: NzSafeAny,\n @Optional() private directionality: Directionality\n ) {\n this.color = this.cachedData['@primary-color'] || this.DEFAULT_PRIMARY;\n this.resetData(this.cachedData, false);\n }\n\n private get cachedData(): { [key: string]: NzSafeAny } {\n return this.settingSrv.layout[ALAINDEFAULTVAR] || {};\n }\n\n private get DEFAULT_PRIMARY(): string {\n return DEFAULT_VARS['primary-color'].default;\n }\n\n ngOnInit(): void {\n this.dir = this.directionality.value;\n this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\n this.dir = direction;\n });\n if (this.autoApplyColor && this.color !== this.DEFAULT_PRIMARY) {\n this.changeColor(this.color);\n this.runLess();\n }\n }\n\n @ZoneOutside()\n private async loadLess(): Promise<void> {\n if (this.loadedLess) {\n return Promise.resolve();\n }\n return this.lazy\n .loadStyle('./assets/color.less', 'stylesheet/less')\n .then(() => {\n const lessConfigNode = this.doc.createElement('script');\n lessConfigNode.innerHTML = `\n window.less = {\n async: true,\n env: 'production',\n javascriptEnabled: true\n };\n `;\n this.doc.body.appendChild(lessConfigNode);\n })\n .then(() => this.lazy.loadScript('https://gw.alipayobjects.com/os/lib/less.js/3.8.1/less.min.js'))\n .then(() => {\n this.loadedLess = true;\n });\n }\n\n private genVars(): NzSafeAny {\n const { data, color, validKeys } = this;\n const vars: { [key: string]: string } = {\n [`@primary-color`]: color\n };\n validKeys.filter(key => key !== 'primary-color').forEach(key => (vars[`@${key}`] = data[key].value));\n this.setLayout(ALAINDEFAULTVAR, vars);\n return vars;\n }\n\n @ZoneOutside()\n private runLess(): void {\n const { ngZone, msg, cdr } = this;\n const msgId = msg.loading(this.compilingText, { nzDuration: 0 }).messageId;\n setTimeout(() => {\n this.loadLess().then(() => {\n (window as NzSafeAny).less.modifyVars(this.genVars()).then(() => {\n msg.success('成功');\n msg.remove(msgId);\n ngZone.run(() => cdr.detectChanges());\n });\n });\n }, 200);\n }\n\n toggle(): void {\n this.collapse = !this.collapse;\n }\n\n changeColor(color: string): void {\n this.color = color;\n Object.keys(DEFAULT_VARS)\n .filter(key => DEFAULT_VARS[key].default === '@primary-color')\n .forEach(key => delete this.cachedData[`@${key}`]);\n this.resetData(this.cachedData, false);\n }\n\n setLayout(name: string, value: NzSafeAny): void {\n this.settingSrv.setLayout(name, value);\n }\n\n private resetData(nowData?: { [key: string]: NzSafeAny }, run: boolean = true): void {\n nowData = nowData || {};\n const data = deepCopy(DEFAULT_VARS);\n Object.keys(data).forEach(key => {\n const value = nowData![`@${key}`] || data[key].default || '';\n data[key].value = value === `@primary-color` ? this.color : value;\n });\n this.data = data;\n if (run) {\n this.cdr.detectChanges();\n this.runLess();\n }\n }\n\n private get validKeys(): string[] {\n return Object.keys(this.data).filter(key => this.data[key].value !== this.data[key].default);\n }\n\n apply(): void {\n this.runLess();\n }\n\n reset(): void {\n this.color = this.DEFAULT_PRIMARY;\n this.settingSrv.setLayout(ALAINDEFAULTVAR, {});\n this.resetData({});\n }\n\n copyVar(): void {\n const vars = this.genVars();\n const copyContent = Object.keys(vars)\n .map(key => `${key}: ${vars[key]};`)\n .join('\\n');\n copy(copyContent);\n this.msg.success('Copy success');\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<nz-drawer\n [nzVisible]=\"collapse\"\n [nzPlacement]=\"dir === 'rtl' ? 'left' : 'right'\"\n [nzWidth]=\"500\"\n (nzOnClose)=\"toggle()\"\n>\n <div *nzDrawerContent class=\"setting-drawer__content\">\n <div class=\"setting-drawer__body setting-drawer__theme\">\n <h3 class=\"setting-drawer__title\">主题色</h3>\n <span\n *ngFor=\"let c of colors\"\n [style]=\"{ 'background-color': c.color }\"\n (click)=\"changeColor(c.color)\"\n nz-tooltip\n [nzTooltipTitle]=\"c.key\"\n class=\"setting-drawer__theme-tag\"\n >\n <i *ngIf=\"color === c.color\" nz-icon nzType=\"check\"></i>\n </span>\n </div>\n <nz-divider></nz-divider>\n <div class=\"setting-drawer__body\">\n <h3 class=\"setting-drawer__title\">设置</h3>\n <nz-tabset>\n <nz-tab nzTitle=\"顶部\">\n <div class=\"setting-drawer__body\">\n <setting-drawer-item [data]=\"data['alain-default-header-hg']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['alain-default-header-bg']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['alain-default-header-padding']\"></setting-drawer-item>\n </div>\n </nz-tab>\n <nz-tab nzTitle=\"侧边栏\">\n <setting-drawer-item [data]=\"data['alain-default-aside-wd']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['alain-default-aside-bg']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['alain-default-aside-collapsed-wd']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['alain-default-aside-nav-padding-top-bottom']\"></setting-drawer-item>\n </nz-tab>\n <nz-tab nzTitle=\"内容\">\n <setting-drawer-item [data]=\"data['alain-default-content-bg']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['alain-default-content-heading-bg']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['alain-default-content-heading-border']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['alain-default-content-padding']\"></setting-drawer-item>\n </nz-tab>\n <nz-tab nzTitle=\"其它\">\n <setting-drawer-item [data]=\"data['form-state-visual-feedback-enabled']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['preserve-white-spaces-enabled']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['nz-table-img-radius']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['nz-table-img-margin-right']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['nz-table-img-max-width']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['nz-table-img-max-height']\"></setting-drawer-item>\n </nz-tab>\n </nz-tabset>\n </div>\n <nz-divider></nz-divider>\n <div class=\"setting-drawer__body\">\n <div class=\"setting-drawer__body-item\">\n 固定头和侧边栏\n <nz-switch\n nzSize=\"small\"\n [(ngModel)]=\"layout.fixed\"\n (ngModelChange)=\"setLayout('fixed', layout.fixed)\"\n ></nz-switch>\n </div>\n <div class=\"setting-drawer__body-item\">\n 色弱模式\n <nz-switch\n nzSize=\"small\"\n [(ngModel)]=\"layout.colorWeak\"\n (ngModelChange)=\"setLayout('colorWeak', layout.colorWeak)\"\n ></nz-switch>\n </div>\n </div>\n <nz-divider></nz-divider>\n <button (click)=\"apply()\" type=\"button\" nz-button nzType=\"primary\">预览</button>\n <button (click)=\"reset()\" type=\"button\" nz-button>重置</button>\n <button (click)=\"copyVar()\" type=\"button\" nz-button>拷贝</button>\n <nz-alert\n class=\"mt-md\"\n nzType=\"warning\"\n nzMessage=\"配置栏只在开发环境用于预览,生产环境不会展现,请拷贝后手动修改参数配置文件 src/styles/theme.less\"\n ></nz-alert>\n </div>\n</nz-drawer>\n<div\n class=\"setting-drawer__handle\"\n [ngClass]=\"{ 'setting-drawer__handle-opened': collapse }\"\n (click)=\"toggle()\"\n nz-tooltip\n [nzTooltipTitle]=\"isDev ? devTips : null\"\n>\n <i nz-icon [nzType]=\"!collapse ? 'setting' : 'close'\" class=\"setting-drawer__handle-icon\"></i>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { NzAlertModule } from 'ng-zorro-antd/alert';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzDividerModule } from 'ng-zorro-antd/divider';\nimport { NzDrawerModule } from 'ng-zorro-antd/drawer';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzInputNumberModule } from 'ng-zorro-antd/input-number';\nimport { NzSwitchModule } from 'ng-zorro-antd/switch';\nimport { NzTabsModule } from 'ng-zorro-antd/tabs';\nimport { NzToolTipModule } from 'ng-zorro-antd/tooltip';\n\nimport { SettingDrawerItemComponent } from './setting-drawer-item.component';\nimport { SettingDrawerComponent } from './setting-drawer.component';\n\nconst COMPONENTS = [SettingDrawerItemComponent, SettingDrawerComponent];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n NzDrawerModule,\n NzToolTipModule,\n NzDividerModule,\n NzTabsModule,\n NzSwitchModule,\n NzAlertModule,\n NzIconModule,\n NzInputModule,\n NzInputNumberModule,\n NzButtonModule\n ],\n declarations: COMPONENTS,\n exports: COMPONENTS\n})\nexport class SettingDrawerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,141 @@
1
+ import * as i7 from '@angular/common';
2
+ import { DOCUMENT, CommonModule } from '@angular/common';
3
+ import * as i0 from '@angular/core';
4
+ import { InjectionToken, isDevMode, Component, ChangeDetectionStrategy, Inject, Optional, Input, NgModule } from '@angular/core';
5
+ import { Subject } from 'rxjs';
6
+ import { takeUntil } from 'rxjs/operators';
7
+ import * as i1 from '@delon/util/config';
8
+ import * as i2 from '@angular/cdk/platform';
9
+ import * as i3 from '@angular/cdk/bidi';
10
+ import * as i4 from 'ng-zorro-antd/dropdown';
11
+ import { NzDropDownModule } from 'ng-zorro-antd/dropdown';
12
+ import * as i5 from 'ng-zorro-antd/tooltip';
13
+ import { NzToolTipModule } from 'ng-zorro-antd/tooltip';
14
+ import * as i6 from 'ng-zorro-antd/menu';
15
+
16
+ const ALAIN_THEME_BTN_KEYS = new InjectionToken('ALAIN_THEME_BTN_KEYS');
17
+ class ThemeBtnComponent {
18
+ constructor(renderer, configSrv, platform, doc, directionality, KEYS) {
19
+ this.renderer = renderer;
20
+ this.configSrv = configSrv;
21
+ this.platform = platform;
22
+ this.doc = doc;
23
+ this.directionality = directionality;
24
+ this.KEYS = KEYS;
25
+ this.theme = 'default';
26
+ this.isDev = isDevMode();
27
+ this.types = [
28
+ { key: 'default', text: 'Default Theme' },
29
+ { key: 'dark', text: 'Dark Theme' },
30
+ { key: 'compact', text: 'Compact Theme' }
31
+ ];
32
+ this.devTips = `When the dark.css file can't be found, you need to run it once: npm run theme`;
33
+ this.deployUrl = '';
34
+ this.destroy$ = new Subject();
35
+ this.dir = 'ltr';
36
+ }
37
+ ngOnInit() {
38
+ this.dir = this.directionality.value;
39
+ this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction) => {
40
+ this.dir = direction;
41
+ });
42
+ this.initTheme();
43
+ }
44
+ initTheme() {
45
+ if (!this.platform.isBrowser) {
46
+ return;
47
+ }
48
+ this.theme = localStorage.getItem(this.KEYS) || 'default';
49
+ this.updateChartTheme();
50
+ this.onThemeChange(this.theme);
51
+ }
52
+ updateChartTheme() {
53
+ this.configSrv.set('chart', { theme: this.theme === 'dark' ? 'dark' : '' });
54
+ }
55
+ onThemeChange(theme) {
56
+ if (!this.platform.isBrowser) {
57
+ return;
58
+ }
59
+ this.theme = theme;
60
+ this.renderer.setAttribute(this.doc.body, 'data-theme', theme);
61
+ const dom = this.doc.getElementById(this.KEYS);
62
+ if (dom) {
63
+ dom.remove();
64
+ }
65
+ localStorage.removeItem(this.KEYS);
66
+ if (theme !== 'default') {
67
+ const el = this.doc.createElement('link');
68
+ el.type = 'text/css';
69
+ el.rel = 'stylesheet';
70
+ el.id = this.KEYS;
71
+ el.href = `${this.deployUrl}assets/style.${theme}.css`;
72
+ localStorage.setItem(this.KEYS, theme);
73
+ this.doc.body.append(el);
74
+ }
75
+ this.updateChartTheme();
76
+ }
77
+ ngOnDestroy() {
78
+ const el = this.doc.getElementById(this.KEYS);
79
+ if (el != null) {
80
+ this.doc.body.removeChild(el);
81
+ }
82
+ this.destroy$.next();
83
+ this.destroy$.complete();
84
+ }
85
+ }
86
+ ThemeBtnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: ThemeBtnComponent, deps: [{ token: i0.Renderer2 }, { token: i1.AlainConfigService }, { token: i2.Platform }, { token: DOCUMENT }, { token: i3.Directionality, optional: true }, { token: ALAIN_THEME_BTN_KEYS }], target: i0.ɵɵFactoryTarget.Component });
87
+ ThemeBtnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: ThemeBtnComponent, selector: "theme-btn", inputs: { types: "types", devTips: "devTips", deployUrl: "deployUrl" }, host: { properties: { "class.theme-btn": "true", "class.theme-btn-rtl": "dir === 'rtl'" } }, ngImport: i0, template: "<div\n class=\"ant-avatar ant-avatar-circle ant-avatar-icon\"\n nz-dropdown\n nzPlacement=\"topCenter\"\n [nzDropdownMenu]=\"types.length > 0 ? menu : null\"\n>\n <svg\n nz-tooltip\n [nzTooltipTitle]=\"isDev ? devTips : null\"\n class=\"anticon\"\n role=\"img\"\n width=\"21\"\n height=\"21\"\n viewBox=\"0 0 21 21\"\n fill=\"currentColor\"\n >\n <g fill-rule=\"evenodd\">\n <g fill-rule=\"nonzero\">\n <path\n d=\"M7.02 3.635l12.518 12.518a1.863 1.863 0 010 2.635l-1.317 1.318a1.863 1.863 0 01-2.635 0L3.068 7.588A2.795 2.795 0 117.02 3.635zm2.09 14.428a.932.932 0 110 1.864.932.932 0 010-1.864zm-.043-9.747L7.75 9.635l9.154 9.153 1.318-1.317-9.154-9.155zM3.52 12.473c.514 0 .931.417.931.931v.932h.932a.932.932 0 110 1.864h-.932v.931a.932.932 0 01-1.863 0l-.001-.931h-.93a.932.932 0 010-1.864h.93v-.932c0-.514.418-.931.933-.931zm15.374-3.727a1.398 1.398 0 110 2.795 1.398 1.398 0 010-2.795zM4.385 4.953a.932.932 0 000 1.317l2.046 2.047L7.75 7 5.703 4.953a.932.932 0 00-1.318 0zM14.701.36a.932.932 0 01.931.932v.931h.932a.932.932 0 010 1.864h-.933l.001.932a.932.932 0 11-1.863 0l-.001-.932h-.93a.932.932 0 110-1.864h.93v-.931a.932.932 0 01.933-.932z\"\n ></path>\n </g>\n </g>\n </svg>\n <nz-dropdown-menu #menu=\"nzDropdownMenu\">\n <ul nz-menu nzSelectable>\n <li nz-menu-item *ngFor=\"let i of types\" (click)=\"onThemeChange(i.key)\">{{ i.text }}</li>\n </ul>\n </nz-dropdown-menu>\n</div>\n", components: [{ type: i4.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }], directives: [{ type: i4.NzDropDownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { type: i5.NzTooltipDirective, selector: "[nz-tooltip]", inputs: ["nzTooltipTitle", "nzTooltipTitleContext", "nz-tooltip", "nzTooltipTrigger", "nzTooltipPlacement", "nzTooltipOrigin", "nzTooltipVisible", "nzTooltipMouseEnterDelay", "nzTooltipMouseLeaveDelay", "nzTooltipOverlayClassName", "nzTooltipOverlayStyle", "nzTooltipArrowPointAtCenter", "nzTooltipColor"], outputs: ["nzTooltipVisibleChange"], exportAs: ["nzTooltip"] }, { type: i6.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NzMenuItemDirective, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: ThemeBtnComponent, decorators: [{
89
+ type: Component,
90
+ args: [{ selector: 'theme-btn', host: {
91
+ '[class.theme-btn]': `true`,
92
+ '[class.theme-btn-rtl]': `dir === 'rtl'`
93
+ }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"ant-avatar ant-avatar-circle ant-avatar-icon\"\n nz-dropdown\n nzPlacement=\"topCenter\"\n [nzDropdownMenu]=\"types.length > 0 ? menu : null\"\n>\n <svg\n nz-tooltip\n [nzTooltipTitle]=\"isDev ? devTips : null\"\n class=\"anticon\"\n role=\"img\"\n width=\"21\"\n height=\"21\"\n viewBox=\"0 0 21 21\"\n fill=\"currentColor\"\n >\n <g fill-rule=\"evenodd\">\n <g fill-rule=\"nonzero\">\n <path\n d=\"M7.02 3.635l12.518 12.518a1.863 1.863 0 010 2.635l-1.317 1.318a1.863 1.863 0 01-2.635 0L3.068 7.588A2.795 2.795 0 117.02 3.635zm2.09 14.428a.932.932 0 110 1.864.932.932 0 010-1.864zm-.043-9.747L7.75 9.635l9.154 9.153 1.318-1.317-9.154-9.155zM3.52 12.473c.514 0 .931.417.931.931v.932h.932a.932.932 0 110 1.864h-.932v.931a.932.932 0 01-1.863 0l-.001-.931h-.93a.932.932 0 010-1.864h.93v-.932c0-.514.418-.931.933-.931zm15.374-3.727a1.398 1.398 0 110 2.795 1.398 1.398 0 010-2.795zM4.385 4.953a.932.932 0 000 1.317l2.046 2.047L7.75 7 5.703 4.953a.932.932 0 00-1.318 0zM14.701.36a.932.932 0 01.931.932v.931h.932a.932.932 0 010 1.864h-.933l.001.932a.932.932 0 11-1.863 0l-.001-.932h-.93a.932.932 0 110-1.864h.93v-.931a.932.932 0 01.933-.932z\"\n ></path>\n </g>\n </g>\n </svg>\n <nz-dropdown-menu #menu=\"nzDropdownMenu\">\n <ul nz-menu nzSelectable>\n <li nz-menu-item *ngFor=\"let i of types\" (click)=\"onThemeChange(i.key)\">{{ i.text }}</li>\n </ul>\n </nz-dropdown-menu>\n</div>\n" }]
94
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i1.AlainConfigService }, { type: i2.Platform }, { type: undefined, decorators: [{
95
+ type: Inject,
96
+ args: [DOCUMENT]
97
+ }] }, { type: i3.Directionality, decorators: [{
98
+ type: Optional
99
+ }] }, { type: undefined, decorators: [{
100
+ type: Inject,
101
+ args: [ALAIN_THEME_BTN_KEYS]
102
+ }] }]; }, propDecorators: { types: [{
103
+ type: Input
104
+ }], devTips: [{
105
+ type: Input
106
+ }], deployUrl: [{
107
+ type: Input
108
+ }] } });
109
+
110
+ const COMPONENTS = [ThemeBtnComponent];
111
+ class ThemeBtnModule {
112
+ }
113
+ ThemeBtnModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: ThemeBtnModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
114
+ ThemeBtnModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: ThemeBtnModule, declarations: [ThemeBtnComponent], imports: [CommonModule, NzDropDownModule, NzToolTipModule], exports: [ThemeBtnComponent] });
115
+ ThemeBtnModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: ThemeBtnModule, providers: [
116
+ {
117
+ provide: ALAIN_THEME_BTN_KEYS,
118
+ useValue: 'site-theme'
119
+ }
120
+ ], imports: [[CommonModule, NzDropDownModule, NzToolTipModule]] });
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: ThemeBtnModule, decorators: [{
122
+ type: NgModule,
123
+ args: [{
124
+ imports: [CommonModule, NzDropDownModule, NzToolTipModule],
125
+ providers: [
126
+ {
127
+ provide: ALAIN_THEME_BTN_KEYS,
128
+ useValue: 'site-theme'
129
+ }
130
+ ],
131
+ declarations: COMPONENTS,
132
+ exports: COMPONENTS
133
+ }]
134
+ }] });
135
+
136
+ /**
137
+ * Generated bundle index. Do not edit.
138
+ */
139
+
140
+ export { ALAIN_THEME_BTN_KEYS, ThemeBtnComponent, ThemeBtnModule };
141
+ //# sourceMappingURL=theme-btn.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-btn.mjs","sources":["../../../../packages/theme/theme-btn/theme-btn.component.ts","../../../../packages/theme/theme-btn/theme-btn.component.html","../../../../packages/theme/theme-btn/theme-btn.module.ts","../../../../packages/theme/theme-btn/theme-btn.ts"],"sourcesContent":["import { Direction, Directionality } from '@angular/cdk/bidi';\nimport { Platform } from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Inject,\n InjectionToken,\n Input,\n isDevMode,\n OnDestroy,\n OnInit,\n Optional,\n Renderer2\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { AlainConfigService } from '@delon/util/config';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nexport interface ThemeBtnType {\n key: string;\n text: string;\n}\n\nexport const ALAIN_THEME_BTN_KEYS = new InjectionToken<string>('ALAIN_THEME_BTN_KEYS');\n\n@Component({\n selector: 'theme-btn',\n templateUrl: './theme-btn.component.html',\n host: {\n '[class.theme-btn]': `true`,\n '[class.theme-btn-rtl]': `dir === 'rtl'`\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ThemeBtnComponent implements OnInit, OnDestroy {\n private theme = 'default';\n isDev = isDevMode();\n @Input() types: ThemeBtnType[] = [\n { key: 'default', text: 'Default Theme' },\n { key: 'dark', text: 'Dark Theme' },\n { key: 'compact', text: 'Compact Theme' }\n ];\n @Input() devTips = `When the dark.css file can't be found, you need to run it once: npm run theme`;\n @Input() deployUrl = '';\n private destroy$ = new Subject<void>();\n dir: Direction = 'ltr';\n\n constructor(\n private renderer: Renderer2,\n private configSrv: AlainConfigService,\n private platform: Platform,\n @Inject(DOCUMENT) private doc: NzSafeAny,\n @Optional() private directionality: Directionality,\n @Inject(ALAIN_THEME_BTN_KEYS) private KEYS: string\n ) {}\n\n ngOnInit(): void {\n this.dir = this.directionality.value;\n this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\n this.dir = direction;\n });\n this.initTheme();\n }\n\n private initTheme(): void {\n if (!this.platform.isBrowser) {\n return;\n }\n this.theme = localStorage.getItem(this.KEYS) || 'default';\n this.updateChartTheme();\n this.onThemeChange(this.theme);\n }\n\n private updateChartTheme(): void {\n this.configSrv.set('chart', { theme: this.theme === 'dark' ? 'dark' : '' });\n }\n\n onThemeChange(theme: string): void {\n if (!this.platform.isBrowser) {\n return;\n }\n this.theme = theme;\n this.renderer.setAttribute(this.doc.body, 'data-theme', theme);\n const dom = this.doc.getElementById(this.KEYS);\n if (dom) {\n dom.remove();\n }\n localStorage.removeItem(this.KEYS);\n if (theme !== 'default') {\n const el = this.doc.createElement('link');\n el.type = 'text/css';\n el.rel = 'stylesheet';\n el.id = this.KEYS;\n el.href = `${this.deployUrl}assets/style.${theme}.css`;\n\n localStorage.setItem(this.KEYS, theme);\n this.doc.body.append(el);\n }\n this.updateChartTheme();\n }\n\n ngOnDestroy(): void {\n const el = this.doc.getElementById(this.KEYS);\n if (el != null) {\n this.doc.body.removeChild(el);\n }\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<div\n class=\"ant-avatar ant-avatar-circle ant-avatar-icon\"\n nz-dropdown\n nzPlacement=\"topCenter\"\n [nzDropdownMenu]=\"types.length > 0 ? menu : null\"\n>\n <svg\n nz-tooltip\n [nzTooltipTitle]=\"isDev ? devTips : null\"\n class=\"anticon\"\n role=\"img\"\n width=\"21\"\n height=\"21\"\n viewBox=\"0 0 21 21\"\n fill=\"currentColor\"\n >\n <g fill-rule=\"evenodd\">\n <g fill-rule=\"nonzero\">\n <path\n d=\"M7.02 3.635l12.518 12.518a1.863 1.863 0 010 2.635l-1.317 1.318a1.863 1.863 0 01-2.635 0L3.068 7.588A2.795 2.795 0 117.02 3.635zm2.09 14.428a.932.932 0 110 1.864.932.932 0 010-1.864zm-.043-9.747L7.75 9.635l9.154 9.153 1.318-1.317-9.154-9.155zM3.52 12.473c.514 0 .931.417.931.931v.932h.932a.932.932 0 110 1.864h-.932v.931a.932.932 0 01-1.863 0l-.001-.931h-.93a.932.932 0 010-1.864h.93v-.932c0-.514.418-.931.933-.931zm15.374-3.727a1.398 1.398 0 110 2.795 1.398 1.398 0 010-2.795zM4.385 4.953a.932.932 0 000 1.317l2.046 2.047L7.75 7 5.703 4.953a.932.932 0 00-1.318 0zM14.701.36a.932.932 0 01.931.932v.931h.932a.932.932 0 010 1.864h-.933l.001.932a.932.932 0 11-1.863 0l-.001-.932h-.93a.932.932 0 110-1.864h.93v-.931a.932.932 0 01.933-.932z\"\n ></path>\n </g>\n </g>\n </svg>\n <nz-dropdown-menu #menu=\"nzDropdownMenu\">\n <ul nz-menu nzSelectable>\n <li nz-menu-item *ngFor=\"let i of types\" (click)=\"onThemeChange(i.key)\">{{ i.text }}</li>\n </ul>\n </nz-dropdown-menu>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { NzToolTipModule } from 'ng-zorro-antd/tooltip';\n\nimport { ALAIN_THEME_BTN_KEYS, ThemeBtnComponent } from './theme-btn.component';\n\nconst COMPONENTS = [ThemeBtnComponent];\n\n@NgModule({\n imports: [CommonModule, NzDropDownModule, NzToolTipModule],\n providers: [\n {\n provide: ALAIN_THEME_BTN_KEYS,\n useValue: 'site-theme'\n }\n ],\n declarations: COMPONENTS,\n exports: COMPONENTS\n})\nexport class ThemeBtnModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}